monaco-languageclient 0.12.0 → 0.13.0-next.10

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 (109) hide show
  1. package/dist/amd/connection.d.ts +15 -14
  2. package/dist/amd/connection.d.ts.map +1 -1
  3. package/dist/amd/connection.js +17 -15
  4. package/dist/amd/connection.js.map +1 -1
  5. package/dist/amd/console-window.js +1 -0
  6. package/dist/amd/console-window.js.map +1 -1
  7. package/dist/amd/disposable.js +2 -1
  8. package/dist/amd/disposable.js.map +1 -1
  9. package/dist/amd/index.js +20 -13
  10. package/dist/amd/index.js.map +1 -1
  11. package/dist/amd/monaco-commands.d.ts +3 -2
  12. package/dist/amd/monaco-commands.d.ts.map +1 -1
  13. package/dist/amd/monaco-commands.js +4 -6
  14. package/dist/amd/monaco-commands.js.map +1 -1
  15. package/dist/amd/monaco-converter.d.ts +30 -17
  16. package/dist/amd/monaco-converter.d.ts.map +1 -1
  17. package/dist/amd/monaco-converter.js +204 -108
  18. package/dist/amd/monaco-converter.js.map +1 -1
  19. package/dist/amd/monaco-diagnostic-collection.d.ts +9 -8
  20. package/dist/amd/monaco-diagnostic-collection.d.ts.map +1 -1
  21. package/dist/amd/monaco-diagnostic-collection.js +12 -7
  22. package/dist/amd/monaco-diagnostic-collection.js.map +1 -1
  23. package/dist/amd/monaco-language-client.d.ts +4 -2
  24. package/dist/amd/monaco-language-client.d.ts.map +1 -1
  25. package/dist/amd/monaco-language-client.js +22 -8
  26. package/dist/amd/monaco-language-client.js.map +1 -1
  27. package/dist/amd/monaco-languages.d.ts +9 -4
  28. package/dist/amd/monaco-languages.d.ts.map +1 -1
  29. package/dist/amd/monaco-languages.js +80 -25
  30. package/dist/amd/monaco-languages.js.map +1 -1
  31. package/dist/amd/monaco-services.d.ts +3 -2
  32. package/dist/amd/monaco-services.d.ts.map +1 -1
  33. package/dist/amd/monaco-services.js +9 -8
  34. package/dist/amd/monaco-services.js.map +1 -1
  35. package/dist/amd/monaco-workspace.d.ts +9 -8
  36. package/dist/amd/monaco-workspace.d.ts.map +1 -1
  37. package/dist/amd/monaco-workspace.js +16 -13
  38. package/dist/amd/monaco-workspace.js.map +1 -1
  39. package/dist/amd/services.d.ts +16 -5
  40. package/dist/amd/services.d.ts.map +1 -1
  41. package/dist/amd/services.js +19 -10
  42. package/dist/amd/services.js.map +1 -1
  43. package/dist/amd/vscode-api.d.ts.map +1 -1
  44. package/dist/amd/vscode-api.js +134 -8
  45. package/dist/amd/vscode-api.js.map +1 -1
  46. package/dist/amd/vscode-compatibility.d.ts +2 -0
  47. package/dist/amd/vscode-compatibility.d.ts.map +1 -1
  48. package/lib/connection.d.ts +15 -14
  49. package/lib/connection.d.ts.map +1 -1
  50. package/lib/connection.js +18 -16
  51. package/lib/connection.js.map +1 -1
  52. package/lib/console-window.js +1 -0
  53. package/lib/console-window.js.map +1 -1
  54. package/lib/disposable.js +2 -1
  55. package/lib/disposable.js.map +1 -1
  56. package/lib/index.js +20 -13
  57. package/lib/index.js.map +1 -1
  58. package/lib/monaco-commands.d.ts +3 -2
  59. package/lib/monaco-commands.d.ts.map +1 -1
  60. package/lib/monaco-commands.js +4 -6
  61. package/lib/monaco-commands.js.map +1 -1
  62. package/lib/monaco-converter.d.ts +30 -17
  63. package/lib/monaco-converter.d.ts.map +1 -1
  64. package/lib/monaco-converter.js +204 -112
  65. package/lib/monaco-converter.js.map +1 -1
  66. package/lib/monaco-diagnostic-collection.d.ts +9 -8
  67. package/lib/monaco-diagnostic-collection.d.ts.map +1 -1
  68. package/lib/monaco-diagnostic-collection.js +12 -7
  69. package/lib/monaco-diagnostic-collection.js.map +1 -1
  70. package/lib/monaco-language-client.d.ts +4 -2
  71. package/lib/monaco-language-client.d.ts.map +1 -1
  72. package/lib/monaco-language-client.js +31 -15
  73. package/lib/monaco-language-client.js.map +1 -1
  74. package/lib/monaco-languages.d.ts +9 -4
  75. package/lib/monaco-languages.d.ts.map +1 -1
  76. package/lib/monaco-languages.js +80 -29
  77. package/lib/monaco-languages.js.map +1 -1
  78. package/lib/monaco-services.d.ts +3 -2
  79. package/lib/monaco-services.d.ts.map +1 -1
  80. package/lib/monaco-services.js +9 -12
  81. package/lib/monaco-services.js.map +1 -1
  82. package/lib/monaco-workspace.d.ts +9 -8
  83. package/lib/monaco-workspace.d.ts.map +1 -1
  84. package/lib/monaco-workspace.js +16 -12
  85. package/lib/monaco-workspace.js.map +1 -1
  86. package/lib/services.d.ts +16 -5
  87. package/lib/services.d.ts.map +1 -1
  88. package/lib/services.js +19 -9
  89. package/lib/services.js.map +1 -1
  90. package/lib/vscode-api.d.ts.map +1 -1
  91. package/lib/vscode-api.js +134 -7
  92. package/lib/vscode-api.js.map +1 -1
  93. package/lib/vscode-compatibility.d.ts +2 -0
  94. package/lib/vscode-compatibility.d.ts.map +1 -1
  95. package/package.json +10 -7
  96. package/src/connection.ts +24 -22
  97. package/src/monaco-commands.ts +3 -5
  98. package/src/monaco-converter.ts +252 -160
  99. package/src/monaco-diagnostic-collection.ts +14 -10
  100. package/src/monaco-language-client.ts +25 -15
  101. package/src/monaco-languages.ts +86 -25
  102. package/src/monaco-services.ts +9 -8
  103. package/src/monaco-workspace.ts +23 -21
  104. package/src/services.ts +28 -9
  105. package/src/typings/monaco/index.d.ts +15 -50
  106. package/src/vscode-api.ts +164 -35
  107. package/yarn-error.log +77 -0
  108. package/License.txt +0 -11
  109. package/src/typings/glob-to-regexp/index.d.ts +0 -13
@@ -1,6 +1,7 @@
1
- define(["require", "exports", "vscode-languageserver-protocol", "vscode-languageserver-protocol/lib/utils/is", "./services"], function (require, exports, ls, Is, services_1) {
1
+ define(["require", "exports", "vscode-languageserver-protocol", "vscode-languageserver-protocol/lib/common/utils/is", "./services"], function (require, exports, ls, Is, services_1) {
2
2
  "use strict";
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ProtocolToMonacoConverter = exports.MonacoToProtocolConverter = exports.ProtocolCodeAction = exports.ProtocolCompletionItem = exports.ProtocolCodeLens = exports.ProtocolDocumentLink = void 0;
4
5
  var ProtocolDocumentLink;
5
6
  (function (ProtocolDocumentLink) {
6
7
  function is(item) {
@@ -22,10 +23,20 @@ define(["require", "exports", "vscode-languageserver-protocol", "vscode-language
22
23
  }
23
24
  ProtocolCompletionItem.is = is;
24
25
  })(ProtocolCompletionItem = exports.ProtocolCompletionItem || (exports.ProtocolCompletionItem = {}));
26
+ var ProtocolCodeAction;
27
+ (function (ProtocolCodeAction) {
28
+ function is(item) {
29
+ return !!item && 'data' in item;
30
+ }
31
+ ProtocolCodeAction.is = is;
32
+ })(ProtocolCodeAction = exports.ProtocolCodeAction || (exports.ProtocolCodeAction = {}));
25
33
  function isRangeReplace(v) {
26
34
  return v.insert !== undefined;
27
35
  }
28
36
  class MonacoToProtocolConverter {
37
+ constructor(_monaco) {
38
+ this._monaco = _monaco;
39
+ }
29
40
  asPosition(lineNumber, column) {
30
41
  const line = lineNumber === undefined || lineNumber === null ? undefined : lineNumber - 1;
31
42
  const character = column === undefined || column === null ? undefined : column - 1;
@@ -95,7 +106,8 @@ define(["require", "exports", "vscode-languageserver-protocol", "vscode-language
95
106
  return {
96
107
  documentation: this.asMarkupContent(signatureInformation.documentation),
97
108
  label: signatureInformation.label,
98
- parameters: signatureInformation.parameters.map(paramInfo => this.asParameterInformation(paramInfo))
109
+ parameters: signatureInformation.parameters.map(paramInfo => this.asParameterInformation(paramInfo)),
110
+ activeParameter: signatureInformation.activeParameter
99
111
  };
100
112
  }
101
113
  asParameterInformation(parameterInformation) {
@@ -118,9 +130,9 @@ define(["require", "exports", "vscode-languageserver-protocol", "vscode-language
118
130
  }
119
131
  asSignatureHelpTriggerKind(triggerKind) {
120
132
  switch (triggerKind) {
121
- case monaco.languages.SignatureHelpTriggerKind.ContentChange:
133
+ case this._monaco.languages.SignatureHelpTriggerKind.ContentChange:
122
134
  return services_1.SignatureHelpTriggerKind.ContentChange;
123
- case monaco.languages.SignatureHelpTriggerKind.TriggerCharacter:
135
+ case this._monaco.languages.SignatureHelpTriggerKind.TriggerCharacter:
124
136
  return services_1.SignatureHelpTriggerKind.TriggerCharacter;
125
137
  default:
126
138
  return services_1.SignatureHelpTriggerKind.Invoke;
@@ -128,28 +140,27 @@ define(["require", "exports", "vscode-languageserver-protocol", "vscode-language
128
140
  }
129
141
  asCompletionTriggerKind(triggerKind) {
130
142
  switch (triggerKind) {
131
- case monaco.languages.CompletionTriggerKind.TriggerCharacter:
143
+ case this._monaco.languages.CompletionTriggerKind.TriggerCharacter:
132
144
  return services_1.CompletionTriggerKind.TriggerCharacter;
133
- case monaco.languages.CompletionTriggerKind.TriggerForIncompleteCompletions:
145
+ case this._monaco.languages.CompletionTriggerKind.TriggerForIncompleteCompletions:
134
146
  return services_1.CompletionTriggerKind.TriggerForIncompleteCompletions;
135
147
  default:
136
148
  return services_1.CompletionTriggerKind.Invoked;
137
149
  }
138
150
  }
139
151
  asCompletionItem(item) {
152
+ var _a;
140
153
  const result = { label: item.label };
141
154
  const protocolItem = ProtocolCompletionItem.is(item) ? item : undefined;
142
155
  if (item.detail) {
143
156
  result.detail = item.detail;
144
157
  }
145
- // We only send items back we created. So this can't be something else than
146
- // a string right now.
147
158
  if (item.documentation) {
148
- if (!protocolItem || !protocolItem.documentationFormat) {
159
+ if (typeof item.documentation === 'string') {
149
160
  result.documentation = item.documentation;
150
161
  }
151
162
  else {
152
- result.documentation = this.asDocumentation(protocolItem.documentationFormat, item.documentation);
163
+ result.documentation = this.asDocumentation((_a = protocolItem === null || protocolItem === void 0 ? void 0 : protocolItem.documentationFormat) !== null && _a !== void 0 ? _a : services_1.MarkupKind.Markdown, item.documentation);
153
164
  }
154
165
  }
155
166
  if (item.filterText) {
@@ -190,32 +201,32 @@ define(["require", "exports", "vscode-languageserver-protocol", "vscode-language
190
201
  return original;
191
202
  }
192
203
  switch (value) {
193
- case monaco.languages.CompletionItemKind.Method: return services_1.CompletionItemKind.Method;
194
- case monaco.languages.CompletionItemKind.Function: return services_1.CompletionItemKind.Function;
195
- case monaco.languages.CompletionItemKind.Constructor: return services_1.CompletionItemKind.Constructor;
196
- case monaco.languages.CompletionItemKind.Field: return services_1.CompletionItemKind.Field;
197
- case monaco.languages.CompletionItemKind.Variable: return services_1.CompletionItemKind.Variable;
198
- case monaco.languages.CompletionItemKind.Class: return services_1.CompletionItemKind.Class;
199
- case monaco.languages.CompletionItemKind.Struct: return services_1.CompletionItemKind.Struct;
200
- case monaco.languages.CompletionItemKind.Interface: return services_1.CompletionItemKind.Interface;
201
- case monaco.languages.CompletionItemKind.Module: return services_1.CompletionItemKind.Module;
202
- case monaco.languages.CompletionItemKind.Property: return services_1.CompletionItemKind.Property;
203
- case monaco.languages.CompletionItemKind.Event: return services_1.CompletionItemKind.Event;
204
- case monaco.languages.CompletionItemKind.Operator: return services_1.CompletionItemKind.Operator;
205
- case monaco.languages.CompletionItemKind.Unit: return services_1.CompletionItemKind.Unit;
206
- case monaco.languages.CompletionItemKind.Value: return services_1.CompletionItemKind.Value;
207
- case monaco.languages.CompletionItemKind.Constant: return services_1.CompletionItemKind.Constant;
208
- case monaco.languages.CompletionItemKind.Enum: return services_1.CompletionItemKind.Enum;
209
- case monaco.languages.CompletionItemKind.EnumMember: return services_1.CompletionItemKind.EnumMember;
210
- case monaco.languages.CompletionItemKind.Keyword: return services_1.CompletionItemKind.Keyword;
211
- case monaco.languages.CompletionItemKind.Text: return services_1.CompletionItemKind.Text;
212
- case monaco.languages.CompletionItemKind.Color: return services_1.CompletionItemKind.Color;
213
- case monaco.languages.CompletionItemKind.File: return services_1.CompletionItemKind.File;
214
- case monaco.languages.CompletionItemKind.Reference: return services_1.CompletionItemKind.Reference;
215
- case monaco.languages.CompletionItemKind.Customcolor: return services_1.CompletionItemKind.Color;
216
- case monaco.languages.CompletionItemKind.Folder: return services_1.CompletionItemKind.Folder;
217
- case monaco.languages.CompletionItemKind.TypeParameter: return services_1.CompletionItemKind.TypeParameter;
218
- case monaco.languages.CompletionItemKind.Snippet: return services_1.CompletionItemKind.Snippet;
204
+ case this._monaco.languages.CompletionItemKind.Method: return services_1.CompletionItemKind.Method;
205
+ case this._monaco.languages.CompletionItemKind.Function: return services_1.CompletionItemKind.Function;
206
+ case this._monaco.languages.CompletionItemKind.Constructor: return services_1.CompletionItemKind.Constructor;
207
+ case this._monaco.languages.CompletionItemKind.Field: return services_1.CompletionItemKind.Field;
208
+ case this._monaco.languages.CompletionItemKind.Variable: return services_1.CompletionItemKind.Variable;
209
+ case this._monaco.languages.CompletionItemKind.Class: return services_1.CompletionItemKind.Class;
210
+ case this._monaco.languages.CompletionItemKind.Struct: return services_1.CompletionItemKind.Struct;
211
+ case this._monaco.languages.CompletionItemKind.Interface: return services_1.CompletionItemKind.Interface;
212
+ case this._monaco.languages.CompletionItemKind.Module: return services_1.CompletionItemKind.Module;
213
+ case this._monaco.languages.CompletionItemKind.Property: return services_1.CompletionItemKind.Property;
214
+ case this._monaco.languages.CompletionItemKind.Event: return services_1.CompletionItemKind.Event;
215
+ case this._monaco.languages.CompletionItemKind.Operator: return services_1.CompletionItemKind.Operator;
216
+ case this._monaco.languages.CompletionItemKind.Unit: return services_1.CompletionItemKind.Unit;
217
+ case this._monaco.languages.CompletionItemKind.Value: return services_1.CompletionItemKind.Value;
218
+ case this._monaco.languages.CompletionItemKind.Constant: return services_1.CompletionItemKind.Constant;
219
+ case this._monaco.languages.CompletionItemKind.Enum: return services_1.CompletionItemKind.Enum;
220
+ case this._monaco.languages.CompletionItemKind.EnumMember: return services_1.CompletionItemKind.EnumMember;
221
+ case this._monaco.languages.CompletionItemKind.Keyword: return services_1.CompletionItemKind.Keyword;
222
+ case this._monaco.languages.CompletionItemKind.Text: return services_1.CompletionItemKind.Text;
223
+ case this._monaco.languages.CompletionItemKind.Color: return services_1.CompletionItemKind.Color;
224
+ case this._monaco.languages.CompletionItemKind.File: return services_1.CompletionItemKind.File;
225
+ case this._monaco.languages.CompletionItemKind.Reference: return services_1.CompletionItemKind.Reference;
226
+ case this._monaco.languages.CompletionItemKind.Customcolor: return services_1.CompletionItemKind.Color;
227
+ case this._monaco.languages.CompletionItemKind.Folder: return services_1.CompletionItemKind.Folder;
228
+ case this._monaco.languages.CompletionItemKind.TypeParameter: return services_1.CompletionItemKind.TypeParameter;
229
+ case this._monaco.languages.CompletionItemKind.Snippet: return services_1.CompletionItemKind.Snippet;
219
230
  default: return value + 1;
220
231
  }
221
232
  }
@@ -233,7 +244,7 @@ define(["require", "exports", "vscode-languageserver-protocol", "vscode-language
233
244
  let format = services_1.InsertTextFormat.PlainText;
234
245
  let text;
235
246
  let range;
236
- if (source.insertTextRules !== undefined && (source.insertTextRules & monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet) === 0) {
247
+ if (source.insertTextRules !== undefined && (source.insertTextRules & this._monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet) === 0) {
237
248
  format = services_1.InsertTextFormat.Snippet;
238
249
  text = source.insertText;
239
250
  }
@@ -249,6 +260,7 @@ define(["require", "exports", "vscode-languageserver-protocol", "vscode-language
249
260
  else {
250
261
  target.insertText = text;
251
262
  }
263
+ target.insertTextMode = source.insertTextMode;
252
264
  }
253
265
  asTextEdit(edit) {
254
266
  const range = this.asRange(edit.range);
@@ -282,19 +294,19 @@ define(["require", "exports", "vscode-languageserver-protocol", "vscode-language
282
294
  }
283
295
  asDiagnosticSeverity(value) {
284
296
  switch (value) {
285
- case monaco.MarkerSeverity.Error:
297
+ case this._monaco.MarkerSeverity.Error:
286
298
  return services_1.DiagnosticSeverity.Error;
287
- case monaco.MarkerSeverity.Warning:
299
+ case this._monaco.MarkerSeverity.Warning:
288
300
  return services_1.DiagnosticSeverity.Warning;
289
- case monaco.MarkerSeverity.Info:
301
+ case this._monaco.MarkerSeverity.Info:
290
302
  return services_1.DiagnosticSeverity.Information;
291
- case monaco.MarkerSeverity.Hint:
303
+ case this._monaco.MarkerSeverity.Hint:
292
304
  return services_1.DiagnosticSeverity.Hint;
293
305
  }
294
306
  return undefined;
295
307
  }
296
308
  asDiagnostic(marker) {
297
- const range = this.asRange(new monaco.Range(marker.startLineNumber, marker.startColumn, marker.endLineNumber, marker.endColumn));
309
+ const range = this.asRange(new this._monaco.Range(marker.startLineNumber, marker.startColumn, marker.endLineNumber, marker.endColumn));
298
310
  const severity = this.asDiagnosticSeverity(marker.severity);
299
311
  return services_1.Diagnostic.create(range, marker.message, severity, marker.code, marker.source);
300
312
  }
@@ -382,48 +394,108 @@ define(["require", "exports", "vscode-languageserver-protocol", "vscode-language
382
394
  if (ProtocolDocumentLink.is(item) && item.data) {
383
395
  result.data = item.data;
384
396
  }
397
+ if (item.tooltip) {
398
+ result.tooltip = item.tooltip;
399
+ }
400
+ return result;
401
+ }
402
+ asCodeAction(item) {
403
+ const result = { title: item.title };
404
+ const protocolCodeAction = ProtocolCodeAction.is(item) ? item : undefined;
405
+ if (Is.number(item.kind)) {
406
+ result.kind = item.kind;
407
+ }
408
+ if (item.diagnostics) {
409
+ result.diagnostics = this.asDiagnostics(item.diagnostics);
410
+ }
411
+ if (item.edit) {
412
+ throw new Error(`VS Code code actions can only be converted to a protocol code action without an edit.`);
413
+ }
414
+ if (item.command) {
415
+ result.command = this.asCommand(item.command);
416
+ }
417
+ if (item.isPreferred !== undefined) {
418
+ result.isPreferred = item.isPreferred;
419
+ }
420
+ if (item.disabled) {
421
+ result.disabled = { reason: item.disabled };
422
+ }
423
+ if (protocolCodeAction) {
424
+ if (protocolCodeAction.data !== undefined) {
425
+ result.data = protocolCodeAction.data;
426
+ }
427
+ }
385
428
  return result;
386
429
  }
387
430
  }
388
431
  exports.MonacoToProtocolConverter = MonacoToProtocolConverter;
389
432
  class ProtocolToMonacoConverter {
390
- asResourceEdits(resource, edits, modelVersionId) {
391
- return {
433
+ constructor(_monaco) {
434
+ this._monaco = _monaco;
435
+ }
436
+ asResourceEdits(resource, edits, asMetadata, modelVersionId) {
437
+ return edits.map(edit => ({
392
438
  resource: resource,
393
- edits: this.asTextEdits(edits),
394
- modelVersionId
439
+ edit: this.asTextEdit(edit),
440
+ modelVersionId,
441
+ metadata: services_1.AnnotatedTextEdit.is(edit) ? asMetadata(edit.annotationId) : undefined
442
+ }));
443
+ }
444
+ asWorkspaceEditMetadata(changeAnnotation) {
445
+ return {
446
+ needsConfirmation: changeAnnotation.needsConfirmation === true,
447
+ label: changeAnnotation.label,
448
+ description: changeAnnotation.description
395
449
  };
396
450
  }
397
451
  asWorkspaceEdit(item) {
398
452
  if (!item) {
399
453
  return undefined;
400
454
  }
455
+ const sharedMetadata = new Map();
456
+ if (item.changeAnnotations !== undefined) {
457
+ for (const key of Object.keys(item.changeAnnotations)) {
458
+ const metaData = this.asWorkspaceEditMetadata(item.changeAnnotations[key]);
459
+ sharedMetadata.set(key, metaData);
460
+ }
461
+ }
462
+ const asMetadata = (annotation) => {
463
+ if (annotation === undefined) {
464
+ return undefined;
465
+ }
466
+ else {
467
+ return sharedMetadata.get(annotation);
468
+ }
469
+ };
401
470
  const edits = [];
402
471
  if (item.documentChanges) {
403
472
  item.documentChanges.forEach(change => {
404
473
  if (ls.CreateFile.is(change)) {
405
474
  edits.push({
406
- newUri: monaco.Uri.parse(change.uri),
407
- options: change.options
475
+ newUri: this._monaco.Uri.parse(change.uri),
476
+ options: change.options,
477
+ metadata: asMetadata(change.annotationId)
408
478
  });
409
479
  }
410
480
  else if (ls.RenameFile.is(change)) {
411
481
  edits.push({
412
- oldUri: monaco.Uri.parse(change.oldUri),
413
- newUri: monaco.Uri.parse(change.newUri),
414
- options: change.options
482
+ oldUri: this._monaco.Uri.parse(change.oldUri),
483
+ newUri: this._monaco.Uri.parse(change.newUri),
484
+ options: change.options,
485
+ metadata: asMetadata(change.annotationId)
415
486
  });
416
487
  }
417
488
  else if (ls.DeleteFile.is(change)) {
418
489
  edits.push({
419
- oldUri: monaco.Uri.parse(change.uri),
420
- options: change.options
490
+ oldUri: this._monaco.Uri.parse(change.uri),
491
+ options: change.options,
492
+ metadata: asMetadata(change.annotationId)
421
493
  });
422
494
  }
423
495
  else if (ls.TextDocumentEdit.is(change)) {
424
- const resource = monaco.Uri.parse(change.textDocument.uri);
496
+ const resource = this._monaco.Uri.parse(change.textDocument.uri);
425
497
  const version = typeof change.textDocument.version === 'number' ? change.textDocument.version : undefined;
426
- edits.push(this.asResourceEdits(resource, change.edits, version));
498
+ edits.push(...this.asResourceEdits(resource, change.edits, asMetadata, version));
427
499
  }
428
500
  else {
429
501
  console.error(`Unknown workspace edit change received:\n${JSON.stringify(change, undefined, 4)}`);
@@ -432,8 +504,8 @@ define(["require", "exports", "vscode-languageserver-protocol", "vscode-language
432
504
  }
433
505
  else if (item.changes) {
434
506
  for (const key of Object.keys(item.changes)) {
435
- const resource = monaco.Uri.parse(key);
436
- edits.push(this.asResourceEdits(resource, item.changes[key]));
507
+ const resource = this._monaco.Uri.parse(key);
508
+ edits.push(...this.asResourceEdits(resource, item.changes[key], asMetadata));
437
509
  }
438
510
  }
439
511
  return {
@@ -492,7 +564,10 @@ define(["require", "exports", "vscode-languageserver-protocol", "vscode-language
492
564
  command: this.asCommand(item.command),
493
565
  edit: this.asWorkspaceEdit(item.edit),
494
566
  diagnostics: this.asDiagnostics(item.diagnostics),
495
- kind: item.kind
567
+ kind: item.kind,
568
+ disabled: item.disabled ? item.disabled.reason : undefined,
569
+ isPreferred: item.isPreferred,
570
+ data: item.data
496
571
  };
497
572
  }
498
573
  return {
@@ -520,7 +595,7 @@ define(["require", "exports", "vscode-languageserver-protocol", "vscode-language
520
595
  name: value.name,
521
596
  detail: value.detail || "",
522
597
  kind: this.asSymbolKind(value.kind),
523
- tags: [],
598
+ tags: value.tags || [],
524
599
  range: this.asRange(value.range),
525
600
  selectionRange: this.asRange(value.selectionRange),
526
601
  children
@@ -545,7 +620,7 @@ define(["require", "exports", "vscode-languageserver-protocol", "vscode-language
545
620
  detail: '',
546
621
  containerName: item.containerName,
547
622
  kind: this.asSymbolKind(item.kind),
548
- tags: [],
623
+ tags: item.tags || [],
549
624
  range: location.range,
550
625
  selectionRange: location.range
551
626
  };
@@ -555,7 +630,7 @@ define(["require", "exports", "vscode-languageserver-protocol", "vscode-language
555
630
  // Symbol kind is one based in the protocol and zero based in code.
556
631
  return item - 1;
557
632
  }
558
- return monaco.languages.SymbolKind.Property;
633
+ return this._monaco.languages.SymbolKind.Property;
559
634
  }
560
635
  asDocumentHighlights(values) {
561
636
  if (!values) {
@@ -571,13 +646,13 @@ define(["require", "exports", "vscode-languageserver-protocol", "vscode-language
571
646
  asDocumentHighlightKind(item) {
572
647
  switch (item) {
573
648
  case services_1.DocumentHighlightKind.Text:
574
- return monaco.languages.DocumentHighlightKind.Text;
649
+ return this._monaco.languages.DocumentHighlightKind.Text;
575
650
  case services_1.DocumentHighlightKind.Read:
576
- return monaco.languages.DocumentHighlightKind.Read;
651
+ return this._monaco.languages.DocumentHighlightKind.Read;
577
652
  case services_1.DocumentHighlightKind.Write:
578
- return monaco.languages.DocumentHighlightKind.Write;
653
+ return this._monaco.languages.DocumentHighlightKind.Write;
579
654
  }
580
- return monaco.languages.DocumentHighlightKind.Text;
655
+ return this._monaco.languages.DocumentHighlightKind.Text;
581
656
  }
582
657
  asReferences(values) {
583
658
  if (!values) {
@@ -610,7 +685,7 @@ define(["require", "exports", "vscode-languageserver-protocol", "vscode-language
610
685
  if (!item) {
611
686
  return undefined;
612
687
  }
613
- const uri = monaco.Uri.parse(item.uri);
688
+ const uri = this._monaco.Uri.parse(item.uri);
614
689
  const range = this.asRange(item.range);
615
690
  return {
616
691
  uri, range
@@ -621,7 +696,7 @@ define(["require", "exports", "vscode-languageserver-protocol", "vscode-language
621
696
  return undefined;
622
697
  }
623
698
  let result = {
624
- uri: monaco.Uri.parse(item.targetUri),
699
+ uri: this._monaco.Uri.parse(item.targetUri),
625
700
  range: this.asRange(item.targetSelectionRange),
626
701
  originSelectionRange: this.asRange(item.originSelectionRange),
627
702
  targetSelectionRange: this.asRange(item.targetSelectionRange)
@@ -675,6 +750,9 @@ define(["require", "exports", "vscode-languageserver-protocol", "vscode-language
675
750
  else {
676
751
  result.parameters = [];
677
752
  }
753
+ if (item.activeParameter) {
754
+ result.activeParameter = item.activeParameter;
755
+ }
678
756
  return result;
679
757
  }
680
758
  asParameterInformations(item) {
@@ -728,15 +806,15 @@ define(["require", "exports", "vscode-languageserver-protocol", "vscode-language
728
806
  }
729
807
  asSeverity(severity) {
730
808
  if (severity === 1) {
731
- return monaco.MarkerSeverity.Error;
809
+ return this._monaco.MarkerSeverity.Error;
732
810
  }
733
811
  if (severity === 2) {
734
- return monaco.MarkerSeverity.Warning;
812
+ return this._monaco.MarkerSeverity.Warning;
735
813
  }
736
814
  if (severity === 3) {
737
- return monaco.MarkerSeverity.Info;
815
+ return this._monaco.MarkerSeverity.Info;
738
816
  }
739
- return monaco.MarkerSeverity.Hint;
817
+ return this._monaco.MarkerSeverity.Hint;
740
818
  }
741
819
  asDiagnostics(diagnostics) {
742
820
  if (!diagnostics) {
@@ -765,7 +843,7 @@ define(["require", "exports", "vscode-languageserver-protocol", "vscode-language
765
843
  }
766
844
  asRelatedInformation(relatedInformation) {
767
845
  return {
768
- resource: monaco.Uri.parse(relatedInformation.location.uri),
846
+ resource: this._monaco.Uri.parse(relatedInformation.location.uri),
769
847
  startLineNumber: relatedInformation.location.range.start.line + 1,
770
848
  startColumn: relatedInformation.location.range.start.character + 1,
771
849
  endLineNumber: relatedInformation.location.range.end.line + 1,
@@ -810,7 +888,7 @@ define(["require", "exports", "vscode-languageserver-protocol", "vscode-language
810
888
  result.range = insertText.range;
811
889
  result.fromEdit = insertText.fromEdit;
812
890
  if (insertText.isSnippet) {
813
- result.insertTextRules = monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet;
891
+ result.insertTextRules = this._monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet;
814
892
  }
815
893
  if (Is.number(item.kind)) {
816
894
  let [itemKind, original] = this.asCompletionItemKind(item.kind);
@@ -843,36 +921,37 @@ define(["require", "exports", "vscode-languageserver-protocol", "vscode-language
843
921
  if (item.deprecated === true || item.deprecated === false) {
844
922
  result.deprecated = item.deprecated;
845
923
  }
924
+ result.insertTextMode = item.insertTextMode;
846
925
  return result;
847
926
  }
848
927
  asCompletionItemKind(value) {
849
928
  if (services_1.CompletionItemKind.Text <= value && value <= services_1.CompletionItemKind.TypeParameter) {
850
929
  switch (value) {
851
- case services_1.CompletionItemKind.Text: return [monaco.languages.CompletionItemKind.Text, undefined];
852
- case services_1.CompletionItemKind.Method: return [monaco.languages.CompletionItemKind.Method, undefined];
853
- case services_1.CompletionItemKind.Function: return [monaco.languages.CompletionItemKind.Function, undefined];
854
- case services_1.CompletionItemKind.Constructor: return [monaco.languages.CompletionItemKind.Constructor, undefined];
855
- case services_1.CompletionItemKind.Field: return [monaco.languages.CompletionItemKind.Field, undefined];
856
- case services_1.CompletionItemKind.Variable: return [monaco.languages.CompletionItemKind.Variable, undefined];
857
- case services_1.CompletionItemKind.Class: return [monaco.languages.CompletionItemKind.Class, undefined];
858
- case services_1.CompletionItemKind.Interface: return [monaco.languages.CompletionItemKind.Interface, undefined];
859
- case services_1.CompletionItemKind.Module: return [monaco.languages.CompletionItemKind.Module, undefined];
860
- case services_1.CompletionItemKind.Property: return [monaco.languages.CompletionItemKind.Property, undefined];
861
- case services_1.CompletionItemKind.Unit: return [monaco.languages.CompletionItemKind.Unit, undefined];
862
- case services_1.CompletionItemKind.Value: return [monaco.languages.CompletionItemKind.Value, undefined];
863
- case services_1.CompletionItemKind.Enum: return [monaco.languages.CompletionItemKind.Enum, undefined];
864
- case services_1.CompletionItemKind.Keyword: return [monaco.languages.CompletionItemKind.Keyword, undefined];
865
- case services_1.CompletionItemKind.Snippet: return [monaco.languages.CompletionItemKind.Snippet, undefined];
866
- case services_1.CompletionItemKind.Color: return [monaco.languages.CompletionItemKind.Color, undefined];
867
- case services_1.CompletionItemKind.File: return [monaco.languages.CompletionItemKind.File, undefined];
868
- case services_1.CompletionItemKind.Reference: return [monaco.languages.CompletionItemKind.Reference, undefined];
869
- case services_1.CompletionItemKind.Folder: return [monaco.languages.CompletionItemKind.Folder, undefined];
870
- case services_1.CompletionItemKind.EnumMember: return [monaco.languages.CompletionItemKind.EnumMember, undefined];
871
- case services_1.CompletionItemKind.Constant: return [monaco.languages.CompletionItemKind.Constant, undefined];
872
- case services_1.CompletionItemKind.Struct: return [monaco.languages.CompletionItemKind.Struct, undefined];
873
- case services_1.CompletionItemKind.Event: return [monaco.languages.CompletionItemKind.Event, undefined];
874
- case services_1.CompletionItemKind.Operator: return [monaco.languages.CompletionItemKind.Operator, undefined];
875
- case services_1.CompletionItemKind.TypeParameter: return [monaco.languages.CompletionItemKind.TypeParameter, undefined];
930
+ case services_1.CompletionItemKind.Text: return [this._monaco.languages.CompletionItemKind.Text, undefined];
931
+ case services_1.CompletionItemKind.Method: return [this._monaco.languages.CompletionItemKind.Method, undefined];
932
+ case services_1.CompletionItemKind.Function: return [this._monaco.languages.CompletionItemKind.Function, undefined];
933
+ case services_1.CompletionItemKind.Constructor: return [this._monaco.languages.CompletionItemKind.Constructor, undefined];
934
+ case services_1.CompletionItemKind.Field: return [this._monaco.languages.CompletionItemKind.Field, undefined];
935
+ case services_1.CompletionItemKind.Variable: return [this._monaco.languages.CompletionItemKind.Variable, undefined];
936
+ case services_1.CompletionItemKind.Class: return [this._monaco.languages.CompletionItemKind.Class, undefined];
937
+ case services_1.CompletionItemKind.Interface: return [this._monaco.languages.CompletionItemKind.Interface, undefined];
938
+ case services_1.CompletionItemKind.Module: return [this._monaco.languages.CompletionItemKind.Module, undefined];
939
+ case services_1.CompletionItemKind.Property: return [this._monaco.languages.CompletionItemKind.Property, undefined];
940
+ case services_1.CompletionItemKind.Unit: return [this._monaco.languages.CompletionItemKind.Unit, undefined];
941
+ case services_1.CompletionItemKind.Value: return [this._monaco.languages.CompletionItemKind.Value, undefined];
942
+ case services_1.CompletionItemKind.Enum: return [this._monaco.languages.CompletionItemKind.Enum, undefined];
943
+ case services_1.CompletionItemKind.Keyword: return [this._monaco.languages.CompletionItemKind.Keyword, undefined];
944
+ case services_1.CompletionItemKind.Snippet: return [this._monaco.languages.CompletionItemKind.Snippet, undefined];
945
+ case services_1.CompletionItemKind.Color: return [this._monaco.languages.CompletionItemKind.Color, undefined];
946
+ case services_1.CompletionItemKind.File: return [this._monaco.languages.CompletionItemKind.File, undefined];
947
+ case services_1.CompletionItemKind.Reference: return [this._monaco.languages.CompletionItemKind.Reference, undefined];
948
+ case services_1.CompletionItemKind.Folder: return [this._monaco.languages.CompletionItemKind.Folder, undefined];
949
+ case services_1.CompletionItemKind.EnumMember: return [this._monaco.languages.CompletionItemKind.EnumMember, undefined];
950
+ case services_1.CompletionItemKind.Constant: return [this._monaco.languages.CompletionItemKind.Constant, undefined];
951
+ case services_1.CompletionItemKind.Struct: return [this._monaco.languages.CompletionItemKind.Struct, undefined];
952
+ case services_1.CompletionItemKind.Event: return [this._monaco.languages.CompletionItemKind.Event, undefined];
953
+ case services_1.CompletionItemKind.Operator: return [this._monaco.languages.CompletionItemKind.Operator, undefined];
954
+ case services_1.CompletionItemKind.TypeParameter: return [this._monaco.languages.CompletionItemKind.TypeParameter, undefined];
876
955
  default: return [value - 1, undefined];
877
956
  }
878
957
  }
@@ -882,9 +961,19 @@ define(["require", "exports", "vscode-languageserver-protocol", "vscode-language
882
961
  asCompletionInsertText(item, defaultRange) {
883
962
  const isSnippet = item.insertTextFormat === services_1.InsertTextFormat.Snippet;
884
963
  if (item.textEdit) {
885
- const range = this.asRange(item.textEdit.range);
886
- const value = item.textEdit.newText;
887
- return { isSnippet, insertText: value, range, fromEdit: true, };
964
+ if (services_1.TextEdit.is(item.textEdit)) {
965
+ const range = this.asRange(item.textEdit.range);
966
+ const value = item.textEdit.newText;
967
+ return { isSnippet, insertText: value, range, fromEdit: true, };
968
+ }
969
+ else {
970
+ const range = {
971
+ insert: this.asRange(item.textEdit.insert),
972
+ replace: this.asRange(item.textEdit.replace)
973
+ };
974
+ const value = item.textEdit.newText;
975
+ return { isSnippet, insertText: value, range, fromEdit: true, };
976
+ }
888
977
  }
889
978
  if (item.insertText) {
890
979
  return { isSnippet, insertText: item.insertText, fromEdit: false, range: defaultRange };
@@ -899,7 +988,8 @@ define(["require", "exports", "vscode-languageserver-protocol", "vscode-language
899
988
  return {
900
989
  range: this.asRange(documentLink.range),
901
990
  url: documentLink.target,
902
- data: documentLink.data
991
+ data: documentLink.data,
992
+ tooltip: documentLink.tooltip
903
993
  };
904
994
  }
905
995
  asRange(range) {
@@ -911,8 +1001,8 @@ define(["require", "exports", "vscode-languageserver-protocol", "vscode-language
911
1001
  }
912
1002
  const start = this.asPosition(range.start);
913
1003
  const end = this.asPosition(range.end);
914
- if (start instanceof monaco.Position && end instanceof monaco.Position) {
915
- return new monaco.Range(start.lineNumber, start.column, end.lineNumber, end.column);
1004
+ if (start instanceof this._monaco.Position && end instanceof this._monaco.Position) {
1005
+ return new this._monaco.Range(start.lineNumber, start.column, end.lineNumber, end.column);
916
1006
  }
917
1007
  const startLineNumber = !start || start.lineNumber === undefined ? undefined : start.lineNumber;
918
1008
  const startColumn = !start || start.column === undefined ? undefined : start.column;
@@ -931,7 +1021,7 @@ define(["require", "exports", "vscode-languageserver-protocol", "vscode-language
931
1021
  const lineNumber = line === undefined ? undefined : line + 1;
932
1022
  const column = character === undefined ? undefined : character + 1;
933
1023
  if (lineNumber !== undefined && column !== undefined) {
934
- return new monaco.Position(lineNumber, column);
1024
+ return new this._monaco.Position(lineNumber, column);
935
1025
  }
936
1026
  return { lineNumber, column };
937
1027
  }
@@ -971,16 +1061,22 @@ define(["require", "exports", "vscode-languageserver-protocol", "vscode-language
971
1061
  if (kind) {
972
1062
  switch (kind) {
973
1063
  case services_1.FoldingRangeKind.Comment:
974
- return monaco.languages.FoldingRangeKind.Comment;
1064
+ return this._monaco.languages.FoldingRangeKind.Comment;
975
1065
  case services_1.FoldingRangeKind.Imports:
976
- return monaco.languages.FoldingRangeKind.Imports;
1066
+ return this._monaco.languages.FoldingRangeKind.Imports;
977
1067
  case services_1.FoldingRangeKind.Region:
978
- return monaco.languages.FoldingRangeKind.Region;
1068
+ return this._monaco.languages.FoldingRangeKind.Region;
979
1069
  }
980
1070
  ;
981
1071
  }
982
1072
  return undefined;
983
1073
  }
1074
+ asSemanticTokens(semanticTokens) {
1075
+ return {
1076
+ resultId: semanticTokens.resultId,
1077
+ data: Uint32Array.from(semanticTokens.data)
1078
+ };
1079
+ }
984
1080
  }
985
1081
  exports.ProtocolToMonacoConverter = ProtocolToMonacoConverter;
986
1082
  });