From 3d80b21a91ab035a4706bb862f05abaf3bd2bdbf Mon Sep 17 00:00:00 2001 From: Thorsten Ball Date: Fri, 10 Jan 2025 23:21:51 +0100 Subject: [PATCH] eslint: Allow configuring `workingDirectory` (#22972) This addresses this comment here: https://github.com/zed-industries/zed/issues/9648#issuecomment-2579246865 Release Notes: - Added ability to configure `workingDirectory` when using ESLint. Example: `{"lsp": {"eslint": {"settings": {"workingDirectory": {"mode": "auto" }}}}}` --- crates/languages/src/typescript.rs | 7 ++++++- docs/src/languages/javascript.md | 18 ++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/crates/languages/src/typescript.rs b/crates/languages/src/typescript.rs index 3a0291feb5d5a33d5ca23ff77fae0ddb289a197c..e549aaf997bc75e794d87dcdbe0a2a16a10d8c92 100644 --- a/crates/languages/src/typescript.rs +++ b/crates/languages/src/typescript.rs @@ -379,6 +379,11 @@ impl LspAdapter for EsLintLspAdapter { } } + let working_directory = eslint_user_settings + .get("workingDirectory") + .cloned() + .unwrap_or_else(|| json!({"mode": "auto"})); + let problems = eslint_user_settings .get("problems") .cloned() @@ -400,7 +405,7 @@ impl LspAdapter for EsLintLspAdapter { "rulesCustomizations": rules_customizations, "run": "onType", "nodePath": node_path, - "workingDirectory": {"mode": "auto"}, + "workingDirectory": working_directory, "workspaceFolder": { "uri": workspace_root, "name": workspace_root.file_name() diff --git a/docs/src/languages/javascript.md b/docs/src/languages/javascript.md index 7e74cbbfaebb41443dbd30611711672b1ba42cab..e2b69a0961b054ea727a9092d56727eb5f464607 100644 --- a/docs/src/languages/javascript.md +++ b/docs/src/languages/javascript.md @@ -153,6 +153,24 @@ You can configure ESLint's `rulesCustomizations` setting: } ``` +### Configure ESLint's `workingDirectory`: + +You can configure ESLint's `workingDirectory` setting: + +```json +{ + "lsp": { + "eslint": { + "settings": { + "workingDirectory": { + "mode": "auto" + } + } + } + } +} +``` + ## See also - [Yarn documentation](./yarn.md) for a walkthrough of configuring your project to use Yarn.