Skip to content

Commit c917f07

Browse files
committed
feat: add LSP inlay hints support
1 parent 04a4de1 commit c917f07

4 files changed

Lines changed: 375 additions & 0 deletions

File tree

src/cm/lsp/clientManager.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import { EditorView, keymap } from "@codemirror/view";
1717
import lspStatusBar from "components/lspStatusBar";
1818
import NotificationManager from "lib/notificationManager";
1919
import Uri from "utils/Uri";
20+
import { inlayHintsExtension } from "./inlayHints";
2021
import { ensureServerRunning } from "./serverLauncher";
2122
import serverRegistry from "./serverRegistry";
2223
import { createTransport } from "./transport";
@@ -72,6 +73,7 @@ function buildBuiltinExtensions(
7273
signature: includeSignature = true,
7374
keymaps: includeKeymaps = true,
7475
diagnostics: includeDiagnostics = true,
76+
inlayHints: includeInlayHints = true,
7577
} = config;
7678

7779
const extensions: Extension[] = [];
@@ -86,6 +88,10 @@ function buildBuiltinExtensions(
8688
diagnosticsExtension = diagExt;
8789
extensions.push(diagExt as Extension);
8890
}
91+
if (includeInlayHints) {
92+
const hintsExt = inlayHintsExtension();
93+
extensions.push(hintsExt as LSPClientExtension as Extension);
94+
}
8995

9096
return { extensions, diagnosticsExtension };
9197
}
@@ -310,6 +316,7 @@ export class LspClientManager {
310316
signature: builtinConfig.signature !== false,
311317
keymaps: builtinConfig.keymaps !== false,
312318
diagnostics: builtinConfig.diagnostics !== false,
319+
inlayHints: builtinConfig.inlayHints !== false,
313320
})
314321
: { extensions: [], diagnosticsExtension: null };
315322

src/cm/lsp/index.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,12 @@ export {
88
lspDiagnosticsUiExtension,
99
} from "./diagnostics";
1010
export { registerLspFormatter } from "./formatter";
11+
export type { InlayHintsConfig } from "./inlayHints";
12+
export {
13+
inlayHintsClientExtension,
14+
inlayHintsEditorExtension,
15+
inlayHintsExtension,
16+
} from "./inlayHints";
1117
export {
1218
ensureServerRunning,
1319
resetManagedServers,
@@ -17,6 +23,7 @@ export { default as serverRegistry } from "./serverRegistry";
1723
export { createTransport } from "./transport";
1824

1925
export type {
26+
BuiltinExtensionsConfig,
2027
ClientManagerOptions,
2128
ClientState,
2229
FileMetadata,

0 commit comments

Comments
 (0)