Visual Studio 的 Linkify 插件
将源代码注释链接到您的错误跟踪器、MSDN、开发 Wiki 等。
- 下载 Linkify 1.3 安装程序 - 282.53 KB (VS 2005 + VS 2008)
- 下载 Linkify 1.3 源代码 - 55.26 KB (VS 2005 项目)
- 下载 Linkify 1.3 二进制文件 - 36.08 KB (用于手动安装)

新功能: 版本 1.3 (2008 年 8 月)
引言
Linkify 是一个 Visual Studio 插件,它将您的源代码注释链接到您的错误跟踪器、开发 Wiki、MSDN、Google 或任何其他网站或实用程序。它支持 Visual Studio 2005 和 2008。
您不是插入 URL,而是插入以已知前缀开头的文本,例如:
// this code fixes bugz:666 - don't remove!
// for more info, see msdn:MakeSureDirectoryPathExists and wiki:ThatUglySaveBug
要跟踪其中一个链接,将光标放在链接文本上,然后从“工具”菜单中选择“Linkify”。为它创建一个工具栏按钮和/或键盘快捷键会很有帮助!
上面的示例(如果这样配置)使用 bugz:
协议链接到您的错误跟踪器,立即打开案例 666。msdn:
是一个预配置协议,它通过 Google 在 MSDN 中搜索 MakeSureDirectoryPathExists
。wiki:
可能会链接到您的开发 Wiki。
为什么不直接粘贴 URL?
当然,您也可以粘贴 URL,但 Linkify 具有一些优势
- 源代码保持更高的可读性。
- Linkify 允许创意
ShellExecute
调用可以做的所有事情:打开 URL、打开文档、运行程序。 - 如果您的错误跟踪器迁移到新的 URL,只需重新配置 Linkify 协议即可,所有链接都将更新。
安装
本文现在包含一个安装程序,它会将其放置在 Visual Studio 2005 和 2008 默认搜索插件的五个文件夹之一中。但是,如果您更改了插件搜索文件夹或遇到其他奇怪问题,这里是如何手动安装的方法
要手动安装 Visual Studio 2005,请将 LinkifyAddin.zip 中的两个文件解压到您的 Visual Studio Addins 文件夹,例如 \Documents and Settings\<用户>\My Documents\Visual Studio 2005\Addins,其中 <用户>
是您的用户名或“所有用户”。当您再次启动 Visual Studio 时,Linkify 会出现在“工具”菜单中。您也可以从那里将其放在工具栏按钮上和/或为其分配热键。
Visual Studio 2008 注意事项
Visual Studio 2008 的安装类似。插件二进制文件对于两个版本的 Visual Studio 都是相同的,并且包含两个 .AddIn 文件——每个 Visual Studio 版本一个。我没有发现将两个插件文件都放在一个 Studio 实例的搜索路径中会产生不良副作用(除了我的插件管理器会识别它两次)。
我还没有在 VS2008 上测试安装和最新的二进制文件,请报告您发现的任何错误。
如何配置
在点击 Linkify 或在未识别文本上启动它时按住 Shift
会打开配置对话框。在那里您可以管理已识别协议的列表,并将它们与 URL 和其他命令关联起来。
示例
- 前缀=
bugz:
- EXE/URL=
http://companyserver/bugtracker/showbug.asp?id=*
- 当光标位于
bugz:666
上时单击 Linkify 会打开http://companyserver/bugtracker/showbug.asp?id=666
星号(*
)会被源代码中的链接文本替换。
配置
前缀 | 协议前缀。您可以在此处使用任何字符序列,但建议以冒号结尾。 |
链接结束 | 配置在协议被识别后如何检测链接的结束
请注意,您的链接文本可以在协议前缀后直接使用单引号或双引号来覆盖 空格 或 默认。 |
正则表达式 |
(仅当“链接结束”设置为“正则表达式”时可用) |
描述 | 只是为了让您知道这本来是要做什么的。 |
URL 转义 | 根据 URL 规则转义链接文本,这通常在目标是 URL 时是必需的。 |
确认执行 | 在运行命令前显示确认框。如果您正在做不可逆或危险的事情,或希望被询问,则建议使用。 |
展开环境变量 | 如果选中,URL/exe 参数中的环境变量将在调用 ShellExecute 之前展开。这允许泛型引用,例如 %PROGRAMFILES%\SomeTool\SomeTool.exe ,以及其他技巧。 |
URL/EXE 参数 |
ShellExecute / ProcessStartInfo 的 文件名 和 参数 参数。第一个参数可以是可执行文件、URL 或文档路径。如果指定可执行文件,您可能还需要为其指定命令行参数。 |
实用程序 URL |
指向有关前缀的更多信息/安装说明的链接。当发生错误或您启用测试模式时,会显示此链接。 如果前缀调用自定义工具,您可以在此处链接到安装说明。此外,您还可以在此处提供包含更多详细信息的页面。 |
更多/导出... | 将您的设置导出到文件,以便您可以将其移动到另一台电脑。 |
更多/导入... | 从文件导入设置。您可以替换所有现有协议,添加或合并它们。 |
更多/添加默认值... | 将默认(示例)协议添加到列表中,以防您删除了它们但希望它们回来。 |
更多/Shift 强制配置... | 启用/禁用在单击 Linkify 时按住 Shift 键直接进入配置对话框的功能。(默认启用) |
更多/测试模式... | 启用/禁用所有协议的扩展确认对话框(覆盖 确认执行 选项)。此对话框包含有关该行上识别到的额外信息,并用于测试。 |
更多/关于... | 将 Linkify 置于省电模式以防止全球变暖。(待实现) |
链接文本是如何被识别的
链接文本解析器完全是手动扫描特定字符的丑陋过程。我对结果很满意,但效果可能因人而异。
- 为了找到前缀,Linkify 从插入符号位置向左扫描,直到找到空白符或行首。
- 在此位置检查文本是否与已知协议前缀匹配。比较是区分大小写的。我将前缀以冒号结尾,但您不必这样做。
- 如果没有,但第一个字符是开括号,则跳过并再次检查。(hack)
“链接结束”设置现在决定如何识别链接。
- 行其余部分 使用该行的其余部分。
- 正则表达式 使用设置中指定的正则表达式。
如果正则表达式包含名为“link”的命名组,则使用此值。否则,如果它包含任何组,则使用遇到的第一个组。否则,使用整个匹配项。
如果这一切对您来说都是胡言乱语,请尝试 Jim Hollenhorst 的30 分钟正则表达式教程和他的Expresso。 - 空格 扫描到下一个空白符(或行尾)。
- 默认 扫描到下一个终止字符:
)
.
或;
设置“空格”和“默认”允许使用单引号或双引号将包含终止字符的表达式括起来
google:"Visual Studio 2005"
搜索Visual Studio 2005
(无引号)。google:'"Visual Studio 2005"'
搜索"Visual Studio 2005"
(带引号)。
源代码
源代码随此插件一起提供,尽管不建议阅读(FxCop 可能会给我戴上手铐)。使用一系列对当前选择的操作来提取光标下的文本有点棘手。我现在已将其更改为提取整行和选择位置,然后从那里开始工作。
Visual Studio 允许插件将设置保存在 Globals
对象中,但我发现这只适用于字符串。由于 settings
类是可序列化的,我将其序列化到内存流中,然后将内容转换为 base-64 字符串。我知道这很奇怪,但我想避免任何 Unicode 问题。可以通过配置对话框将设置导入和导出到文件中。其余代码(配置表单等)都非常简单。大部分初始化代码都是由插件向导创建的。如果您好奇,可以将我的代码与默认的插件向导生成的项目进行比较。
示例:Linkify CodeProject
要搜索 Code Project 上的文章,您可以添加以下设置
- 按关键词搜索文章
- 前缀:
cp:
- 网址:
https://codeproject.org.cn/info/search.aspx?artkw=*&sbo=kw
- 前缀:
- 按作者搜索文章(目前不可用)
- 前缀:
cpian:
- 网址:
https://codeproject.org.cn/info/search.aspx?st=au&target=*
- 前缀:
cp:Linkify
将搜索包含Linkify
的文章cpian:shog9
将搜索shog9
撰写的文章
这没什么意义;只是一个小小的致敬...
许可证
此插件的二进制形式可免费用于任何用途(包括商业应用程序的开发),并可免费重新分发,只要其保持未修改且版权声明完整。插件本身的源代码可免费用于非商业用途。请在此处分享错误修复和改进。商业插件的包含需另行请求。
尽情享用!
历史
- 2006 年 8 月 15 日:首次发布
- 2006 年 8 月 20 日
- 修复
- 安装后首次启动不再出现错误消息(真是!)
- 文件导入/导出的一些改进
- 默认设置中添加了链接到 CP
- 修复
- 2006 年 8 月 27 日(版本 1.1)
- 修复
- 首次启动时出现错误消息(抱歉各位...现在应该真的解决了)
- 正确的父级设置
- 对话框的键盘快捷键
- 新功能
- 独立的程序/参数设置
- 修复
- 2007 年 12 月(版本 1.2)
- 新功能
- 支持构造函数重载
- 更灵活的解析器。现在
// (bugz:765)
可以工作了,这曾让我抓狂! - 链接结束检测可单独配置为每个协议的“空格”/“默认”/“行其余部分”*
- 对于每个协议,您可以设置“确认执行”以显示一个消息框,该消息框将在实际执行操作之前运行。如果您的操作会进行不可逆的更改(例如删除文件,哦!)建议使用此功能。
- Shift-Click 跳过解析器,直接显示配置对话框
- 一些用户界面小技巧和整体更好的外观
- 新功能
- 2008 年 8 月(版本 1.3)
- 修复
- 修正了在使用链接表达式周围的引号时出现的 Obi Wan 错误
- 特点
- 允许使用正则表达式匹配链接表达式
- 在运行链接(或失败)时添加了更好的诊断
- 启用/禁用单个前缀的复选框
- 展开 URL/可执行文件中的环境变量
- 添加了“实用链接”
- 对话框进行了一些改版
- 支持 VS 2008(半测试...)
- 修复
* 注意: 如果我不小心破坏了您现有的链接,请首先尝试更改该协议的配置。如果不起作用,请留言并提供协议前缀和相关注释行。