Hatena::LetでTABで"\t"を入力できるようにする

  • /*
     * @title Hatena::LetでTABで"\t"を入力できるようにする
     * @description 選択してまとめてということもできるようにしておいた
     * @include http://let.hatelabo.jp/l
     * @license http://h.hatena.ne.jp/mafucode/316614012892065886
     */
    
    (function(){
    	var a=(function(){								
    		document.getElementById('source-input').addEventListener(
    			'keypress'
    			,function(event){
    				if(!(event.keyCode==13||event.keyCode==9))return ;
    				var e=document.getElementById('source-input');
    				function f(x1,x2){
    					function focus(){
    						e.focus();
    						e.setSelectionRange(x1,x2);
    					}
    					return focus;
    				}
    				if((event.charCode==0)&&(event.keyCode==9)){
    					var n1=e.selectionStart;
    					var n2=e.selectionEnd;
    					if(!event.shiftKey){
    						if(n1==n2){
    							e.value=e.value.slice(0,n1)+"\t"+e.value.slice(n1);
    							setTimeout(f(n1+1,n1+1),2);
    						}else{
    							var i=0;
    							var r="";
    							var a1=e.value.slice(0,n1).split("\n");
    							a1[a1.length-1]="\t"+a1[a1.length-1];
    							r=(a1.join("\n"));
    							a1=e.value.slice(n1,n2).split("\n");
    							i+=a1.length;
    							e.value=r+(a1.join("\n\t"))+(e.value.slice(n2));
    							setTimeout(f(n1+1,n2+i),2);
    						}
    					}
    				}
    			}
    			,false);
    	});
    	setTimeout(a,Math.floor(1000*3.14159265358979323846264338));
    })();
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2014/06/24 20:12:51 - 2014-06-24
  2. 2014/06/24 19:53:21 - 2014-06-24