@gluonjs/language-server


@gluonjs/language-server / packages/language-server/src / GluonProtocolServer

Class: GluonProtocolServer

Constructors

Constructor

new GluonProtocolServer(): GluonProtocolServer

Returns

GluonProtocolServer

Properties

service

readonly service: GluonLanguageService

Methods

handle()

handle(message): readonly JsonRpcResponse[]

Parameters

message

JsonRpcRequest

Returns

readonly JsonRpcResponse[]

Example

Dispatch JSON-RPC/LSP lifecycle and text-document messages through an owned language service and return responses plus diagnostic notifications:

ts
import { GluonProtocolServer, type JsonRpcRequest, type JsonRpcResponse } from '@gluonjs/language-server';

const server = new GluonProtocolServer();
const initialize = { jsonrpc: '2.0', id: 1, method: 'initialize', params: {} } satisfies JsonRpcRequest;
const responses: readonly JsonRpcResponse[] = server.handle(initialize);
const open = {
  jsonrpc: '2.0',
  method: 'textDocument/didOpen',
  params: { textDocument: { uri: 'file:///src/app.ts', text: `import { html } from '@gluonjs/core'; const view = html\`<img>text</img>\`;` } },
} satisfies JsonRpcRequest;
const notifications = server.handle(open);
console.log(responses[0]?.result, notifications[0]?.method, notifications[0]?.params);