изменить шаблоны для новых участников
когда я выполняю рефакторинг в 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
здесь .