7

次のようなスタンドアロンの強調表示 (エディターではありません) を使用しています: http://codemirror.net/demo/runmode.html

蛍光ペンの実行時に使用する言語を自動検出するにはどうすればよいですか?

ここにモード自動変更のデモがあります: http://codemirror.net/demo/changemode.html

しかし、これを Codemirror.runMode() で動作するように適応させる方法がわかりません。自動検出スキームを使用して、コード ブロック全体を強調表示したいと考えています。

4

1 に答える 1

4

「changemode」デモでは、「Scheme」プログラミング言語と「その他すべて」を区別することしかできません。の実装を参照してください。

function looksLikeScheme(code) {
    return !/^\s*\(\s*function\b/.test(code) && /^\s*[;\(]/.test(code);
}

したがって、これは他のプログラミング言語を自動検出するためには機能しません。デモページにあるように、Schemeを検出する場合でも非常に粗雑です。

残念ながら、ソースコードスニペットから広範囲のプログラミング言語を自動検出することは簡単ではありません(小さなスニペットの場合、異なるプログラミング言語がまったく同じ構文を使用することもあります)。ただし、スニペットからプログラミング言語を検出する場合は、合理的なアプローチをお勧めします。

于 2012-01-20T16:17:19.740 に答える