@theia/plugin-ext 1.26.0-next.7 → 1.26.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 (163) hide show
  1. package/lib/common/paths-util.js +1 -1
  2. package/lib/common/paths-util.js.map +1 -1
  3. package/lib/common/plugin-api-rpc-model.d.ts +12 -12
  4. package/lib/common/plugin-api-rpc-model.d.ts.map +1 -1
  5. package/lib/common/plugin-api-rpc-model.js +3 -1
  6. package/lib/common/plugin-api-rpc-model.js.map +1 -1
  7. package/lib/common/plugin-api-rpc.d.ts +24 -5
  8. package/lib/common/plugin-api-rpc.d.ts.map +1 -1
  9. package/lib/common/plugin-api-rpc.js +2 -1
  10. package/lib/common/plugin-api-rpc.js.map +1 -1
  11. package/lib/common/plugin-protocol.d.ts +1 -0
  12. package/lib/common/plugin-protocol.d.ts.map +1 -1
  13. package/lib/common/plugin-protocol.js.map +1 -1
  14. package/lib/hosted/browser/worker/worker-main.js +4 -2
  15. package/lib/hosted/browser/worker/worker-main.js.map +1 -1
  16. package/lib/hosted/node/hosted-plugin-deployer-handler.d.ts.map +1 -1
  17. package/lib/hosted/node/hosted-plugin-deployer-handler.js +2 -0
  18. package/lib/hosted/node/hosted-plugin-deployer-handler.js.map +1 -1
  19. package/lib/hosted/node/plugin-host-proxy.d.ts +18 -0
  20. package/lib/hosted/node/plugin-host-proxy.d.ts.map +1 -0
  21. package/lib/hosted/node/plugin-host-proxy.js +70 -0
  22. package/lib/hosted/node/plugin-host-proxy.js.map +1 -0
  23. package/lib/hosted/node/plugin-host-rpc.d.ts.map +1 -1
  24. package/lib/hosted/node/plugin-host-rpc.js +6 -2
  25. package/lib/hosted/node/plugin-host-rpc.js.map +1 -1
  26. package/lib/main/browser/debug/debug-main.d.ts +1 -0
  27. package/lib/main/browser/debug/debug-main.d.ts.map +1 -1
  28. package/lib/main/browser/debug/debug-main.js +3 -1
  29. package/lib/main/browser/debug/debug-main.js.map +1 -1
  30. package/lib/main/browser/debug/plugin-debug-adapter-contribution.d.ts +1 -1
  31. package/lib/main/browser/debug/plugin-debug-adapter-contribution.d.ts.map +1 -1
  32. package/lib/main/browser/debug/plugin-debug-adapter-contribution.js +2 -2
  33. package/lib/main/browser/debug/plugin-debug-adapter-contribution.js.map +1 -1
  34. package/lib/main/browser/debug/plugin-debug-service.d.ts +3 -1
  35. package/lib/main/browser/debug/plugin-debug-service.d.ts.map +1 -1
  36. package/lib/main/browser/debug/plugin-debug-service.js +14 -3
  37. package/lib/main/browser/debug/plugin-debug-service.js.map +1 -1
  38. package/lib/main/browser/debug/plugin-debug-session-factory.d.ts +5 -2
  39. package/lib/main/browser/debug/plugin-debug-session-factory.d.ts.map +1 -1
  40. package/lib/main/browser/debug/plugin-debug-session-factory.js +6 -4
  41. package/lib/main/browser/debug/plugin-debug-session-factory.js.map +1 -1
  42. package/lib/main/browser/documents-main.d.ts.map +1 -1
  43. package/lib/main/browser/documents-main.js +2 -0
  44. package/lib/main/browser/documents-main.js.map +1 -1
  45. package/lib/main/browser/languages-main.d.ts +8 -2
  46. package/lib/main/browser/languages-main.d.ts.map +1 -1
  47. package/lib/main/browser/languages-main.js +36 -0
  48. package/lib/main/browser/languages-main.js.map +1 -1
  49. package/lib/main/browser/plugin-ext-frontend-module.d.ts.map +1 -1
  50. package/lib/main/browser/plugin-ext-frontend-module.js +0 -3
  51. package/lib/main/browser/plugin-ext-frontend-module.js.map +1 -1
  52. package/lib/main/browser/status-bar-message-registry-main.d.ts +2 -1
  53. package/lib/main/browser/status-bar-message-registry-main.d.ts.map +1 -1
  54. package/lib/main/browser/status-bar-message-registry-main.js.map +1 -1
  55. package/lib/main/browser/terminal-main.js +1 -1
  56. package/lib/main/browser/terminal-main.js.map +1 -1
  57. package/lib/main/browser/view/tree-view-widget.js +2 -2
  58. package/lib/main/browser/view/tree-view-widget.js.map +1 -1
  59. package/lib/plugin/comments.js +1 -1
  60. package/lib/plugin/comments.js.map +1 -1
  61. package/lib/plugin/documents.d.ts.map +1 -1
  62. package/lib/plugin/documents.js +3 -1
  63. package/lib/plugin/documents.js.map +1 -1
  64. package/lib/plugin/file-system-event-service-ext-impl.d.ts +1 -1
  65. package/lib/plugin/file-system-event-service-ext-impl.d.ts.map +1 -1
  66. package/lib/plugin/file-system-event-service-ext-impl.js +1 -1
  67. package/lib/plugin/file-system-event-service-ext-impl.js.map +1 -1
  68. package/lib/plugin/languages/linked-editing-range.d.ts +12 -0
  69. package/lib/plugin/languages/linked-editing-range.d.ts.map +1 -0
  70. package/lib/plugin/languages/linked-editing-range.js +41 -0
  71. package/lib/plugin/languages/linked-editing-range.js.map +1 -0
  72. package/lib/plugin/languages-utils.d.ts +6 -0
  73. package/lib/plugin/languages-utils.d.ts.map +1 -0
  74. package/lib/plugin/languages-utils.js +52 -0
  75. package/lib/plugin/languages-utils.js.map +1 -0
  76. package/lib/plugin/languages.d.ts +7 -2
  77. package/lib/plugin/languages.d.ts.map +1 -1
  78. package/lib/plugin/languages.js +132 -33
  79. package/lib/plugin/languages.js.map +1 -1
  80. package/lib/plugin/markdown-string.d.ts +23 -9
  81. package/lib/plugin/markdown-string.d.ts.map +1 -1
  82. package/lib/plugin/markdown-string.js +97 -26
  83. package/lib/plugin/markdown-string.js.map +1 -1
  84. package/lib/plugin/node/debug/debug.d.ts +1 -1
  85. package/lib/plugin/node/debug/debug.d.ts.map +1 -1
  86. package/lib/plugin/node/debug/debug.js +2 -1
  87. package/lib/plugin/node/debug/debug.js.map +1 -1
  88. package/lib/plugin/node/debug/plugin-debug-adapter-session.d.ts +1 -0
  89. package/lib/plugin/node/debug/plugin-debug-adapter-session.d.ts.map +1 -1
  90. package/lib/plugin/node/debug/plugin-debug-adapter-session.js +1 -0
  91. package/lib/plugin/node/debug/plugin-debug-adapter-session.js.map +1 -1
  92. package/lib/plugin/plugin-context.d.ts.map +1 -1
  93. package/lib/plugin/plugin-context.js +11 -2
  94. package/lib/plugin/plugin-context.js.map +1 -1
  95. package/lib/plugin/plugin-manager.d.ts.map +1 -1
  96. package/lib/plugin/plugin-manager.js +3 -1
  97. package/lib/plugin/plugin-manager.js.map +1 -1
  98. package/lib/plugin/prefix-sum-computer.d.ts +1 -1
  99. package/lib/plugin/prefix-sum-computer.d.ts.map +1 -1
  100. package/lib/plugin/prefix-sum-computer.js +8 -8
  101. package/lib/plugin/prefix-sum-computer.js.map +1 -1
  102. package/lib/plugin/scm.js +1 -1
  103. package/lib/plugin/scm.js.map +1 -1
  104. package/lib/plugin/status-bar/status-bar-item.d.ts +2 -2
  105. package/lib/plugin/status-bar/status-bar-item.d.ts.map +1 -1
  106. package/lib/plugin/status-bar/status-bar-item.js.map +1 -1
  107. package/lib/plugin/terminal-ext.d.ts +2 -1
  108. package/lib/plugin/terminal-ext.d.ts.map +1 -1
  109. package/lib/plugin/terminal-ext.js +2 -1
  110. package/lib/plugin/terminal-ext.js.map +1 -1
  111. package/lib/plugin/theming.d.ts +1 -1
  112. package/lib/plugin/theming.js +3 -3
  113. package/lib/plugin/type-converters.d.ts +6 -5
  114. package/lib/plugin/type-converters.d.ts.map +1 -1
  115. package/lib/plugin/type-converters.js +12 -6
  116. package/lib/plugin/type-converters.js.map +1 -1
  117. package/lib/plugin/type-converters.spec.js +16 -15
  118. package/lib/plugin/type-converters.spec.js.map +1 -1
  119. package/lib/plugin/types-impl.d.ts +21 -8
  120. package/lib/plugin/types-impl.d.ts.map +1 -1
  121. package/lib/plugin/types-impl.js +25 -7
  122. package/lib/plugin/types-impl.js.map +1 -1
  123. package/lib/plugin/workspace.js +1 -1
  124. package/lib/plugin/workspace.js.map +1 -1
  125. package/package.json +26 -24
  126. package/src/common/paths-util.ts +1 -1
  127. package/src/common/plugin-api-rpc-model.ts +13 -12
  128. package/src/common/plugin-api-rpc.ts +30 -6
  129. package/src/common/plugin-protocol.ts +1 -0
  130. package/src/hosted/browser/worker/worker-main.ts +4 -2
  131. package/src/hosted/node/hosted-plugin-deployer-handler.ts +1 -0
  132. package/src/hosted/node/plugin-host-proxy.ts +80 -0
  133. package/src/hosted/node/plugin-host-rpc.ts +6 -2
  134. package/src/main/browser/debug/debug-main.ts +5 -1
  135. package/src/main/browser/debug/plugin-debug-adapter-contribution.ts +2 -2
  136. package/src/main/browser/debug/plugin-debug-service.ts +16 -3
  137. package/src/main/browser/debug/plugin-debug-session-factory.ts +9 -4
  138. package/src/main/browser/documents-main.ts +2 -0
  139. package/src/main/browser/languages-main.ts +43 -2
  140. package/src/main/browser/plugin-ext-frontend-module.ts +0 -4
  141. package/src/main/browser/status-bar-message-registry-main.ts +2 -1
  142. package/src/main/browser/terminal-main.ts +1 -1
  143. package/src/main/browser/view/tree-view-widget.tsx +2 -2
  144. package/src/plugin/comments.ts +1 -1
  145. package/src/plugin/documents.ts +9 -8
  146. package/src/plugin/file-system-event-service-ext-impl.ts +1 -1
  147. package/src/plugin/languages/linked-editing-range.ts +48 -0
  148. package/src/plugin/languages-utils.ts +55 -0
  149. package/src/plugin/languages.ts +139 -40
  150. package/src/plugin/markdown-string.ts +83 -26
  151. package/src/plugin/node/debug/debug.ts +2 -1
  152. package/src/plugin/node/debug/plugin-debug-adapter-session.ts +2 -0
  153. package/src/plugin/plugin-context.ts +15 -3
  154. package/src/plugin/plugin-manager.ts +3 -1
  155. package/src/plugin/prefix-sum-computer.ts +8 -8
  156. package/src/plugin/scm.ts +1 -1
  157. package/src/plugin/status-bar/status-bar-item.ts +3 -3
  158. package/src/plugin/terminal-ext.ts +5 -2
  159. package/src/plugin/theming.ts +4 -4
  160. package/src/plugin/type-converters.spec.ts +20 -17
  161. package/src/plugin/type-converters.ts +17 -12
  162. package/src/plugin/types-impl.ts +31 -11
  163. package/src/plugin/workspace.ts +1 -1
@@ -19,7 +19,8 @@ import * as Converter from './type-converters';
19
19
  import * as theia from '@theia/plugin';
20
20
  import * as types from './types-impl';
21
21
  import * as model from '../common/plugin-api-rpc-model';
22
- import { MarkdownString, isMarkdownString } from './markdown-string';
22
+ import { MarkdownString } from './markdown-string';
23
+ import { MarkdownString as MarkdownStringInterface } from '@theia/core/lib/common/markdown-rendering';
23
24
  import { TaskDto } from '../common/plugin-api-rpc';
24
25
  import { TaskGroup } from './types-impl';
25
26
 
@@ -63,7 +64,7 @@ describe('Type converters:', () => {
63
64
  const markdownString = new MarkdownString('**test**');
64
65
 
65
66
  // when
66
- const result = isMarkdownString(markdownString);
67
+ const result = MarkdownStringInterface.is(markdownString);
67
68
 
68
69
  // then
69
70
  assert.deepStrictEqual(result !== false, true);
@@ -74,7 +75,7 @@ describe('Type converters:', () => {
74
75
  const markdownObject = { value: '*test*' };
75
76
 
76
77
  // when
77
- const result = isMarkdownString(markdownObject);
78
+ const result = MarkdownStringInterface.is(markdownObject);
78
79
 
79
80
  // then
80
81
  assert.deepStrictEqual(result !== false, true);
@@ -85,7 +86,7 @@ describe('Type converters:', () => {
85
86
  const markdownObject = { field1: 5, value: '*test*', field2: 'test' };
86
87
 
87
88
  // when
88
- const result = isMarkdownString(markdownObject);
89
+ const result = MarkdownStringInterface.is(markdownObject);
89
90
 
90
91
  // then
91
92
  assert.deepStrictEqual(result !== false, true);
@@ -96,7 +97,7 @@ describe('Type converters:', () => {
96
97
  const nonMarkdownObject = { field1: 5, field2: 'test' };
97
98
 
98
99
  // when
99
- const result = isMarkdownString(nonMarkdownObject);
100
+ const result = MarkdownStringInterface.is(nonMarkdownObject);
100
101
 
101
102
  // then
102
103
  assert.deepStrictEqual(result === false, true);
@@ -107,7 +108,7 @@ describe('Type converters:', () => {
107
108
  const nonMarkdownObject = { isTrusted: true, field1: 5, field2: 'test' };
108
109
 
109
110
  // when
110
- const result = isMarkdownString(nonMarkdownObject);
111
+ const result = MarkdownStringInterface.is(nonMarkdownObject);
111
112
 
112
113
  // then
113
114
  assert.deepStrictEqual(result === false, true);
@@ -125,10 +126,11 @@ describe('Type converters:', () => {
125
126
 
126
127
  it('should convert plugin markdown to model markdown', () => {
127
128
  // when
128
- const result = { ...Converter.fromMarkdown(pluginMarkdown) };
129
+ const result = Converter.fromMarkdown(pluginMarkdown);
129
130
 
130
131
  // then
131
- assert.deepStrictEqual(result, modelMarkdown);
132
+ assert.deepStrictEqual(result, { ...modelMarkdown, supportThemeIcons: false, supportHtml: false },
133
+ 'The implementation includes an explicit default `false` for `supportThemeIcons` and `supportHtml`');
132
134
  });
133
135
 
134
136
  it('should convert string to model markdown', () => {
@@ -153,20 +155,21 @@ describe('Type converters:', () => {
153
155
  const markups: (theia.MarkdownString | theia.MarkedString)[] = [
154
156
  pluginMarkdown,
155
157
  aStringWithMarkdown,
156
- codeblock
158
+ codeblock,
159
+ new MarkdownString('hello', true),
157
160
  ];
158
161
 
159
162
  // when
160
- const result: model.MarkdownString[] = Converter.fromManyMarkdown(markups)
161
- // convert to vanilla JS Object for deepStrictEqual comparison:
162
- .map(md => ({ ...md }));
163
-
163
+ const result: model.MarkdownString[] = Converter.fromManyMarkdown(markups);
164
164
  // then
165
165
  assert.deepStrictEqual(Array.isArray(result), true);
166
- assert.deepStrictEqual(result.length, 3);
167
- assert.deepStrictEqual(result[0], modelMarkdown);
168
- assert.deepStrictEqual(result[1], modelMarkdown);
169
- assert.deepStrictEqual(result[2], modelMarkdownWithCode);
166
+ assert.deepStrictEqual(result.length, 4);
167
+ assert.deepStrictEqual(result[0], { ...modelMarkdown, supportThemeIcons: false, supportHtml: false, },
168
+ 'MarkdownString implementation includes default value for `supportThemeIcons` and `supportHtml`');
169
+ assert.deepStrictEqual(result[1], modelMarkdown, 'Strings should be converted to Markdown.');
170
+ assert.deepStrictEqual(result[2], modelMarkdownWithCode, 'Objects matching the interface should be unchanged');
171
+ assert.deepStrictEqual(result[3], { value: 'hello', supportThemeIcons: true, supportHtml: false },
172
+ 'The constructor argument to MarkdownString for theme icons is respected.');
170
173
  });
171
174
  });
172
175
 
@@ -22,11 +22,12 @@ import {
22
22
  DecorationOptions, EditorPosition, Plugin, Position, WorkspaceTextEditDto, WorkspaceFileEditDto, Selection, TaskDto, WorkspaceEditDto
23
23
  } from '../common/plugin-api-rpc';
24
24
  import * as model from '../common/plugin-api-rpc-model';
25
- import { LanguageFilter, LanguageSelector, RelativePattern } from '@theia/callhierarchy/lib/common/language-selector';
26
- import { isMarkdownString, MarkdownString } from './markdown-string';
25
+ import { LanguageFilter, LanguageSelector, RelativePattern } from '@theia/editor/lib/common/language-selector';
26
+ import { MarkdownString as PluginMarkdownStringImpl } from './markdown-string';
27
27
  import * as types from './types-impl';
28
28
  import { UriComponents } from '../common/uri-components';
29
29
  import { isReadonlyArray } from '../common/arrays';
30
+ import { MarkdownString as MarkdownStringDTO } from '@theia/core/lib/common/markdown-rendering';
30
31
 
31
32
  const SIDE_GROUP = -2;
32
33
  const ACTIVE_GROUP = -1;
@@ -172,7 +173,7 @@ export function fromRangeOrRangeWithMessage(ranges: theia.Range[] | theia.Decora
172
173
  }
173
174
  }
174
175
 
175
- export function fromManyMarkdown(markup: (theia.MarkdownString | theia.MarkedString)[]): model.MarkdownString[] {
176
+ export function fromManyMarkdown(markup: (theia.MarkdownString | theia.MarkedString)[]): MarkdownStringDTO[] {
176
177
  return markup.map(fromMarkdown);
177
178
  }
178
179
 
@@ -188,23 +189,27 @@ function isCodeblock(thing: any): thing is Codeblock {
188
189
  && typeof (<Codeblock>thing).value === 'string';
189
190
  }
190
191
 
191
- export function fromMarkdown(markup: theia.MarkdownString | theia.MarkedString): model.MarkdownString {
192
+ export function fromMarkdown(markup: theia.MarkdownString | theia.MarkedString): MarkdownStringDTO {
192
193
  if (isCodeblock(markup)) {
193
194
  const { language, value } = markup;
194
195
  return { value: '```' + language + '\n' + value + '\n```\n' };
195
- } else if (isMarkdownString(markup)) {
196
+ } else if (markup instanceof PluginMarkdownStringImpl) {
197
+ return markup.toJSON();
198
+ } else if (MarkdownStringDTO.is(markup)) {
196
199
  return markup;
197
200
  } else if (typeof markup === 'string') {
198
- return { value: <string>markup };
201
+ return { value: markup };
199
202
  } else {
200
203
  return { value: '' };
201
204
  }
202
205
  }
203
206
 
204
- export function toMarkdown(value: model.MarkdownString): MarkdownString {
205
- const ret = new MarkdownString(value.value);
206
- ret.isTrusted = value.isTrusted;
207
- return ret;
207
+ export function toMarkdown(value: MarkdownStringDTO): PluginMarkdownStringImpl {
208
+ const implemented = new PluginMarkdownStringImpl(value.value, value.supportThemeIcons);
209
+ implemented.isTrusted = value.isTrusted;
210
+ implemented.supportHtml = value.supportHtml;
211
+ implemented.baseUri = value.baseUri && URI.revive(implemented.baseUri);
212
+ return implemented;
208
213
  }
209
214
 
210
215
  export function fromDocumentSelector(selector: theia.DocumentSelector | undefined): LanguageSelector | undefined {
@@ -466,7 +471,7 @@ export namespace ParameterInformation {
466
471
  export function to(info: model.ParameterInformation): types.ParameterInformation {
467
472
  return {
468
473
  label: info.label,
469
- documentation: isMarkdownString(info.documentation) ? toMarkdown(info.documentation) : info.documentation
474
+ documentation: MarkdownStringDTO.is(info.documentation) ? toMarkdown(info.documentation) : info.documentation
470
475
  };
471
476
  }
472
477
  }
@@ -484,7 +489,7 @@ export namespace SignatureInformation {
484
489
  export function to(info: model.SignatureInformation): types.SignatureInformation {
485
490
  return {
486
491
  label: info.label,
487
- documentation: isMarkdownString(info.documentation) ? toMarkdown(info.documentation) : info.documentation,
492
+ documentation: MarkdownStringDTO.is(info.documentation) ? toMarkdown(info.documentation) : info.documentation,
488
493
  parameters: info.parameters && info.parameters.map(ParameterInformation.to)
489
494
  };
490
495
  }
@@ -28,7 +28,6 @@ import type * as theia from '@theia/plugin';
28
28
  import { URI as CodeURI, UriComponents } from '@theia/core/shared/vscode-uri';
29
29
  import { relative } from '../common/paths-util';
30
30
  import { startsWithIgnoreCase } from '@theia/core/lib/common/strings';
31
- import { MarkdownString, isMarkdownString } from './markdown-string';
32
31
  import { SymbolKind } from '../common/plugin-api-rpc-model';
33
32
  import { FileSystemProviderErrorCode, markAsFileSystemProviderError } from '@theia/filesystem/lib/common/files';
34
33
  import * as paths from 'path';
@@ -262,6 +261,11 @@ export namespace TextEditorSelectionChangeKind {
262
261
  }
263
262
  }
264
263
 
264
+ export enum TextDocumentChangeReason {
265
+ Undo = 1,
266
+ Redo = 2,
267
+ }
268
+
265
269
  @es5ClassCompat
266
270
  export class Position {
267
271
  private _line: number;
@@ -935,7 +939,7 @@ export class CompletionItem implements theia.CompletionItem {
935
939
  kind?: CompletionItemKind;
936
940
  tags?: CompletionItemTag[];
937
941
  detail: string;
938
- documentation: string | MarkdownString;
942
+ documentation: string | theia.MarkdownString;
939
943
  sortText: string;
940
944
  filterText: string;
941
945
  preselect: boolean;
@@ -1054,9 +1058,9 @@ export enum MarkerTag {
1054
1058
  @es5ClassCompat
1055
1059
  export class ParameterInformation {
1056
1060
  label: string | [number, number];
1057
- documentation?: string | MarkdownString;
1061
+ documentation?: string | theia.MarkdownString;
1058
1062
 
1059
- constructor(label: string | [number, number], documentation?: string | MarkdownString) {
1063
+ constructor(label: string | [number, number], documentation?: string | theia.MarkdownString) {
1060
1064
  this.label = label;
1061
1065
  this.documentation = documentation;
1062
1066
  }
@@ -1065,10 +1069,10 @@ export class ParameterInformation {
1065
1069
  @es5ClassCompat
1066
1070
  export class SignatureInformation {
1067
1071
  label: string;
1068
- documentation?: string | MarkdownString;
1072
+ documentation?: string | theia.MarkdownString;
1069
1073
  parameters: ParameterInformation[];
1070
1074
 
1071
- constructor(label: string, documentation?: string | MarkdownString) {
1075
+ constructor(label: string, documentation?: string | theia.MarkdownString) {
1072
1076
  this.label = label;
1073
1077
  this.documentation = documentation;
1074
1078
  this.parameters = [];
@@ -1095,20 +1099,18 @@ export class SignatureHelp {
1095
1099
  @es5ClassCompat
1096
1100
  export class Hover {
1097
1101
 
1098
- public contents: MarkdownString[] | theia.MarkedString[];
1102
+ public contents: theia.MarkdownString[] | theia.MarkedString[];
1099
1103
  public range?: Range;
1100
1104
 
1101
1105
  constructor(
1102
- contents: MarkdownString | theia.MarkedString | MarkdownString[] | theia.MarkedString[],
1106
+ contents: theia.MarkdownString | theia.MarkedString | theia.MarkdownString[] | theia.MarkedString[],
1103
1107
  range?: Range
1104
1108
  ) {
1105
1109
  if (!contents) {
1106
1110
  illegalArgument('contents must be defined');
1107
1111
  }
1108
1112
  if (Array.isArray(contents)) {
1109
- this.contents = <MarkdownString[] | theia.MarkedString[]>contents;
1110
- } else if (isMarkdownString(contents)) {
1111
- this.contents = [contents];
1113
+ this.contents = <theia.MarkdownString[] | theia.MarkedString[]>contents;
1112
1114
  } else {
1113
1115
  this.contents = [contents];
1114
1116
  }
@@ -2486,6 +2488,24 @@ export class CallHierarchyOutgoingCall {
2486
2488
  }
2487
2489
  }
2488
2490
 
2491
+ export enum LanguageStatusSeverity {
2492
+ Information = 0,
2493
+ Warning = 1,
2494
+ Error = 2
2495
+ }
2496
+
2497
+ @es5ClassCompat
2498
+ export class LinkedEditingRanges {
2499
+
2500
+ ranges: theia.Range[];
2501
+ wordPattern?: RegExp;
2502
+
2503
+ constructor(ranges: Range[], wordPattern?: RegExp) {
2504
+ this.ranges = ranges;
2505
+ this.wordPattern = wordPattern;
2506
+ }
2507
+ }
2508
+
2489
2509
  @es5ClassCompat
2490
2510
  export class TimelineItem {
2491
2511
  timestamp: number;
@@ -35,7 +35,7 @@ import { RPCProtocol } from '../common/rpc-protocol';
35
35
  import { WorkspaceRootsChangeEvent, SearchInWorkspaceResult, Range } from '../common/plugin-api-rpc-model';
36
36
  import { EditorsAndDocumentsExtImpl } from './editors-and-documents';
37
37
  import { URI } from './types-impl';
38
- import { normalize } from '@theia/callhierarchy/lib/common/paths';
38
+ import { normalize } from '@theia/core/lib/common/paths';
39
39
  import { relative } from '../common/paths-util';
40
40
  import { Schemes } from '../common/uri-components';
41
41
  import { toWorkspaceFolder } from './type-converters';