123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- var textarea;
- onload=function(){
- textarea=document.getElementsByTagName('textarea')[0];
- }
- function getNewlinePos_back(text,pos){
- while(pos>=0 && text.charAt(pos)!='\n') pos--;
- return pos;
- }
- function getNewlinePos_forth(text,pos){
- let len = text.length;
- while(pos<len && text.charAt(pos)!='\n') pos++;
- return pos;
- }
- function deleteLine(ta){
- let text = ta.value;
- let lStart = getNewlinePos_back(text,ta.selectionStart-1);
- let lEnd = getNewlinePos_forth(text,ta.selectionEnd);
- ta.value = text.substring(0,lStart+1) + text.substring(lEnd+1);
- ta.selectionStart = ta.selectionEnd = lStart +1;
- ta.focus();
- }
- function moveUp(ta){
- let text = ta.value;
- let start = ta.selectionStart;
- let end = ta.selectionEnd;
- let lStart = getNewlinePos_back(text,start-1);
- let lEnd = getNewlinePos_forth(text,end);
- let prevS = getNewlinePos_back(text,lStart-1);
- ta.value = text.substring(0,prevS+1)+text.substring(lStart+1,lEnd+1)+
- text.substring(prevS+1,lStart+1) + text.substring(lEnd+1);
- ta.selectionStart = start - (lStart - prevS);
- ta.selectionEnd = end - (lStart - prevS);
- ta.focus();
- }
- function move2Top(ta){
- let text = ta.value;
- let start = ta.selectionStart;
- let end = ta.selectionEnd;
- let lStart = getNewlinePos_back(text,start-1);
- let lEnd = getNewlinePos_forth(text,end);
- ta.value = text.substring(lStart+1,lEnd+1)+text.substring(0,lStart+1)+
- text.substring(lEnd+1);
- ta.selectionStart = start - lStart-1;
- ta.selectionEnd = end - lStart-1;
- ta.focus();
- }
- function move2Bottom(ta){
- let text = ta.value;
- let start = ta.selectionStart;
- let end = ta.selectionEnd;
- let lStart = getNewlinePos_back(text,start-1);
- let lEnd = getNewlinePos_forth(text,end);
- ta.value = text.substring(0,lStart+1)+text.substring(lEnd+1)+
- text.substring(lStart+1,lEnd+1);
- ta.selectionStart = start + text.length - lEnd-1;
- ta.selectionEnd = end + text.length - lEnd-1;
- ta.focus();
- }
- function moveDown(ta){
- let text = ta.value;
- let start = ta.selectionStart;
- let end = ta.selectionEnd;
- let lStart = getNewlinePos_back(text,start-1);
- let lEnd = getNewlinePos_forth(text,end);
- let nextE = getNewlinePos_forth(text,lEnd+1);
- ta.value = text.substring(0,lStart+1) + text.substring(lEnd+1,nextE+1) +
- text.substring(lStart+1,lEnd+1)+text.substring(nextE+1);
- ta.selectionStart = start + (nextE - lEnd);
- ta.selectionEnd = end + (nextE - lEnd);
- ta.focus();
- }
- function save(fn){
- let u8=new TextEncoder().encode(textarea.value);let r='';for(let i=0;i<u8.byteLength;i++)r+=String.fromCharCode(u8[i]);location.href='i:0l'+fn+':'+btoa(r);
- }
- function onSave(){
- save(location.pathname);
- }
|