@treedy/lsp-mcp 0.1.9 → 0.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +36 -22
- package/dist/index.js.map +6 -6
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -19891,7 +19891,7 @@ function loadConfig() {
|
|
|
19891
19891
|
}
|
|
19892
19892
|
};
|
|
19893
19893
|
for (const [lang, cfg] of Object.entries(merged.languages)) {
|
|
19894
|
-
if (!cfg.extensions && DEFAULT_EXTENSIONS[lang]) {
|
|
19894
|
+
if (cfg && !cfg.extensions && DEFAULT_EXTENSIONS[lang]) {
|
|
19895
19895
|
cfg.extensions = DEFAULT_EXTENSIONS[lang];
|
|
19896
19896
|
}
|
|
19897
19897
|
}
|
|
@@ -19960,7 +19960,7 @@ function getEnvString(name, defaultValue) {
|
|
|
19960
19960
|
function inferLanguageFromPath(filePath, config2) {
|
|
19961
19961
|
const ext = filePath.substring(filePath.lastIndexOf("."));
|
|
19962
19962
|
for (const [lang, langConfig] of Object.entries(config2.languages)) {
|
|
19963
|
-
if (langConfig
|
|
19963
|
+
if (langConfig?.enabled && langConfig.extensions.includes(ext)) {
|
|
19964
19964
|
return lang;
|
|
19965
19965
|
}
|
|
19966
19966
|
}
|
|
@@ -20944,7 +20944,7 @@ class BackendManager {
|
|
|
20944
20944
|
}
|
|
20945
20945
|
async getAllTools() {
|
|
20946
20946
|
const result = new Map;
|
|
20947
|
-
const languages = Object.keys(this.config.languages).filter((lang) => this.config.languages[lang]
|
|
20947
|
+
const languages = Object.keys(this.config.languages).filter((lang) => this.config.languages[lang]?.enabled);
|
|
20948
20948
|
await Promise.all(languages.map(async (lang) => {
|
|
20949
20949
|
try {
|
|
20950
20950
|
const tools = await this.getTools(lang);
|
|
@@ -20983,7 +20983,7 @@ class BackendManager {
|
|
|
20983
20983
|
};
|
|
20984
20984
|
}
|
|
20985
20985
|
for (const [lang, config2] of Object.entries(this.config.languages)) {
|
|
20986
|
-
if (config2.enabled && !this.backends.has(lang)) {
|
|
20986
|
+
if (config2 && config2.enabled && !this.backends.has(lang)) {
|
|
20987
20987
|
status[lang] = { status: "not_started", tools: 0, restartCount: 0 };
|
|
20988
20988
|
}
|
|
20989
20989
|
}
|
|
@@ -20991,7 +20991,7 @@ class BackendManager {
|
|
|
20991
20991
|
}
|
|
20992
20992
|
getVersions() {
|
|
20993
20993
|
const versions2 = [];
|
|
20994
|
-
const languages = Object.keys(this.config.languages).filter((lang) => this.config.languages[lang]
|
|
20994
|
+
const languages = Object.keys(this.config.languages).filter((lang) => this.config.languages[lang]?.enabled);
|
|
20995
20995
|
for (const lang of languages) {
|
|
20996
20996
|
const backendConfig = getBackendCommand(lang, this.config);
|
|
20997
20997
|
const state = this.backends.get(lang);
|
|
@@ -21066,14 +21066,14 @@ async function status(backendManager, config2) {
|
|
|
21066
21066
|
description: "Unified MCP server for multi-language code intelligence",
|
|
21067
21067
|
config: {
|
|
21068
21068
|
python: {
|
|
21069
|
-
enabled: config2.python
|
|
21070
|
-
provider: config2.python
|
|
21069
|
+
enabled: config2.languages.python?.enabled ?? false,
|
|
21070
|
+
provider: config2.python?.provider
|
|
21071
21071
|
},
|
|
21072
21072
|
typescript: {
|
|
21073
|
-
enabled: config2.typescript
|
|
21073
|
+
enabled: config2.languages.typescript?.enabled ?? false
|
|
21074
21074
|
},
|
|
21075
21075
|
vue: {
|
|
21076
|
-
enabled: config2.vue
|
|
21076
|
+
enabled: config2.languages.vue?.enabled ?? false
|
|
21077
21077
|
},
|
|
21078
21078
|
autoUpdate: config2.autoUpdate
|
|
21079
21079
|
},
|
|
@@ -21167,8 +21167,8 @@ async function listBackends(backendManager, config2) {
|
|
|
21167
21167
|
const backends = [
|
|
21168
21168
|
{
|
|
21169
21169
|
name: "python",
|
|
21170
|
-
enabled: config2.python
|
|
21171
|
-
provider: config2.python
|
|
21170
|
+
enabled: config2.languages.python?.enabled ?? false,
|
|
21171
|
+
provider: config2.python?.provider,
|
|
21172
21172
|
status: backendStatus.python?.status || "not_started",
|
|
21173
21173
|
tools: backendStatus.python?.tools || 0,
|
|
21174
21174
|
description: "Python code intelligence (hover, definition, references, refactoring)",
|
|
@@ -21176,7 +21176,7 @@ async function listBackends(backendManager, config2) {
|
|
|
21176
21176
|
},
|
|
21177
21177
|
{
|
|
21178
21178
|
name: "typescript",
|
|
21179
|
-
enabled: config2.typescript
|
|
21179
|
+
enabled: config2.languages.typescript?.enabled ?? false,
|
|
21180
21180
|
status: backendStatus.typescript?.status || "not_started",
|
|
21181
21181
|
tools: backendStatus.typescript?.tools || 0,
|
|
21182
21182
|
description: "TypeScript/JavaScript code intelligence",
|
|
@@ -21184,7 +21184,7 @@ async function listBackends(backendManager, config2) {
|
|
|
21184
21184
|
},
|
|
21185
21185
|
{
|
|
21186
21186
|
name: "vue",
|
|
21187
|
-
enabled: config2.vue
|
|
21187
|
+
enabled: config2.languages.vue?.enabled ?? false,
|
|
21188
21188
|
status: backendStatus.vue?.status || "not_started",
|
|
21189
21189
|
tools: backendStatus.vue?.tools || 0,
|
|
21190
21190
|
description: "Vue Single File Component (.vue) code intelligence via Volar",
|
|
@@ -21206,7 +21206,7 @@ var startBackendSchema = {
|
|
|
21206
21206
|
language: exports_external.enum(["python", "typescript", "vue"]).describe("The backend to start")
|
|
21207
21207
|
};
|
|
21208
21208
|
async function startBackend(language, backendManager, config2, registerToolsCallback) {
|
|
21209
|
-
if (language === "python" && !config2.python
|
|
21209
|
+
if (language === "python" && !config2.languages.python?.enabled) {
|
|
21210
21210
|
return {
|
|
21211
21211
|
content: [{
|
|
21212
21212
|
type: "text",
|
|
@@ -21218,7 +21218,7 @@ async function startBackend(language, backendManager, config2, registerToolsCall
|
|
|
21218
21218
|
}]
|
|
21219
21219
|
};
|
|
21220
21220
|
}
|
|
21221
|
-
if (language === "typescript" && !config2.typescript
|
|
21221
|
+
if (language === "typescript" && !config2.languages.typescript?.enabled) {
|
|
21222
21222
|
return {
|
|
21223
21223
|
content: [{
|
|
21224
21224
|
type: "text",
|
|
@@ -21230,7 +21230,7 @@ async function startBackend(language, backendManager, config2, registerToolsCall
|
|
|
21230
21230
|
}]
|
|
21231
21231
|
};
|
|
21232
21232
|
}
|
|
21233
|
-
if (language === "vue" && !config2.vue
|
|
21233
|
+
if (language === "vue" && !config2.languages.vue?.enabled) {
|
|
21234
21234
|
return {
|
|
21235
21235
|
content: [{
|
|
21236
21236
|
type: "text",
|
|
@@ -21279,7 +21279,7 @@ var updateBackendSchema = {
|
|
|
21279
21279
|
language: exports_external.enum(["python", "typescript", "vue"]).describe("The backend to update")
|
|
21280
21280
|
};
|
|
21281
21281
|
async function updateBackend(language, backendManager, config2, updateCallback) {
|
|
21282
|
-
if (language === "python" && !config2.python
|
|
21282
|
+
if (language === "python" && !config2.languages.python?.enabled) {
|
|
21283
21283
|
return {
|
|
21284
21284
|
content: [{
|
|
21285
21285
|
type: "text",
|
|
@@ -21291,7 +21291,7 @@ async function updateBackend(language, backendManager, config2, updateCallback)
|
|
|
21291
21291
|
}]
|
|
21292
21292
|
};
|
|
21293
21293
|
}
|
|
21294
|
-
if (language === "typescript" && !config2.typescript
|
|
21294
|
+
if (language === "typescript" && !config2.languages.typescript?.enabled) {
|
|
21295
21295
|
return {
|
|
21296
21296
|
content: [{
|
|
21297
21297
|
type: "text",
|
|
@@ -21303,7 +21303,7 @@ async function updateBackend(language, backendManager, config2, updateCallback)
|
|
|
21303
21303
|
}]
|
|
21304
21304
|
};
|
|
21305
21305
|
}
|
|
21306
|
-
if (language === "vue" && !config2.vue
|
|
21306
|
+
if (language === "vue" && !config2.languages.vue?.enabled) {
|
|
21307
21307
|
return {
|
|
21308
21308
|
content: [{
|
|
21309
21309
|
type: "text",
|
|
@@ -22095,8 +22095,22 @@ function preRegisterTools() {
|
|
|
22095
22095
|
}
|
|
22096
22096
|
}
|
|
22097
22097
|
} catch (error2) {
|
|
22098
|
+
const msg = String(error2);
|
|
22099
|
+
let hint = "";
|
|
22100
|
+
if (msg.includes("ENOENT")) {
|
|
22101
|
+
if (language === "python")
|
|
22102
|
+
hint = "Make sure 'uv' (recommended) or 'python' is installed and in your PATH.";
|
|
22103
|
+
else
|
|
22104
|
+
hint = "Make sure 'node' and 'npm' are installed and in your PATH.";
|
|
22105
|
+
} else {
|
|
22106
|
+
hint = "Check server logs for details. You may need to install the backend manually.";
|
|
22107
|
+
}
|
|
22098
22108
|
return {
|
|
22099
|
-
content: [{ type: "text", text: JSON.stringify({
|
|
22109
|
+
content: [{ type: "text", text: JSON.stringify({
|
|
22110
|
+
error: `Failed to start ${language} backend`,
|
|
22111
|
+
details: msg,
|
|
22112
|
+
hint
|
|
22113
|
+
}, null, 2) }]
|
|
22100
22114
|
};
|
|
22101
22115
|
}
|
|
22102
22116
|
}
|
|
@@ -22183,7 +22197,7 @@ ${summary || "(No symbols found)"}`
|
|
|
22183
22197
|
registeredTools.add(tool.name);
|
|
22184
22198
|
}
|
|
22185
22199
|
for (const [language, langConfig] of Object.entries(config2.languages)) {
|
|
22186
|
-
if (!langConfig
|
|
22200
|
+
if (!langConfig?.enabled)
|
|
22187
22201
|
continue;
|
|
22188
22202
|
const tools = LANGUAGE_SPECIFIC_TOOLS[language];
|
|
22189
22203
|
if (!tools)
|
|
@@ -22261,4 +22275,4 @@ main().catch((error2) => {
|
|
|
22261
22275
|
process.exit(1);
|
|
22262
22276
|
});
|
|
22263
22277
|
|
|
22264
|
-
//# debugId=
|
|
22278
|
+
//# debugId=4446D59062B5AFD964756E2164756E21
|