我想在Visual Studio 2012中为文件类型添加一个新的(外部)默认编辑器。我的编辑器(Notepad ++)支持通过程序参数直接跳转到特定的行。遗憾的是msdn reference没有提到任何宏参数来在给定的上下文中使用行(和字符)偏移量(即双击搜索结果时)。
是否可以在添加程序的 Arguments 字段中获取行和/或字符偏移量?
编辑:有没有办法通过扩展程序访问这些开放事件,其中包含有关文件,行和所选开放程序的信息?
答案 0 :(得分:7)
答案 1 :(得分:4)
默认情况下不可能,因为没有Arguments反映搜索结果。因此,您首先在VisualStudio中打开文件,然后使用外部工具。
我认为您可以创建一个自定义的Visual-Studio插件并在搜索结果的选择范围内挂钩。查看可用于VS 2015,2013和2012的Adding Search to a Tool Window。这种方式的实现似乎是Quick Open File Plugin for VS2010,但缺少输入亚麻布的文本框。
有关在MSDN
上创建VS插件的更多文档 顺便说一句,你有没有检查过“Promt for arguments”选项来扩展Thomas的回答:答案 2 :(得分:1)
您可以通过两个步骤获得解决方案,一旦获得搜索结果,这两个步骤都会花费很少的时间。 Double-click the result
,press ctrl-shift-alt-L
(当然可以更改)。
以下步骤尽可能详细,以便每个人都能理解这些步骤并进行相应的修改。
创建一个cmd文件,该文件将使用文件,行和列参数启动notepad ++
将以下代码保存在d:\util\startnppwith3args.cmd
setlocal
set _file=%0
set _line=%1
set _column=%2
set _line=%_line:"=%
set _column=%_column:"=%
: remember to use "" as first arg as blank title so we call npp properly :)
start "" "F:\Program Files (x86)\Notepad++\notepad++.exe" -multiInst -nosession -n%_line% -c%_column% %_file%
pause
endlocal
创建外部工具以调用startnppwith3args.cmd
tools | External Tools...
记住此命令的位置,在这种情况下为3。
创建" command3"
的键盘快捷键 tools | Options | Keyboard
并搜索externalcommand
例如,将所需的组合键分配给此命令ctrl-shift-alt L
。
在“工具”菜单上验证您的命令是否符合预期
现在全力以赴
ctrl-shift-alt L
Notepad ++在搜索结果的行和列上打开文件!
剩下什么?
pause
从cmd文件中取出,因为它仅用于调试目的。-multiInst -nosession
参数<强>结论强>
这是一个有趣的问题,也是我以前没有探索过的一个领域。我可能会自己使用这种技术并用于其他目的。