Visual Studio Code - Dostosuj ustawienie oferty importowej

85

Podczas pracy w języku TypeScript w programie Visual Studio Code sugestia importu dotycząca typu (wyzwalana przez spację + kropkę) spowoduje wygenerowanie importu przy użyciu podwójnych cudzysłowów.

Nasz linter TypeScript sprawdza, czy w miarę możliwości używane są pojedyncze cudzysłowy.

Jak widać poniżej, sugestia zawiera podwójne cudzysłowy („@angular / ...”) Importuj sugestię z podwójnymi cudzysłowami

Jak mogę dostosować ustawienia importu?

Boris van Katwijk
źródło
marketplace.visualstudio.com/…
Иван Грозный

Odpowiedzi:

85

Od wersji VSCode 1.10 nie jest to (niestety) jeszcze możliwe. Ale wydaje się, że jest to problem dla wielu użytkowników. Motyw VSCode jest świadomy tego problemu i możesz śledzić to, aby wiedzieć, kiedy zostanie wdrożony: https://github.com/Microsoft/TypeScript/issues/13270


Aktualizacja czerwiec 2018

Od wersji 1.24 VSCode (czerwiec 2018) istnieje taka opcja!

"typescript.preferences.quoteStyle": "single"

Więcej informacji:

https://code.visualstudio.com/updates/v1_24#_preferences-for-auto-imports-and-generated-code

Sebastian Sebald
źródło
22
"typescript.preferences.quoteStyle": "single"
Niko
7
Wydaje mi się, że to nie działa na mnie. Nadal dostaję podwójne cytaty z sugestii i fragmentów.
John Knoop
To samo dla mnie, zmienione na wszystkich możliwych poziomach (użytkownik, obszar roboczy, projekt) i nadal mają podwójne cudzysłowy :(
Kostanos
Nie wiem, jakiego języka używacie, ale są osobne ustawienia dla javascript i maszynopisu. Zastanawiałem się nad tym samym, ale ustawiłem kod JavaScript, a nie maszynopis.
GhostBytes
53

Możesz również skonfigurować poniższą linię w ustawieniach użytkownika VScode, aby dostosować to ustawienie.

"prettier.singleQuote": true
abdllhbyrktr
źródło
3
ładniejsze jest rozszerzenie, nie wszyscy go używają
caub
1
Frustrujące jest to, że ludzie zakładają, że masz lub chcesz używać Prettier. Chyba że ktoś zapyta „jak sobie radzę z Prettier” - myślę, że najlepiej nie odpowiadać zakładając, że to ma.
Car Bomba
@TsarBomba Masz rację. To ustawienie wymaga rozszerzenia Prettier do dostosowywania oferty. marketplace.visualstudio.com/…
abdllhbyrktr
15

Naprawiłem to za pomocą konfiguracji Edytora , otwórz plik .editorconfig w katalogu głównym projektu (jeśli nie masz, utwórz ten plik) i dodaj tę linię po [*]

[*]
...
quote_type = single

Na wiki możesz zobaczyć pełną listę nieruchomości.

Joel Jacquez
źródło
Głosowano za. Ogranicza zmiany tylko do projektu, nad którym pracujesz, a nie globalnie. Dodatkowa uwaga: uruchom ponownie VS Code, aby zmiany zaczęły obowiązywać.
EdSF,
Aby skomentować, w VS Code możesz ustawić ustawienia obszaru roboczego, które są specyficzne dla tego projektu. Umożliwi to użycie pojedynczych / podwójnych cudzysłowów specjalnie przy imporcie, jeśli chcesz użyć innego typu w innym miejscu w plikach. Zmiana .editorconfig będzie obejmowała cały projekt.
Cruril
12

Od VS Code 1.21.1 musisz edytować

/usr/share/code/resources/app/extensions/typescript-basics/snippets/typescript.json

W systemie Windows

/ Applications / Visual Studio Code.app/Contents/Resources/app/extensions/typescript-basics/snippets/typescript.json .

W systemie Windows 10 (wersja vscode 1.30. * (Konfiguracja użytkownika) później)

* C: \ Users \ <nazwa użytkownika> \ AppData \ Local \ Programs \ Microsoft VS Code \ resources \ app \ extensions \ typescript-basics \ snippets \ typescript.json

W sekcji „Importuj moduł zewnętrzny” tego pliku ustaw właściwość tablicy body jako wartość "import { $0 } from '${1:module}';"Sekcja będzie wtedy wyglądać następująco:

"Import external module.": {
    "prefix": "import statement",
    "body": [
        "import { $0 } from '${1:module}';"
    ],
    "description": "Import external module."
},
cdoremus
źródło
1
To rozwiązanie zadziałało dla mnie. Dosłownie próbowałem wszystkiego, ale tylko to naprawiło.
Sosa
8

Alternatywą obsługującą tę konfigurację jest TypeScript Toolbox .

Można go skonfigurować przez ustawienie genGetSet.pathStringDelimiter, które ma już domyślnie import pojedynczych ofert.

Boris van Katwijk
źródło
2
Dzięki za to! Warto genGetSet.spacedImportLinerównież zwrócić uwagę na ustawienie, aby nowe linie importu wyglądały jak import { Router }....zamiast domyślnychimport {Router}...
FLGMwt
1
Zarówno odpowiedź, jak i komentarz powyżej to świetne informacje! Dzięki wam dwoje!
Kris Boyd
7

Przejdź do „Plik> Preferencje> Ustawienia”, a następnie dodaj to w ustawieniach użytkownika:

"typescript.preferences.quoteStyle": "single",
"javascript.preferences.quoteStyle": "single"
Wagner Danda da Silva Filho
źródło
U mnie działa, dzięki! BTW, możesz dodać link do ustawień domyślnych, które przedstawiają te opcje: code.visualstudio.com/docs/getstarted/settings . // Preferred quote style to use for quick fixes: 'single' quotes, 'double' quotes, or 'auto' infer quote type from existing imports. Requires using TypeScript 2.9 or newer in the workspace.
Mosh Feu
3

Począwszy od TypeScript 2.5, pierwsza instrukcja importu lub eksportu w pliku zostanie przeskanowana w celu określenia, czy podczas korzystania z sugestii importu używane są pojedyncze czy podwójne cudzysłowy.

https://github.com/Microsoft/TypeScript/pull/17750

Trevor Daniels
źródło
2

Możesz również skonfigurować poniższy wiersz w ustawieniach użytkownika vscode, aby zezwolić na pojedynczy cudzysłów w ciągu.

Przejdź do Preferencje> Ustawienia użytkownika

"prettier.singleQuote": true

Pozwoli to na pojedyncze cudzysłowy w String. W przeciwnym razie, jeśli ręcznie zmienisz wszystkie podwójne cudzysłowy na pojedyncze cudzysłowy, zostanie to cofnięte podczas zapisywania. Dodaj także

"tslint.autoFixOnSave": true

do automatycznej naprawy podczas zapisywania.

anirban8611
źródło
1

Jest to już zaimplementowane (jak wspomniano w innej odpowiedzi)! Ale prawdopodobnie nie korzystasz jeszcze z najnowszej wersji TypeScript.

Rozwiązanie jest proste:

Kliknij numer wersji TypeScript (na przykład 2.3.4) między „TypeScript” a małą uśmiechniętą buźką w prawym dolnym rogu. Następnie przejdź do wersji wbudowanej programu Visual Studio Code (obecnie 2.5.3).

Po tym kod programu Visual Studio wywnioskuje styl importowania oferty, patrząc na pierwszą instrukcję importu . Zauważ, że mała etykieta wyskakująca i tak będzie nadal wyświetlać podwójne cudzysłowy.

Zgłoszenie błędu

Odpowiednie żądanie ściągnięcia :

Dodaje to możliwość określenia, czy używać pojedynczych, czy podwójnych cudzysłowów dla nowych importów dodanych za pomocą poprawek kodu. Po dodaniu nowego importu skanujemy najwyższe instrukcje pliku źródłowego pod kątem istniejących deklaracji importu lub eksportu ze specyfikatorami modułów. Następnie używamy stylu cytowania pierwszego znalezionego. Jeśli w pliku nie ma istniejących importów, wracamy do stosowania podwójnych cudzysłowów.

Andrei Sinitson
źródło
0

Powyższe rozwiązania u mnie nie działają

Oto moje obejście, gdy używasz vscode,: "tslint.autoFixOnSave"true w twojej settings.jsonwoli automatycznie naprawi te cytaty importu po zapisaniu pliku.

Varun Sukheja
źródło
MówiUnknown Configuration Setting
Edgar Quintero