前の日 / 次の日 / 最新 / 2009-10

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

2009-10-06 Tue

10文字ごとに色分けする [javascript]

google-code-prettify で10文字ごとに色分けするハンドラー


function createMyDecorator(){
   
/**
      * 10文字ごとにトークンわけする。
      */

   
function tokenizer(source){
       
var tokens = [];
       
for(i=0;i < source.length;i += 10){
            tokens
.push(source.substr(i,10));
         
}
       
return tokens;
   
}

   
var decorate = function(job){
       
var sourceCode = job.source, basePos = job.basePos;
       
var decorations = [basePos, PR.PR_PLAIN];
       
var tokens = tokenizer(sourceCode);
       
var pos = 0;
       
for (var ti = 0, nTokens = tokens.length; ti < nTokens; ++ti){
           
var token = tokens[ti];
           
var tokenStart = pos;
            pos
+= token.length;
            style
= ti % 2 ? PR.PR_STRING : PR.PR_PLAIN; //交互に色分け
            decorations
.push(basePos + tokenStart, style);
       
}
        job
.decorations = decorations;
   
};
   
return decorate;
};

PR
.registerLangHandler(createMyDecorator(), ['d']);