So zeigen Sie einen bestimmten Hinweis in Visual Studio an

9

Ich arbeite gerade daran, meine Codierungssensibilität zu verbessern, also fange ich an, den von mir verwendeten Typen einige Erweiterungsmethoden hinzuzufügen.

Ich habe herausgefunden, dass ich die gleiche Aktion oft immer mit den gleichen Attributen mache.

Ich möchte diesen Hinweis anzeigen, wenn jemand ReplaceNewLine("|") aufruft:

  

Das Zeichen, das Sie entfernen möchten, ist | . Verwenden Sie stattdessen die Erweiterung RemoveNewLine() ohne Attribute.

Ich habe es mit dem [Obsolete(...)] -Attribut versucht, aber das wurde jedes Mal angezeigt, wenn ich die Funktion aufgerufen habe.

Meine Frage ist: Wie kann ich einen bestimmten Hinweis basierend auf meinen Eingaben in Visual Studio anzeigen?

Code:

%Vor%

Apposition:

  • Natürlich kann der Hinweis den Code Obsolete ( 0618 / CS0618 ) haben, wenn er angezeigt wird, aber das ist nicht wichtig für mich. Ich möchte nur den Hinweis gezeigt bekommen!
  • Ich arbeite mit C# 6.0 , .NET 4.6 und Visual Studio 2015 RC .
cramopy 16.06.2015, 15:36
quelle

3 Antworten

3

In Visual Studio 2015 ist dies mit einer Roslyn-Diagnose (und optional Fix) möglich. Der neue Visual Studio 2015-Code-Editor verwendet Roslyn unter der Haube, um alles zu analysieren, was die Code-Analyse, Metriken und Refactoring-Engine jetzt darauf basiert.

Eine Beispielimplementierung einer solchen Überprüfung ist auf der Roslyn github-Seite . Eine vollständige Implementierung wäre ein bisschen viel für eine Antwort hier auf StackOverflow, da es eine Reihe von Schritten mit sich bringt und zu einem vollständigen Tutorial führt, aber dieses vollständige Tutorial von etwas ähnliches wird hier gegeben . und kann die Grundlage für Ihre Arbeit sein. (Fragen Sie später weitere Fragen). Code für die Standardregeln, die mit dem Produkt geliefert werden, finden Sie auch im Roslyn GitHub .

Dieses Stück Code sollte dir ziemlich nahe kommen, aber ich habe es nicht getestet. Erstellen Sie eine Standarddiagnose & amp; Nach dem Roslyn SDK-TOTorial korrigieren und die Methoden Initialize und AnalyzeNode ersetzen (den Namespace durch den eigenen ersetzen):

%Vor%

Wenn Sie etwas machen möchten, das mit älteren Versionen von Visual Studio abwärtskompatibel ist, können Sie eine benutzerdefinierte Codeanalyse-Regel schreiben. Diese Beispielregel nimmt die Eingabe in einen Aufruf von Regex.Match und Regex.Replace und gibt eine Warnung aus, wenn es nicht kompiliert wird. Es wäre noch einfacher, eine Warnung zu geben, wenn es eine konstante Zeichenfolge ist.

Visual Studio-Erweiterungen wie Resharper und CodeRush bieten ein SDK, das ähnliche Funktionen wie FxCop ausführen kann, aber wie Roslyn in die IDE einbindet. Es könnte eine Option für Sie sein, diesen Ansatz zu wählen.

Wenn Sie etwas im Code-Editor haben möchten, der keine Erweiterung oder Anpassung verwendet, dann fügen Sie% ce_de% dem codedoc hinzu, so viel wie möglich. Im schlimmsten Fall könnten Sie in die Methode <remark /> einfügen, damit Entwickler frühzeitig (zur Entwicklungs- / Debug-Zeit) erfahren, dass sie Ihre API falsch verwenden.

    
jessehouwing 30.06.2015, 11:29
quelle
1

Ich denke nicht, dass es möglich ist, nur mit Ausnahme von

nachdrücklicher Kommentar

:)

%Vor%

Ich kenne keinen anderen Weg, einen Hinweis in reinem Visual Studio zu erzeugen, mit Ausnahme von #warning msg (und #pragma ), aber sie sind nur bedingt durch vordefinierte Build-Parameter (wie #IF DEBUG etc) und sie Gehe direkt zur Fehlerliste.

Btw & amp; nur zum Spaß: Sie können Ihr Beispiel lösen, indem Sie den Standardwert

hinzufügen %Vor%

Bearbeiten: jessehouwing Antwort ist viel besser, diese ganze Antwort war mehr oder weniger a Witze über kraftvolle Kommentare :)

    
Jan 'splite' K. 30.06.2015 11:16
quelle
-3

Verwenden Sie einfache Anführungszeichen

%Vor%     
BALA s 30.06.2015 09:08
quelle