Ответ 1
Используя $(ItemPath) -n$(CurLine)
в качестве аргументов, работала для меня:
Я хотел бы добавить новый (внешний) редактор по умолчанию для типа файла в Visual Studio 2012. Мой редактор (Notepad ++) поддерживает прямое переключение на определенную строку через аргументы программы. К сожалению, ссылка msdn не упоминает какие-либо макропараметры для использования смещения строки (и символа) в данном контексте (т.е. При двойном щелчке результат поиска).
Можно ли получить смещение строки и/или символа в поле "Аргументы" в "Добавить программу"?
Изменить: есть ли способ доступа к этим открытым событиям через расширения с информацией о файле, строке и выбранной программе открытия?
Используя $(ItemPath) -n$(CurLine)
в качестве аргументов, работала для меня:
По умолчанию это невозможно, потому что нет Аргументы, отражающие результат поиска. Таким образом, вы сначала открываете файл внутри VisualStudio, а затем с помощью внешнего инструмента.
Я думаю, вы могли бы создать настраиваемый плагин Visual Studio и подключиться к выбору результатов поиска. Посмотрите Добавление поиска в окно инструмента, доступное для VS 2015, 2013 и 2012. Некоторое выполнение этого способа выглядит как Quick Open File Plugin для VS2010, но отсутствует текстовое поле для ввода линейного номера.
Дополнительная документация для создания VS-плагинов на MSDN
Btw, проверили ли вы "Promt for arguments" вариант для распространения ответа Томаса:
Вы можете получить решение для этого, которое занимает 2 шага, каждый из которых занимает мало времени, как только у вас есть результаты поиска. 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
аргументыЗаключение
Это был интересный вопрос, и область, которую я раньше не изучал. Я мог бы использовать эту технику сам и для других целей.