From e4daf4b58289b4a53f98aa14e311ec68ad3bfa17 Mon Sep 17 00:00:00 2001 From: Raunak Raj <71929976+bajrangCoder@users.noreply.github.com> Date: Sun, 12 Jul 2026 11:48:12 +0530 Subject: [PATCH 1/2] fix(lsp): refresh installation status on the correct settings page --- src/components/settingsPage.js | 8 ++++++++ src/settings/lspServerDetail.js | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/components/settingsPage.js b/src/components/settingsPage.js index c53b62147..befbbb28c 100644 --- a/src/components/settingsPage.js +++ b/src/components/settingsPage.js @@ -21,6 +21,7 @@ import searchBar from "./searchbar"; * @property {(key:string)=>HTMLElement[]} search search for a setting * @property {(title:string)=>void} setTitle set title of settings page * @property {()=>void} restoreList restore list to original state + * @property {()=>HTMLDivElement} getListElement get the page's list element */ /** @@ -114,6 +115,13 @@ export default function settingsPage( $page.append(
); return { + /** + * Get this page's list element. + * @returns {HTMLDivElement} + */ + getListElement() { + return $list; + }, /** * Show settings page * @param {string} goTo Key of setting to scroll to and select diff --git a/src/settings/lspServerDetail.js b/src/settings/lspServerDetail.js index 0ee98b0d3..81e01ea8a 100644 --- a/src/settings/lspServerDetail.js +++ b/src/settings/lspServerDetail.js @@ -548,13 +548,13 @@ export default function lspServerDetail(serverId) { ...page, show(goTo) { baseShow(goTo); - const $list = document.querySelector("#settings .main.list"); + const $list = page.getListElement(); refreshVisibleState($list, itemsByKey, serverId).catch(console.error); }, }; async function callback(key, value) { - const $list = this?.parentElement; + const $list = page.getListElement(); const $loader = loader.create("LSP", strings["loading..."]); try { From 934d6d4f91dea03ad508d7509b1990923f647afe Mon Sep 17 00:00:00 2001 From: Raunak Raj <71929976+bajrangCoder@users.noreply.github.com> Date: Sun, 12 Jul 2026 11:54:57 +0530 Subject: [PATCH 2/2] fix --- src/settings/lspServerDetail.js | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/settings/lspServerDetail.js b/src/settings/lspServerDetail.js index 81e01ea8a..98c05e3a2 100644 --- a/src/settings/lspServerDetail.js +++ b/src/settings/lspServerDetail.js @@ -254,6 +254,17 @@ function updateItemDisplay($list, itemsByKey, key, value, extras = {}) { } } +function getConnectedServerList(serverId, preferredList) { + if (preferredList?.isConnected) return preferredList; + + return Array.from( + document.querySelectorAll(".detail-settings-list[data-lsp-server-id]"), + ).find( + ($list) => + $list.isConnected && $list.dataset.lspServerId === String(serverId), + ); +} + async function buildSnapshot(serverId) { const liveServer = lspApi.servers.get(serverId); if (!liveServer) return null; @@ -541,6 +552,8 @@ export default function lspServerDetail(serverId) { valueInTail: true, }, ); + const $pageList = page.getListElement(); + $pageList.dataset.lspServerId = String(serverId); const baseShow = page.show.bind(page); @@ -548,13 +561,11 @@ export default function lspServerDetail(serverId) { ...page, show(goTo) { baseShow(goTo); - const $list = page.getListElement(); - refreshVisibleState($list, itemsByKey, serverId).catch(console.error); + refreshVisibleState($pageList, itemsByKey, serverId).catch(console.error); }, }; async function callback(key, value) { - const $list = page.getListElement(); const $loader = loader.create("LSP", strings["loading..."]); try { @@ -776,7 +787,10 @@ export default function lspServerDetail(serverId) { break; } - await refreshVisibleState($list, itemsByKey, serverId); + const $connectedList = getConnectedServerList(serverId, $pageList); + if ($connectedList) { + await refreshVisibleState($connectedList, itemsByKey, serverId); + } } finally { $loader.destroy(); }