Skip to content

LSP protocol support

This page lists which LSP methods are currently implemented.

Supported methods

Method Status
textDocument/didOpen Supported
textDocument/didChange Supported
textDocument/didClose Supported
textDocument/hover Supported
textDocument/definition Supported
textDocument/documentSymbol Supported
textDocument/completion Supported (basic)
workspace/executeCommand Supported for incan.metadata.model.emit
textDocument/references Planned
textDocument/rename Planned
textDocument/formatting Planned

textDocument/hover includes checked API metadata previews for public declarations, public partial callable presets, selected public model/class members, and public enum variants after successful typechecking. Partial hover displays the projected callable signature using the same default-parameter visual model as ordinary callables, plus target and preset provenance. Computed property hovers and completions include the owner and return type, such as property Account.total -> int. Value enum hovers and completions include backing type and raw-value details where available. textDocument/completion includes local partial names as function-like completion items, textDocument/definition resolves local partial names and target identifiers, and textDocument/documentSymbol lists module-level partial declarations. workspace/executeCommand command incan.metadata.model.emit emits contract-backed model source or bundle JSON for a selected project, bundle JSON file, or .incnlib artifact. There is currently no LSP command that returns the full checked API metadata JSON package; call incan tools metadata api for that.

textDocument/rename remains planned. The current server does not advertise rename support, so partial rename behavior is not exposed through LSP yet.

To learn more about LSP, see the Language Server Protocol specification. See also: LSP architecture.