jest opcja wyłączania, że #if, #endif i inne dyrektywy nie są ustawiane po Edycja -> Zaawansowane -> Formatowanie dokumentu w Visual Studio?Jak wymusić wcięcie warunkowych dyrektyw C#?
Dziękujemy!
jest opcja wyłączania, że #if, #endif i inne dyrektywy nie są ustawiane po Edycja -> Zaawansowane -> Formatowanie dokumentu w Visual Studio?Jak wymusić wcięcie warunkowych dyrektyw C#?
Dziękujemy!
Spójrz na StyleCop.
StyleCop analizuje kod źródłowy C#, aby wymusić zbiór reguł stylu i spójności. Może być uruchamiany z wnętrza Visual Studio lub zintegrowany z projektem MSBuild. StyleCop został również zintegrowany z wieloma narzędziami programistycznymi innych firm.
Można nawet dodać własne reguły: Creating Custom Rules for Microsoft Source Analyzer
Nadzieję, że to pomaga.
Obawiam się, że nie ma bezpośredniego ustawienia w Visual Studio. Jeśli tak, to daj mi znać :)
Alternatywnie możesz spróbować użyć zewnętrznego narzędzia do sformatowania kodu (np. AStyle). Możesz utworzyć makro w VS, które zamyka bieżący plik, uruchamia zewnętrzne narzędzie w pliku i ponownie je otwiera (i może zmienia położenie kursora na poprzedniej pozycji), abyś mógł sformatować swój kod z Visual Studio.
Nie jestem pewien, czy zadanie jest warte wysiłku, tak ...
W przeciwnym razie, można napisać własne makra wcięcia dyrektywy preprocesora w bieżącym pliku po została sformatowana VS, nawet bez użycia zewnętrznych narzędzi (co prawdopodobnie byłoby raczej bolesne w konfiguracji, aby uzyskać dokładnie takie samo formatowanie jak w VS).
Dziękuję za informacje. Właściwie to byłem po prostu ciekawy. Nie planuję inwestować czasu w tę sprawę, ponieważ jest to po prostu mały problem i ponieważ zachowanie Visual Studio może się zmienić w przyszłych wersjach - co sprawiłoby, że którykolwiek z moich wysiłków byłby bezużyteczny :-( –
Możesz ukryć to gdzieś w statycznej klasie pomocnika.
internal class Helper
{
internal static bool IsDebugBuild
{
get
{
#if DEBUG
return true;
#endif
return false;
}
}
}
Następnie można po prostu użyć go jak poniżej:
if (Helper.IsDebugBuild)
{
...
}
Dziękuję! Nie miałem czasu aby spróbować utworzyć regułę niestandardową, ale wydaje się, że byłoby to możliwe. –