From 463c16a402b85c8c9b7e3a0fa3ad25fc69288138 Mon Sep 17 00:00:00 2001 From: William Villeneuve Date: Wed, 3 Apr 2024 03:29:07 -0400 Subject: [PATCH] Allow users to configure ESLint's `problems` settings (#9981) Presently the only available setting under `problems` is `shortenToSingleLine`, which defaults to `false`. Example Zed `settings.json` to shorten eslint error squiggles to only show on the first line of the problem: ```json { "lsp": { "eslint": { "settings": { "problems": { "shortenToSingleLine": true } } } } } ``` Release Notes: - Added support for configuring ESLint `problems` settings, ie. `{"lsp": {"eslint": {"settings": {"problems": {"shortenToSingleLine": true}}}}}` Demo: https://github.com/zed-industries/zed/assets/2072378/379faa75-1f37-4fd1-85da-1510f1397d07 --- 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 a05e33641d0eac8ed26d6c1cb7fe28897bab934c..ad4543e4d20e057a14bb90392a9a8c994d076be7 100644 --- a/crates/languages/src/typescript.rs +++ b/crates/languages/src/typescript.rs @@ -273,6 +273,11 @@ impl LspAdapter for EsLintLspAdapter { } } + let problems = eslint_user_settings + .get("problems") + .cloned() + .unwrap_or_else(|| json!({})); + let node_path = eslint_user_settings.get("nodePath").unwrap_or(&Value::Null); let use_flat_config = Self::FLAT_CONFIG_FILE_NAMES .iter() @@ -290,7 +295,7 @@ impl LspAdapter for EsLintLspAdapter { "name": workspace_root.file_name() .unwrap_or_else(|| workspace_root.as_os_str()), }, - "problems": {}, + "problems": problems, "codeActionOnSave": code_action_on_save, "experimental": { "useFlatConfig": use_flat_config, diff --git a/docs/src/languages/javascript.md b/docs/src/languages/javascript.md index a5d8fa0971acbc901e2a8fbd51a8cdb51ac6654e..45be3c9f0536900d39f80b4e5eb4fa6ce8738e61 100644 --- a/docs/src/languages/javascript.md +++ b/docs/src/languages/javascript.md @@ -85,3 +85,21 @@ You can configure ESLint's `nodePath` setting (requires Zed `0.127.0`): } } ``` + +#### Configure ESLint's `problems.shortenToSingleLine`: + +You can configure ESLint's `problems.shortenToSingleLine` setting (requires Zed `0.130.x`): + +```json +{ + "lsp": { + "eslint": { + "settings": { + "problems": { + "shortenToSingleLine": true + } + } + } + } +} +```