Visual Studio Code - Passen Sie die Einstellung für das Importangebot an

85

Wenn Sie in Visual Studio Code in TypeScript arbeiten, generiert der Importvorschlag für einen Typ (ausgelöst durch Leerzeichen + Punkt) einen Import in doppelten Anführungszeichen.

Unser TypeScript-Linter überprüft, ob nach Möglichkeit einfache Anführungszeichen verwendet werden.

Wie Sie unten sehen können, enthält der Vorschlag doppelte Anführungszeichen ("@angular / ..."). Importvorschlag mit doppelten Anführungszeichen

Wie kann ich die Einstellung des Imports anpassen?

Boris van Katwijk
quelle
marketplace.visualstudio.com/…
25ван Грозный

Antworten:

85

Ab VSCode 1.10 ist dies (leider) noch nicht möglich. Aber es ist ein Problem für einen Großteil der Benutzer, wie es scheint. Das VSCode-Design kennt dieses Problem, und Sie können es befolgen, um zu erfahren, wann es implementiert wird: https://github.com/Microsoft/TypeScript/issues/13270


Update Juni 2018

Seit VSCode 1.24 (Juni 2018) gibt es dafür eine Option!

"typescript.preferences.quoteStyle": "single"

Weitere Informationen finden Sie unter:

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

Sebastian Sebald
quelle
22
"typescript.preferences.quoteStyle": "single"
Niko
7
Dies scheint für mich nicht wirksam zu sein. Ich bekomme immer noch doppelte Anführungszeichen von Vorschlägen und Ausschnitten.
John Knoop
Gleich für mich, geändert auf allen möglichen Ebenen (Benutzer, Arbeitsbereich, Projekt) und immer noch doppelte Anführungszeichen :(
Kostanos
Ich weiß nicht, welche Sprache Sie beide verwenden, aber es gibt separate Einstellungen für Javascript und Typoskript. Ich habe mich das Gleiche gefragt, aber ich habe die Einstellung für Javascript-Code und nicht für Typoskript festgelegt.
GhostBytes
53

Sie können auch die folgende Zeile in Ihren vscode-Benutzereinstellungen konfigurieren, um diese Einstellung anzupassen.

"prettier.singleQuote": true
abdllhbyrktr
quelle
3
schöner ist eine erweiterung, nicht jeder benutzt sie
caub
1
Es ist frustrierend, dass die Leute davon ausgehen, dass Sie Prettier verwenden oder verwenden möchten. Es sei denn, jemand fragt "Wie mache ich das mit Prettier?" - Ich denke, es ist am besten, nicht zu antworten, wenn er es hat.
Zar Bomba
@ TsarBomba Du hast recht. Diese Einstellung erfordert eine schönere Erweiterung zum Anpassen des Angebots. marketplace.visualstudio.com/...
abdllhbyrktr
15

Ich habe das mit der Editor-Konfiguration behoben. Öffnen Sie Ihre .editorconfig- Datei in Ihrem Projektstammverzeichnis (falls nicht, erstellen Sie diese Datei) und fügen Sie diese Zeile nach dem [*] hinzu.

[*]
...
quote_type = single

Im Wiki sehen Sie die vollständige Liste der Eigenschaften.

Joel Jacquez
quelle
Upvoted. Beschränkt Änderungen nur auf das Projekt, an dem Sie arbeiten, im Vergleich zu global. Zusätzlicher Hinweis: Starten Sie VS Code neu , damit die Änderungen wirksam werden.
EdSF
Nur um zu kommentieren: In VS Code können Sie Arbeitsbereichseinstellungen festlegen, die auch für dieses Projekt spezifisch sind. Auf diese Weise können Sie beim Import einfache / doppelte Anführungszeichen verwenden, wenn Sie den anderen Typ an einer anderen Stelle in den Dateien verwenden möchten. Die Änderung von .editorconfig ist projektweit.
Cruril
12

Ab VS Code 1.21.1 müssen Sie bearbeiten

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

In Windows

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

In Windows 10 (vscode Version 1.30. * (Benutzer-Setup) später)

* C: \ Benutzer \ <IhrBenutzername> \ AppData \ Local \ Programme \ Microsoft VS-Code \ Ressourcen \ App \ Erweiterungen \ Typoskript-Grundlagen \ Snippets \ Typoskript.json

Stellen Sie im Abschnitt 'Externes Modul importieren' dieser Datei die Eigenschaft body array auf den Wert ein. "import { $0 } from '${1:module}';"Der Abschnitt sieht dann folgendermaßen aus:

"Import external module.": {
    "prefix": "import statement",
    "body": [
        "import { $0 } from '${1:module}';"
    ],
    "description": "Import external module."
},
cdoremus
quelle
1
Diese Lösung hat bei mir funktioniert. Ich habe buchstäblich alles versucht, aber nur das hat es behoben.
Sosa
8

Eine Alternative, die diese Konfiguration unterstützt, ist TypeScript Toolbox .

Es kann durch Einstellung konfiguriert werden genGetSet.pathStringDelimiter, bei der der Import in einfache Anführungszeichen bereits standardmäßig verwendet wird.

Boris van Katwijk
quelle
2
Danke dafür! Erwähnenswert ist auch die genGetSet.spacedImportLineEinstellung, damit neue Importzeilen wie import { Router }....anstelle der Standardeinstellung aussehenimport {Router}...
FLGMwt
1
Sowohl die Antwort als auch der Kommentar oben sind großartige Informationen! Danke euch beiden!
Kris Boyd
7

Gehen Sie zu "Datei> Einstellungen> Einstellungen" und fügen Sie diese unter Benutzereinstellungen hinzu:

"typescript.preferences.quoteStyle": "single",
"javascript.preferences.quoteStyle": "single"
Wagner Danda da Silva Filho
quelle
Funktioniert für mich, danke! Übrigens können Sie einen Link zu den Standardeinstellungen hinzufügen, die diese Optionen enthalten: 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

Ab TypeScript 2.5 wird die erste Import- oder Exportanweisung in der Datei gescannt, um festzustellen, ob bei der Verwendung von Importvorschlägen einfache oder doppelte Anführungszeichen verwendet werden.

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

Trevor Daniels
quelle
2

Sie können die folgende Zeile auch in Ihren vscode-Benutzereinstellungen konfigurieren, um ein einfaches Anführungszeichen in einer Zeichenfolge zuzulassen.

Gehen Sie zu Einstellungen> Benutzereinstellungen

"prettier.singleQuote": true

Dies ermöglicht ein einfaches Anführungszeichen in String. Wenn Sie andernfalls alle doppelten Anführungszeichen manuell in einfache Anführungszeichen ändern, werden diese beim Speichern zurückgesetzt. Fügen Sie außerdem hinzu

"tslint.autoFixOnSave": true

beim Speichern automatisch reparieren.

anirban8611
quelle
1

Dies ist bereits implementiert (wie in einer anderen Antwort erwähnt)! Aber Sie sind wahrscheinlich noch nicht auf der neuesten Version von TypeScript.

Die Lösung ist einfach:

Klicken Sie zwischen "TypeScript" und einem kleinen Smiley in der unteren rechten Ecke auf die TypeScript-Versionsnummer (z. B. 2.3.4). Wechseln Sie dann zur integrierten Version von Visual Studio Code (derzeit 2.5.3).

Danach leitet der Visual Studio-Code den Importzitatstil ab, indem er sich die erste Importanweisung ansieht . Beachten Sie, dass ein kleines Popup-Label ohnehin immer noch doppelte Anführungszeichen anzeigt.

Fehlerbericht

Relevante Pull-Anfrage :

Dies bietet die Möglichkeit zu bestimmen, ob einfache oder doppelte Anführungszeichen für neue Importe verwendet werden sollen, die über Codekorrekturen hinzugefügt wurden. Wenn ein neuer Import hinzugefügt wird, durchsuchen wir die obersten Anweisungen der Quelldatei nach vorhandenen Import- oder Exportdeklarationen mit Modulspezifizierern. Wir verwenden dann den Anführungszeichenstil des ersten, den wir finden. Wenn die Datei keine Importe enthält, verwenden wir doppelte Anführungszeichen.

Andrei Sinitson
quelle
0

Die oben genannten Lösungen haben bei mir nicht funktioniert

Hier ist meine Arbeit, wenn Sie vscode verwenden "tslint.autoFixOnSave": true in Ihrem settings.jsonTestament werden diese Importzitate automatisch korrigiert, wenn Sie die Datei speichern.

Varun Sukheja
quelle
SagtUnknown Configuration Setting
Edgar Quintero