2016-09-26 2 views
3

Wir möchten Reorder using statements und halten sie außerhalb der namespace. ReSharper versetzt sie beim Neuanordnen in die namespace.Benutze die Reihenfolge und behalte sie AUSSERHALB des Namensraums

Visual Studio or Resharper functionality for placement of using directives fragt, wie usings in die namespace. setzen Das ist nicht das, was wir tun möchten. Seine Antwort schlägt vor, ReSharper > Options > Code Editing → C# → Code Style → Add 'using' directive to the deepest scope zu gehen. Obwohl Re-Sharper die Option usings neu ausgewählt hat, platziert ReSharper die Verwendung innerhalb der namespace.

enter image description here

Wie können wir Reorder using statements und halten sie außerhalb des namespace?

Zusätzliche Dinge, die wir versucht haben:

Unsere StyleCop.Analyzers ruleset folgende Richtlinie bezogenen Regeln enthält:

SA1200 Using directives must be placed correctly 
SA1208 System using directives must be placed before other using directives 
SA1209 Using alias directives must be placed after other using directives 
SA1210 Using directives must be ordered alphabetically by namespace 

diese Regeln zusammen mit der Auswahl in den Optionen nicht „Angesichts usings zum tiefsten hinzufügen scope“, erhalten wir die folgende Warnung auf Build:

SA1200 Using directive must appear within a namespace declaration. 

Wie können wir ReSharper konfigurieren, dass unter Verwendung von d zu erzwingen ireatives muss außerhalb eine Namespace-Deklaration angezeigt werden?

Antwort

2

hinzufügen stylecop.json das Projekt mit folgenden Einstellung:

{ 
    "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json", 
    "settings": { 
    "orderingRules": { 
     "usingDirectivesPlacement": "outsideNamespace" 
    } 
    } 
} 

Dann enable the use of stylecop.json durch Editieren die Datei ProjectName.csproj, das folgende Element in der Projektdatei lokalisieren ...

<None Include="stylecop.json" /> 

.. und ändern Sie die Definition wie folgt.

+1

Nur zur Klarstellung, dies ändert die Einstellungen für die StyleCopAnalyzers, was bedeutet, dass ReSharper hier nicht beteiligt ist. – citizenmatt

+0

@citizenmatt Seltsamerweise ehrt ReSharper die Einstellung. Das heißt, wenn wir 'Reorder using' mit ReSharper verwenden, werden sie nur dann außerhalb des Namespace abgelegt, wenn wir dies hinzugefügt haben. Ist das deine Erfahrung? Oder verpasse ich etwas? –

+1

ReSharper hat keine Kenntnis von dieser Datei und kann daher die Einstellung nicht berücksichtigen. Wenn Sie die "Reorder Usings" aufrufen, ist dies von der Alt + Geben Sie Menü, und wenn ja, hat das Element ein kleines Visual Studio-Symbol daneben? Ich denke, was passiert, ist, dass Sie die Aktionen von Visual Studio tatsächlich aus ReSharper-Menüs aufrufen. Aber ReSharper macht hier nicht die Arbeit. – citizenmatt

Verwandte Themen