Web Search - Visual Studio 插件,用于搜索(Google、Yahoo、MSDN、Code Project、Stack Overflow 等)选定的文本/项目






4.98/5 (103投票s)
Visual Studio 插件,WebSearch - 在所有文本编辑器、引用项、错误列表中包含多种搜索选项。
引言
Visual Studio 提供了市场上最强大的 IDE 之一。它还允许我们扩展其功能。Visual Studio 插件是实现这一目标的一种强大方式。
在本文中,我将创建一个名为“Web Search”的 Visual Studio 插件。使用此插件,我们可以轻松地在线搜索编辑器窗口中选定的文本,或错误列表/引用文件夹中的项目。此插件提供了多种搜索引擎选项。
此 WebSearch 插件安装程序也可从 Visual Studio Gallery 下载。请访问 WebSearch 官方页面 查看最新更新。
供您参考,我已附上本文使用的可运行源代码以及此插件的(已更新)安装程序。
注意: 此插件/扩展已得到许多 Visual Studio 专家的使用并获得**推荐**。
背景
您有多少次从 Visual Studio 环境中复制内容并进行搜索?它可以是任何东西,例如一个简单的关键字或一个错误项。作为开发人员,我最常这样做 。每当我产生疑问时,我都会在线搜索以了解更多信息。
当我们查看复杂应用程序的“引用”文件夹时,可能会找到一些不熟悉的引用项,此时,我们通常会在线搜索以获得更好的理解。
在开发过程中,我们会遇到一些编译错误。如果我们不熟悉,那么下一步就是用 Google 搜索。
此插件旨在通过向 VS IDE 添加搜索选项来提高我们的生产力,并且*目前此插件支持 Visual Studio 2005、2008、2010、2012*。
创建 WebSearch 插件的步骤
在这里,我将一步一步地解释如何创建 WebSearch Visual Studio 插件。提供的步骤基于 Visual Studio 2010 IDE 和 .NET Framework 4.0。
代码解释将在本文末尾给出。
步骤 1:创建一个名为“WebSearch2010”的新 Visual Studio 插件。
新建项目 -> 其他项目类型 -> 扩展性 -> Visual Studio 插件
点击“确定”。
现在,Visual Studio 插件向导将显示在 IDE 中。
步骤 2:点击“下一步”按钮
此向导共有六个步骤。我们可以在这六个步骤中配置插件的行为和其他配置。
步骤 3
选择将用于开发插件的编程语言。
在这里,我选择了 **C#**,因为我对此语言更熟悉。
步骤 4. 选择插件主机
在这里,我选择了 **Visual Studio 2010**。
步骤 5:为插件提供名称和描述
我已为该插件提供了如下名称和描述详细信息。
安装此插件后,这些详细信息将如下所示显示在插件管理器中。
可以从工具菜单 -> 插件管理器访问。
步骤 6:选择插件选项
所有选项都是自描述的。
在这里,第一个选项将生成一个菜单,位于工具菜单下。WebSearch
* 仅有上下文菜单。第二个选项将确保在主机应用程序启动时加载该插件。
步骤 7. 选择“帮助关于”* 信息
如果您想显示如下所示的插件详细信息,请勾选复选框并输入所需数据。
如果您想更改任何输入,可以按“返回”按钮并更改所需部分。
步骤 9. 查看摘要并点击“完成”
现在 Visual Studio 已根据我们在向导中的输入生成了代码。
步骤 10. WebSearch* 解决方案资源管理器将如下所示
步骤 11. 查看 .AddIn 文件
请确保这两个文件的内容与以下内容相同
步骤 12. 修改 OnConnection 方法 (Connect.cs)
现在代码将是
将以下代码添加到 OnConnection
方法
步骤 13. 添加 CreateContextMenu 方法,该方法已在 OnConnection 中引用
步骤 14. 添加命名空间 Microsoft.VisualStudio.CommandBars
步骤 15. 添加 AddWebSearch 方法,该方法已从 CreateContextMenu 调用
步骤 16. 添加上下文菜单单击事件
步骤 17. 添加 getSelectedText 方法,该方法已在菜单单击事件中引用
步骤 18. 添加 System.Web 引用
由于我们使用了 HttpUtility.urlEncode
方法,因此我们需要引用此程序集。
添加的 System.Web
将显示在“引用项”文件夹中
步骤 19. 现在 Websearch 插件已完成并准备好进行测试
请确保测试插件文件位于当前用户个人数据文件夹下的Visual Studio 2010 的Addins 文件夹中。
按 **F5** 在测试模式下运行 Visual Studio,并打开一个虚拟项目,然后像下面这样测试上下文菜单
步骤 20. 创建部署和设置,然后即可分发给开发人员社区
如果需要,我稍后将发布一篇关于 Visual Studio 插件设置和部署的文章。
代码工作原理
OnConnection
在 OnConnection
方法中,我调用了 CreateContextMenu
方法来向一些指定的窗口添加上下文菜单。
在这里,插件加载后,我们调用 CreateContextMenu
方法来添加上下文菜单。
CreateContextMenu 方法
下面一行指定了 WebSearch 菜单可用的窗口名称。
然后我 循环 遍历所有指定的菜单,并通过传递 CommandBar
对象来调用 AddWebSearch
。
AddWebSearch 方法
此方法用于将 WebSearch 菜单添加到指定的上下文菜单。
上面的代码块用于添加 WebSearch 主菜单。
如果您想在菜单后添加分隔线,请添加以下行。
我创建了一个匿名类型来保存子菜单的详细信息,匿名类型如下所示。
正如您所见,所有属性都是自描述的。
在定义了子菜单列表后,我将循环遍历子菜单列表并添加子菜单,我添加了单击处理程序来处理菜单单击。
oControl_Click
此事件用于处理所有子菜单的单击。选定的文本/项目值将通过以下代码检索。
如果选定的项目/文本中有任何内容,那么我们将打开默认的 Web 浏览器来打开网页。
这里的 ctrl.tag
是 Web URL,在编码后会附加选定的文本。
getSelectedText
此方法用于根据活动窗口的选定项获取值。
如果从“错误列表
”单击菜单,则会在以下代码中处理。
如果从**引用项**单击,则**解决方案资源管理器**
部分将处理菜单单击。
否则,将评估默认部分。
如果您找到更好的方法来检索选定的值,请告诉我。
AddIn 文件
请确保 Add-in
文件的标志设置正确。
使用附加文件
本文附带了可运行的代码,您可以根据需要修改代码。可以使用**安装程序**将此插件安装到您的本地计算机。
如果发生任何异常,此插件将在 Windows 事件日志中记录一个条目,其中包含异常详细信息。如果您发现任何问题,请在评论部分报告。
您可以从控制面板的“卸载程序”部分或“添加/删除程序”部分**卸载**此程序。
Add-In 操作
上图显示了 WebSearch Addin 在**错误列表**窗口中的工作情况。
在**最新版本的**WebSearch 设置中,您可以选择配置搜索选项。因此,通过使用配置选项,您可以根据自己的选择添加或删除网站 URL。下面的屏幕截图显示了如何配置 WebSearch。
此外,您还可以使用此配置选项配置 WebSearch 的上下文**菜单位置**和**快捷键**。如果快捷键有效,则它将显示在**工具**->**Web 搜索**菜单中。下图显示了如何为 WebSearch 插件分配快捷键。
分配的快捷键可用于打开一个搜索键,该搜索键位于默认搜索选项中提到的 Web URL。使用此配置选项,您无法分配任何已用于其他命令的快捷键。WebSearch 的这种行为可确保快捷键有效,并且不会错误地移除任何已使用的快捷键。
如果您想使用任何现有键,例如 **F1**,请转到**工具**->**选项**->**环境**->**键盘**-> 然后选择 **WebSearch.connect.WebSearch** 并根据您的选择分配任何键。
如果由于先前的安装或其他问题导致插件未正确初始化,则**WebSearch**菜单将不会显示在**工具**菜单下。在这种情况下,您将无法为 WebSearch 选择任何快捷键,因为快捷键部分将处于禁用状态。要解决此问题,您必须使用以下命令重置 WebSearch Add-in。
打开 Visual Studio **命令提示符**,然后键入/执行以下命令
devenv.exe /resetaddin WebSearch.Connect.WebSearch
您可以根据配置,在默认 Web 浏览器、Visual Studio 选项卡或任何其他 Web 浏览器中打开搜索结果。
在上图中,其他浏览器下拉列表填充了您计算机上所有可用的 Web 浏览器。如果您想在默认浏览器/Visual Studio 以外的浏览器中打开搜索结果,您可以根据自己的选择从下拉列表中选择任何浏览器。
请访问 WebSearch 官方页面 查看最新更新。
故障排除
查看我关于 Visual Studio 插件、错误号及其可能解决方案的故障排除 的文章。
关于 WebSearch,您现在可以说了...
在本文中,我尝试通过详细步骤解释如何创建名为 WebSearch 的 Visual Studio 插件。希望您喜欢这篇文章,并从中获得了一些知识的增益。
我已投入时间和精力在**我所有的文章**中。请不要忘记留下您的投票、建议和反馈,以提高本文及后续文章的质量。
历史
- 2012 年 9 月 2 日:初始版本