Jak zmienić opcje formatowania w Visual Studio Code?

90

Wiem, że możesz formatować kod za pomocą Ctrl+ F/ Cmd+ Fw Visual Studio Code, ale jak zmienić opcje formatowania dla każdego języka?

Na przykład w Visual Studio 2013 mogę wybrać tryb kompaktowy dla CSS.

Czy jest inny ukryty plik JSON do tego?

Matt McCabe
źródło
1
Prawdopodobnie nie. Jeśli przeczytałeś dokument online , możesz zauważyć, że Microsoft wspomniał tylko o funkcji formatowania dla języka TypeScript.
yushulx
Działa dla C # i JavaScript, nie mogę znaleźć oficjalnej listy, ale to coś więcej niż tylko TypeScript.
Matt McCabe
1
jest rok 2017 i czy nadal nie jest obsługiwany?
Asqan

Odpowiedzi:

89

W kodzie VS.

naciśnij Ctrl+ Shift+P

następnie wpisz Format Document With...

Na końcu listy kliknij Configure Default Formatter...

Teraz możesz wybrać z listy swój ulubiony kosmetyk.

Zaktualizuj 2021

jeśli "Format Document With..."już nie istniał, przejdź do => => następnie przejdź do => przewiń trochę, a zobaczysz , teraz możesz wybrać dowolny program formatujący dokumenty, który zainstalowałeś, bofer dla różnych rozszerzeń plików.file preferences settingsExtensions Veturformat > defaultFormatter:css

Sajad Saderi
źródło
3
Format dokumentu za pomocą ... już nie ma
Aero Wang
Vetur też nie istnieje!
Martijn Hiemstra
@MartijnHiemstra FYI, Vetur to rozszerzenie VS Code, które jest dostępne na rynku VS Code :) marketplace.visualstudio.com/items?itemName=octref.vetur
eriegz
20

Właśnie znalazłem to rozszerzenie o nazwie beautify w Market Place i tak, to kolejny plik config \ settings. :)

Upiększ JavaScript, JSON, CSS, Sass i HTML w Visual Studio Code.

VS Code używa wewnętrznie js-beautify, ale brakuje mu możliwości modyfikowania stylu, którego chcesz użyć. To rozszerzenie umożliwia uruchamianie js-beautify w VS Code ORAZ honorowanie dowolnego pliku .jsbeautifyrc w drzewie ścieżki otwartego pliku w celu załadowania stylu kodu. Uruchom z F1 Beautify (aby upiększyć zaznaczenie) lub F1 Beautify file.

Aby uzyskać pomoc dotyczącą ustawień w .jsbeautifyrc, zobacz Settings.md

Oto repozytorium GitHub: https://github.com/HookyQR/VSCodeBeautify

Leniel Maccaferri
źródło
Dzięki, wygląda całkiem nieźle, brakuje mi tego w moim CSS, javascript / machinecript i html wydaje się działać po wyjęciu z pudełka. Wygląda na to, że możesz umieścić część tego w swoim .editorconfig
Matt McCabe,
Jedno z najlepszych rozwiązań, ponieważ używa .jsbeautifyrcpliku konfiguracyjnego, co z kolei będzie pomocne dla innych członków zespołu, którzy mogą używać innych IDE do pisania kodu. W przypadku Sublime Text najlepsza jest wtyczka HTML-CSS-JS-Prettify . Niestety dla Eclipse implementacje na rynku są błędne. Nadal muszę używać, editorconfigktóry wykonuje przyzwoitą pracę.
Shiyaz
Upiększanie jest dobre, ale zawsze sprawia mi problemy. Uważam, że ładniejsze jest lepsze i bardziej konfigurowalne.
Trevor Jex
18

Edytować:

Jest to teraz obsługiwane (od 2019 r . ) . Aby uzyskać instrukcje, zapoznaj się z odpowiedzią sajad saderi poniżej .

Nie, obecnie nie jest to obsługiwane (w 2015 r . ) .

Isidor Nikolic
źródło
11
Szkoda, zagłosuję, poczekam i zobaczę. Podejrzewam, że będzie to kolejny plik ustawień json, w tym kierunku zmierzają.
Matt McCabe
9
Już nie masz racji? Więc jak? Przynajmniej podaj adres URL do tego.
Cholerne warzywa
2
Przepraszam za niejasność. Łącze użytkownika VisualStudio jest uszkodzone. Prawdopodobnie powinien to być problem z githubem i udało mi się znaleźć github.com/Microsoft/vscode/issues/1533 . Możesz również wyszukać w ustawieniach „format”, a znajdziesz opcje javascript.format.
SgtPooki
13

Jeśli mówimy teraz o Visual Studio Code , ustawiasz domyślny program formatujący w settings.json:

  // Defines a default formatter which takes precedence over all other formatter settings. 
  // Must be the identifier of an extension contributing a formatter.
  "editor.defaultFormatter": null,

Wskaż identyfikator dowolnego zainstalowanego rozszerzenia, tj

"editor.defaultFormatter": "esbenp.prettier-vscode"

Możesz to również zrobić w zależności od formatu :

"[html]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[scss]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[sass]": {
    "editor.defaultFormatter": "michelemelluso.code-beautifier"
},

Zobacz także tutaj .


Możesz także przypisać inne klawisze do różnych elementów formatujących w swoich skrótach klawiaturowych ( keybindings.json). Domyślnie brzmi:

{
  "key": "shift+alt+f",
  "command": "editor.action.formatDocument",
  "when": "editorHasDocumentFormattingProvider && editorHasDocumentFormattingProvider && editorTextFocus && !editorReadonly"
}

Wreszcie, jeśli zdecydujesz się na użycie wtyczki Prettier iprettier.rc chcesz na przykład inne wcięcia dla html, scss, json ...

{
    "semi": true,
    "singleQuote": false,
    "trailingComma": "none",
    "useTabs": false,

    "overrides": [
        {
            "files": "*.component.html",
            "options": {
                "parser": "angular",
                "tabWidth": 4
            }
        },
        {
            "files": "*.scss",
            "options": {
                "parser": "scss",
                "tabWidth": 2
            }
        },
        {
            "files": ["*.json", ".prettierrc"],
            "options": {
                "parser": "json",
                "tabWidth": 4
            }
        }
    ]
}
Frank Nocke
źródło
7

Możesz wprowadzić pewne zmiany w „Ustawieniach”. Na przykład reguły javascript zaczynają się od „javascript.format”. Ale do zaawansowanej kontroli formatowania nadal trzeba używać niektórych rozszerzeń.

Ustawienia reguł dla polecenia kodu formatu

Hayk
źródło
6

Rozwiązaniem, które działa dla mnie (lipiec 2017), jest wykorzystanie ESLint . Jak wszyscy wiedzą, lintera można używać na wiele sposobów, globalnie lub lokalnie. Używam go lokalnie i z przewodnikiem stylu Google. Sposób, w jaki to skonfigurowałem, jest następujący ...

  • cd to your working directory
  • npm init
  • npm install --save-dev eslint
  • node_modules/.bin/eslint --init
  • I use google style and json config file

Teraz będziesz mieć .eslintrc.jsonplik w katalogu głównym katalogu roboczego. Możesz otworzyć ten plik i modyfikować według własnego uznania, korzystając z reguł eslint . Obok cmd+,otwartych vscodepreferencji systemowych. W pasku wyszukiwania wpisz eslinti wyszukaj "eslint.autoFixOnSave": false. Skopiuj ustawienie i wklej w pliku ustawień użytkownika i zmień falsena true. Mam nadzieję, że może to pomóc komuś korzystającemu z vscode .

Gilbert
źródło
1

Aby zmienić konkretnie ustawienia formatowania C # (OmniSharp), możesz użyć pliku json:
User: ~/.omnisharp/omnisharp.json lub %USERPROFILE%\.omnisharp\omnisharp.json
Workspace: omnisharp.json file w katalogu roboczym, na który wskazano OmniSharp.

Przykład:

{
  "FormattingOptions": {
    "NewLinesForBracesInMethods": false,
    "NewLinesForBracesInProperties": false,
    "NewLinesForBracesInAccessors": false,
    "NewLinesForBracesInAnonymousMethods": false,
    "NewLinesForBracesInControlBlocks": false,
    "NewLinesForBracesInObjectCollectionArrayInitializers": false,
    "NewLinesForBracesInLambdaExpressionBody": false
  }
}

Szczegóły w tym poście | schemat omnisharp.json (jest już w vscode, możesz po prostu CTRL + SPACJA)

Inne rozszerzenia językowe mogą mieć podobne pliki do ustawienia.

geekley
źródło
0

To samo przytrafiło się właśnie teraz. Ustawiłem ładniejszy jako domyślny formatter w Ustawieniach i znowu zaczął działać. Mój domyślny program formatujący był pusty.

Aby ustawić domyślny program formatujący VSCODE

Plik -> Preferencje -> Ustawienia (dla Windows) Kod -> Preferencje -> Ustawienia (dla Mac)

Wyszukaj „Default Formatter”. W menu, ładniejszy będzie wyświetlany jako esbenp.prettier-vscode.

Opcja edytora VSCODE

Hitesh Subnani
źródło