Каков самый простой способ программно принудительно использовать заглавные буквы в ключевых словах в Visual Studio 2008?
Мы работаем с собственным языком с разделителями команд (например, HTML). Мы пытаемся перейти со старого редактора на Visual Studio 2008. Наши стандарты кодирования заключаются в использовании команд с заглавной буквы. Старый редактор настроен на распознавание разделителя начала команды и принудительное использование заглавных букв до тех пор, пока не будет набран конечный разделитель или не будет нажата клавиша выхода.
Как лучше всего это сделать в Visual Studio 2008? Это можно сделать с помощью макроса или надстройки?
(Отредактировано 1 декабря 2009 г.)
Спасибо за предложения. Не думаю, что они ответят на мой вопрос.
Разъяснения:





Хотя это занимает много времени, сообщение это SO показывает вам, как добавлять теги в настройку проверки в VS2005. Не думаю, что в 2008 году метод изменился.
Если вы переходите со старой версии Visual Studio, вы можете просто импортировать свои старые настройки и пользовательские теги.
Попробуйте StyleCop, доступный на веб-сайте Microsoft. Возможно, вам придется настроить набор правил для ваших конкретных стандартов кодирования. Для используемых нами стандартов кодирования он был почти идеальным сразу после покупки.
Возможно, это не лучшее решение, но вот что я придумал.
Используйте макросы для записи событий нажатия клавиш.
Вот как:
Сохраните файл и вернитесь в обычную VS IDE для тестирования.
Private My_AutoCaps As Boolean = False
Private Sub TextDocumentKeyPressEvents_BeforeKeyPress(ByVal Keypress _
As String, ByVal Selection As EnvDTE.TextSelection, _
ByVal InStatementCompletion As Boolean, ByRef CancelKeyPress As Boolean) _
Handles TextDocumentKeyPressEvents.BeforeKeyPress
Dim fileName As String = UCase(Selection.DTE.ActiveDocument.Name)
If ( fileName.EndsWith(".CPI") ) Then
If (My_AutoCaps) Then
'MsgBox(Keypress)
If (Keypress = "(" Or Keypress = ":") Then
'MsgBox("End of command character pressed.")
My_AutoCaps = False
Return
ElseIf (Keypress >= "a" And Keypress <= "z") Then
'MsgBox("Letter pressed.")
Selection.Text = UCase(Keypress)
CancelKeyPress = True
End If
Else 'AutoCap is not on yet
If (Keypress = "^") Then
'MsgBox("You pressed the Start Command character.")
My_AutoCaps = True
Return
End If
End If
End If
End Sub
Этот макрос ограничен файлами * .CPI.
Я еще не понял, как захватить клавишу Esc, но пока это сработает.
Хорошо, я видел, как обсуждали этот инструмент, но до сих пор игнорировал его. Это обязательно поможет!