JavaScript

Zed 本机支持 JavaScript。

代码格式化

默认情况下,JavaScript 的保存时格式化功能已启用,使用 TypeScript 的内置代码格式化。但许多 JavaScript 项目使用其他命令行代码格式化工具,例如 Prettier。你可以在设置中为 JavaScript 指定一个外部代码格式化程序来使用这些工具之一。有关更多信息,请参阅配置文档。

例如,如果你已安装 Prettier 且在你的 PATH 中,你可以通过将以下内容添加到你的 settings.json 中来使用它格式化 JavaScript 文件

{
  "languages": {
    "JavaScript": {
      "format_on_save": {
        "external": {
          "command": "prettier",
          "arguments": ["--stdin-filepath", "{buffer_path}"]
        }
      }
    }
  }
}

ESLint

你可以通过在格式化时运行 ESLint 代码操作(需要 Zed 0.125.0)来配置 Zed 使用 eslint --fix 格式化代码。

{
  "languages": {
    "JavaScript": {
      "code_actions_on_format": {
        "source.fixAll.eslint": true
      }
    }
  }
}

你还可以仅在使用 fixAll 时执行一个 ESLint 规则

{
  "languages": {
    "JavaScript": {
      "code_actions_on_format": {
        "source.fixAll.eslint": true
      }
    }
  },
  "lsp": {
    "eslint": {
      "settings": {
        "codeActionOnSave": {
          "rules": ["import/order"]
        }
      }
    }
  }
}

注意:您配置的其他格式化程序仍将在 ESLint 之后运行。因此,如果您的语言服务器或 prettier 配置未按照 ESLint 的规则进行格式化,那么它们将覆盖 ESLint 修复的内容,最终导致错误。

如果您希望在保存时运行 ESLint,则可以将代码操作配置为格式化程序(需要 Zed 0.130.x

{
  "languages": {
    "JavaScript": {
      "formatter": {
        "code_actions": {
          "source.fixAll.eslint": true
        }
      }
    }
  }
}

配置 ESLint 的 nodePath

您可以配置 ESLint 的 nodePath 设置(需要 Zed 0.127.0

{
  "lsp": {
    "eslint": {
      "settings": {
        "nodePath": ".yarn/sdks"
      }
    }
  }
}

配置 ESLint 的 problems

您可以配置 ESLint 的 problems 设置(需要 Zed 0.130.x)。

例如,以下是如何设置 problems.shortenToSingleLine

{
  "lsp": {
    "eslint": {
      "settings": {
        "problems": {
          "shortenToSingleLine": true
        }
      }
    }
  }
}

配置 ESLint 的 rulesCustomizations

您可以配置 ESLint 的 rulesCustomizations 设置

{
  "lsp": {
    "eslint": {
      "settings": {
        "rulesCustomizations": [
          // set all eslint errors/warnings to show as warnings
          { "rule": "*", "severity": "warn" }
        ]
      }
    }
  }
}

Yarn 集成

请参阅 Yarn 文档,了解如何配置项目以使用 Yarn 的演练。