You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Zed Editor中配置Pyright使用Ruff作为Linter?

Zed Editor 中配置 Pyright + Ruff 及 LSP 基础说明

一、Pyright 与 Ruff 的角色区分

Pyright 是类型检查器,负责类型相关的代码校验;Ruff 是独立的代码风格/语法检查器,专注于代码规范、错误捕获等场景。两者是独立工具,不需要在 pyrightconfig.json 中指定 Ruff 作为 linter,而是在 Zed 中分别启用并配置。

二、Zed 中配置 Ruff 作为 Linter

  1. 先确保本地已安装 Ruff:
    pip install ruff
    
  2. 在项目根目录的 .zed/settings.json 中启用 Ruff 检查:
    {
      "languages": {
        "python": {
          "lint": {
            "tools": ["ruff"],
            "enable": true
          }
        }
      }
    }
    
  3. 自定义 Ruff 规则可在项目根目录创建 ruff.toml,示例:
    line-length = 120
    select = ["E", "W", "F", "I"]
    ignore = ["E501"]
    
    也可以在 pyproject.toml 中通过 [tool.ruff] 块配置。

三、Pyright 的独立配置

Pyright 的类型检查规则仍通过 pyrightconfig.json 配置,和 Ruff 互不干扰,示例:

{
  "strict": true,
  "typeCheckingMode": "strict",
  "exclude": ["**/__pycache__", "venv"]
}

四、语言服务器(LSP)基础与规则配置

  1. LSP 是什么:语言服务器是独立运行的进程,为编辑器提供代码补全、语法检查、定义跳转等核心功能。Pyright 是 Python 生态的主流 LSP 之一,Ruff 也可作为 LSP 提供检查能力,Zed 会自动与这些服务通信,将结果整合展示在编辑器的问题面板中。
  2. 特定 LSP 的规则配置方式:
    • 每个 LSP 有专属的配置文件:Pyright 用 pyrightconfig.json,Ruff 用 ruff.toml 或 pyproject.toml 中的对应块
    • Zed 的全局/项目设置(.zed/settings.json)用于控制是否启用某个工具或 LSP,比如开关 Ruff 的 lint 功能
    • 不同工具各司其职,无需在一个工具的配置中指定另一个,Zed 会自动整合多工具的检查结果

内容的提问来源于stack exchange,提问作者Howins

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 17:12:35