VSCode:Prettier 不适用于 Dart Flutter

chi*_*chi 2 node.js dart visual-studio-code vscode-settings prettier

我正在使用DartNode.js。我尝试Node.js使用Prettier. 但是,VSCode 会自动格式化Dart文件,但不会JavaScript使用Prettier.

在此处输入图片说明

在屏幕下方,它写着 Prettier on JavaScript。当我触摸该设置并将其设置Prettier为自动格式化时,Prettier它可以自动格式化 JS 文件,但Dart自动格式化不起作用。

如何将 VSCode 设置为自动格式化 Dart 和 JS 文件而无需每次都切换设置?

VSCode 设置

{
    "workbench.colorTheme": "Visual Studio Dark",
    "[dart]": {
        "editor.formatOnSave": true,
        "editor.formatOnType": true,
        "editor.rulers": [
            80
        ],
        "editor.selectionHighlight": false,
        "editor.suggest.snippetsPreventQuickSuggestions": false,
        "editor.suggestSelection": "first",
        "editor.tabCompletion": "onlySnippets",
        "editor.wordBasedSuggestions": false
    },
    "workbench.preferredHighContrastColorTheme": "Default Dark+",
    "files.autoSave": "afterDelay",
    "editor.minimap.enabled": false,
    "dart.openDevTools": "flutter",
    "explorer.confirmDragAndDrop": false,
    "[javascript]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
    }
}
Run Code Online (Sandbox Code Playgroud)

Abi*_*n47 6

不要将 Prettier 设置为 VS Code 的全局默认格式化程序。设置为仅作为 Javascript 相关的默认格式化程序。打开您的设置 JSON 并添加以下内容:

{
  ...
  "[javascript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[jsonc]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[json]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  }
}
Run Code Online (Sandbox Code Playgroud)


dic*_*und 5

我结合了上面的答案和评论,并用它来解决我遇到的问题,即同一 VSCode 项目中的 Firebase Cloud Function JavaScript/Typescript 和 Flutter/Dart 代码。

  1. 在项目的根目录中创建一个 .vscode 文件夹。
  2. 在其中创建一个 settings.json 文件。
  3. 添加以下内容并根据您的喜好进行调整。在主 VSCode 设置中,您可以在每个设置旁边的左侧装订线中找到一个齿轮,其中有一个“将设置复制到 JSON”菜单项,然后您可以将其粘贴到下面并进行调整以覆盖应用程序级设置。
  4. 决定是 .gitignore 您的新文件夹还是与您的团队共享。
  5. 重启VSCode
{
  "[typescript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[javascript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[jsonc]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[json]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[dart]": { "editor.defaultFormatter": "Dart-Code.dart-code" },
  "editor.formatOnSave": true
}

Run Code Online (Sandbox Code Playgroud)