изменить шаблоны для новых участников

когда я выполняю рефакторинг в Visual Studio (2019) и говорю «создать поле», по умолчанию всегда добавляется ключевое слово «private» перед новым полем. Я не хочу этого. Как я могу изменить это поведение?

Я не уверен, что эта функциональность предоставляется самой визуальной студией или roslinator.

      private int foo; // no!
int foo; // yes!

1 ответ

Если вы пойдете в Tools| Code Snippets Manager...меню:

Откроется менеджер фрагментов кода.

  • Выбирать CSharpв раскрывающемся списке языков.
  • В дереве перейти к Refactoring| Generate field

Это даст вам местоположение фрагмента, на моей машине (с французской локалью) это:

      C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC#\Snippets\1033\Refactoring\GenerateField.snippet

Затем вы можете отредактировать файл, чтобы изменить доступность на желаемое значение.

      <?xml version="1.0" encoding="utf-8"?>
<CodeSnippets  xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
    <CodeSnippet Format="1.0.0">
        <Header>
            <Title>Generate Field</Title>
            <Description>Snippet for the field created by the 'Generate Field' refactoring</Description>
            <Author>Microsoft Corporation</Author>
            <SnippetTypes>
                <SnippetType>Refactoring</SnippetType>
            </SnippetTypes>
        </Header>
        <Snippet>
            <Declarations>
                <Literal Editable="true">
                    <ID>accessibility</ID>
                    <!-- put public here, actually on my machine it is already public -->
                    <Default>public</Default>
                </Literal>
                <Literal Editable="true">
                    <ID>modifiers</ID>
                    <Default></Default>
                </Literal>
                <Literal Editable="true">
                    <ID>type</ID>
                    <Default>type</Default>
                </Literal>
                <Literal Editable="true">
                    <ID>signature</ID>
                    <Default>signature</Default>
                </Literal>
            </Declarations>
            <Code Language="csharp">
                <![CDATA[$end$$accessibility$ $modifiers$ $type$ $signature$;]]>
            </Code>
        </Snippet>
    </CodeSnippet>
</CodeSnippets>

Но вы также можете создать свой собственный фрагмент на основе этого, назвать его «Создать публичное поле» и зарегистрировать его, как описано здесь .

Редактировать:

В источниках Roslynator я ничего об этом не нашел . Это определенно похоже на быстрое действие VS. В Roslyn/VS была ошибка о чем-то подобном здесь, и она была связана с ошибкой, влияющей на многие быстрые действия . Эта ошибка была исправлена. Похоже, вам просто нужно настроить редактор:

Добавьте следующее в файл .editorconfig в корне вашего проекта: dotnet_style_require_accessibility_modifiers = omit_if_default:suggestion

Посмотреть варианты для dotnet_style_require_accessibility_modifiers здесь .

Другие вопросы по тегам