monaco-languageclient 1.1.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 (146) 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 +3 -1
  14. package/dist/amd/monaco-language-client.d.ts.map +1 -1
  15. package/dist/amd/monaco-language-client.js +1 -5
  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 +3 -1
  38. package/lib/monaco-language-client.d.ts.map +1 -1
  39. package/lib/monaco-language-client.js +0 -5
  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 +4 -11
  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 +3 -12
  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/converters.d.ts +0 -144
  61. package/dist/amd/converters.d.ts.map +0 -1
  62. package/dist/amd/converters.js +0 -154
  63. package/dist/amd/converters.js.map +0 -1
  64. package/dist/amd/monaco-commands.d.ts +0 -8
  65. package/dist/amd/monaco-commands.d.ts.map +0 -1
  66. package/dist/amd/monaco-commands.js +0 -15
  67. package/dist/amd/monaco-commands.js.map +0 -1
  68. package/dist/amd/monaco-converter.d.ts +0 -228
  69. package/dist/amd/monaco-converter.d.ts.map +0 -1
  70. package/dist/amd/monaco-converter.js +0 -1199
  71. package/dist/amd/monaco-converter.js.map +0 -1
  72. package/dist/amd/monaco-diagnostic-collection.d.ts +0 -32
  73. package/dist/amd/monaco-diagnostic-collection.d.ts.map +0 -1
  74. package/dist/amd/monaco-diagnostic-collection.js +0 -76
  75. package/dist/amd/monaco-diagnostic-collection.js.map +0 -1
  76. package/dist/amd/monaco-languages.d.ts +0 -70
  77. package/dist/amd/monaco-languages.d.ts.map +0 -1
  78. package/dist/amd/monaco-languages.js +0 -503
  79. package/dist/amd/monaco-languages.js.map +0 -1
  80. package/dist/amd/register-vscode.d.ts +0 -2
  81. package/dist/amd/register-vscode.d.ts.map +0 -1
  82. package/dist/amd/register-vscode.js +0 -16
  83. package/dist/amd/register-vscode.js.map +0 -1
  84. package/dist/amd/services.d.ts +0 -235
  85. package/dist/amd/services.d.ts.map +0 -1
  86. package/dist/amd/services.js +0 -69
  87. package/dist/amd/services.js.map +0 -1
  88. package/dist/amd/vscode-api.d.ts +0 -4
  89. package/dist/amd/vscode-api.d.ts.map +0 -1
  90. package/dist/amd/vscode-api.js +0 -1022
  91. package/dist/amd/vscode-api.js.map +0 -1
  92. package/dist/amd/vscode-compatibility.d.ts +0 -4
  93. package/dist/amd/vscode-compatibility.d.ts.map +0 -1
  94. package/dist/amd/vscode-compatibility.js +0 -5
  95. package/dist/amd/vscode-compatibility.js.map +0 -1
  96. package/lib/connection.d.ts +0 -53
  97. package/lib/connection.d.ts.map +0 -1
  98. package/lib/connection.js +0 -41
  99. package/lib/connection.js.map +0 -1
  100. package/lib/converters.d.ts +0 -144
  101. package/lib/converters.d.ts.map +0 -1
  102. package/lib/converters.js +0 -152
  103. package/lib/converters.js.map +0 -1
  104. package/lib/monaco-commands.d.ts +0 -8
  105. package/lib/monaco-commands.d.ts.map +0 -1
  106. package/lib/monaco-commands.js +0 -13
  107. package/lib/monaco-commands.js.map +0 -1
  108. package/lib/monaco-converter.d.ts +0 -228
  109. package/lib/monaco-converter.d.ts.map +0 -1
  110. package/lib/monaco-converter.js +0 -1199
  111. package/lib/monaco-converter.js.map +0 -1
  112. package/lib/monaco-diagnostic-collection.d.ts +0 -32
  113. package/lib/monaco-diagnostic-collection.d.ts.map +0 -1
  114. package/lib/monaco-diagnostic-collection.js +0 -75
  115. package/lib/monaco-diagnostic-collection.js.map +0 -1
  116. package/lib/monaco-languages.d.ts +0 -70
  117. package/lib/monaco-languages.d.ts.map +0 -1
  118. package/lib/monaco-languages.js +0 -504
  119. package/lib/monaco-languages.js.map +0 -1
  120. package/lib/register-vscode.d.ts +0 -2
  121. package/lib/register-vscode.d.ts.map +0 -1
  122. package/lib/register-vscode.js +0 -15
  123. package/lib/register-vscode.js.map +0 -1
  124. package/lib/services.d.ts +0 -235
  125. package/lib/services.d.ts.map +0 -1
  126. package/lib/services.js +0 -70
  127. package/lib/services.js.map +0 -1
  128. package/lib/vscode-api.d.ts +0 -4
  129. package/lib/vscode-api.d.ts.map +0 -1
  130. package/lib/vscode-api.js +0 -1025
  131. package/lib/vscode-api.js.map +0 -1
  132. package/lib/vscode-compatibility.d.ts +0 -4
  133. package/lib/vscode-compatibility.d.ts.map +0 -1
  134. package/lib/vscode-compatibility.js +0 -9
  135. package/lib/vscode-compatibility.js.map +0 -1
  136. package/src/connection.ts +0 -134
  137. package/src/converters.ts +0 -155
  138. package/src/monaco-commands.ts +0 -15
  139. package/src/monaco-converter.ts +0 -1342
  140. package/src/monaco-diagnostic-collection.ts +0 -94
  141. package/src/monaco-languages.ts +0 -571
  142. package/src/register-vscode.ts +0 -13
  143. package/src/services.ts +0 -327
  144. package/src/typings/monaco/index.d.ts +0 -21
  145. package/src/vscode-api.ts +0 -1051
  146. package/src/vscode-compatibility.ts +0 -8
@@ -1,1199 +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, defaultMonacoRange) {
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, defaultMonacoRange, defaultRange));
914
- return {
915
- incomplete: false,
916
- suggestions
917
- };
918
- }
919
- const defaultRange = this.getCompletionItemDefaultRange(result);
920
- return {
921
- incomplete: result.isIncomplete,
922
- suggestions: result.items.map(item => this.asCompletionItem(item, defaultMonacoRange, defaultRange, result.itemDefaults))
923
- };
924
- }
925
- asCompletionItem(item, defaultMonacoRange, defaultRange, itemDefaults) {
926
- var _a, _b, _c;
927
- const result = { label: this.asCompletionItemLabel(item) };
928
- if (item.detail) {
929
- result.detail = item.detail;
930
- }
931
- if (item.documentation) {
932
- result.documentation = this.asDocumentation(item.documentation);
933
- result.documentationFormat = Is.string(item.documentation) ? undefined : item.documentation.kind;
934
- }
935
- ;
936
- if (item.filterText) {
937
- result.filterText = item.filterText;
938
- }
939
- const insertText = this.asCompletionInsertText(item, defaultRange, itemDefaults === null || itemDefaults === void 0 ? void 0 : itemDefaults.insertTextFormat);
940
- result.insertText = insertText.insertText;
941
- result.range = (_a = insertText.range) !== null && _a !== void 0 ? _a : defaultMonacoRange;
942
- result.fromEdit = insertText.fromEdit;
943
- if (insertText.isSnippet) {
944
- result.insertTextRules = this._monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet;
945
- }
946
- if (Is.number(item.kind)) {
947
- let [itemKind, original] = this.asCompletionItemKind(item.kind);
948
- result.kind = itemKind;
949
- if (original) {
950
- result.originalItemKind = original;
951
- }
952
- }
953
- if (item.sortText) {
954
- result.sortText = item.sortText;
955
- }
956
- if (item.additionalTextEdits) {
957
- result.additionalTextEdits = this.asTextEdits(item.additionalTextEdits);
958
- }
959
- if (Is.stringArray(item.commitCharacters)) {
960
- result.commitCharacters = item.commitCharacters.slice();
961
- }
962
- if (item.command) {
963
- result.command = this.asCommand(item.command);
964
- }
965
- if (item.deprecated === true || item.deprecated === false) {
966
- result.deprecated = item.deprecated;
967
- }
968
- if (item.preselect === true || item.preselect === false) {
969
- result.preselect = item.preselect;
970
- }
971
- const data = (_b = item.data) !== null && _b !== void 0 ? _b : itemDefaults === null || itemDefaults === void 0 ? void 0 : itemDefaults.data;
972
- if (data !== undefined) {
973
- result.data = data;
974
- }
975
- if (item.deprecated === true || item.deprecated === false) {
976
- result.deprecated = item.deprecated;
977
- }
978
- const insertTextMode = (_c = item.insertTextMode) !== null && _c !== void 0 ? _c : itemDefaults === null || itemDefaults === void 0 ? void 0 : itemDefaults.insertTextMode;
979
- if (insertTextMode) {
980
- result.insertTextMode = insertTextMode;
981
- }
982
- if (item.tags) {
983
- result.tags = item.tags;
984
- }
985
- return result;
986
- }
987
- getCompletionItemDefaultRange(list) {
988
- var _a;
989
- const rangeDefaults = (_a = list.itemDefaults) === null || _a === void 0 ? void 0 : _a.editRange;
990
- return ls.Range.is(rangeDefaults)
991
- ? this.asRange(rangeDefaults)
992
- : rangeDefaults !== undefined
993
- ? { insert: this.asRange(rangeDefaults.insert), replace: this.asRange(rangeDefaults.replace) }
994
- : undefined;
995
- }
996
- asCompletionItemLabel(item) {
997
- if (ls.CompletionItemLabelDetails.is(item.labelDetails)) {
998
- return {
999
- label: item.label,
1000
- detail: item.labelDetails.detail,
1001
- description: item.labelDetails.description
1002
- };
1003
- }
1004
- else {
1005
- return item.label;
1006
- }
1007
- }
1008
- asCompletionItemKind(value) {
1009
- if (services_1.CompletionItemKind.Text <= value && value <= services_1.CompletionItemKind.TypeParameter) {
1010
- switch (value) {
1011
- case services_1.CompletionItemKind.Text: return [this._monaco.languages.CompletionItemKind.Text, undefined];
1012
- case services_1.CompletionItemKind.Method: return [this._monaco.languages.CompletionItemKind.Method, undefined];
1013
- case services_1.CompletionItemKind.Function: return [this._monaco.languages.CompletionItemKind.Function, undefined];
1014
- case services_1.CompletionItemKind.Constructor: return [this._monaco.languages.CompletionItemKind.Constructor, undefined];
1015
- case services_1.CompletionItemKind.Field: return [this._monaco.languages.CompletionItemKind.Field, undefined];
1016
- case services_1.CompletionItemKind.Variable: return [this._monaco.languages.CompletionItemKind.Variable, undefined];
1017
- case services_1.CompletionItemKind.Class: return [this._monaco.languages.CompletionItemKind.Class, undefined];
1018
- case services_1.CompletionItemKind.Interface: return [this._monaco.languages.CompletionItemKind.Interface, undefined];
1019
- case services_1.CompletionItemKind.Module: return [this._monaco.languages.CompletionItemKind.Module, undefined];
1020
- case services_1.CompletionItemKind.Property: return [this._monaco.languages.CompletionItemKind.Property, undefined];
1021
- case services_1.CompletionItemKind.Unit: return [this._monaco.languages.CompletionItemKind.Unit, undefined];
1022
- case services_1.CompletionItemKind.Value: return [this._monaco.languages.CompletionItemKind.Value, undefined];
1023
- case services_1.CompletionItemKind.Enum: return [this._monaco.languages.CompletionItemKind.Enum, undefined];
1024
- case services_1.CompletionItemKind.Keyword: return [this._monaco.languages.CompletionItemKind.Keyword, undefined];
1025
- case services_1.CompletionItemKind.Snippet: return [this._monaco.languages.CompletionItemKind.Snippet, undefined];
1026
- case services_1.CompletionItemKind.Color: return [this._monaco.languages.CompletionItemKind.Color, undefined];
1027
- case services_1.CompletionItemKind.File: return [this._monaco.languages.CompletionItemKind.File, undefined];
1028
- case services_1.CompletionItemKind.Reference: return [this._monaco.languages.CompletionItemKind.Reference, undefined];
1029
- case services_1.CompletionItemKind.Folder: return [this._monaco.languages.CompletionItemKind.Folder, undefined];
1030
- case services_1.CompletionItemKind.EnumMember: return [this._monaco.languages.CompletionItemKind.EnumMember, undefined];
1031
- case services_1.CompletionItemKind.Constant: return [this._monaco.languages.CompletionItemKind.Constant, undefined];
1032
- case services_1.CompletionItemKind.Struct: return [this._monaco.languages.CompletionItemKind.Struct, undefined];
1033
- case services_1.CompletionItemKind.Event: return [this._monaco.languages.CompletionItemKind.Event, undefined];
1034
- case services_1.CompletionItemKind.Operator: return [this._monaco.languages.CompletionItemKind.Operator, undefined];
1035
- case services_1.CompletionItemKind.TypeParameter: return [this._monaco.languages.CompletionItemKind.TypeParameter, undefined];
1036
- default: return [value - 1, undefined];
1037
- }
1038
- }
1039
- ;
1040
- return [services_1.CompletionItemKind.Text, value];
1041
- }
1042
- asCompletionInsertText(item, defaultRange, defaultInsertTextFormat) {
1043
- var _a, _b;
1044
- const insertTextFormat = (_a = item.insertTextFormat) !== null && _a !== void 0 ? _a : defaultInsertTextFormat;
1045
- const isSnippet = insertTextFormat === services_1.InsertTextFormat.Snippet;
1046
- if (item.textEdit !== undefined || defaultRange !== undefined) {
1047
- const [range, newText] = item.textEdit !== undefined
1048
- ? this.getCompletionRangeAndText(item.textEdit)
1049
- : [defaultRange, (_b = item.textEditText) !== null && _b !== void 0 ? _b : item.label];
1050
- return { insertText: newText, range: range, fromEdit: true, isSnippet };
1051
- }
1052
- else if (item.insertText) {
1053
- return { isSnippet, insertText: item.insertText, fromEdit: false, range: defaultRange };
1054
- }
1055
- return { insertText: item.label, range: defaultRange, fromEdit: false, isSnippet: false };
1056
- }
1057
- getCompletionRangeAndText(value) {
1058
- if (ls.InsertReplaceEdit.is(value)) {
1059
- return [{ insert: this.asRange(value.insert), replace: this.asRange(value.replace) }, value.newText];
1060
- }
1061
- else {
1062
- return [this.asRange(value.range), value.newText];
1063
- }
1064
- }
1065
- asDocumentLinks(documentLinks) {
1066
- const links = documentLinks.map(link => this.asDocumentLink(link));
1067
- return { links };
1068
- }
1069
- asDocumentLink(documentLink) {
1070
- return {
1071
- range: this.asRange(documentLink.range),
1072
- url: documentLink.target,
1073
- data: documentLink.data,
1074
- tooltip: documentLink.tooltip
1075
- };
1076
- }
1077
- asRange(range) {
1078
- if (range === undefined) {
1079
- return undefined;
1080
- }
1081
- if (range === null) {
1082
- return null;
1083
- }
1084
- const start = this.asPosition(range.start);
1085
- const end = this.asPosition(range.end);
1086
- if (start instanceof this._monaco.Position && end instanceof this._monaco.Position) {
1087
- return new this._monaco.Range(start.lineNumber, start.column, end.lineNumber, end.column);
1088
- }
1089
- const startLineNumber = !start || start.lineNumber === undefined ? undefined : start.lineNumber;
1090
- const startColumn = !start || start.column === undefined ? undefined : start.column;
1091
- const endLineNumber = !end || end.lineNumber === undefined ? undefined : end.lineNumber;
1092
- const endColumn = !end || end.column === undefined ? undefined : end.column;
1093
- return { startLineNumber, startColumn, endLineNumber, endColumn };
1094
- }
1095
- asPosition(position) {
1096
- if (position === undefined) {
1097
- return undefined;
1098
- }
1099
- if (position === null) {
1100
- return null;
1101
- }
1102
- const { line, character } = position;
1103
- const lineNumber = line === undefined ? undefined : line + 1;
1104
- const column = character === undefined ? undefined : character + 1;
1105
- if (lineNumber !== undefined && column !== undefined) {
1106
- return new this._monaco.Position(lineNumber, column);
1107
- }
1108
- return { lineNumber, column };
1109
- }
1110
- asColorInformations(items) {
1111
- return items.map(item => this.asColorInformation(item));
1112
- }
1113
- asColorInformation(item) {
1114
- return {
1115
- range: this.asRange(item.range),
1116
- color: item.color
1117
- };
1118
- }
1119
- asColorPresentations(items) {
1120
- return items.map(item => this.asColorPresentation(item));
1121
- }
1122
- asColorPresentation(item) {
1123
- return {
1124
- label: item.label,
1125
- textEdit: this.asTextEdit(item.textEdit),
1126
- additionalTextEdits: this.asTextEdits(item.additionalTextEdits)
1127
- };
1128
- }
1129
- asFoldingRanges(items) {
1130
- if (!items) {
1131
- return items;
1132
- }
1133
- return items.map(item => this.asFoldingRange(item));
1134
- }
1135
- asFoldingRange(item) {
1136
- return {
1137
- start: item.startLine + 1,
1138
- end: item.endLine + 1,
1139
- kind: this.asFoldingRangeKind(item.kind)
1140
- };
1141
- }
1142
- asFoldingRangeKind(kind) {
1143
- if (kind) {
1144
- switch (kind) {
1145
- case services_1.FoldingRangeKind.Comment:
1146
- return this._monaco.languages.FoldingRangeKind.Comment;
1147
- case services_1.FoldingRangeKind.Imports:
1148
- return this._monaco.languages.FoldingRangeKind.Imports;
1149
- case services_1.FoldingRangeKind.Region:
1150
- return this._monaco.languages.FoldingRangeKind.Region;
1151
- }
1152
- ;
1153
- }
1154
- return undefined;
1155
- }
1156
- asSemanticTokens(semanticTokens) {
1157
- return {
1158
- resultId: semanticTokens.resultId,
1159
- data: Uint32Array.from(semanticTokens.data)
1160
- };
1161
- }
1162
- asInlayHintLabelPart(part) {
1163
- return {
1164
- label: part.value,
1165
- command: this.asCommand(part.command),
1166
- location: this.asLocation(part.location),
1167
- tooltip: part.tooltip && this.asMarkdownString(part.tooltip)
1168
- };
1169
- }
1170
- asInlayHintLabel(label) {
1171
- if (Array.isArray(label)) {
1172
- return label.map(part => this.asInlayHintLabelPart(part));
1173
- }
1174
- return label;
1175
- }
1176
- asInlayHint(inlayHint) {
1177
- return {
1178
- data: inlayHint.data,
1179
- label: this.asInlayHintLabel(inlayHint.label),
1180
- position: this.asPosition(inlayHint.position),
1181
- kind: inlayHint.kind,
1182
- paddingLeft: inlayHint.paddingLeft,
1183
- paddingRight: inlayHint.paddingRight,
1184
- tooltip: inlayHint.tooltip && this.asMarkdownString(inlayHint.tooltip)
1185
- };
1186
- }
1187
- asInlayHintList(items) {
1188
- if (!items) {
1189
- return undefined;
1190
- }
1191
- return {
1192
- hints: items.map((hint) => this.asInlayHint(hint)),
1193
- dispose: () => { }
1194
- };
1195
- }
1196
- }
1197
- exports.ProtocolToMonacoConverter = ProtocolToMonacoConverter;
1198
- });
1199
- //# sourceMappingURL=monaco-converter.js.map