VSCode pojedyncze lub podwójne cudzysłowy automatyczne zastępowanie

109

Kiedy Format Documentwykonuję polecenie na pliku Vue Component.vue, VSCode zamienia wszystkie pojedyncze cudzysłowy ciągów na ciąg w podwójnych cudzysłowach.

W moim konkretnym przypadku ta reguła jest sprzeczna z konfiguracją elektronowo-vue lint, która wymaga pojedynczego cudzysłowu.

Nie mam zainstalowanych ładniejszych rozszerzeń (nie prettier.singleQuotew moim ustawieniu)

Jak dostosować VSCode, aby tego uniknąć?

attdona
źródło

Odpowiedzi:

137

Nie mam prettierzainstalowanego rozszerzenia, ale po przeczytaniu możliwej podwójnej odpowiedzi dodałem od zera w ustawieniach użytkownika ( UserSetting.json, Ctrl +, skrót):

"prettier.singleQuote": true

Część zielonego ostrzeżenia ( Unknown configuration setting) pojedyncze cudzysłowy nie są już zastępowane.

Podejrzewam, że ładniejsze rozszerzenie nie jest widoczne, ale jest osadzone w rozszerzeniu Vetur .

attdona
źródło
2
To nie zadziałało dla mnie. vetur.format.defaultFormatterOptionsZamiast tego musiałem użyć . Zobacz https://vuejs.github.io/vetur/formatting.html#settings .
user1620220
Po otwarciu szybkiego wyszukiwania wpisz „> ustawienia użytkownika” i kliknij „Preferencje: Otwórz ustawienia użytkownika”. W polu wyszukiwania preferencji wpisz „prettier.singleQuote” i kliknij pole wyboru dla ładniejszego pojedynczego cudzysłowu.
Kody
5
To nie zadziałało dla mnie, quote_type = singlew [*.myDesiredFileExtension]sekcji w .editorconfigpliku, było rozwiązaniem.
Lonely
82

Cóż, jak facet (@ user2982122) wspomniano ale zamiast pliku idź do kodeksu -> Preferencje -> Ustawienia, a następnie szukać cytując wybierz ładniejsza i sprawdzić oba pola

wprowadź opis obrazu tutaj wprowadź opis obrazu tutaj

mustapha mekhatria
źródło
1
Czy musisz ponownie załadować te ustawienia, aby odniosły skutek? Mam oba zaznaczone, ale kiedy zapisuję plik .jsx, podwójne cudzysłowy nie zmieniają się na pojedyncze.
J Woodchuck
To dziwne, używam tej wersji: wydanie 1.14, kompilacja 1.14.0-17740
mustapha mekhatria
58

W przypadku projektów, które .editorconfigdomyślnie używają pliku. Formater zignoruje reguły w ustawieniach i użyje reguł w .editorconfig, wtedy możesz:

  • Usuń .editorconfigplik i użyj ustawień VSCode.
  • Dodaj quote_type = singledo .editorconfigpliku dotyczące typu pliku. Możesz również ustawić quote_typewartość na doublelub auto.
Gary Lamb
źródło
1
Zrobiłem to i nie zadziałało niezależnie od tego, czy zainstalowałem editorconfig globalnie, czy próbuję pozwać editorconfig dla VS Code. :(
acarlstein
Dzięki, moja aplikacja Angular używa .editorconfigdomyślnie (nie wiedziałem o tym), a Twoje rozwiązanie rozwiązało mój problem
benshabatnoam
proszę wziąć pod uwagę: nie możesz usunąć, .editorconfigjeśli jest to wspólny wersjonowany projekt
Lonely
36

Wygląda na to, że jest to błąd związany z tym problemem: Ładniejszy błąd

Żadne z powyższych rozwiązań nie zadziałało. Jedyną rzeczą, która zadziałała, było dodanie tej linii kodu w pliku package.json:

"prettier": {
    "singleQuote": true
  },
Avjol Sakaj
źródło
30

Ze strony wydania vuejs / vetur https://github.com/vuejs/vetur/issues/986# To rozwiązanie zadziałało dla mnie.

W settings.jsonpliku VSCodes dodaj ten wpis

"vetur.format.defaultFormatterOptions": {
    "prettier": {
        "singleQuote": true
    }
},
Dave Pile
źródło
16

proszę rozważyć .editorconfignadpisanie wszystkiego, użyj:

[*]
quote_type = single
Samotny
źródło
To było jedyne działające rozwiązanie. Dzięki stary!
Donald Shahini
Nie ma za co @DonaldShahini;)
Lonely
12

Prawidłowe rozwiązanie:

Dodaję plik .prettierrc.js w moim głównym projekcie głównym i piszę

module.exports = {
    singleQuote: true
  };
Omar Hasan
źródło
Próbowałem tego, ale wyświetla się błąd: „ESLint: Nie udało się załadować konfiguracji” defaults / configuration / eslint „to extension from”. Najlepiej byłoby dodać to w pliku package.json. Rozwiązanie
Avjol Sakaj
czy umieściłeś swój plik .prettierrc.js w katalogu głównym projektu?
Omar Hasan
8

Dla początkujących takich jak ja:

Z menu Pasek nawigacji u góry: Wybierz Plik -> Preferencje -> Ustawienia. W polu tekstowym wyszukiwania wpisz Cytuj. Na przefiltrowanej liście, która pojawi się poniżej, poszukaj ikony koła zębatego, a obok niej - „Ładniejsze”. Kliknij pole wyboru, aby włączyć opcję „Ładniejsze: pojedyncze cudzysłowy”

user2982122
źródło
7

Zainstaluj ładniejsze rozszerzenie i wklej poniższy kod do settings.jsonpliku VSCode

 "prettier.useEditorConfig": false,
 "prettier.singleQuote": true

spowoduje to zignorowanie .editorconfigustawienia pliku.

Md. Mustafizur Rahman
źródło
6

Jak zauważył @attdona, rozszerzenie Vetur zawiera ładniejsze.

Chociaż możesz zmienić ładniejsze ustawienia, zgodnie z zaakceptowaną odpowiedzią, możesz także zmienić formater dla określonych regionów komponentu vue.

Tutaj, na przykład, ustawiłem Vetur, aby używał programu formatującego vscode, ponieważ domyślnie używa pojedynczych cudzysłowów:

ustawienia vscode vetur

Richard Banks
źródło
6

Miałem ten sam problem w vscode. Po prostu utwórz plik .prettierrc w katalogu głównym i dodaj następujący plik json. W przypadku pojedynczych cudzysłowów dodaj:

{
  "singleQuote": true
}

W przypadku cudzysłowów dodaj:

  {
      "singleQuote": false
  }
Hamfri
źródło
6

Wypróbuj jedno z tych rozwiązań

  1. W pliku vscode settings.json dodaj ten wpis "prettier.singleQuote": true
  2. W vscode, jeśli masz .editorconfigplik, dodaj tę linię pod symbolem root [*]quote_type = single
  3. W vscode, jeśli masz .prettierrcplik, dodaj tę linię
{
    "singleQuote": true,
    "vetur.format.defaultFormatterOptions": {
        "prettier": {
            "singleQuote": true
        }
    }
}
javidabd
źródło
1
druga opcja zadziałała, niestety inne odpowiedzi na tej stronie nie zadziałały
pon.
5

Jest jedyne rozwiązanie, które działało dla mnie: i tylko dla Angular Projects:

Po prostu przejdź do pliku projektu „.editorconfig” i wklej „quote_type = single”. Mam nadzieję, że to powinno zadziałać również dla Ciebie.

Muhammad Waqas
źródło
4

Dodałem plik o nazwie .prettierrcw folderze mojego projektu. Zawartość pliku:

{
    "singleQuote": true,
    "vetur.format.defaultFormatterOptions": {
        "prettier": {
            "singleQuote": true
        }
    }
}
0lukasz0
źródło
2

Możesz tego użyć w settings.json

"javascript.preferences.quoteStyle": "single"
mperk
źródło
2

Do użycia JSX:

{"jsxSingleQuote": false}
Juan Angel
źródło
1

W moim przypadku działa sprawdzanie pojedynczego cudzysłowu w Prettier oraz tslint.autoFixOnSave jako true

wprowadź opis obrazu tutaj

wprowadź opis obrazu tutaj

Rudra
źródło