Visual Studio 2008 отступ в C комментарий / * * / - PullRequest
3 голосов
/ 03 февраля 2010

Я новичок в использовании Visual Studio 2008 IDE. Переключение с vim. Есть ли способ настроить Visual Studio для автоматического отступа комментариев C / * * /, например:

/*<ENTER>

Я хочу это:

/*
 * <CURSOR>

Edit: Похоже, что Visual Studio 2008 имеет такое поведение для комментариев C #, но не для C / C ++ в: Текстовый редактор> C #> Дополнительно> Создать комментарии к документации XML для ///

Ответы [ 5 ]

2 голосов
/ 20 сентября 2010

Вы можете использовать следующий макрос в элементе проекта EnvironmentEvents . Он должен работать для всех стилей вкладок (Нет, Блок или Смарт).

    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 голос
/ 22 сентября 2010

Visual Assist X делает свое дело. Это ReShaper для C / C ++ и работает лучше, чем ReSharper для C / C ++. Вам нужно настроить фрагмент "/ **", чтобы он хорошо работал.

PS: в этой конфигурации фрагмента вы можете даже автоматически генерировать документацию, как вам нравится. Что-то вроде:

1 голос
/ 22 сентября 2010

Это не совсем то же самое, но вы можете попробовать надстройку Comment 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 ++ //. Comment Reflower намного лучше.)

1 голос
/ 18 сентября 2010

Мои комментарии уже автоматически форматируются таким образом, я думаю, что это поведение по умолчанию, но у меня установлены Visual Studio 2010 и ReSharper.К сожалению, я не могу найти параметр ни в одном, чтобы включить или выключить форматирование комментария.Однако, глядя на примеры макросов в Visual Studio 2010, вы сможете найти макрос, который будет форматировать ваши комментарии так, как вам нравится.

Чтобы найти примеры макросов

  1. Откройте Visual Studio
  2. Нажмите Alt + F8, чтобы открыть Macro Explorer
  3. Разверните вкладку сэмплов
  4. , дважды щелкните «VSEditor»

Наиболееполные методы справки будут

  • NewCommentLine
  • GetCommentLinePrefix
1 голос
/ 03 февраля 2010

По моему опыту, он уже делает это.

...