(
config: BuiltinExtensionsConfig = {},
)
| 206 | } |
| 207 | |
| 208 | function 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 | |
| 251 | interface InitContext { |
| 252 | key: string; |
no test coverage detected