Visual studio 在VisualStudio2008中以编程方式强制大写?

Visual studio 在VisualStudio2008中以编程方式强制大写?,visual-studio,visual-studio-2008,customization,Visual Studio,Visual Studio 2008,Customization,在VisualStudio2008中,以编程方式强制关键字大写的最简单方法是什么 我们使用专有的命令分隔语言(如HTML)。我们正在尝试从较旧的编辑器迁移到VisualStudio2008。我们的编码标准是将命令大写。对旧编辑器进行了自定义,以识别命令begin delimiter并强制大写,直到键入结束分隔符或按escape键为止 在VisualStudio2008中,最好的方法是什么?可以用宏或外接程序完成吗 (编辑日期:1-12-2009) 谢谢你到目前为止的建议。我想他们没有回答我的问题

在VisualStudio2008中,以编程方式强制关键字大写的最简单方法是什么

我们使用专有的命令分隔语言(如HTML)。我们正在尝试从较旧的编辑器迁移到VisualStudio2008。我们的编码标准是将命令大写。对旧编辑器进行了自定义,以识别命令begin delimiter并强制大写,直到键入结束分隔符或按escape键为止

在VisualStudio2008中,最好的方法是什么?可以用宏或外接程序完成吗

(编辑日期:1-12-2009)

谢谢你到目前为止的建议。我想他们没有回答我的问题

澄清:

  • 以前的编辑器是CodeWright,因此那里的自定义设置无法移植到visual studio
  • 源代码不是C#。StyleCop似乎是专门为C#设计的。我们的语言与HTML等标记语言类似,但具有不同的分隔符和命令
  • 我试图将开发人员的类型实际资本化,而不是提醒他们适当的资本化。由于命令都是分隔的,所以当前编辑器在键入起始分隔符时实际上会打开大写锁定。按下结束分隔符或escape键时,caps lock将关闭。这与键盘上大写锁定的状态无关
虽然耗时,但post向您展示了如何在VS2005中向验证设置添加标记。我认为这种方法在2008年没有改变


如果您要从较旧版本的Visual Studio迁移,则可以只导入旧设置和自定义标记

试用,可从Microsoft网站获得。您可能需要根据特定的编码标准调整规则集。对于我们使用的编码标准,它几乎是开箱即用的完美方案。

这可能不是最好的解决方案,但下面是我想到的

使用宏捕获按键事件

以下是方法:

  • 在Visual Studio中,转到工具->宏->宏IDE菜单
  • 双击“MyMacros”以查看不同的部分
  • 双击“环境事件”
  • 在环境事件模块中添加以下代码
  • 保存文件并返回到常规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
    
    Private My_自动映射为布尔值=False
    私有子文本文档按键事件\u按键前(ByVal按键_
    作为字符串,ByVal选择作为EnvDTE.TextSelection_
    ByVal InStatementCompletion为布尔值,ByRef CancelKeyPress为布尔值)_
    处理TextDocumentKeyPressEvents.BeforeKeyPress事件
    Dim文件名为String=UCase(Selection.DTE.ActiveDocument.Name)
    如果(fileName.EndsWith(“.CPI”)),则
    如果(我的_自动捕捉)那么
    'MsgBox(按键)
    如果(Keypress=“(”或Keypress=“:”),则
    'MsgBox(“按下命令结束字符”)
    My_AutoCaps=错误
    返回
    
    ElseIf(Keypress>=“a”和Keypress Nice,我已经看过这个工具的讨论,但直到现在都忽略了它。这肯定会有帮助!