Codice di Visual Studio: il formato non utilizza le impostazioni di rientro


144

Quando si utilizza il Format Codecomando in Visual Studio Code, non rispetta le mie impostazioni di rientro ( "editor.tabSize": 2). Invece utilizza una dimensione di tabulazione di 4. Qualche idea sul perché questo stia accadendo?

Grazie!


Quale lingua? Codice di Visual Studio delegare la formattazione al formattatore della lingua. Alcuni formatter osservano l'impostazione del rientro. Ad esempio, C #, che è gestito da OmniSharp, e dovrebbe essere configurato usando omnisharp.json
Ian Yang,

Mi ci è voluto molto tempo per capire: avevo un file .cs con schede miste e rientri spaziali e volevo formattarlo con tutte le schede (in b / c la maggior parte delle righe aveva schede). Ho provato vari valori di impostazione con "Formato documento" e "Selezione formato" ma non ho avuto fortuna. Alla fine ho trovato l'azione "Converti indentazione in schede" (vedi l'immagine nella risposta di @ Maleki) e ho fatto quello che volevo fare. (Ho anche scoperto di recente ctrl-shift-p! ... sì, sono nuovo di VS Code)
KevinVictor

Risposte:


229

Il numero di spazi da utilizzare per la formattazione viene preso da una posizione diversa. Sto usando la versione 1.0 e questo è quello che ho fatto per risolverlo (suppongo che tu usi gli spazi invece delle schede):

Nella parte inferiore dell'editor a destra fai clic su "Spaces: #":

barra di stato a destra

Quindi apparirà un menu in alto. Seleziona "Rientra usando gli spazi":

seleziona il tipo di rientro

Infine puoi selezionare in base a quanti spazi vuoi che i tuoi file siano rientrati.

seleziona le dimensioni della scheda

Alla successiva formattazione di un file dovresti essere in grado di ottenere la spaziatura che hai configurato.


29
Questa impostazione non viene utilizzata quando si applica il formato automatico (tasto destro del mouse -> Codice formato). Utilizza sempre 4 spazi.
Kiml42

È necessario entrambi: configurare le impostazioni personali per l'area di lavoro o l'editor (o entrambi). I nuovi file prenderanno quell'impostazione e mostreranno '2' per esempio, nella barra di stato come in questi screenshot. Quindi puoi formattare automaticamente. Per i file esistenti, imposta prima le impostazioni dell'area di lavoro / dell'editor su "usa schede" o "usa spazi" e imposta il numero di spazi, quindi puoi eseguire il metodo sopra per formattare automaticamente i file esistenti.
rmcsharry,

5
Configura le impostazioni sia dell'utente sia dell'area di lavoro, impostalo nella barra in basso, riapri il file - ancora il form di formattazione utilizza 4 spazi ...
Jared

3
Ho dovuto uscire e riavviare vscode dopo aver impostato le impostazioni predefinite sia dell'utente che dell'area di lavoro per le impostazioni. Solo allora ha smesso di provare a usare 4 spazi sui miei file JS.
John Pettitt,

11
@Jared Penso che tu stia usando il JS-CSS-HTMLplugin. In tal caso, premere F1e selezionare il formattatore e impostare qui il rientro. Sembra sovrascrivere tutte le opzioni discusse sopra.
Atif Mohammed Ameenuddin,

113

Visual Studio Code rileva il rientro corrente per impostazione predefinita e lo utilizza, ignorando il file .editorconfig

Impostare anche "editor.detectIndentation" su false

(File -> Preferenze -> Impostazioni)

immagine dello schermo


In questo caso, probabilmente hai un rientro incoerente all'interno del file. Avevo un file con schede ovunque tranne che per alcune righe con due spazi (chissà perché), che alla fine veniva rilevato come usando le schede ma con una dimensione di scheda di 2.
isanae

49

Se la risposta di @ Maleki non funziona per te, controlla e vedi se hai un .editorconfigfile nella cartella del tuo progetto.

Ad esempio la CLI angolare ne genera uno con un nuovo progetto simile a questo

# Editor configuration, see http://editorconfig.org
root = true

[*]
charset = utf-8
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true

[*.md]
max_line_length = off
trim_trailing_whitespace = false

indent_sizeÈ necessario modificare il qui in quanto sembra sovrascriverà qualsiasi cosa nell'area di .vscodelavoro o nelle impostazioni dell'utente.


5
Ho dovuto riavviare VSCode per rendere effettiva la modifica nell'IDE.
JOpuckman,

3
Nel mio caso è stato effettivamente causato dal .editorconfigfile nella mia cartella home. In qualche modo, VSCode ignora qualsiasi impostazione specifica dell'area di lavoro. Molto noioso.
xji,

20

Se stai usando un plug-in (nel mio caso Vetur, per vue.js), questi potrebbero impostare le proprie impostazioni di formattazione delle schede.

Apri le tue impostazioni, cerca il "formato" e controlla le impostazioni dei plug-in rilevanti che potrebbero sovrascrivere il formato della scheda globale. Questo ha funzionato per me; dopo aver aggiornato le impostazioni della scheda Vetur in base alle mie preferenze (schede di 4 dimensioni nel mio caso), la formattazione dei documenti .vue ha iniziato a funzionare correttamente:

inserisci qui la descrizione dell'immagine


È vero, nel mio caso avevo bisogno di impostare la dimensione della scheda anche nelle impostazioni dell'estensione Prettier.
tonix,

Vale la pena notare che il SCSS Formatterplug-in utilizza le proprie impostazioni, ad esempio, quindi è necessario andare Settings > Extensions > SCSS Formatter > Use Tabsper forzarlo ad utilizzare le schede, ad esempio.
SmartyP

13

Per quanto mi riguarda, questo problema è stato causato dall'utilizzo del prettierplug-in VSCode senza avere un file di configurazione più carino nell'area di lavoro.

La disabilitazione del plug-in ha risolto il problema. Probabilmente avrebbe anche potuto essere risolto affidandosi alla configurazione più bella.


1
Per me è stato il plugin "Beautify".
Matthew Smith,

Ho avuto lo stesso problema con "Clang-Format" e il file di configurazione ".clang-format".
repkap11

6

Molto probabilmente hai installato qualche estensione di formattazione, ad esempio JS-CSS-HTML Formatter .

In questo caso, apri la Tavolozza dei comandi, digita "Formatter" e seleziona Formatter Config. Quindi modifica il valore "indent_size"come preferisci.

PS Non dimenticare di riavviare il codice di Visual Studio dopo la modifica :)


6

le impostazioni di seguito hanno risolto il mio problema

  "editor.detectIndentation": false,
  "editor.insertSpaces": false,
  "editor.tabSize": 2,

funziona se lavori solo con file con 2 schede spazi!
Dominux

2

Se sei venuto qui da Google perché la scheda non è rientrata, ciò può essere dovuto al fatto che "La scheda sposta lo stato attivo" è attiva. È in basso a destra, e se hai un monitor abbastanza grande potresti perderlo nonostante sia evidenziato.

inserisci qui la descrizione dell'immagine

Fai clic sull'area verde o Ctrl + M per interromperla. Non sono sicuro che possa essere disabilitato del tutto, quindi non so perché un editor di codice vorrebbe fare casino con qualcosa come il rientro.


2

Ho avuto un problema simile - indipendentemente da quello che ho fatto, non sono riuscito a mantenere il tabsize su 2, anche se è nelle mie impostazioni utente - che è finito a causa dell'estensione EditorConfig . Cerca un .editorconfigfile nella directory di lavoro corrente e, se non ne trova uno (o quello che trova non specifica root=true), continuerà a cercare le directory principali fino a quando non ne trova una.

Si scopre che ho avuto un .editorconfigin una directory padre della directory in cui ho inserito tutti i miei nuovi progetti di codice, e ha specificato un tabSize di 4. L'eliminazione di quel file ha risolto il mio problema.


1

A volte ho questo stesso problema. VSCode perderà improvvisamente la sua mente e ignorerà completamente qualsiasi impostazione di rientro che dico, anche se ha indentato lo stesso file per tutto il giorno.

Ho editor.tabSizeimpostato su 2 (oltre che editor.formatOnSavesu true). Quando VSCode confonde un file, uso le opzioni nella parte inferiore dell'editor per modificare il tipo e la dimensione del rientro, sperando che qualcosa funzioni, ma VSCode insiste sul fatto che effettivamente utilizza una dimensione del rientro di 4.

La correzione? Riavvia VSCode. Dovrebbe tornare con lo stato del rientro che mostra qualcosa di sbagliato (nel mio caso, 4). Per me, ho dovuto modificare l'impostazione e quindi salvarla per apportare effettivamente la modifica, ma probabilmente è a causa della mia editor.formatOnSaveimpostazione.

Non ho capito perché ciò accada, ma per me è di solito quando sto modificando un oggetto nidificato in un file JS. Improvvisamente farà un rientro molto strano all'interno dell'oggetto, anche se ho lavorato su quel file per un po 'ed è stato ben rientrato.


0

Il plugin VSCode Vetur; usato per le applicazioni VueJS stava scavalcando l'impostazione per me.

L'impostazione di vetur.format.options.tabSize sul mio numero preferito di spazi l'ha fatto funzionare.



-1

Disabilita tutti i plugin (quindi abilita uno per uno e verifica)

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.