1
Roslynで特定のポイントにコードを追加する方法はありますか(roslynも含まれていません)?これは私の問題です:私は、コンテキストメニュー(コマンドウィンドウ内)でコマンドを追加するvspackageを開発します。右クリックしてこのコマンドを選択すると、そのポイントにいくつかのコードが追加されます。 この問題を解決するにはどうすればよいですか?Roslynで特定のポイントにコードを追加
Roslynで特定のポイントにコードを追加する方法はありますか(roslynも含まれていません)?これは私の問題です:私は、コンテキストメニュー(コマンドウィンドウ内)でコマンドを追加するvspackageを開発します。右クリックしてこのコマンドを選択すると、そのポイントにいくつかのコードが追加されます。 この問題を解決するにはどうすればよいですか?Roslynで特定のポイントにコードを追加
あなたは持っている:
最初のものが最初です。テキストビューを受け取る:
public static IWpfTextView GetCurrentTextView(Package package)
{
try
{
var serviceProvider = package as IServiceProvider;
IVsTextManager textManager = (IVsTextManager)serviceProvider.GetService(typeof(SVsTextManager));
IVsTextView textView;
textManager.GetActiveView(1, null, out textView);
IComponentModel componentModel = (IComponentModel)serviceProvider.GetService(typeof(SComponentModel));
var factoryService = componentModel.GetService<IVsEditorAdaptersFactoryService>();
return factoryService.GetWpfTextView(textView);
}
catch
{
return null;
}
}
はそこからキャレット位置を取得し、あなたのテキストを挿入します。
IWpfTextView textView = GetCurrentTextView(package);
SnapshotPoint caretPosition = textView.Caret.Position.BufferPosition;
textView.TextBuffer.Insert(caretPosition, "HELLO WORLD");
は、エラー処理を追加することを忘れないでください。
あなたが助けを求めてからしばらく経っていますが、私は好奇心が強いです。下の私のソリューションはあなたのために働いたのですか? – wobuntu