Skip to content

rune-langium / lsp-server/src / RuneLspServer

Interface: RuneLspServer ​

Defined in: packages/lsp-server/src/rune-dsl-server.ts:66

A fully-wired Rune DSL LSP server instance.

Remarks ​

Returned by createRuneLspServer. Exposes the underlying @lspeasy/server instance and Langium services for advanced use cases (testing, custom middleware, capability introspection).

Pitfalls ​

  • Do NOT call listen() before the server is fully initialized — all Langium providers are registered during createRuneLspServer() synchronously via startLanguageServer(shared). The server is ready to accept connections as soon as this factory function returns.
  • Diagnostics are sent as textDocument/publishDiagnostics notifications (not responses). Clients must register a notification handler; they will not appear as request responses.
  • Do NOT access shared or services from a concurrent request handler without understanding Langium's document locking model — document builds and index updates are not thread-safe.

Properties ​

PropertyTypeDescriptionDefined in
serverLSPServer<ServerCapabilities>The underlying @lspeasy/server instance.packages/lsp-server/src/rune-dsl-server.ts:68
servicesLangiumServicesLangium language services for Rune DSL.packages/lsp-server/src/rune-dsl-server.ts:72
sharedLangiumSharedServicesLangium shared services (for testing / advanced use).packages/lsp-server/src/rune-dsl-server.ts:70

Methods ​

listen() ​

ts
listen(transport): Promise<void>;

Defined in: packages/lsp-server/src/rune-dsl-server.ts:74

Bind the server to a transport and start processing messages.

Parameters ​

ParameterType
transportTransport

Returns ​

Promise<void>


syncModels() ​

ts
syncModels(update): Promise<
  | {
  lockDigest: string;
  overridesDigest: string;
  revision: string;
}
| undefined>;

Defined in: packages/lsp-server/src/rune-dsl-server.ts:75

Parameters ​

ParameterType
updateLspModelUpdate

Returns ​

Promise< | { lockDigest: string; overridesDigest: string; revision: string; } | undefined>

Core packages released under MIT. Studio app released under FSL-1.1-ALv2.