Wyłącz automatyczne formatowanie w programie Visual Studio


134

Jestem purystą kodu i preferuję własny styl formatowania kodu w przeciwieństwie do domyślnych ustawień programu Visual Studio. Wyłączyłem opcje automatycznego formatowania w Narzędziach / opcjach. W większości przypadków to działa.

Po użyciu któregokolwiek z wbudowanych refaktoryzacji, program Visual Studio zbija moje ustawienia z ustawieniami domyślnymi. Jak powstrzymać VS przed zrobieniem tego?


9
@ user1142958 co kilka miesięcy w projekcie open source i co kilka lat w biznesie natrafiam na jakiegoś hotshota, który twierdzi, że jego / jej styl jest lepszy niż standardowy. Przez lata badań ustalono, że standardy stylizacji poprawiają czytelność kodu i łatwość konserwacji. Kiedy programiści wymyślają własne „lepsze” podejście, zazwyczaj ma tendencję do odrzucania innych programistów w zespole. Przeczytaj to jako przykład - woldlab.caltech.edu/~king/swc/www/readstyle.html
senfo

29
@senfo To wszystko świetne informacje, ale wbudowany program formatujący Visual Studio jest niezaprzeczalnie uszkodzony w niektórych przypadkach (np. stackoverflow.com/questions/6459861/ ... ). W takich przypadkach wolałbym raczej wykorzystać swój ludzki spryt, aby dostosować się do standardów, które uważam za stosowne, zamiast polegać na smutnej próbie "stylu" VS.
Dan Bechard

5
@senfo - autoformatowanie VS .cshtml, szczególnie jeśli chodzi o Razor, jest zepsute. Uzgodnione z tobą w innych częściach, ale to nie jest funkcja - to błąd
Ross

5
Kiedy „standard” wygląda jak dwa koty walczące na klawiaturze, konsekwencja nie jest cnotą. Zadzwoń do mnie, ale warto poświęcić więcej czasu na uczynienie kodu czytelnym. Moje doświadczenie jest całkowicie spójne: ludzie najbardziej pasjonujący się konsekwencją (sic!) Promują najbardziej nieczytelny kod, jaki mogą wymyślić.
Chris Fox

5
Purysta kodu to osoba, która wprowadza tekst w odpowiednim formatowaniu, więc nie ma potrzeby (prawdopodobnie zepsutego) automatycznego formatowania.
Anders Lindén

Odpowiedzi:


106

Miałem ten problem podczas pisania VB na aspxstronie.

Rozwiązaniem było przejście do „Narzędzia> Opcje> Edytor tekstu> Podstawowe> Specyficzne dla VB” i wyłączenie „Ładnej listy”.


Uwaga - w programie Visual Studio 2015 można to znaleźć pod adresem:

Narzędzia> Opcje> Edytor tekstu> Podstawowe> Zaawansowane


Chciałbym móc łatwo przypisać te pola wyboru do dowolnego skrótu klawiszowego.
Mike de Klerk

1
Dzięki, to zadziałało dla mnie. „Ładne” jest niesamowicie złe, z parametrami funkcji „schowanymi pod” nazwą funkcji, niewytłumaczalny wybór, gdy wyrównanie tabelaryczne w pionie jest tym, co każdy, kto pracuje w komunikacji, jest najłatwiejsze do zrozumienia.
Chris Fox,

54
zamierzam tylko zatrzymać się, aby podziwiać piękno posiadania hierarchii drzew opcji, która brzmi: text editor -> basic -> advanced„o tak, chcesz sekcji zaawansowanej”? To jest podstawowe
fostandy

12
@fostandy, zdaję sobie sprawę, że prawdopodobnie to wiesz, ale basicjest to nazwa języka, a nie sekcja opcji, ponieważ jest tam również wymieniony C #.
Lightfire 228

32

Wyłącz ładną listę. Jest to opcja, która zmienia format tego, co robisz. Miałem z tym ten sam dyskomfort i po zrobieniu tego mój kod pozostaje taki, jak chcę i nie wraca do poprzednich ustawień.

wprowadź opis obrazu tutaj


Nie mam tej opcji w moim VS2010 Premium
Maciej

2
Naprawia to w VS2017
Doug Null

Nie rozwiązałem mojego problemu z C ++ w VS 2013. I jestem pewien, że nie był zepsuty, zanim zmieniłem maszyny
CashCow

6

W moim przypadku był to ReSharper.

Sprawdź, czy ReSharper

StackOverflow: Jak wyłączyć ReSharper w programie Visual Studio i włączyć go ponownie?

Zapobiegaj ponownemu formatowaniu kodu przez program ReSharper

StackOverflow: Czy istnieje sposób, aby oznaczyć kod, aby powiedzieć ReSharper, aby go nie formatował?

Aktualizacja

W końcu był to ReSharper:

wprowadź opis obrazu tutaj


2
Dzięki, to doprowadzało mnie do szału.
Simon Arnold

1
Zgoda, nawiasy klamrowe zawsze znajdowały się w niewłaściwym miejscu i dosłownie wbijały się w kod ciężkim butem za każdym razem, gdy trafiasz na średnik. Nie fajnie.
Contango

5

Mogłeś mieć zainstalowane narzędzie Power Tool .

W takim przypadku możesz go wyłączyć w „Narzędzia> Opcje> Produktywność Narzędzia elektryczne> PowerCommands> Ogólne”

wprowadź opis obrazu tutaj


4

Jak sugeruje @TheMatrixRecoder zajęło mi to trochę poszukiwania, więc może to pomoże komuś innemu. Opcję VS 2017 można znaleźć tutaj

Wybierz jedną z tych opcji, aby zapobiec irytującemu automatycznemu formatowaniu po umieszczeniu średnika lub naciśnięciu klawisza powrotu na końcu wiersza.


3

W VS2017 możesz to zmienić po wybraniu języka kodowania w menu ustawień. W podmenu „Formatowanie” znajduje się opcja o nazwie „nowe linie”.


2

Wątpię, czy można wyłączyć ponowne formatowanie po refaktoryzacji. Refaktoryzacja zmienia kod, a ponieważ jest to tylko tekst, wątpię, czy chcesz, aby po prostu zrzucał niesformatowany tekst do źródła. Czy nie byłoby trochę łatwiej po prostu ustawić styl kodu, do którego VS dostosowuje się do stylu, który lubisz i naśladujesz?


1
Czasami styl kodowania nie podlega algorytmizacji. Czasami jest to celowo niespójne, ponieważ uczestniczy się w projekcie z niespójnym stylem kodowania i chce się stosować do stylu kodowania konkretnego edytowanego fragmentu kodu.
Palec

2

Nie można wyłączyć ponownego formatowania średnikiem ani nawiasem zamykającym. Uważam, że irytujące, że Microsoft miałby czelność mówić komukolwiek, jak formatować kod; najbardziej nieczytelny kod, jaki kiedykolwiek widziałem, był podczas pracy.

Chcę, aby sąsiednie przypisania były wyrównane w pionie; VS przeformatowuje je do jednego spacji po obu stronach znaku równości, niezależnie od długości zmiennej po lewej stronie. To jest nie do zniesienia. Wyłączenie go w opcjach edytora jest ignorowane; biorąc pod uwagę komentarze, takie jak otwieracz powyżej, jestem pewien, że jest to celowe.

Konsekwencja jest cnotą tylko wtedy, gdy prowadzi do pożądanych rezultatów. To nie jest jeden.


2

Ustawienia VS2015, które pomogły mi zapobiec automatycznemu formatowaniu:

(i Narzędzia> Opcje> Edytor tekstu> Podstawowe> Zaawansowane, tak jak sugeruje Tango91 )

wprowadź opis obrazu tutaj


1

Podążaj za NARZĘDZIAMI-> OPCJE-> Edytor tekstu-> CSS-> Formatowanie Wybierz „Reguły kompaktowe” i odznacz „Wcięcie hiearerchical”


Edytor tekstu -> CSS lub HTML -> Tabulatory -> Wcięcia -> (o) Brak
Bob Stein

1

Może tak być w przypadku formatu Clang. Wcześniej cały plik jest automatycznie formatowany przy zapisywaniu pliku, co doprowadzało mnie do szału (w przypadku repozytoriów, w których Clang Format nie jest włączony).

Takie zachowanie zniknęło po zmianie „Narzędzia -> Opcja -> LLVM / Clang -> ClangFormat -> Formatuj przy zapisywaniu -> Włącz” na Fałsz.

ClangFormat Format przy zapisie


0

Możesz dostosować ustawienia formatowania kodu. Zawsze wyłączam wszystkie dodatkowe podziały wierszy, a wtedy działa dobrze, jak formatuję kod.

Jeśli dostosujesz ustawienia tak blisko, jak to tylko możliwe, do swoich preferencji, powinno to pozostawić ci minimalną pracę za każdym razem, gdy używasz refaktoryzacji.


0

Oprócz odpowiedzi Tango na rzeczywiste rozwiązanie, mogą istnieć ludzie, którzy chcą być na bieżąco z formatami automatycznymi, ale nie chcą zepsuć odpowiednich zmian. Sugerowałbym, aby zmodyfikować plik, aby aktywować automatyczne formatowanie, sprawdzić te zmiany, a następnie przejść do rzeczywistych zmian, które chcesz wprowadzić.

W ten sposób Twój kod będzie aktualny, ale Twoje zameldowanie będzie odpowiednie.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.