vscode 导入语句排序和删除未使用的导入

ops/2025/3/17 18:56:59/

vscode__2">vscode 自带的格式化

vscode 默认支持导入语句排序和删除未使用的导入。

对应的配置是:source.organizeImports

可选值:

  1. never:关闭
  2. explicit:仅在显式手动保存时触发
  3. always:自动保存时也会触发

我喜欢在手动 Ctrl + S 保存时,自动格式化当前代码。因此可以如下配置:

{"editor.formatOnSave": true, // 保存时格式化"editor.codeActionsOnSave": {"source.organizeImports": "explicit" // 在显示保存时,整理导入语句}
}

eslint__32">eslint 实现整理导入语句

vscode 的导入语句排序,没有强制性,在协作中为了规范其他人要整理导入语句,我们往往会使用 eslint 对排序进行校验。

并且 vscode 是按字母顺序排序的,这可能不符合要求,或者想要自定义排序规则。我们往往也会使用 eslint 来执行整理代码的操作。

这依赖两个 eslint 插件:

  1. 导入排序:eslint-plugin-simple-import-sort
  2. 删除未使用的导入:eslint-plugin-unused-imports

安装后, eslint 配置:

module.exports = {plugins: ["unused-imports", "simple-import-sort"],rules: {"simple-import-sort/imports": "error", // 强制导入语句排序// "simple-import-sort/exports": "error", // 强制导出语句排序"unused-imports/no-unused-imports": "error", // 禁止未使用的导入,eslint修复时会自动删除未使用的导入"unused-imports/no-unused-vars": [// 不禁止未使用的变量,只是警告,避免 eslint 修复时删除它"warn",{ vars: "all", varsIgnorePattern: "^_", args: "after-used", argsIgnorePattern: "^_" }]}
}

配置规则后,当代码不符合规范时,eslint 就会抛出对应的错误或者警告。

执行 eslint --fix 修复时,两个插件就会按配置的规则整理导入语句。

显然执行 eslint 命令修复太麻烦了,我希望和 vscode 自带的整理功能一样,手动执行 Ctrl + S 保存时,就整理代码。

要实现这一点,只需要配置 source.fixAll.eslint。指定在显示保存时,使用 eslint --fix 来格式化代码即可。

并且注意,要关闭 vscode 自带的整理导入语句功能,要不然会有冲突,因为两个排序规则不一样。

  • VSCode 默认的导入整理是按文件路径字母顺序排序,
  • <font style="background-color:rgb(252, 252, 252);">simple-import-sort</font> 插件要求按自定义分组规则(默认是内置模块优先、外部依赖次之、本地文件最后)排序。
{"editor.formatOnSave": true, // 保存时自动格式化"editor.codeActionsOnSave": {"source.organizeImports": "never", // 关闭 vscode 默认的导入语句整理功能:1.import 语句按字母顺序排序, 2.删除未使用的导入语句"source.fixAll.eslint": "explicit" // 让 ESLint 处理所有修复(包括排序)}
}
文章来源:https://blog.csdn.net/qq_43220213/article/details/146295308
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ppmy.cn/ops/166591.html

相关文章

算法专题一:双指针

1.移动零 题目链接&#xff1a;283. 移动零 - 力扣&#xff08;LeetCode&#xff09; 我们可以定义一个dest&#xff0c;一个cur&#xff0c;dest表示数组中不为零的数的最后一位&#xff0c;cur用来遍历数组 class Solution {public void moveZeroes(int[] nums) {for(int cur…

Unity打包Android平台调用sherpa-onnx

https://github.com/xue-fei/sherpa-onnx-unity 最初测试了PC的Win和Linux平台&#xff0c;直接从nuget缓存包中拷贝相关文件&#xff0c;按示例写了语音转文字和文字转语音的测试代码&#xff0c;功能都正常。 然后是Android端&#xff0c;看了示例发现有编译好的jni.so之类的…

重生之我在学Vue--第14天 Vue 3 国际化(i18n)实战指南

重生之我在学Vue–第14天 Vue 3 国际化(i18n)实战指南 文章目录 重生之我在学Vue--第14天 Vue 3 国际化(i18n)实战指南前言一、Vue I18n 核心配置1.1 基础环境搭建1.2 初始化配置1.3 全局挂载 二、多语言实现方案2.1 基础使用2.2 动态切换语言2.3 高级功能实现复数处理日期/货币…

sql靶场--布尔盲注(第八关)保姆级教程

目录 布尔盲注&#xff08;第八关&#xff09; 1.判断 2.确认布尔盲注 3.手工尝试布尔盲注 表名字符 表数 表名长度 表字符 字段数 字段名长度 字段字符 4.脚本布尔盲注注入 布尔盲注&#xff08;第八关&#xff09; 1.判断 布尔盲注了&#xff0c;这种页面只会有…

考研408-数据结构完整代码 线性表的顺序存储结构 - 顺序表

线性表的顺序存储结构 - 顺序表 1. 顺序表的定义 ​ 用一组地址连续的存储单元依次存储线性表的数据元素&#xff0c;从而使逻辑上相邻的两个元素在物理位置上也相邻 2. 顺序表的特点 随机访问&#xff1a; 即通过首地址和元素序号可以在O(1) 时间内找到指定元素&#xff0…

设计模式(行为型)-备忘录模式

目录 定义 类图 角色 角色详解 &#xff08;一&#xff09;发起人角色&#xff08;Originator&#xff09;​ &#xff08;二&#xff09;备忘录角色&#xff08;Memento&#xff09;​ &#xff08;三&#xff09;备忘录管理员角色&#xff08;Caretaker&#xff09;​…

django 运行时仅显示500 但是不提示其他内容 如何令其显示更多错误信息

在 Django 中&#xff0c;当发生 500 错误时默认仅显示简单的错误页面&#xff08;不包含堆栈跟踪等详细信息&#xff09;&#xff0c;这通常是因为 生产环境配置禁用了调试模式&#xff08;DEBUG False&#xff09;。以下是逐步解决方案&#xff0c;帮助你显示更详细的错误信…

蓝桥杯学习-08序列二分

08序列二分 序列二分应用的序列必须是递增或递减&#xff0c;但可以非严格 只要r是mid-1&#xff0c;就对应mid&#xff08;lr1&#xff09;/2 例题1-模板题&#xff08;18492&#xff09; 注意这里是个递增的序列。 解答 import java.util.Scanner; import java.util.Str…