Skip to content

Commit 92c1db9

Browse files
committed
update when added new entry
1 parent 705126d commit 92c1db9

File tree

1 file changed

+73
-42
lines changed

1 file changed

+73
-42
lines changed

src/settings/lspSettings.js

Lines changed: 73 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -123,57 +123,87 @@ export default function lspSettings() {
123123
customServers: strings["settings-category-custom-servers"],
124124
servers: strings["settings-category-servers"],
125125
};
126-
const servers = serverRegistry.listServers();
126+
let page = createPage();
127127

128-
const sortedServers = servers.sort((a, b) => {
129-
const aEnabled = getServerOverride(a.id).enabled ?? a.enabled;
130-
const bEnabled = getServerOverride(b.id).enabled ?? b.enabled;
128+
return {
129+
show(goTo) {
130+
page = createPage();
131+
page.show(goTo);
132+
},
133+
hide() {
134+
page.hide();
135+
},
136+
search(key) {
137+
page = createPage();
138+
return page.search(key);
139+
},
140+
restoreList() {
141+
page.restoreList();
142+
},
143+
setTitle(nextTitle) {
144+
page.setTitle(nextTitle);
145+
},
146+
};
131147

132-
if (aEnabled !== bEnabled) {
133-
return bEnabled ? 1 : -1;
134-
}
135-
return a.label.localeCompare(b.label);
136-
});
148+
function createPage() {
149+
const servers = serverRegistry.listServers();
137150

138-
const items = [
139-
{
140-
key: "add_custom_server",
141-
text: strings["lsp-add-custom-server"],
142-
info: strings["settings-info-lsp-add-custom-server"],
143-
category: categories.customServers,
144-
index: 0,
145-
chevron: true,
146-
},
147-
];
151+
const sortedServers = servers.sort((a, b) => {
152+
const aEnabled = getServerOverride(a.id).enabled ?? a.enabled;
153+
const bEnabled = getServerOverride(b.id).enabled ?? b.enabled;
148154

149-
for (const server of sortedServers) {
150-
const source = server.launcher?.install?.source
151-
? ` • ${server.launcher.install.source}`
152-
: "";
153-
const languagesList =
154-
Array.isArray(server.languages) && server.languages.length
155-
? `${server.languages.join(", ")}${source}`
156-
: source.slice(3);
155+
if (aEnabled !== bEnabled) {
156+
return bEnabled ? 1 : -1;
157+
}
158+
return a.label.localeCompare(b.label);
159+
});
160+
161+
const items = [
162+
{
163+
key: "add_custom_server",
164+
text: strings["lsp-add-custom-server"],
165+
info: strings["settings-info-lsp-add-custom-server"],
166+
category: categories.customServers,
167+
index: 0,
168+
chevron: true,
169+
},
170+
];
171+
172+
for (const server of sortedServers) {
173+
const source = server.launcher?.install?.source
174+
? ` • ${server.launcher.install.source}`
175+
: "";
176+
const languagesList =
177+
Array.isArray(server.languages) && server.languages.length
178+
? `${server.languages.join(", ")}${source}`
179+
: source.slice(3);
180+
181+
items.push({
182+
key: `server:${server.id}`,
183+
text: server.label,
184+
info: languagesList || undefined,
185+
category: categories.servers,
186+
chevron: true,
187+
});
188+
}
157189

158190
items.push({
159-
key: `server:${server.id}`,
160-
text: server.label,
161-
info: languagesList || undefined,
162-
category: categories.servers,
163-
chevron: true,
191+
note: strings["settings-note-lsp-settings"],
164192
});
165-
}
166193

167-
items.push({
168-
note: strings["settings-note-lsp-settings"],
169-
});
194+
return settingsPage(title, items, callback, undefined, {
195+
preserveOrder: true,
196+
pageClassName: "detail-settings-page",
197+
listClassName: "detail-settings-list",
198+
groupByDefault: true,
199+
});
200+
}
170201

171-
return settingsPage(title, items, callback, undefined, {
172-
preserveOrder: true,
173-
pageClassName: "detail-settings-page",
174-
listClassName: "detail-settings-list",
175-
groupByDefault: true,
176-
});
202+
function refreshVisiblePage() {
203+
page.hide();
204+
page = createPage();
205+
page.show();
206+
}
177207

178208
async function callback(key) {
179209
if (key === "add_custom_server") {
@@ -261,6 +291,7 @@ export default function lspSettings() {
261291
});
262292

263293
toast(strings["lsp-custom-server-added"]);
294+
refreshVisiblePage();
264295
const detailPage = lspServerDetail(serverId);
265296
detailPage?.show();
266297
} catch (error) {

0 commit comments

Comments
 (0)