ラベル JS の投稿を表示しています。 すべての投稿を表示
ラベル JS の投稿を表示しています。 すべての投稿を表示

2009年10月10日土曜日

[JS][Scala][Snippet] Syntax Highliter に Scala モード をつけてみた

コード整形表示に Syntax Highliter の Bloggerウィジェット を使っているのですが、さすがに Scala モードなんてないため、(Javaモードの箇所を見よう見まねで)付け加えてみました。

Scala言語仕様書の予約語、[]で囲まれたGenericsの型指定、コメント、文字列をハイライトします。ほかにもあるかもですが言語知識がこの程度なので...。
Javaモードにあった数値のハイライトは少々うざったかったので削ってます。
使ってみた感じはこちら => [Scala] Scala チートシート

付け加えたコードは以下。

dp.sh.Brushes.Scala=function()
{var keywords='abstract case catch class def do else extends false final finally for forSome if implicit import lazy match new null object override package private protected requires return sealed super this throw trait try true type val var while with yield :';this.regexList=[
{regex:dp.sh.RegexLib.SingleLineCComments,css:'comment'},
{regex:dp.sh.RegexLib.MultiLineCComments,css:'comment'},
{regex:dp.sh.RegexLib.DoubleQuotedString,css:'string'},
{regex:dp.sh.RegexLib.SingleQuotedString,css:'string'},
{regex:new RegExp(this.GetKeywords(keywords),'gm'),css:'keyword'},
{regex:new RegExp('=>','g'),css:'keyword'},
{regex:new RegExp('<-','g'),css:'keyword'},
{regex:new RegExp('<:','g'),css:'keyword'},
{regex:new RegExp('<%','g'),css:'keyword'},
{regex:new RegExp('>:','g'),css:'keyword'},
{regex:new RegExp('\\[[\\w\\d\\*]+\\]','g'),css:'type'}
];this.CssClass='dp-j';this.Style='.dp-j .type { color: darkred; }';}
dp.sh.Brushes.Scala.prototype=new dp.sh.Highlighter();dp.sh.Brushes.Scala.Aliases=['scala'];


使う場合は、class="scala" を指定します。
<pre name="code" class="scala">
// Scala コード
</pre>