/ / メモ
2009-10-10

google-code-prettify の createSimpleLexer を使うと、
任意の正規表現でハンドラーを生成できる。

たとえば、以下のように書くと、D言語のコメントに対応する。
(ネストできるコメントは手抜き)

PR.registerLangHandler(
    PR.createSimpleLexer(
        /** 特定の文字で判別できる場合ここに書く
          * [style:string, patern:regexp, null, shortcut:string]
          * 例:#で始まるコメント行
          * [PR_COMMENT, /^#[^\r\n]*/, null, '#']
          * shortcut は必須
          */
        [
        ],
        /** 上でマッチしなかった場合に使われる。
          * [style:string, patern:regexp, null, shortcut:string]
          * 例://で始まるコメント行
          * [PR.PR_COMMENT,/^\/\/[^\r\n]*/, null]
          * shortcut は無くても良い
          * 配列の順にテストするので順番に注意する
          */
        [
            [PR.PR_COMMENT,/^\/\/[^\r\n]*/, null],
            [PR.PR_COMMENT,/^\/\*[\s\S]*?(?:\*\/|$)/, null],
            [PR.PR_COMMENT,/^\/\+[\s\S]*?(?:\+\/|$)/, null]
        ]),
    ['d']);

トラックバック http://mikanya.dip.jp/memo/2009-10-10-1