1
有沒有辦法在Roslyn(也沒有roslyn)的特定點添加代碼?這是我的問題:我開發一個在上下文菜單中添加命令的vspackage(在CODE WINDOW中)。當我點擊右鍵並選擇這個命令時,它應該添加一些代碼。 我該如何解決這個問題?在Roslyn的特定點添加代碼
有沒有辦法在Roslyn(也沒有roslyn)的特定點添加代碼?這是我的問題:我開發一個在上下文菜單中添加命令的vspackage(在CODE WINDOW中)。當我點擊右鍵並選擇這個命令時,它應該添加一些代碼。 我該如何解決這個問題?在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