Código do Visual Studio: formato não está usando configurações de recuo


143

Ao usar o Format Codecomando no Visual Studio Code, ele não está respeitando minhas configurações de recuo ( "editor.tabSize": 2). Ele está usando um tamanho de guia 4. Alguma idéia de por que isso está acontecendo?

Obrigado!


Qual língua? O Visual Studio Code delega a formatação para o formatador de idiomas. Alguns formatadores observam a configuração do recuo. Por exemplo, C #, que é tratado pelo OmniSharp, e devem ser configurados utilizando omnisharp.json
Ian Yang

Demorei muito tempo para descobrir: eu tinha um arquivo .cs com abas e recuos de espaço misturados e queria formatá-lo com todas as abas (b / c a maioria das linhas tinha abas). Tentei vários valores de configuração com "Formatar documento" e "Seleção de formato", mas não tive sorte. Finalmente, encontrei a ação "Converter recuo em guias" (veja a imagem na resposta de @ Maleki) e fez o que eu queria fazer. (Também descobri recentemente ctrl-shift-p! ... sim, sou novo no VS Code)
KevinVictor

Respostas:


228

O número de espaços a serem usados ​​para formatação é obtido em um local diferente. Estou usando a versão 1.0 e foi o que fiz para corrigi-la (suponho que você use espaços em vez de guias):

Na parte inferior do editor, à direita, clique em "Espaços: #":

barra de status à direita

Em seguida, um menu aparecerá no topo. Selecione "Recuar usando espaços":

selecione o tipo de recuo

Finalmente, você pode selecionar por quantos espaços deseja que seus arquivos sejam recuados.

selecione o tamanho da guia

Na próxima vez que você formatar um arquivo, poderá obter o espaçamento configurado.


28
Essa configuração não é usada ao aplicar o formato automático (clique com o botão direito do mouse -> Formatar código). Ele sempre usa 4 espaços.
Kiml42 8/08/16

Você precisa de ambos - definir suas configurações pessoais para o espaço de trabalho ou o editor (ou ambos). Novos arquivos capturam essa configuração e mostram '2', por exemplo, na barra de status, de acordo com essas capturas de tela. Então você pode formatar automaticamente. Para arquivos existentes, primeiro defina as configurações do seu espaço de trabalho / editor para 'usar guias' ou 'usar espaços' e defina o número de espaços; em seguida, você pode executar o método acima para autoformar os arquivos existentes.
rmcsharry

5
Definir ambas as configurações do usuário e espaço de trabalho, defini-lo na barra inferior, arquivo reaberto - ainda autoformatação está usando 4 espaços ...
Jared

3
Teve que sair e reiniciar o vscode depois de definir os padrões de usuário e espaço de trabalho para as configurações. Só então ele parou de tentar usar 4 espaços nos meus arquivos JS.
precisa

11
@ Jared Acho que você está usando o JS-CSS-HTMLplugin. Nesse caso, pressione F1e escolha formatador e defina seu recuo lá. Parece substituir todas as opções discutidas acima.
Atif Mohammed Ameenuddin 27/11

111

O Código do Visual Studio detecta o recuo atual por padrão e usa isso - ignorando o .editorconfig

Defina também "editor.detectIndentation" como false

(Arquivos -> Preferências -> Configurações)

captura de tela


Se isso acontecer, você provavelmente terá um recuo inconsistente dentro do arquivo. Eu tinha um arquivo com abas em todos os lugares, exceto para algumas linhas com dois espaços (quem sabe porquê), que acabou sendo detectado como usando guias, mas com um tamanho de guia de 2.
isanae

49

Se a resposta do @ Maleki não estiver funcionando para você, verifique se você tem um .editorconfigarquivo na pasta do projeto.

Por exemplo, a CLI angular gera uma com um novo projeto que se parece com isso

# 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É necessário alterar o aqui, pois parece que substituirá qualquer coisa no seu .vscodeespaço de trabalho ou nas configurações do usuário.


5
Eu tive que reiniciar o VSCode para que as alterações entrassem em vigor no IDE.
JOpuckman

3
No meu caso, foi realmente causado pelo .editorconfigarquivo na minha pasta pessoal. De alguma forma, o VSCode ignora as configurações específicas da área de trabalho. Muito irritante.
xji

20

Se você estiver usando um plug-in (no meu caso, Vetur, para vue.js), eles podem definir suas próprias configurações de formatação de guia.

Abra suas configurações, pesquise "formato" e verifique as configurações relevantes do plug-in que podem estar substituindo o formato da guia global. Isso funcionou para mim; depois de atualizar as configurações da guia Vetur para corresponder à minha preferência (guias de tamanho 4 no meu caso), a formatação de documentos .vue começou a funcionar corretamente:

insira a descrição da imagem aqui


Isso é verdade, no meu caso eu também precisei definir o tamanho da guia nas configurações da extensão Prettier.
tonix

Vale ressaltar que o SCSS Formatterplug - in usa suas próprias configurações, por exemplo, então você deve Settings > Extensions > SCSS Formatter > Use Tabsforçá-lo a usar guias, por exemplo.
SmartyP

13

Para mim, esse problema foi causado pelo uso do prettierplug-in VSCode sem ter um arquivo de configuração mais bonito na área de trabalho.

Desativar o plugin corrigiu o problema. Provavelmente também poderia ter sido corrigido contando com a configuração mais bonita.


1
Para mim, foi o plugin "Beautify".
Matthew Smith

Eu tive o mesmo problema com o "Clang-Format" e o arquivo de configuração ".clang-format".
Repkap11 21/05/19

6

Provavelmente você tem alguma extensão de formatação instalada, por exemplo, JS-CSS-HTML Formatter .

Se for o caso, basta abrir a Paleta de comandos, digite "Formatador" e selecione Formatter Config. Em seguida, edite o valor "indent_size"como desejar.

PS Não esqueça de reiniciar o Visual Studio Code após a edição :)


6

as configurações abaixo resolveram meu problema

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

funciona se você trabalha com arquivos com apenas 2 abas de espaços!
Dominux 6/03

2

Se você veio do google porque a guia não está recuando, isso também pode acontecer porque "Tab Moves Focus" está ativado. Está no canto inferior direito e, se você tiver um monitor grande o suficiente, poderá perdê-lo, apesar de destacado.

insira a descrição da imagem aqui

Clique na área Verde ou Ctrl + M para fazê-lo parar. Não tenho certeza de que possa ser desativado por completo, mas novamente não sei por que um editor de código gostaria de mexer em algo como recuar.


2

Eu tive um problema semelhante - não importa o que fiz, não consegui que o tamanho da tabulação ficasse em 2, mesmo que esteja nas minhas configurações de usuário - que acabou devido à extensão EditorConfig . Ele procura um .editorconfigarquivo no seu diretório de trabalho atual e, se não encontrar um (ou aquele que encontra não especificaroot=true ), continuará a procurar nos diretórios pai até encontrar um.

Acontece que eu tinha um .editorconfigem um diretório pai do diretório em que coloquei todos os meus novos projetos de código e ele especificou uma tabSize de 4. A exclusão desse arquivo corrigiu meu problema.


1

Às vezes, tenho o mesmo problema. De repente, o VSCode simplesmente perde a cabeça e ignora completamente qualquer configuração de recuo, apesar de estar recuando o mesmo arquivo durante todo o dia.

Eu editor.tabSizeconfigurei para 2 (assim comoeditor.formatOnSave para true). Quando o VSCode atrapalha um arquivo, eu uso as opções na parte inferior do editor para alterar o tipo e o tamanho do recuo, esperando que algo funcione, mas o VSCode insiste em usar um tamanho de recuo 4.

O conserto? Reinicie o VSCode. Ele deve voltar com o status de recuo mostrando algo errado (no meu caso, 4). Para mim, eu tive que alterar a configuração e, em seguida, guardar para que ela realmente fizesse a alteração, mas isso provavelmente deveeditor.formatOnSave configuração.

Não descobri por que isso acontece, mas para mim é geralmente quando estou editando um objeto aninhado em um arquivo JS. De repente, ele fará um recuo muito estranho dentro do objeto, mesmo que eu esteja trabalhando nesse arquivo há um tempo e esteja recuando muito bem.


0

O plugin VSCode Vetur; usado para aplicativos VueJS estava substituindo a configuração para mim.

Definir vetur.format.options.tabSize para o meu número preferido de espaços fez com que funcionasse.



-1

Desative todos os plugins (ative um por um e verifique)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.