@theia/plugin-ext 1.24.0-next.46 → 1.24.0-next.49
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.
- package/lib/common/plugin-api-rpc-model.d.ts +1 -2
- package/lib/common/plugin-api-rpc-model.d.ts.map +1 -1
- package/lib/common/plugin-api-rpc-model.js.map +1 -1
- package/lib/common/plugin-api-rpc.d.ts +8 -4
- package/lib/common/plugin-api-rpc.d.ts.map +1 -1
- package/lib/common/plugin-api-rpc.js.map +1 -1
- package/lib/hosted/browser/hosted-plugin.d.ts.map +1 -1
- package/lib/hosted/browser/hosted-plugin.js +6 -5
- package/lib/hosted/browser/hosted-plugin.js.map +1 -1
- package/lib/main/browser/comments/comment-glyph-widget.d.ts +1 -2
- package/lib/main/browser/comments/comment-glyph-widget.d.ts.map +1 -1
- package/lib/main/browser/comments/comment-glyph-widget.js.map +1 -1
- package/lib/main/browser/comments/comment-thread-widget.d.ts +1 -2
- package/lib/main/browser/comments/comment-thread-widget.d.ts.map +1 -1
- package/lib/main/browser/comments/comment-thread-widget.js +1 -0
- package/lib/main/browser/comments/comment-thread-widget.js.map +1 -1
- package/lib/main/browser/comments/comments-contribution.d.ts +1 -2
- package/lib/main/browser/comments/comments-contribution.d.ts.map +1 -1
- package/lib/main/browser/comments/comments-contribution.js +1 -0
- package/lib/main/browser/comments/comments-contribution.js.map +1 -1
- package/lib/main/browser/comments/comments-decorator.d.ts +1 -2
- package/lib/main/browser/comments/comments-decorator.d.ts.map +1 -1
- package/lib/main/browser/comments/comments-decorator.js.map +1 -1
- package/lib/main/browser/custom-editors/custom-editors-main.d.ts +2 -2
- package/lib/main/browser/custom-editors/custom-editors-main.d.ts.map +1 -1
- package/lib/main/browser/custom-editors/custom-editors-main.js +7 -7
- package/lib/main/browser/custom-editors/custom-editors-main.js.map +1 -1
- package/lib/main/browser/documents-main.d.ts.map +1 -1
- package/lib/main/browser/documents-main.js +1 -0
- package/lib/main/browser/documents-main.js.map +1 -1
- package/lib/main/browser/editor/untitled-resource.d.ts.map +1 -1
- package/lib/main/browser/editor/untitled-resource.js +1 -0
- package/lib/main/browser/editor/untitled-resource.js.map +1 -1
- package/lib/main/browser/editors-and-documents-main.d.ts +1 -1
- package/lib/main/browser/editors-and-documents-main.d.ts.map +1 -1
- package/lib/main/browser/editors-and-documents-main.js.map +1 -1
- package/lib/main/browser/languages-main.d.ts +3 -3
- package/lib/main/browser/languages-main.d.ts.map +1 -1
- package/lib/main/browser/languages-main.js +14 -11
- package/lib/main/browser/languages-main.js.map +1 -1
- package/lib/main/browser/plugin-contribution-handler.d.ts.map +1 -1
- package/lib/main/browser/plugin-contribution-handler.js +4 -2
- package/lib/main/browser/plugin-contribution-handler.js.map +1 -1
- package/lib/main/browser/plugin-icon-theme-service.d.ts.map +1 -1
- package/lib/main/browser/plugin-icon-theme-service.js +4 -2
- package/lib/main/browser/plugin-icon-theme-service.js.map +1 -1
- package/lib/main/browser/quick-open-main.d.ts +5 -6
- package/lib/main/browser/quick-open-main.d.ts.map +1 -1
- package/lib/main/browser/quick-open-main.js +15 -17
- package/lib/main/browser/quick-open-main.js.map +1 -1
- package/lib/main/browser/text-editor-main.d.ts +1 -1
- package/lib/main/browser/text-editor-main.d.ts.map +1 -1
- package/lib/main/browser/text-editor-main.js +11 -9
- package/lib/main/browser/text-editor-main.js.map +1 -1
- package/lib/main/browser/text-editors-main.d.ts +2 -1
- package/lib/main/browser/text-editors-main.d.ts.map +1 -1
- package/lib/main/browser/text-editors-main.js +4 -2
- package/lib/main/browser/text-editors-main.js.map +1 -1
- package/lib/main/browser/view/plugin-tree-view-node-label-provider.d.ts.map +1 -1
- package/lib/main/browser/view/plugin-tree-view-node-label-provider.js +2 -1
- package/lib/main/browser/view/plugin-tree-view-node-label-provider.js.map +1 -1
- package/lib/main/browser/view/plugin-view-registry.js +3 -2
- package/lib/main/browser/view/plugin-view-registry.js.map +1 -1
- package/lib/main/browser/view/tree-view-widget.d.ts +5 -0
- package/lib/main/browser/view/tree-view-widget.d.ts.map +1 -1
- package/lib/main/browser/view/tree-view-widget.js +19 -1
- package/lib/main/browser/view/tree-view-widget.js.map +1 -1
- package/lib/plugin/languages/selection-range.d.ts +2 -2
- package/lib/plugin/languages/selection-range.d.ts.map +1 -1
- package/lib/plugin/languages/selection-range.js.map +1 -1
- package/lib/plugin/quick-open.d.ts +6 -8
- package/lib/plugin/quick-open.d.ts.map +1 -1
- package/lib/plugin/quick-open.js +16 -11
- package/lib/plugin/quick-open.js.map +1 -1
- package/lib/plugin/type-converters.d.ts.map +1 -1
- package/lib/plugin/type-converters.js +16 -20
- package/lib/plugin/type-converters.js.map +1 -1
- package/package.json +24 -23
- package/src/common/plugin-api-rpc-model.ts +1 -0
- package/src/common/plugin-api-rpc.ts +10 -4
- package/src/hosted/browser/hosted-plugin.ts +7 -5
- package/src/main/browser/comments/comment-glyph-widget.ts +1 -0
- package/src/main/browser/comments/comment-thread-widget.tsx +1 -0
- package/src/main/browser/comments/comments-contribution.ts +1 -0
- package/src/main/browser/comments/comments-decorator.ts +1 -0
- package/src/main/browser/custom-editors/custom-editors-main.ts +9 -9
- package/src/main/browser/documents-main.ts +1 -0
- package/src/main/browser/editor/untitled-resource.ts +1 -0
- package/src/main/browser/editors-and-documents-main.ts +1 -0
- package/src/main/browser/languages-main.ts +59 -40
- package/src/main/browser/plugin-contribution-handler.ts +4 -2
- package/src/main/browser/plugin-icon-theme-service.ts +4 -2
- package/src/main/browser/quick-open-main.ts +23 -24
- package/src/main/browser/style/tree.css +4 -0
- package/src/main/browser/text-editor-main.ts +12 -14
- package/src/main/browser/text-editors-main.ts +6 -3
- package/src/main/browser/view/plugin-tree-view-node-label-provider.ts +2 -1
- package/src/main/browser/view/plugin-view-registry.ts +3 -3
- package/src/main/browser/view/tree-view-widget.tsx +21 -3
- package/src/plugin/languages/selection-range.ts +2 -1
- package/src/plugin/quick-open.ts +21 -16
- package/src/plugin/type-converters.ts +15 -22
- package/src/typings/monaco/index.d.ts +0 -20
|
@@ -57,6 +57,17 @@ import { ObjectIdentifier } from '../../common/object-identifier';
|
|
|
57
57
|
import { mixin } from '../../common/types';
|
|
58
58
|
import { relative } from '../../common/paths-util';
|
|
59
59
|
import { decodeSemanticTokensDto } from '../../common/semantic-tokens-dto';
|
|
60
|
+
import * as monaco from '@theia/monaco-editor-core';
|
|
61
|
+
import { ExtensionIdentifier } from '@theia/monaco-editor-core/esm/vs/platform/extensions/common/extensions';
|
|
62
|
+
import { StandaloneServices } from '@theia/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneServices';
|
|
63
|
+
import { IMarkerService } from '@theia/monaco-editor-core/esm/vs/platform/markers/common/markers';
|
|
64
|
+
import * as MonacoLanguageSelector from '@theia/monaco-editor-core/esm/vs/editor/common/languageSelector';
|
|
65
|
+
import * as MonacoPath from '@theia/monaco-editor-core/esm/vs/base/common/path';
|
|
66
|
+
import { IRelativePattern } from '@theia/monaco-editor-core/esm/vs/base/common/glob';
|
|
67
|
+
|
|
68
|
+
interface RegistrationFunction<T> {
|
|
69
|
+
(languageId: MonacoLanguageSelector.LanguageSelector, service: T): Disposable;
|
|
70
|
+
}
|
|
60
71
|
|
|
61
72
|
@injectable()
|
|
62
73
|
export class LanguagesMainImpl implements LanguagesMain, Disposable {
|
|
@@ -126,13 +137,14 @@ export class LanguagesMainImpl implements LanguagesMain, Disposable {
|
|
|
126
137
|
}
|
|
127
138
|
|
|
128
139
|
$registerCompletionSupport(handle: number, pluginInfo: PluginInfo, selector: SerializedDocumentFilter[], triggerCharacters: string[], supportsResolveDetails: boolean): void {
|
|
129
|
-
this.register(handle,
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
140
|
+
this.register(handle,
|
|
141
|
+
(monaco.languages.registerCompletionItemProvider as RegistrationFunction<monaco.languages.CompletionItemProvider>)(this.toLanguageSelector(selector), {
|
|
142
|
+
triggerCharacters,
|
|
143
|
+
provideCompletionItems: (model, position, context, token) => this.provideCompletionItems(handle, model, position, context, token),
|
|
144
|
+
resolveCompletionItem: supportsResolveDetails
|
|
145
|
+
? (suggestion, token) => Promise.resolve(this.resolveCompletionItem(handle, suggestion, token))
|
|
146
|
+
: undefined
|
|
147
|
+
}));
|
|
136
148
|
}
|
|
137
149
|
|
|
138
150
|
protected provideCompletionItems(handle: number, model: monaco.editor.ITextModel, position: monaco.Position,
|
|
@@ -165,19 +177,19 @@ export class LanguagesMainImpl implements LanguagesMain, Disposable {
|
|
|
165
177
|
$registerDefinitionProvider(handle: number, pluginInfo: PluginInfo, selector: SerializedDocumentFilter[]): void {
|
|
166
178
|
const languageSelector = this.toLanguageSelector(selector);
|
|
167
179
|
const definitionProvider = this.createDefinitionProvider(handle);
|
|
168
|
-
this.register(handle, monaco.languages.registerDefinitionProvider(languageSelector, definitionProvider));
|
|
180
|
+
this.register(handle, (monaco.languages.registerDefinitionProvider as RegistrationFunction<monaco.languages.DefinitionProvider>)(languageSelector, definitionProvider));
|
|
169
181
|
}
|
|
170
182
|
|
|
171
183
|
$registerDeclarationProvider(handle: number, pluginInfo: PluginInfo, selector: SerializedDocumentFilter[]): void {
|
|
172
184
|
const languageSelector = this.toLanguageSelector(selector);
|
|
173
185
|
const declarationProvider = this.createDeclarationProvider(handle);
|
|
174
|
-
this.register(handle, monaco.languages.registerDeclarationProvider(languageSelector, declarationProvider));
|
|
186
|
+
this.register(handle, (monaco.languages.registerDeclarationProvider as RegistrationFunction<monaco.languages.DeclarationProvider>)(languageSelector, declarationProvider));
|
|
175
187
|
}
|
|
176
188
|
|
|
177
189
|
$registerReferenceProvider(handle: number, pluginInfo: PluginInfo, selector: SerializedDocumentFilter[]): void {
|
|
178
190
|
const languageSelector = this.toLanguageSelector(selector);
|
|
179
191
|
const referenceProvider = this.createReferenceProvider(handle);
|
|
180
|
-
this.register(handle, monaco.languages.registerReferenceProvider(languageSelector, referenceProvider));
|
|
192
|
+
this.register(handle, (monaco.languages.registerReferenceProvider as RegistrationFunction<monaco.languages.ReferenceProvider>)(languageSelector, referenceProvider));
|
|
181
193
|
}
|
|
182
194
|
|
|
183
195
|
protected createReferenceProvider(handle: number): monaco.languages.ReferenceProvider {
|
|
@@ -208,7 +220,8 @@ export class LanguagesMainImpl implements LanguagesMain, Disposable {
|
|
|
208
220
|
$registerSignatureHelpProvider(handle: number, pluginInfo: PluginInfo, selector: SerializedDocumentFilter[], metadata: theia.SignatureHelpProviderMetadata): void {
|
|
209
221
|
const languageSelector = this.toLanguageSelector(selector);
|
|
210
222
|
const signatureHelpProvider = this.createSignatureHelpProvider(handle, metadata);
|
|
211
|
-
this.register(handle, monaco.languages.registerSignatureHelpProvider
|
|
223
|
+
this.register(handle, (monaco.languages.registerSignatureHelpProvider as RegistrationFunction<monaco.languages.SignatureHelpProvider>)
|
|
224
|
+
(languageSelector, signatureHelpProvider));
|
|
212
225
|
}
|
|
213
226
|
|
|
214
227
|
$clearDiagnostics(id: string): void {
|
|
@@ -227,7 +240,8 @@ export class LanguagesMainImpl implements LanguagesMain, Disposable {
|
|
|
227
240
|
$registerImplementationProvider(handle: number, pluginInfo: PluginInfo, selector: SerializedDocumentFilter[]): void {
|
|
228
241
|
const languageSelector = this.toLanguageSelector(selector);
|
|
229
242
|
const implementationProvider = this.createImplementationProvider(handle);
|
|
230
|
-
this.register(handle, monaco.languages.registerImplementationProvider
|
|
243
|
+
this.register(handle, (monaco.languages.registerImplementationProvider as RegistrationFunction<monaco.languages.ImplementationProvider>)
|
|
244
|
+
(languageSelector, implementationProvider));
|
|
231
245
|
}
|
|
232
246
|
|
|
233
247
|
protected createImplementationProvider(handle: number): monaco.languages.ImplementationProvider {
|
|
@@ -263,7 +277,8 @@ export class LanguagesMainImpl implements LanguagesMain, Disposable {
|
|
|
263
277
|
$registerTypeDefinitionProvider(handle: number, pluginInfo: PluginInfo, selector: SerializedDocumentFilter[]): void {
|
|
264
278
|
const languageSelector = this.toLanguageSelector(selector);
|
|
265
279
|
const typeDefinitionProvider = this.createTypeDefinitionProvider(handle);
|
|
266
|
-
this.register(handle, monaco.languages.registerTypeDefinitionProvider
|
|
280
|
+
this.register(handle, (monaco.languages.registerTypeDefinitionProvider as RegistrationFunction<monaco.languages.TypeDefinitionProvider>)
|
|
281
|
+
(languageSelector, typeDefinitionProvider));
|
|
267
282
|
}
|
|
268
283
|
|
|
269
284
|
protected createTypeDefinitionProvider(handle: number): monaco.languages.TypeDefinitionProvider {
|
|
@@ -299,7 +314,7 @@ export class LanguagesMainImpl implements LanguagesMain, Disposable {
|
|
|
299
314
|
$registerHoverProvider(handle: number, pluginInfo: PluginInfo, selector: SerializedDocumentFilter[]): void {
|
|
300
315
|
const languageSelector = this.toLanguageSelector(selector);
|
|
301
316
|
const hoverProvider = this.createHoverProvider(handle);
|
|
302
|
-
this.register(handle, monaco.languages.registerHoverProvider(languageSelector, hoverProvider));
|
|
317
|
+
this.register(handle, (monaco.languages.registerHoverProvider as RegistrationFunction<monaco.languages.HoverProvider>)(languageSelector, hoverProvider));
|
|
303
318
|
}
|
|
304
319
|
|
|
305
320
|
protected createHoverProvider(handle: number): monaco.languages.HoverProvider {
|
|
@@ -316,7 +331,8 @@ export class LanguagesMainImpl implements LanguagesMain, Disposable {
|
|
|
316
331
|
$registerDocumentHighlightProvider(handle: number, pluginInfo: PluginInfo, selector: SerializedDocumentFilter[]): void {
|
|
317
332
|
const languageSelector = this.toLanguageSelector(selector);
|
|
318
333
|
const documentHighlightProvider = this.createDocumentHighlightProvider(handle);
|
|
319
|
-
this.register(handle, monaco.languages.registerDocumentHighlightProvider
|
|
334
|
+
this.register(handle, (monaco.languages.registerDocumentHighlightProvider as RegistrationFunction<monaco.languages.DocumentHighlightProvider>)
|
|
335
|
+
(languageSelector, documentHighlightProvider));
|
|
320
336
|
}
|
|
321
337
|
|
|
322
338
|
protected createDocumentHighlightProvider(handle: number): monaco.languages.DocumentHighlightProvider {
|
|
@@ -371,7 +387,7 @@ export class LanguagesMainImpl implements LanguagesMain, Disposable {
|
|
|
371
387
|
$registerDocumentLinkProvider(handle: number, pluginInfo: PluginInfo, selector: SerializedDocumentFilter[]): void {
|
|
372
388
|
const languageSelector = this.toLanguageSelector(selector);
|
|
373
389
|
const linkProvider = this.createLinkProvider(handle);
|
|
374
|
-
this.register(handle, monaco.languages.registerLinkProvider(languageSelector, linkProvider));
|
|
390
|
+
this.register(handle, (monaco.languages.registerLinkProvider as RegistrationFunction<monaco.languages.LinkProvider>)(languageSelector, linkProvider));
|
|
375
391
|
}
|
|
376
392
|
|
|
377
393
|
protected createLinkProvider(handle: number): monaco.languages.LinkProvider {
|
|
@@ -420,7 +436,7 @@ export class LanguagesMainImpl implements LanguagesMain, Disposable {
|
|
|
420
436
|
lensProvider.onDidChange = emitter.event;
|
|
421
437
|
}
|
|
422
438
|
|
|
423
|
-
this.register(handle, monaco.languages.registerCodeLensProvider(languageSelector, lensProvider));
|
|
439
|
+
this.register(handle, (monaco.languages.registerCodeLensProvider as RegistrationFunction<monaco.languages.CodeLensProvider>)(languageSelector, lensProvider));
|
|
424
440
|
}
|
|
425
441
|
|
|
426
442
|
protected createCodeLensProvider(handle: number): monaco.languages.CodeLensProvider {
|
|
@@ -462,7 +478,7 @@ export class LanguagesMainImpl implements LanguagesMain, Disposable {
|
|
|
462
478
|
$registerOutlineSupport(handle: number, pluginInfo: PluginInfo, selector: SerializedDocumentFilter[], displayName?: string): void {
|
|
463
479
|
const languageSelector = this.toLanguageSelector(selector);
|
|
464
480
|
const symbolProvider = this.createDocumentSymbolProvider(handle, displayName);
|
|
465
|
-
this.register(handle, monaco.
|
|
481
|
+
this.register(handle, (monaco.languages.registerDocumentSymbolProvider as RegistrationFunction<monaco.languages.DocumentSymbolProvider>)(languageSelector, symbolProvider));
|
|
466
482
|
}
|
|
467
483
|
|
|
468
484
|
protected createDocumentSymbolProvider(handle: number, displayName?: string): monaco.languages.DocumentSymbolProvider {
|
|
@@ -565,14 +581,13 @@ export class LanguagesMainImpl implements LanguagesMain, Disposable {
|
|
|
565
581
|
$registerDocumentFormattingSupport(handle: number, pluginInfo: PluginInfo, selector: SerializedDocumentFilter[]): void {
|
|
566
582
|
const languageSelector = this.toLanguageSelector(selector);
|
|
567
583
|
const documentFormattingEditSupport = this.createDocumentFormattingSupport(handle, pluginInfo);
|
|
568
|
-
this.register(handle, monaco.languages.registerDocumentFormattingEditProvider
|
|
584
|
+
this.register(handle, (monaco.languages.registerDocumentFormattingEditProvider as RegistrationFunction<monaco.languages.DocumentFormattingEditProvider>)
|
|
585
|
+
(languageSelector, documentFormattingEditSupport));
|
|
569
586
|
}
|
|
570
587
|
|
|
571
588
|
createDocumentFormattingSupport(handle: number, pluginInfo: PluginInfo): monaco.languages.DocumentFormattingEditProvider {
|
|
572
|
-
const provider: monaco.languages.DocumentFormattingEditProvider = {
|
|
573
|
-
extensionId:
|
|
574
|
-
value: pluginInfo.id
|
|
575
|
-
},
|
|
589
|
+
const provider: monaco.languages.DocumentFormattingEditProvider & { extensionId: ExtensionIdentifier } = {
|
|
590
|
+
extensionId: new ExtensionIdentifier(pluginInfo.id),
|
|
576
591
|
displayName: pluginInfo.name,
|
|
577
592
|
provideDocumentFormattingEdits: (model, options, token) =>
|
|
578
593
|
this.provideDocumentFormattingEdits(handle, model, options, token)
|
|
@@ -589,14 +604,13 @@ export class LanguagesMainImpl implements LanguagesMain, Disposable {
|
|
|
589
604
|
$registerRangeFormattingSupport(handle: number, pluginInfo: PluginInfo, selector: SerializedDocumentFilter[]): void {
|
|
590
605
|
const languageSelector = this.toLanguageSelector(selector);
|
|
591
606
|
const rangeFormattingEditProvider = this.createRangeFormattingSupport(handle, pluginInfo);
|
|
592
|
-
this.register(handle, monaco.languages.registerDocumentRangeFormattingEditProvider
|
|
607
|
+
this.register(handle, (monaco.languages.registerDocumentRangeFormattingEditProvider as RegistrationFunction<monaco.languages.DocumentRangeFormattingEditProvider>)
|
|
608
|
+
(languageSelector, rangeFormattingEditProvider));
|
|
593
609
|
}
|
|
594
610
|
|
|
595
611
|
createRangeFormattingSupport(handle: number, pluginInfo: PluginInfo): monaco.languages.DocumentRangeFormattingEditProvider {
|
|
596
|
-
const provider: monaco.languages.DocumentRangeFormattingEditProvider = {
|
|
597
|
-
extensionId:
|
|
598
|
-
value: pluginInfo.id
|
|
599
|
-
},
|
|
612
|
+
const provider: monaco.languages.DocumentRangeFormattingEditProvider & { extensionId: ExtensionIdentifier } = {
|
|
613
|
+
extensionId: new ExtensionIdentifier(pluginInfo.id),
|
|
600
614
|
displayName: pluginInfo.name,
|
|
601
615
|
provideDocumentRangeFormattingEdits: (model, range: Range, options, token) =>
|
|
602
616
|
this.provideDocumentRangeFormattingEdits(handle, model, range, options, token)
|
|
@@ -613,7 +627,8 @@ export class LanguagesMainImpl implements LanguagesMain, Disposable {
|
|
|
613
627
|
$registerOnTypeFormattingProvider(handle: number, pluginInfo: PluginInfo, selector: SerializedDocumentFilter[], autoFormatTriggerCharacters: string[]): void {
|
|
614
628
|
const languageSelector = this.toLanguageSelector(selector);
|
|
615
629
|
const onTypeFormattingProvider = this.createOnTypeFormattingProvider(handle, autoFormatTriggerCharacters);
|
|
616
|
-
this.register(handle, monaco.languages.registerOnTypeFormattingEditProvider
|
|
630
|
+
this.register(handle, (monaco.languages.registerOnTypeFormattingEditProvider as RegistrationFunction<monaco.languages.OnTypeFormattingEditProvider>)
|
|
631
|
+
(languageSelector, onTypeFormattingProvider));
|
|
617
632
|
}
|
|
618
633
|
|
|
619
634
|
protected createOnTypeFormattingProvider(
|
|
@@ -634,7 +649,7 @@ export class LanguagesMainImpl implements LanguagesMain, Disposable {
|
|
|
634
649
|
$registerFoldingRangeProvider(handle: number, pluginInfo: PluginInfo, selector: SerializedDocumentFilter[]): void {
|
|
635
650
|
const languageSelector = this.toLanguageSelector(selector);
|
|
636
651
|
const provider = this.createFoldingRangeProvider(handle);
|
|
637
|
-
this.register(handle, monaco.languages.registerFoldingRangeProvider(languageSelector, provider));
|
|
652
|
+
this.register(handle, (monaco.languages.registerFoldingRangeProvider as RegistrationFunction<monaco.languages.FoldingRangeProvider>)(languageSelector, provider));
|
|
638
653
|
}
|
|
639
654
|
|
|
640
655
|
createFoldingRangeProvider(handle: number): monaco.languages.FoldingRangeProvider {
|
|
@@ -651,7 +666,7 @@ export class LanguagesMainImpl implements LanguagesMain, Disposable {
|
|
|
651
666
|
$registerSelectionRangeProvider(handle: number, pluginInfo: PluginInfo, selector: SerializedDocumentFilter[]): void {
|
|
652
667
|
const languageSelector = this.toLanguageSelector(selector);
|
|
653
668
|
const provider = this.createSelectionRangeProvider(handle);
|
|
654
|
-
this.register(handle, monaco.languages.registerSelectionRangeProvider(languageSelector, provider));
|
|
669
|
+
this.register(handle, (monaco.languages.registerSelectionRangeProvider as RegistrationFunction<monaco.languages.SelectionRangeProvider>)(languageSelector, provider));
|
|
655
670
|
}
|
|
656
671
|
|
|
657
672
|
protected createSelectionRangeProvider(handle: number): monaco.languages.SelectionRangeProvider {
|
|
@@ -668,7 +683,7 @@ export class LanguagesMainImpl implements LanguagesMain, Disposable {
|
|
|
668
683
|
$registerDocumentColorProvider(handle: number, pluginInfo: PluginInfo, selector: SerializedDocumentFilter[]): void {
|
|
669
684
|
const languageSelector = this.toLanguageSelector(selector);
|
|
670
685
|
const colorProvider = this.createColorProvider(handle);
|
|
671
|
-
this.register(handle, monaco.languages.registerColorProvider(languageSelector, colorProvider));
|
|
686
|
+
this.register(handle, (monaco.languages.registerColorProvider as RegistrationFunction<monaco.languages.DocumentColorProvider>)(languageSelector, colorProvider));
|
|
672
687
|
}
|
|
673
688
|
|
|
674
689
|
createColorProvider(handle: number): monaco.languages.DocumentColorProvider {
|
|
@@ -718,7 +733,9 @@ export class LanguagesMainImpl implements LanguagesMain, Disposable {
|
|
|
718
733
|
const quickFixProvider = {
|
|
719
734
|
provideCodeActions: (model: monaco.editor.ITextModel, range: monaco.Range,
|
|
720
735
|
context: monaco.languages.CodeActionContext, token: monaco.CancellationToken): monaco.languages.CodeActionList | Promise<monaco.languages.CodeActionList> => {
|
|
721
|
-
const markers =
|
|
736
|
+
const markers = StandaloneServices.get(IMarkerService)
|
|
737
|
+
.read({ resource: model.uri })
|
|
738
|
+
.filter(m => monaco.Range.areIntersectingOrTouching(m, range)) as monaco.editor.IMarkerData[];
|
|
722
739
|
return this.provideCodeActions(handle, model, range, { markers, only: context.only }, token);
|
|
723
740
|
},
|
|
724
741
|
resolveCodeAction: (codeAction: monaco.languages.CodeAction, token: monaco.CancellationToken): Promise<monaco.languages.CodeAction> =>
|
|
@@ -726,7 +743,7 @@ export class LanguagesMainImpl implements LanguagesMain, Disposable {
|
|
|
726
743
|
providedCodeActionKinds,
|
|
727
744
|
documentation
|
|
728
745
|
};
|
|
729
|
-
this.register(handle, monaco.
|
|
746
|
+
this.register(handle, (monaco.languages.registerCodeActionProvider as RegistrationFunction<monaco.languages.CodeActionProvider>)(languageSelector, quickFixProvider));
|
|
730
747
|
}
|
|
731
748
|
|
|
732
749
|
protected async provideCodeActions(handle: number, model: monaco.editor.ITextModel,
|
|
@@ -757,7 +774,7 @@ export class LanguagesMainImpl implements LanguagesMain, Disposable {
|
|
|
757
774
|
$registerRenameProvider(handle: number, pluginInfo: PluginInfo, selector: SerializedDocumentFilter[], supportsResolveLocation: boolean): void {
|
|
758
775
|
const languageSelector = this.toLanguageSelector(selector);
|
|
759
776
|
const renameProvider = this.createRenameProvider(handle, supportsResolveLocation);
|
|
760
|
-
this.register(handle, monaco.languages.registerRenameProvider(languageSelector, renameProvider));
|
|
777
|
+
this.register(handle, (monaco.languages.registerRenameProvider as RegistrationFunction<monaco.languages.RenameProvider>)(languageSelector, renameProvider));
|
|
761
778
|
}
|
|
762
779
|
|
|
763
780
|
protected createRenameProvider(handle: number, supportsResolveLocation: boolean): monaco.languages.RenameProvider {
|
|
@@ -832,7 +849,8 @@ export class LanguagesMainImpl implements LanguagesMain, Disposable {
|
|
|
832
849
|
event = emitter.event;
|
|
833
850
|
}
|
|
834
851
|
const provider = this.createDocumentSemanticTokensProvider(handle, legend, event);
|
|
835
|
-
this.register(handle, monaco.languages.registerDocumentSemanticTokensProvider
|
|
852
|
+
this.register(handle, (monaco.languages.registerDocumentSemanticTokensProvider as RegistrationFunction<monaco.languages.DocumentSemanticTokensProvider>)
|
|
853
|
+
(languageSelector, provider));
|
|
836
854
|
}
|
|
837
855
|
|
|
838
856
|
protected createDocumentSemanticTokensProvider(handle: number, legend: theia.SemanticTokensLegend, event?: Event<void>): monaco.languages.DocumentSemanticTokensProvider {
|
|
@@ -877,7 +895,8 @@ export class LanguagesMainImpl implements LanguagesMain, Disposable {
|
|
|
877
895
|
$registerDocumentRangeSemanticTokensProvider(handle: number, pluginInfo: PluginInfo, selector: SerializedDocumentFilter[], legend: theia.SemanticTokensLegend): void {
|
|
878
896
|
const languageSelector = this.toLanguageSelector(selector);
|
|
879
897
|
const provider = this.createDocumentRangeSemanticTokensProvider(handle, legend);
|
|
880
|
-
this.register(handle, monaco.languages.registerDocumentRangeSemanticTokensProvider
|
|
898
|
+
this.register(handle, (monaco.languages.registerDocumentRangeSemanticTokensProvider as RegistrationFunction<monaco.languages.DocumentRangeSemanticTokensProvider>)
|
|
899
|
+
(languageSelector, provider));
|
|
881
900
|
}
|
|
882
901
|
|
|
883
902
|
protected createDocumentRangeSemanticTokensProvider(handle: number, legend: theia.SemanticTokensLegend): monaco.languages.DocumentRangeSemanticTokensProvider {
|
|
@@ -905,14 +924,14 @@ export class LanguagesMainImpl implements LanguagesMain, Disposable {
|
|
|
905
924
|
|
|
906
925
|
// --- suggest
|
|
907
926
|
|
|
908
|
-
protected toLanguageSelector(filters: SerializedDocumentFilter[]):
|
|
927
|
+
protected toLanguageSelector(filters: SerializedDocumentFilter[]): MonacoLanguageSelector.LanguageSelector & LanguageSelector {
|
|
909
928
|
return filters.map(filter => {
|
|
910
|
-
let pattern: string | (
|
|
929
|
+
let pattern: string | (IRelativePattern & RelativePattern) | undefined;
|
|
911
930
|
if (typeof filter.pattern === 'string') {
|
|
912
931
|
pattern = filter.pattern;
|
|
913
932
|
} else if (filter.pattern) {
|
|
914
933
|
pattern = {
|
|
915
|
-
base:
|
|
934
|
+
base: MonacoPath.normalize(filter.pattern.base),
|
|
916
935
|
pattern: filter.pattern.pattern,
|
|
917
936
|
pathToRelative: relative
|
|
918
937
|
};
|
|
@@ -40,6 +40,8 @@ import { MonacoThemingService } from '@theia/monaco/lib/browser/monaco-theming-s
|
|
|
40
40
|
import { ColorRegistry } from '@theia/core/lib/browser/color-registry';
|
|
41
41
|
import { PluginIconThemeService } from './plugin-icon-theme-service';
|
|
42
42
|
import { ContributionProvider } from '@theia/core/lib/common';
|
|
43
|
+
import * as monaco from '@theia/monaco-editor-core';
|
|
44
|
+
import { ThemeIcon } from '@theia/monaco-editor-core/esm/vs/platform/theme/common/themeService';
|
|
43
45
|
|
|
44
46
|
@injectable()
|
|
45
47
|
export class PluginContributionHandler {
|
|
@@ -360,13 +362,13 @@ export class PluginContributionHandler {
|
|
|
360
362
|
const toDispose = new DisposableCollection();
|
|
361
363
|
for (const { iconUrl, themeIcon, command, category, title, originalTitle } of contribution.commands) {
|
|
362
364
|
const reference = iconUrl && this.style.toIconClass(iconUrl);
|
|
363
|
-
const icon = themeIcon &&
|
|
365
|
+
const icon = themeIcon && ThemeIcon.fromString(themeIcon);
|
|
364
366
|
let iconClass;
|
|
365
367
|
if (reference) {
|
|
366
368
|
toDispose.push(reference);
|
|
367
369
|
iconClass = reference.object.iconClass;
|
|
368
370
|
} else if (icon) {
|
|
369
|
-
iconClass =
|
|
371
|
+
iconClass = ThemeIcon.asClassName(icon);
|
|
370
372
|
}
|
|
371
373
|
toDispose.push(this.registerCommand({ id: command, category, label: title, originalLabel: originalTitle, iconClass }));
|
|
372
374
|
}
|
|
@@ -37,6 +37,8 @@ import { Endpoint } from '@theia/core/lib/browser/endpoint';
|
|
|
37
37
|
import { FileService } from '@theia/filesystem/lib/browser/file-service';
|
|
38
38
|
import { FileStat, FileChangeType } from '@theia/filesystem/lib/common/files';
|
|
39
39
|
import { WorkspaceService } from '@theia/workspace/lib/browser';
|
|
40
|
+
import { StandaloneServices } from '@theia/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneServices';
|
|
41
|
+
import { ILanguageService } from '@theia/monaco-editor-core/esm/vs/editor/common/languages/language';
|
|
40
42
|
|
|
41
43
|
export interface PluginIconDefinition {
|
|
42
44
|
iconPath: string;
|
|
@@ -519,8 +521,8 @@ export class PluginIconTheme extends PluginIconThemeDefinition implements IconTh
|
|
|
519
521
|
} else {
|
|
520
522
|
classNames.unshift(this.fileIcon);
|
|
521
523
|
}
|
|
522
|
-
const language =
|
|
523
|
-
classNames.push(this.languageIcon(language.
|
|
524
|
+
const language = StandaloneServices.get(ILanguageService).createByFilepathOrFirstLine(parsedURI['codeUri']);
|
|
525
|
+
classNames.push(this.languageIcon(language.languageId));
|
|
524
526
|
}
|
|
525
527
|
return classNames;
|
|
526
528
|
}
|
|
@@ -25,7 +25,8 @@ import {
|
|
|
25
25
|
TransferInputBox,
|
|
26
26
|
TransferQuickPickItems,
|
|
27
27
|
TransferQuickInput,
|
|
28
|
-
TransferQuickInputButton
|
|
28
|
+
TransferQuickInputButton,
|
|
29
|
+
TransferQuickPickItemValue
|
|
29
30
|
} from '../../common/plugin-api-rpc';
|
|
30
31
|
import {
|
|
31
32
|
InputOptions,
|
|
@@ -37,12 +38,14 @@ import {
|
|
|
37
38
|
import { DisposableCollection, Disposable } from '@theia/core/lib/common/disposable';
|
|
38
39
|
import { CancellationToken } from '@theia/core/lib/common/cancellation';
|
|
39
40
|
import { MonacoQuickInputService } from '@theia/monaco/lib/browser/monaco-quick-input-service';
|
|
40
|
-
import * as theia from '@theia/plugin';
|
|
41
41
|
import { QuickInputButtons } from '../../plugin/types-impl';
|
|
42
42
|
import { getIconUris } from '../../plugin/quick-open';
|
|
43
|
+
import * as monaco from '@theia/monaco-editor-core';
|
|
44
|
+
import { IQuickPickItem, IQuickInput } from '@theia/monaco-editor-core/esm/vs/base/parts/quickinput/common/quickInput';
|
|
45
|
+
import { ThemeIcon } from '@theia/monaco-editor-core/esm/vs/platform/theme/common/themeService';
|
|
43
46
|
|
|
44
47
|
export interface QuickInputSession {
|
|
45
|
-
input:
|
|
48
|
+
input: IQuickInput;
|
|
46
49
|
handlesToItems: Map<number, TransferQuickPickItems>;
|
|
47
50
|
}
|
|
48
51
|
|
|
@@ -68,7 +71,7 @@ export class QuickOpenMainImpl implements QuickOpenMain, Disposable {
|
|
|
68
71
|
this.toDispose.dispose();
|
|
69
72
|
}
|
|
70
73
|
|
|
71
|
-
async $show(instance: number, options: PickOptions<
|
|
74
|
+
async $show(instance: number, options: PickOptions<TransferQuickPickItemValue>, token: CancellationToken): Promise<number | number[] | undefined> {
|
|
72
75
|
const contents = new Promise<TransferQuickPickItems[]>((resolve, reject) => {
|
|
73
76
|
this.items[instance] = { resolve, reject };
|
|
74
77
|
});
|
|
@@ -82,21 +85,14 @@ export class QuickOpenMainImpl implements QuickOpenMain, Disposable {
|
|
|
82
85
|
}
|
|
83
86
|
};
|
|
84
87
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
});
|
|
92
|
-
} else {
|
|
93
|
-
return this.delegate.pick(contents, options, token).then(item => {
|
|
94
|
-
if (item) {
|
|
95
|
-
return item.handle;
|
|
96
|
-
}
|
|
97
|
-
return undefined;
|
|
98
|
-
});
|
|
88
|
+
const result = await this.delegate.pick<TransferQuickPickItemValue>(contents, options, token);
|
|
89
|
+
|
|
90
|
+
if (Array.isArray(result)) {
|
|
91
|
+
return result.map(({ handle }) => handle);
|
|
92
|
+
} else if (result) {
|
|
93
|
+
return result.handle;
|
|
99
94
|
}
|
|
95
|
+
return undefined;
|
|
100
96
|
}
|
|
101
97
|
|
|
102
98
|
$setItems(instance: number, items: TransferQuickPickItems[]): Promise<any> {
|
|
@@ -194,19 +190,20 @@ export class QuickOpenMainImpl implements QuickOpenMain, Disposable {
|
|
|
194
190
|
|
|
195
191
|
private sessions = new Map<number, QuickInputSession>();
|
|
196
192
|
|
|
197
|
-
$createOrUpdate
|
|
193
|
+
$createOrUpdate(params: TransferQuickInput): Promise<void> {
|
|
198
194
|
const sessionId = params.id;
|
|
199
|
-
let session
|
|
200
|
-
|
|
195
|
+
let session: QuickInputSession;
|
|
196
|
+
const candidate = this.sessions.get(sessionId);
|
|
197
|
+
if (!candidate) {
|
|
201
198
|
if (params.type === 'quickPick') {
|
|
202
199
|
const quickPick = this.quickInputService.createQuickPick();
|
|
203
200
|
quickPick.onDidAccept(() => {
|
|
204
201
|
this.proxy.$acceptOnDidAccept(sessionId);
|
|
205
202
|
});
|
|
206
|
-
quickPick.onDidChangeActive((items: Array<
|
|
203
|
+
quickPick.onDidChangeActive((items: Array<IQuickPickItem>) => {
|
|
207
204
|
this.proxy.$onDidChangeActive(sessionId, items.map(item => (item as TransferQuickPickItems).handle));
|
|
208
205
|
});
|
|
209
|
-
quickPick.onDidChangeSelection((items: Array<
|
|
206
|
+
quickPick.onDidChangeSelection((items: Array<IQuickPickItem>) => {
|
|
210
207
|
this.proxy.$onDidChangeSelection(sessionId, items.map(item => (item as TransferQuickPickItems).handle));
|
|
211
208
|
});
|
|
212
209
|
quickPick.onDidTriggerButton((button: QuickInputButtonHandle) => {
|
|
@@ -242,6 +239,8 @@ export class QuickOpenMainImpl implements QuickOpenMain, Disposable {
|
|
|
242
239
|
};
|
|
243
240
|
}
|
|
244
241
|
this.sessions.set(sessionId, session);
|
|
242
|
+
} else {
|
|
243
|
+
session = candidate;
|
|
245
244
|
}
|
|
246
245
|
if (session) {
|
|
247
246
|
const { input, handlesToItems } = session;
|
|
@@ -273,7 +272,7 @@ export class QuickOpenMainImpl implements QuickOpenMain, Disposable {
|
|
|
273
272
|
const { iconPath, tooltip, handle } = button;
|
|
274
273
|
if ('id' in iconPath) {
|
|
275
274
|
return {
|
|
276
|
-
iconClass:
|
|
275
|
+
iconClass: ThemeIcon.asClassName(iconPath),
|
|
277
276
|
tooltip,
|
|
278
277
|
handle
|
|
279
278
|
};
|
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
|
+
import * as monaco from '@theia/monaco-editor-core';
|
|
18
|
+
import { StandaloneCodeEditor } from '@theia/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneCodeEditor';
|
|
17
19
|
import { Disposable, DisposableCollection } from '@theia/core/lib/common/disposable';
|
|
18
20
|
import { MonacoEditor } from '@theia/monaco/lib/browser/monaco-editor';
|
|
19
21
|
import {
|
|
@@ -84,23 +86,23 @@ export class TextEditorMain implements Disposable {
|
|
|
84
86
|
this.toDisposeOnEditor.push(Disposable.create(() => this.editor = undefined));
|
|
85
87
|
|
|
86
88
|
if (this.editor) {
|
|
87
|
-
const
|
|
89
|
+
const monacoEditor = this.editor.getControl();
|
|
88
90
|
this.toDisposeOnEditor.push(this.editor.onSelectionChanged(_ => {
|
|
89
91
|
this.updateProperties();
|
|
90
92
|
}));
|
|
91
|
-
this.toDisposeOnEditor.push(
|
|
93
|
+
this.toDisposeOnEditor.push(monacoEditor.onDidChangeModel(() => {
|
|
92
94
|
this.setEditor(undefined);
|
|
93
95
|
}));
|
|
94
|
-
this.toDisposeOnEditor.push(
|
|
96
|
+
this.toDisposeOnEditor.push(monacoEditor.onDidChangeCursorSelection(e => {
|
|
95
97
|
this.updateProperties(e.source);
|
|
96
98
|
}));
|
|
97
|
-
this.toDisposeOnEditor.push(
|
|
99
|
+
this.toDisposeOnEditor.push(monacoEditor.onDidChangeConfiguration(() => {
|
|
98
100
|
this.updateProperties();
|
|
99
101
|
}));
|
|
100
|
-
this.toDisposeOnEditor.push(
|
|
102
|
+
this.toDisposeOnEditor.push(monacoEditor.onDidLayoutChange(() => {
|
|
101
103
|
this.updateProperties();
|
|
102
104
|
}));
|
|
103
|
-
this.toDisposeOnEditor.push(
|
|
105
|
+
this.toDisposeOnEditor.push(monacoEditor.onDidScrollChange(() => {
|
|
104
106
|
this.updateProperties();
|
|
105
107
|
}));
|
|
106
108
|
|
|
@@ -263,12 +265,9 @@ export class TextEditorMain implements Disposable {
|
|
|
263
265
|
}
|
|
264
266
|
|
|
265
267
|
insertSnippet(template: string, ranges: Range[], opts: UndoStopOptions): boolean {
|
|
268
|
+
const snippetController: SnippetController2 | null | undefined = this.editor?.getControl().getContribution('snippetController2');
|
|
266
269
|
|
|
267
|
-
if (!this.editor) {
|
|
268
|
-
return false;
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
const snippetController: SnippetController2 = this.editor!.getControl().getContribution('snippetController2');
|
|
270
|
+
if (!snippetController || !this.editor) { return false; }
|
|
272
271
|
|
|
273
272
|
const selections = ranges.map(r => new monaco.Selection(r.startLineNumber, r.startColumn, r.endLineNumber, r.endColumn));
|
|
274
273
|
this.editor.getControl().setSelections(selections);
|
|
@@ -283,7 +282,7 @@ export class TextEditorMain implements Disposable {
|
|
|
283
282
|
if (!this.editor) {
|
|
284
283
|
return;
|
|
285
284
|
}
|
|
286
|
-
this.editor.getControl().setDecorations(key, ranges.map(option => Object.assign(option, { color: undefined })));
|
|
285
|
+
(this.editor.getControl() as unknown as StandaloneCodeEditor).setDecorations('Plugin decorations', key, ranges.map(option => Object.assign(option, { color: undefined })));
|
|
287
286
|
}
|
|
288
287
|
|
|
289
288
|
setDecorationsFast(key: string, _ranges: number[]): void {
|
|
@@ -295,8 +294,7 @@ export class TextEditorMain implements Disposable {
|
|
|
295
294
|
for (let i = 0; i < len; i++) {
|
|
296
295
|
ranges[i] = new monaco.Range(_ranges[4 * i], _ranges[4 * i + 1], _ranges[4 * i + 2], _ranges[4 * i + 3]);
|
|
297
296
|
}
|
|
298
|
-
|
|
299
|
-
this.editor.getControl().setDecorationsFast(key, ranges);
|
|
297
|
+
(this.editor.getControl() as unknown as StandaloneCodeEditor).setDecorationsFast(key, ranges);
|
|
300
298
|
}
|
|
301
299
|
|
|
302
300
|
private static toMonacoSelections(selection: Selection): monaco.Selection {
|
|
@@ -41,6 +41,9 @@ import { MonacoBulkEditService } from '@theia/monaco/lib/browser/monaco-bulk-edi
|
|
|
41
41
|
import { MonacoEditorService } from '@theia/monaco/lib/browser/monaco-editor-service';
|
|
42
42
|
import { theiaUritoUriComponents, UriComponents } from '../../common/uri-components';
|
|
43
43
|
import { Endpoint } from '@theia/core/lib/browser/endpoint';
|
|
44
|
+
import * as monaco from '@theia/monaco-editor-core';
|
|
45
|
+
import { ResourceEdit } from '@theia/monaco-editor-core/esm/vs/editor/browser/services/bulkEditService';
|
|
46
|
+
import { IDecorationRenderOptions } from '@theia/monaco-editor-core/esm/vs/editor/common/editorCommon';
|
|
44
47
|
|
|
45
48
|
export class TextEditorsMainImpl implements TextEditorsMain, Disposable {
|
|
46
49
|
|
|
@@ -120,7 +123,7 @@ export class TextEditorsMainImpl implements TextEditorsMain, Disposable {
|
|
|
120
123
|
async $tryApplyWorkspaceEdit(dto: WorkspaceEditDto): Promise<boolean> {
|
|
121
124
|
const workspaceEdit = toMonacoWorkspaceEdit(dto);
|
|
122
125
|
try {
|
|
123
|
-
const edits =
|
|
126
|
+
const edits = ResourceEdit.convert(workspaceEdit);
|
|
124
127
|
const { success } = await this.bulkEditService.apply(edits);
|
|
125
128
|
return success;
|
|
126
129
|
} catch {
|
|
@@ -135,9 +138,9 @@ export class TextEditorsMainImpl implements TextEditorsMain, Disposable {
|
|
|
135
138
|
return Promise.resolve(this.editorsAndDocuments.getEditor(id)!.insertSnippet(template, ranges, opts));
|
|
136
139
|
}
|
|
137
140
|
|
|
138
|
-
$registerTextEditorDecorationType(key: string, options: DecorationRenderOptions): void {
|
|
141
|
+
$registerTextEditorDecorationType(key: string, options: DecorationRenderOptions | IDecorationRenderOptions): void {
|
|
139
142
|
this.injectRemoteUris(options);
|
|
140
|
-
this.monacoEditorService.registerDecorationType(key, options);
|
|
143
|
+
this.monacoEditorService.registerDecorationType('Plugin decoration', key, options as IDecorationRenderOptions);
|
|
141
144
|
this.toDispose.push(Disposable.create(() => this.$removeTextEditorDecorationType(key)));
|
|
142
145
|
}
|
|
143
146
|
|
|
@@ -20,6 +20,7 @@ import { LabelProviderContribution, LabelProvider, URIIconReference } from '@the
|
|
|
20
20
|
import { TreeLabelProvider } from '@theia/core/lib/browser/tree/tree-label-provider';
|
|
21
21
|
import { TreeViewNode } from './tree-view-widget';
|
|
22
22
|
import { TreeNode } from '@theia/core/lib/browser/tree/tree';
|
|
23
|
+
import { ThemeIcon } from '@theia/monaco-editor-core/esm/vs/platform/theme/common/themeService';
|
|
23
24
|
|
|
24
25
|
@injectable()
|
|
25
26
|
export class PluginTreeViewNodeLabelProvider implements LabelProviderContribution {
|
|
@@ -47,7 +48,7 @@ export class PluginTreeViewNodeLabelProvider implements LabelProviderContributio
|
|
|
47
48
|
const uri = node.resourceUri && new URI(node.resourceUri) || undefined;
|
|
48
49
|
return this.labelProvider.getIcon(URIIconReference.create(node.themeIconId, uri));
|
|
49
50
|
}
|
|
50
|
-
return
|
|
51
|
+
return ThemeIcon.asClassName({ id: node.themeIconId });
|
|
51
52
|
}
|
|
52
53
|
if (node.resourceUri) {
|
|
53
54
|
return this.labelProvider.getIcon(new URI(node.resourceUri));
|
|
@@ -40,7 +40,7 @@ import { DebugConsoleContribution } from '@theia/debug/lib/browser/console/debug
|
|
|
40
40
|
import { TERMINAL_WIDGET_FACTORY_ID } from '@theia/terminal/lib/browser/terminal-widget-impl';
|
|
41
41
|
import { TreeViewWidget } from './tree-view-widget';
|
|
42
42
|
import { SEARCH_VIEW_CONTAINER_ID } from '@theia/search-in-workspace/lib/browser/search-in-workspace-factory';
|
|
43
|
-
|
|
43
|
+
import { ThemeIcon } from '@theia/monaco-editor-core/esm/vs/platform/theme/common/themeService';
|
|
44
44
|
import { WebviewView, WebviewViewResolver } from '../webview-views/webview-views';
|
|
45
45
|
import { WebviewWidget, WebviewWidgetIdentifier } from '../webview/webview';
|
|
46
46
|
import { CancellationToken } from '@theia/core/lib/common/cancellation';
|
|
@@ -229,9 +229,9 @@ export class PluginViewRegistry implements FrontendApplicationContribution {
|
|
|
229
229
|
const iconClass = 'plugin-view-container-icon-' + viewContainer.id;
|
|
230
230
|
|
|
231
231
|
if (viewContainer.themeIcon) {
|
|
232
|
-
const icon =
|
|
232
|
+
const icon = ThemeIcon.fromString(viewContainer.themeIcon);
|
|
233
233
|
if (icon) {
|
|
234
|
-
themeIconClass =
|
|
234
|
+
themeIconClass = ThemeIcon.asClassName(icon) ?? '';
|
|
235
235
|
}
|
|
236
236
|
}
|
|
237
237
|
|