Wyłącz automatyczne formatowanie plików JSON w programie Visual Studio Code

90

Wielokrotnie sprawdzałem swoje preferencje i upewniłem się, że wszystkie opcje związane z formatowaniem przy zapisywaniu są ustawione na fałsz. A jednak za każdym razem, gdy zapisuję plik .json, widzę, jak plik jest formatowany.

Gama11
źródło
1
Czy zainstalowałeś jakieś rozszerzenia?
seairth
@seairth - zainstalowałem prettify-json. Próbowałem go wyłączyć, ale to nie zadziałało.
2
Spróbuj całkowicie odinstalować rozszerzenie, ponownie uruchom VSCode, a następnie sprawdź, czy to zachowanie zniknie.
seairth
1
Nie wiem, co mam stąd zasugerować. Nie mogę go odtworzyć na mojej kopii (wersja 1.2.1). Przeglądając źródło VSCode, instalacja standardowa powinna formatować JSON tylko podczas wykonywania jawnego „formatu kodu” (np. Shift + Alt + F w systemie Windows). Faktycznie zarejestrowana komenda to „editor.action.format”, więc być może masz inne rozszerzenie, które wykonuje to polecenie przy zapisywaniu. Jednym ze sposobów sprawdzenia tego może być wypróbowanie innego zainstalowanego języka i sprawdzenie, czy działa w ten sam sposób.
seairth

Odpowiedzi:

148

OK, sprawdź, czy masz zainstalowane to rozszerzenie: „JS-CSS-HTML formatter”.

Teraz, jeśli masz, naciśnij CTRL+ SHIFT+P , wpisz „Formatter” i powinieneś zobaczyć opcję z napisem Formatter Config.

Po wybraniu tej opcji otwiera się plik o nazwie formatter.json i wszystko, co robisz, to edycja właściwości (nazwanej onSave) z true na false.

Uruchom ponownie kod VS i voilà !! Przestał automatycznie formatować. (yay !!!!)

Kitanga Nday
źródło
1
Wielkie dzięki! Uratował mi nerwy! Powinno to być o wiele bardziej obiecujące, ponieważ w Internecie jest wiele postów zadających to samo pytanie, a vscode nie ma wskaźnika w Ustawieniach do formatter.json.
Christof Kälin,
48

W programie Visual Studio Code, aby zatrzymać autoformatowanie tylko dla plików JSON, dodaj następujące elementy w settings.jsonpliku, otwierając Ustawienia użytkownika - Preferencje.

{   
    "[json]": {
        "editor.formatOnSave": false   
    }
}
locropulenton
źródło
Powinien być, tak. W 1.42.1 nie miało to żadnego efektu. Musiałem ustawić to na true dla wszystkich innych formatów wyraźnie tam, gdzie chciałem autoformatowania, z wyjątkiem [json] :( Gdy tylko editor.formatOnSave był prawdziwy dla wszystkich (nie wewnątrz [...] bloku), nie mogłem go wyłączyć dla formatu json
Satria
21

Używam poniższej wersji VS Code

Version: 1.28.2 (user setup)
Commit: 7f3ce96ff4729c91352ae6def877e59c561f4850
Date: 2018-10-17T00:23:51.859Z
Electron: 2.0.9
Chrome: 61.0.3163.100
Node.js: 8.9.3
V8: 6.1.534.41
Architecture: x64

I wyłączyłem go, wykonując następujące czynności:

  1. CTRL+SHIFT+P
  2. Rodzaj Settings
  3. Wybierz Preferences: Open User Settings

Teraz postępuj zgodnie z tymi instrukcjami dotyczącymi obrazu:

Kliknij Edytuj w settings.json Zmień wyświetlane wartości ustawień użytkownika

  1. Wybierz opcję Zapisz wszystko
  2. Zrestartuj VS Code
ArifMustafa
źródło
2
Jeśli to rozwiązanie nie pomoże, spróbuj wyłączyć vscode-JS-CSS-HTML-formatter, pomogło w moim przypadku. Źródło: github.com/Microsoft/vscode/issues/16055
Stepan Zakharov,
1
Tekst alternatywny na obrazach jest lepszy niż nic, ale instrukcje na obrazach nie są zbyt dostępne. Proszę rozważyć umieszczenie informacji tekstowych w swoich odpowiedziach w przyszłości.
TylerH,
to powinna być zaakceptowana odpowiedź
llamaro25
9

poszukaj Settings.json w „project / .vscode / settings.json”

{
    "editor.formatOnSave": false
}
Abel Valdez
źródło
6

W kodzie VS domyślnie Zapisz bez formatowania jest wykonywane przez

KROK 1: Naciśnij CTRL+, Ka następnie
KROK 2: Naciśnij CTRL+ Shift+S

Abhinav Kinagi
źródło
1
na MAC CMD + k, wtedy S działa dla mnie
Gabriel Carraro
5

Warto zwrócić uwagę

Podoba mi się formatowanie json, które jest domyślnie włączone, ale chciałem je wyłączyć tylko podczas edycji niektórych plików (tj. Nie chciałem, aby niektóre ogromne pliki json były rozszerzane po sformatowaniu).

Aby to zrobić, wprowadziłem zmianę i zapisałem bez formatowania .

Możesz przejść do skrótów klawiaturowych vs code i zobaczyć, co Save without formattingjest ustawione. W moim przypadku (użytkownik Maca) CMD+Knastąpił S.

Govind Rai
źródło
2

Oprócz odpowiedzi tutaj istnieją ustawienia inne niż te, "editor.formatOnSave"które mogą mieć podobny efekt, które możesz również chcieć wyłączyć - na przykład włączyłem następujące opcje w moich Preferencjach użytkownika (settings.json):

"editor.codeActionsOnSave": {
  "source.organizeImports": true
},
Tim Iles
źródło
To było ustawienie, które przyprawiało mnie o ból głowy. Dzięki za udostępnienie!
Kenneth Lynne,
1

mój format był domyślnie ustawiony na CMD k + s, aby VS Code mógł zapisać bez formatowania. możesz tego spróbować

Zack
źródło