Visual Studio 2008에서 프로그램 적으로 자본화를 시행합니까?
-
06-07-2019 - |
문제
Visual Studio 2008에서 키워드의 자본화를 프로그래밍적으로 강제하는 가장 쉬운 방법은 무엇입니까?
우리는 독점적 명령 구분 언어 (HTML과 같은)로 작업합니다. 우리는 구형 편집자에서 Visual Studio 2008로 마이그레이션하려고합니다. 코딩 표준은 명령을 활용하는 것입니다. 기존 편집기는 명령 시작 구분 기호를 인식하고 최종 분리기가 입력되거나 이스케이프 키를 누르기 전까지는 대문자를 강제로 인식하도록 사용자 정의됩니다.
Visual Studio 2008에서 가장 좋은 방법은 무엇입니까? 매크로 또는 애드 인으로 수행 할 수 있습니까?
(편집 1-12-2009)
지금까지 제안 해주셔서 감사합니다. 나는 그들이 내 질문에 대답한다고 생각하지 않습니다.
설명 :
- 이전 편집자는 CodewRight 였으므로 사용자 정의는 Visual Studio에 휴대용이 없습니다.
- 소스 코드는 C#이 아닙니다. Stylecop은 C#을위한 것 같습니다. 우리의 언어는 HTML과 같은 마크 업 언어와 유사하지만 다른 구분 기호 문자 및 명령이 있습니다.
- 실제로 개발자 유형으로 자본화하려고 노력하고 있으며 적절한 자본화에 대해 상기시키지 않습니다. 명령이 모두 정리되어 있으므로 현재 편집기는 실제로 시작 구분기를 입력 할 때 캡 잠금 장치를 켜고 있습니다. 끝 구분 기호 또는 이스케이프 키를 누르면 캡 잠금 장치가 다시 꺼집니다. 이것은 키보드의 캡 잠금 상태와 무관합니다.
해결책 3
이것은 최선의 해결책이 아닐 수도 있지만 여기에 내가 생각해 낸 것이 있습니다.
매크로를 사용하여 주요 프레스 이벤트를 캡처하십시오.
방법은 다음과 같습니다.
- Visual Studio에서 도구-> 매크로-> 매크로 IDE 메뉴
- "MyMacros"를 두 번 클릭하여 다른 부분을보십시오.
- "Environmentevents"를 두 번 클릭하십시오.
- 환경 이벤트 모듈에 다음 코드를 추가하십시오.
파일을 저장하고 테스트 할 일반 대 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 키를 캡처하는 방법을 아직 알지 못했지만 지금은 효과가 있습니다.
제휴하지 않습니다 StackOverflow