前の日 / 次の日 / 最新 / 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']);