2009-10-06
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']);