feat(lsp): group language servers into built-in, plugin, and custom categories#2452
Conversation
Greptile SummaryThis PR splits the flat "Servers" list in the LSP settings page into three labeled groups — Built-in, Plugin, and Custom — by classifying each registered server against the static
Confidence Score: 4/5The categorization logic is sound and the UI change is contained to the LSP settings page; the only leftover is an orphaned translation key and untranslated new strings across non-English locales. The core classification logic correctly separates built-in, plugin, and custom servers. The old All 32 Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[serverRegistry.listServers] --> B[sortedServers]
B --> C{For each server}
C --> D{builtinServers.some\ns.id === server.id}
D -- Yes --> E[builtinServersList\ncategory: Built-in servers]
D -- No --> F{isCustomServer\nserver.id}
F -- Yes --> G[customServersList\ncategory: Custom servers]
F -- No --> H[pluginServersList\ncategory: Plugin servers]
E --> I[items array]
H --> I
G --> I
I --> J[settingsPage render]
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
A[serverRegistry.listServers] --> B[sortedServers]
B --> C{For each server}
C --> D{builtinServers.some\ns.id === server.id}
D -- Yes --> E[builtinServersList\ncategory: Built-in servers]
D -- No --> F{isCustomServer\nserver.id}
F -- Yes --> G[customServersList\ncategory: Custom servers]
F -- No --> H[pluginServersList\ncategory: Plugin servers]
E --> I[items array]
H --> I
G --> I
I --> J[settingsPage render]
|
To avoid confusion like #2439