2013-08-06 7 views
9

Ostatnio grałem dużo z ReSharperem i chciałbym skonfigurować dla mojego zespołu powiadomienia, jeśli klasa C# lub plik C# nie ma standardowego standardu komentowania kodu. Niestety nie udało mi się jeszcze wiele znaleźć na ten temat.Czy mogę używać ReSharper do wymuszania standardów komentowania?

Na przykład, chciałbym, aby wszystkie metody lub funkcje mają opis komentarz nad nimi:

/// <summary> 
/// Description of MyMethod here. 
/// </summary> 
public void MyMethod(); 

Chciałbym również zauważyć, że podstawowym Sprawdzić, czy (liczba linii kodu)/(Liczba linii komentarzy) dotyczy jakiegoś magicznego szczęśliwego medium i w razie potrzeby utwórz powiadomienie lub ostrzeżenie.

Odpowiedz

16

Jedną z prostych opcji na początek (która nawet nie wymaga R #) jest włączenie generowania pliku dokumentacji XML, a następnie potraktowanie ostrzeżeń jako błędów. Zapewni to, że każdy publiczny członek mającyma dokumentację.

Nie zapewni to, że komentarze będą dobre, oczywiście ... ale to zapewni ich istnienie.

EDIT: R # robi mieć ustawienie dla tego - Under Code Inspekcji, inspekcja nasilenie, C#, ostrzeżenia kompilatora, poszukaj CS1591: Missing XML comment for publicly visible type or member (i ostrzeżeń związanych blisko niego). Zmień powagę tego błędu na Błąd i może pomóc Ci - ale trudno powiedzieć, że jesteś w nietypowym środowisku.

+0

Bardzo czysty roztwór do pierwszej części pytania w normalnych okolicznościach - Jednak ja specjalnie wymagają rozwiązania R # jak używamy Unity3D silnik, który nie korzysta z programu Visual Studio do przeprowadzenia kompilacji projektu, i dlatego nie mogę dobrze wykorzystać powyższych. –

+2

@ S.Richmond: Jestem zdezorientowany - R # to wtyczka Visual Studio. Jeśli nie używasz VS, w jaki sposób zamierzasz używać R #? Ponadto, każdy kompilator języka C#, jaki widziałem, jest w stanie wygenerować dokumentację XML - czy szukałeś tej opcji? Nie jest to specyficzne dla Visual Studio. Na przykład, używając mcs (kompilator Mono C#) użyjesz argumentu '-doc'. Na koniec, jeśli masz nieparzyste wymagania, powinieneś uwzględnić je w pytaniu. –

+0

Nie używamy VS2012, jednak Unity3D wykorzystuje go tylko jako IDE. Unity3D wykonuje samą kompilację. Moje pytanie wymagało konkretnie rozwiązania R # z tego powodu. –

2

Nie konkurować z Jonem, ale GhostDoc robi to, co opisujesz.

enter image description here

+0

+1 Dla dobrego rozwiązania "najlepszego wysiłku", ale mimo że może stanowić dobrą próbę automatycznego dokumentowania, nadal nie gwarantuje, że zmiany dokonane przez programistę są godobre zmiany ... – Basic

+0

@Basic Dzięki, zasadniczo Check- W polisach są bramy jakości kontroli wersji, zadania, które należy wykonać, zanim kod zostanie sprawdzony i zbudowany. Przykładami są zasady testowania, które zapewniają, że błędy regresji nie są wprowadzane przez zmianę kodu, polityka analizy kodu zapewniająca zgodność kodu z określonymi uzgodnionymi standardami i polityką pozycji roboczej w celu zmniejszenia pełzania zakresu i pomaga testerom w ustaleniu, co zostało uwzględnione w danej kompilacji aplikacji. –

+0

@JeremyThompson Czy GhostDoc jest już używany w VS2012 i nowszych wersjach? Możesz wpisać "///" powyżej dowolnej metody i automatycznie wygeneruje ona standard komentarza do wypełnienia. –

2

Ponadto, sprawdź StyleCop który posiada wtyczkę ReSharper, co oznacza brakujące komentarze (metody, właściwości, itp) zostaną pokazane jako ReSharper ostrzeżeń/błędów. Może, ale nie musi, być dla ciebie interesująca, ale przynajmniej jest to opcja.

0

ma wiele reguł dla komentarzy, możesz również spojrzeć na Stylecop+, ponieważ ma to kilka dodatkowych reguł dotyczących długości metod/właściwości.

2

Dostępne są dwie opcje. Oba - używanie rozszerzeń dla ReSharper - nie dla Visual Studio (jeśli nie wiesz, ReSharper ma swój własny Extension Manager). Rozszerzenia te są (użyć drugi!):

  1. Agent Smith (dla R 9 #). Teraz mój menedżer rozszerzeń ReSharpera mówi, że to rozszerzenie jest dla ReSharper wersji 9.0 (którą zainstalowałem), ale w rzeczywistości to rozszerzenie działa z błędami (wyłączanie podświetleń działa nieprawidłowo).

  2. Inspekcje Doc Doc w ReSharper 9. Wydaje się, działa bez żadnych problemów (mam go po prostu zainstalowany). To jest to, czego naprawdę potrzebujesz, aby podkreślić klasy, metody, właściwości i tak dalej (nawet prywatne pola), które nie mają komentarzy XML!