Visual Studio Code: modifica l'impostazione delle quotazioni di importazione


85

Quando si lavora in TypeScript in Visual Studio Code, il suggerimento di importazione su un tipo (attivato da spazio + punto) genererà un'importazione utilizzando virgolette doppie.

Il nostro linter TypeScript verifica che le virgolette singole vengano utilizzate ove possibile.

Come puoi vedere di seguito, il suggerimento è composto da virgolette doppie ("@angular / ...") Importa suggerimento con virgolette doppie

Come posso modificare l'impostazione dell'importazione?


Risposte:


87

A partire da VSCode 1.10, questo (purtroppo) non è ancora possibile. Ma è un problema per molti utenti come sembra. Il tema VSCode è a conoscenza di questo problema e puoi seguirlo per sapere quando viene implementato: https://github.com/Microsoft/TypeScript/issues/13270


Aggiornamento giugno 2018

Da VSCode 1.24 (giugno 2018) c'è un'opzione per questo!

"typescript.preferences.quoteStyle": "single"

Per maggiori informazioni vedere:

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


22
"typescript.preferences.quoteStyle": "single"
Niko

7
Questo non sembra avere effetto per me. Ricevo ancora virgolette doppie da suggerimenti e snippet.
John Knoop

Lo stesso per me, modificato su tutti i livelli possibili (utente, area di lavoro, progetto) e ha ancora virgolette doppie :(
Kostanos

Non so quale lingua state usando ma ci sono impostazioni separate per javascript e dattiloscritto. Mi chiedevo la stessa cosa ma ho impostato l'impostazione del codice javascript e non il dattiloscritto.
GhostBytes

53

È inoltre possibile configurare la riga seguente nelle impostazioni utente di vscode per regolare questa impostazione.

"prettier.singleQuote": true

3
più bella è un'estensione, non tutti la usano
caub

1
È frustrante che le persone presumano che tu abbia o desideri utilizzare Prettier. A meno che qualcuno non chieda "come faccio con Prettier", penso che sia meglio non rispondere supponendo che ce l'abbia.
Tsar Bomba

@TsarBomba Hai ragione. Questa impostazione richiede un'estensione Prettier per la regolazione dell'offerta. marketplace.visualstudio.com/…
abdllhbyrktr

15

Ho risolto il problema utilizzando Editor config , apri il tuo file .editorconfig nella directory principale del tuo progetto (se non lo hai, crea quel file) e aggiungi questa riga dopo [*]

[*]
...
quote_type = single

Nel wiki puoi vedere l'elenco completo delle proprietà.


Votato. Limita le modifiche solo al progetto su cui stai lavorando rispetto a quello globale. Nota aggiuntiva: riavviare VS Code per rendere effettive le modifiche.
EdSF

Giusto per commentare, in VS Code è possibile impostare anche le impostazioni dell'area di lavoro specifiche per quel progetto. Ciò ti consentirà di utilizzare virgolette singole / doppie in particolare durante l'importazione se desideri utilizzare l'altro tipo altrove all'interno dei file. La modifica di .editorconfig sarà estesa a tutto il progetto.
Cruril

12

A partire da VS Code 1.21.1 è necessario modificare

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

In Windows

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

In Windows 10 (vscode versione 1.30. * (Configurazione utente) successiva)

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

Nella sezione "Importa modulo esterno" di quel file, imposta come valore la proprietà dell'array del corpo "import { $0 } from '${1:module}';"La sezione sarà quindi simile a questa:

"Import external module.": {
    "prefix": "import statement",
    "body": [
        "import { $0 } from '${1:module}';"
    ],
    "description": "Import external module."
},

1
Questa soluzione ha funzionato per me. Ho letteralmente provato di tutto, ma solo questo lo ha risolto.
Sosa

8

Un'alternativa che supporta questa configurazione è TypeScript Toolbox .

È configurabile tramite impostazione genGetSet.pathStringDelimiter, che ha già l'importazione di virgolette come predefinita.


2
Grazie per questo! Vale la pena sottolineare anche l' genGetSet.spacedImportLineimpostazione in modo che le nuove linee di importazione import { Router }....import {Router}...
sembrino

1
Sia la risposta che il commento sopra sono ottime informazioni! Grazie due!
Kris Boyd

7

Vai a "File> Preferenze> Impostazioni" e poi aggiungi questo nelle impostazioni utente:

"typescript.preferences.quoteStyle": "single",
"javascript.preferences.quoteStyle": "single"

Funziona per me, grazie! BTW, puoi aggiungere un collegamento alle impostazioni predefinite che presentano queste opzioni: 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


2

È inoltre possibile configurare la riga sottostante nelle impostazioni utente vscode per consentire virgolette singole in stringa.

Vai a Preferenze> Impostazioni utente

"prettier.singleQuote": true

Ciò consentirà virgolette singole in String. In caso contrario, se si modificano manualmente tutte le virgolette doppie in virgolette singole, verranno ripristinate durante il salvataggio. Inoltre, aggiungi

"tslint.autoFixOnSave": true

per correggere automaticamente durante il salvataggio.


1

Questo è già implementato (come menzionato in un'altra risposta)! Ma probabilmente non sei ancora sull'ultima versione di TypeScript.

La soluzione è semplice:

Fare clic sul numero di versione di TypeScript (ad esempio 2.3.4) tra "TypeScript" e una piccola faccina sorridente nell'angolo inferiore destro. Quindi passare alla versione incorporata di Visual Studio Code (2.5.3 in questo momento).

Dopo questo codice Visual Studio dedurrà lo stile delle quote di importazione esaminando la prima istruzione di importazione . Nota che una piccola etichetta popup mostrerà comunque le virgolette doppie.

Riportare un errore

Richiesta pull pertinente :

Ciò aggiunge la possibilità di determinare se utilizzare virgolette singole o doppie per le nuove importazioni aggiunte tramite correzioni di codice. Quando viene aggiunta una nuova importazione, analizziamo le istruzioni più in alto del file sorgente per le dichiarazioni di importazione o esportazione esistenti con specificatori di modulo. Quindi usiamo lo stile di citazione del primo che troviamo. Se non ci sono importazioni esistenti nel file, torniamo a utilizzare le virgolette doppie.


0

Le soluzioni di cui sopra non hanno funzionato per me

Quindi ecco il mio lavoro in giro, quando usi vscode,: "tslint.autoFixOnSave"true nel tuo settings.jsoncorreggerà automaticamente queste citazioni di importazione quando salverai il file.


DiceUnknown Configuration Setting
Edgar Quintero
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.