2016-05-04 5 views
1

Es ist möglich, apply analyzers to code via a command line utility. Ist es möglich, den entsprechenden Code-Fix auf den Code in diesem Dienstprogramm anzuwenden?Kann roylyln Code-Korrekturen über ein Befehlszeilenprogramm angewendet werden?

Was ich tun möchte, ist ein NuGet-Paket mit Analysatoren abzufragen, alle von ihnen gegen eine Codebasis laufen zu lassen, und sie müssen die entsprechenden Code-Fix für jede erkannte Instanz anwenden.

+0

"Ja." Solange du bereit bist, das Tool zu schreiben. :-) –

Antwort

2

Analysatoren, die in NuGet-Paketen enthalten sind, sollten bereits als Teil des Compilers ausgeführt werden, daher ist msbuild ausreichend. Es gibt (noch) kein Tool, das automatisch Codefixes anwendet. Sie sollten damit vorsichtig sein: Nicht alle Code-Fixes könnten "sicher" anzuwenden sein, oder Sie könnten zwei Code-Fixes haben, die den Code einfach von einem schlechten Zustand in einen anderen ändern!

+0

Also gibt es keine Abhängigkeit von irgendeinem Kontext? Konkret im Zusammenhang mit der IDE? Ich vermute nein und gebe zu, noch nicht so weit zu gehen. – Kit

+0

Einige Codefixes können VS IDE-Abhängigkeiten haben, aber nicht alle. Berücksichtigen Sie Code-Fixes, die in VS-Code unter Linux ausgeführt werden. :-) –

+0

Das Tool ist da: Sehen Sie sich die Testhelfer an, die mit einer Diagnostic + Code Fix-Lösungsvorlage versehen sind - für den Zweck, Code-Fixes zu testen, werden diese intern angewendet. Die relevanten Teile sind wahrscheinlich hier: https://github.com/Vannevelj/RoslynTester/blob/master/RoslynTester/RoslynTester/Helpers/CodeFixVerifier.cs#L109 (suchen Sie nach dem entsprechenden Ort in Ihren Testhilfsdateien) –

Verwandte Themen