1

VS Code 中的 Prettier 使用了错误的缩进,即使我将所有我能想到的位置都更改为“4”的宽度。

这是我的文件内容(有些可能不是必需的,但我在尝试修复它时添加了它们):

c:\Users\jp\Documents\Repositories\Game\Client\.prettierrc.js

module.exports = {
  semi: true,
  trailingComma: "none",
  singleQuote: false,
  printWidth: 120,
  tabWidth: 4,
  endOfLine: "auto",
  trailingComma: "none"
};

c:\Users\jp\Documents\Repositories\Game\Client\.editorconfig

indent_size = 4

c:\Users\jp\Documents\Repositories\Game\Client\.eslintrc.js

module.exports = {
    parser: "@typescript-eslint/parser", // Specifies the ESLint parser
    parserOptions: {
        ecmaVersion: 2020, // Allows for the parsing of modern ECMAScript features
        sourceType: "module", // Allows for the use of imports
        ecmaFeatures: {
            jsx: true // Allows for the parsing of JSX
        }
    },

    settings: {
        react: {
            version: "detect" // Tells eslint-plugin-react to automatically detect the version of React to use
        }
    },

    extends: [
        "plugin:react/recommended", // Uses the recommended rules from @eslint-plugin-react
        "plugin:@typescript-eslint/recommended", // Uses the recommended rules from the @typescript-eslint/eslint-plugin
        "plugin:prettier/recommended", // Enables eslint-plugin-prettier and eslint-config-prettier. This will display prettier errors as ESLint errors. Make sure this is always the last configuration in the extends array.
        "prettier"
    ],

    rules: {
        // Place to specify ESLint rules. Can be used to overwrite rules specified from the extended configs

        // e.g. "@typescript-eslint/explicit-function-return-type": "off",
        "no-var": "error", // preference for let and const only
        "prefer-const": "error",
        "react/react-in-jsx-scope": "off",
        "@typescript-eslint/no-empty-function": "off",
        "react/prop-types": "off",
        "prettier/prettier": [
            "warn",
            {
                semi: true,
                trailingComma: "none",
                singleQuote: false,
                printWidth: 120,
                tabWidth: 4,
                endOfLine: "auto",
                trailingComma: "none"
            }
        ]
    }
};

c:\Users\jp\Documents\Repositories\Game\Client\.vscode\settings.json

{
    "editor.formatOnSave": true,
    "editor.formatOnType": true,
    "prettier.tabWidth": 4,
    "editor.tabSize": 4,
    "jestrunner.jestCommand": "npm run test -- --watchAll=false"
}

我的 VS Code 配置设置为“4”,在 VS Code 的底部栏中设置为“4”。我还将“检测缩进”设置为假。

这是我格式化文档时 Prettier 扩展输出的内容:

["INFO" - 17:18:30] Formatting file:///c%3A/Users/jp/Documents/Repositories/Game/Client/src/App.tsx
["INFO" - 17:18:30] Using config file at 'c:\Users\jp\Documents\Repositories\Game\Client\.prettierrc.js'
["INFO" - 17:18:30] Using ignore file (if present) at c:\Users\jp\Documents\Repositories\Game\Client\.prettierignore
["INFO" - 17:18:30] File Info:
{
  "ignored": false,
  "inferredParser": "typescript"
}
["INFO" - 17:18:30] Detected local configuration (i.e. .prettierrc or .editorconfig), VS Code configuration will not be used
["INFO" - 17:18:30] Prettier Options:
{
  "filepath": "c:\\Users\\jp\\Documents\\Repositories\\Game\\Client\\src\\App.tsx",
  "parser": "typescript",
  "semi": true,
  "trailingComma": "none",
  "singleQuote": false,
  "printWidth": 120,
  "tabWidth": 3,
  "endOfLine": "auto"
}
["INFO" - 17:18:30] Formatting completed in 0.027ms.

它甚至说它找到了正确的配置文件,但使用了错误的缩进。我在进行更改时重新启动了 VS Code,以确保没有缓存任何内容。在父路径中不存在 .editorconfig。

我只是不知道 Prettier 可能会从哪里获取错误的缩进...

编辑:当我使用“快速修复”和“修复所有更漂亮/更漂亮的问题”时,它使用正确的缩进。保存时格式化或使用“格式化文档”使用了错误的格式。扩展输出窗口的输出是相同的。

4

0 回答 0