Это не совсем ответ на ваш вопрос, но это еще один вариант, который вы могли бы рассмотреть. Вы можете определить макросы, которые выполняют каждую нужную вам операцию, а затем назначить их кнопкам панели инструментов. Пример макроса будет:
Sub TODOComment()
DTE.ExecuteCommand("Edit.CommentSelection")
DTE.ActiveDocument.Selection.LineUp()
DTE.ActiveDocument.Selection.EndOfLine()
DTE.ActiveDocument.Selection.NewLine()
DTE.ActiveDocument.Selection.Text = "// TODO "
End Sub
При этом используется встроенная функция секции комментариев, затем она поднимается до строки перед выбором, вставляет возврат в конце строки и добавляет комментарий «TODO». Таким образом, есть очевидные недостатки (не запускайте его в верхней части файла), но он будет делать более или менее то, что вам нужно. Раскомментируйте по существу то же самое (раскомментируйте все, затем удалите верхнюю строку).
Я не очень хорошо знаю механизм автоматизации, поэтому я склонен делать, если я хочу научиться делать такие вещи, - записывать временный макрос, выполнять интересующие меня действия, затем настраивать вывод, чтобы получить результаты, которые я после. Это позволяет сэкономить немного времени на поиске не всегда очевидной документации.