2

VS アドインとして Margin (MEF 経由) を構築しようとしています。メソッドの定義を含む行を取得する必要があります。そのようなことをしている人を見つけましたが、ほとんどが解析テストのようです。これは明らかに、解析方法を知っている言語でしか機能しないため、非常に悪い考えのように思えます。

アドインでは、より高いレベルのモデルを使用して、プログラムでドキュメントにアクセスできます。

var fcm = _application.ActiveDocument.ProjectItem.FileCodeModel;
var elem = fcm.CodeElementFromPoint(point, vsCMElement.vsCMElementFunction);

例として。

マージンを描画しようとするときに、MEF 内からこれを行う方法はありますか?

4

3 に答える 3

2

できるのでOK。

この一般的なプロセスは次のとおりです。 1) ITextBuffer -> ITextDocument (ファイル名があります) 2) ファイル名を使用してプロジェクト アイテムを見つけます (例: プロジェクト アイテムを再帰します) 3) プロジェクト アイテムから FCM を取得して使用します

于 2011-02-25T14:46:08.987 に答える
0

彼らは、役立つ CodeDOM をいくつか追加しました。コード ツリーをナビゲートして、テキストを検索することができます。これは非常に基本的な紹介です: http://msdn.microsoft.com/en-us/library/y2k85ax6%28v=vs.110%29.aspx

于 2014-07-22T22:06:51.833 に答える