@opensumi/ide-editor 2.12.1-next-079c1930
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/README.md +565 -0
- package/lib/browser/breadcrumb/default.d.ts +28 -0
- package/lib/browser/breadcrumb/default.d.ts.map +1 -0
- package/lib/browser/breadcrumb/default.js +283 -0
- package/lib/browser/breadcrumb/default.js.map +1 -0
- package/lib/browser/breadcrumb/document-symbol.d.ts +36 -0
- package/lib/browser/breadcrumb/document-symbol.d.ts.map +1 -0
- package/lib/browser/breadcrumb/document-symbol.js +161 -0
- package/lib/browser/breadcrumb/document-symbol.js.map +1 -0
- package/lib/browser/breadcrumb/index.d.ts +20 -0
- package/lib/browser/breadcrumb/index.d.ts.map +1 -0
- package/lib/browser/breadcrumb/index.js +90 -0
- package/lib/browser/breadcrumb/index.js.map +1 -0
- package/lib/browser/component/scroll/scroll.d.ts +66 -0
- package/lib/browser/component/scroll/scroll.d.ts.map +1 -0
- package/lib/browser/component/scroll/scroll.js +263 -0
- package/lib/browser/component/scroll/scroll.js.map +1 -0
- package/lib/browser/component/scroll/scroll.module.less +83 -0
- package/lib/browser/component.d.ts +23 -0
- package/lib/browser/component.d.ts.map +1 -0
- package/lib/browser/component.js +165 -0
- package/lib/browser/component.js.map +1 -0
- package/lib/browser/decoration-applier.d.ts +25 -0
- package/lib/browser/decoration-applier.d.ts.map +1 -0
- package/lib/browser/decoration-applier.js +224 -0
- package/lib/browser/decoration-applier.js.map +1 -0
- package/lib/browser/diff/compare.d.ts +14 -0
- package/lib/browser/diff/compare.d.ts.map +1 -0
- package/lib/browser/diff/compare.js +94 -0
- package/lib/browser/diff/compare.js.map +1 -0
- package/lib/browser/diff/index.d.ts +19 -0
- package/lib/browser/diff/index.d.ts.map +1 -0
- package/lib/browser/diff/index.js +92 -0
- package/lib/browser/diff/index.js.map +1 -0
- package/lib/browser/doc-cache/empty-doc-cache.d.ts +12 -0
- package/lib/browser/doc-cache/empty-doc-cache.d.ts.map +1 -0
- package/lib/browser/doc-cache/empty-doc-cache.js +27 -0
- package/lib/browser/doc-cache/empty-doc-cache.js.map +1 -0
- package/lib/browser/doc-cache/index.d.ts +3 -0
- package/lib/browser/doc-cache/index.d.ts.map +1 -0
- package/lib/browser/doc-cache/index.js +6 -0
- package/lib/browser/doc-cache/index.js.map +1 -0
- package/lib/browser/doc-cache/local-storage-cache.d.ts +32 -0
- package/lib/browser/doc-cache/local-storage-cache.d.ts.map +1 -0
- package/lib/browser/doc-cache/local-storage-cache.js +69 -0
- package/lib/browser/doc-cache/local-storage-cache.js.map +1 -0
- package/lib/browser/doc-model/editor-document-error.d.ts +7 -0
- package/lib/browser/doc-model/editor-document-error.d.ts.map +1 -0
- package/lib/browser/doc-model/editor-document-error.js +15 -0
- package/lib/browser/doc-model/editor-document-error.js.map +1 -0
- package/lib/browser/doc-model/editor-document-model-service.d.ts +40 -0
- package/lib/browser/doc-model/editor-document-model-service.d.ts.map +1 -0
- package/lib/browser/doc-model/editor-document-model-service.js +276 -0
- package/lib/browser/doc-model/editor-document-model-service.js.map +1 -0
- package/lib/browser/doc-model/editor-document-model.d.ts +85 -0
- package/lib/browser/doc-model/editor-document-model.d.ts.map +1 -0
- package/lib/browser/doc-model/editor-document-model.js +463 -0
- package/lib/browser/doc-model/editor-document-model.js.map +1 -0
- package/lib/browser/doc-model/editor-document-registry.d.ts +15 -0
- package/lib/browser/doc-model/editor-document-registry.d.ts.map +1 -0
- package/lib/browser/doc-model/editor-document-registry.js +110 -0
- package/lib/browser/doc-model/editor-document-registry.js.map +1 -0
- package/lib/browser/doc-model/editor-is-fn.d.ts +4 -0
- package/lib/browser/doc-model/editor-is-fn.d.ts.map +1 -0
- package/lib/browser/doc-model/editor-is-fn.js +12 -0
- package/lib/browser/doc-model/editor-is-fn.js.map +1 -0
- package/lib/browser/doc-model/main.d.ts +5 -0
- package/lib/browser/doc-model/main.d.ts.map +1 -0
- package/lib/browser/doc-model/main.js +8 -0
- package/lib/browser/doc-model/main.js.map +1 -0
- package/lib/browser/doc-model/override.d.ts +12 -0
- package/lib/browser/doc-model/override.d.ts.map +1 -0
- package/lib/browser/doc-model/override.js +46 -0
- package/lib/browser/doc-model/override.js.map +1 -0
- package/lib/browser/doc-model/save-task.d.ts +19 -0
- package/lib/browser/doc-model/save-task.d.ts.map +1 -0
- package/lib/browser/doc-model/save-task.js +34 -0
- package/lib/browser/doc-model/save-task.js.map +1 -0
- package/lib/browser/doc-model/saveParticipants.d.ts +21 -0
- package/lib/browser/doc-model/saveParticipants.d.ts.map +1 -0
- package/lib/browser/doc-model/saveParticipants.js +133 -0
- package/lib/browser/doc-model/saveParticipants.js.map +1 -0
- package/lib/browser/doc-model/types.d.ts +253 -0
- package/lib/browser/doc-model/types.d.ts.map +1 -0
- package/lib/browser/doc-model/types.js +31 -0
- package/lib/browser/doc-model/types.js.map +1 -0
- package/lib/browser/editor-collection.service.d.ts +137 -0
- package/lib/browser/editor-collection.service.d.ts.map +1 -0
- package/lib/browser/editor-collection.service.js +607 -0
- package/lib/browser/editor-collection.service.js.map +1 -0
- package/lib/browser/editor-opener.d.ts +10 -0
- package/lib/browser/editor-opener.d.ts.map +1 -0
- package/lib/browser/editor-opener.js +51 -0
- package/lib/browser/editor-opener.js.map +1 -0
- package/lib/browser/editor.contribution.d.ts +54 -0
- package/lib/browser/editor.contribution.d.ts.map +1 -0
- package/lib/browser/editor.contribution.js +1059 -0
- package/lib/browser/editor.contribution.js.map +1 -0
- package/lib/browser/editor.decoration.service.d.ts +28 -0
- package/lib/browser/editor.decoration.service.d.ts.map +1 -0
- package/lib/browser/editor.decoration.service.js +216 -0
- package/lib/browser/editor.decoration.service.js.map +1 -0
- package/lib/browser/editor.less +4 -0
- package/lib/browser/editor.module.less +493 -0
- package/lib/browser/editor.override.d.ts +24 -0
- package/lib/browser/editor.override.d.ts.map +1 -0
- package/lib/browser/editor.override.js +85 -0
- package/lib/browser/editor.override.js.map +1 -0
- package/lib/browser/editor.status-bar.service.d.ts +12 -0
- package/lib/browser/editor.status-bar.service.d.ts.map +1 -0
- package/lib/browser/editor.status-bar.service.js +114 -0
- package/lib/browser/editor.status-bar.service.js.map +1 -0
- package/lib/browser/editor.view.d.ts +33 -0
- package/lib/browser/editor.view.d.ts.map +1 -0
- package/lib/browser/editor.view.js +411 -0
- package/lib/browser/editor.view.js.map +1 -0
- package/lib/browser/error.d.ts +14 -0
- package/lib/browser/error.d.ts.map +1 -0
- package/lib/browser/error.js +19 -0
- package/lib/browser/error.js.map +1 -0
- package/lib/browser/feature.d.ts +14 -0
- package/lib/browser/feature.d.ts.map +1 -0
- package/lib/browser/feature.js +56 -0
- package/lib/browser/feature.js.map +1 -0
- package/lib/browser/format/formatterSelect.d.ts +11 -0
- package/lib/browser/format/formatterSelect.d.ts.map +1 -0
- package/lib/browser/format/formatterSelect.js +61 -0
- package/lib/browser/format/formatterSelect.js.map +1 -0
- package/lib/browser/fs-resource/file-tree-set.d.ts +31 -0
- package/lib/browser/fs-resource/file-tree-set.d.ts.map +1 -0
- package/lib/browser/fs-resource/file-tree-set.js +123 -0
- package/lib/browser/fs-resource/file-tree-set.js.map +1 -0
- package/lib/browser/fs-resource/fs-editor-doc.d.ts +47 -0
- package/lib/browser/fs-resource/fs-editor-doc.d.ts.map +1 -0
- package/lib/browser/fs-resource/fs-editor-doc.js +148 -0
- package/lib/browser/fs-resource/fs-editor-doc.js.map +1 -0
- package/lib/browser/fs-resource/fs-resource.d.ts +25 -0
- package/lib/browser/fs-resource/fs-resource.d.ts.map +1 -0
- package/lib/browser/fs-resource/fs-resource.js +211 -0
- package/lib/browser/fs-resource/fs-resource.js.map +1 -0
- package/lib/browser/fs-resource/index.d.ts +12 -0
- package/lib/browser/fs-resource/index.d.ts.map +1 -0
- package/lib/browser/fs-resource/index.js +30 -0
- package/lib/browser/fs-resource/index.js.map +1 -0
- package/lib/browser/grid/grid.service.d.ts +44 -0
- package/lib/browser/grid/grid.service.d.ts.map +1 -0
- package/lib/browser/grid/grid.service.js +255 -0
- package/lib/browser/grid/grid.service.js.map +1 -0
- package/lib/browser/history/index.d.ts +31 -0
- package/lib/browser/history/index.d.ts.map +1 -0
- package/lib/browser/history/index.js +164 -0
- package/lib/browser/history/index.js.map +1 -0
- package/lib/browser/index.d.ts +33 -0
- package/lib/browser/index.d.ts.map +1 -0
- package/lib/browser/index.js +212 -0
- package/lib/browser/index.js.map +1 -0
- package/lib/browser/language/diagnostic-collection.d.ts +28 -0
- package/lib/browser/language/diagnostic-collection.d.ts.map +1 -0
- package/lib/browser/language/diagnostic-collection.js +72 -0
- package/lib/browser/language/diagnostic-collection.js.map +1 -0
- package/lib/browser/language/language.service.d.ts +19 -0
- package/lib/browser/language/language.service.d.ts.map +1 -0
- package/lib/browser/language/language.service.js +146 -0
- package/lib/browser/language/language.service.js.map +1 -0
- package/lib/browser/language/workspace-symbol-quickopen.d.ts +43 -0
- package/lib/browser/language/workspace-symbol-quickopen.d.ts.map +1 -0
- package/lib/browser/language/workspace-symbol-quickopen.js +231 -0
- package/lib/browser/language/workspace-symbol-quickopen.js.map +1 -0
- package/lib/browser/menu/editor.context.d.ts +20 -0
- package/lib/browser/menu/editor.context.d.ts.map +1 -0
- package/lib/browser/menu/editor.context.js +139 -0
- package/lib/browser/menu/editor.context.js.map +1 -0
- package/lib/browser/menu/editor.menu.d.ts +13 -0
- package/lib/browser/menu/editor.menu.d.ts.map +1 -0
- package/lib/browser/menu/editor.menu.js +48 -0
- package/lib/browser/menu/editor.menu.js.map +1 -0
- package/lib/browser/menu/title-context.menu.d.ts +13 -0
- package/lib/browser/menu/title-context.menu.d.ts.map +1 -0
- package/lib/browser/menu/title-context.menu.js +55 -0
- package/lib/browser/menu/title-context.menu.js.map +1 -0
- package/lib/browser/monaco-contrib/callHierarchy/callHierarchy.contribution.d.ts +20 -0
- package/lib/browser/monaco-contrib/callHierarchy/callHierarchy.contribution.d.ts.map +1 -0
- package/lib/browser/monaco-contrib/callHierarchy/callHierarchy.contribution.js +64 -0
- package/lib/browser/monaco-contrib/callHierarchy/callHierarchy.contribution.js.map +1 -0
- package/lib/browser/monaco-contrib/callHierarchy/callHierarchy.service.d.ts +35 -0
- package/lib/browser/monaco-contrib/callHierarchy/callHierarchy.service.d.ts.map +1 -0
- package/lib/browser/monaco-contrib/callHierarchy/callHierarchy.service.js +144 -0
- package/lib/browser/monaco-contrib/callHierarchy/callHierarchy.service.js.map +1 -0
- package/lib/browser/monaco-contrib/command/command.service.d.ts +141 -0
- package/lib/browser/monaco-contrib/command/command.service.d.ts.map +1 -0
- package/lib/browser/monaco-contrib/command/command.service.js +370 -0
- package/lib/browser/monaco-contrib/command/command.service.js.map +1 -0
- package/lib/browser/monaco-contrib/index.d.ts +3 -0
- package/lib/browser/monaco-contrib/index.d.ts.map +1 -0
- package/lib/browser/monaco-contrib/index.js +6 -0
- package/lib/browser/monaco-contrib/index.js.map +1 -0
- package/lib/browser/monaco-contrib/tokenizer/textmate-registry.d.ts +46 -0
- package/lib/browser/monaco-contrib/tokenizer/textmate-registry.d.ts.map +1 -0
- package/lib/browser/monaco-contrib/tokenizer/textmate-registry.js +79 -0
- package/lib/browser/monaco-contrib/tokenizer/textmate-registry.js.map +1 -0
- package/lib/browser/monaco-contrib/tokenizer/textmate-tokenizer.d.ts +58 -0
- package/lib/browser/monaco-contrib/tokenizer/textmate-tokenizer.d.ts.map +1 -0
- package/lib/browser/monaco-contrib/tokenizer/textmate-tokenizer.js +75 -0
- package/lib/browser/monaco-contrib/tokenizer/textmate-tokenizer.js.map +1 -0
- package/lib/browser/monaco-contrib/tokenizer/textmate.service.d.ts +54 -0
- package/lib/browser/monaco-contrib/tokenizer/textmate.service.d.ts.map +1 -0
- package/lib/browser/monaco-contrib/tokenizer/textmate.service.js +596 -0
- package/lib/browser/monaco-contrib/tokenizer/textmate.service.js.map +1 -0
- package/lib/browser/navigation.module.less +86 -0
- package/lib/browser/navigation.view.d.ts +29 -0
- package/lib/browser/navigation.view.d.ts.map +1 -0
- package/lib/browser/navigation.view.js +183 -0
- package/lib/browser/navigation.view.js.map +1 -0
- package/lib/browser/preference/contribution.d.ts +5 -0
- package/lib/browser/preference/contribution.d.ts.map +1 -0
- package/lib/browser/preference/contribution.js +16 -0
- package/lib/browser/preference/contribution.js.map +1 -0
- package/lib/browser/preference/converter.d.ts +34 -0
- package/lib/browser/preference/converter.d.ts.map +1 -0
- package/lib/browser/preference/converter.js +632 -0
- package/lib/browser/preference/converter.js.map +1 -0
- package/lib/browser/preference/schema.d.ts +230 -0
- package/lib/browser/preference/schema.d.ts.map +1 -0
- package/lib/browser/preference/schema.js +1453 -0
- package/lib/browser/preference/schema.js.map +1 -0
- package/lib/browser/preference/util.d.ts +4 -0
- package/lib/browser/preference/util.d.ts.map +1 -0
- package/lib/browser/preference/util.js +13 -0
- package/lib/browser/preference/util.js.map +1 -0
- package/lib/browser/resource.service.d.ts +32 -0
- package/lib/browser/resource.service.d.ts.map +1 -0
- package/lib/browser/resource.service.js +219 -0
- package/lib/browser/resource.service.js.map +1 -0
- package/lib/browser/tab.view.d.ts +12 -0
- package/lib/browser/tab.view.d.ts.map +1 -0
- package/lib/browser/tab.view.js +330 -0
- package/lib/browser/tab.view.js.map +1 -0
- package/lib/browser/types.d.ts +344 -0
- package/lib/browser/types.d.ts.map +1 -0
- package/lib/browser/types.js +94 -0
- package/lib/browser/types.js.map +1 -0
- package/lib/browser/untitled-resource.d.ts +33 -0
- package/lib/browser/untitled-resource.d.ts.map +1 -0
- package/lib/browser/untitled-resource.js +114 -0
- package/lib/browser/untitled-resource.js.map +1 -0
- package/lib/browser/view/editor.react.d.ts +10 -0
- package/lib/browser/view/editor.react.d.ts.map +1 -0
- package/lib/browser/view/editor.react.js +69 -0
- package/lib/browser/view/editor.react.js.map +1 -0
- package/lib/browser/view/react-hook.d.ts +3 -0
- package/lib/browser/view/react-hook.d.ts.map +1 -0
- package/lib/browser/view/react-hook.js +9 -0
- package/lib/browser/view/react-hook.js.map +1 -0
- package/lib/browser/view/suggest-widget.d.ts +8 -0
- package/lib/browser/view/suggest-widget.d.ts.map +1 -0
- package/lib/browser/view/suggest-widget.js +51 -0
- package/lib/browser/view/suggest-widget.js.map +1 -0
- package/lib/browser/view/topPadding.d.ts +6 -0
- package/lib/browser/view/topPadding.d.ts.map +1 -0
- package/lib/browser/view/topPadding.js +18 -0
- package/lib/browser/view/topPadding.js.map +1 -0
- package/lib/browser/workbench-editor.service.d.ts +244 -0
- package/lib/browser/workbench-editor.service.d.ts.map +1 -0
- package/lib/browser/workbench-editor.service.js +1689 -0
- package/lib/browser/workbench-editor.service.js.map +1 -0
- package/lib/common/doc-cache.d.ts +80 -0
- package/lib/common/doc-cache.d.ts.map +1 -0
- package/lib/common/doc-cache.js +39 -0
- package/lib/common/doc-cache.js.map +1 -0
- package/lib/common/editor.d.ts +571 -0
- package/lib/common/editor.d.ts.map +1 -0
- package/lib/common/editor.js +125 -0
- package/lib/common/editor.js.map +1 -0
- package/lib/common/index.d.ts +6 -0
- package/lib/common/index.d.ts.map +1 -0
- package/lib/common/index.js +9 -0
- package/lib/common/index.js.map +1 -0
- package/lib/common/language.d.ts +108 -0
- package/lib/common/language.d.ts.map +1 -0
- package/lib/common/language.js +72 -0
- package/lib/common/language.js.map +1 -0
- package/lib/common/mocks/workbench-editor.service.d.ts +21 -0
- package/lib/common/mocks/workbench-editor.service.d.ts.map +1 -0
- package/lib/common/mocks/workbench-editor.service.js +48 -0
- package/lib/common/mocks/workbench-editor.service.js.map +1 -0
- package/lib/common/resource.d.ts +94 -0
- package/lib/common/resource.d.ts.map +1 -0
- package/lib/common/resource.js +31 -0
- package/lib/common/resource.js.map +1 -0
- package/lib/common/utils.d.ts +3 -0
- package/lib/common/utils.d.ts.map +1 -0
- package/lib/common/utils.js +14 -0
- package/lib/common/utils.js.map +1 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +5 -0
- package/lib/index.js.map +1 -0
- package/package.json +33 -0
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LanguageService = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const monaco = (0, tslib_1.__importStar)(require("@opensumi/monaco-editor-core/esm/vs/editor/editor.api"));
|
|
6
|
+
const di_1 = require("@opensumi/di");
|
|
7
|
+
const diagnostic_collection_1 = require("./diagnostic-collection");
|
|
8
|
+
const ide_core_common_1 = require("@opensumi/ide-core-common");
|
|
9
|
+
const common_1 = require("../../common");
|
|
10
|
+
function reviveSeverity(severity) {
|
|
11
|
+
switch (severity) {
|
|
12
|
+
case ide_core_common_1.MarkerSeverity.Error: return common_1.DiagnosticSeverity.Error;
|
|
13
|
+
case ide_core_common_1.MarkerSeverity.Warning: return common_1.DiagnosticSeverity.Warning;
|
|
14
|
+
case ide_core_common_1.MarkerSeverity.Info: return common_1.DiagnosticSeverity.Information;
|
|
15
|
+
case ide_core_common_1.MarkerSeverity.Hint: return common_1.DiagnosticSeverity.Hint;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
function reviveRange(startLine, startColumn, endLine, endColumn) {
|
|
19
|
+
// note: language server range is 0-based, marker is 1-based, so need to deduct 1 here
|
|
20
|
+
return {
|
|
21
|
+
start: {
|
|
22
|
+
line: startLine - 1,
|
|
23
|
+
character: startColumn - 1,
|
|
24
|
+
},
|
|
25
|
+
end: {
|
|
26
|
+
line: endLine - 1,
|
|
27
|
+
character: endColumn - 1,
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
function reviveRelated(related) {
|
|
32
|
+
return {
|
|
33
|
+
message: related.message,
|
|
34
|
+
location: {
|
|
35
|
+
uri: related.resource,
|
|
36
|
+
range: reviveRange(related.startLineNumber, related.startColumn, related.endLineNumber, related.endColumn),
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
function reviveMarker(marker) {
|
|
41
|
+
const monacoMarker = {
|
|
42
|
+
code: marker.code,
|
|
43
|
+
severity: reviveSeverity(marker.severity),
|
|
44
|
+
range: reviveRange(marker.startLineNumber, marker.startColumn, marker.endLineNumber, marker.endColumn),
|
|
45
|
+
message: marker.message,
|
|
46
|
+
source: marker.source,
|
|
47
|
+
relatedInformation: undefined,
|
|
48
|
+
tags: marker.tags,
|
|
49
|
+
};
|
|
50
|
+
if (marker.relatedInformation) {
|
|
51
|
+
monacoMarker.relatedInformation = marker.relatedInformation.map(reviveRelated);
|
|
52
|
+
}
|
|
53
|
+
return monacoMarker;
|
|
54
|
+
}
|
|
55
|
+
let LanguageService = class LanguageService {
|
|
56
|
+
constructor() {
|
|
57
|
+
this.markers = new Map();
|
|
58
|
+
this.workspaceSymbolProviders = [];
|
|
59
|
+
for (const uri of this.markerManager.getResources()) {
|
|
60
|
+
this.updateMarkers(new ide_core_common_1.URI(uri));
|
|
61
|
+
}
|
|
62
|
+
this.markerManager.onMarkerChanged((uris) => {
|
|
63
|
+
if (uris) {
|
|
64
|
+
uris.forEach((uri) => this.updateMarkers(new ide_core_common_1.URI(uri)));
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
get languages() {
|
|
69
|
+
return [...this.mergeLanguages(monaco.languages.getLanguages()).values()];
|
|
70
|
+
}
|
|
71
|
+
getLanguage(languageId) {
|
|
72
|
+
return this.mergeLanguages(monaco.languages.getLanguages().filter((language) => language.id === languageId)).get(languageId);
|
|
73
|
+
}
|
|
74
|
+
mergeLanguages(registered) {
|
|
75
|
+
const languages = new Map();
|
|
76
|
+
for (const { id, aliases, extensions, filenames } of registered) {
|
|
77
|
+
const merged = languages.get(id) || {
|
|
78
|
+
id,
|
|
79
|
+
name: '',
|
|
80
|
+
extensions: new Set(),
|
|
81
|
+
filenames: new Set(),
|
|
82
|
+
};
|
|
83
|
+
if (!merged.name && aliases && aliases.length) {
|
|
84
|
+
merged.name = aliases[0];
|
|
85
|
+
}
|
|
86
|
+
if (extensions && extensions.length) {
|
|
87
|
+
for (const extension of extensions) {
|
|
88
|
+
merged.extensions.add(extension);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
if (filenames && filenames.length) {
|
|
92
|
+
for (const filename of filenames) {
|
|
93
|
+
merged.filenames.add(filename);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
languages.set(id, merged);
|
|
97
|
+
}
|
|
98
|
+
for (const [id, language] of languages) {
|
|
99
|
+
if (!language.name) {
|
|
100
|
+
language.name = id;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return languages;
|
|
104
|
+
}
|
|
105
|
+
registerWorkspaceSymbolProvider(provider) {
|
|
106
|
+
this.workspaceSymbolProviders.push(provider);
|
|
107
|
+
return ide_core_common_1.Disposable.create(() => {
|
|
108
|
+
const index = this.workspaceSymbolProviders.indexOf(provider);
|
|
109
|
+
if (index !== -1) {
|
|
110
|
+
this.workspaceSymbolProviders.splice(index, 1);
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
updateMarkers(uri) {
|
|
115
|
+
const uriString = uri.toString();
|
|
116
|
+
const owners = new Map();
|
|
117
|
+
for (const marker of this.markerManager.getMarkers({ resource: uri.toString() })) {
|
|
118
|
+
const diagnostics = owners.get(marker.type) || [];
|
|
119
|
+
diagnostics.push(reviveMarker(marker));
|
|
120
|
+
owners.set(marker.type, diagnostics);
|
|
121
|
+
}
|
|
122
|
+
const toClean = new Set(this.markers.keys());
|
|
123
|
+
for (const [owner, diagnostics] of owners) {
|
|
124
|
+
toClean.delete(owner);
|
|
125
|
+
const collection = this.markers.get(owner) || new diagnostic_collection_1.MonacoDiagnosticCollection(owner);
|
|
126
|
+
collection.set(uriString, diagnostics);
|
|
127
|
+
this.markers.set(owner, collection);
|
|
128
|
+
}
|
|
129
|
+
for (const owner of toClean) {
|
|
130
|
+
const collection = this.markers.get(owner);
|
|
131
|
+
if (collection) {
|
|
132
|
+
collection.set(uriString, []);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
(0, tslib_1.__decorate)([
|
|
138
|
+
(0, di_1.Autowired)(),
|
|
139
|
+
(0, tslib_1.__metadata)("design:type", ide_core_common_1.MarkerManager)
|
|
140
|
+
], LanguageService.prototype, "markerManager", void 0);
|
|
141
|
+
LanguageService = (0, tslib_1.__decorate)([
|
|
142
|
+
(0, di_1.Injectable)(),
|
|
143
|
+
(0, tslib_1.__metadata)("design:paramtypes", [])
|
|
144
|
+
], LanguageService);
|
|
145
|
+
exports.LanguageService = LanguageService;
|
|
146
|
+
//# sourceMappingURL=language.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language.service.js","sourceRoot":"","sources":["../../../src/browser/language/language.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { QuickOpenHandler, QuickOpenModel, QuickOpenItem, CancellationToken, URI, QuickOpenMode } from '@opensumi/ide-core-browser';
|
|
2
|
+
import { WorkspaceSymbolProvider, WorkbenchEditorService } from '../../common';
|
|
3
|
+
import type { SymbolInformation } from 'vscode-languageserver-types';
|
|
4
|
+
import { IReporterService } from '@opensumi/ide-core-common';
|
|
5
|
+
export declare class WorkspaceSymbolQuickOpenHandler implements QuickOpenHandler {
|
|
6
|
+
private readonly languageService;
|
|
7
|
+
private readonly workspaceService;
|
|
8
|
+
private readonly logger;
|
|
9
|
+
private readonly workbenchEditorService;
|
|
10
|
+
private readonly workspaceSymbolActionProvider;
|
|
11
|
+
reporterService: IReporterService;
|
|
12
|
+
prefix: string;
|
|
13
|
+
get description(): string;
|
|
14
|
+
private cancellationSource;
|
|
15
|
+
getModel(): QuickOpenModel;
|
|
16
|
+
getOptions(): {
|
|
17
|
+
fuzzyMatchLabel: {
|
|
18
|
+
enableSeparateSubstringMatching: boolean;
|
|
19
|
+
};
|
|
20
|
+
showItemsWithoutHighlight: boolean;
|
|
21
|
+
fuzzyMatchDescription: boolean;
|
|
22
|
+
getPlaceholderItem: (lookFor: string, originLookFor: string) => QuickOpenItem;
|
|
23
|
+
};
|
|
24
|
+
onClose(): void;
|
|
25
|
+
onToggle(): void;
|
|
26
|
+
}
|
|
27
|
+
export declare class SymbolInformationQuickOpenItem extends QuickOpenItem {
|
|
28
|
+
protected readonly symbol: SymbolInformation;
|
|
29
|
+
private readonly provider;
|
|
30
|
+
private readonly workbenchEditorService;
|
|
31
|
+
private readonly token;
|
|
32
|
+
private relativePath;
|
|
33
|
+
constructor(symbol: SymbolInformation, provider: WorkspaceSymbolProvider, workbenchEditorService: WorkbenchEditorService, token: CancellationToken, relativePath: string);
|
|
34
|
+
getLabel(): string;
|
|
35
|
+
getUri(): URI;
|
|
36
|
+
getIconClass(): string;
|
|
37
|
+
getDescription(): string;
|
|
38
|
+
private fromRange;
|
|
39
|
+
private open;
|
|
40
|
+
run(mode: QuickOpenMode): boolean;
|
|
41
|
+
openSide(): Thenable<void>;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=workspace-symbol-quickopen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-symbol-quickopen.d.ts","sourceRoot":"","sources":["../../../src/browser/language/workspace-symbol-quickopen.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAA2B,aAAa,EAAE,iBAAiB,EAAE,GAAG,EAAE,aAAa,EAA0B,MAAM,4BAA4B,CAAC;AACrL,OAAO,EAAE,uBAAuB,EAA2C,sBAAsB,EAA0B,MAAM,cAAc,CAAC;AAChJ,OAAO,KAAK,EAAE,iBAAiB,EAAS,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAqB,gBAAgB,EAAe,MAAM,2BAA2B,CAAC;AAkC7F,qBACa,+BAAgC,YAAW,gBAAgB;IAGtE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmB;IAGnD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoB;IAGrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IAGjC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAyB;IAGhE,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAAgC;IAG9E,eAAe,EAAE,gBAAgB,CAAC;IAElC,MAAM,SAAO;IAEb,IAAI,WAAW,WAEd;IAED,OAAO,CAAC,kBAAkB,CAAiC;IAE3D,QAAQ,IAAI,cAAc;IAuE1B,UAAU;;;;;;sCAQwB,MAAM,iBAAiB,MAAM;;IAO/D,OAAO;IAIP,QAAQ;CAGT;AAED,qBAAa,8BAA+B,SAAQ,aAAa;IAG7D,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,iBAAiB;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,YAAY;gBAJD,MAAM,EAAE,iBAAiB,EAC3B,QAAQ,EAAE,uBAAuB,EACjC,sBAAsB,EAAE,sBAAsB,EAC9C,KAAK,EAAE,iBAAiB,EACjC,YAAY,EAAE,MAAM;IAK9B,QAAQ,IAAI,MAAM;IAIlB,MAAM;IAIN,YAAY;IAIZ,cAAc;IAKd,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,IAAI;IAMZ,GAAG,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;IAcjC,QAAQ;CAWT"}
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SymbolInformationQuickOpenItem = exports.WorkspaceSymbolQuickOpenHandler = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const modes_1 = require("@opensumi/monaco-editor-core/esm/vs/editor/common/modes");
|
|
6
|
+
const di_1 = require("@opensumi/di");
|
|
7
|
+
const ide_core_browser_1 = require("@opensumi/ide-core-browser");
|
|
8
|
+
const common_1 = require("../../common");
|
|
9
|
+
const ide_core_common_1 = require("@opensumi/ide-core-common");
|
|
10
|
+
const ide_workspace_1 = require("@opensumi/ide-workspace");
|
|
11
|
+
const ide_quick_open_1 = require("@opensumi/ide-quick-open");
|
|
12
|
+
let WorkspaceSymbolOpenSideAction = class WorkspaceSymbolOpenSideAction extends ide_quick_open_1.QuickOpenBaseAction {
|
|
13
|
+
constructor() {
|
|
14
|
+
super({
|
|
15
|
+
id: 'workspace-symbol:splitToRight',
|
|
16
|
+
tooltip: (0, ide_core_common_1.localize)('quickOpen.openSide'),
|
|
17
|
+
class: (0, ide_core_browser_1.getIcon)('embed'),
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
async run(item) {
|
|
21
|
+
await item.openSide();
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
WorkspaceSymbolOpenSideAction = (0, tslib_1.__decorate)([
|
|
25
|
+
(0, di_1.Injectable)(),
|
|
26
|
+
(0, tslib_1.__metadata)("design:paramtypes", [])
|
|
27
|
+
], WorkspaceSymbolOpenSideAction);
|
|
28
|
+
let WorkspaceSymbolActionProvider = class WorkspaceSymbolActionProvider {
|
|
29
|
+
hasActions() {
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
getActions() {
|
|
33
|
+
return [this.workspaceSymbolOpenSideActionOpen];
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
(0, tslib_1.__decorate)([
|
|
37
|
+
(0, di_1.Autowired)(),
|
|
38
|
+
(0, tslib_1.__metadata)("design:type", WorkspaceSymbolOpenSideAction)
|
|
39
|
+
], WorkspaceSymbolActionProvider.prototype, "workspaceSymbolOpenSideActionOpen", void 0);
|
|
40
|
+
WorkspaceSymbolActionProvider = (0, tslib_1.__decorate)([
|
|
41
|
+
(0, di_1.Injectable)()
|
|
42
|
+
], WorkspaceSymbolActionProvider);
|
|
43
|
+
let WorkspaceSymbolQuickOpenHandler = class WorkspaceSymbolQuickOpenHandler {
|
|
44
|
+
constructor() {
|
|
45
|
+
this.prefix = '#';
|
|
46
|
+
this.cancellationSource = new ide_core_browser_1.CancellationTokenSource();
|
|
47
|
+
}
|
|
48
|
+
get description() {
|
|
49
|
+
return (0, ide_core_common_1.localize)('editor.workspaceSymbol.description');
|
|
50
|
+
}
|
|
51
|
+
getModel() {
|
|
52
|
+
return {
|
|
53
|
+
onType: (lookFor, acceptor) => {
|
|
54
|
+
if (lookFor === '') {
|
|
55
|
+
acceptor([new ide_core_browser_1.QuickOpenItem({
|
|
56
|
+
label: (0, ide_core_common_1.localize)('editor.workspaceSymbol.search'),
|
|
57
|
+
run: () => false,
|
|
58
|
+
})]);
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
if (lookFor === '#') {
|
|
62
|
+
return void acceptor([new ide_core_browser_1.QuickOpenItem({
|
|
63
|
+
label: (0, ide_core_common_1.localize)('editor.workspaceSymbolClass.search'),
|
|
64
|
+
run: () => false,
|
|
65
|
+
})]);
|
|
66
|
+
}
|
|
67
|
+
if (this.languageService.workspaceSymbolProviders.length === 0) {
|
|
68
|
+
acceptor([new ide_core_browser_1.QuickOpenItem({
|
|
69
|
+
label: (0, ide_core_common_1.localize)('editor.workspaceSymbol.notfound'),
|
|
70
|
+
run: () => false,
|
|
71
|
+
})]);
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
const isSearchClass = lookFor[0] === '#';
|
|
75
|
+
const items = [];
|
|
76
|
+
this.cancellationSource.cancel();
|
|
77
|
+
const newCancellationSource = new ide_core_browser_1.CancellationTokenSource();
|
|
78
|
+
this.cancellationSource = newCancellationSource;
|
|
79
|
+
const param = {
|
|
80
|
+
query: isSearchClass ? lookFor.slice(1) : lookFor,
|
|
81
|
+
};
|
|
82
|
+
const timer = this.reporterService.time(ide_core_common_1.REPORT_NAME.QUICK_OPEN_MEASURE);
|
|
83
|
+
Promise.all(this.languageService.workspaceSymbolProviders.map(async (provider) => {
|
|
84
|
+
let symbols = await provider.provideWorkspaceSymbols(param, newCancellationSource.token);
|
|
85
|
+
if (isSearchClass) {
|
|
86
|
+
symbols = symbols === null || symbols === void 0 ? void 0 : symbols.filter((symbol) => symbol.kind === modes_1.SymbolKind.Class);
|
|
87
|
+
}
|
|
88
|
+
if (symbols && symbols.length && !newCancellationSource.token.isCancellationRequested) {
|
|
89
|
+
const quickOpenItems = await Promise.all(symbols.map(async (symbol) => {
|
|
90
|
+
const relativePath = await this.workspaceService.asRelativePath(new ide_core_browser_1.URI(symbol.location.uri).parent) || '';
|
|
91
|
+
return new SymbolInformationQuickOpenItem(symbol, provider, this.workbenchEditorService, newCancellationSource.token, relativePath);
|
|
92
|
+
}));
|
|
93
|
+
items.push(...quickOpenItems);
|
|
94
|
+
acceptor(items, this.workspaceSymbolActionProvider);
|
|
95
|
+
}
|
|
96
|
+
return symbols;
|
|
97
|
+
})).catch((e) => {
|
|
98
|
+
this.logger.log(e);
|
|
99
|
+
}).finally(() => {
|
|
100
|
+
if (!newCancellationSource.token.isCancellationRequested) {
|
|
101
|
+
// 无数据清空历史数据
|
|
102
|
+
if (!items.length) {
|
|
103
|
+
acceptor([]);
|
|
104
|
+
}
|
|
105
|
+
timer.timeEnd(isSearchClass ? 'class' : 'symbol', {
|
|
106
|
+
lookFor,
|
|
107
|
+
stat: {
|
|
108
|
+
symbol: items.length,
|
|
109
|
+
},
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
},
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
getOptions() {
|
|
117
|
+
return {
|
|
118
|
+
fuzzyMatchLabel: {
|
|
119
|
+
enableSeparateSubstringMatching: true,
|
|
120
|
+
},
|
|
121
|
+
showItemsWithoutHighlight: true,
|
|
122
|
+
// 不搜索文件路径
|
|
123
|
+
fuzzyMatchDescription: false,
|
|
124
|
+
getPlaceholderItem: (lookFor, originLookFor) => new ide_core_browser_1.QuickOpenItem({
|
|
125
|
+
label: (0, ide_core_common_1.localize)(originLookFor.startsWith('##') ? 'editor.workspaceSymbolClass.notfound' : 'editor.workspaceSymbol.notfound'),
|
|
126
|
+
run: () => false,
|
|
127
|
+
}),
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
onClose() {
|
|
131
|
+
this.cancellationSource.cancel();
|
|
132
|
+
}
|
|
133
|
+
onToggle() {
|
|
134
|
+
this.cancellationSource.cancel();
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
(0, tslib_1.__decorate)([
|
|
138
|
+
(0, di_1.Autowired)(common_1.ILanguageService),
|
|
139
|
+
(0, tslib_1.__metadata)("design:type", Object)
|
|
140
|
+
], WorkspaceSymbolQuickOpenHandler.prototype, "languageService", void 0);
|
|
141
|
+
(0, tslib_1.__decorate)([
|
|
142
|
+
(0, di_1.Autowired)(ide_workspace_1.IWorkspaceService),
|
|
143
|
+
(0, tslib_1.__metadata)("design:type", Object)
|
|
144
|
+
], WorkspaceSymbolQuickOpenHandler.prototype, "workspaceService", void 0);
|
|
145
|
+
(0, tslib_1.__decorate)([
|
|
146
|
+
(0, di_1.Autowired)(ide_core_common_1.ILogger),
|
|
147
|
+
(0, tslib_1.__metadata)("design:type", Object)
|
|
148
|
+
], WorkspaceSymbolQuickOpenHandler.prototype, "logger", void 0);
|
|
149
|
+
(0, tslib_1.__decorate)([
|
|
150
|
+
(0, di_1.Autowired)(common_1.WorkbenchEditorService),
|
|
151
|
+
(0, tslib_1.__metadata)("design:type", common_1.WorkbenchEditorService)
|
|
152
|
+
], WorkspaceSymbolQuickOpenHandler.prototype, "workbenchEditorService", void 0);
|
|
153
|
+
(0, tslib_1.__decorate)([
|
|
154
|
+
(0, di_1.Autowired)(),
|
|
155
|
+
(0, tslib_1.__metadata)("design:type", WorkspaceSymbolActionProvider)
|
|
156
|
+
], WorkspaceSymbolQuickOpenHandler.prototype, "workspaceSymbolActionProvider", void 0);
|
|
157
|
+
(0, tslib_1.__decorate)([
|
|
158
|
+
(0, di_1.Autowired)(ide_core_common_1.IReporterService),
|
|
159
|
+
(0, tslib_1.__metadata)("design:type", Object)
|
|
160
|
+
], WorkspaceSymbolQuickOpenHandler.prototype, "reporterService", void 0);
|
|
161
|
+
WorkspaceSymbolQuickOpenHandler = (0, tslib_1.__decorate)([
|
|
162
|
+
(0, di_1.Injectable)()
|
|
163
|
+
], WorkspaceSymbolQuickOpenHandler);
|
|
164
|
+
exports.WorkspaceSymbolQuickOpenHandler = WorkspaceSymbolQuickOpenHandler;
|
|
165
|
+
class SymbolInformationQuickOpenItem extends ide_core_browser_1.QuickOpenItem {
|
|
166
|
+
constructor(symbol, provider, workbenchEditorService, token, relativePath) {
|
|
167
|
+
super({});
|
|
168
|
+
this.symbol = symbol;
|
|
169
|
+
this.provider = provider;
|
|
170
|
+
this.workbenchEditorService = workbenchEditorService;
|
|
171
|
+
this.token = token;
|
|
172
|
+
this.relativePath = relativePath;
|
|
173
|
+
}
|
|
174
|
+
getLabel() {
|
|
175
|
+
return this.symbol.name;
|
|
176
|
+
}
|
|
177
|
+
getUri() {
|
|
178
|
+
return new ide_core_browser_1.URI(this.symbol.location.uri);
|
|
179
|
+
}
|
|
180
|
+
getIconClass() {
|
|
181
|
+
return (0, ide_core_browser_1.getSymbolIcon)(this.symbol.kind);
|
|
182
|
+
}
|
|
183
|
+
getDescription() {
|
|
184
|
+
const containerName = this.symbol.containerName;
|
|
185
|
+
return `${containerName ? `${containerName} · ` : ''}${decodeURIComponent(this.relativePath)}`;
|
|
186
|
+
}
|
|
187
|
+
fromRange(range) {
|
|
188
|
+
if (!range) {
|
|
189
|
+
return undefined;
|
|
190
|
+
}
|
|
191
|
+
const { start, end } = range;
|
|
192
|
+
return {
|
|
193
|
+
startLineNumber: start.line + 1,
|
|
194
|
+
startColumn: start.character + 1,
|
|
195
|
+
endLineNumber: end.line + 1,
|
|
196
|
+
endColumn: end.character + 1,
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
open(uri, range) {
|
|
200
|
+
this.workbenchEditorService.open(uri, {
|
|
201
|
+
range: this.fromRange(range),
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
run(mode) {
|
|
205
|
+
const uri = this.getUri();
|
|
206
|
+
if (mode === ide_core_browser_1.QuickOpenMode.OPEN) {
|
|
207
|
+
this.provider.resolveWorkspaceSymbol(this.symbol, this.token).then((resolvedSymbol) => {
|
|
208
|
+
if (resolvedSymbol) {
|
|
209
|
+
this.open(uri, resolvedSymbol.location.range);
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
this.open(uri, this.symbol.location.range);
|
|
213
|
+
}
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
return true;
|
|
217
|
+
}
|
|
218
|
+
openSide() {
|
|
219
|
+
const uri = this.getUri();
|
|
220
|
+
return this.provider.resolveWorkspaceSymbol(this.symbol, this.token).then((resolvedSymbol) => {
|
|
221
|
+
this.workbenchEditorService.open(uri, {
|
|
222
|
+
preview: false,
|
|
223
|
+
split: common_1.EditorGroupSplitAction.Right,
|
|
224
|
+
range: this.fromRange(resolvedSymbol ? resolvedSymbol.location.range : this.symbol.location.range),
|
|
225
|
+
focus: true,
|
|
226
|
+
});
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
exports.SymbolInformationQuickOpenItem = SymbolInformationQuickOpenItem;
|
|
231
|
+
//# sourceMappingURL=workspace-symbol-quickopen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-symbol-quickopen.js","sourceRoot":"","sources":["../../../src/browser/language/workspace-symbol-quickopen.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Injector } from '@opensumi/di';
|
|
2
|
+
import { Disposable } from '@opensumi/ide-core-browser';
|
|
3
|
+
import { IEditor } from '../../common';
|
|
4
|
+
import { BrowserEditorContribution, IEditorFeatureRegistry } from '../types';
|
|
5
|
+
export declare class EditorContextMenuController extends Disposable {
|
|
6
|
+
private _editor;
|
|
7
|
+
private readonly contextMenuService;
|
|
8
|
+
private readonly globalContextKeyService;
|
|
9
|
+
private readonly contextMenuRenderer;
|
|
10
|
+
private readonly contextKeyService;
|
|
11
|
+
constructor(_editor: IEditor);
|
|
12
|
+
overrideContextmenuContribution(editor: IEditor): void;
|
|
13
|
+
private _doShowContextMenu;
|
|
14
|
+
private getMenuNodes;
|
|
15
|
+
}
|
|
16
|
+
export declare class EditorContextMenuBrowserEditorContribution implements BrowserEditorContribution {
|
|
17
|
+
injector: Injector;
|
|
18
|
+
registerEditorFeature(registry: IEditorFeatureRegistry): void;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=editor.context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editor.context.d.ts","sourceRoot":"","sources":["../../../src/browser/menu/editor.context.ts"],"names":[],"mappings":"AAEA,OAAO,EAAyC,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,UAAU,EAA8B,MAAM,4BAA4B,CAAC;AAMpF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAE7E,qBACa,2BAA4B,SAAQ,UAAU;IAa7C,OAAO,CAAC,OAAO;IAV3B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA6B;IAGhE,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAqB;IAG7D,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAmB;IAEvD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAqB;gBAEnC,OAAO,EAAE,OAAO;IAMpC,+BAA+B,CAAC,MAAM,EAAE,OAAO;IAqC/C,OAAO,CAAC,kBAAkB;IAmD1B,OAAO,CAAC,YAAY;CASrB;AAED,qBACa,0CAA2C,YAAW,yBAAyB;IAG1F,QAAQ,EAAE,QAAQ,CAAC;IAEnB,qBAAqB,CAAC,QAAQ,EAAE,sBAAsB;CAQvD"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EditorContextMenuBrowserEditorContribution = exports.EditorContextMenuController = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const monaco = (0, tslib_1.__importStar)(require("@opensumi/monaco-editor-core/esm/vs/editor/editor.api"));
|
|
6
|
+
const contextmenu_1 = require("@opensumi/monaco-editor-core/esm/vs/editor/contrib/contextmenu/contextmenu");
|
|
7
|
+
const di_1 = require("@opensumi/di");
|
|
8
|
+
const ide_core_browser_1 = require("@opensumi/ide-core-browser");
|
|
9
|
+
const next_1 = require("@opensumi/ide-core-browser/lib/menu/next");
|
|
10
|
+
const editorOptions_1 = require("@opensumi/monaco-editor-core/esm/vs/editor/common/config/editorOptions");
|
|
11
|
+
const dom = (0, tslib_1.__importStar)(require("@opensumi/monaco-editor-core/esm/vs/base/browser/dom"));
|
|
12
|
+
const types_1 = require("../types");
|
|
13
|
+
let EditorContextMenuController = class EditorContextMenuController extends ide_core_browser_1.Disposable {
|
|
14
|
+
constructor(_editor) {
|
|
15
|
+
super();
|
|
16
|
+
this._editor = _editor;
|
|
17
|
+
this.contextKeyService = this.registerDispose(this.globalContextKeyService.createScoped(this._editor.monacoEditor._contextKeyService));
|
|
18
|
+
this.overrideContextmenuContribution(_editor);
|
|
19
|
+
}
|
|
20
|
+
overrideContextmenuContribution(editor) {
|
|
21
|
+
// https://github.com/Microsoft/monaco-editor/issues/1058#issuecomment-468681208
|
|
22
|
+
const contextmenu = editor.monacoEditor.getContribution(contextmenu_1.ContextMenuController.ID);
|
|
23
|
+
const _this = this;
|
|
24
|
+
const originMethod = contextmenu['showContextMenu'];
|
|
25
|
+
// https://github.com/microsoft/vscode/blob/master/src/vs/editor/contrib/contextmenu/contextmenu.ts#L124
|
|
26
|
+
contextmenu['showContextMenu'] = function (anchor) {
|
|
27
|
+
if (!this['_editor'].getOption(editorOptions_1.EditorOption.contextmenu)) {
|
|
28
|
+
return; // Context menu is turned off through configuration
|
|
29
|
+
}
|
|
30
|
+
if (!this['_editor'].hasModel()) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
if (!this['_contextMenuService']) {
|
|
34
|
+
this['_editor'].focus();
|
|
35
|
+
return; // We need the context menu service to function
|
|
36
|
+
}
|
|
37
|
+
// Find actions available for menu
|
|
38
|
+
const menuNodes = _this.getMenuNodes();
|
|
39
|
+
// Show menu if we have actions to show
|
|
40
|
+
if (menuNodes.length > 0) {
|
|
41
|
+
_this._doShowContextMenu(menuNodes, anchor);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
this.addDispose({
|
|
45
|
+
dispose: () => {
|
|
46
|
+
contextmenu['_onContextMenu'] = function () {
|
|
47
|
+
originMethod.apply(contextmenu, arguments);
|
|
48
|
+
};
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
_doShowContextMenu(menuNodes, anchor) {
|
|
53
|
+
const editor = this._editor.monacoEditor;
|
|
54
|
+
// https://github.com/microsoft/vscode/blob/master/src/vs/editor/contrib/contextmenu/contextmenu.ts#L196
|
|
55
|
+
if (!editor.hasModel()) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
// Disable hover
|
|
59
|
+
const oldHoverSetting = this._editor.monacoEditor.getOption(monaco.editor.EditorOption.hover);
|
|
60
|
+
this._editor.monacoEditor.updateOptions({
|
|
61
|
+
hover: {
|
|
62
|
+
enabled: false,
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
if (!anchor) {
|
|
66
|
+
// Ensure selection is visible
|
|
67
|
+
editor.revealPosition(editor.getPosition(), monaco.editor.ScrollType.Immediate);
|
|
68
|
+
editor.render();
|
|
69
|
+
const cursorCoords = editor.getScrolledVisiblePosition(editor.getPosition());
|
|
70
|
+
// Translate to absolute editor position
|
|
71
|
+
const editorCoords = dom.getDomNodePagePosition(editor.getDomNode());
|
|
72
|
+
const posx = editorCoords.left + cursorCoords.left;
|
|
73
|
+
const posy = editorCoords.top + cursorCoords.top + cursorCoords.height;
|
|
74
|
+
anchor = { x: posx, y: posy };
|
|
75
|
+
}
|
|
76
|
+
// Show the context menu
|
|
77
|
+
this.contextMenuRenderer.show({
|
|
78
|
+
anchor: {
|
|
79
|
+
x: anchor.x - window.scrollX,
|
|
80
|
+
y: anchor.y - window.scrollY,
|
|
81
|
+
},
|
|
82
|
+
menuNodes,
|
|
83
|
+
args: [this._editor.currentUri],
|
|
84
|
+
onHide: (canceled) => {
|
|
85
|
+
// 无论是否取消都应该恢复 hover 的设置
|
|
86
|
+
this._editor.monacoEditor.updateOptions({
|
|
87
|
+
hover: oldHoverSetting,
|
|
88
|
+
});
|
|
89
|
+
// 右键菜单关闭后应该使编辑器重新 focus
|
|
90
|
+
// 原因是一些内置的 command (copy/cut/paste) 在执行时会在对应的 focusedEditor 执行,如果找不到 focusedEditor 则不会执行命令
|
|
91
|
+
this._editor.monacoEditor.focus();
|
|
92
|
+
},
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
getMenuNodes() {
|
|
96
|
+
const contextMenu = this.contextMenuService.createMenu({
|
|
97
|
+
id: next_1.MenuId.EditorContext,
|
|
98
|
+
contextKeyService: this.contextKeyService,
|
|
99
|
+
});
|
|
100
|
+
const menuNodes = contextMenu.getMergedMenuNodes();
|
|
101
|
+
contextMenu.dispose();
|
|
102
|
+
return menuNodes;
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
(0, tslib_1.__decorate)([
|
|
106
|
+
(0, di_1.Autowired)(next_1.AbstractContextMenuService),
|
|
107
|
+
(0, tslib_1.__metadata)("design:type", next_1.AbstractContextMenuService)
|
|
108
|
+
], EditorContextMenuController.prototype, "contextMenuService", void 0);
|
|
109
|
+
(0, tslib_1.__decorate)([
|
|
110
|
+
(0, di_1.Autowired)(ide_core_browser_1.IContextKeyService),
|
|
111
|
+
(0, tslib_1.__metadata)("design:type", Object)
|
|
112
|
+
], EditorContextMenuController.prototype, "globalContextKeyService", void 0);
|
|
113
|
+
(0, tslib_1.__decorate)([
|
|
114
|
+
(0, di_1.Autowired)(next_1.ICtxMenuRenderer),
|
|
115
|
+
(0, tslib_1.__metadata)("design:type", next_1.ICtxMenuRenderer)
|
|
116
|
+
], EditorContextMenuController.prototype, "contextMenuRenderer", void 0);
|
|
117
|
+
EditorContextMenuController = (0, tslib_1.__decorate)([
|
|
118
|
+
(0, di_1.Injectable)({ multiple: true }),
|
|
119
|
+
(0, tslib_1.__metadata)("design:paramtypes", [Object])
|
|
120
|
+
], EditorContextMenuController);
|
|
121
|
+
exports.EditorContextMenuController = EditorContextMenuController;
|
|
122
|
+
let EditorContextMenuBrowserEditorContribution = class EditorContextMenuBrowserEditorContribution {
|
|
123
|
+
registerEditorFeature(registry) {
|
|
124
|
+
registry.registerEditorFeatureContribution({
|
|
125
|
+
contribute: (editor) => {
|
|
126
|
+
return this.injector.get(EditorContextMenuController, [editor]);
|
|
127
|
+
},
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
(0, tslib_1.__decorate)([
|
|
132
|
+
(0, di_1.Autowired)(di_1.INJECTOR_TOKEN),
|
|
133
|
+
(0, tslib_1.__metadata)("design:type", di_1.Injector)
|
|
134
|
+
], EditorContextMenuBrowserEditorContribution.prototype, "injector", void 0);
|
|
135
|
+
EditorContextMenuBrowserEditorContribution = (0, tslib_1.__decorate)([
|
|
136
|
+
(0, ide_core_browser_1.Domain)(types_1.BrowserEditorContribution)
|
|
137
|
+
], EditorContextMenuBrowserEditorContribution);
|
|
138
|
+
exports.EditorContextMenuBrowserEditorContribution = EditorContextMenuBrowserEditorContribution;
|
|
139
|
+
//# sourceMappingURL=editor.context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editor.context.js","sourceRoot":"","sources":["../../../src/browser/menu/editor.context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { IEditorActionRegistry } from '../types';
|
|
2
|
+
import { IDisposable, Disposable, ILogger } from '@opensumi/ide-core-browser';
|
|
3
|
+
import { IEditorGroup } from '../../common';
|
|
4
|
+
import { IMenu } from '@opensumi/ide-core-browser/lib/menu/next';
|
|
5
|
+
export declare class EditorActionRegistryImpl extends Disposable implements IEditorActionRegistry {
|
|
6
|
+
private _cachedMenus;
|
|
7
|
+
private contextKeyService;
|
|
8
|
+
private readonly menuService;
|
|
9
|
+
logger: ILogger;
|
|
10
|
+
registerEditorAction(): IDisposable;
|
|
11
|
+
getMenu(group: IEditorGroup): IMenu;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=editor.menu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editor.menu.d.ts","sourceRoot":"","sources":["../../../src/browser/menu/editor.menu.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAsB,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAClG,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAU,KAAK,EAAuB,MAAM,0CAA0C,CAAC;AAG9F,qBACa,wBAAyB,SAAQ,UAAW,YAAW,qBAAqB;IAEvF,OAAO,CAAC,YAAY,CAA4B;IAGhD,OAAO,CAAC,iBAAiB,CAAqB;IAG9C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsB;IAGlD,MAAM,EAAE,OAAO,CAAC;IAEhB,oBAAoB,IAAI,WAAW;IAKnC,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,KAAK;CAepC"}
|