2016-03-27 19 views
52

Podczas korzystania z polecenia Format Code w kodzie Visual Studio nie uznaje ono moich ustawień wcięć ("editor.tabSize": 2). Zamiast tego używa karty o rozmiarze 4. Jakieś pomysły, dlaczego tak się dzieje?Kod Visual Studio: format nie korzysta z ustawień wcięć

Dzięki!

+1

To mnie denerwuje od dłuższego czasu. Lubię twarde zakładki, ale lubię też automatyczne formatowanie, więc utknąłem z konieczności użycia 4 spacji. – kiml42

+0

Jaki język? Program Visual Studio Code przekazuje formatowanie do formatera języka. Niektóre formatery obserwują ustawienie wcięcia. Na przykład C#, który jest obsługiwany przez OmniSharp, i powinien być skonfigurowany za pomocą omnisharp.json –

Odpowiedz

108

Ilość przestrzeni służących do formatowania pochodzi z innego miejsca. Używam wersji 1.0 i to jest to, co zrobiłem, aby to naprawić (zakładam, że używasz spacji zamiast kart):

U dołu edytora po prawej stronie kliknij "Spaces: #" :

status bar on the right

Następnie pojawi się górze menu. Wybierz „wcięcie Korzystanie Spaces”:

select indentation type

Wreszcie można wybrać za ile miejsca chcesz pliki mają być wcięte.

select tab size

Następnym razem sformatować plik powinien być w stanie uzyskać odstępy skonfigurowane.

+5

To ustawienie nie jest używane podczas stosowania automatycznego formatu (prawy przycisk myszy -> Formatuj kod). Zawsze używa 4 spacji. – kiml42

+0

Musisz obu - skonfigurować ustawienia osobiste dla obszaru roboczego lub edytora (lub obu). Nowe pliki pobiorą to ustawienie i na przykład pokażą "2" na pasku stanu zgodnie z tymi zrzutami ekranu. Następnie możesz autoformatować. W przypadku istniejących plików najpierw skonfiguruj ustawienia obszaru roboczego/edytora tak, aby używały kart lub spacji i ustaw liczbę spacji, a następnie wykonaj powyższą metodę, aby automatycznie sformatować istniejące pliki. – rmcsharry

+0

Dzięki! Wyjątkowo irytujące zachowanie - stracił 15 minut walki z tym problemem. – Gishu

19

Jeśli odpowiedź @ Maleki nie działa, sprawdź i sprawdź, czy masz plik .editorconfig w folderze projektu.

Na przykład kątowego CLI generuje jeden z nowego projektu, który wygląda tak

# Editor configuration, see http://editorconfig.org 
root = true 

[*] 
charset = utf-8 
indent_style = space 
indent_size = 2 
insert_final_newline = true 
trim_trailing_whitespace = true 

[*.md] 
max_line_length = off 
trim_trailing_whitespace = false 

Zmiana indent_size tutaj wymagane jest, jak się wydaje zastąpi on niczego w swoim .vscode obszaru roboczego lub użytkownika ustawień.

+1

Musiałem zrestartować VSCode, aby zmiana zaczęła obowiązywać w IDE. – JOpuckman

5

Najprawdopodobniej masz jakieś rozszerzenie formatowania zainstalowany, np JS-CSS-HTML Formatter.

Jeśli tak jest, to po prostu otwórz paletę poleceń, wpisz "Formatter" i wybierz Formatter Config. Następnie edytuj wartość "indent_size", jak chcesz.

P.S. Nie zapomnij o ponownym uruchomieniu kodu Visual Studio po edycji :)

+0

Wielkie dzięki.Szaleję, a twoja odpowiedź mnie uratuje – user1732055

29

kodu Visual Studio wykrywa bieżące wcięcia domyślnie i wykorzystuje to - ignorując .editorconfig

również ustawić "editor.detectIndentation" do fałszywego

(Pliki -> Preferencje -> Ustawienia)

+1

Jest to problem, z którym boryka się większość ludzi. – benmccallum

+0

Jeśli tak się stanie, prawdopodobnie masz niespójne wcięcie w pliku. Miałem plik z zakładkami wszędzie poza kilkoma liniami z dwoma spacjami (kto wie dlaczego), które zostały wykryte jako tabulatory, ale z zakładką o wielkości 2. – isanae

+0

dziękuję, to w końcu naprawiło dla mnie rzeczy. – knrdk

-1

Czasami mam ten sam problem. VSCode nagle straci swój umysł i całkowicie zignoruje każde ustawienie wcięcia, które mu powiem, mimo że wciskał ten sam plik przez cały dzień.

Mam editor.tabSize ustawiono na 2 (a także editor.formatOnSave ustawiono na wartość true). Kiedy VSCode uruchamia plik, używam opcji u dołu edytora, aby zmienić typ i rozmiar wcięć, mając nadzieję, że coś zadziała, ale VSCode nalega na użycie rozmiaru 4 wcięć.

Poprawka? Zrestartuj VSCode. Powinien wrócić z indentem pokazującym coś nie tak (w moim przypadku 4). Dla mnie musiałem zmienić ustawienie, a następnie zapisać, aby faktycznie dokonać zmiany, ale to prawdopodobnie ze względu na moje ustawienia editor.formatOnSave.

Nie mam pojęcia, dlaczego tak się dzieje, ale dla mnie jest to zwykle podczas edycji obiektu zagnieżdżonego w pliku JS. Nagle zrobi się bardzo dziwne wcięcie wewnątrz obiektu, mimo że pracowałem w tym pliku przez jakiś czas i to było w porządku.

1

Jeśli przyszedłeś tutaj z Google, ponieważ tab nie jest wcięciem, może to być również spowodowane tym, że "Tab Moves Focus" jest włączony. Jest w prawym dolnym rogu, a jeśli masz wystarczająco duży monitor, możesz go nie zauważyć, mimo że jest podświetlony.

enter image description here

Kliknij zieleń lub Ctrl + M, aby go zatrzymać. Nie jestem pewien, czy można go całkowicie wyłączyć, to znowu nie wiem, dlaczego edytor kodu chciałby zadzwonić z czymś w rodzaju wcięcia.

Powiązane problemy