@opensumi/ide-opened-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/lib/browser/index.d.ts +6 -0
- package/lib/browser/index.d.ts.map +1 -0
- package/lib/browser/index.js +35 -0
- package/lib/browser/index.js.map +1 -0
- package/lib/browser/index.module.less +24 -0
- package/lib/browser/opened-editor-node.d.ts +21 -0
- package/lib/browser/opened-editor-node.d.ts.map +1 -0
- package/lib/browser/opened-editor-node.define.d.ts +30 -0
- package/lib/browser/opened-editor-node.define.d.ts.map +1 -0
- package/lib/browser/opened-editor-node.define.js +71 -0
- package/lib/browser/opened-editor-node.define.js.map +1 -0
- package/lib/browser/opened-editor-node.js +128 -0
- package/lib/browser/opened-editor-node.js.map +1 -0
- package/lib/browser/opened-editor-node.module.less +218 -0
- package/lib/browser/opened-editor.contribution.d.ts +16 -0
- package/lib/browser/opened-editor.contribution.d.ts.map +1 -0
- package/lib/browser/opened-editor.contribution.js +168 -0
- package/lib/browser/opened-editor.contribution.js.map +1 -0
- package/lib/browser/opened-editor.d.ts +6 -0
- package/lib/browser/opened-editor.d.ts.map +1 -0
- package/lib/browser/opened-editor.js +86 -0
- package/lib/browser/opened-editor.js.map +1 -0
- package/lib/browser/services/opened-editor-decoration.service.d.ts +13 -0
- package/lib/browser/services/opened-editor-decoration.service.d.ts.map +1 -0
- package/lib/browser/services/opened-editor-decoration.service.js +59 -0
- package/lib/browser/services/opened-editor-decoration.service.js.map +1 -0
- package/lib/browser/services/opened-editor-event.service.d.ts +23 -0
- package/lib/browser/services/opened-editor-event.service.d.ts.map +1 -0
- package/lib/browser/services/opened-editor-event.service.js +71 -0
- package/lib/browser/services/opened-editor-event.service.js.map +1 -0
- package/lib/browser/services/opened-editor-model.d.ts +15 -0
- package/lib/browser/services/opened-editor-model.d.ts.map +1 -0
- package/lib/browser/services/opened-editor-model.js +51 -0
- package/lib/browser/services/opened-editor-model.js.map +1 -0
- package/lib/browser/services/opened-editor-model.service.d.ts +81 -0
- package/lib/browser/services/opened-editor-model.service.d.ts.map +1 -0
- package/lib/browser/services/opened-editor-model.service.js +464 -0
- package/lib/browser/services/opened-editor-model.service.js.map +1 -0
- package/lib/browser/services/opened-editor-tree.service.d.ts +28 -0
- package/lib/browser/services/opened-editor-tree.service.d.ts.map +1 -0
- package/lib/browser/services/opened-editor-tree.service.js +176 -0
- package/lib/browser/services/opened-editor-tree.service.js.map +1 -0
- package/package.json +34 -0
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OpenedEditorContribution = exports.ExplorerOpenedEditorViewId = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const ide_core_browser_1 = require("@opensumi/ide-core-browser");
|
|
6
|
+
const ide_main_layout_1 = require("@opensumi/ide-main-layout");
|
|
7
|
+
const di_1 = require("@opensumi/di");
|
|
8
|
+
const explorer_contribution_1 = require("@opensumi/ide-explorer/lib/browser/explorer-contribution");
|
|
9
|
+
const layout_1 = require("@opensumi/ide-core-browser/lib/layout");
|
|
10
|
+
const ide_editor_1 = require("@opensumi/ide-editor");
|
|
11
|
+
const ide_core_browser_2 = require("@opensumi/ide-core-browser");
|
|
12
|
+
const next_1 = require("@opensumi/ide-core-browser/lib/menu/next");
|
|
13
|
+
const opened_editor_1 = require("./opened-editor");
|
|
14
|
+
const opened_editor_model_service_1 = require("./services/opened-editor-model.service");
|
|
15
|
+
const opened_editor_node_define_1 = require("./opened-editor-node.define");
|
|
16
|
+
exports.ExplorerOpenedEditorViewId = 'file-opened-editor';
|
|
17
|
+
let OpenedEditorContribution = class OpenedEditorContribution {
|
|
18
|
+
async onStart() {
|
|
19
|
+
this.mainLayoutService.collectViewComponent({
|
|
20
|
+
id: exports.ExplorerOpenedEditorViewId,
|
|
21
|
+
name: (0, ide_core_browser_1.localize)('opened.editors.title'),
|
|
22
|
+
weight: 1,
|
|
23
|
+
priority: 10,
|
|
24
|
+
collapsed: true,
|
|
25
|
+
component: opened_editor_1.ExplorerOpenEditorPanel,
|
|
26
|
+
}, explorer_contribution_1.ExplorerContainerId);
|
|
27
|
+
}
|
|
28
|
+
registerCommands(commands) {
|
|
29
|
+
commands.registerCommand(ide_core_browser_1.OPEN_EDITORS_COMMANDS.SAVE_ALL, {
|
|
30
|
+
execute: () => {
|
|
31
|
+
this.workbenchEditorService.saveAll();
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
commands.registerCommand(ide_core_browser_1.OPEN_EDITORS_COMMANDS.CLOSE_ALL, {
|
|
35
|
+
execute: () => {
|
|
36
|
+
this.workbenchEditorService.closeAll();
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
commands.registerCommand(ide_core_browser_1.OPEN_EDITORS_COMMANDS.CLOSE_BY_GROUP, {
|
|
40
|
+
execute: (node) => {
|
|
41
|
+
this.openedEditorModelService.closeAllByGroup(node);
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
commands.registerCommand(ide_core_browser_1.OPEN_EDITORS_COMMANDS.SAVE_BY_GROUP, {
|
|
45
|
+
execute: (node) => {
|
|
46
|
+
this.openedEditorModelService.saveAllByGroup(node);
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
commands.registerCommand(ide_core_browser_1.OPEN_EDITORS_COMMANDS.CLOSE, {
|
|
50
|
+
execute: async (node) => {
|
|
51
|
+
let group;
|
|
52
|
+
if (node.parent && opened_editor_node_define_1.EditorFileGroup.is(node.parent)) {
|
|
53
|
+
group = node.parent.group;
|
|
54
|
+
}
|
|
55
|
+
await this.commandService.executeCommand(ide_core_browser_1.EDITOR_COMMANDS.CLOSE.id, { group, uri: node.uri });
|
|
56
|
+
// 提前移除节点
|
|
57
|
+
node.parent.unlinkItem(node);
|
|
58
|
+
},
|
|
59
|
+
});
|
|
60
|
+
commands.registerCommand(ide_core_browser_1.OPEN_EDITORS_COMMANDS.OPEN, {
|
|
61
|
+
execute: (node) => {
|
|
62
|
+
let groupIndex = 0;
|
|
63
|
+
if (node.parent && opened_editor_node_define_1.EditorFileGroup.is(node.parent)) {
|
|
64
|
+
groupIndex = node.parent.group.index;
|
|
65
|
+
}
|
|
66
|
+
this.commandService.executeCommand(ide_core_browser_1.EDITOR_COMMANDS.OPEN_RESOURCE.id, node.uri, { groupIndex });
|
|
67
|
+
},
|
|
68
|
+
});
|
|
69
|
+
commands.registerCommand(ide_core_browser_1.OPEN_EDITORS_COMMANDS.OPEN_TO_THE_SIDE, {
|
|
70
|
+
execute: (node) => {
|
|
71
|
+
let groupIndex = 0;
|
|
72
|
+
if (node.parent && opened_editor_node_define_1.EditorFileGroup.is(node.parent)) {
|
|
73
|
+
groupIndex = node.parent.group.index;
|
|
74
|
+
}
|
|
75
|
+
this.commandService.executeCommand(ide_core_browser_1.EDITOR_COMMANDS.OPEN_RESOURCE.id, node.uri, { groupIndex, split: 4 /** right */ });
|
|
76
|
+
},
|
|
77
|
+
});
|
|
78
|
+
commands.registerCommand(ide_core_browser_1.OPEN_EDITORS_COMMANDS.COMPARE_SELECTED, {
|
|
79
|
+
execute: (node) => {
|
|
80
|
+
this.commandService.executeCommand(ide_core_browser_1.FILE_COMMANDS.COMPARE_SELECTED.id, node.uri, [node.uri]);
|
|
81
|
+
},
|
|
82
|
+
});
|
|
83
|
+
commands.registerCommand(ide_core_browser_1.OPEN_EDITORS_COMMANDS.COPY_PATH, {
|
|
84
|
+
execute: (node) => {
|
|
85
|
+
this.commandService.executeCommand(ide_core_browser_1.FILE_COMMANDS.COPY_PATH.id, node.uri, [node.uri]);
|
|
86
|
+
},
|
|
87
|
+
});
|
|
88
|
+
commands.registerCommand(ide_core_browser_1.OPEN_EDITORS_COMMANDS.COPY_RELATIVE_PATH, {
|
|
89
|
+
execute: (node) => {
|
|
90
|
+
this.commandService.executeCommand(ide_core_browser_1.FILE_COMMANDS.COPY_RELATIVE_PATH.id, node.uri, [node.uri]);
|
|
91
|
+
},
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
registerToolbarItems(registry) {
|
|
95
|
+
registry.registerItem({
|
|
96
|
+
id: ide_core_browser_1.OPEN_EDITORS_COMMANDS.SAVE_ALL.id,
|
|
97
|
+
command: ide_core_browser_1.OPEN_EDITORS_COMMANDS.SAVE_ALL.id,
|
|
98
|
+
viewId: exports.ExplorerOpenedEditorViewId,
|
|
99
|
+
label: (0, ide_core_browser_1.localize)('opened.editors.save.all'),
|
|
100
|
+
});
|
|
101
|
+
registry.registerItem({
|
|
102
|
+
id: ide_core_browser_1.OPEN_EDITORS_COMMANDS.CLOSE_ALL.id,
|
|
103
|
+
command: ide_core_browser_1.OPEN_EDITORS_COMMANDS.CLOSE_ALL.id,
|
|
104
|
+
viewId: exports.ExplorerOpenedEditorViewId,
|
|
105
|
+
label: (0, ide_core_browser_1.localize)('opened.editors.close.all'),
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
registerMenus(menuRegistry) {
|
|
109
|
+
menuRegistry.registerMenuItem(next_1.MenuId.OpenEditorsContext, {
|
|
110
|
+
command: {
|
|
111
|
+
id: ide_core_browser_1.OPEN_EDITORS_COMMANDS.OPEN.id,
|
|
112
|
+
label: (0, ide_core_browser_1.localize)('opened.editors.open'),
|
|
113
|
+
},
|
|
114
|
+
order: 1,
|
|
115
|
+
group: '1_open',
|
|
116
|
+
});
|
|
117
|
+
menuRegistry.registerMenuItem(next_1.MenuId.OpenEditorsContext, {
|
|
118
|
+
command: {
|
|
119
|
+
id: ide_core_browser_1.OPEN_EDITORS_COMMANDS.OPEN_TO_THE_SIDE.id,
|
|
120
|
+
label: (0, ide_core_browser_1.localize)('opened.editors.openToTheSide'),
|
|
121
|
+
},
|
|
122
|
+
order: 2,
|
|
123
|
+
group: '1_open',
|
|
124
|
+
});
|
|
125
|
+
menuRegistry.registerMenuItem(next_1.MenuId.OpenEditorsContext, {
|
|
126
|
+
command: {
|
|
127
|
+
id: ide_core_browser_1.OPEN_EDITORS_COMMANDS.COMPARE_SELECTED.id,
|
|
128
|
+
label: (0, ide_core_browser_1.localize)('opened.editors.compare'),
|
|
129
|
+
},
|
|
130
|
+
group: '2_operator',
|
|
131
|
+
});
|
|
132
|
+
menuRegistry.registerMenuItem(next_1.MenuId.OpenEditorsContext, {
|
|
133
|
+
command: {
|
|
134
|
+
id: ide_core_browser_1.OPEN_EDITORS_COMMANDS.COPY_PATH.id,
|
|
135
|
+
label: (0, ide_core_browser_1.localize)('opened.editors.copyPath'),
|
|
136
|
+
},
|
|
137
|
+
group: '3_path',
|
|
138
|
+
});
|
|
139
|
+
menuRegistry.registerMenuItem(next_1.MenuId.OpenEditorsContext, {
|
|
140
|
+
command: {
|
|
141
|
+
id: ide_core_browser_1.OPEN_EDITORS_COMMANDS.COPY_RELATIVE_PATH.id,
|
|
142
|
+
label: (0, ide_core_browser_1.localize)('opened.editors.copyRelativePath'),
|
|
143
|
+
},
|
|
144
|
+
group: '3_path',
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
(0, tslib_1.__decorate)([
|
|
149
|
+
(0, di_1.Autowired)(ide_main_layout_1.IMainLayoutService),
|
|
150
|
+
(0, tslib_1.__metadata)("design:type", Object)
|
|
151
|
+
], OpenedEditorContribution.prototype, "mainLayoutService", void 0);
|
|
152
|
+
(0, tslib_1.__decorate)([
|
|
153
|
+
(0, di_1.Autowired)(ide_editor_1.WorkbenchEditorService),
|
|
154
|
+
(0, tslib_1.__metadata)("design:type", ide_editor_1.WorkbenchEditorService)
|
|
155
|
+
], OpenedEditorContribution.prototype, "workbenchEditorService", void 0);
|
|
156
|
+
(0, tslib_1.__decorate)([
|
|
157
|
+
(0, di_1.Autowired)(opened_editor_model_service_1.OpenedEditorModelService),
|
|
158
|
+
(0, tslib_1.__metadata)("design:type", opened_editor_model_service_1.OpenedEditorModelService)
|
|
159
|
+
], OpenedEditorContribution.prototype, "openedEditorModelService", void 0);
|
|
160
|
+
(0, tslib_1.__decorate)([
|
|
161
|
+
(0, di_1.Autowired)(ide_core_browser_1.CommandService),
|
|
162
|
+
(0, tslib_1.__metadata)("design:type", Object)
|
|
163
|
+
], OpenedEditorContribution.prototype, "commandService", void 0);
|
|
164
|
+
OpenedEditorContribution = (0, tslib_1.__decorate)([
|
|
165
|
+
(0, ide_core_browser_1.Domain)(ide_core_browser_2.ClientAppContribution, layout_1.TabBarToolbarContribution, ide_core_browser_1.CommandContribution, next_1.MenuContribution)
|
|
166
|
+
], OpenedEditorContribution);
|
|
167
|
+
exports.OpenedEditorContribution = OpenedEditorContribution;
|
|
168
|
+
//# sourceMappingURL=opened-editor.contribution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opened-editor.contribution.js","sourceRoot":"","sources":["../../src/browser/opened-editor.contribution.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opened-editor.d.ts","sourceRoot":"","sources":["../../src/browser/opened-editor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AASvD,eAAO,MAAM,uBAAuB;eAEG,SAAS;kBAoH/C,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExplorerOpenEditorPanel = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = (0, tslib_1.__importDefault)(require("react"));
|
|
6
|
+
const react_hooks_1 = require("@opensumi/ide-core-browser/lib/react-hooks");
|
|
7
|
+
const ide_core_browser_1 = require("@opensumi/ide-core-browser");
|
|
8
|
+
const ide_components_1 = require("@opensumi/ide-components");
|
|
9
|
+
const opened_editor_model_service_1 = require("./services/opened-editor-model.service");
|
|
10
|
+
const opened_editor_node_1 = require("./opened-editor-node");
|
|
11
|
+
const index_module_less_1 = (0, tslib_1.__importDefault)(require("./index.module.less"));
|
|
12
|
+
const ExplorerOpenEditorPanel = ({ viewState, }) => {
|
|
13
|
+
const OPEN_EDITOR_NODE_HEIGHT = 22;
|
|
14
|
+
const [isReady, setIsReady] = react_1.default.useState(false);
|
|
15
|
+
const { width, height } = viewState;
|
|
16
|
+
const wrapperRef = react_1.default.createRef();
|
|
17
|
+
const openedEditorModelService = (0, react_hooks_1.useInjectable)(opened_editor_model_service_1.OpenedEditorModelService);
|
|
18
|
+
const { decorationService, labelService, commandService } = openedEditorModelService;
|
|
19
|
+
const handleTreeReady = (handle) => {
|
|
20
|
+
openedEditorModelService.handleTreeHandler(Object.assign(Object.assign({}, handle), { getModel: () => openedEditorModelService.treeModel, hasDirectFocus: () => wrapperRef.current === document.activeElement }));
|
|
21
|
+
};
|
|
22
|
+
const handleItemClicked = (ev, item, type) => {
|
|
23
|
+
// 阻止点击事件冒泡
|
|
24
|
+
ev.stopPropagation();
|
|
25
|
+
const { handleItemClick } = openedEditorModelService;
|
|
26
|
+
if (!item) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
handleItemClick(item, type);
|
|
30
|
+
};
|
|
31
|
+
const handlerContextMenu = (ev, node) => {
|
|
32
|
+
const { handleContextMenu } = openedEditorModelService;
|
|
33
|
+
handleContextMenu(ev, node);
|
|
34
|
+
};
|
|
35
|
+
const handleOuterContextMenu = (ev) => {
|
|
36
|
+
const { handleContextMenu } = openedEditorModelService;
|
|
37
|
+
// 空白区域右键菜单
|
|
38
|
+
handleContextMenu(ev);
|
|
39
|
+
};
|
|
40
|
+
const handleOuterClick = (ev) => {
|
|
41
|
+
// 空白区域点击,取消焦点状态
|
|
42
|
+
const { enactiveFileDecoration } = openedEditorModelService;
|
|
43
|
+
enactiveFileDecoration();
|
|
44
|
+
};
|
|
45
|
+
const ensureIsReady = async () => {
|
|
46
|
+
await openedEditorModelService.whenReady;
|
|
47
|
+
if (!!openedEditorModelService.treeModel) {
|
|
48
|
+
// 确保数据初始化完毕,减少初始化数据过程中多次刷新视图
|
|
49
|
+
// 这里需要重新取一下treeModel的值确保为最新的TreeModel
|
|
50
|
+
await openedEditorModelService.treeModel.root.ensureLoaded();
|
|
51
|
+
}
|
|
52
|
+
setIsReady(true);
|
|
53
|
+
};
|
|
54
|
+
react_1.default.useEffect(() => {
|
|
55
|
+
ensureIsReady();
|
|
56
|
+
return () => {
|
|
57
|
+
openedEditorModelService.removeFileDecoration();
|
|
58
|
+
};
|
|
59
|
+
}, []);
|
|
60
|
+
react_1.default.useEffect(() => {
|
|
61
|
+
var _a;
|
|
62
|
+
const handleBlur = () => {
|
|
63
|
+
openedEditorModelService.handleTreeBlur();
|
|
64
|
+
};
|
|
65
|
+
(_a = wrapperRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener('blur', handleBlur, true);
|
|
66
|
+
return () => {
|
|
67
|
+
var _a;
|
|
68
|
+
(_a = wrapperRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('blur', handleBlur, true);
|
|
69
|
+
openedEditorModelService.handleTreeBlur();
|
|
70
|
+
};
|
|
71
|
+
}, [wrapperRef.current]);
|
|
72
|
+
const renderTreeNode = react_1.default.useCallback((props) => react_1.default.createElement(opened_editor_node_1.EditorTreeNode, { item: props.item, itemType: props.itemType, decorationService: decorationService, labelService: labelService, commandService: commandService, decorations: openedEditorModelService.decorations.getDecorations(props.item), onClick: handleItemClicked, onContextMenu: handlerContextMenu, defaultLeftPadding: 22, leftPadding: 0 }), [openedEditorModelService.treeModel]);
|
|
73
|
+
const renderContent = () => {
|
|
74
|
+
if (!isReady) {
|
|
75
|
+
return react_1.default.createElement("span", { className: index_module_less_1.default.opened_editor_empty_text }, (0, ide_core_browser_1.localize)('opened.editors.empty'));
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
return react_1.default.createElement(ide_components_1.RecycleTree, { height: height, width: width, itemHeight: OPEN_EDITOR_NODE_HEIGHT, onReady: handleTreeReady, model: openedEditorModelService.treeModel, placeholder: () => {
|
|
79
|
+
return react_1.default.createElement("span", { className: index_module_less_1.default.opened_editor_empty_text }, (0, ide_core_browser_1.localize)('opened.editors.empty'));
|
|
80
|
+
} }, renderTreeNode);
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
return react_1.default.createElement("div", { className: index_module_less_1.default.opened_editor_container, tabIndex: -1, ref: wrapperRef, onContextMenu: handleOuterContextMenu, onClick: handleOuterClick }, renderContent());
|
|
84
|
+
};
|
|
85
|
+
exports.ExplorerOpenEditorPanel = ExplorerOpenEditorPanel;
|
|
86
|
+
//# sourceMappingURL=opened-editor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opened-editor.js","sourceRoot":"","sources":["../../src/browser/opened-editor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { FileDecorationsProvider, IFileDecoration } from '@opensumi/ide-core-browser';
|
|
2
|
+
import { IThemeService } from '@opensumi/ide-theme';
|
|
3
|
+
export declare class OpenedEditorDecorationService implements FileDecorationsProvider {
|
|
4
|
+
private readonly decorationsService;
|
|
5
|
+
readonly themeService: IThemeService;
|
|
6
|
+
private disposeCollection;
|
|
7
|
+
private readonly onDidChangeEmitter;
|
|
8
|
+
constructor();
|
|
9
|
+
get onDidChange(): import("@opensumi/ide-core-browser").Event<void>;
|
|
10
|
+
getDecoration(uri: any, hasChildren?: boolean): IFileDecoration;
|
|
11
|
+
dispose(): void;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=opened-editor-decoration.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opened-editor-decoration.service.d.ts","sourceRoot":"","sources":["../../../src/browser/services/opened-editor-decoration.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,uBAAuB,EAAE,eAAe,EAAiC,MAAM,4BAA4B,CAAC;AAC/H,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,qBACa,6BAA8B,YAAW,uBAAuB;IAG3E,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAsB;IAEzD,SACgB,YAAY,EAAE,aAAa,CAAC;IAE5C,OAAO,CAAC,iBAAiB,CAAoD;IAE7E,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAgC;;IAanE,IAAI,WAAW,qDAEd;IAED,aAAa,CAAC,GAAG,KAAA,EAAE,WAAW,UAAQ;IAoBtC,OAAO;CAIR"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OpenedEditorDecorationService = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const di_1 = require("@opensumi/di");
|
|
6
|
+
const ide_decoration_1 = require("@opensumi/ide-decoration");
|
|
7
|
+
const ide_core_browser_1 = require("@opensumi/ide-core-browser");
|
|
8
|
+
const ide_theme_1 = require("@opensumi/ide-theme");
|
|
9
|
+
let OpenedEditorDecorationService = class OpenedEditorDecorationService {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.disposeCollection = new ide_core_browser_1.DisposableCollection();
|
|
12
|
+
this.onDidChangeEmitter = new ide_core_browser_1.Emitter();
|
|
13
|
+
this.disposeCollection.pushAll([
|
|
14
|
+
this.decorationsService.onDidChangeDecorations(() => {
|
|
15
|
+
this.onDidChangeEmitter.fire();
|
|
16
|
+
}),
|
|
17
|
+
this.themeService.onThemeChange(() => {
|
|
18
|
+
this.onDidChangeEmitter.fire();
|
|
19
|
+
}),
|
|
20
|
+
]);
|
|
21
|
+
}
|
|
22
|
+
get onDidChange() {
|
|
23
|
+
return this.onDidChangeEmitter.event;
|
|
24
|
+
}
|
|
25
|
+
getDecoration(uri, hasChildren = false) {
|
|
26
|
+
// 转换URI为vscode.uri
|
|
27
|
+
if (uri instanceof ide_core_browser_1.URI) {
|
|
28
|
+
uri = ide_core_browser_1.Uri.parse(uri.toString());
|
|
29
|
+
}
|
|
30
|
+
const decoration = this.decorationsService.getDecoration(uri, hasChildren);
|
|
31
|
+
if (decoration) {
|
|
32
|
+
return Object.assign(Object.assign({}, decoration), {
|
|
33
|
+
// 通过ThemeService获取颜色值
|
|
34
|
+
color: this.themeService.getColor({ id: decoration.color }) });
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
color: '',
|
|
38
|
+
tooltip: '',
|
|
39
|
+
badge: '',
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
dispose() {
|
|
43
|
+
this.disposeCollection.dispose();
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
(0, tslib_1.__decorate)([
|
|
47
|
+
(0, di_1.Autowired)(ide_decoration_1.IDecorationsService),
|
|
48
|
+
(0, tslib_1.__metadata)("design:type", ide_decoration_1.IDecorationsService)
|
|
49
|
+
], OpenedEditorDecorationService.prototype, "decorationsService", void 0);
|
|
50
|
+
(0, tslib_1.__decorate)([
|
|
51
|
+
(0, di_1.Autowired)(ide_theme_1.IThemeService),
|
|
52
|
+
(0, tslib_1.__metadata)("design:type", Object)
|
|
53
|
+
], OpenedEditorDecorationService.prototype, "themeService", void 0);
|
|
54
|
+
OpenedEditorDecorationService = (0, tslib_1.__decorate)([
|
|
55
|
+
(0, di_1.Injectable)(),
|
|
56
|
+
(0, tslib_1.__metadata)("design:paramtypes", [])
|
|
57
|
+
], OpenedEditorDecorationService);
|
|
58
|
+
exports.OpenedEditorDecorationService = OpenedEditorDecorationService;
|
|
59
|
+
//# sourceMappingURL=opened-editor-decoration.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opened-editor-decoration.service.js","sourceRoot":"","sources":["../../../src/browser/services/opened-editor-decoration.service.ts"],"names":[],"mappings":";;;;AAAA,qCAAqD;AACrD,6DAA+D;AAC/D,iEAA+H;AAC/H,mDAAoD;AAGpD,IAAa,6BAA6B,GAA1C,MAAa,6BAA6B;IAYxC;QAJQ,sBAAiB,GAAyB,IAAI,uCAAoB,EAAE,CAAC;QAE5D,uBAAkB,GAAkB,IAAI,0BAAO,EAAE,CAAC;QAGjE,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;YAC7B,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,GAAG,EAAE;gBAClD,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;YACjC,CAAC,CAAC;YACF,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,GAAG,EAAE;gBACnC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;YACjC,CAAC,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;IACvC,CAAC;IAED,aAAa,CAAC,GAAG,EAAE,WAAW,GAAG,KAAK;QACpC,mBAAmB;QACnB,IAAI,GAAG,YAAY,sBAAG,EAAE;YACtB,GAAG,GAAG,sBAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;SACjC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAC3E,IAAI,UAAU,EAAE;YACd,OAAO,gCACF,UAAU;gBACb,sBAAsB;gBACtB,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAC,EAAE,EAAE,UAAU,CAAC,KAAe,EAAC,CAAC,GACjD,CAAC;SACtB;QACD,OAAO;YACL,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,EAAE;YACX,KAAK,EAAE,EAAE;SACS,CAAC;IACvB,CAAC;IAED,OAAO;QACL,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC;CAEF,CAAA;AAhDC;IADC,IAAA,cAAS,EAAC,oCAAmB,CAAC;2CACM,oCAAmB;yEAAC;AAGzD;IADC,IAAA,cAAS,EAAC,yBAAa,CAAC;;mEACmB;AANjC,6BAA6B;IADzC,IAAA,eAAU,GAAE;;GACA,6BAA6B,CAmDzC;AAnDY,sEAA6B"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Event, WithEventBus } from '@opensumi/ide-core-browser';
|
|
2
|
+
import { IResource, IEditorGroup, ResourceDecorationChangeEvent, IResourceDecorationChangeEventPayload } from '@opensumi/ide-editor';
|
|
3
|
+
import { EditorGroupOpenEvent } from '@opensumi/ide-editor/lib/browser';
|
|
4
|
+
export declare type OpenedEditorData = IEditorGroup | IResource;
|
|
5
|
+
export interface OpenedEditorEvent {
|
|
6
|
+
group: IEditorGroup;
|
|
7
|
+
resource: IResource;
|
|
8
|
+
}
|
|
9
|
+
export declare class OpenedEditorEventService extends WithEventBus {
|
|
10
|
+
private _onDidChange;
|
|
11
|
+
private _onDidDecorationChange;
|
|
12
|
+
private _onDidActiveChange;
|
|
13
|
+
onDidChange: Event<OpenedEditorEvent | null>;
|
|
14
|
+
onDidDecorationChange: Event<IResourceDecorationChangeEventPayload | null>;
|
|
15
|
+
onDidActiveChange: Event<OpenedEditorEvent | null>;
|
|
16
|
+
constructor();
|
|
17
|
+
onEditorGroupOpenEvent(e: EditorGroupOpenEvent): void;
|
|
18
|
+
onEditorGroupChangeEvent(): void;
|
|
19
|
+
onEditorGroupCloseEvent(): void;
|
|
20
|
+
onEditorGroupDisposeEvent(): void;
|
|
21
|
+
onResourceDecorationChangeEvent(e: ResourceDecorationChangeEvent): void;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=opened-editor-event.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opened-editor-event.service.d.ts","sourceRoot":"","sources":["../../../src/browser/services/opened-editor-event.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAW,YAAY,EAAW,MAAM,4BAA4B,CAAC;AACnF,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,6BAA6B,EAAE,qCAAqC,EAAE,MAAM,sBAAsB,CAAC;AAErI,OAAO,EAAE,oBAAoB,EAA0E,MAAM,kCAAkC,CAAC;AAEhJ,oBAAY,gBAAgB,GAAG,YAAY,GAAG,SAAS,CAAC;AACxD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,qBACa,wBAAyB,SAAQ,YAAY;IAExD,OAAO,CAAC,YAAY,CAAoD;IACxE,OAAO,CAAC,sBAAsB,CAAwE;IACtG,OAAO,CAAC,kBAAkB,CAAoD;IAEvE,WAAW,EAAE,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAA2B;IACvE,qBAAqB,EAAE,KAAK,CAAC,qCAAqC,GAAG,IAAI,CAAC,CAAqC;IAC/G,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAiC;;IAO1F,sBAAsB,CAAC,CAAC,EAAE,oBAAoB;IAK9C,wBAAwB;IAKxB,uBAAuB;IAKvB,yBAAyB;IAMzB,+BAA+B,CAAC,CAAC,EAAE,6BAA6B;CAGjE"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OpenedEditorEventService = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const ide_core_browser_1 = require("@opensumi/ide-core-browser");
|
|
6
|
+
const ide_editor_1 = require("@opensumi/ide-editor");
|
|
7
|
+
const di_1 = require("@opensumi/di");
|
|
8
|
+
const browser_1 = require("@opensumi/ide-editor/lib/browser");
|
|
9
|
+
let OpenedEditorEventService = class OpenedEditorEventService extends ide_core_browser_1.WithEventBus {
|
|
10
|
+
constructor() {
|
|
11
|
+
super();
|
|
12
|
+
this._onDidChange = new ide_core_browser_1.Emitter();
|
|
13
|
+
this._onDidDecorationChange = new ide_core_browser_1.Emitter();
|
|
14
|
+
this._onDidActiveChange = new ide_core_browser_1.Emitter();
|
|
15
|
+
this.onDidChange = this._onDidChange.event;
|
|
16
|
+
this.onDidDecorationChange = this._onDidDecorationChange.event;
|
|
17
|
+
this.onDidActiveChange = this._onDidActiveChange.event;
|
|
18
|
+
}
|
|
19
|
+
onEditorGroupOpenEvent(e) {
|
|
20
|
+
this._onDidActiveChange.fire(e.payload);
|
|
21
|
+
}
|
|
22
|
+
onEditorGroupChangeEvent() {
|
|
23
|
+
this._onDidChange.fire(null);
|
|
24
|
+
}
|
|
25
|
+
onEditorGroupCloseEvent() {
|
|
26
|
+
this._onDidChange.fire(null);
|
|
27
|
+
}
|
|
28
|
+
onEditorGroupDisposeEvent() {
|
|
29
|
+
this._onDidChange.fire(null);
|
|
30
|
+
}
|
|
31
|
+
// 为修改的文件添加dirty装饰
|
|
32
|
+
onResourceDecorationChangeEvent(e) {
|
|
33
|
+
this._onDidDecorationChange.fire(e.payload);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
(0, tslib_1.__decorate)([
|
|
37
|
+
(0, ide_core_browser_1.OnEvent)(browser_1.EditorGroupOpenEvent),
|
|
38
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
|
39
|
+
(0, tslib_1.__metadata)("design:paramtypes", [browser_1.EditorGroupOpenEvent]),
|
|
40
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
|
41
|
+
], OpenedEditorEventService.prototype, "onEditorGroupOpenEvent", null);
|
|
42
|
+
(0, tslib_1.__decorate)([
|
|
43
|
+
(0, ide_core_browser_1.OnEvent)(browser_1.EditorGroupChangeEvent),
|
|
44
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
|
45
|
+
(0, tslib_1.__metadata)("design:paramtypes", []),
|
|
46
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
|
47
|
+
], OpenedEditorEventService.prototype, "onEditorGroupChangeEvent", null);
|
|
48
|
+
(0, tslib_1.__decorate)([
|
|
49
|
+
(0, ide_core_browser_1.OnEvent)(browser_1.EditorGroupCloseEvent),
|
|
50
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
|
51
|
+
(0, tslib_1.__metadata)("design:paramtypes", []),
|
|
52
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
|
53
|
+
], OpenedEditorEventService.prototype, "onEditorGroupCloseEvent", null);
|
|
54
|
+
(0, tslib_1.__decorate)([
|
|
55
|
+
(0, ide_core_browser_1.OnEvent)(browser_1.EditorGroupDisposeEvent),
|
|
56
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
|
57
|
+
(0, tslib_1.__metadata)("design:paramtypes", []),
|
|
58
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
|
59
|
+
], OpenedEditorEventService.prototype, "onEditorGroupDisposeEvent", null);
|
|
60
|
+
(0, tslib_1.__decorate)([
|
|
61
|
+
(0, ide_core_browser_1.OnEvent)(ide_editor_1.ResourceDecorationChangeEvent),
|
|
62
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
|
63
|
+
(0, tslib_1.__metadata)("design:paramtypes", [ide_editor_1.ResourceDecorationChangeEvent]),
|
|
64
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
|
65
|
+
], OpenedEditorEventService.prototype, "onResourceDecorationChangeEvent", null);
|
|
66
|
+
OpenedEditorEventService = (0, tslib_1.__decorate)([
|
|
67
|
+
(0, di_1.Injectable)(),
|
|
68
|
+
(0, tslib_1.__metadata)("design:paramtypes", [])
|
|
69
|
+
], OpenedEditorEventService);
|
|
70
|
+
exports.OpenedEditorEventService = OpenedEditorEventService;
|
|
71
|
+
//# sourceMappingURL=opened-editor-event.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opened-editor-event.service.js","sourceRoot":"","sources":["../../../src/browser/services/opened-editor-event.service.ts"],"names":[],"mappings":";;;;AAAA,iEAAmF;AACnF,qDAAqI;AACrI,qCAA0C;AAC1C,8DAAgJ;AAShJ,IAAa,wBAAwB,GAArC,MAAa,wBAAyB,SAAQ,+BAAY;IAUxD;QACE,KAAK,EAAE,CAAC;QATF,iBAAY,GAAsC,IAAI,0BAAO,EAAE,CAAC;QAChE,2BAAsB,GAA0D,IAAI,0BAAO,EAAE,CAAC;QAC9F,uBAAkB,GAAsC,IAAI,0BAAO,EAAE,CAAC;QAEvE,gBAAW,GAAoC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;QACvE,0BAAqB,GAAwD,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;QAC/G,sBAAiB,GAAoC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;IAI1F,CAAC;IAGD,sBAAsB,CAAC,CAAuB;QAC5C,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAGD,wBAAwB;QACtB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAGD,uBAAuB;QACrB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAGD,yBAAyB;QACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,kBAAkB;IAElB,+BAA+B,CAAC,CAAgC;QAC9D,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;CACF,CAAA;AAxBC;IADC,IAAA,0BAAO,EAAC,8BAAoB,CAAC;;kDACJ,8BAAoB;;sEAE7C;AAGD;IADC,IAAA,0BAAO,EAAC,gCAAsB,CAAC;;;;wEAG/B;AAGD;IADC,IAAA,0BAAO,EAAC,+BAAqB,CAAC;;;;uEAG9B;AAGD;IADC,IAAA,0BAAO,EAAC,iCAAuB,CAAC;;;;yEAGhC;AAID;IADC,IAAA,0BAAO,EAAC,0CAA6B,CAAC;;kDACJ,0CAA6B;;+EAE/D;AAtCU,wBAAwB;IADpC,IAAA,eAAU,GAAE;;GACA,wBAAwB,CAuCpC;AAvCY,4DAAwB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { TreeModel, CompositeTreeNode } from '@opensumi/ide-components';
|
|
2
|
+
import { Event } from '@opensumi/ide-core-browser';
|
|
3
|
+
import { OpenedEditorDecorationService } from './opened-editor-decoration.service';
|
|
4
|
+
import { EditorFileGroup } from '../opened-editor-node.define';
|
|
5
|
+
export declare class OpenedEditorModel extends TreeModel {
|
|
6
|
+
static DEFAULT_FLUSH_DELAY: number;
|
|
7
|
+
readonly decorationService: OpenedEditorDecorationService;
|
|
8
|
+
private flushDispatchChangeDelayer;
|
|
9
|
+
private onWillUpdateEmitter;
|
|
10
|
+
constructor(root: EditorFileGroup);
|
|
11
|
+
get onWillUpdate(): Event<void>;
|
|
12
|
+
init(root: CompositeTreeNode): void;
|
|
13
|
+
doDispatchChange(): void;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=opened-editor-model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opened-editor-model.d.ts","sourceRoot":"","sources":["../../../src/browser/services/opened-editor-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAiB,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAEvF,OAAO,EAA6B,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,qBACa,iBAAkB,SAAQ,SAAS;IAE9C,MAAM,CAAC,mBAAmB,SAAO;IAEjC,SACgB,iBAAiB,EAAE,6BAA6B,CAAC;IAEjE,OAAO,CAAC,0BAA0B,CAAsE;IACxG,OAAO,CAAC,mBAAmB,CAAgC;gBAEnC,IAAI,EAAE,eAAe;IAK7C,IAAI,YAAY,IAAI,KAAK,CAAC,IAAI,CAAC,CAE9B;IAED,IAAI,CAAC,IAAI,EAAE,iBAAiB;IAU5B,gBAAgB;CASjB"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var OpenedEditorModel_1;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.OpenedEditorModel = void 0;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const ide_components_1 = require("@opensumi/ide-components");
|
|
7
|
+
const di_1 = require("@opensumi/di");
|
|
8
|
+
const ide_core_browser_1 = require("@opensumi/ide-core-browser");
|
|
9
|
+
const opened_editor_decoration_service_1 = require("./opened-editor-decoration.service");
|
|
10
|
+
const opened_editor_node_define_1 = require("../opened-editor-node.define");
|
|
11
|
+
let OpenedEditorModel = OpenedEditorModel_1 = class OpenedEditorModel extends ide_components_1.TreeModel {
|
|
12
|
+
constructor(root) {
|
|
13
|
+
super();
|
|
14
|
+
this.flushDispatchChangeDelayer = new ide_core_browser_1.ThrottledDelayer(OpenedEditorModel_1.DEFAULT_FLUSH_DELAY);
|
|
15
|
+
this.onWillUpdateEmitter = new ide_core_browser_1.Emitter();
|
|
16
|
+
this.init(root);
|
|
17
|
+
}
|
|
18
|
+
get onWillUpdate() {
|
|
19
|
+
return this.onWillUpdateEmitter.event;
|
|
20
|
+
}
|
|
21
|
+
init(root) {
|
|
22
|
+
this.root = root;
|
|
23
|
+
// 分支更新时通知树刷新, 不是立即更新,而是延迟更新,待树稳定后再更新
|
|
24
|
+
// 100ms的延迟并不能保证树稳定,特别是在node_modules展开的情况下
|
|
25
|
+
// 但在普通使用上已经足够可用,即不会有渲染闪烁问题
|
|
26
|
+
this.root.watcher.on(ide_components_1.TreeNodeEvent.BranchDidUpdate, this.doDispatchChange.bind(this));
|
|
27
|
+
// 主题或装饰器更新时,更新树
|
|
28
|
+
this.decorationService.onDidChange(this.doDispatchChange.bind(this));
|
|
29
|
+
}
|
|
30
|
+
doDispatchChange() {
|
|
31
|
+
if (!this.flushDispatchChangeDelayer.isTriggered()) {
|
|
32
|
+
this.flushDispatchChangeDelayer.cancel();
|
|
33
|
+
}
|
|
34
|
+
this.flushDispatchChangeDelayer.trigger(async () => {
|
|
35
|
+
await this.onWillUpdateEmitter.fireAndAwait();
|
|
36
|
+
this.dispatchChange();
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
OpenedEditorModel.DEFAULT_FLUSH_DELAY = 100;
|
|
41
|
+
(0, tslib_1.__decorate)([
|
|
42
|
+
(0, di_1.Autowired)(opened_editor_decoration_service_1.OpenedEditorDecorationService),
|
|
43
|
+
(0, tslib_1.__metadata)("design:type", opened_editor_decoration_service_1.OpenedEditorDecorationService)
|
|
44
|
+
], OpenedEditorModel.prototype, "decorationService", void 0);
|
|
45
|
+
OpenedEditorModel = OpenedEditorModel_1 = (0, tslib_1.__decorate)([
|
|
46
|
+
(0, di_1.Injectable)({ multiple: true }),
|
|
47
|
+
(0, tslib_1.__param)(0, (0, di_1.Optional)()),
|
|
48
|
+
(0, tslib_1.__metadata)("design:paramtypes", [opened_editor_node_define_1.EditorFileGroup])
|
|
49
|
+
], OpenedEditorModel);
|
|
50
|
+
exports.OpenedEditorModel = OpenedEditorModel;
|
|
51
|
+
//# sourceMappingURL=opened-editor-model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opened-editor-model.js","sourceRoot":"","sources":["../../../src/browser/services/opened-editor-model.ts"],"names":[],"mappings":";;;;;AAAA,6DAAuF;AACvF,qCAA8D;AAC9D,iEAA8E;AAC9E,yFAAmF;AACnF,4EAA+D;AAG/D,IAAa,iBAAiB,yBAA9B,MAAa,iBAAkB,SAAQ,0BAAS;IAU9C,YAAwB,IAAqB;QAC3C,KAAK,EAAE,CAAC;QAJF,+BAA0B,GAAI,IAAI,mCAAgB,CAAO,mBAAiB,CAAC,mBAAmB,CAAC,CAAC;QAChG,wBAAmB,GAAkB,IAAI,0BAAO,EAAE,CAAC;QAIzD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;IACxC,CAAC;IAED,IAAI,CAAC,IAAuB;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,qCAAqC;QACrC,0CAA0C;QAC1C,2BAA2B;QAC3B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,8BAAa,CAAC,eAAe,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACtF,gBAAgB;QAChB,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,WAAW,EAAE,EAAE;YAClD,IAAI,CAAC,0BAA0B,CAAC,MAAM,EAAE,CAAC;SAC1C;QACD,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YACjD,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,CAAC;YAC9C,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AApCQ,qCAAmB,GAAG,GAAG,CAAC;AAGjC;IADC,IAAA,cAAS,EAAC,gEAA6B,CAAC;2CACN,gEAA6B;4DAAC;AALtD,iBAAiB;IAD7B,IAAA,eAAU,EAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;IAWd,wBAAA,IAAA,aAAQ,GAAE,CAAA;kDAAO,2CAAe;GAVlC,iBAAiB,CAsC7B;AAtCY,8CAAiB"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { DecorationsManager, IRecycleTreeHandle, TreeNodeType } from '@opensumi/ide-components';
|
|
2
|
+
import { URI, IContextKeyService, CommandService, Deferred, Event } from '@opensumi/ide-core-browser';
|
|
3
|
+
import { LabelService } from '@opensumi/ide-core-browser/lib/services';
|
|
4
|
+
import { OpenedEditorModel } from './opened-editor-model';
|
|
5
|
+
import { EditorFile, EditorFileGroup } from '../opened-editor-node.define';
|
|
6
|
+
import { OpenedEditorDecorationService } from './opened-editor-decoration.service';
|
|
7
|
+
import { OpenedEditorEventService } from './opened-editor-event.service';
|
|
8
|
+
import { IEditorGroup, IResource } from '@opensumi/ide-editor/lib/browser';
|
|
9
|
+
export interface IEditorTreeHandle extends IRecycleTreeHandle {
|
|
10
|
+
hasDirectFocus: () => boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare class OpenedEditorModelService {
|
|
13
|
+
private static DEFAULT_FLUSH_FILE_EVENT_DELAY;
|
|
14
|
+
private static DEFAULT_LOCATION_FLUSH_DELAY;
|
|
15
|
+
private readonly injector;
|
|
16
|
+
private readonly ctxMenuRenderer;
|
|
17
|
+
private readonly contextMenuService;
|
|
18
|
+
private readonly contextKeyService;
|
|
19
|
+
private readonly openedEditorService;
|
|
20
|
+
readonly labelService: LabelService;
|
|
21
|
+
readonly decorationService: OpenedEditorDecorationService;
|
|
22
|
+
readonly openedEditorEventService: OpenedEditorEventService;
|
|
23
|
+
private readonly editorService;
|
|
24
|
+
readonly commandService: CommandService;
|
|
25
|
+
private readonly layoutService;
|
|
26
|
+
private _treeModel;
|
|
27
|
+
private _whenReady;
|
|
28
|
+
private _decorations;
|
|
29
|
+
private _openedEditorTreeHandle;
|
|
30
|
+
flushEventQueueDeferred: Deferred<void> | null;
|
|
31
|
+
private _eventFlushTimeout;
|
|
32
|
+
private _changeEventDispatchQueue;
|
|
33
|
+
private selectedDecoration;
|
|
34
|
+
private focusedDecoration;
|
|
35
|
+
private contextMenuDecoration;
|
|
36
|
+
private dirtyDecoration;
|
|
37
|
+
private _focusedFile;
|
|
38
|
+
private _selectedFiles;
|
|
39
|
+
private _contextMenuFile;
|
|
40
|
+
private disposableCollection;
|
|
41
|
+
private onDidRefreshedEmitter;
|
|
42
|
+
private locationDelayer;
|
|
43
|
+
private _contextMenuContextKeyService;
|
|
44
|
+
private _currentDirtyNodes;
|
|
45
|
+
private ignoreRefreshAndActiveTimes;
|
|
46
|
+
constructor();
|
|
47
|
+
get flushEventQueuePromise(): Promise<void> | null;
|
|
48
|
+
get contextMenuContextKeyService(): IContextKeyService;
|
|
49
|
+
get editorTreeHandle(): IEditorTreeHandle;
|
|
50
|
+
get decorations(): DecorationsManager;
|
|
51
|
+
get treeModel(): OpenedEditorModel;
|
|
52
|
+
get whenReady(): Promise<void>;
|
|
53
|
+
get focusedFile(): EditorFileGroup | EditorFile | undefined;
|
|
54
|
+
get contextMenuFile(): EditorFileGroup | EditorFile | undefined;
|
|
55
|
+
get selectedFiles(): (EditorFileGroup | EditorFile)[];
|
|
56
|
+
get onDidRefreshed(): Event<void>;
|
|
57
|
+
initTreeModel(): Promise<void>;
|
|
58
|
+
initDecorations(root: any): void;
|
|
59
|
+
activeFileDecoration: (target: EditorFileGroup | EditorFile, dispatchChange?: boolean) => void;
|
|
60
|
+
selectFileDecoration: (target: EditorFileGroup | EditorFile, dispatchChange?: boolean) => void;
|
|
61
|
+
activeFileActivedDecoration: (target: EditorFileGroup | EditorFile) => void;
|
|
62
|
+
enactiveFileDecoration: () => void;
|
|
63
|
+
removeFileDecoration(): void;
|
|
64
|
+
handleContextMenu: (ev: React.MouseEvent, file?: EditorFileGroup | EditorFile | undefined) => void;
|
|
65
|
+
handleTreeHandler(handle: IEditorTreeHandle): void;
|
|
66
|
+
handleTreeBlur: () => void;
|
|
67
|
+
handleItemClick: (item: EditorFileGroup | EditorFile, type: TreeNodeType) => void;
|
|
68
|
+
/**
|
|
69
|
+
* 刷新指定下的所有子节点
|
|
70
|
+
*/
|
|
71
|
+
refresh(node?: EditorFileGroup): Promise<void>;
|
|
72
|
+
private queueChangeEvent;
|
|
73
|
+
flushEventQueue: () => Promise<any> | undefined;
|
|
74
|
+
location: (resource: IResource | URI, group?: IEditorGroup | undefined) => Promise<void>;
|
|
75
|
+
openFile: (node: EditorFile) => void;
|
|
76
|
+
closeFile: (node: EditorFile) => void;
|
|
77
|
+
closeAllByGroup: (node: EditorFileGroup) => void;
|
|
78
|
+
saveAllByGroup: (node: EditorFileGroup) => void;
|
|
79
|
+
private setExplorerTabBarBadge;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=opened-editor-model.service.d.ts.map
|