我目前正在尝试使用“ Visual Studio 2015”为此创建扩展。 我想创建一个函数,当单击ToolWindow的按钮时,将适合当前代码编辑器光标部分的源代码插入。 SDK模板中有一个ToolWindow示例。 但是,它已在ToolWindow中完成,并且未编写任何访问代码编辑器的方法。 如何从ToolWindow获取/设置当前的代码编辑器源代码?
答案 0 :(得分:0)
按照 Sergey 的建议,我们可以使用TextSelection.Text属性。
但是不知何故,我无法以这种方式获得VS2015的选择:DTE.ActiveDocument.Selection
。
对我来说,在VS2015中,我创建了一个新的custom Tool Window
项目,在工具窗口中添加了一个简单的TextBox
控件,然后双击默认的Click me!
按钮导航至{{ button-Click
文件中的1}}方法之后,我添加如下代码以从文本框中获取文本并将其插入编辑器:
ToolWindow1Control.xaml.cs
所以对我来说,我实际上使用下面的代码插入文本:
[SuppressMessage("Microsoft.Globalization", "CA1300:SpecifyMessageBoxOptions", Justification = "Sample code")]
[SuppressMessage("StyleCop.CSharp.NamingRules", "SA1300:ElementMustBeginWithUpperCaseLetter", Justification = "Default event handler naming pattern")]
private void button1_Click(object sender, RoutedEventArgs e)
{
string text = textBox.Text;
DTE dte = Package.GetGlobalService(typeof(DTE)) as DTE;
(dte.ActiveDocument.Selection as EnvDTE.TextSelection).Text = text;
}
此外:
要使用上面的代码,您需要在 DTE dte = Package.GetGlobalService(typeof(DTE)) as DTE;
(dte.ActiveDocument.Selection as EnvDTE.TextSelection).Text = "Add your text here.";
文件中添加定义:
ToolWindow1Control.xaml.cs
希望它会有所帮助:)