monaco-lsp-bridge 0.0.2 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/lib/{ts/index.d.ts → client.d.ts} +14 -4
  2. package/lib/client.d.ts.map +1 -0
  3. package/lib/{esm/index.js → client.js} +103 -21
  4. package/lib/client.js.map +1 -0
  5. package/lib/error.d.ts.map +1 -0
  6. package/lib/{esm/error.js → error.js} +7 -3
  7. package/lib/error.js.map +1 -0
  8. package/lib/index.d.ts +4 -0
  9. package/lib/index.d.ts.map +1 -0
  10. package/lib/index.js +3 -0
  11. package/lib/index.js.map +1 -0
  12. package/lib/protocol.d.ts +102 -0
  13. package/lib/protocol.d.ts.map +1 -0
  14. package/lib/protocol.js +37 -0
  15. package/lib/protocol.js.map +1 -0
  16. package/lib/transform.d.ts +44 -0
  17. package/lib/transform.d.ts.map +1 -0
  18. package/lib/{esm/util.js → transform.js} +178 -14
  19. package/lib/transform.js.map +1 -0
  20. package/lib/{ts/transport.d.ts → transport.d.ts} +12 -5
  21. package/lib/transport.d.ts.map +1 -0
  22. package/lib/{esm/transport.js → transport.js} +63 -21
  23. package/lib/transport.js.map +1 -0
  24. package/package.json +15 -20
  25. package/tsconfig.json +4 -4
  26. package/lib/cjs/error.js +0 -46
  27. package/lib/cjs/error.js.map +0 -1
  28. package/lib/cjs/index.js +0 -594
  29. package/lib/cjs/index.js.map +0 -1
  30. package/lib/cjs/protocol.js +0 -21
  31. package/lib/cjs/protocol.js.map +0 -1
  32. package/lib/cjs/transport.js +0 -269
  33. package/lib/cjs/transport.js.map +0 -1
  34. package/lib/cjs/util.js +0 -264
  35. package/lib/cjs/util.js.map +0 -1
  36. package/lib/esm/error.js.map +0 -1
  37. package/lib/esm/index.js.map +0 -1
  38. package/lib/esm/protocol.js +0 -15
  39. package/lib/esm/protocol.js.map +0 -1
  40. package/lib/esm/transport.js.map +0 -1
  41. package/lib/esm/util.js.map +0 -1
  42. package/lib/ts/error.d.ts.map +0 -1
  43. package/lib/ts/index.d.ts.map +0 -1
  44. package/lib/ts/protocol.d.ts +0 -80
  45. package/lib/ts/protocol.d.ts.map +0 -1
  46. package/lib/ts/transport.d.ts.map +0 -1
  47. package/lib/ts/util.d.ts +0 -21
  48. package/lib/ts/util.d.ts.map +0 -1
  49. package/src/error.ts +0 -48
  50. package/src/index.ts +0 -709
  51. package/src/protocol.ts +0 -129
  52. package/src/transport.ts +0 -337
  53. package/src/util.ts +0 -300
  54. /package/lib/{ts/error.d.ts → error.d.ts} +0 -0
@@ -3,8 +3,6 @@ import type * as monaco from 'monaco-editor';
3
3
  import { Transport } from './transport.js';
4
4
  import { ProgressPayload } from './protocol.js';
5
5
  import type { LspError } from './error.js';
6
- export type * from './protocol.js';
7
- export * from './transport.js';
8
6
  type Monaco = typeof monaco;
9
7
  export type ClientEvent = {
10
8
  type: 'initialized';
@@ -42,6 +40,7 @@ export declare class LspMonacoClient {
42
40
  private initialized;
43
41
  private eventHandlers;
44
42
  private syncKind;
43
+ private syncChange;
45
44
  private readonly MARKER_OWNER;
46
45
  /** Construct a Monaco LSP client bound to an endpoint */
47
46
  constructor(endpoint: Transport, options: MonacoLspClientOptions);
@@ -57,6 +56,16 @@ export declare class LspMonacoClient {
57
56
  dispose(): Promise<void>;
58
57
  /** Register Monaco features based on server-reported capabilities */
59
58
  private applyServerCapabilities;
59
+ /** textDocument + position params for the current model/position */
60
+ private posParams;
61
+ /** Send a cancellable LSP request, returning `fallback` on cancellation/error */
62
+ private ask;
63
+ /** Register a Monaco provider built from the active monaco instance */
64
+ private register;
65
+ /** Build a position-based location resolver for definition-like providers */
66
+ private location;
67
+ /** Wire navigation, signature, symbol, folding, rename and code-action providers */
68
+ private registerLanguageFeatures;
60
69
  /** Register hover provider backed by the LSP server */
61
70
  private registerHoverProvider;
62
71
  /** Register Monaco completion provider backed by the LSP server */
@@ -67,7 +76,7 @@ export declare class LspMonacoClient {
67
76
  private registerRangeFormattingProvider;
68
77
  /** Register on-type formatting provider backed by the LSP server */
69
78
  private registerOnTypeFormattingProvider;
70
- /** Send textDocument/didChange according to server sync kind */
79
+ /** Send textDocument/didChange for the changed model according to server sync kind */
71
80
  private handleContentChange;
72
81
  /** Handle model open/close and send didOpen/didClose notifications */
73
82
  private handleModelChange;
@@ -75,4 +84,5 @@ export declare class LspMonacoClient {
75
84
  private wireDiagnostics;
76
85
  private static CAPABILITIES;
77
86
  }
78
- //# sourceMappingURL=index.d.ts.map
87
+ export {};
88
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
- import { toMonacoCompletionItem, toLspPosition, toLspRange, toLspCompletionItem, mergeResolvedCompletionItem, toMonacoMarkers, toMonacoTextEdits, lspHoverToMonaco, } from './util.js';
1
+ import { toMonacoCompletionItem, toLspPosition, toLspRange, toLspCompletionItem, mergeResolvedCompletionItem, toMonacoMarkers, toMonacoTextEdits, lspHoverToMonaco, toMonacoLocations, toMonacoLocation, toMonacoHighlights, toMonacoSignatureHelp, toMonacoSymbols, toMonacoFoldingRanges, toMonacoWorkspaceEdit, toMonacoRenameLocation, toMonacoCodeActions, toMonacoCodeAction, getLspCodeAction, toLspDiagnostics, } from './transform.js';
2
2
  import { LspTransport } from './transport.js';
3
- export * from './transport.js';
4
3
  export class LspMonacoClient {
5
4
  options;
6
5
  static CLIENT_NAME = 'monaco-lsp-bridge';
@@ -13,6 +12,7 @@ export class LspMonacoClient {
13
12
  initialized = false;
14
13
  eventHandlers = new Set();
15
14
  syncKind = 0; // 0=None, 1=Full, 2=Incremental
15
+ syncChange = false; // whether the server wants didChange notifications
16
16
  MARKER_OWNER = 'lsp-diagnostics';
17
17
  /** Construct a Monaco LSP client bound to an endpoint */
18
18
  constructor(endpoint, options) {
@@ -57,15 +57,15 @@ export class LspMonacoClient {
57
57
  /** Initialize the LSP server connection and capabilities */
58
58
  async initialize() {
59
59
  try {
60
- const init = await this.binding.sendRequest('initialize', this.options.initialParams ?? {
61
- // @ts-ignore
62
- processId: typeof process !== 'undefined' ? process.pid : null,
60
+ const params = this.options.initialParams ?? {
61
+ processId: globalThis.process?.pid ?? null,
63
62
  rootUri: null,
64
63
  clientInfo: { name: LspMonacoClient.CLIENT_NAME, version: LspMonacoClient.CLIENT_VERSION },
65
64
  locale: typeof navigator !== 'undefined' ? navigator.language : 'en-US',
66
65
  capabilities: LspMonacoClient.CAPABILITIES,
67
66
  // Omit workspaceFolders (we advertise false)
68
- });
67
+ };
68
+ const init = await this.binding.sendRequest('initialize', params);
69
69
  if (!init.cancelled && init.result?.capabilities) {
70
70
  this.initialized = true;
71
71
  this.emit({ type: 'initialized', capabilities: init.result.capabilities });
@@ -130,13 +130,11 @@ export class LspMonacoClient {
130
130
  const enableOpenClose = typeof sync === 'object' ? !!sync.openClose : sync !== undefined && sync !== 0;
131
131
  // Change supported for Full/Incremental
132
132
  const enableChange = this.syncKind === 1 || this.syncKind === 2;
133
+ this.syncChange = enableChange;
133
134
  if (enableOpenClose) {
134
135
  this.handleModelChange({ oldModelUrl: null, newModelUrl: this.editor.getModel()?.uri ?? null });
135
136
  this.binding.addDisposable(this.editor.onDidChangeModel((e) => this.handleModelChange(e)));
136
137
  }
137
- if (enableChange) {
138
- this.binding.addDisposable(this.editor.onDidChangeModelContent((e) => this.handleContentChange(e)));
139
- }
140
138
  if (caps.completionProvider)
141
139
  this.registerCompletionProvider(caps.completionProvider);
142
140
  if (caps.hoverProvider)
@@ -147,9 +145,93 @@ export class LspMonacoClient {
147
145
  this.registerRangeFormattingProvider();
148
146
  if (caps.documentOnTypeFormattingProvider)
149
147
  this.registerOnTypeFormattingProvider(caps.documentOnTypeFormattingProvider);
148
+ this.registerLanguageFeatures(caps);
150
149
  // Listen for diagnostics
151
150
  this.wireDiagnostics();
152
151
  }
152
+ // ---------------- Provider helpers ----------------
153
+ /** textDocument + position params for the current model/position */
154
+ posParams(model, position) {
155
+ return { textDocument: { uri: model.uri.toString() }, position: toLspPosition(position) };
156
+ }
157
+ /** Send a cancellable LSP request, returning `fallback` on cancellation/error */
158
+ ask(token, method, params, fallback) {
159
+ return withCancellation(token, (p) => this.binding.sendRequest(method, params, p), fallback);
160
+ }
161
+ /** Register a Monaco provider built from the active monaco instance */
162
+ register(fn) {
163
+ if (this.monaco)
164
+ this.binding.addDisposable(fn(this.monaco));
165
+ }
166
+ /** Build a position-based location resolver for definition-like providers */
167
+ location(method) {
168
+ return (model, position, token) => this.ask(token, method, this.posParams(model, position), null).then((r) => toMonacoLocations(this.monaco, r));
169
+ }
170
+ /** Wire navigation, signature, symbol, folding, rename and code-action providers */
171
+ registerLanguageFeatures(caps) {
172
+ const sel = this.options.languageSelector;
173
+ if (caps.definitionProvider)
174
+ this.register((m) => m.languages.registerDefinitionProvider(sel, { provideDefinition: this.location('textDocument/definition') }));
175
+ if (caps.typeDefinitionProvider)
176
+ this.register((m) => m.languages.registerTypeDefinitionProvider(sel, {
177
+ provideTypeDefinition: this.location('textDocument/typeDefinition'),
178
+ }));
179
+ if (caps.implementationProvider)
180
+ this.register((m) => m.languages.registerImplementationProvider(sel, {
181
+ provideImplementation: this.location('textDocument/implementation'),
182
+ }));
183
+ if (caps.declarationProvider)
184
+ this.register((m) => m.languages.registerDeclarationProvider(sel, { provideDeclaration: this.location('textDocument/declaration') }));
185
+ if (caps.referencesProvider)
186
+ this.register((m) => m.languages.registerReferenceProvider(sel, {
187
+ provideReferences: (model, position, context, token) => this.ask(token, 'textDocument/references', { ...this.posParams(model, position), context: { includeDeclaration: context.includeDeclaration } }, null).then((r) => (r ?? []).map((loc) => toMonacoLocation(m, loc))),
188
+ }));
189
+ if (caps.documentHighlightProvider)
190
+ this.register((m) => m.languages.registerDocumentHighlightProvider(sel, {
191
+ provideDocumentHighlights: (model, position, token) => this.ask(token, 'textDocument/documentHighlight', this.posParams(model, position), null).then((r) => r ? toMonacoHighlights(m, r) : []),
192
+ }));
193
+ if (caps.signatureHelpProvider) {
194
+ const sig = caps.signatureHelpProvider;
195
+ this.register((m) => m.languages.registerSignatureHelpProvider(sel, {
196
+ signatureHelpTriggerCharacters: sig.triggerCharacters,
197
+ signatureHelpRetriggerCharacters: sig.retriggerCharacters,
198
+ provideSignatureHelp: (model, position, token) => this.ask(token, 'textDocument/signatureHelp', this.posParams(model, position), null).then((r) => r ? { value: toMonacoSignatureHelp(r), dispose() { } } : null),
199
+ }));
200
+ }
201
+ if (caps.documentSymbolProvider)
202
+ this.register((m) => m.languages.registerDocumentSymbolProvider(sel, {
203
+ provideDocumentSymbols: (model, token) => this.ask(token, 'textDocument/documentSymbol', { textDocument: { uri: model.uri.toString() } }, null).then((r) => (r ? toMonacoSymbols(r) : [])),
204
+ }));
205
+ if (caps.foldingRangeProvider)
206
+ this.register((m) => m.languages.registerFoldingRangeProvider(sel, {
207
+ provideFoldingRanges: (model, _ctx, token) => this.ask(token, 'textDocument/foldingRange', { textDocument: { uri: model.uri.toString() } }, null).then((r) => (r ? toMonacoFoldingRanges(m, r) : [])),
208
+ }));
209
+ if (caps.renameProvider) {
210
+ const prepare = typeof caps.renameProvider === 'object' && !!caps.renameProvider.prepareProvider;
211
+ this.register((m) => m.languages.registerRenameProvider(sel, {
212
+ provideRenameEdits: (model, position, newName, token) => this.ask(token, 'textDocument/rename', { ...this.posParams(model, position), newName }, null).then((r) => r ? toMonacoWorkspaceEdit(m, r) : { edits: [], rejectReason: 'The element cannot be renamed.' }),
213
+ resolveRenameLocation: prepare
214
+ ? (model, position, token) => this.ask(token, 'textDocument/prepareRename', this.posParams(model, position), null).then((r) => toMonacoRenameLocation(m, model, position, r))
215
+ : undefined,
216
+ }));
217
+ }
218
+ if (caps.codeActionProvider) {
219
+ const resolve = typeof caps.codeActionProvider === 'object' && !!caps.codeActionProvider.resolveProvider;
220
+ this.register((m) => m.languages.registerCodeActionProvider(sel, {
221
+ provideCodeActions: (model, range, context, token) => this.ask(token, 'textDocument/codeAction', {
222
+ textDocument: { uri: model.uri.toString() },
223
+ range: toLspRange(range),
224
+ context: {
225
+ diagnostics: toLspDiagnostics(m, context.markers),
226
+ ...(context.only ? { only: [context.only] } : {}),
227
+ },
228
+ }, null).then((r) => ({ actions: r ? toMonacoCodeActions(m, r) : [], dispose() { } })),
229
+ resolveCodeAction: resolve
230
+ ? (action, token) => this.ask(token, 'codeAction/resolve', getLspCodeAction(action) ?? { title: action.title }, null).then((r) => (r ? toMonacoCodeAction(m, r) : action))
231
+ : undefined,
232
+ }));
233
+ }
234
+ }
153
235
  /** Register hover provider backed by the LSP server */
154
236
  registerHoverProvider() {
155
237
  const monaco = this.monaco;
@@ -172,11 +254,10 @@ export class LspMonacoClient {
172
254
  : undefined;
173
255
  const provideCompletionItems = (model, position, context, token) => withCancellation(token, async (p) => {
174
256
  const lspContext = {
175
- triggerKind: context.triggerKind + 1, // Monaco is 0-based, LSP is 1-based
257
+ // Monaco trigger kind is 0-based, LSP is 1-based
258
+ triggerKind: (context.triggerKind + 1),
259
+ ...(context.triggerCharacter ? { triggerCharacter: context.triggerCharacter } : {}),
176
260
  };
177
- if (context.triggerCharacter) {
178
- lspContext.triggerCharacter = context.triggerCharacter;
179
- }
180
261
  return this.binding.sendRequest('textDocument/completion', {
181
262
  textDocument: { uri: model.uri.toString() },
182
263
  position: toLspPosition(position),
@@ -186,7 +267,7 @@ export class LspMonacoClient {
186
267
  if (!r)
187
268
  return { suggestions: [] };
188
269
  const items = Array.isArray(r) ? r : (r?.items ?? []);
189
- return { suggestions: items.map((x) => toMonacoCompletionItem(monaco, x)) };
270
+ return { suggestions: items.map((x) => toMonacoCompletionItem(monaco, model, position, x)) };
190
271
  });
191
272
  this.binding.addDisposable(monaco.languages.registerCompletionItemProvider(this.options.languageSelector, {
192
273
  triggerCharacters: opts.triggerCharacters,
@@ -236,14 +317,11 @@ export class LspMonacoClient {
236
317
  }));
237
318
  }
238
319
  // ---------------- Editor event handlers ----------------
239
- /** Send textDocument/didChange according to server sync kind */
240
- handleContentChange(e) {
241
- const model = this.editor?.getModel();
242
- if (!model)
243
- return;
320
+ /** Send textDocument/didChange for the changed model according to server sync kind */
321
+ handleContentChange(model, e) {
322
+ // Read uri/version from the model that actually changed (avoids editor-model races)
244
323
  const uri = model.uri.toString();
245
324
  const version = model.getVersionId();
246
- // Respect TextDocumentSyncKind
247
325
  let contentChanges;
248
326
  if (this.syncKind === 1) {
249
327
  // Full: send entire text
@@ -309,6 +387,10 @@ export class LspMonacoClient {
309
387
  },
310
388
  });
311
389
  this.openDocuments.add(newUri);
390
+ // Stream changes for this specific model when the server requests sync
391
+ if (this.syncChange) {
392
+ this.binding.addDisposable(newModel.onDidChangeContent((e) => this.handleContentChange(newModel, e)));
393
+ }
312
394
  }
313
395
  /** Listen for publishDiagnostics and update Monaco markers */
314
396
  wireDiagnostics() {
@@ -573,4 +655,4 @@ const withCancellation = async (token, f, cancelled = null) => {
573
655
  off.dispose();
574
656
  }
575
657
  };
576
- //# sourceMappingURL=index.js.map
658
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA,oBAAY,YAAY;IAEtB,UAAU,SAAS;IACnB,cAAc,SAAS;IACvB,cAAc,SAAS;IACvB,aAAa,SAAS;IACtB,aAAa,SAAS;IAGtB,eAAe,SAAS;IAGxB,gBAAgB,SAAS;IACzB,eAAe,SAAS;IACxB,eAAe,SAAS;IAGxB,OAAO,OAAO;IACd,QAAQ,OAAO;CAChB;AAED,MAAM,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,CAAA;AAE7E,qBAAa,QAAS,SAAQ,KAAK;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,OAAO,CAAA;gBACF,KAAK,EAAE,aAAa;CAMjC;AAED,eAAO,MAAM,mBAAmB,GAAI,GAAG,OAAO,YAI2D,CAAA;AAEzG,eAAO,MAAM,UAAU,GAAI,GAAG,GAAG,KAAG,QAQnC,CAAA"}
@@ -30,11 +30,15 @@ export const isCancellationError = (e) => typeof e === 'object' &&
30
30
  e !== null &&
31
31
  'code' in e &&
32
32
  (e.code === LspErrorCode.RequestCancelled || e.code === LspErrorCode.ServerCancelled);
33
- export const toLspError = (e) => e instanceof LspError
34
- ? e
35
- : new LspError({
33
+ export const toLspError = (e) => {
34
+ if (e instanceof LspError)
35
+ return e;
36
+ if (typeof e === 'string')
37
+ return new LspError({ code: LspErrorCode.InternalError, message: e });
38
+ return new LspError({
36
39
  code: Number(e?.code ?? LspErrorCode.InternalError),
37
40
  message: String(e?.message ?? 'Error'),
38
41
  data: e?.data,
39
42
  });
43
+ };
40
44
  //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,YAmBX;AAnBD,WAAY,YAAY;IACtB,gDAAgD;IAChD,gEAAmB,CAAA;IACnB,wEAAuB,CAAA;IACvB,wEAAuB,CAAA;IACvB,sEAAsB,CAAA;IACtB,sEAAsB,CAAA;IAEtB,0DAA0D;IAC1D,0EAAwB,CAAA;IAExB,yCAAyC;IACzC,4EAAyB,CAAA;IACzB,0EAAwB,CAAA;IACxB,0EAAwB,CAAA;IAExB,yEAAyE;IACzE,wDAAc,CAAA;IACd,0DAAe,CAAA;AACjB,CAAC,EAnBW,YAAY,KAAZ,YAAY,QAmBvB;AAID,MAAM,OAAO,QAAS,SAAQ,KAAK;IACjC,IAAI,CAAQ;IACZ,IAAI,CAAU;IACd,YAAY,KAAoB;QAC9B,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACpB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;QACtB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;QACtB,IAAI,CAAC,IAAI,GAAG,UAAU,CAAA;IACxB,CAAC;CACF;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAU,EAAE,EAAE,CAChD,OAAO,CAAC,KAAK,QAAQ;IACrB,CAAC,KAAK,IAAI;IACV,MAAM,IAAK,CAAS;IACpB,CAAE,CAAS,CAAC,IAAI,KAAK,YAAY,CAAC,gBAAgB,IAAK,CAAS,CAAC,IAAI,KAAK,YAAY,CAAC,eAAe,CAAC,CAAA;AAEzG,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAM,EAAY,EAAE;IAC7C,IAAI,CAAC,YAAY,QAAQ;QAAE,OAAO,CAAC,CAAA;IACnC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,IAAI,QAAQ,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAA;IAChG,OAAO,IAAI,QAAQ,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,YAAY,CAAC,aAAa,CAAC;QACnD,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,IAAI,OAAO,CAAC;QACtC,IAAI,EAAE,CAAC,EAAE,IAAI;KACd,CAAC,CAAA;AACJ,CAAC,CAAA"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ export type * from './protocol.js';
2
+ export * from './transport.js';
3
+ export * from './client.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,eAAe,CAAA;AAClC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA"}
package/lib/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export * from './transport.js';
2
+ export * from './client.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA"}
@@ -0,0 +1,102 @@
1
+ import type { DidChangeTextDocumentNotification, DidChangeTextDocumentParams, DidCloseTextDocumentParams, DidCloseTextDocumentNotification, DidOpenTextDocumentNotification, DidOpenTextDocumentParams, CompletionRequest, CompletionParams, InitializeRequest, InitializeParams, InitializeResult, CompletionList, CompletionItem, CompletionResolveRequest, ProgressToken, PublishDiagnosticsNotification, PublishDiagnosticsParams, LogMessageNotification, LogMessageParams, DocumentFormattingRequest, DocumentFormattingParams, DocumentRangeFormattingRequest, DocumentRangeFormattingParams, DocumentOnTypeFormattingRequest, DocumentOnTypeFormattingParams, TextEdit, HoverRequest, HoverParams, Hover, DefinitionRequest, DefinitionParams, TypeDefinitionRequest, TypeDefinitionParams, ImplementationRequest, ImplementationParams, DeclarationRequest, DeclarationParams, ReferencesRequest, ReferenceParams, DocumentHighlightRequest, DocumentHighlightParams, DocumentHighlight, SignatureHelpRequest, SignatureHelpParams, SignatureHelp, DocumentSymbolRequest, DocumentSymbolParams, DocumentSymbol, SymbolInformation, FoldingRangeRequest, FoldingRangeParams, FoldingRange, PrepareRenameRequest, PrepareRenameParams, PrepareRenameResult, RenameRequest, RenameParams, WorkspaceEdit, CodeActionRequest, CodeActionParams, CodeActionResolveRequest, CodeAction, Command, Definition, Location, LocationLink } from 'vscode-languageserver-protocol';
2
+ import { LspErrorShape } from './error.js';
3
+ export declare const JSONRPC_VERSION = "2.0";
4
+ export type JSONRPC = typeof JSONRPC_VERSION;
5
+ export type Id = number | string;
6
+ export declare const isId: (id: unknown) => id is Id;
7
+ type RequestMapValue<P, R> = {
8
+ fields: {
9
+ params: P;
10
+ };
11
+ response: R;
12
+ };
13
+ export interface RequestMap {
14
+ [InitializeRequest.method]: RequestMapValue<InitializeParams, InitializeResult>;
15
+ [CompletionResolveRequest.method]: RequestMapValue<CompletionItem, CompletionItem>;
16
+ [CompletionRequest.method]: RequestMapValue<CompletionParams, CompletionList | CompletionItem[] | null>;
17
+ [DocumentFormattingRequest.method]: RequestMapValue<DocumentFormattingParams, TextEdit[] | null>;
18
+ [DocumentRangeFormattingRequest.method]: RequestMapValue<DocumentRangeFormattingParams, TextEdit[] | null>;
19
+ [DocumentOnTypeFormattingRequest.method]: RequestMapValue<DocumentOnTypeFormattingParams, TextEdit[] | null>;
20
+ [HoverRequest.method]: RequestMapValue<HoverParams, Hover | null>;
21
+ [DefinitionRequest.method]: RequestMapValue<DefinitionParams, Definition | LocationLink[] | null>;
22
+ [TypeDefinitionRequest.method]: RequestMapValue<TypeDefinitionParams, Definition | LocationLink[] | null>;
23
+ [ImplementationRequest.method]: RequestMapValue<ImplementationParams, Definition | LocationLink[] | null>;
24
+ [DeclarationRequest.method]: RequestMapValue<DeclarationParams, Definition | LocationLink[] | null>;
25
+ [ReferencesRequest.method]: RequestMapValue<ReferenceParams, Location[] | null>;
26
+ [DocumentHighlightRequest.method]: RequestMapValue<DocumentHighlightParams, DocumentHighlight[] | null>;
27
+ [SignatureHelpRequest.method]: RequestMapValue<SignatureHelpParams, SignatureHelp | null>;
28
+ [DocumentSymbolRequest.method]: RequestMapValue<DocumentSymbolParams, DocumentSymbol[] | SymbolInformation[] | null>;
29
+ [FoldingRangeRequest.method]: RequestMapValue<FoldingRangeParams, FoldingRange[] | null>;
30
+ [PrepareRenameRequest.method]: RequestMapValue<PrepareRenameParams, PrepareRenameResult | null>;
31
+ [RenameRequest.method]: RequestMapValue<RenameParams, WorkspaceEdit | null>;
32
+ [CodeActionRequest.method]: RequestMapValue<CodeActionParams, (Command | CodeAction)[] | null>;
33
+ [CodeActionResolveRequest.method]: RequestMapValue<CodeAction, CodeAction>;
34
+ shutdown: RequestMapValue<null, null>;
35
+ }
36
+ export interface ClientNotifMap {
37
+ [DidOpenTextDocumentNotification.method]: RequestMapValue<DidOpenTextDocumentParams, void>;
38
+ [DidChangeTextDocumentNotification.method]: RequestMapValue<DidChangeTextDocumentParams, void>;
39
+ [DidCloseTextDocumentNotification.method]: RequestMapValue<DidCloseTextDocumentParams, void>;
40
+ '$/cancelRequest': RequestMapValue<{
41
+ id: Id;
42
+ }, void>;
43
+ exit: RequestMapValue<null, void>;
44
+ }
45
+ export interface ServerNotifMap {
46
+ '$/progress': RequestMapValue<{
47
+ token: ProgressToken;
48
+ value: any;
49
+ }, void>;
50
+ [PublishDiagnosticsNotification.method]: RequestMapValue<PublishDiagnosticsParams, void>;
51
+ [LogMessageNotification.method]: RequestMapValue<LogMessageParams, void>;
52
+ }
53
+ export interface JsonRpcMessage {
54
+ jsonrpc: JSONRPC;
55
+ }
56
+ export interface JsonRpcRequest<K, T> extends JsonRpcMessage {
57
+ id: Id;
58
+ params: T;
59
+ method: K;
60
+ }
61
+ export type JsonRpcResponse<T> = (JsonRpcMessage & {
62
+ id: Id;
63
+ result: T;
64
+ error?: undefined;
65
+ }) | (JsonRpcMessage & {
66
+ id: Id;
67
+ result?: undefined;
68
+ error: LspErrorShape;
69
+ });
70
+ export interface JsonRpcNotification<K, T> extends JsonRpcMessage {
71
+ method: K;
72
+ params: T;
73
+ }
74
+ export declare const makeRequest: <K extends keyof RequestMap>(id: Id, method: K, params: RequestMap[K]["fields"]["params"]) => JsonRpcRequest<K, RequestMap[K]["fields"]["params"]>;
75
+ export declare const makeNotification: <K extends keyof ClientNotifMap>(method: K, params: ClientNotifMap[K]["fields"]["params"]) => JsonRpcNotification<K, ClientNotifMap[K]["fields"]["params"]>;
76
+ export type ProgressPayload<T = any> = {
77
+ token: ProgressToken;
78
+ value: T;
79
+ };
80
+ export type WorkDoneProgressBegin = {
81
+ kind: 'begin';
82
+ title: string;
83
+ cancellable?: boolean;
84
+ message?: string;
85
+ percentage?: number;
86
+ };
87
+ export type WorkDoneProgressReport = {
88
+ kind: 'report';
89
+ cancellable?: boolean;
90
+ message?: string;
91
+ percentage?: number;
92
+ };
93
+ export type WorkDoneProgressEnd = {
94
+ kind: 'end';
95
+ message?: string;
96
+ };
97
+ export declare const isRpcMessage: (msg: unknown) => msg is JsonRpcMessage;
98
+ type RequestMapType = RequestMap & ClientNotifMap & ServerNotifMap;
99
+ export declare const isRpcRequestType: <K extends keyof RequestMapType>(method: K, msg: unknown) => msg is JsonRpcRequest<K, RequestMapType[K]["fields"]["params"]>;
100
+ export declare const isRpcResponseType: <K extends keyof RequestMapType = keyof RequestMapType>(msg: unknown, method?: K) => msg is JsonRpcResponse<RequestMapType[K]["response"]>;
101
+ export {};
102
+ //# sourceMappingURL=protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ export const JSONRPC_VERSION = '2.0';
2
+ export const isId = (id) => typeof id === 'number' || typeof id === 'string';
3
+ export const makeRequest = (id, method, params) => ({
4
+ jsonrpc: JSONRPC_VERSION,
5
+ id,
6
+ method,
7
+ params,
8
+ });
9
+ export const makeNotification = (method, params) => ({
10
+ jsonrpc: JSONRPC_VERSION,
11
+ method,
12
+ params,
13
+ });
14
+ export const isRpcMessage = (msg) => {
15
+ if (typeof msg !== 'object' || msg === null)
16
+ return false;
17
+ if (!('jsonrpc' in msg) || msg.jsonrpc !== JSONRPC_VERSION)
18
+ return false;
19
+ return true;
20
+ };
21
+ export const isRpcRequestType = (method, msg) => {
22
+ if (!isRpcMessage(msg))
23
+ return false;
24
+ if (msg.method !== method)
25
+ return false;
26
+ return true;
27
+ };
28
+ export const isRpcResponseType = (msg, method) => {
29
+ if (!isRpcMessage(msg))
30
+ return false;
31
+ if (!Object.prototype.hasOwnProperty.call(msg, 'id') || !isId(msg.id))
32
+ return false;
33
+ if (method && msg.method !== method)
34
+ return false;
35
+ return true;
36
+ };
37
+ //# sourceMappingURL=protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAuEA,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAA;AAIpC,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,EAAW,EAAY,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ,CAAA;AAgE/F,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,EAAM,EACN,MAAS,EACT,MAAyC,EACa,EAAE,CAAC,CAAC;IAC1D,OAAO,EAAE,eAAe;IACxB,EAAE;IACF,MAAM;IACN,MAAM;CACP,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,MAAS,EACT,MAA6C,EACkB,EAAE,CAAC,CAAC;IACnE,OAAO,EAAE,eAAe;IACxB,MAAM;IACN,MAAM;CACP,CAAC,CAAA;AA2BF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAY,EAAyB,EAAE;IAClE,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAA;IACzD,IAAI,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,KAAK,eAAe;QAAE,OAAO,KAAK,CAAA;IACxE,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAGD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,MAAS,EACT,GAAY,EACqD,EAAE;IACnE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAA;IACpC,IAAK,GAAW,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO,KAAK,CAAA;IAChD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,GAAY,EACZ,MAAU,EAC6C,EAAE;IACzD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAA;IACpC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,GAAW,CAAC,EAAE,CAAC;QAAE,OAAO,KAAK,CAAA;IAC5F,IAAI,MAAM,IAAK,GAAW,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO,KAAK,CAAA;IAC1D,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
@@ -0,0 +1,44 @@
1
+ import type { CompletionItem, TextEdit, Range, Position, Diagnostic, Hover, Definition, Location, LocationLink, DocumentHighlight, SignatureHelp, DocumentSymbol, SymbolInformation, FoldingRange, WorkspaceEdit, PrepareRenameResult, CodeAction, Command } from 'vscode-languageserver-protocol';
2
+ import type * as monaco from 'monaco-editor';
3
+ /** Convert LSP CompletionItem to Monaco and stash original */
4
+ export declare const toMonacoCompletionItem: (monacoApi: typeof monaco, model: monaco.editor.ITextModel, position: monaco.Position, item: CompletionItem) => monaco.languages.CompletionItem;
5
+ /** Convert Monaco CompletionItem to LSP, preferring original */
6
+ export declare const toLspCompletionItem: (item: monaco.languages.CompletionItem) => CompletionItem;
7
+ /** Merge resolved LSP fields into Monaco item */
8
+ export declare const mergeResolvedCompletionItem: (monacoItem: monaco.languages.CompletionItem, resolvedLspItem: CompletionItem) => monaco.languages.CompletionItem;
9
+ /** Convert Monaco IRange to LSP Range (1-based → 0-based) */
10
+ export declare const toLspRange: (range: monaco.IRange) => Range;
11
+ /** Convert LSP Position to Monaco IPosition */
12
+ export declare const toMonacoPosition: (position: Position) => monaco.IPosition;
13
+ /** Convert Monaco IPosition to LSP Position */
14
+ export declare const toLspPosition: (position: monaco.IPosition) => Position;
15
+ /** Map LSP diagnostics to Monaco markers */
16
+ export declare const toMonacoMarkers: (monacoApi: typeof monaco, diagnostics: Diagnostic[]) => monaco.editor.IMarkerData[];
17
+ /** Map LSP TextEdits to Monaco edits */
18
+ export declare const toMonacoTextEdits: (edits: TextEdit[]) => monaco.languages.TextEdit[];
19
+ /** Convert LSP Hover to Monaco Hover */
20
+ export declare const lspHoverToMonaco: (hover: Hover) => monaco.languages.Hover;
21
+ /** Convert a single LSP Location to Monaco */
22
+ export declare const toMonacoLocation: (monacoApi: typeof monaco, loc: Location) => monaco.languages.Location;
23
+ /** Convert an LSP definition result (Location, Location[] or LocationLink[]) to Monaco */
24
+ export declare const toMonacoLocations: (monacoApi: typeof monaco, result: Definition | LocationLink[] | null) => monaco.languages.Location[] | monaco.languages.LocationLink[];
25
+ /** Convert LSP document highlights to Monaco (kind is 1-based -> 0-based) */
26
+ export declare const toMonacoHighlights: (monacoApi: typeof monaco, highlights: DocumentHighlight[]) => monaco.languages.DocumentHighlight[];
27
+ /** Convert LSP signature help to Monaco */
28
+ export declare const toMonacoSignatureHelp: (help: SignatureHelp) => monaco.languages.SignatureHelp;
29
+ /** Convert LSP document symbols (hierarchical or flat) to Monaco (kind 1-based -> 0-based) */
30
+ export declare const toMonacoSymbols: (symbols: (DocumentSymbol | SymbolInformation)[]) => monaco.languages.DocumentSymbol[];
31
+ /** Convert LSP folding ranges to Monaco (lines 0-based -> 1-based) */
32
+ export declare const toMonacoFoldingRanges: (monacoApi: typeof monaco, ranges: FoldingRange[]) => monaco.languages.FoldingRange[];
33
+ /** Convert an LSP WorkspaceEdit to Monaco (text edits only; file operations are skipped) */
34
+ export declare const toMonacoWorkspaceEdit: (monacoApi: typeof monaco, edit: WorkspaceEdit) => monaco.languages.WorkspaceEdit;
35
+ /** Convert an LSP prepareRename result to a Monaco rename location (or rejection) */
36
+ export declare const toMonacoRenameLocation: (monacoApi: typeof monaco, model: monaco.editor.ITextModel, position: monaco.Position, result: PrepareRenameResult | null) => monaco.languages.RenameLocation & monaco.languages.Rejection;
37
+ export declare const getLspCodeAction: (a: monaco.languages.CodeAction) => CodeAction | undefined;
38
+ /** Convert a single LSP code action or command to Monaco */
39
+ export declare const toMonacoCodeAction: (monacoApi: typeof monaco, a: Command | CodeAction) => monaco.languages.CodeAction;
40
+ /** Convert LSP code action results to Monaco */
41
+ export declare const toMonacoCodeActions: (monacoApi: typeof monaco, actions: (Command | CodeAction)[]) => monaco.languages.CodeAction[];
42
+ /** Map Monaco markers back to LSP diagnostics (lossy; used for codeAction context) */
43
+ export declare const toLspDiagnostics: (monacoApi: typeof monaco, markers: monaco.editor.IMarkerData[]) => Diagnostic[];
44
+ //# sourceMappingURL=transform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"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"}