Visual Studioで使用する新しい言語を作成する方法


102

新しいテンプレート言語を記述したいのですが、Visual Studioでそれを "サポート"します。私が知る必要があるのは:

  1. 新しい言語を解析するにはどうすればよいですか?
    新しいテンプレート言語のコードがある場合、それをHTMLに変換するにはどうすればよいですか?現在、正規表現を使用してトークンごとに解析していますが、言語がより複雑になり、エラーチェックが行われないため、これがうまくスケーリングするとは思いません。ANTLRについて聞いたことがありますが、使用していません。それはこの仕事に適したツールでしょうか、それとももっと簡単なものがありますか?理想的には、他の言語と同じように、構文エラーをできるだけ多くの情報(行番号、エラーのタイプ)とともにエラーウィンドウに送信します。
  2. Visual Studioの新しいファイルタイプを作成するにはどうすればよいですか?
  3. 構文を強調表示するにはどうすればよいですか?
    手順1で作成したのと同じパーサーを使用できますか、またはこれはまったく異なるものですか?
  4. Intellisenseを入手するにはどうすればよいですか?

私はパーサーをC#で記述したいと思います。

回答:


62

Visual Studioとの統合のレッグワークをすでに行っている別の言語を見てみましょう。良い例がブーです。言語とVisual Studioの統合はオープンソースです。したがって、彼らが何をしなければならなかったかを正確に見ることができます。

  • Boo言語:https : //github.com/boo/boo-lang
  • VS2010のBoo構文強調表示(VSXアドイン):http ://vs2010boo.codeplex.com/
  • Boo Language Studio(VS2008の構文の強調表示):http ://boolangstudio.codeplex.com/

VS2010のBoo構文強調表示には、ホームページにいくつかの推奨リンクが含まれています。簡単に参照できるようにコピーしておきます。


29

Visual Studioの側面に関しては、必要なのは「言語サービス」です。これは、特定のファイル拡張子/タイプの色付け、インテリセンスなどを処理するエンティティです。

イントロについては、この記事を参照してください。
コードサンプルについては、こちらを参照してください

解析に関しては、多くの技術があり、私は意見/アドバイスを提供しません。

注意してください、かなりの量の作業が含まれていますが、私の意見では、VS2010では、この種の拡張機能を提供することは、以前のバージョンのVisual Studioよりもはるかに簡単です。

こちらもご覧ください

Visual Studio 2010の拡張性、MPF、言語サービス


9

この記事を基にしてVS言語サービスを作成しました。http//www.codeproject.com/KB/recipes/VSLanguageService.aspx

文法についての基本的な知識があれば、それほど悪くはありませんでした。


彼がそのチュートリアルを続けなかったのは残念です...それは本当に良いものでした。ありがとう!
mpen 2011年

1
本当に足りないのは、次のステップであるパッケージのインストールだけです。stackoverflow.com/questions/4160391/...
ColinCren

2

VS SDKには、探しているほとんどの機能を示すサンプルがあります。


2

私は自分の言語でVSを使用していて、必然的に構文の強調表示が必要でした。私はこのチュートリアルに基づいて鉱山を構築しました:https : //mattduffield.wordpress.com/2012/07/31/writing-a-brightscript-syntax-highlight-extension-for-visual-studio-2010/

チュートリアルがVS2010にあることを知っています。私はVS2012で私のしゃっくりを作りました。(VS2013でも動作しました)最近VS2015に変更しましたが、ソリューションを編集して問題なくビルドできます。


2

Visual Studio 2013 SDKの最近のサンプルの非常に便利なコレクションを見つけました:http : //blogs.msdn.com/b/vsx/archive/2014/05/30/vs-2013-sdk-samples-released.aspx

また、有望に思えるOokLanguageの最新バージョンも含まれています。

ANTLR 4を使用して言語を解析しました。これは、魅力のように機能し、C#コードとの直接対話を可能にします。完全にお勧めできます。


0

他の回答で述べたように、最も興味深いコードサンプルは、Visual Studioの最新バージョン(執筆時点では2017)のOok言語拡張機能です。

VS 2015については、VS2015ブランチのサンプルを参照してください。

2015以降のSDKをインストールするには、VSセットアップを再実行する必要があります。2015年には、「Visual Studio Extensibility Tools Update 3」と呼ばれています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.