103

新しいテンプレート言語を作成したいのですが、VisualStudioでそれを「サポート」したいと思います。私が知る必要があるのは:

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

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

4

7 に答える 7

61

Visual Studio と統合するための作業を既に行っている別の言語を検討します。良い例はBooです。言語と Visual Studio の統合はオープン ソースです。したがって、彼らが何をしなければならなかったかを正確に見ることができます。

VS2010 の Boo Syntax Highlighting には、そのホームページにいくつかの推奨リンクが含まれています。簡単に参照できるようにコピーします。

于 2010-11-26T06:58:27.137 に答える
29

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

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

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

私の意見では、この種の拡張機能を提供することは、以前のバージョンの Visual Studio よりも VS2010 の方がはるかに簡単です。

こちらもご覧ください

Visual Studio 2010 拡張性、MPF、および言語サービス

于 2010-11-26T06:58:41.400 に答える
9

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

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

于 2011-01-13T18:03:41.977 に答える
2

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

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

于 2015-08-11T05:54:35.727 に答える
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# コードとの直接的な対話を可能にします。完全にお勧めできます。

于 2014-07-15T11:05:42.247 に答える
2

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

于 2010-11-26T07:01:53.723 に答える