在Visual Studio 2008中以编程方式强制关键字大写的最简单方法是什么?
我们使用专有的命令分隔语言(如HTML)。我们正在尝试从较旧的编辑器迁移到Visual Studio 2008.我们的编码标准是将命令大写。旧的编辑器可以自定义以识别命令begin delimiter并强制大写,直到键入结束分隔符或按下转义键。
在Visual Studio 2008中,最好的方法是什么?可以使用宏或加载项吗?
(编辑1-12-2009)
感谢您提出的建议。我不认为他们回答了我的问题。
澄清:
答案 0 :(得分:4)
试用微软网站上提供的StyleCop。您可能必须根据特定的编码标准调整规则集。对于我们使用的编码标准,它几乎是完美的开箱即用。
答案 1 :(得分:1)
虽然耗时,this SO帖子会向您展示如何在VS2005中为验证设置添加标签。我认为这种方法在2008年没有改变。
如果您从较旧版本的Visual Studio迁移,则可以只导入旧设置和自定义标记。
答案 2 :(得分:1)
这可能不是最好的解决方案,但这就是我想出来的。
使用宏捕获按键事件。
以下是:
保存文件并返回常规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键,但现在可以使用了。