Запись макроса в Visual Studio 2010 не обрабатывает нажатия startfline-firstcolumn - PullRequest
0 голосов
/ 10 сентября 2011

В Visual Studio 2008 я регулярно записывал макрос, чтобы (например) взять список объявлений членов класса и превратить его в список определений свойств.

При использовании Visual Studio 2010 появляется средство записи макросовчтобы игнорировать 2-е нажатие клавиши Home (1-е должно привести вас к началу текста в строке, 2-е - к позиции символа 1 в строке).

Установка курсора наконец строки с вкладками, начало записи и двойное нажатие кнопки «Домой» приводит к следующему (не имеет значения, являются ли вкладки настоящими вкладками или пробелами) ...

Sub TemporaryMacro()
    DTE.ActiveDocument.Selection.StartOfLine(VsStartOfLineOptions.VsStartOfLineOptionsFirstText)
End Sub

Когда что этодолжен действительно поставить ...

Sub TemporaryMacro()
    DTE.ActiveDocument.Selection.StartOfLine(VsStartOfLineOptions.VsStartOfLineOptionsFirstText)
    DTE.ActiveDocument.Selection.StartOfLine(VsStartOfLineOptions.VsStartOfLineOptionsFirstColumn)
End Sub

Я знаю, что могу просто зайти и отредактировать это, но, как я обычно записываю что-то, а затем сразу запускаю это несколько раз, это не привлекательно.И я не знаю ни о каком нажатии клавиши, которое приведет вас к первому столбцу.

Может кто-нибудь подтвердить, является ли это ошибкой при записи макросов в VS2010, или я что-то делаю действительно тупой?

1 Ответ

1 голос
/ 15 мая 2012

Это также не работает для меня, то есть оно делает для меня то же самое, что и для вас, и макрос не воспроизводится правильно.

В качестве обходного пути я использую комбинацию клавиш[конец, вправо, вверх], чтобы перейти к первой позиции символа при записи макроса.Это означает:

    DTE.ActiveDocument.Selection.EndOfLine()
    DTE.ActiveDocument.Selection.CharRight()
    DTE.ActiveDocument.Selection.LineUp()

Единственный раз, когда это не работает, это когда вы работаете с последней строкой файла.Если вы ожидаете, что это произойдет, вы можете использовать [вверх, конец, вправо] вместо этого:

    DTE.ActiveDocument.Selection.LineUp()
    DTE.ActiveDocument.Selection.EndOfLine()
    DTE.ActiveDocument.Selection.CharRight()

Конечно, эта версия не будет работать правильно в первой строке файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...