@nanocollective/nanocoder 1.16.5 → 1.17.1
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/README.md +53 -19
- package/assets/nanocoder-vscode.vsix +0 -0
- package/dist/app.d.ts +6 -1
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +54 -18
- package/dist/app.js.map +1 -1
- package/dist/cli.js +13 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/mcp.d.ts +6 -0
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +25 -3
- package/dist/commands/mcp.js.map +1 -1
- package/dist/components/vscode-extension-prompt.d.ts +12 -0
- package/dist/components/vscode-extension-prompt.d.ts.map +1 -0
- package/dist/components/vscode-extension-prompt.js +115 -0
- package/dist/components/vscode-extension-prompt.js.map +1 -0
- package/dist/hooks/useAppInitialization.d.ts +2 -0
- package/dist/hooks/useAppInitialization.d.ts.map +1 -1
- package/dist/hooks/useAppInitialization.js +55 -1
- package/dist/hooks/useAppInitialization.js.map +1 -1
- package/dist/hooks/useModeHandlers.d.ts +2 -1
- package/dist/hooks/useModeHandlers.d.ts.map +1 -1
- package/dist/hooks/useModeHandlers.js +13 -1
- package/dist/hooks/useModeHandlers.js.map +1 -1
- package/dist/hooks/useToolHandler.d.ts.map +1 -1
- package/dist/hooks/useToolHandler.js +11 -0
- package/dist/hooks/useToolHandler.js.map +1 -1
- package/dist/hooks/useVSCodeServer.d.ts +45 -0
- package/dist/hooks/useVSCodeServer.d.ts.map +1 -0
- package/dist/hooks/useVSCodeServer.js +144 -0
- package/dist/hooks/useVSCodeServer.js.map +1 -0
- package/dist/lsp/index.d.ts +12 -0
- package/dist/lsp/index.d.ts.map +1 -0
- package/dist/lsp/index.js +11 -0
- package/dist/lsp/index.js.map +1 -0
- package/dist/lsp/lsp-client.d.ts +78 -0
- package/dist/lsp/lsp-client.d.ts.map +1 -0
- package/dist/lsp/lsp-client.js +378 -0
- package/dist/lsp/lsp-client.js.map +1 -0
- package/dist/lsp/lsp-client.spec.d.ts +2 -0
- package/dist/lsp/lsp-client.spec.d.ts.map +1 -0
- package/dist/lsp/lsp-client.spec.js +395 -0
- package/dist/lsp/lsp-client.spec.js.map +1 -0
- package/dist/lsp/lsp-manager.d.ts +124 -0
- package/dist/lsp/lsp-manager.d.ts.map +1 -0
- package/dist/lsp/lsp-manager.js +313 -0
- package/dist/lsp/lsp-manager.js.map +1 -0
- package/dist/lsp/lsp-manager.spec.d.ts +2 -0
- package/dist/lsp/lsp-manager.spec.d.ts.map +1 -0
- package/dist/lsp/lsp-manager.spec.js +388 -0
- package/dist/lsp/lsp-manager.spec.js.map +1 -0
- package/dist/lsp/protocol.d.ts +313 -0
- package/dist/lsp/protocol.d.ts.map +1 -0
- package/dist/lsp/protocol.js +70 -0
- package/dist/lsp/protocol.js.map +1 -0
- package/dist/lsp/protocol.spec.d.ts +2 -0
- package/dist/lsp/protocol.spec.d.ts.map +1 -0
- package/dist/lsp/protocol.spec.js +406 -0
- package/dist/lsp/protocol.spec.js.map +1 -0
- package/dist/lsp/server-discovery.d.ts +35 -0
- package/dist/lsp/server-discovery.d.ts.map +1 -0
- package/dist/lsp/server-discovery.js +291 -0
- package/dist/lsp/server-discovery.js.map +1 -0
- package/dist/lsp/server-discovery.spec.d.ts +2 -0
- package/dist/lsp/server-discovery.spec.d.ts.map +1 -0
- package/dist/lsp/server-discovery.spec.js +375 -0
- package/dist/lsp/server-discovery.spec.js.map +1 -0
- package/dist/mcp/mcp-client.d.ts +18 -0
- package/dist/mcp/mcp-client.d.ts.map +1 -1
- package/dist/mcp/mcp-client.js +59 -23
- package/dist/mcp/mcp-client.js.map +1 -1
- package/dist/mcp/mcp-client.spec.d.ts +2 -0
- package/dist/mcp/mcp-client.spec.d.ts.map +1 -0
- package/dist/mcp/mcp-client.spec.js +64 -0
- package/dist/mcp/mcp-client.spec.js.map +1 -0
- package/dist/mcp/transport-factory.d.ts +39 -0
- package/dist/mcp/transport-factory.d.ts.map +1 -0
- package/dist/mcp/transport-factory.js +176 -0
- package/dist/mcp/transport-factory.js.map +1 -0
- package/dist/mcp/transport-factory.spec.d.ts +2 -0
- package/dist/mcp/transport-factory.spec.d.ts.map +1 -0
- package/dist/mcp/transport-factory.spec.js +303 -0
- package/dist/mcp/transport-factory.spec.js.map +1 -0
- package/dist/tools/create-file.d.ts.map +1 -1
- package/dist/tools/create-file.js +37 -3
- package/dist/tools/create-file.js.map +1 -1
- package/dist/tools/delete-lines.d.ts.map +1 -1
- package/dist/tools/delete-lines.js +41 -1
- package/dist/tools/delete-lines.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/insert-lines.d.ts.map +1 -1
- package/dist/tools/insert-lines.js +40 -1
- package/dist/tools/insert-lines.js.map +1 -1
- package/dist/tools/lsp-get-diagnostics.d.ts +3 -0
- package/dist/tools/lsp-get-diagnostics.d.ts.map +1 -0
- package/dist/tools/lsp-get-diagnostics.js +182 -0
- package/dist/tools/lsp-get-diagnostics.js.map +1 -0
- package/dist/tools/replace-lines.d.ts.map +1 -1
- package/dist/tools/replace-lines.js +44 -1
- package/dist/tools/replace-lines.js.map +1 -1
- package/dist/tools/tool-manager.d.ts +17 -0
- package/dist/tools/tool-manager.d.ts.map +1 -1
- package/dist/tools/tool-manager.js +12 -0
- package/dist/tools/tool-manager.js.map +1 -1
- package/dist/types/config.d.ts +27 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/mcp.d.ts +23 -1
- package/dist/types/mcp.d.ts.map +1 -1
- package/dist/vscode/extension-installer.d.ts +24 -0
- package/dist/vscode/extension-installer.d.ts.map +1 -0
- package/dist/vscode/extension-installer.js +110 -0
- package/dist/vscode/extension-installer.js.map +1 -0
- package/dist/vscode/extension-installer.spec.d.ts +2 -0
- package/dist/vscode/extension-installer.spec.d.ts.map +1 -0
- package/dist/vscode/extension-installer.spec.js +132 -0
- package/dist/vscode/extension-installer.spec.js.map +1 -0
- package/dist/vscode/index.d.ts +14 -0
- package/dist/vscode/index.d.ts.map +1 -0
- package/dist/vscode/index.js +14 -0
- package/dist/vscode/index.js.map +1 -0
- package/dist/vscode/protocol.d.ts +101 -0
- package/dist/vscode/protocol.d.ts.map +1 -0
- package/dist/vscode/protocol.js +7 -0
- package/dist/vscode/protocol.js.map +1 -0
- package/dist/vscode/protocol.spec.d.ts +2 -0
- package/dist/vscode/protocol.spec.d.ts.map +1 -0
- package/dist/vscode/protocol.spec.js +354 -0
- package/dist/vscode/protocol.spec.js.map +1 -0
- package/dist/vscode/vscode-server.d.ts +118 -0
- package/dist/vscode/vscode-server.d.ts.map +1 -0
- package/dist/vscode/vscode-server.js +303 -0
- package/dist/vscode/vscode-server.js.map +1 -0
- package/dist/vscode/vscode-server.spec.d.ts +2 -0
- package/dist/vscode/vscode-server.spec.d.ts.map +1 -0
- package/dist/vscode/vscode-server.spec.js +487 -0
- package/dist/vscode/vscode-server.spec.js.map +1 -0
- package/dist/wizard/steps/mcp-step.d.ts.map +1 -1
- package/dist/wizard/steps/mcp-step.js +139 -72
- package/dist/wizard/steps/mcp-step.js.map +1 -1
- package/dist/wizard/steps/summary-step.d.ts.map +1 -1
- package/dist/wizard/steps/summary-step.js +58 -2
- package/dist/wizard/steps/summary-step.js.map +1 -1
- package/dist/wizard/templates/mcp-templates.d.ts +20 -2
- package/dist/wizard/templates/mcp-templates.d.ts.map +1 -1
- package/dist/wizard/templates/mcp-templates.js +351 -7
- package/dist/wizard/templates/mcp-templates.js.map +1 -1
- package/dist/wizard/templates/mcp-templates.spec.js +257 -0
- package/dist/wizard/templates/mcp-templates.spec.js.map +1 -1
- package/dist/wizard/validation-array.spec.d.ts +2 -0
- package/dist/wizard/validation-array.spec.d.ts.map +1 -0
- package/dist/wizard/validation-array.spec.js +221 -0
- package/dist/wizard/validation-array.spec.js.map +1 -0
- package/dist/wizard/validation.d.ts +26 -1
- package/dist/wizard/validation.d.ts.map +1 -1
- package/dist/wizard/validation.js +15 -2
- package/dist/wizard/validation.js.map +1 -1
- package/dist/wizard/validation.spec.js +13 -5
- package/dist/wizard/validation.spec.js.map +1 -1
- package/package.json +7 -3
- package/source/app/prompts/main-prompt.md +6 -0
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LSP Manager
|
|
3
|
+
* Manages multiple language server connections with auto-discovery and routing
|
|
4
|
+
*/
|
|
5
|
+
import { EventEmitter } from 'events';
|
|
6
|
+
import { extname } from 'path';
|
|
7
|
+
import { readFile } from 'fs/promises';
|
|
8
|
+
import { LSPClient } from './lsp-client.js';
|
|
9
|
+
import { discoverLanguageServers, getLanguageId } from './server-discovery.js';
|
|
10
|
+
export class LSPManager extends EventEmitter {
|
|
11
|
+
clients = new Map(); // serverName -> client
|
|
12
|
+
languageToServer = new Map(); // extension -> serverName
|
|
13
|
+
documentServers = new Map(); // uri -> serverName
|
|
14
|
+
diagnosticsCache = new Map(); // uri -> diagnostics
|
|
15
|
+
rootUri;
|
|
16
|
+
initialized = false;
|
|
17
|
+
constructor(config = {}) {
|
|
18
|
+
super();
|
|
19
|
+
this.rootUri = config.rootUri || `file://${process.cwd()}`;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Initialize the LSP manager with auto-discovery and/or custom servers
|
|
23
|
+
*/
|
|
24
|
+
async initialize(config = {}) {
|
|
25
|
+
const results = [];
|
|
26
|
+
const serversToStart = [];
|
|
27
|
+
// Add custom servers first (they take priority)
|
|
28
|
+
if (config.servers) {
|
|
29
|
+
for (const server of config.servers) {
|
|
30
|
+
serversToStart.push({
|
|
31
|
+
...server,
|
|
32
|
+
rootUri: server.rootUri || this.rootUri,
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
// Auto-discover additional servers if enabled (default: true)
|
|
37
|
+
if (config.autoDiscover !== false) {
|
|
38
|
+
const discovered = discoverLanguageServers();
|
|
39
|
+
// Only add discovered servers for languages not already covered
|
|
40
|
+
const coveredLanguages = new Set();
|
|
41
|
+
for (const server of serversToStart) {
|
|
42
|
+
for (const lang of server.languages) {
|
|
43
|
+
coveredLanguages.add(lang);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
for (const server of discovered) {
|
|
47
|
+
const hasNewLanguages = server.languages.some(lang => !coveredLanguages.has(lang));
|
|
48
|
+
if (hasNewLanguages) {
|
|
49
|
+
serversToStart.push({
|
|
50
|
+
...server,
|
|
51
|
+
rootUri: this.rootUri,
|
|
52
|
+
});
|
|
53
|
+
for (const lang of server.languages) {
|
|
54
|
+
coveredLanguages.add(lang);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
// Start all servers in parallel
|
|
60
|
+
const startPromises = serversToStart.map(async (serverConfig) => {
|
|
61
|
+
const result = await this.startServer(serverConfig);
|
|
62
|
+
config.onProgress?.(result);
|
|
63
|
+
results.push(result);
|
|
64
|
+
return result;
|
|
65
|
+
});
|
|
66
|
+
await Promise.all(startPromises);
|
|
67
|
+
this.initialized = true;
|
|
68
|
+
return results;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Start a single language server
|
|
72
|
+
*/
|
|
73
|
+
async startServer(config) {
|
|
74
|
+
try {
|
|
75
|
+
const client = new LSPClient(config);
|
|
76
|
+
// Handle diagnostics from this server
|
|
77
|
+
client.on('diagnostics', (params) => {
|
|
78
|
+
this.diagnosticsCache.set(params.uri, params.diagnostics);
|
|
79
|
+
this.emit('diagnostics', params);
|
|
80
|
+
});
|
|
81
|
+
client.on('exit', (_code) => {
|
|
82
|
+
this.clients.delete(config.name);
|
|
83
|
+
// Remove language mappings for this server
|
|
84
|
+
for (const [lang, serverName] of this.languageToServer.entries()) {
|
|
85
|
+
if (serverName === config.name) {
|
|
86
|
+
this.languageToServer.delete(lang);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
await client.start();
|
|
91
|
+
// Store client and language mappings
|
|
92
|
+
this.clients.set(config.name, client);
|
|
93
|
+
for (const lang of config.languages) {
|
|
94
|
+
this.languageToServer.set(lang, config.name);
|
|
95
|
+
}
|
|
96
|
+
return {
|
|
97
|
+
serverName: config.name,
|
|
98
|
+
success: true,
|
|
99
|
+
languages: config.languages,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
return {
|
|
104
|
+
serverName: config.name,
|
|
105
|
+
success: false,
|
|
106
|
+
error: error instanceof Error ? error.message : String(error),
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Stop all language servers
|
|
112
|
+
*/
|
|
113
|
+
async shutdown() {
|
|
114
|
+
const stopPromises = Array.from(this.clients.values()).map(client => client.stop());
|
|
115
|
+
await Promise.all(stopPromises);
|
|
116
|
+
this.clients.clear();
|
|
117
|
+
this.languageToServer.clear();
|
|
118
|
+
this.documentServers.clear();
|
|
119
|
+
this.diagnosticsCache.clear();
|
|
120
|
+
this.initialized = false;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Get the client for a file based on its extension
|
|
124
|
+
*/
|
|
125
|
+
getClientForFile(filePath) {
|
|
126
|
+
const ext = extname(filePath).slice(1); // Remove leading dot
|
|
127
|
+
const serverName = this.languageToServer.get(ext);
|
|
128
|
+
if (!serverName)
|
|
129
|
+
return undefined;
|
|
130
|
+
return this.clients.get(serverName);
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Convert file path to URI
|
|
134
|
+
*/
|
|
135
|
+
fileToUri(filePath) {
|
|
136
|
+
if (filePath.startsWith('file://'))
|
|
137
|
+
return filePath;
|
|
138
|
+
return `file://${filePath}`;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Open a document in the appropriate language server
|
|
142
|
+
*/
|
|
143
|
+
async openDocument(filePath, content) {
|
|
144
|
+
const client = this.getClientForFile(filePath);
|
|
145
|
+
if (!client || !client.isReady())
|
|
146
|
+
return false;
|
|
147
|
+
const uri = this.fileToUri(filePath);
|
|
148
|
+
const ext = extname(filePath).slice(1);
|
|
149
|
+
const languageId = getLanguageId(ext);
|
|
150
|
+
// Read content if not provided
|
|
151
|
+
const text = content ?? (await readFile(filePath, 'utf-8'));
|
|
152
|
+
client.openDocument(uri, languageId, text);
|
|
153
|
+
this.documentServers.set(uri, client.getCapabilities() ? 'active' : '');
|
|
154
|
+
return true;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Update a document in the language server
|
|
158
|
+
*/
|
|
159
|
+
updateDocument(filePath, content) {
|
|
160
|
+
const client = this.getClientForFile(filePath);
|
|
161
|
+
if (!client || !client.isReady())
|
|
162
|
+
return false;
|
|
163
|
+
const uri = this.fileToUri(filePath);
|
|
164
|
+
client.updateDocument(uri, content);
|
|
165
|
+
return true;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Close a document in the language server
|
|
169
|
+
*/
|
|
170
|
+
closeDocument(filePath) {
|
|
171
|
+
const client = this.getClientForFile(filePath);
|
|
172
|
+
if (!client || !client.isReady())
|
|
173
|
+
return false;
|
|
174
|
+
const uri = this.fileToUri(filePath);
|
|
175
|
+
client.closeDocument(uri);
|
|
176
|
+
this.documentServers.delete(uri);
|
|
177
|
+
this.diagnosticsCache.delete(uri);
|
|
178
|
+
return true;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Get diagnostics for a file
|
|
182
|
+
*/
|
|
183
|
+
async getDiagnostics(filePath) {
|
|
184
|
+
const uri = this.fileToUri(filePath);
|
|
185
|
+
// First check cache (from push notifications)
|
|
186
|
+
const cached = this.diagnosticsCache.get(uri);
|
|
187
|
+
if (cached)
|
|
188
|
+
return cached;
|
|
189
|
+
// Try pull diagnostics
|
|
190
|
+
const client = this.getClientForFile(filePath);
|
|
191
|
+
if (!client || !client.isReady())
|
|
192
|
+
return [];
|
|
193
|
+
return client.getDiagnostics(uri);
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Get diagnostics for all open documents
|
|
197
|
+
*/
|
|
198
|
+
getAllDiagnostics() {
|
|
199
|
+
const results = [];
|
|
200
|
+
for (const [uri, diagnostics] of this.diagnosticsCache.entries()) {
|
|
201
|
+
if (diagnostics.length > 0) {
|
|
202
|
+
results.push({ uri, diagnostics });
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
return results;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Get completions at a position in a file
|
|
209
|
+
*/
|
|
210
|
+
async getCompletions(filePath, line, character) {
|
|
211
|
+
const client = this.getClientForFile(filePath);
|
|
212
|
+
if (!client || !client.isReady())
|
|
213
|
+
return [];
|
|
214
|
+
const uri = this.fileToUri(filePath);
|
|
215
|
+
return client.getCompletions(uri, { line, character });
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Get code actions for a range in a file
|
|
219
|
+
*/
|
|
220
|
+
async getCodeActions(filePath, startLine, startChar, endLine, endChar, diagnostics) {
|
|
221
|
+
const client = this.getClientForFile(filePath);
|
|
222
|
+
if (!client || !client.isReady())
|
|
223
|
+
return [];
|
|
224
|
+
const uri = this.fileToUri(filePath);
|
|
225
|
+
// Use provided diagnostics or get from cache
|
|
226
|
+
const diags = diagnostics ||
|
|
227
|
+
this.diagnosticsCache.get(uri)?.filter(d => {
|
|
228
|
+
// Filter diagnostics that overlap with the range
|
|
229
|
+
return d.range.start.line <= endLine && d.range.end.line >= startLine;
|
|
230
|
+
}) ||
|
|
231
|
+
[];
|
|
232
|
+
return client.getCodeActions(uri, diags, startLine, startChar, endLine, endChar);
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Format a document
|
|
236
|
+
*/
|
|
237
|
+
async formatDocument(filePath, options) {
|
|
238
|
+
const client = this.getClientForFile(filePath);
|
|
239
|
+
if (!client || !client.isReady())
|
|
240
|
+
return [];
|
|
241
|
+
const uri = this.fileToUri(filePath);
|
|
242
|
+
return client.formatDocument(uri, options);
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Check if LSP is available for a file type
|
|
246
|
+
*/
|
|
247
|
+
hasLanguageSupport(filePath) {
|
|
248
|
+
const ext = extname(filePath).slice(1);
|
|
249
|
+
return this.languageToServer.has(ext);
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Get list of connected servers
|
|
253
|
+
*/
|
|
254
|
+
getConnectedServers() {
|
|
255
|
+
return Array.from(this.clients.keys());
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Get supported languages
|
|
259
|
+
*/
|
|
260
|
+
getSupportedLanguages() {
|
|
261
|
+
return Array.from(this.languageToServer.keys());
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Check if manager is initialized
|
|
265
|
+
*/
|
|
266
|
+
isInitialized() {
|
|
267
|
+
return this.initialized;
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Get server status
|
|
271
|
+
*/
|
|
272
|
+
getStatus() {
|
|
273
|
+
const servers = [];
|
|
274
|
+
for (const [name, client] of this.clients.entries()) {
|
|
275
|
+
const languages = [];
|
|
276
|
+
for (const [lang, serverName] of this.languageToServer.entries()) {
|
|
277
|
+
if (serverName === name) {
|
|
278
|
+
languages.push(lang);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
servers.push({
|
|
282
|
+
name,
|
|
283
|
+
ready: client.isReady(),
|
|
284
|
+
languages,
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
return {
|
|
288
|
+
initialized: this.initialized,
|
|
289
|
+
servers,
|
|
290
|
+
};
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
// Singleton instance
|
|
294
|
+
let lspManagerInstance = null;
|
|
295
|
+
/**
|
|
296
|
+
* Get or create the LSP manager singleton
|
|
297
|
+
*/
|
|
298
|
+
export function getLSPManager(config) {
|
|
299
|
+
if (!lspManagerInstance) {
|
|
300
|
+
lspManagerInstance = new LSPManager(config);
|
|
301
|
+
}
|
|
302
|
+
return lspManagerInstance;
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Reset the LSP manager (for testing)
|
|
306
|
+
*/
|
|
307
|
+
export async function resetLSPManager() {
|
|
308
|
+
if (lspManagerInstance) {
|
|
309
|
+
await lspManagerInstance.shutdown();
|
|
310
|
+
lspManagerInstance = null;
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
//# sourceMappingURL=lsp-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lsp-manager.js","sourceRoot":"","sources":["../../source/lsp/lsp-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAC,YAAY,EAAC,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAC,OAAO,EAAC,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAC,QAAQ,EAAC,MAAM,aAAa,CAAC;AACrC,OAAO,EAAC,SAAS,EAAkB,MAAM,cAAc,CAAC;AACxD,OAAO,EAAC,uBAAuB,EAAE,aAAa,EAAC,MAAM,oBAAoB,CAAC;AAiC1E,MAAM,OAAO,UAAW,SAAQ,YAAY;IACnC,OAAO,GAA2B,IAAI,GAAG,EAAE,CAAC,CAAC,uBAAuB;IACpE,gBAAgB,GAAwB,IAAI,GAAG,EAAE,CAAC,CAAC,0BAA0B;IAC7E,eAAe,GAAwB,IAAI,GAAG,EAAE,CAAC,CAAC,oBAAoB;IACtE,gBAAgB,GAA8B,IAAI,GAAG,EAAE,CAAC,CAAC,qBAAqB;IAC9E,OAAO,CAAS;IAChB,WAAW,GAAY,KAAK,CAAC;IAErC,YAAY,SAA2B,EAAE;QACxC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,UAAU,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,SAA2B,EAAE;QAC7C,MAAM,OAAO,GAAoB,EAAE,CAAC;QACpC,MAAM,cAAc,GAAsB,EAAE,CAAC;QAE7C,gDAAgD;QAChD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACrC,cAAc,CAAC,IAAI,CAAC;oBACnB,GAAG,MAAM;oBACT,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO;iBACvC,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAED,8DAA8D;QAC9D,IAAI,MAAM,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;YACnC,MAAM,UAAU,GAAG,uBAAuB,EAAE,CAAC;YAE7C,gEAAgE;YAChE,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;YAC3C,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;gBACrC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oBACrC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;YACF,CAAC;YAED,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;gBACjC,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAC5C,IAAI,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CACnC,CAAC;gBACF,IAAI,eAAe,EAAE,CAAC;oBACrB,cAAc,CAAC,IAAI,CAAC;wBACnB,GAAG,MAAM;wBACT,OAAO,EAAE,IAAI,CAAC,OAAO;qBACrB,CAAC,CAAC;oBACH,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;wBACrC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAC5B,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;QAED,gCAAgC;QAChC,MAAM,aAAa,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,EAAC,YAAY,EAAC,EAAE;YAC7D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YACpD,MAAM,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,OAAO,MAAM,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAEjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,OAAO,OAAO,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW,CAAC,MAAuB;QAChD,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;YAErC,sCAAsC;YACtC,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,MAAgC,EAAE,EAAE;gBAC7D,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;gBAC1D,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAoB,EAAE,EAAE;gBAC1C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACjC,2CAA2C;gBAC3C,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC;oBAClE,IAAI,UAAU,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;wBAChC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBACpC,CAAC;gBACF,CAAC;YACF,CAAC,CAAC,CAAC;YAEH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YAErB,qCAAqC;YACrC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACtC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACrC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9C,CAAC;YAED,OAAO;gBACN,UAAU,EAAE,MAAM,CAAC,IAAI;gBACvB,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,MAAM,CAAC,SAAS;aAC3B,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO;gBACN,UAAU,EAAE,MAAM,CAAC,IAAI;gBACvB,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC7D,CAAC;QACH,CAAC;IACF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACb,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CACnE,MAAM,CAAC,IAAI,EAAE,CACb,CAAC;QACF,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAEhC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,QAAgB;QACxC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB;QAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU;YAAE,OAAO,SAAS,CAAC;QAClC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACK,SAAS,CAAC,QAAgB;QACjC,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,QAAQ,CAAC;QACpD,OAAO,UAAU,QAAQ,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,QAAgB,EAAE,OAAgB;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YAAE,OAAO,KAAK,CAAC;QAE/C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QAEtC,+BAA+B;QAC/B,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QAE5D,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAExE,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,QAAgB,EAAE,OAAe;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YAAE,OAAO,KAAK,CAAC;QAE/C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAEpC,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,QAAgB;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YAAE,OAAO,KAAK,CAAC;QAE/C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAElC,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,QAAgB;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAErC,8CAA8C;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAE1B,uBAAuB;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YAAE,OAAO,EAAE,CAAC;QAE5C,OAAO,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,iBAAiB;QAChB,MAAM,OAAO,GAAwB,EAAE,CAAC;QAExC,KAAK,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC;YAClE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,OAAO,CAAC,IAAI,CAAC,EAAC,GAAG,EAAE,WAAW,EAAC,CAAC,CAAC;YAClC,CAAC;QACF,CAAC;QAED,OAAO,OAAO,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CACnB,QAAgB,EAChB,IAAY,EACZ,SAAiB;QAEjB,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YAAE,OAAO,EAAE,CAAC;QAE5C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACrC,OAAO,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,EAAC,IAAI,EAAE,SAAS,EAAC,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CACnB,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,OAAe,EACf,OAAe,EACf,WAA0B;QAE1B,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YAAE,OAAO,EAAE,CAAC;QAE5C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAErC,6CAA6C;QAC7C,MAAM,KAAK,GACV,WAAW;YACX,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE;gBAC1C,iDAAiD;gBACjD,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,SAAS,CAAC;YACvE,CAAC,CAAC;YACF,EAAE,CAAC;QAEJ,OAAO,MAAM,CAAC,cAAc,CAC3B,GAAG,EACH,KAAK,EACL,SAAS,EACT,SAAS,EACT,OAAO,EACP,OAAO,CACP,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CACnB,QAAgB,EAChB,OAAoC;QAEpC,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YAAE,OAAO,EAAE,CAAC;QAE5C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACrC,OAAO,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,QAAgB;QAClC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,mBAAmB;QAClB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,qBAAqB;QACpB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,aAAa;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,SAAS;QAIR,MAAM,OAAO,GACZ,EAAE,CAAC;QAEJ,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YACrD,MAAM,SAAS,GAAa,EAAE,CAAC;YAC/B,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC;gBAClE,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;oBACzB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtB,CAAC;YACF,CAAC;YACD,OAAO,CAAC,IAAI,CAAC;gBACZ,IAAI;gBACJ,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE;gBACvB,SAAS;aACT,CAAC,CAAC;QACJ,CAAC;QAED,OAAO;YACN,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,OAAO;SACP,CAAC;IACH,CAAC;CACD;AAED,qBAAqB;AACrB,IAAI,kBAAkB,GAAsB,IAAI,CAAC;AAEjD;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,MAAyB;IACtD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACzB,kBAAkB,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,kBAAkB,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IACpC,IAAI,kBAAkB,EAAE,CAAC;QACxB,MAAM,kBAAkB,CAAC,QAAQ,EAAE,CAAC;QACpC,kBAAkB,GAAG,IAAI,CAAC;IAC3B,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lsp-manager.spec.d.ts","sourceRoot":"","sources":["../../source/lsp/lsp-manager.spec.ts"],"names":[],"mappings":""}
|