Подтвердить что ты не робот

Компиляция XML-комментариев Visual Studio по одной строке

В Visual Studio, как мне изменить фрагмент комментариев комментариев XML по умолчанию из трех строк в одну строку?

В настоящее время он предоставляет этот фрагмент, когда я набираю ///:

/// <summary>
/// 
/// </summary>

Мне нужен этот более короткий фрагмент:

///<summary></summary>

Мои резюме часто кратки, и лишняя строка не нужна.

Есть ли параметр конфигурации для этого или некоторого настраиваемого кода/пользовательского аддона, чтобы исправить это.

4b9b3361

Ответ 1

Это старый вопрос, но мне понравилось предложение Джейсона Уильямса о создании фрагмента для этого, поэтому я и сделал. Не очень сложно, но копировать и вставлять еще проще:)

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <CodeSnippet Format="1.0.0">
    <Header>
      <Title>Single line summary</Title>
      <Shortcut>summary</Shortcut>
    </Header>
    <Snippet>
      <Code Language="csharp">
        <![CDATA[/// <summary>$end$</summary>]]>
      </Code>
    </Snippet>
  </CodeSnippet>
</CodeSnippets>

Вы можете изменить ярлык на (возможно, очевидно), изменив значение <Shortcut>.

Вставьте это в новый файл с именем SingleLineSummary.snippet и сохраните его в папке %USERPROFILE%\Documents\Visual Studio 2012\Code Snippets\Visual C#\My Code Snippets (измените свою версию Windows и Visual Studio).

Если вы не знакомы с фрагментами, чтобы использовать это, просто поместите курсор над методом/свойством/etc, начните вводить summary, а затем несколько раз удалите TAB.

Ответ 2

Вы можете вручную отформатировать комментарий, как вам нравится, если он остается действительным xml.

Самый дешевый подход может заключаться в отключении автоматического действия по созданию комментариев в Visual Studio (Инструменты > Параметры > Текстовый редактоp > С# > Создание комментариев XML-документации для /// ) и использование фрагмента кода для вставки /// <summary></summary>.

Если вы хотите, чтобы формат по умолчанию был одной строкой и/или помогал сохранить формат в порядке и читабельнее, добавьте Atomineer Pro Documentation может также представлять интерес. Среди многих вариантов можно использовать компактный 1-строчный формат для любых комментариев, которые достаточно коротки, чтобы соответствовать одной строке. Он специально разработан для этого, поэтому он может работать лучше для ваших нужд.

Последнее предложение состоит в том, что существует несколько других надстроек (Resharper и т.д.), которые могут генерировать простые комментарии шаблона xml doc-комментарии - я считаю, что некоторые из этих добавок могут быть настроены для использования определенного фрагмента текста. Если у вас уже есть такой аддон, возможно, ваше устройство можно настроить так, чтобы обеспечить требуемый формат одной строки, но это немного более продвинуто, чем это возможно при базовой настройке Visual Studio, предложенной выше.

Ответ 3

Лично я считаю, что это должно быть частью самого редактора VS. Я создал билет в голосе пользователя, который вы можете выбрать, если хотите.

Тем временем идея фрагмента является хорошей, но поведение немного отличается. Если вы хотите сохранить одно и то же поведение, и если вы захотите приобрести стороннее дополнение, то у SubMain есть продукт под названием "GhostDoc Pro", который с небольшими усилиями сделает это за вас. (Обратите внимание, что у них есть бесплатная, не "профессиональная" версия, "GhostDoc", но я не думаю, что она будет работать.)

Если вы хотите пройти этот маршрут, вот как это работает.

  • После установки GhostDoc Pro перейдите в меню "Инструменты". В верхней части появится новое выпадающее подменю "GhostDoc Pro".
  • Перейдите в Инструменты → GhostDoc Pro → Параметры → Правила
  • Вам нужно будет отредактировать шаблон T4 для типа EACH, для которого вы хотите, чтобы это вступило в силу.

    • Нажмите на правило, а затем нажмите "Изменить"
    • Вверху, измените

      /// <summary>
      ///<# GenerateSummaryText(); #>
      /// </summary>
      

      будет просто

      /// <summary><# GenerateSummaryText(); #></summary>
      
    • В методе GenerateSummaryText измените каждый this.WriteLine на просто this.Write
    • Нажмите "ОК" для сохранения, перейдите к следующему шаблону.
  • Перед закрытием страницы параметров перейдите в раздел "Общие" (из "Правила" ) и отметьте "Выделите автоматически сгенерированную сводку, когда Document This". Это приведет к тому, что вновь вставленный автоматический текст будет выбран с места в карьер, поэтому, если вам это не нравится, вы можете просто начать вводить текст. Конечно, если вы предпочитаете, чтобы текст просто не сгенерировался вообще, вы тоже можете это сделать, но вам придется немного модифицировать шаблоны T4. В частности, вам нужно будет GenerateSummaryText использовать только одну строку,

     this.Write(Context.ExecMacro("$(End)"));
    

    Это приведет к тому, что он не сгенерирует какой-либо текст, но поместит курсор между тегами <summary>.


Боковое примечание:

Если кто-то знает способ получить ReSharper или другие дополнительные инструменты для этого, мне также будет интересно увидеть это решение - если только по какой-то причине, кроме просто любопытства.