搜索
首页开发工具VSCode带你用VSCode的Format功能实现代码格式化

只用VSCode自带的Format功能,即可满足可配置的代码格式化需求!下面本篇文章就来带大家了解一下VSCode的Format功能,希望对大家有所帮助!

带你用VSCode的Format功能实现代码格式化

近年开发环境越来越重视代码的规范化,借助工具来检查、自动化修复,成为了代码保障的第一选择。

一般会使用Lint (ESLint StyleLint)Prettier等辅助工具,通过简单的配置部署,就可以使用一些比较流行的Code Style规范,达到自动提示、自动修复、自动执行和监督的目的。

但是不知道大家有没有遇到以下几种情景:

  • IDE里敲代码时,由于没有实时format(一般在save时自动format),总是出现红色的提示,总是以为是自己的语法写错了,其实只是还未format。(比如ESLint插件的自动校验提示)

  • 刚开始使用时,总是遇到不理解的规则(可能太过严格了),还得点进到提示里查看具体原因,相当于一边开发一边学习规则。

  • 写了一段代码,save后代码突然变长了,全给换行了,50行的code硬生生给拉到100行。这里就不指名谁了

  • 对代码规范(更多的指格式化)并没有太多要求,比如项目比较小,项目进度比较紧等。只要能满足基本的格式化要求就行。

尤其是最后一条,其实很多小项目只要能满足最基本的格式化就行,能保证团队内都能满足并执行一套简单规范,其它比较严格的规范可以不用考虑。

这里提到一个概念,规范分为两种:代码格式规则(Formatting rules)代码质量规则(Code-quality rules)。上述提到的基本规范,基本就属于代码格式规则

下面列下有哪些常用的,基本的格式化规则,即代码格式规则,以 standardjs style 为例:

可以看到,基本都是分号 缩进 空格 空白相关的规范,而这些规范在一些IDE里已经集成好了。

比如VSCode,就可以通过简单配置,满足上述的所有规则。

VSCode Format

VSCode自身就带有一个Format功能,大多文件类型都支持。默认快捷键是Ctrl+K+D

image.png

还支持设置为Format on Save

image.png

然后列下上述基本规范里,哪些不包含在默认Format功能里。

  • 分号。- 默认没有规范,可以通过settings配置。

  • 空格缩进。- 默认4个空格TabSize,可以通过settings配置。

  • 函数声明时括号与函数名间加空格。- 跟standardjs不一样,VSCode默认没有空格。

  • 文件末尾留一空行。- 默认没有,可以通过settings配置。

就4个,其中第3个可以说规则不一样,但是有规则的,所以综合就3个。所以说大部分规则默认format功能里已经支持了。

1. 分号

分为三种规范:要求必须有分号禁止分号都行。市面上流行规范里,啥样都有,但是一般都是要求必须有或者禁止的。

VSCode默认没有要求,但是可以通过settings定义:

image.png

  • ignore 默认,就是有没有分号都行;

  • insert 必须有分号;

  • remove 禁止分号。

2. 缩进规范

一般分为两种规范,2个空格还是4个空格,现在大多市面上流行的规范里,都是以2个空格为准。

VSCode默认规范是:

  • Detect Indentation 对应settings: editor.detectIndentation 默认值true,根据当前文件内容来检测当前文件是2个空格还是4个空格,然后根据这个来Format;
  • Tab Size 对应settings: editor.tabSize:默认值4,如果是新建文件,则是根据这个值来确定,默认是4个tab size。

image.png

如上图是默认配置,如果想所有文件都以2个空格缩进作为规范,可以先关掉Detect Indentation,再把Tab Size设置为2。

如果不关Detect Indentation,只改Tab Size为2,则是根据文件内容缩进,然后新建文件是2个空格缩进。

VSCode是根据什么检测文件的tabsize是多大,可以在文件底部状态栏看到,点击还可以更改。

image.png

3. 文件末尾留一空行

settings里搜索关键字insertFinalNewline,默认选项是disable的,check上,save时就会给所有文件末尾留一空行。

image.png

综上

综上,所有settings配置如下:

这里建议设置Workspace下的settings,设置后会在.vscode路径下生成settings.json文件,可以提交到git上统一开发团队内部规范。

// .vscode/settings.json
{
  "editor.formatOnSave": true, // 保存文件自动format
  "javascript.format.semicolons": "insert", // js文件,强制必须有分号,设置`remove`则禁止分号
  "typescript.format.semicolons": "insert", // ts文件,同上
  "editor.tabSize": 2, // 设置默认缩进为2个空格
  "editor.detectIndentation": false, // 是否强制所有文件按tabSize设置缩进;"否"则根据文件内容缩进、新建文件按tabSize缩进。
  "files.insertFinalNewline": true, // 所有文件末尾留一空行
  "[javascript]": {
    "editor.defaultFormatter": "vscode.typescript-language-features" // 设置js类型文件的默认format为VSCode自带Format
  },
  "[javascriptreact]": {
    "editor.defaultFormatter": "vscode.typescript-language-features" // jsx文件,同上
  },
  "[css]": {
    "editor.defaultFormatter": "vscode.css-language-features" // css文件,同上
  },
  "[less]": {
    "editor.defaultFormatter": "vscode.css-language-features" // less文件,同上
  }
}

其实VSCode settings里还可以配置更多的format配置,大家可以自己摸索。

其它格式文件Format

比如css、less、json、md等,个人感觉直接用VSCode默认的就够了。

其它规范:

除了以上提到的代码格式规则,其它规范就属于是代码质量规则了,这种用ESLint规范下就行了,因为这些规范和上述代码格式规则是不冲突的,配合ESLint的auto fix on save,可以满足保存文件的时候,先用VSCode format 代码格式规则,然后用ESLint处理代码质量规则。举几个例子:

  • 强制单引号或双引号。eslint: quotes

  • 始终使用。 === 替代 ==。eslint: eqeqeq

关于ESLint的用法,可以参考之前的文章:ESLint配合VSCode 统一团队前端代码规范

最后

本文整理了如何只用VSCode开发工具,来规范前端Code的代码格式规范,并且支持可配置、保存文件自动格式化代码功能。

优点:

  • 配置简单,不用安装各种npm或者插件,VSCode自身就有的功能。

  • 适合小的简单项目,或者对代码格式规范需求不高的项目,适合小厂。

  • 部分规则支持自定义,可按实际需求进行配置。

缺点:

  • 规则不多,基本都是代码格式规则,做不了代码质量规则的校验,需要结合ESLint搭配。

  • 满足不了对格式规范要求比较高的项目,比如大项目、大厂。

  • 相比ESLint,规则很少,可配置化也不多。

  • 相比Prettier,规则也很少,肯定比不了一些流行的代码风格规范。

  • 没办法通过Git Hooks做到提交代码时的自动校验。

此文只是提供了一种代码格式规范的一种解决方案,一种思路,适不适合自己还得看自身需求。

更多关于VSCode的相关知识,请访问:vscode基础教程

以上是带你用VSCode的Format功能实现代码格式化的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:掘金社区。如有侵权,请联系admin@php.cn删除
使用Visual Studio:跨平台开发软件使用Visual Studio:跨平台开发软件Apr 17, 2025 am 12:13 AM

使用VisualStudio进行跨平台开发是可行的,通过支持.NETCore和Xamarin等框架,开发者可以编写一次代码并在多个操作系统上运行。1)创建.NETCore项目并使用其跨平台能力,2)使用Xamarin进行移动应用开发,3)利用异步编程和代码重用来优化性能,确保应用的高效运行和可维护性。

vscode如何格式化jsonvscode如何格式化jsonApr 16, 2025 am 07:54 AM

在 VS Code 中格式化 JSON 的方法有:1. 使用快捷键 (Windows/Linux:Ctrl Shift I;macOS:Cmd Shift I);2. 通过菜单(“编辑” > “格式化文档”);3. 安装 JSON 格式化程序扩展(如 Prettier);4. 手动格式化(使用快捷键缩进/缩出块或添加花括号和分号);5. 使用外部工具(如 JSONLint 和 JSON Formatter)。

vscode如何编译vscode如何编译Apr 16, 2025 am 07:51 AM

在 VSCode 中编译代码分 5 步:安装 C 扩展;在项目文件夹中创建 "main.cpp" 文件;配置编译器(如 MinGW);使用快捷键("Ctrl Shift B")或 "Build" 按钮编译代码;使用快捷键("F5")或 "Run" 按钮运行编译后的程序。

vscode如何安装vscode如何安装Apr 16, 2025 am 07:48 AM

要安装 Visual Studio Code,请按以下步骤操作:访问官方网站 https://code.visualstudio.com/;根据操作系统下载安装程序;运行安装程序;接受许可协议并选择安装路径;安装完成后,VSCode 将自动启动。

vscode如何放大字体vscode如何放大字体Apr 16, 2025 am 07:45 AM

在 Visual Studio Code 中放大字体的方法有:打开设置面板(Ctrl , 或 Cmd ,)。搜索并调整“Font Size”。选择具有适合大小的“Font Family”。安装或选择提供合适大小的主题。使用键盘快捷键(Ctrl 或 Cmd )放大字体。

vscode如何连接远程服务器vscode如何连接远程服务器Apr 16, 2025 am 07:42 AM

如何通过 VSCode 连接远程服务器?安装 Remote - SSH 扩展配置 SSH在 VSCode 中创建连接输入连接信息:主机、用户名、端口、SSH 密钥在 Remote Explorer 中双击已保存的连接

vscode如何运行vuevscode如何运行vueApr 16, 2025 am 07:39 AM

在 VSCode 中运行 Vue 项目需要以下步骤:1. 安装 Vue CLI;2. 创建 Vue 项目;3. 切换到项目目录;4. 安装项目依赖;5. 运行开发服务器;6. 打开浏览器访问 http://localhost:8080。

vscode如何比较两个文件vscode如何比较两个文件Apr 16, 2025 am 07:36 AM

VSCode 中比较文件的方法:1. 打开两个文件,2. 启用“差异”视图(“视图”菜单),3. 查看差异(新增绿色、删除红色、修改紫色),4. 使用箭头键导航,5. 接受或拒绝更改。附加功能包括合并更改、复制更改、查看详细信息和编辑差异。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。