обнаружение активности в редакторе визуальной студии - PullRequest
4 голосов
/ 18 октября 2010

Я хотел бы знать, есть ли программный хук в редакторе Visual Studio, чтобы я мог определить, печатает ли кто-либо в редакторе.

Спасибо!

Ответы [ 2 ]

7 голосов
/ 18 октября 2010

Есть несколько способов сделать это в Visual Studio.Вот несколько доступных крючков.

  • IOleCommandTarget: нажатия клавиш в Visual Studio в конечном итоге представляются в виде команд и передаются по этой цепочке
  • KeyProcessor: для прямого ввода с клавиатуры WPF вы можете создать MEF *Компонент 1008 * и пусть созданный KeyProcessor обрабатывает ввод
  • ITextBuffer::Changed: непосредственно прослушивает изменения в базовом буфере для интерпретации ввода.

Каждый из них довольно сложен, и добавление полной выборки для них в вопросе SO просто нецелесообразно.Но просто введя их имена в Google, вы должны указать правильное направление.

Обратите внимание, что ввод с клавиатуры в Visual Studio - очень сложный процесс.Он имеет дело с сообщениями Windows, старыми командами Visual Studio, WPF, перехватчиками MEF, переводом акселераторов и т. Д. Это очень грязно, и попытка справиться со всем вводом в любой заданной точке чревата проблемами.Я приложил все усилия, чтобы документировать текущее состояние ввода с клавиатуры в Visual Studio, работая над плагином, и вы можете найти его здесь

Это вряд липолное понимание, хотя.

0 голосов
/ 18 октября 2010

Там определенно есть.Стеки плагинов делают то же самое (например, ViEmu, Resharper и т. Д.).Пойдите и прочитайте документацию по расширению редактора VS, используя MEF.Там много всего, простой запрос Google даст вам множество результатов.

...