如何在VS Code Python开发中将“Add import”优先级设为高于“Ruff: Disable”
问题:VS Code中Ruff的Quick Fix选项顺序异常
我在VS Code中编写Python代码,近期安装了Ruff linter及其VS Code扩展。遇到的困扰是:当输入符号名称想通过VS Code的“Quick Fix”添加导入时,第一个出现的选项是“Ruff: Disable”而非“Add import”。

虽然可以通过向下箭头选择目标操作,但多一步操作十分麻烦,有没有办法调整这些操作的顺序?
相关版本信息
- Ruff扩展:v2023.16.0和v2023.17.11351528版本均出现此问题
- Pylance v2023.6.10
- Python VS Code Extension v2023.8.0
VS Code版本
Version: 1.78.2 (Universal) Commit: b3e4e68a0bc097f0ae7907b217c1119af9e03435 Date: 2023-05-10T14:44:45.204Z Electron: 22.5.2 Chromium: 108.0.5359.215 Node.js: 16.17.1 V8: 10.8.168.25-electron.0 OS: Darwin arm64 22.5.0 Sandboxed: Yes
解决方法
可以通过以下几种方式调整Quick Fix选项的优先级:
1. 配置VS Code代码动作优先级
打开VS Code的settings.json,添加以下配置来提高Pylance添加导入动作的优先级,同时降低Ruff禁用规则动作的优先级:
"editor.codeActionPriority": { "source.addMissingImports": "high", "quickfix.ruff.disableRule": "low" }
source.addMissingImports是Pylance提供的添加导入动作类型quickfix.ruff.disableRule是Ruff提供的禁用规则动作类型
2. 关闭Ruff的未定义符号规则
如果不需要Ruff处理未导入符号的提示,可以在项目根目录的ruff.toml(或.ruff.toml)配置文件中关闭相关规则:
# 关闭未定义符号规则(E0602) extend-exclude = ["E0602"]
这样Ruff不会对未导入符号抛出错误,Quick Fix中只会显示Pylance的“Add import”选项。
3. 禁用Ruff的“Disable Rule”快速修复
在VS Code设置中搜索Ruff: Code Actions,找到ruff.codeActions.disableRule并设置为false,直接移除该Quick Fix选项,只保留添加导入的操作。
内容的提问来源于stack exchange,提问作者danvk
相关产品推荐
相关产品推荐

