如何在Visual Studio 2008中通过编程实现自动大写?

3
什么是在Visual Studio 2008中以编程方式强制关键字大写的最简单方法?
我们使用一种专有的命令定界语言(类似于HTML)。 我们正在尝试从旧编辑器迁移到Visual Studio 2008。 我们的编码标准是将命令大写。 旧编辑器已经定制,以识别命令开始定界符并强制大写,直到键入结束定界符或按下转义键为止。
在Visual Studio 2008中最好的方法是什么? 可以用宏或插件完成吗?
(编辑于1-12-2009)
感谢迄今为止的建议。 我不认为它们回答了我的问题。
澄清:
- 之前的编辑器是CodeWright,因此那里的自定义无法移植到Visual Studio。 - 源代码不是C#。 StyleCop似乎是专门针对C#的。 我们的语言类似于标记语言(例如HTML),但具有不同的定界符字符和命令。 - 我试图在开发人员键入时实际进行大写,而不是提醒他们正确的大写方式。 由于所有命令都已定界,因此我们当前的编辑器在键入开始定界符时实际上会将大写锁定打开。 当键入结束定界符或按下转义键时,大写锁定会被关闭。 这与键盘上Caps Lock的状态无关。
3个回答

4

试用一下从微软网站上提供的StyleCop。您可能需要调整规则集以适应您特定的编码标准。对于我们使用的编码标准,它几乎是开箱即用的完美。


不错,我曾经看到过这个工具的讨论,但一直忽略它,直到现在。这绝对会有所帮助! - BobbyShaftoe

1

虽然耗时,但this SO帖子向您展示了如何在VS2005中添加标签到验证设置。我认为这种方法在2008年并没有改变。

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


1

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

使用宏来捕获按键事件。

以下是具体步骤:

在Visual Studio中,转到工具->宏->宏IDE菜单。 双击"MyMacros"以查看不同的部分。 双击"EnvironmentEvents"。 在环境事件模块中添加以下代码。 保存文件并返回常规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键,但现在这样做可以。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接