vscode使用prettier格式化代码不起作用、配置不生效的解决方法

在更新Prettier插件后,若格式化功能失效,问题可能在于它优先使用项目根目录下的EditorConfig配置。解决办法是禁用VSCode的UseEditorConfig选项,创建.prettierrc.js配置文件或在用户设置中进行配置。配置文件的优先级为:独立配置文件>工作区配置>用户配置。确保每次更改配置类型后重启VSCode以使更改生效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

在某一次更新prettier插件后,发现格式化不起作用了,在vscode用户配置中怎么设置都没有效果

在这里插入图片描述

解决方法

  1. 由于prettier插件优先使用项目根目录下的editorconfig配置文件,所以在vscode中怎么配置有没有用,如下图
    在这里插入图片描述
  2. 进入插件配置界面
    在这里插入图片描述
  3. 取消Use Editor Config的复选框,这样就不会优先使用editorconfig配置文件
    在这里插入图片描述
  4. 你可以在项目根目录创建一个.prettierrc.js配置文件,prettier会自动检测到,也可以手动配置
    在这里插入图片描述在这里插入图片描述
  5. 也可以使用vscode的用户设置或者工作区设置,看你喜欢哪一种了
    在这里插入图片描述
    在这里插入图片描述

推荐配置

这里贴上一个我常用的配置文件

/**
 * @see https://prettier.io/docs/en/options.html#print-width
 * @author lcm
 */
module.exports = {
  /**
   * 换行宽度,当代码宽度达到多少时换行
   * @default 80
   * @type {number}
   */
  printWidth: 80,
  /**
   * 缩进的空格数量
   * @default 2
   * @type {number}
   */
  tabWidth: 2,
  /**
   * 是否使用制表符代替空格
   * @default false
   * @type {boolean}
   */
  useTabs: false,
  /**
   * 是否在代码块结尾加上分号
   * @default true
   * @type {boolean}
   */
  semi: false,
  /**
   * 是否使用单引号替代双引号
   * @default false
   * @type {boolean}
   */
  singleQuote: true,
  /**
   * 对象属性的引号处理
   * @default "as-needed"
   * @type {"as-needed"|"consistent"|"preserve"}
   */
  quoteProps: 'as-needed',
  /**
   * jsx中是否使用单引号替代双引号
   * @default false
   * @type {boolean}
   */
  jsxSingleQuote: true,
  /**
   * 在jsx中使用是否单引号代替双引号
   * @default false
   * @type {boolean}
   */
  /**
   * 末尾是否加上逗号
   * @default "es5"
   * @type {"es5"|"none"|"all"}
   */
  trailingComma: 'none',
  /**
   * 在对象,数组括号与文字之间加空格 "{ foo: bar }"
   * @default true
   * @type {boolean}
   */
  bracketSpacing: true,
  /**
   * 把多行HTML (HTML, JSX, Vue, Angular)元素的>放在最后一行的末尾,而不是单独放在下一行(不适用于自关闭元素)。
   * @default false
   * @type {boolean}
   */
  bracketSameLine: false,
  /**
   * 当箭头函数只有一个参数是否加括号
   * @default "always"
   * @type {"always"|"avoid"}
   */
  arrowParens: 'always',
  /**
   * 为HTML、Vue、Angular和Handlebars指定全局空格敏感性
   * @default "css"
   * @type {"css"|"strict"|"ignore"}
   */
  htmlWhitespaceSensitivity: 'ignore',
  /**
   * 是否缩进Vue文件中的<script>和<style>标记内的代码。有些人(比如Vue的创建者)不使用缩进来保存缩进级别,但这可能会破坏编辑器中的代码折叠。
   * @default "always"
   * @type {"always"|"avoid"}
   */
  vueIndentScriptAndStyle: false,
  /**
   * 文件结束符
   * @default "lf"
   * @type {"lf"|"crlf"|"cr"|"auto"}
   */
  endOfLine: 'crlf',
  /**
   * 因为使用了一些折行敏感型的渲染器(如GitHub comment)而按照markdown文本样式进行折行
   */
  proseWrap: 'never',
  // 是否使用根目录下的EditorConfig配置文件
  useEditorConfig: false,
  /**
   * HTML\VUE\JSX每行只有单个属性
   * @default true
   * @type {boolean}
   */
  singleAttributePerLine: true,
  disableLanguages: ['html']
}

写在最后

  • 配置文件是有优先级的,实测:独立配置文件>vscode工作区配置>vscode用户配置,官网描述如下图,使用时请注意
    在这里插入图片描述

  • 每次配置文件类型的切换,建议重启一下vscode,否则可能不会生效
    如.editorconfig -> .prettierrc.js 、 .prettierrc.js -> VsCode用户设置

  • 官网 - Configuration File

### 如何在 VSCode配置使用 C++ 代码格式化工具 #### 安装必要的扩展 为了使VSCode能够支持C++代码的编写以及格式化,在VSCode中需要安装特定的扩展。通过访问官方插件市场可以找到适用于Visual Studio系列产品的各种扩展[^1]。 对于C++开发而言,推荐安装由Microsoft提供的`C/C++`扩展包,该扩展不仅提供了语法高亮显示功能,还集成了 IntelliSense 和调试等功能。此外,还需要额外安装 `clang-format` 插件来实现代码风格的一致性和自动化格式化操作[^3]。 #### 设置保存时自动格式化选项 完成上述两个必要组件的安装后,下一步就是启用文件保存时触发自动格式化的设置。这可以通过修改用户的全局或工作区级别的settings.json文件达成目的: ```json { "editor.formatOnSave": true, } ``` 此JSON片段应当被加入到`.vscode/settings.json` 文件内或者是直接经由图形界面中的首选项菜单路径:“文件(File)” -> “首选项(Preferences)”-> “设置(Settings)”,搜索栏输入`format on save`并勾选对应选项即可生效。 #### 调整具体格式化规则 如果希望进一步定制化格式化行为,则可以在用户设置或者项目根目录下的 `.vscode/setting.json` 添加如下所示的相关参数调整指令;也可以利用命令面板(Ctrl+Shift+P),键入`Configure Format On Save` 来快速进入相关设定页面进行更细致地调节[^2]: ```json { "[cpp]": { "editor.defaultFormatter": "llvm-vs-code-extensions.vscode-clangd", "c/c++.vcFormat.newLine.afterOpenBracket": false, "c/c++.vcFormat.newLine.beforeCloseBracket": true } } ``` 以上配置示例展示了如何指定默认使用格式化工具有限于 cpp 类型文档,并且自定义了一些关于换行符位置的具体细节。
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云帆Plan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值