VSCode格式被覆盖

时间:2018-01-19 19:38:17

标签: angular visual-studio-code

我是在Angular开发的,经过近一年的完美格式化后,我的vscode正处于fritz状态。更具体地说,当我点击格式doc。它用2个空格而不是4个缩进。如何修复此问题,或检查覆盖我设置的内容?

我的用户和工作区设置(它们是相同的):

{
  "editor.fontSize": 16,
  "editor.tabSize": 4,
  "editor.insertSpaces": true,
  "editor.wordWrap": "off",
  "workbench.iconTheme": "material-icon-theme",
  "editor.detectIndentation": true,
  "prettier.bracketSpacing": true,
  "prettier.eslintIntegration": true,
  "prettier.singleQuote": true,
  "prettier.tabWidth": 4,
  "prettier.useTabs": false,
}

我的扩展程序列表:

Angular Essentials(注意更漂亮的是依赖关系,所有其他deps都已安装)

Bracket Pair Colorizer language-vscode-javascript-angular2

编辑:

另外,它在我的编辑器底部有缩进2个空格,当我点击它并点击4个空格时它会显示已配置的标签大小。为什么不为每个文件设置这个默认值?

2 个答案:

答案 0 :(得分:0)

我认为这是因为Angular Essentials Prettier插件默认情况下缩进为2,所以你必须创建一个更强大的单独的配置才能使它工作。

请参阅this github post

答案 1 :(得分:0)

这可能是由于两件事造成的:

EditorConfig

首先,注释中提到的.editorconfig文件是Angular生成的单独文件(特别是与VSCode不相关)。 它可作为任何编辑者阅读和服从的指南,允许开发人员以相同的样式处理同一个项目,但可以选择多个IDE /编辑器。 它应该看起来像这样:

# Editor configuration, see https://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

如评论所言,更多信息可以在https://editorconfig.org上找到。

在您的情况下,您希望将indent_size = 2行更改为indent_size = 4

Angular CLI

如果这不能解决问题,也可能是Angular CLI生成具有2个空格的文件,而VSCode根据您的"editor.detectIndentation": true设置检测到该缩进。 这是here一段时间以来的热门话题,虽然被this解决了,但基于this comment似乎没有帮助。

我在VSCode中使用Language Specific Settings修复了此问题。 我选择将制表符的大小强制设置为4,并对Angular生成的所有文件类型禁用缩进检测。 您可以将其放在“ VSCode用户设置”中,或按照these instructions)进行“正确”路由。

{
    "[typescript]": {
        "editor.tabSize": 4,
        "editor.detectIndentation": false
    },
    "[javascript]": {
        "editor.tabSize": 4,
        "editor.detectIndentation": false
    },
    "[html]": {
        "editor.tabSize": 4,
        "editor.detectIndentation": false
    },
    "[json]": {
        "editor.tabSize": 4,
        "editor.detectIndentation": false
    },
    "[jsonc]": {
        "editor.tabSize": 4,
        "editor.detectIndentation": false
    }
}

在任何地方添加"editor.formatOnSave": true或仅按 Ctrl + Shift + I (格式文件)都可以解决问题。

"editor.formatOnPaste": true如果经常粘贴2个空格的示例代码,可能也很有用。