我是使用Visual Studio 2008 IDE的新手。从vim切换。有没有办法设置Visual Studio自动缩进C注释/ * * /,如:
/*<ENTER>
我想要这个:
/*
* <CURSOR>
编辑: 看起来像Visual Studio 2008对C#注释有这种行为,但在C / C ++下没有: 文本编辑器&gt; C#&gt;高级&gt;为///
生成XML文档注释答案 0 :(得分:2)
您可以在EnvironmentEvents
project item中使用以下宏。它适用于所有选项卡样式(无,阻止或智能)。
Public Sub aftekeypress(ByVal key As String, ByVal sel As TextSelection, ByVal completion As Boolean) _
Handles TextDocumentKeyPressEvents.AfterKeyPress
If (Not completion And key = vbCr) Then
Dim textDocument As TextDocument = DTE.ActiveDocument.Object("TextDocument")
Dim startPoint As EditPoint = TextDocument.StartPoint.CreateEditPoint()
startPoint.MoveToLineAndOffset(sel.ActivePoint.Line - 1, 1)
Dim lines = startPoint.GetLines(sel.ActivePoint.Line - 1, sel.ActivePoint.Line)
If lines.LastIndexOf("*") = 1 And lines.LastIndexOf("/") <= 0 Then
If lines.LastIndexOf("/") = 0 Or _
DTE.Properties("TextEditor", "C/C++").Item("IndentStyle").Value = 0 Then
sel.Insert(" ")
End If
sel.Insert("* ")
End If
End If
End Sub
答案 1 :(得分:1)
根据我的经验,它已经做到了。
答案 2 :(得分:1)
我的评论已经自动格式化,我认为这是默认行为,但我安装了Visual Studio 2010和ReSharper。不幸的是,我无法在任何一个中找到设置来打开或关闭评论格式。但是,在Visual Studio 2010中查看示例宏时,您应该能够提供一个宏,它会根据您的喜好对您进行格式化。
查找示例宏
最完善的方法将是
答案 3 :(得分:1)
它不太相同,但您可以尝试评论Reflower插件:
http://www.kynosarges.de/CommentReflower.html(VS2008 +版) http://commentreflower.sourceforge.net/(VS2005的原始版本)
这适用于emacs风格;你在任何旧的方式中输入你的评论,然后键入你选择的快捷方式(或者如果你坚持的话,从菜单中选择它),同时光标在评论中,然后评论被包装。这不是特别光滑 - 我认为vim会在你输入时为你做这个,不是吗? - 但这很合理,你很快就习惯了。
我目前不在Windows中,所以我无法检查,但是从内存来看,虽然这不会完全按照要求格式化你的C评论,但它会产生一些非常合理的东西:
/* This is what Comment Reflower will do with your multi-line
* C comments, as far as I can remember.
*/
还支持预格式化区域,各种doxygen格式化项目以及各种类型的项目符号。 (选项对话框非常值得一看。)
就我个人而言,我确实对它进行评分,并且已经在Xcode中忽略了类似的东西。 (我写的iPhone代码文件中充满了字符,从我按下快捷键时出来的习惯。)我的vim时代已经过去了,但我当然更喜欢它等同于emacs。 (当我使用vim时,我第一次遇到它,虽然现在已经有一段时间了,而且我不记得当时发现它太糟糕了 - 所以大概它对于vim评论功能也很好。 )
(作为一个分页说明 - 有一个示例宏随Visual Studio 2005示例宏集提供,声称为你包装评论。也许它仍然在2008年左右?无论如何,它做得很好,我用它我自己已经有一段时间了,但是除了C ++ //
风格的评论之外,它有一种混乱比一条只包含C ++ {{1}}风格的评论更复杂的东西。评论Reflower要好得多。)
答案 4 :(得分:1)
Visual Assist X 可以解决问题。它是C / C ++的 ReShaper ,并且比C / C ++的ReSharper更好。您必须配置代码段“/ **”才能使其正常运行。
PS:在该代码段配置中,您甚至可以根据需要自动生成文档。类似的东西: