MCPcopy Create free account
hub / github.com/Acode-Foundation/Acode / buildBuiltinExtensions

Function buildBuiltinExtensions

src/cm/lsp/clientManager.ts:208–249  ·  view source on GitHub ↗
(
  config: BuiltinExtensionsConfig = {},
)

Source from the content-addressed store, hash-verified

206}
207
208function buildBuiltinExtensions(
209 config: BuiltinExtensionsConfig = {},
210): BuiltinExtensionsResult {
211 const {
212 hover: includeHover = true,
213 completion: includeCompletion = true,
214 signature: includeSignature = true,
215 keymaps: includeKeymaps = true,
216 diagnostics: includeDiagnostics = true,
217 inlayHints: includeInlayHints = false,
218 formatting: includeFormatting = true,
219 } = config;
220
221 const extensions: Extension[] = [];
222 let diagnosticsExtension: Extension | LSPClientExtension | null = null;
223
224 if (includeCompletion) extensions.push(serverCompletion());
225 if (includeHover) extensions.push(hoverTooltips());
226 if (includeKeymaps) {
227 const bindings = [
228 ...(includeFormatting ? formatKeymap : []),
229 ...acodeRenameKeymap,
230 ...jumpToDefinitionKeymap,
231 ...findReferencesKeymap,
232 ];
233 if (bindings.length) {
234 extensions.push(keymap.of(bindings));
235 }
236 }
237 if (includeSignature) extensions.push(signatureHelp());
238 if (includeDiagnostics) {
239 const diagExt = serverDiagnostics();
240 diagnosticsExtension = diagExt;
241 extensions.push(diagExt as Extension);
242 }
243 if (includeInlayHints) {
244 const hintsExt = inlayHintsExtension();
245 extensions.push(hintsExt as LSPClientExtension as Extension);
246 }
247
248 return { extensions, diagnosticsExtension };
249}
250
251interface InitContext {
252 key: string;

Callers 1

#initializeClientMethod · 0.85

Calls 3

hoverTooltipsFunction · 0.90
signatureHelpFunction · 0.90
inlayHintsExtensionFunction · 0.90

Tested by

no test coverage detected