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ąć?



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 .


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


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.

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
  },


16

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

[*]
quote_type = single

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
  };

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”


7

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

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

spowoduje to zignorowanie .editorconfigustawienia pliku.


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



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
  }

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
        }
    }
}

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.


4

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

{
    "singleQuote": true,
    "vetur.format.defaultFormatterOptions": {
        "prettier": {
            "singleQuote": true
        }
    }
}

2

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

"javascript.preferences.quoteStyle": "single"



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

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.