2017-06-10 3 views
-1

C#でAndroid用のコードエディタアプリを作成することに興味があります(Xamarinを使用)。明らかに、すばらしいコードエディタの必要性の1つは、幅広い一般的な言語の構文強調です。私はこれらすべての言語用のカスタムトークナイザを自分で作成したくないので、すでに文法を持っているライブラリを探しています。 VSCode editor source code閲覧私の時間からC#で一般的な言語を強調表示するためにどのライブラリを使用できますか?

、私は.tmLanguage(TextMateのスタイル)または.cson(アトム・スタイル)の形式で特定の言語のための多くのあらかじめ定義された文法ファイルがあることを知っています。たとえば、hereはAtomが管理する文法の束であり、hereは.NET Foundationによって管理されている公式のC#文法です。

私は最初にこれらのファイルを解析し、それらを式に一致させることができる.NETライブラリを探しましたが、AFAICSは存在しません。 vscode-textmateまたはtextpowのようなものは、私が探しているものに過ぎませんが、それらは.NETで書かれていません。

誰でも私にこの目的に役立つライブラリを指摘できますか?また、見つからない場合は、上記のライブラリの関数を実行するために.NET JavaScript engineを使用することをお勧めしますか?通常はエンジンを使用することを躊躇しませんが、文法の強調表示には数百msの遅れが許されません。

+0

これはAndroid固有の質問ですので、明確にする必要があります。 GitHubには、コントロールを使用するAndroidクライアントのオープンソースがあります(https://github.com/pockethub/PocketHub)。 Javaで正確に何が行われているのかを確認し、それをC#とXamarinに変換することができます。 –

答えて

2

私の現在のプロジェクトの1つとして、利用可能な構文パーサーの研究を行った。そのうちの一つはANTLRで、ここでのC#からそれを使用する方法についての記事です:https://tomassetti.me/getting-started-with-antlr-in-csharp/

それは、異なる言語のための事前構築文法の非常に大きい(100以上)のコレクションを持っている:https://github.com/antlr/grammars-v4

ANTLRですJavaをベースにしているので、Android上で動作させるには問題にはならないと思います。

関連する問題