From ffb9d42cc961ed302a7b3567380271708a3f3012 Mon Sep 17 00:00:00 2001 From: Raunak Raj <71929976+bajrangCoder@users.noreply.github.com> Date: Sun, 5 Jul 2026 21:03:42 +0530 Subject: [PATCH 1/2] feat(lsp): group language servers into built-in, plugin, and custom categories --- src/settings/lspSettings.js | 61 +++++++++++++++++++++++++------------ 1 file changed, 41 insertions(+), 20 deletions(-) diff --git a/src/settings/lspSettings.js b/src/settings/lspSettings.js index 03651a52a..6a9b41803 100644 --- a/src/settings/lspSettings.js +++ b/src/settings/lspSettings.js @@ -1,5 +1,6 @@ import { quoteArg } from "cm/lsp/installRuntime"; import serverRegistry from "cm/lsp/serverRegistry"; +import { builtinServers } from "cm/lsp/servers"; import settingsPage from "components/settingsPage"; import toast from "components/toast"; import prompt from "dialogs/prompt"; @@ -7,6 +8,7 @@ import select from "dialogs/select"; import appSettings from "lib/settings"; import { getServerOverride, + isCustomServer, normalizeLanguages, normalizeServerId, upsertCustomServer, @@ -172,7 +174,10 @@ export default function lspSettings() { const categories = { customServers: strings["settings-category-custom-servers"], behavior: strings["settings-category-behavior"] || "Behavior", - servers: strings["settings-category-servers"], + builtinServers: + strings["settings-category-builtin-servers"] || "Built-in servers", + pluginServers: + strings["settings-category-plugin-servers"] || "Plugin servers", }; let page = createPage(); @@ -209,6 +214,38 @@ export default function lspSettings() { return a.label.localeCompare(b.label); }); + const builtinServersList = []; + const pluginServersList = []; + const customServersList = []; + + for (const server of sortedServers) { + const source = server.launcher?.install?.source + ? ` • ${server.launcher.install.source}` + : ""; + const languagesList = + Array.isArray(server.languages) && server.languages.length + ? `${server.languages.join(", ")}${source}` + : source.slice(3); + + const serverItem = { + key: `server:${server.id}`, + text: server.label, + info: languagesList || undefined, + chevron: true, + }; + + if (builtinServers.some((s) => s.id === server.id)) { + serverItem.category = categories.builtinServers; + builtinServersList.push(serverItem); + } else if (isCustomServer(server.id)) { + serverItem.category = categories.customServers; + customServersList.push(serverItem); + } else { + serverItem.category = categories.pluginServers; + pluginServersList.push(serverItem); + } + } + const items = [ { key: "allow_non_terminal_workspace", @@ -217,34 +254,18 @@ export default function lspSettings() { info: strings["settings-info-lsp-allow-non-terminal-workspace"], category: categories.behavior, }, + ...builtinServersList, + ...pluginServersList, { key: "add_custom_server", text: strings["lsp-add-custom-server"], info: strings["settings-info-lsp-add-custom-server"], category: categories.customServers, - index: 0, chevron: true, }, + ...customServersList, ]; - for (const server of sortedServers) { - const source = server.launcher?.install?.source - ? ` • ${server.launcher.install.source}` - : ""; - const languagesList = - Array.isArray(server.languages) && server.languages.length - ? `${server.languages.join(", ")}${source}` - : source.slice(3); - - items.push({ - key: `server:${server.id}`, - text: server.label, - info: languagesList || undefined, - category: categories.servers, - chevron: true, - }); - } - items.push({ note: strings["settings-note-lsp-settings"], }); From 17543bd5165278b5b65e809118cbf1281fc27dd8 Mon Sep 17 00:00:00 2001 From: Raunak Raj <71929976+bajrangCoder@users.noreply.github.com> Date: Sun, 5 Jul 2026 21:03:53 +0530 Subject: [PATCH 2/2] translation strings --- src/lang/ar-ye.json | 4 +++- src/lang/be-by.json | 4 +++- src/lang/bn-bd.json | 4 +++- src/lang/cs-cz.json | 4 +++- src/lang/de-de.json | 4 +++- src/lang/en-us.json | 4 +++- src/lang/es-sv.json | 4 +++- src/lang/fr-fr.json | 4 +++- src/lang/he-il.json | 4 +++- src/lang/hi-in.json | 4 +++- src/lang/hu-hu.json | 4 +++- src/lang/id-id.json | 4 +++- src/lang/index.d.ts | 2 ++ src/lang/ir-fa.json | 4 +++- src/lang/it-it.json | 4 +++- src/lang/ja-jp.json | 4 +++- src/lang/ko-kr.json | 4 +++- src/lang/ml-in.json | 4 +++- src/lang/mm-unicode.json | 4 +++- src/lang/mm-zawgyi.json | 4 +++- src/lang/pl-pl.json | 4 +++- src/lang/pt-br.json | 4 +++- src/lang/pu-in.json | 4 +++- src/lang/ru-ru.json | 4 +++- src/lang/tl-ph.json | 4 +++- src/lang/tr-tr.json | 4 +++- src/lang/uk-ua.json | 4 +++- src/lang/uz-uz.json | 4 +++- src/lang/vi-vn.json | 4 +++- src/lang/zh-cn.json | 4 +++- src/lang/zh-hant.json | 4 +++- src/lang/zh-tw.json | 4 +++- 32 files changed, 95 insertions(+), 31 deletions(-) diff --git a/src/lang/ar-ye.json b/src/lang/ar-ye.json index c7fcb21f5..e2287ae96 100644 --- a/src/lang/ar-ye.json +++ b/src/lang/ar-ye.json @@ -804,5 +804,7 @@ "min singular": "{count} minute ago", "day plural": "{count} days ago", "hour plural": "{count} hours ago", - "min plural": "{count} minutes ago" + "min plural": "{count} minutes ago", + "settings-category-builtin-servers": "Built-in servers", + "settings-category-plugin-servers": "Plugin servers" } diff --git a/src/lang/be-by.json b/src/lang/be-by.json index 8c1d75e58..7cb7400a3 100644 --- a/src/lang/be-by.json +++ b/src/lang/be-by.json @@ -804,5 +804,7 @@ "min singular": "{count} minute ago", "day plural": "{count} days ago", "hour plural": "{count} hours ago", - "min plural": "{count} minutes ago" + "min plural": "{count} minutes ago", + "settings-category-builtin-servers": "Built-in servers", + "settings-category-plugin-servers": "Plugin servers" } diff --git a/src/lang/bn-bd.json b/src/lang/bn-bd.json index 07d0bd8de..592839415 100644 --- a/src/lang/bn-bd.json +++ b/src/lang/bn-bd.json @@ -804,5 +804,7 @@ "min singular": "{count} minute ago", "day plural": "{count} days ago", "hour plural": "{count} hours ago", - "min plural": "{count} minutes ago" + "min plural": "{count} minutes ago", + "settings-category-builtin-servers": "Built-in servers", + "settings-category-plugin-servers": "Plugin servers" } diff --git a/src/lang/cs-cz.json b/src/lang/cs-cz.json index 6f646383e..2ab69f620 100644 --- a/src/lang/cs-cz.json +++ b/src/lang/cs-cz.json @@ -804,5 +804,7 @@ "min singular": "{count} minute ago", "day plural": "{count} days ago", "hour plural": "{count} hours ago", - "min plural": "{count} minutes ago" + "min plural": "{count} minutes ago", + "settings-category-builtin-servers": "Built-in servers", + "settings-category-plugin-servers": "Plugin servers" } diff --git a/src/lang/de-de.json b/src/lang/de-de.json index ed9412ffd..5b8bdc951 100644 --- a/src/lang/de-de.json +++ b/src/lang/de-de.json @@ -804,5 +804,7 @@ "min singular": "{count} minute ago", "day plural": "{count} days ago", "hour plural": "{count} hours ago", - "min plural": "{count} minutes ago" + "min plural": "{count} minutes ago", + "settings-category-builtin-servers": "Built-in servers", + "settings-category-plugin-servers": "Plugin servers" } diff --git a/src/lang/en-us.json b/src/lang/en-us.json index 06195634b..de151a0ce 100644 --- a/src/lang/en-us.json +++ b/src/lang/en-us.json @@ -804,5 +804,7 @@ "min singular": "{count} minute ago", "day plural": "{count} days ago", "hour plural": "{count} hours ago", - "min plural": "{count} minutes ago" + "min plural": "{count} minutes ago", + "settings-category-builtin-servers": "Built-in servers", + "settings-category-plugin-servers": "Plugin servers" } diff --git a/src/lang/es-sv.json b/src/lang/es-sv.json index 55308f7d0..5a1464c93 100644 --- a/src/lang/es-sv.json +++ b/src/lang/es-sv.json @@ -804,5 +804,7 @@ "min singular": "{count} minute ago", "day plural": "{count} days ago", "hour plural": "{count} hours ago", - "min plural": "{count} minutes ago" + "min plural": "{count} minutes ago", + "settings-category-builtin-servers": "Built-in servers", + "settings-category-plugin-servers": "Plugin servers" } diff --git a/src/lang/fr-fr.json b/src/lang/fr-fr.json index ebf3a82e3..89811059b 100644 --- a/src/lang/fr-fr.json +++ b/src/lang/fr-fr.json @@ -804,5 +804,7 @@ "min singular": "{count} minute ago", "day plural": "{count} days ago", "hour plural": "{count} hours ago", - "min plural": "{count} minutes ago" + "min plural": "{count} minutes ago", + "settings-category-builtin-servers": "Built-in servers", + "settings-category-plugin-servers": "Plugin servers" } diff --git a/src/lang/he-il.json b/src/lang/he-il.json index 4d5a2ae48..c73df525b 100644 --- a/src/lang/he-il.json +++ b/src/lang/he-il.json @@ -804,5 +804,7 @@ "min singular": "{count} minute ago", "day plural": "{count} days ago", "hour plural": "{count} hours ago", - "min plural": "{count} minutes ago" + "min plural": "{count} minutes ago", + "settings-category-builtin-servers": "Built-in servers", + "settings-category-plugin-servers": "Plugin servers" } diff --git a/src/lang/hi-in.json b/src/lang/hi-in.json index d59503bc9..bffd54d64 100644 --- a/src/lang/hi-in.json +++ b/src/lang/hi-in.json @@ -804,5 +804,7 @@ "min singular": "{count} minute ago", "day plural": "{count} days ago", "hour plural": "{count} hours ago", - "min plural": "{count} minutes ago" + "min plural": "{count} minutes ago", + "settings-category-builtin-servers": "Built-in servers", + "settings-category-plugin-servers": "Plugin servers" } diff --git a/src/lang/hu-hu.json b/src/lang/hu-hu.json index b923b7b44..ceef21b33 100644 --- a/src/lang/hu-hu.json +++ b/src/lang/hu-hu.json @@ -804,5 +804,7 @@ "min singular": "{count} perce", "day plural": "{count} napja", "hour plural": "{count} órája", - "min plural": "{count} perce" + "min plural": "{count} perce", + "settings-category-builtin-servers": "Built-in servers", + "settings-category-plugin-servers": "Plugin servers" } diff --git a/src/lang/id-id.json b/src/lang/id-id.json index 21159e6c1..669053c81 100644 --- a/src/lang/id-id.json +++ b/src/lang/id-id.json @@ -804,5 +804,7 @@ "min singular": "{count} menit lalu", "day plural": "{count} hari lalu", "hour plural": "{count} jam lalu", - "min plural": "{count} menit lalu" + "min plural": "{count} menit lalu", + "settings-category-builtin-servers": "Built-in servers", + "settings-category-plugin-servers": "Plugin servers" } diff --git a/src/lang/index.d.ts b/src/lang/index.d.ts index 4a999eb2b..a305b1980 100644 --- a/src/lang/index.d.ts +++ b/src/lang/index.d.ts @@ -808,6 +808,8 @@ declare type LangStrings = { "day plural": string; "hour plural": string; "min plural": string; + "settings-category-builtin-servers": string; + "settings-category-plugin-servers": string; }; declare var strings: LangStrings; diff --git a/src/lang/ir-fa.json b/src/lang/ir-fa.json index 2f992e9e7..100dfb67a 100644 --- a/src/lang/ir-fa.json +++ b/src/lang/ir-fa.json @@ -804,5 +804,7 @@ "min singular": "{count} minute ago", "day plural": "{count} days ago", "hour plural": "{count} hours ago", - "min plural": "{count} minutes ago" + "min plural": "{count} minutes ago", + "settings-category-builtin-servers": "Built-in servers", + "settings-category-plugin-servers": "Plugin servers" } diff --git a/src/lang/it-it.json b/src/lang/it-it.json index 4c5b2da99..f1c8ddf8c 100644 --- a/src/lang/it-it.json +++ b/src/lang/it-it.json @@ -804,5 +804,7 @@ "min singular": "{count} minute ago", "day plural": "{count} days ago", "hour plural": "{count} hours ago", - "min plural": "{count} minutes ago" + "min plural": "{count} minutes ago", + "settings-category-builtin-servers": "Built-in servers", + "settings-category-plugin-servers": "Plugin servers" } diff --git a/src/lang/ja-jp.json b/src/lang/ja-jp.json index 4ef3570d5..a74ecdca2 100644 --- a/src/lang/ja-jp.json +++ b/src/lang/ja-jp.json @@ -804,5 +804,7 @@ "min singular": "{count} minute ago", "day plural": "{count} days ago", "hour plural": "{count} hours ago", - "min plural": "{count} minutes ago" + "min plural": "{count} minutes ago", + "settings-category-builtin-servers": "Built-in servers", + "settings-category-plugin-servers": "Plugin servers" } diff --git a/src/lang/ko-kr.json b/src/lang/ko-kr.json index 4a006b5d2..107db28e7 100644 --- a/src/lang/ko-kr.json +++ b/src/lang/ko-kr.json @@ -804,5 +804,7 @@ "min singular": "{count} minute ago", "day plural": "{count} days ago", "hour plural": "{count} hours ago", - "min plural": "{count} minutes ago" + "min plural": "{count} minutes ago", + "settings-category-builtin-servers": "Built-in servers", + "settings-category-plugin-servers": "Plugin servers" } diff --git a/src/lang/ml-in.json b/src/lang/ml-in.json index e6907af1b..d4b2d9e02 100644 --- a/src/lang/ml-in.json +++ b/src/lang/ml-in.json @@ -804,5 +804,7 @@ "min singular": "{count} minute ago", "day plural": "{count} days ago", "hour plural": "{count} hours ago", - "min plural": "{count} minutes ago" + "min plural": "{count} minutes ago", + "settings-category-builtin-servers": "Built-in servers", + "settings-category-plugin-servers": "Plugin servers" } diff --git a/src/lang/mm-unicode.json b/src/lang/mm-unicode.json index d31e13fc8..d342feee5 100644 --- a/src/lang/mm-unicode.json +++ b/src/lang/mm-unicode.json @@ -804,5 +804,7 @@ "min singular": "{count} minute ago", "day plural": "{count} days ago", "hour plural": "{count} hours ago", - "min plural": "{count} minutes ago" + "min plural": "{count} minutes ago", + "settings-category-builtin-servers": "Built-in servers", + "settings-category-plugin-servers": "Plugin servers" } diff --git a/src/lang/mm-zawgyi.json b/src/lang/mm-zawgyi.json index b07287ce2..acebb48cc 100644 --- a/src/lang/mm-zawgyi.json +++ b/src/lang/mm-zawgyi.json @@ -804,5 +804,7 @@ "min singular": "{count} minute ago", "day plural": "{count} days ago", "hour plural": "{count} hours ago", - "min plural": "{count} minutes ago" + "min plural": "{count} minutes ago", + "settings-category-builtin-servers": "Built-in servers", + "settings-category-plugin-servers": "Plugin servers" } diff --git a/src/lang/pl-pl.json b/src/lang/pl-pl.json index 07757ffc7..969d5b7c9 100644 --- a/src/lang/pl-pl.json +++ b/src/lang/pl-pl.json @@ -804,5 +804,7 @@ "min singular": "{count} minute ago", "day plural": "{count} days ago", "hour plural": "{count} hours ago", - "min plural": "{count} minutes ago" + "min plural": "{count} minutes ago", + "settings-category-builtin-servers": "Built-in servers", + "settings-category-plugin-servers": "Plugin servers" } diff --git a/src/lang/pt-br.json b/src/lang/pt-br.json index 0c78d4a69..43ef7b30d 100644 --- a/src/lang/pt-br.json +++ b/src/lang/pt-br.json @@ -804,5 +804,7 @@ "min singular": "{count} minute ago", "day plural": "{count} days ago", "hour plural": "{count} hours ago", - "min plural": "{count} minutes ago" + "min plural": "{count} minutes ago", + "settings-category-builtin-servers": "Built-in servers", + "settings-category-plugin-servers": "Plugin servers" } diff --git a/src/lang/pu-in.json b/src/lang/pu-in.json index e0189a738..25ec6ac22 100644 --- a/src/lang/pu-in.json +++ b/src/lang/pu-in.json @@ -804,5 +804,7 @@ "min singular": "{count} minute ago", "day plural": "{count} days ago", "hour plural": "{count} hours ago", - "min plural": "{count} minutes ago" + "min plural": "{count} minutes ago", + "settings-category-builtin-servers": "Built-in servers", + "settings-category-plugin-servers": "Plugin servers" } diff --git a/src/lang/ru-ru.json b/src/lang/ru-ru.json index 832ef44f5..bb4f77bcc 100644 --- a/src/lang/ru-ru.json +++ b/src/lang/ru-ru.json @@ -804,5 +804,7 @@ "min singular": "{count} minute ago", "day plural": "{count} days ago", "hour plural": "{count} hours ago", - "min plural": "{count} minutes ago" + "min plural": "{count} minutes ago", + "settings-category-builtin-servers": "Built-in servers", + "settings-category-plugin-servers": "Plugin servers" } diff --git a/src/lang/tl-ph.json b/src/lang/tl-ph.json index c74d7619c..37cb34073 100644 --- a/src/lang/tl-ph.json +++ b/src/lang/tl-ph.json @@ -804,5 +804,7 @@ "min singular": "{count} minute ago", "day plural": "{count} days ago", "hour plural": "{count} hours ago", - "min plural": "{count} minutes ago" + "min plural": "{count} minutes ago", + "settings-category-builtin-servers": "Built-in servers", + "settings-category-plugin-servers": "Plugin servers" } diff --git a/src/lang/tr-tr.json b/src/lang/tr-tr.json index 83268f163..b8a4d26f2 100644 --- a/src/lang/tr-tr.json +++ b/src/lang/tr-tr.json @@ -804,5 +804,7 @@ "min singular": "{count} minute ago", "day plural": "{count} days ago", "hour plural": "{count} hours ago", - "min plural": "{count} minutes ago" + "min plural": "{count} minutes ago", + "settings-category-builtin-servers": "Built-in servers", + "settings-category-plugin-servers": "Plugin servers" } diff --git a/src/lang/uk-ua.json b/src/lang/uk-ua.json index 0190a82d3..1a1f29e60 100644 --- a/src/lang/uk-ua.json +++ b/src/lang/uk-ua.json @@ -804,5 +804,7 @@ "min singular": "{count} minute ago", "day plural": "{count} days ago", "hour plural": "{count} hours ago", - "min plural": "{count} minutes ago" + "min plural": "{count} minutes ago", + "settings-category-builtin-servers": "Built-in servers", + "settings-category-plugin-servers": "Plugin servers" } diff --git a/src/lang/uz-uz.json b/src/lang/uz-uz.json index 6400e7336..388120f99 100644 --- a/src/lang/uz-uz.json +++ b/src/lang/uz-uz.json @@ -804,5 +804,7 @@ "min singular": "{count} minute ago", "day plural": "{count} days ago", "hour plural": "{count} hours ago", - "min plural": "{count} minutes ago" + "min plural": "{count} minutes ago", + "settings-category-builtin-servers": "Built-in servers", + "settings-category-plugin-servers": "Plugin servers" } diff --git a/src/lang/vi-vn.json b/src/lang/vi-vn.json index 87dfe525f..7f1961f8f 100644 --- a/src/lang/vi-vn.json +++ b/src/lang/vi-vn.json @@ -804,5 +804,7 @@ "min singular": "{count} minute ago", "day plural": "{count} days ago", "hour plural": "{count} hours ago", - "min plural": "{count} minutes ago" + "min plural": "{count} minutes ago", + "settings-category-builtin-servers": "Built-in servers", + "settings-category-plugin-servers": "Plugin servers" } diff --git a/src/lang/zh-cn.json b/src/lang/zh-cn.json index 64d282237..039572a50 100644 --- a/src/lang/zh-cn.json +++ b/src/lang/zh-cn.json @@ -804,5 +804,7 @@ "min singular": "{count} minute ago", "day plural": "{count} days ago", "hour plural": "{count} hours ago", - "min plural": "{count} minutes ago" + "min plural": "{count} minutes ago", + "settings-category-builtin-servers": "Built-in servers", + "settings-category-plugin-servers": "Plugin servers" } diff --git a/src/lang/zh-hant.json b/src/lang/zh-hant.json index 2da40095b..36f54230a 100644 --- a/src/lang/zh-hant.json +++ b/src/lang/zh-hant.json @@ -804,5 +804,7 @@ "min singular": "{count} minute ago", "day plural": "{count} days ago", "hour plural": "{count} hours ago", - "min plural": "{count} minutes ago" + "min plural": "{count} minutes ago", + "settings-category-builtin-servers": "Built-in servers", + "settings-category-plugin-servers": "Plugin servers" } diff --git a/src/lang/zh-tw.json b/src/lang/zh-tw.json index 160124f8f..14e9afa27 100644 --- a/src/lang/zh-tw.json +++ b/src/lang/zh-tw.json @@ -804,5 +804,7 @@ "min singular": "{count} minute ago", "day plural": "{count} days ago", "hour plural": "{count} hours ago", - "min plural": "{count} minutes ago" + "min plural": "{count} minutes ago", + "settings-category-builtin-servers": "Built-in servers", + "settings-category-plugin-servers": "Plugin servers" }