MCPcopy Index your code
hub / github.com/Acode-Foundation/Acode / getExtensionsForFile

Method getExtensionsForFile

src/cm/lsp/clientManager.ts:295–386  ·  view source on GitHub ↗
(metadata: FileMetadata)

Source from the content-addressed store, hash-verified

293 }
294
295 async getExtensionsForFile(metadata: FileMetadata): Promise<Extension[]> {
296 const {
297 uri: originalUri,
298 languageId,
299 languageName,
300 view,
301 file,
302 rootUri,
303 } = metadata;
304
305 const effectiveLang = safeString(languageId ?? languageName).toLowerCase();
306 if (!effectiveLang) return [];
307
308 const servers = serverRegistry.getServersForLanguage(effectiveLang);
309 if (!servers.length) return [];
310
311 const lspExtensions: Extension[] = [];
312 const diagnosticsUiExtension = this.options.diagnosticsUiExtension;
313
314 for (const server of servers) {
315 if (isSettingsOrKeybindingsFile(server, originalUri, file)) {
316 continue;
317 }
318 const target = await this.#resolveRuntimeTarget(server, {
319 uri: originalUri,
320 file,
321 view,
322 languageId: effectiveLang,
323 rootUri,
324 });
325 if (!target) {
326 console.warn(
327 `Cannot resolve runtime or document URI for LSP server ${server.id}: ${originalUri}`,
328 );
329 continue;
330 }
331 const normalizedUri = target.documentUri;
332 let targetLanguageId = effectiveLang;
333 if (server.resolveLanguageId) {
334 try {
335 const resolved = server.resolveLanguageId({
336 languageId: effectiveLang,
337 languageName,
338 uri: normalizedUri,
339 file,
340 });
341 if (resolved) targetLanguageId = safeString(resolved);
342 } catch (error) {
343 console.warn(
344 `LSP server ${server.id} failed to resolve language id for ${normalizedUri}`,
345 error,
346 );
347 }
348 }
349
350 try {
351 const clientState = await this.#ensureClient(
352 server,

Callers 1

configureLspForFileFunction · 0.80

Calls 7

#resolveRuntimeTargetMethod · 0.95
#ensureClientMethod · 0.95
safeStringFunction · 0.85
asArrayFunction · 0.85
attachMethod · 0.80
errorMethod · 0.45

Tested by

no test coverage detected