在 Visual Studio 2008 中以编程方式强制关键字大写的最简单方法是什么?

我们使用专有的命令分隔语言(如 HTML)。我们正在尝试从较旧的编辑器迁移到 Visual Studio 2008。我们的编码标准是将命令大写。旧编辑器经过自定义,可以识别命令开始分隔符并强制大写,直到键入结束分隔符或按下转义键。

在 Visual Studio 2008 中执行此操作的最佳方法是什么?可以通过宏或者插件来完成吗?

(2009 年 1 月 12 日编辑)

感谢您迄今为止提出的建议。我认为他们没有回答我的问题。

澄清:

  • 以前的编辑器是 CodeWright,因此其中的自定义无法移植到 Visual Studio。
  • 源代码不是 C#。StyleCop 似乎是专门针对 C# 的。我们的语言类似于 HTML 等标记语言,但具有不同的分隔符和命令。
  • 我试图在开发人员键入时实际大写,而不是提醒他们正确的大写。由于命令都是分隔的,我们当前的编辑器实际上在键入开始分隔符时打开大写锁定。当按下结束分隔符或退出键时,大写锁定将关闭。这与键盘上 Caps Lock 的状态无关。
有帮助吗?

解决方案 3

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

使用宏捕获按键事件。

就是这样:

  1. 在 Visual Studio 中,转到 工具->宏->宏IDE 菜单
  2. 双击“MyMacros”查看不同部分
  3. 双击“环境事件”
  4. 在环境事件模块中添加以下代码。
  5. 保存文件并返回常规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 键,但现在可以了。

其他提示

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

虽然费时费力, SO 帖子向您展示了如何将标签添加到 VS2005 中的验证设置。我认为 2008 年方法没有改变。

如果您要从旧版本的 Visual Studio 迁移,您可能只需导入旧设置和自定义标记即可。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top