monaco-languageclient 1.0.0 → 2.0.0-dev.0

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 (137) hide show
  1. package/dist/amd/console-window.d.ts +5 -4
  2. package/dist/amd/console-window.d.ts.map +1 -1
  3. package/dist/amd/console-window.js +17 -7
  4. package/dist/amd/console-window.js.map +1 -1
  5. package/dist/amd/disposable.d.ts +1 -1
  6. package/dist/amd/disposable.d.ts.map +1 -1
  7. package/dist/amd/disposable.js +6 -2
  8. package/dist/amd/disposable.js.map +1 -1
  9. package/dist/amd/index.d.ts +2 -5
  10. package/dist/amd/index.d.ts.map +1 -1
  11. package/dist/amd/index.js +7 -6
  12. package/dist/amd/index.js.map +1 -1
  13. package/dist/amd/monaco-language-client.d.ts +9 -3
  14. package/dist/amd/monaco-language-client.d.ts.map +1 -1
  15. package/dist/amd/monaco-language-client.js +60 -41
  16. package/dist/amd/monaco-language-client.js.map +1 -1
  17. package/dist/amd/monaco-services.d.ts +6 -10
  18. package/dist/amd/monaco-services.d.ts.map +1 -1
  19. package/dist/amd/monaco-services.js +6 -13
  20. package/dist/amd/monaco-services.js.map +1 -1
  21. package/dist/amd/monaco-workspace.d.ts +6 -28
  22. package/dist/amd/monaco-workspace.d.ts.map +1 -1
  23. package/dist/amd/monaco-workspace.js +4 -121
  24. package/dist/amd/monaco-workspace.js.map +1 -1
  25. package/lib/console-window.d.ts +5 -4
  26. package/lib/console-window.d.ts.map +1 -1
  27. package/lib/console-window.js +17 -7
  28. package/lib/console-window.js.map +1 -1
  29. package/lib/disposable.d.ts +1 -1
  30. package/lib/disposable.d.ts.map +1 -1
  31. package/lib/disposable.js +4 -4
  32. package/lib/disposable.js.map +1 -1
  33. package/lib/index.d.ts +2 -5
  34. package/lib/index.d.ts.map +1 -1
  35. package/lib/index.js +7 -5
  36. package/lib/index.js.map +1 -1
  37. package/lib/monaco-language-client.d.ts +9 -3
  38. package/lib/monaco-language-client.d.ts.map +1 -1
  39. package/lib/monaco-language-client.js +86 -40
  40. package/lib/monaco-language-client.js.map +1 -1
  41. package/lib/monaco-services.d.ts +6 -10
  42. package/lib/monaco-services.d.ts.map +1 -1
  43. package/lib/monaco-services.js +10 -17
  44. package/lib/monaco-services.js.map +1 -1
  45. package/lib/monaco-workspace.d.ts +6 -28
  46. package/lib/monaco-workspace.d.ts.map +1 -1
  47. package/lib/monaco-workspace.js +3 -123
  48. package/lib/monaco-workspace.js.map +1 -1
  49. package/package.json +13 -12
  50. package/src/console-window.ts +21 -10
  51. package/src/disposable.ts +2 -1
  52. package/src/index.ts +5 -5
  53. package/src/monaco-language-client.ts +99 -46
  54. package/src/monaco-services.ts +9 -23
  55. package/src/monaco-workspace.ts +6 -154
  56. package/dist/amd/connection.d.ts +0 -53
  57. package/dist/amd/connection.d.ts.map +0 -1
  58. package/dist/amd/connection.js +0 -41
  59. package/dist/amd/connection.js.map +0 -1
  60. package/dist/amd/monaco-commands.d.ts +0 -8
  61. package/dist/amd/monaco-commands.d.ts.map +0 -1
  62. package/dist/amd/monaco-commands.js +0 -15
  63. package/dist/amd/monaco-commands.js.map +0 -1
  64. package/dist/amd/monaco-converter.d.ts +0 -225
  65. package/dist/amd/monaco-converter.d.ts.map +0 -1
  66. package/dist/amd/monaco-converter.js +0 -1173
  67. package/dist/amd/monaco-converter.js.map +0 -1
  68. package/dist/amd/monaco-diagnostic-collection.d.ts +0 -32
  69. package/dist/amd/monaco-diagnostic-collection.d.ts.map +0 -1
  70. package/dist/amd/monaco-diagnostic-collection.js +0 -76
  71. package/dist/amd/monaco-diagnostic-collection.js.map +0 -1
  72. package/dist/amd/monaco-languages.d.ts +0 -70
  73. package/dist/amd/monaco-languages.d.ts.map +0 -1
  74. package/dist/amd/monaco-languages.js +0 -503
  75. package/dist/amd/monaco-languages.js.map +0 -1
  76. package/dist/amd/register-vscode.d.ts +0 -2
  77. package/dist/amd/register-vscode.d.ts.map +0 -1
  78. package/dist/amd/register-vscode.js +0 -16
  79. package/dist/amd/register-vscode.js.map +0 -1
  80. package/dist/amd/services.d.ts +0 -234
  81. package/dist/amd/services.d.ts.map +0 -1
  82. package/dist/amd/services.js +0 -69
  83. package/dist/amd/services.js.map +0 -1
  84. package/dist/amd/vscode-api.d.ts +0 -4
  85. package/dist/amd/vscode-api.d.ts.map +0 -1
  86. package/dist/amd/vscode-api.js +0 -1018
  87. package/dist/amd/vscode-api.js.map +0 -1
  88. package/dist/amd/vscode-compatibility.d.ts +0 -4
  89. package/dist/amd/vscode-compatibility.d.ts.map +0 -1
  90. package/dist/amd/vscode-compatibility.js +0 -5
  91. package/dist/amd/vscode-compatibility.js.map +0 -1
  92. package/lib/connection.d.ts +0 -53
  93. package/lib/connection.d.ts.map +0 -1
  94. package/lib/connection.js +0 -41
  95. package/lib/connection.js.map +0 -1
  96. package/lib/monaco-commands.d.ts +0 -8
  97. package/lib/monaco-commands.d.ts.map +0 -1
  98. package/lib/monaco-commands.js +0 -13
  99. package/lib/monaco-commands.js.map +0 -1
  100. package/lib/monaco-converter.d.ts +0 -225
  101. package/lib/monaco-converter.d.ts.map +0 -1
  102. package/lib/monaco-converter.js +0 -1173
  103. package/lib/monaco-converter.js.map +0 -1
  104. package/lib/monaco-diagnostic-collection.d.ts +0 -32
  105. package/lib/monaco-diagnostic-collection.d.ts.map +0 -1
  106. package/lib/monaco-diagnostic-collection.js +0 -75
  107. package/lib/monaco-diagnostic-collection.js.map +0 -1
  108. package/lib/monaco-languages.d.ts +0 -70
  109. package/lib/monaco-languages.d.ts.map +0 -1
  110. package/lib/monaco-languages.js +0 -504
  111. package/lib/monaco-languages.js.map +0 -1
  112. package/lib/register-vscode.d.ts +0 -2
  113. package/lib/register-vscode.d.ts.map +0 -1
  114. package/lib/register-vscode.js +0 -15
  115. package/lib/register-vscode.js.map +0 -1
  116. package/lib/services.d.ts +0 -234
  117. package/lib/services.d.ts.map +0 -1
  118. package/lib/services.js +0 -70
  119. package/lib/services.js.map +0 -1
  120. package/lib/vscode-api.d.ts +0 -4
  121. package/lib/vscode-api.d.ts.map +0 -1
  122. package/lib/vscode-api.js +0 -1021
  123. package/lib/vscode-api.js.map +0 -1
  124. package/lib/vscode-compatibility.d.ts +0 -4
  125. package/lib/vscode-compatibility.d.ts.map +0 -1
  126. package/lib/vscode-compatibility.js +0 -9
  127. package/lib/vscode-compatibility.js.map +0 -1
  128. package/src/connection.ts +0 -134
  129. package/src/monaco-commands.ts +0 -15
  130. package/src/monaco-converter.ts +0 -1317
  131. package/src/monaco-diagnostic-collection.ts +0 -94
  132. package/src/monaco-languages.ts +0 -571
  133. package/src/register-vscode.ts +0 -13
  134. package/src/services.ts +0 -326
  135. package/src/typings/monaco/index.d.ts +0 -21
  136. package/src/vscode-api.ts +0 -1047
  137. package/src/vscode-compatibility.ts +0 -8
@@ -1,1173 +0,0 @@
1
- define(["require", "exports", "tslib", "vscode-languageserver-protocol", "vscode-languageserver-protocol/lib/common/utils/is", "./services"], function (require, exports, tslib_1, ls, Is, services_1) {
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.ProtocolToMonacoConverter = exports.MonacoToProtocolConverter = exports.ProtocolInlayHint = exports.ProtocolCodeAction = exports.ProtocolCompletionItem = exports.ProtocolCodeLens = exports.ProtocolDocumentLink = void 0;
5
- ls = tslib_1.__importStar(ls);
6
- Is = tslib_1.__importStar(Is);
7
- var ProtocolDocumentLink;
8
- (function (ProtocolDocumentLink) {
9
- function is(item) {
10
- return !!item && 'data' in item;
11
- }
12
- ProtocolDocumentLink.is = is;
13
- })(ProtocolDocumentLink = exports.ProtocolDocumentLink || (exports.ProtocolDocumentLink = {}));
14
- var ProtocolCodeLens;
15
- (function (ProtocolCodeLens) {
16
- function is(item) {
17
- return !!item && 'data' in item;
18
- }
19
- ProtocolCodeLens.is = is;
20
- })(ProtocolCodeLens = exports.ProtocolCodeLens || (exports.ProtocolCodeLens = {}));
21
- var ProtocolCompletionItem;
22
- (function (ProtocolCompletionItem) {
23
- function is(item) {
24
- return !!item && 'data' in item;
25
- }
26
- ProtocolCompletionItem.is = is;
27
- })(ProtocolCompletionItem = exports.ProtocolCompletionItem || (exports.ProtocolCompletionItem = {}));
28
- var ProtocolCodeAction;
29
- (function (ProtocolCodeAction) {
30
- function is(item) {
31
- return !!item && 'data' in item;
32
- }
33
- ProtocolCodeAction.is = is;
34
- })(ProtocolCodeAction = exports.ProtocolCodeAction || (exports.ProtocolCodeAction = {}));
35
- var ProtocolInlayHint;
36
- (function (ProtocolInlayHint) {
37
- function is(item) {
38
- return !!item && 'data' in item;
39
- }
40
- ProtocolInlayHint.is = is;
41
- })(ProtocolInlayHint = exports.ProtocolInlayHint || (exports.ProtocolInlayHint = {}));
42
- function isRangeReplace(v) {
43
- return v.insert !== undefined;
44
- }
45
- class MonacoToProtocolConverter {
46
- constructor(_monaco) {
47
- this._monaco = _monaco;
48
- }
49
- asPosition(lineNumber, column) {
50
- const line = lineNumber === undefined || lineNumber === null ? undefined : lineNumber - 1;
51
- const character = column === undefined || column === null ? undefined : column - 1;
52
- return {
53
- line, character
54
- };
55
- }
56
- asRange(range) {
57
- if (range === undefined) {
58
- return undefined;
59
- }
60
- if (range === null) {
61
- return null;
62
- }
63
- if (isRangeReplace(range)) {
64
- return this.asRange(range.insert);
65
- }
66
- else {
67
- const start = this.asPosition(range.startLineNumber, range.startColumn);
68
- const end = this.asPosition(range.endLineNumber, range.endColumn);
69
- return {
70
- start, end
71
- };
72
- }
73
- }
74
- asLocation(item) {
75
- if (!item) {
76
- return undefined;
77
- }
78
- const uri = item.uri.toString();
79
- const range = this.asRange(item.range);
80
- return {
81
- uri,
82
- range
83
- };
84
- }
85
- asTextDocumentIdentifier(model) {
86
- return {
87
- uri: model.uri.toString()
88
- };
89
- }
90
- asTextDocumentPositionParams(model, position) {
91
- return {
92
- textDocument: this.asTextDocumentIdentifier(model),
93
- position: this.asPosition(position.lineNumber, position.column)
94
- };
95
- }
96
- asCompletionParams(model, position, context) {
97
- return Object.assign(this.asTextDocumentPositionParams(model, position), {
98
- context: this.asCompletionContext(context)
99
- });
100
- }
101
- asCompletionContext(context) {
102
- return {
103
- triggerKind: this.asCompletionTriggerKind(context.triggerKind),
104
- triggerCharacter: context.triggerCharacter
105
- };
106
- }
107
- asSignatureHelpContext(context) {
108
- return {
109
- triggerKind: this.asSignatureHelpTriggerKind(context.triggerKind),
110
- triggerCharacter: context.triggerCharacter,
111
- isRetrigger: context.isRetrigger,
112
- activeSignatureHelp: this.asSignatureHelp(context.activeSignatureHelp)
113
- };
114
- }
115
- asSignatureHelp(signatureHelp) {
116
- if (signatureHelp === undefined) {
117
- return undefined;
118
- }
119
- return {
120
- signatures: signatureHelp.signatures.map(signatureInfo => this.asSignatureInformation(signatureInfo)),
121
- activeParameter: signatureHelp.activeParameter,
122
- activeSignature: signatureHelp.activeSignature
123
- };
124
- }
125
- asSignatureInformation(signatureInformation) {
126
- return {
127
- documentation: this.asMarkupContent(signatureInformation.documentation),
128
- label: signatureInformation.label,
129
- parameters: signatureInformation.parameters.map(paramInfo => this.asParameterInformation(paramInfo)),
130
- activeParameter: signatureInformation.activeParameter
131
- };
132
- }
133
- asParameterInformation(parameterInformation) {
134
- return {
135
- documentation: this.asMarkupContent(parameterInformation.documentation),
136
- label: parameterInformation.label
137
- };
138
- }
139
- asMarkupContent(markupContent) {
140
- if (markupContent === undefined) {
141
- return undefined;
142
- }
143
- if (typeof markupContent === "string") {
144
- return markupContent;
145
- }
146
- return {
147
- kind: services_1.MarkupKind.Markdown,
148
- value: markupContent.value
149
- };
150
- }
151
- asSignatureHelpTriggerKind(triggerKind) {
152
- switch (triggerKind) {
153
- case this._monaco.languages.SignatureHelpTriggerKind.ContentChange:
154
- return services_1.SignatureHelpTriggerKind.ContentChange;
155
- case this._monaco.languages.SignatureHelpTriggerKind.TriggerCharacter:
156
- return services_1.SignatureHelpTriggerKind.TriggerCharacter;
157
- default:
158
- return services_1.SignatureHelpTriggerKind.Invoke;
159
- }
160
- }
161
- asCompletionTriggerKind(triggerKind) {
162
- switch (triggerKind) {
163
- case this._monaco.languages.CompletionTriggerKind.TriggerCharacter:
164
- return services_1.CompletionTriggerKind.TriggerCharacter;
165
- case this._monaco.languages.CompletionTriggerKind.TriggerForIncompleteCompletions:
166
- return services_1.CompletionTriggerKind.TriggerForIncompleteCompletions;
167
- default:
168
- return services_1.CompletionTriggerKind.Invoked;
169
- }
170
- }
171
- asCompletionItem(item) {
172
- var _a, _b;
173
- const result = { label: item.label };
174
- const protocolItem = ProtocolCompletionItem.is(item) ? item : undefined;
175
- if (item.detail) {
176
- result.detail = item.detail;
177
- }
178
- if (item.documentation) {
179
- if (typeof item.documentation === 'string') {
180
- result.documentation = item.documentation;
181
- }
182
- else {
183
- 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);
184
- }
185
- }
186
- if (item.filterText) {
187
- result.filterText = item.filterText;
188
- }
189
- this.fillPrimaryInsertText(result, item);
190
- if (Is.number(item.kind)) {
191
- result.kind = this.asCompletionItemKind(item.kind, protocolItem && protocolItem.originalItemKind);
192
- }
193
- if (item.sortText) {
194
- result.sortText = item.sortText;
195
- }
196
- if (item.additionalTextEdits) {
197
- result.additionalTextEdits = this.asTextEdits(item.additionalTextEdits);
198
- }
199
- if (item.command) {
200
- result.command = this.asCommand(item.command);
201
- }
202
- if (item.commitCharacters) {
203
- result.commitCharacters = item.commitCharacters.slice();
204
- }
205
- if (item.command) {
206
- result.command = this.asCommand(item.command);
207
- }
208
- if (item.preselect === true || item.preselect === false) {
209
- result.preselect = item.preselect;
210
- }
211
- if (protocolItem) {
212
- if (protocolItem.data !== undefined) {
213
- result.data = protocolItem.data;
214
- }
215
- if (protocolItem.deprecated === true || protocolItem.deprecated === false) {
216
- result.deprecated = protocolItem.deprecated;
217
- }
218
- }
219
- if (item.tags) {
220
- result.tags = (_b = item.tags) === null || _b === void 0 ? void 0 : _b.slice();
221
- }
222
- return result;
223
- }
224
- asCompletionItemKind(value, original) {
225
- if (original !== undefined) {
226
- return original;
227
- }
228
- switch (value) {
229
- case this._monaco.languages.CompletionItemKind.Method: return services_1.CompletionItemKind.Method;
230
- case this._monaco.languages.CompletionItemKind.Function: return services_1.CompletionItemKind.Function;
231
- case this._monaco.languages.CompletionItemKind.Constructor: return services_1.CompletionItemKind.Constructor;
232
- case this._monaco.languages.CompletionItemKind.Field: return services_1.CompletionItemKind.Field;
233
- case this._monaco.languages.CompletionItemKind.Variable: return services_1.CompletionItemKind.Variable;
234
- case this._monaco.languages.CompletionItemKind.Class: return services_1.CompletionItemKind.Class;
235
- case this._monaco.languages.CompletionItemKind.Struct: return services_1.CompletionItemKind.Struct;
236
- case this._monaco.languages.CompletionItemKind.Interface: return services_1.CompletionItemKind.Interface;
237
- case this._monaco.languages.CompletionItemKind.Module: return services_1.CompletionItemKind.Module;
238
- case this._monaco.languages.CompletionItemKind.Property: return services_1.CompletionItemKind.Property;
239
- case this._monaco.languages.CompletionItemKind.Event: return services_1.CompletionItemKind.Event;
240
- case this._monaco.languages.CompletionItemKind.Operator: return services_1.CompletionItemKind.Operator;
241
- case this._monaco.languages.CompletionItemKind.Unit: return services_1.CompletionItemKind.Unit;
242
- case this._monaco.languages.CompletionItemKind.Value: return services_1.CompletionItemKind.Value;
243
- case this._monaco.languages.CompletionItemKind.Constant: return services_1.CompletionItemKind.Constant;
244
- case this._monaco.languages.CompletionItemKind.Enum: return services_1.CompletionItemKind.Enum;
245
- case this._monaco.languages.CompletionItemKind.EnumMember: return services_1.CompletionItemKind.EnumMember;
246
- case this._monaco.languages.CompletionItemKind.Keyword: return services_1.CompletionItemKind.Keyword;
247
- case this._monaco.languages.CompletionItemKind.Text: return services_1.CompletionItemKind.Text;
248
- case this._monaco.languages.CompletionItemKind.Color: return services_1.CompletionItemKind.Color;
249
- case this._monaco.languages.CompletionItemKind.File: return services_1.CompletionItemKind.File;
250
- case this._monaco.languages.CompletionItemKind.Reference: return services_1.CompletionItemKind.Reference;
251
- case this._monaco.languages.CompletionItemKind.Customcolor: return services_1.CompletionItemKind.Color;
252
- case this._monaco.languages.CompletionItemKind.Folder: return services_1.CompletionItemKind.Folder;
253
- case this._monaco.languages.CompletionItemKind.TypeParameter: return services_1.CompletionItemKind.TypeParameter;
254
- case this._monaco.languages.CompletionItemKind.Snippet: return services_1.CompletionItemKind.Snippet;
255
- default: return value + 1;
256
- }
257
- }
258
- asDocumentation(format, documentation) {
259
- switch (format) {
260
- case services_1.MarkupKind.PlainText:
261
- return { kind: format, value: documentation };
262
- case services_1.MarkupKind.Markdown:
263
- return { kind: format, value: documentation.value };
264
- default:
265
- return `Unsupported Markup content received. Kind is: ${format}`;
266
- }
267
- }
268
- fillPrimaryInsertText(target, source) {
269
- let format = services_1.InsertTextFormat.PlainText;
270
- let text;
271
- let range;
272
- if (source.insertTextRules !== undefined && (source.insertTextRules & this._monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet) === 0) {
273
- format = services_1.InsertTextFormat.Snippet;
274
- text = source.insertText;
275
- }
276
- target.insertTextFormat = format;
277
- text = source.insertText;
278
- if (source.range) {
279
- range = this.asRange(source.range);
280
- }
281
- target.insertTextFormat = format;
282
- if (source.fromEdit && text && range) {
283
- target.textEdit = { newText: text, range: range };
284
- }
285
- else {
286
- target.insertText = text;
287
- }
288
- target.insertTextMode = source.insertTextMode;
289
- }
290
- asTextEdit(edit) {
291
- const range = this.asRange(edit.range);
292
- return {
293
- range,
294
- newText: edit.text || ''
295
- };
296
- }
297
- asTextEdits(items) {
298
- if (!items) {
299
- return undefined;
300
- }
301
- return items.map(item => this.asTextEdit(item));
302
- }
303
- asReferenceParams(model, position, options) {
304
- return {
305
- textDocument: this.asTextDocumentIdentifier(model),
306
- position: this.asPosition(position.lineNumber, position.column),
307
- context: { includeDeclaration: options.includeDeclaration }
308
- };
309
- }
310
- asDocumentSymbolParams(model) {
311
- return {
312
- textDocument: this.asTextDocumentIdentifier(model)
313
- };
314
- }
315
- asCodeLensParams(model) {
316
- return {
317
- textDocument: this.asTextDocumentIdentifier(model)
318
- };
319
- }
320
- asDiagnosticSeverity(value) {
321
- switch (value) {
322
- case this._monaco.MarkerSeverity.Error:
323
- return services_1.DiagnosticSeverity.Error;
324
- case this._monaco.MarkerSeverity.Warning:
325
- return services_1.DiagnosticSeverity.Warning;
326
- case this._monaco.MarkerSeverity.Info:
327
- return services_1.DiagnosticSeverity.Information;
328
- case this._monaco.MarkerSeverity.Hint:
329
- return services_1.DiagnosticSeverity.Hint;
330
- }
331
- return undefined;
332
- }
333
- asDiagnostic(marker) {
334
- const range = this.asRange(new this._monaco.Range(marker.startLineNumber, marker.startColumn, marker.endLineNumber, marker.endColumn));
335
- const severity = this.asDiagnosticSeverity(marker.severity);
336
- const diag = services_1.Diagnostic.create(range, marker.message, severity, marker.code, marker.source);
337
- return diag;
338
- }
339
- asDiagnostics(markers) {
340
- if (markers === void 0 || markers === null) {
341
- return markers;
342
- }
343
- return markers.map(marker => this.asDiagnostic(marker));
344
- }
345
- asCodeActionContext(context, diagnostics) {
346
- if (context === void 0 || context === null) {
347
- return context;
348
- }
349
- // FIXME: CodeActionTriggerKind is missing
350
- return services_1.CodeActionContext.create(diagnostics, Is.string(context.only) ? [context.only] : undefined, undefined);
351
- }
352
- asCodeActionParams(model, range, context, diagnostics) {
353
- return {
354
- textDocument: this.asTextDocumentIdentifier(model),
355
- range: this.asRange(range),
356
- context: this.asCodeActionContext(context, diagnostics)
357
- };
358
- }
359
- asCommand(item) {
360
- if (item) {
361
- let args = item.arguments || [];
362
- return services_1.Command.create(item.title, item.id, ...args);
363
- }
364
- return undefined;
365
- }
366
- asCodeLens(item) {
367
- let result = services_1.CodeLens.create(this.asRange(item.range));
368
- if (item.command) {
369
- result.command = this.asCommand(item.command);
370
- }
371
- if (ProtocolCodeLens.is(item)) {
372
- if (item.data) {
373
- result.data = item.data;
374
- }
375
- ;
376
- }
377
- return result;
378
- }
379
- asFormattingOptions(options) {
380
- return { tabSize: options.tabSize, insertSpaces: options.insertSpaces };
381
- }
382
- asDocumentFormattingParams(model, options) {
383
- return {
384
- textDocument: this.asTextDocumentIdentifier(model),
385
- options: this.asFormattingOptions(options)
386
- };
387
- }
388
- asDocumentRangeFormattingParams(model, range, options) {
389
- return {
390
- textDocument: this.asTextDocumentIdentifier(model),
391
- range: this.asRange(range),
392
- options: this.asFormattingOptions(options)
393
- };
394
- }
395
- asDocumentOnTypeFormattingParams(model, position, ch, options) {
396
- return {
397
- textDocument: this.asTextDocumentIdentifier(model),
398
- position: this.asPosition(position.lineNumber, position.column),
399
- ch,
400
- options: this.asFormattingOptions(options)
401
- };
402
- }
403
- asRenameParams(model, position, newName) {
404
- return {
405
- textDocument: this.asTextDocumentIdentifier(model),
406
- position: this.asPosition(position.lineNumber, position.column),
407
- newName
408
- };
409
- }
410
- asDocumentLinkParams(model) {
411
- return {
412
- textDocument: this.asTextDocumentIdentifier(model)
413
- };
414
- }
415
- asDocumentLink(item) {
416
- let result = services_1.DocumentLink.create(this.asRange(item.range));
417
- if (item.url) {
418
- result.target = typeof item.url === 'string' ? item.url : item.url.toString();
419
- }
420
- if (ProtocolDocumentLink.is(item) && item.data) {
421
- result.data = item.data;
422
- }
423
- if (item.tooltip) {
424
- result.tooltip = item.tooltip;
425
- }
426
- return result;
427
- }
428
- asCodeAction(item) {
429
- const result = { title: item.title };
430
- const protocolCodeAction = ProtocolCodeAction.is(item) ? item : undefined;
431
- if (Is.number(item.kind)) {
432
- result.kind = item.kind;
433
- }
434
- if (item.diagnostics) {
435
- result.diagnostics = this.asDiagnostics(item.diagnostics);
436
- }
437
- if (item.edit) {
438
- throw new Error(`VS Code code actions can only be converted to a protocol code action without an edit.`);
439
- }
440
- if (item.command) {
441
- result.command = this.asCommand(item.command);
442
- }
443
- if (item.isPreferred !== undefined) {
444
- result.isPreferred = item.isPreferred;
445
- }
446
- if (item.disabled) {
447
- result.disabled = { reason: item.disabled };
448
- }
449
- if (protocolCodeAction) {
450
- if (protocolCodeAction.data !== undefined) {
451
- result.data = protocolCodeAction.data;
452
- }
453
- }
454
- return result;
455
- }
456
- asInlayHintLabelPart(part) {
457
- return {
458
- value: part.label,
459
- command: this.asCommand(part.command),
460
- location: this.asLocation(part.location),
461
- tooltip: this.asMarkupContent(part.tooltip)
462
- };
463
- }
464
- asInlayHintLabel(label) {
465
- if (Array.isArray(label)) {
466
- return label.map(part => this.asInlayHintLabelPart(part));
467
- }
468
- return label;
469
- }
470
- asInlayHint(item) {
471
- let result = services_1.InlayHint.create(this.asPosition(item.position.lineNumber, item.position.column), this.asInlayHintLabel(item.label), item.kind);
472
- if (ProtocolInlayHint.is(item)) {
473
- if (item.data) {
474
- result.data = item.data;
475
- }
476
- ;
477
- }
478
- return result;
479
- }
480
- }
481
- exports.MonacoToProtocolConverter = MonacoToProtocolConverter;
482
- class ProtocolToMonacoConverter {
483
- constructor(_monaco) {
484
- this._monaco = _monaco;
485
- }
486
- asResourceEdits(resource, edits, asMetadata, modelVersionId) {
487
- return edits.map(edit => ({
488
- resource: resource,
489
- edit: this.asTextEdit(edit),
490
- modelVersionId,
491
- metadata: services_1.AnnotatedTextEdit.is(edit) ? asMetadata(edit.annotationId) : undefined
492
- }));
493
- }
494
- asWorkspaceEditMetadata(changeAnnotation) {
495
- return {
496
- needsConfirmation: changeAnnotation.needsConfirmation === true,
497
- label: changeAnnotation.label,
498
- description: changeAnnotation.description
499
- };
500
- }
501
- asWorkspaceEdit(item) {
502
- if (!item) {
503
- return undefined;
504
- }
505
- const sharedMetadata = new Map();
506
- if (item.changeAnnotations !== undefined) {
507
- for (const key of Object.keys(item.changeAnnotations)) {
508
- const metaData = this.asWorkspaceEditMetadata(item.changeAnnotations[key]);
509
- sharedMetadata.set(key, metaData);
510
- }
511
- }
512
- const asMetadata = (annotation) => {
513
- if (annotation === undefined) {
514
- return undefined;
515
- }
516
- else {
517
- return sharedMetadata.get(annotation);
518
- }
519
- };
520
- const edits = [];
521
- if (item.documentChanges) {
522
- item.documentChanges.forEach(change => {
523
- if (ls.CreateFile.is(change)) {
524
- edits.push({
525
- newUri: this._monaco.Uri.parse(change.uri),
526
- options: change.options,
527
- metadata: asMetadata(change.annotationId)
528
- });
529
- }
530
- else if (ls.RenameFile.is(change)) {
531
- edits.push({
532
- oldUri: this._monaco.Uri.parse(change.oldUri),
533
- newUri: this._monaco.Uri.parse(change.newUri),
534
- options: change.options,
535
- metadata: asMetadata(change.annotationId)
536
- });
537
- }
538
- else if (ls.DeleteFile.is(change)) {
539
- edits.push({
540
- oldUri: this._monaco.Uri.parse(change.uri),
541
- options: change.options,
542
- metadata: asMetadata(change.annotationId)
543
- });
544
- }
545
- else if (ls.TextDocumentEdit.is(change)) {
546
- const resource = this._monaco.Uri.parse(change.textDocument.uri);
547
- const version = typeof change.textDocument.version === 'number' ? change.textDocument.version : undefined;
548
- edits.push(...this.asResourceEdits(resource, change.edits, asMetadata, version));
549
- }
550
- else {
551
- console.error(`Unknown workspace edit change received:\n${JSON.stringify(change, undefined, 4)}`);
552
- }
553
- });
554
- }
555
- else if (item.changes) {
556
- for (const key of Object.keys(item.changes)) {
557
- const resource = this._monaco.Uri.parse(key);
558
- edits.push(...this.asResourceEdits(resource, item.changes[key], asMetadata));
559
- }
560
- }
561
- return {
562
- edits
563
- };
564
- }
565
- asTextEdit(edit) {
566
- if (!edit) {
567
- return undefined;
568
- }
569
- const range = this.asRange(edit.range);
570
- return {
571
- range,
572
- text: edit.newText
573
- };
574
- }
575
- asTextEdits(items) {
576
- if (!items) {
577
- return undefined;
578
- }
579
- return items.map(item => this.asTextEdit(item));
580
- }
581
- asCodeLens(item) {
582
- if (!item) {
583
- return undefined;
584
- }
585
- const range = this.asRange(item.range);
586
- let result = { range };
587
- if (item.command) {
588
- result.command = this.asCommand(item.command);
589
- }
590
- if (item.data !== void 0 && item.data !== null) {
591
- result.data = item.data;
592
- }
593
- return result;
594
- }
595
- asCodeLensList(items) {
596
- if (!items) {
597
- return undefined;
598
- }
599
- return {
600
- lenses: items.map((codeLens) => this.asCodeLens(codeLens)),
601
- dispose: () => { }
602
- };
603
- }
604
- asCodeActionList(actions) {
605
- return {
606
- actions: actions.map(action => this.asCodeAction(action)),
607
- dispose: () => { }
608
- };
609
- }
610
- asCodeAction(item) {
611
- if (services_1.Command.is(item)) {
612
- return {
613
- command: {
614
- id: item.command,
615
- title: item.title,
616
- arguments: item.arguments
617
- },
618
- title: item.title
619
- };
620
- }
621
- return {
622
- title: item.title,
623
- command: this.asCommand(item.command),
624
- edit: this.asWorkspaceEdit(item.edit),
625
- diagnostics: this.asDiagnostics(item.diagnostics),
626
- kind: item.kind,
627
- disabled: item.disabled ? item.disabled.reason : undefined,
628
- isPreferred: item.isPreferred,
629
- data: item.data
630
- };
631
- }
632
- asCommand(command) {
633
- if (!command) {
634
- return undefined;
635
- }
636
- return {
637
- id: command.command,
638
- title: command.title,
639
- arguments: command.arguments
640
- };
641
- }
642
- asDocumentSymbol(value) {
643
- const children = value.children && value.children.map(c => this.asDocumentSymbol(c));
644
- return {
645
- name: value.name,
646
- detail: value.detail || "",
647
- kind: this.asSymbolKind(value.kind),
648
- tags: value.tags || [],
649
- range: this.asRange(value.range),
650
- selectionRange: this.asRange(value.selectionRange),
651
- children
652
- };
653
- }
654
- asDocumentSymbols(values) {
655
- if (services_1.DocumentSymbol.is(values[0])) {
656
- return values.map(s => this.asDocumentSymbol(s));
657
- }
658
- return this.asSymbolInformations(values);
659
- }
660
- asSymbolInformations(values, uri) {
661
- if (!values) {
662
- return undefined;
663
- }
664
- return values.map(information => this.asSymbolInformation(information, uri));
665
- }
666
- asSymbolInformation(item, uri) {
667
- const location = this.asLocation(uri ? Object.assign(Object.assign({}, item.location), { uri: uri.toString() }) : item.location);
668
- return {
669
- name: item.name,
670
- detail: '',
671
- containerName: item.containerName,
672
- kind: this.asSymbolKind(item.kind),
673
- tags: item.tags || [],
674
- range: location.range,
675
- selectionRange: location.range
676
- };
677
- }
678
- asSymbolKind(item) {
679
- if (item <= services_1.SymbolKind.TypeParameter) {
680
- // Symbol kind is one based in the protocol and zero based in code.
681
- return item - 1;
682
- }
683
- return this._monaco.languages.SymbolKind.Property;
684
- }
685
- asDocumentHighlights(values) {
686
- if (!values) {
687
- return undefined;
688
- }
689
- return values.map(item => this.asDocumentHighlight(item));
690
- }
691
- asDocumentHighlight(item) {
692
- const range = this.asRange(item.range);
693
- const kind = Is.number(item.kind) ? this.asDocumentHighlightKind(item.kind) : undefined;
694
- return { range, kind };
695
- }
696
- asDocumentHighlightKind(item) {
697
- switch (item) {
698
- case services_1.DocumentHighlightKind.Text:
699
- return this._monaco.languages.DocumentHighlightKind.Text;
700
- case services_1.DocumentHighlightKind.Read:
701
- return this._monaco.languages.DocumentHighlightKind.Read;
702
- case services_1.DocumentHighlightKind.Write:
703
- return this._monaco.languages.DocumentHighlightKind.Write;
704
- }
705
- return this._monaco.languages.DocumentHighlightKind.Text;
706
- }
707
- asReferences(values) {
708
- if (!values) {
709
- return undefined;
710
- }
711
- return values.map(location => this.asLocation(location));
712
- }
713
- asDefinitionResult(item) {
714
- if (!item) {
715
- return undefined;
716
- }
717
- if (Is.array(item)) {
718
- if (item.length == 0) {
719
- return undefined;
720
- }
721
- else if (services_1.LocationLink.is(item[0])) {
722
- let links = item;
723
- return links.map((location) => this.asLocationLink(location));
724
- }
725
- else {
726
- let locations = item;
727
- return locations.map((location) => this.asLocation(location));
728
- }
729
- }
730
- else {
731
- return this.asLocation(item);
732
- }
733
- }
734
- asLocation(item) {
735
- if (!item) {
736
- return undefined;
737
- }
738
- const uri = this._monaco.Uri.parse(item.uri);
739
- const range = this.asRange(item.range);
740
- return {
741
- uri, range
742
- };
743
- }
744
- asLocationLink(item) {
745
- if (!item) {
746
- return undefined;
747
- }
748
- let result = {
749
- uri: this._monaco.Uri.parse(item.targetUri),
750
- range: this.asRange(item.targetSelectionRange),
751
- originSelectionRange: this.asRange(item.originSelectionRange),
752
- targetSelectionRange: this.asRange(item.targetSelectionRange)
753
- };
754
- if (!result.targetSelectionRange) {
755
- throw new Error(`targetSelectionRange must not be undefined or null`);
756
- }
757
- return result;
758
- }
759
- asSignatureHelpResult(item) {
760
- if (!item) {
761
- return undefined;
762
- }
763
- let result = {};
764
- if (Is.number(item.activeSignature)) {
765
- result.activeSignature = item.activeSignature;
766
- }
767
- else {
768
- // activeSignature was optional in the past
769
- result.activeSignature = 0;
770
- }
771
- if (Is.number(item.activeParameter)) {
772
- result.activeParameter = item.activeParameter;
773
- }
774
- else {
775
- // activeParameter was optional in the past
776
- result.activeParameter = 0;
777
- }
778
- if (item.signatures) {
779
- result.signatures = this.asSignatureInformations(item.signatures);
780
- }
781
- else {
782
- result.signatures = [];
783
- }
784
- return {
785
- value: result,
786
- dispose: () => { }
787
- };
788
- }
789
- asSignatureInformations(items) {
790
- return items.map(item => this.asSignatureInformation(item));
791
- }
792
- asSignatureInformation(item) {
793
- let result = { label: item.label };
794
- if (item.documentation) {
795
- result.documentation = this.asDocumentation(item.documentation);
796
- }
797
- if (item.parameters) {
798
- result.parameters = this.asParameterInformations(item.parameters);
799
- }
800
- else {
801
- result.parameters = [];
802
- }
803
- if (item.activeParameter) {
804
- result.activeParameter = item.activeParameter;
805
- }
806
- return result;
807
- }
808
- asParameterInformations(item) {
809
- return item.map(item => this.asParameterInformation(item));
810
- }
811
- asParameterInformation(item) {
812
- let result = { label: item.label };
813
- if (item.documentation) {
814
- result.documentation = this.asDocumentation(item.documentation);
815
- }
816
- ;
817
- return result;
818
- }
819
- asHover(hover) {
820
- if (!hover) {
821
- return undefined;
822
- }
823
- return {
824
- contents: this.asHoverContent(hover.contents),
825
- range: this.asRange(hover.range)
826
- };
827
- }
828
- asHoverContent(contents) {
829
- if (Array.isArray(contents)) {
830
- return contents.map(content => this.asMarkdownString(content));
831
- }
832
- return [this.asMarkdownString(contents)];
833
- }
834
- asDocumentation(value) {
835
- if (Is.string(value)) {
836
- return value;
837
- }
838
- if (value.kind === services_1.MarkupKind.PlainText) {
839
- return value.value;
840
- }
841
- return this.asMarkdownString(value);
842
- }
843
- asMarkdownString(content) {
844
- if (services_1.MarkupContent.is(content)) {
845
- return {
846
- value: content.value
847
- };
848
- }
849
- if (Is.string(content)) {
850
- return { value: content };
851
- }
852
- const { language, value } = content;
853
- return {
854
- value: '```' + language + '\n' + value + '\n```'
855
- };
856
- }
857
- asSeverity(severity) {
858
- if (severity === 1) {
859
- return this._monaco.MarkerSeverity.Error;
860
- }
861
- if (severity === 2) {
862
- return this._monaco.MarkerSeverity.Warning;
863
- }
864
- if (severity === 3) {
865
- return this._monaco.MarkerSeverity.Info;
866
- }
867
- return this._monaco.MarkerSeverity.Hint;
868
- }
869
- asDiagnostics(diagnostics) {
870
- if (!diagnostics) {
871
- return undefined;
872
- }
873
- return diagnostics.map(diagnostic => this.asDiagnostic(diagnostic));
874
- }
875
- asDiagnostic(diagnostic) {
876
- return {
877
- code: typeof diagnostic.code === "number" ? diagnostic.code.toString() : diagnostic.code,
878
- severity: this.asSeverity(diagnostic.severity),
879
- message: diagnostic.message,
880
- source: diagnostic.source,
881
- startLineNumber: diagnostic.range.start.line + 1,
882
- startColumn: diagnostic.range.start.character + 1,
883
- endLineNumber: diagnostic.range.end.line + 1,
884
- endColumn: diagnostic.range.end.character + 1,
885
- relatedInformation: this.asRelatedInformations(diagnostic.relatedInformation),
886
- tags: diagnostic.tags
887
- };
888
- }
889
- asRelatedInformations(relatedInformation) {
890
- if (!relatedInformation) {
891
- return undefined;
892
- }
893
- return relatedInformation.map(item => this.asRelatedInformation(item));
894
- }
895
- asRelatedInformation(relatedInformation) {
896
- return {
897
- resource: this._monaco.Uri.parse(relatedInformation.location.uri),
898
- startLineNumber: relatedInformation.location.range.start.line + 1,
899
- startColumn: relatedInformation.location.range.start.character + 1,
900
- endLineNumber: relatedInformation.location.range.end.line + 1,
901
- endColumn: relatedInformation.location.range.end.character + 1,
902
- message: relatedInformation.message
903
- };
904
- }
905
- asCompletionResult(result, defaultRange) {
906
- if (!result) {
907
- return {
908
- incomplete: false,
909
- suggestions: []
910
- };
911
- }
912
- if (Array.isArray(result)) {
913
- const suggestions = result.map(item => this.asCompletionItem(item, defaultRange));
914
- return {
915
- incomplete: false,
916
- suggestions
917
- };
918
- }
919
- return {
920
- incomplete: result.isIncomplete,
921
- suggestions: result.items.map(item => this.asCompletionItem(item, defaultRange))
922
- };
923
- }
924
- asCompletionItem(item, defaultRange) {
925
- const result = { label: item.label };
926
- if (item.detail) {
927
- result.detail = item.detail;
928
- }
929
- if (item.documentation) {
930
- result.documentation = this.asDocumentation(item.documentation);
931
- result.documentationFormat = Is.string(item.documentation) ? undefined : item.documentation.kind;
932
- }
933
- ;
934
- if (item.filterText) {
935
- result.filterText = item.filterText;
936
- }
937
- const insertText = this.asCompletionInsertText(item, defaultRange);
938
- result.insertText = insertText.insertText;
939
- result.range = insertText.range;
940
- result.fromEdit = insertText.fromEdit;
941
- if (insertText.isSnippet) {
942
- result.insertTextRules = this._monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet;
943
- }
944
- if (Is.number(item.kind)) {
945
- let [itemKind, original] = this.asCompletionItemKind(item.kind);
946
- result.kind = itemKind;
947
- if (original) {
948
- result.originalItemKind = original;
949
- }
950
- }
951
- if (item.sortText) {
952
- result.sortText = item.sortText;
953
- }
954
- if (item.additionalTextEdits) {
955
- result.additionalTextEdits = this.asTextEdits(item.additionalTextEdits);
956
- }
957
- if (Is.stringArray(item.commitCharacters)) {
958
- result.commitCharacters = item.commitCharacters.slice();
959
- }
960
- if (item.command) {
961
- result.command = this.asCommand(item.command);
962
- }
963
- if (item.deprecated === true || item.deprecated === false) {
964
- result.deprecated = item.deprecated;
965
- }
966
- if (item.preselect === true || item.preselect === false) {
967
- result.preselect = item.preselect;
968
- }
969
- if (item.data !== undefined) {
970
- result.data = item.data;
971
- }
972
- if (item.deprecated === true || item.deprecated === false) {
973
- result.deprecated = item.deprecated;
974
- }
975
- if (item.insertTextMode) {
976
- result.insertTextMode = item.insertTextMode;
977
- }
978
- if (item.tags) {
979
- result.tags = item.tags;
980
- }
981
- return result;
982
- }
983
- asCompletionItemKind(value) {
984
- if (services_1.CompletionItemKind.Text <= value && value <= services_1.CompletionItemKind.TypeParameter) {
985
- switch (value) {
986
- case services_1.CompletionItemKind.Text: return [this._monaco.languages.CompletionItemKind.Text, undefined];
987
- case services_1.CompletionItemKind.Method: return [this._monaco.languages.CompletionItemKind.Method, undefined];
988
- case services_1.CompletionItemKind.Function: return [this._monaco.languages.CompletionItemKind.Function, undefined];
989
- case services_1.CompletionItemKind.Constructor: return [this._monaco.languages.CompletionItemKind.Constructor, undefined];
990
- case services_1.CompletionItemKind.Field: return [this._monaco.languages.CompletionItemKind.Field, undefined];
991
- case services_1.CompletionItemKind.Variable: return [this._monaco.languages.CompletionItemKind.Variable, undefined];
992
- case services_1.CompletionItemKind.Class: return [this._monaco.languages.CompletionItemKind.Class, undefined];
993
- case services_1.CompletionItemKind.Interface: return [this._monaco.languages.CompletionItemKind.Interface, undefined];
994
- case services_1.CompletionItemKind.Module: return [this._monaco.languages.CompletionItemKind.Module, undefined];
995
- case services_1.CompletionItemKind.Property: return [this._monaco.languages.CompletionItemKind.Property, undefined];
996
- case services_1.CompletionItemKind.Unit: return [this._monaco.languages.CompletionItemKind.Unit, undefined];
997
- case services_1.CompletionItemKind.Value: return [this._monaco.languages.CompletionItemKind.Value, undefined];
998
- case services_1.CompletionItemKind.Enum: return [this._monaco.languages.CompletionItemKind.Enum, undefined];
999
- case services_1.CompletionItemKind.Keyword: return [this._monaco.languages.CompletionItemKind.Keyword, undefined];
1000
- case services_1.CompletionItemKind.Snippet: return [this._monaco.languages.CompletionItemKind.Snippet, undefined];
1001
- case services_1.CompletionItemKind.Color: return [this._monaco.languages.CompletionItemKind.Color, undefined];
1002
- case services_1.CompletionItemKind.File: return [this._monaco.languages.CompletionItemKind.File, undefined];
1003
- case services_1.CompletionItemKind.Reference: return [this._monaco.languages.CompletionItemKind.Reference, undefined];
1004
- case services_1.CompletionItemKind.Folder: return [this._monaco.languages.CompletionItemKind.Folder, undefined];
1005
- case services_1.CompletionItemKind.EnumMember: return [this._monaco.languages.CompletionItemKind.EnumMember, undefined];
1006
- case services_1.CompletionItemKind.Constant: return [this._monaco.languages.CompletionItemKind.Constant, undefined];
1007
- case services_1.CompletionItemKind.Struct: return [this._monaco.languages.CompletionItemKind.Struct, undefined];
1008
- case services_1.CompletionItemKind.Event: return [this._monaco.languages.CompletionItemKind.Event, undefined];
1009
- case services_1.CompletionItemKind.Operator: return [this._monaco.languages.CompletionItemKind.Operator, undefined];
1010
- case services_1.CompletionItemKind.TypeParameter: return [this._monaco.languages.CompletionItemKind.TypeParameter, undefined];
1011
- default: return [value - 1, undefined];
1012
- }
1013
- }
1014
- ;
1015
- return [services_1.CompletionItemKind.Text, value];
1016
- }
1017
- asCompletionInsertText(item, defaultRange) {
1018
- const isSnippet = item.insertTextFormat === services_1.InsertTextFormat.Snippet;
1019
- if (item.textEdit) {
1020
- if (services_1.TextEdit.is(item.textEdit)) {
1021
- const range = this.asRange(item.textEdit.range);
1022
- const value = item.textEdit.newText;
1023
- return { isSnippet, insertText: value, range, fromEdit: true, };
1024
- }
1025
- else {
1026
- const range = {
1027
- insert: this.asRange(item.textEdit.insert),
1028
- replace: this.asRange(item.textEdit.replace)
1029
- };
1030
- const value = item.textEdit.newText;
1031
- return { isSnippet, insertText: value, range, fromEdit: true, };
1032
- }
1033
- }
1034
- if (item.insertText) {
1035
- return { isSnippet, insertText: item.insertText, fromEdit: false, range: defaultRange };
1036
- }
1037
- return { insertText: item.label, range: defaultRange, fromEdit: false, isSnippet: false };
1038
- }
1039
- asDocumentLinks(documentLinks) {
1040
- const links = documentLinks.map(link => this.asDocumentLink(link));
1041
- return { links };
1042
- }
1043
- asDocumentLink(documentLink) {
1044
- return {
1045
- range: this.asRange(documentLink.range),
1046
- url: documentLink.target,
1047
- data: documentLink.data,
1048
- tooltip: documentLink.tooltip
1049
- };
1050
- }
1051
- asRange(range) {
1052
- if (range === undefined) {
1053
- return undefined;
1054
- }
1055
- if (range === null) {
1056
- return null;
1057
- }
1058
- const start = this.asPosition(range.start);
1059
- const end = this.asPosition(range.end);
1060
- if (start instanceof this._monaco.Position && end instanceof this._monaco.Position) {
1061
- return new this._monaco.Range(start.lineNumber, start.column, end.lineNumber, end.column);
1062
- }
1063
- const startLineNumber = !start || start.lineNumber === undefined ? undefined : start.lineNumber;
1064
- const startColumn = !start || start.column === undefined ? undefined : start.column;
1065
- const endLineNumber = !end || end.lineNumber === undefined ? undefined : end.lineNumber;
1066
- const endColumn = !end || end.column === undefined ? undefined : end.column;
1067
- return { startLineNumber, startColumn, endLineNumber, endColumn };
1068
- }
1069
- asPosition(position) {
1070
- if (position === undefined) {
1071
- return undefined;
1072
- }
1073
- if (position === null) {
1074
- return null;
1075
- }
1076
- const { line, character } = position;
1077
- const lineNumber = line === undefined ? undefined : line + 1;
1078
- const column = character === undefined ? undefined : character + 1;
1079
- if (lineNumber !== undefined && column !== undefined) {
1080
- return new this._monaco.Position(lineNumber, column);
1081
- }
1082
- return { lineNumber, column };
1083
- }
1084
- asColorInformations(items) {
1085
- return items.map(item => this.asColorInformation(item));
1086
- }
1087
- asColorInformation(item) {
1088
- return {
1089
- range: this.asRange(item.range),
1090
- color: item.color
1091
- };
1092
- }
1093
- asColorPresentations(items) {
1094
- return items.map(item => this.asColorPresentation(item));
1095
- }
1096
- asColorPresentation(item) {
1097
- return {
1098
- label: item.label,
1099
- textEdit: this.asTextEdit(item.textEdit),
1100
- additionalTextEdits: this.asTextEdits(item.additionalTextEdits)
1101
- };
1102
- }
1103
- asFoldingRanges(items) {
1104
- if (!items) {
1105
- return items;
1106
- }
1107
- return items.map(item => this.asFoldingRange(item));
1108
- }
1109
- asFoldingRange(item) {
1110
- return {
1111
- start: item.startLine + 1,
1112
- end: item.endLine + 1,
1113
- kind: this.asFoldingRangeKind(item.kind)
1114
- };
1115
- }
1116
- asFoldingRangeKind(kind) {
1117
- if (kind) {
1118
- switch (kind) {
1119
- case services_1.FoldingRangeKind.Comment:
1120
- return this._monaco.languages.FoldingRangeKind.Comment;
1121
- case services_1.FoldingRangeKind.Imports:
1122
- return this._monaco.languages.FoldingRangeKind.Imports;
1123
- case services_1.FoldingRangeKind.Region:
1124
- return this._monaco.languages.FoldingRangeKind.Region;
1125
- }
1126
- ;
1127
- }
1128
- return undefined;
1129
- }
1130
- asSemanticTokens(semanticTokens) {
1131
- return {
1132
- resultId: semanticTokens.resultId,
1133
- data: Uint32Array.from(semanticTokens.data)
1134
- };
1135
- }
1136
- asInlayHintLabelPart(part) {
1137
- return {
1138
- label: part.value,
1139
- command: this.asCommand(part.command),
1140
- location: this.asLocation(part.location),
1141
- tooltip: part.tooltip && this.asMarkdownString(part.tooltip)
1142
- };
1143
- }
1144
- asInlayHintLabel(label) {
1145
- if (Array.isArray(label)) {
1146
- return label.map(part => this.asInlayHintLabelPart(part));
1147
- }
1148
- return label;
1149
- }
1150
- asInlayHint(inlayHint) {
1151
- return {
1152
- data: inlayHint.data,
1153
- label: this.asInlayHintLabel(inlayHint.label),
1154
- position: this.asPosition(inlayHint.position),
1155
- kind: inlayHint.kind,
1156
- paddingLeft: inlayHint.paddingLeft,
1157
- paddingRight: inlayHint.paddingRight,
1158
- tooltip: inlayHint.tooltip && this.asMarkdownString(inlayHint.tooltip)
1159
- };
1160
- }
1161
- asInlayHintList(items) {
1162
- if (!items) {
1163
- return undefined;
1164
- }
1165
- return {
1166
- hints: items.map((hint) => this.asInlayHint(hint)),
1167
- dispose: () => { }
1168
- };
1169
- }
1170
- }
1171
- exports.ProtocolToMonacoConverter = ProtocolToMonacoConverter;
1172
- });
1173
- //# sourceMappingURL=monaco-converter.js.map