@opensumi/playwright 2.20.10 → 2.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/app.d.ts +3 -1
- package/lib/app.d.ts.map +1 -1
- package/lib/app.js +6 -0
- package/lib/app.js.map +1 -1
- package/lib/component-editor.d.ts +19 -0
- package/lib/component-editor.d.ts.map +1 -0
- package/lib/component-editor.js +55 -0
- package/lib/component-editor.js.map +1 -0
- package/lib/debug-view.d.ts +8 -0
- package/lib/debug-view.d.ts.map +1 -0
- package/lib/debug-view.js +24 -0
- package/lib/debug-view.js.map +1 -0
- package/lib/editor.d.ts +7 -3
- package/lib/editor.d.ts.map +1 -1
- package/lib/editor.js +65 -7
- package/lib/editor.js.map +1 -1
- package/lib/explorer-view.d.ts +13 -3
- package/lib/explorer-view.d.ts.map +1 -1
- package/lib/explorer-view.js +58 -10
- package/lib/explorer-view.js.map +1 -1
- package/lib/filetree-view.d.ts +7 -0
- package/lib/filetree-view.d.ts.map +1 -0
- package/lib/filetree-view.js +30 -0
- package/lib/filetree-view.js.map +1 -0
- package/lib/index.d.ts +18 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +18 -0
- package/lib/index.js.map +1 -1
- package/lib/menu-item.d.ts +2 -2
- package/lib/menu-item.js +3 -3
- package/lib/menu-item.js.map +1 -1
- package/lib/menu.d.ts +1 -1
- package/lib/menubar.d.ts +1 -2
- package/lib/menubar.d.ts.map +1 -1
- package/lib/menubar.js +4 -4
- package/lib/menubar.js.map +1 -1
- package/lib/opened-editor-view.d.ts +7 -0
- package/lib/opened-editor-view.d.ts.map +1 -0
- package/lib/opened-editor-view.js +30 -0
- package/lib/opened-editor-view.js.map +1 -0
- package/lib/panel.d.ts +5 -3
- package/lib/panel.d.ts.map +1 -1
- package/lib/panel.js +14 -4
- package/lib/panel.js.map +1 -1
- package/lib/quick-command-palette.js +1 -1
- package/lib/quick-open-palette.js +1 -1
- package/lib/search-view.d.ts +9 -1
- package/lib/search-view.d.ts.map +1 -1
- package/lib/search-view.js +34 -3
- package/lib/search-view.js.map +1 -1
- package/lib/terminal.d.ts +7 -0
- package/lib/terminal.d.ts.map +1 -0
- package/lib/terminal.js +25 -0
- package/lib/terminal.js.map +1 -0
- package/lib/tests/debug.test.d.ts +2 -0
- package/lib/tests/debug.test.d.ts.map +1 -0
- package/lib/tests/debug.test.js +59 -0
- package/lib/tests/debug.test.js.map +1 -0
- package/lib/tests/editor.test.js +46 -11
- package/lib/tests/editor.test.js.map +1 -1
- package/lib/tests/explorer-view.test.js +118 -9
- package/lib/tests/explorer-view.test.js.map +1 -1
- package/lib/tests/keymaps.test.d.ts +2 -0
- package/lib/tests/keymaps.test.d.ts.map +1 -0
- package/lib/tests/keymaps.test.js +94 -0
- package/lib/tests/keymaps.test.js.map +1 -0
- package/lib/tests/language.test.d.ts +2 -0
- package/lib/tests/language.test.d.ts.map +1 -0
- package/lib/tests/language.test.js +48 -0
- package/lib/tests/language.test.js.map +1 -0
- package/lib/tests/scm.test.d.ts +2 -0
- package/lib/tests/scm.test.d.ts.map +1 -0
- package/lib/tests/scm.test.js +39 -0
- package/lib/tests/scm.test.js.map +1 -0
- package/lib/tests/search-view.test.js +10 -2
- package/lib/tests/search-view.test.js.map +1 -1
- package/lib/text-editor.d.ts +31 -3
- package/lib/text-editor.d.ts.map +1 -1
- package/lib/text-editor.js +113 -19
- package/lib/text-editor.js.map +1 -1
- package/lib/tree-node.d.ts +4 -0
- package/lib/tree-node.d.ts.map +1 -1
- package/lib/tree-node.js +17 -0
- package/lib/tree-node.js.map +1 -1
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/index.d.ts.map +1 -1
- package/lib/utils/index.js +1 -0
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/key.d.ts +2 -0
- package/lib/utils/key.d.ts.map +1 -0
- package/lib/utils/key.js +10 -0
- package/lib/utils/key.js.map +1 -0
- package/lib/workspace.js +1 -1
- package/lib/workspace.js.map +1 -1
- package/package.json +2 -2
|
@@ -3,20 +3,26 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
const path_1 = tslib_1.__importDefault(require("path"));
|
|
5
5
|
const test_1 = require("@playwright/test");
|
|
6
|
+
const ide_utils_1 = require("@opensumi/ide-utils");
|
|
6
7
|
const app_1 = require("../app");
|
|
7
8
|
const explorer_view_1 = require("../explorer-view");
|
|
9
|
+
const terminal_1 = require("../terminal");
|
|
10
|
+
const text_editor_1 = require("../text-editor");
|
|
8
11
|
const workspace_1 = require("../workspace");
|
|
9
12
|
const hooks_1 = tslib_1.__importStar(require("./hooks"));
|
|
10
13
|
let app;
|
|
11
14
|
let explorer;
|
|
12
15
|
let fileTreeView;
|
|
16
|
+
let openedEditorView;
|
|
17
|
+
let workspace;
|
|
13
18
|
hooks_1.default.describe('OpenSumi Explorer Panel', () => {
|
|
14
19
|
hooks_1.default.beforeAll(async () => {
|
|
15
|
-
|
|
20
|
+
workspace = new workspace_1.OpenSumiWorkspace([path_1.default.resolve('./src/tests/workspaces/default')]);
|
|
16
21
|
app = await app_1.OpenSumiApp.load(hooks_1.page, workspace);
|
|
17
22
|
explorer = await app.open(explorer_view_1.OpenSumiExplorerView);
|
|
18
23
|
explorer.initFileTreeView(workspace.workspace.displayName);
|
|
19
24
|
fileTreeView = explorer.fileTreeView;
|
|
25
|
+
openedEditorView = explorer.openedEditorView;
|
|
20
26
|
});
|
|
21
27
|
hooks_1.default.afterAll(() => {
|
|
22
28
|
app.dispose();
|
|
@@ -24,13 +30,10 @@ hooks_1.default.describe('OpenSumi Explorer Panel', () => {
|
|
|
24
30
|
(0, hooks_1.default)('should show file explorer', async () => {
|
|
25
31
|
(0, test_1.expect)(explorer.isVisible()).toBeTruthy();
|
|
26
32
|
await fileTreeView.open();
|
|
27
|
-
(0, test_1.expect)(fileTreeView.isVisible()).toBeTruthy();
|
|
33
|
+
(0, test_1.expect)(await fileTreeView.isVisible()).toBeTruthy();
|
|
28
34
|
});
|
|
29
35
|
(0, hooks_1.default)('can new single file by context menu', async () => {
|
|
30
36
|
var _a;
|
|
31
|
-
(0, test_1.expect)(explorer.isVisible()).toBeTruthy();
|
|
32
|
-
await fileTreeView.open();
|
|
33
|
-
(0, test_1.expect)(fileTreeView.isVisible()).toBeTruthy();
|
|
34
37
|
const node = await explorer.getFileStatTreeNodeByPath('test');
|
|
35
38
|
await (node === null || node === void 0 ? void 0 : node.expand());
|
|
36
39
|
(0, test_1.expect)(await (node === null || node === void 0 ? void 0 : node.isCollapsed())).toBeFalsy();
|
|
@@ -53,9 +56,6 @@ hooks_1.default.describe('OpenSumi Explorer Panel', () => {
|
|
|
53
56
|
});
|
|
54
57
|
(0, hooks_1.default)('can new folder by context menu', async () => {
|
|
55
58
|
var _a;
|
|
56
|
-
(0, test_1.expect)(explorer.isVisible()).toBeTruthy();
|
|
57
|
-
await fileTreeView.open();
|
|
58
|
-
(0, test_1.expect)(fileTreeView.isVisible()).toBeTruthy();
|
|
59
59
|
const node = await explorer.getFileStatTreeNodeByPath('test');
|
|
60
60
|
await (node === null || node === void 0 ? void 0 : node.expand());
|
|
61
61
|
(0, test_1.expect)(await (node === null || node === void 0 ? void 0 : node.isCollapsed())).toBeFalsy();
|
|
@@ -64,7 +64,7 @@ hooks_1.default.describe('OpenSumi Explorer Panel', () => {
|
|
|
64
64
|
const newFileMenu = await (menu === null || menu === void 0 ? void 0 : menu.menuItemByName('New Folder'));
|
|
65
65
|
await (newFileMenu === null || newFileMenu === void 0 ? void 0 : newFileMenu.click());
|
|
66
66
|
// type `new_file` as the file name
|
|
67
|
-
const newFileName = '
|
|
67
|
+
const newFileName = 'new_folder';
|
|
68
68
|
const input = await ((_a = (await fileTreeView.getViewElement())) === null || _a === void 0 ? void 0 : _a.waitForSelector('.kt-input-box'));
|
|
69
69
|
if (input != null) {
|
|
70
70
|
await input.focus();
|
|
@@ -76,5 +76,114 @@ hooks_1.default.describe('OpenSumi Explorer Panel', () => {
|
|
|
76
76
|
(0, test_1.expect)(newFile).toBeDefined();
|
|
77
77
|
(0, test_1.expect)(await (newFile === null || newFile === void 0 ? void 0 : newFile.isFolder())).toBeTruthy();
|
|
78
78
|
});
|
|
79
|
+
(0, hooks_1.default)('can new file from toolbar', async () => {
|
|
80
|
+
var _a;
|
|
81
|
+
const node = await explorer.getFileStatTreeNodeByPath('editor.js');
|
|
82
|
+
await (node === null || node === void 0 ? void 0 : node.open());
|
|
83
|
+
const action = await fileTreeView.getTitleActionByName('New File');
|
|
84
|
+
await (action === null || action === void 0 ? void 0 : action.click());
|
|
85
|
+
// type `new_file` as the file name
|
|
86
|
+
const newFileName = 'new_file2';
|
|
87
|
+
const input = await ((_a = (await fileTreeView.getViewElement())) === null || _a === void 0 ? void 0 : _a.waitForSelector('.kt-input-box'));
|
|
88
|
+
if (input != null) {
|
|
89
|
+
await input.focus();
|
|
90
|
+
await input.type(newFileName, { delay: 200 });
|
|
91
|
+
await app.page.keyboard.press('Enter');
|
|
92
|
+
}
|
|
93
|
+
await app.page.waitForTimeout(200);
|
|
94
|
+
const newFile = await explorer.getFileStatTreeNodeByPath(`${newFileName}`);
|
|
95
|
+
(0, test_1.expect)(newFile).toBeDefined();
|
|
96
|
+
(0, test_1.expect)(await (newFile === null || newFile === void 0 ? void 0 : newFile.isFolder())).toBeFalsy();
|
|
97
|
+
});
|
|
98
|
+
(0, hooks_1.default)('can new folder from toolbar', async () => {
|
|
99
|
+
var _a;
|
|
100
|
+
const node = await explorer.getFileStatTreeNodeByPath('editor.js');
|
|
101
|
+
await (node === null || node === void 0 ? void 0 : node.open());
|
|
102
|
+
const action = await fileTreeView.getTitleActionByName('New Folder');
|
|
103
|
+
await (action === null || action === void 0 ? void 0 : action.click());
|
|
104
|
+
// type `new_folder2` as the file name
|
|
105
|
+
const newFileName = 'new_folder2';
|
|
106
|
+
const input = await ((_a = (await fileTreeView.getViewElement())) === null || _a === void 0 ? void 0 : _a.waitForSelector('.kt-input-box'));
|
|
107
|
+
if (input != null) {
|
|
108
|
+
await input.focus();
|
|
109
|
+
await input.type(newFileName, { delay: 200 });
|
|
110
|
+
await app.page.keyboard.press('Enter');
|
|
111
|
+
}
|
|
112
|
+
await app.page.waitForTimeout(200);
|
|
113
|
+
const newFile = await explorer.getFileStatTreeNodeByPath(`${newFileName}`);
|
|
114
|
+
(0, test_1.expect)(newFile).toBeDefined();
|
|
115
|
+
(0, test_1.expect)(await (newFile === null || newFile === void 0 ? void 0 : newFile.isFolder())).toBeTruthy();
|
|
116
|
+
});
|
|
117
|
+
(ide_utils_1.isWindows ? hooks_1.default.skip : hooks_1.default)('fileTree should be updated while create directory from terminal', async () => {
|
|
118
|
+
const dirname = 'dir_from_terminal';
|
|
119
|
+
const terminal = await app.open(terminal_1.OpenSumiTerminal);
|
|
120
|
+
await terminal.sendText(`cd ${workspace.workspace.codeUri.fsPath}`);
|
|
121
|
+
await terminal.sendText(`mkdir ${dirname}`);
|
|
122
|
+
await app.page.waitForTimeout(2000);
|
|
123
|
+
let newDir = await explorer.getFileStatTreeNodeByPath(dirname);
|
|
124
|
+
if (!newDir) {
|
|
125
|
+
const action = await fileTreeView.getTitleActionByName('Refresh');
|
|
126
|
+
await (action === null || action === void 0 ? void 0 : action.click());
|
|
127
|
+
await app.page.waitForTimeout(200);
|
|
128
|
+
newDir = await explorer.getFileStatTreeNodeByPath(dirname);
|
|
129
|
+
}
|
|
130
|
+
(0, test_1.expect)(newDir).toBeDefined();
|
|
131
|
+
});
|
|
132
|
+
(0, hooks_1.default)('can filter files on the filetree', async () => {
|
|
133
|
+
var _a;
|
|
134
|
+
const action = await fileTreeView.getTitleActionByName('Filter on opened files');
|
|
135
|
+
await (action === null || action === void 0 ? void 0 : action.click());
|
|
136
|
+
// type `editor2` to filter existed files
|
|
137
|
+
const filterString = 'editor2';
|
|
138
|
+
const input = await ((_a = (await fileTreeView.getViewElement())) === null || _a === void 0 ? void 0 : _a.waitForSelector('.kt-input-box'));
|
|
139
|
+
if (input != null) {
|
|
140
|
+
await input.focus();
|
|
141
|
+
await input.type(filterString, { delay: 200 });
|
|
142
|
+
}
|
|
143
|
+
await app.page.waitForTimeout(200);
|
|
144
|
+
const file_1 = await explorer.getFileStatTreeNodeByPath(`${filterString}.js`);
|
|
145
|
+
(0, test_1.expect)(file_1).toBeDefined();
|
|
146
|
+
let file_2 = await explorer.getFileStatTreeNodeByPath('editor.js');
|
|
147
|
+
(0, test_1.expect)(file_2).toBeUndefined();
|
|
148
|
+
await app.page.keyboard.press('Escape');
|
|
149
|
+
file_2 = await explorer.getFileStatTreeNodeByPath('editor.js');
|
|
150
|
+
(0, test_1.expect)(file_2).toBeDefined();
|
|
151
|
+
});
|
|
152
|
+
(0, hooks_1.default)('should show opened files on the opened editor panel', async () => {
|
|
153
|
+
await openedEditorView.open();
|
|
154
|
+
(0, test_1.expect)(await openedEditorView.isVisible()).toBeTruthy();
|
|
155
|
+
const testFilePath = 'editor.js';
|
|
156
|
+
await app.openEditor(text_editor_1.OpenSumiTextEditor, explorer, testFilePath);
|
|
157
|
+
await app.page.waitForTimeout(500);
|
|
158
|
+
const node = await explorer.getOpenedEditorTreeNodeByPath(testFilePath);
|
|
159
|
+
(0, test_1.expect)(node).toBeDefined();
|
|
160
|
+
});
|
|
161
|
+
(0, hooks_1.default)('should show dirty icon on the opened editor panel', async () => {
|
|
162
|
+
await openedEditorView.open();
|
|
163
|
+
(0, test_1.expect)(await openedEditorView.isVisible()).toBeTruthy();
|
|
164
|
+
const testFilePath = 'editor3.js';
|
|
165
|
+
const editor = await app.openEditor(text_editor_1.OpenSumiTextEditor, explorer, testFilePath);
|
|
166
|
+
await editor.addTextToNewLineAfterLineByLineNumber(1, `const a = 'a';
|
|
167
|
+
console.log(a);`);
|
|
168
|
+
await app.page.waitForTimeout(1000);
|
|
169
|
+
let node = await explorer.getOpenedEditorTreeNodeByPath(testFilePath);
|
|
170
|
+
(0, test_1.expect)(await (node === null || node === void 0 ? void 0 : node.isDirty())).toBeTruthy();
|
|
171
|
+
await editor.save();
|
|
172
|
+
await app.page.waitForTimeout(1000);
|
|
173
|
+
node = await explorer.getOpenedEditorTreeNodeByPath(testFilePath);
|
|
174
|
+
(0, test_1.expect)(await (node === null || node === void 0 ? void 0 : node.isDirty())).toBeFalsy();
|
|
175
|
+
});
|
|
176
|
+
(0, hooks_1.default)('split file on the editor should showing on two group', async () => {
|
|
177
|
+
await openedEditorView.open();
|
|
178
|
+
(0, test_1.expect)(await openedEditorView.isVisible()).toBeTruthy();
|
|
179
|
+
const testFilePath = 'editor3.js';
|
|
180
|
+
const editor = await app.openEditor(text_editor_1.OpenSumiTextEditor, explorer, testFilePath);
|
|
181
|
+
await editor.triggerTitleMenuById('editor.splitToRight');
|
|
182
|
+
await app.page.waitForTimeout(2000);
|
|
183
|
+
const group1 = await explorer.getOpenedEditorTreeNodeByPath('Group 1');
|
|
184
|
+
const group2 = await explorer.getOpenedEditorTreeNodeByPath('Group 2');
|
|
185
|
+
(0, test_1.expect)(group1).toBeDefined();
|
|
186
|
+
(0, test_1.expect)(group2).toBeDefined();
|
|
187
|
+
});
|
|
79
188
|
});
|
|
80
189
|
//# sourceMappingURL=explorer-view.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explorer-view.test.js","sourceRoot":"","sources":["../../src/tests/explorer-view.test.ts"],"names":[],"mappings":";;;AAAA,wDAAwB;AAExB,2CAA0C;AAE1C,gCAAqC;AACrC,oDAAwD;
|
|
1
|
+
{"version":3,"file":"explorer-view.test.js","sourceRoot":"","sources":["../../src/tests/explorer-view.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keymaps.test.d.ts","sourceRoot":"","sources":["../../src/tests/keymaps.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const path_1 = tslib_1.__importDefault(require("path"));
|
|
5
|
+
const test_1 = require("@playwright/test");
|
|
6
|
+
const app_1 = require("../app");
|
|
7
|
+
const component_editor_1 = require("../component-editor");
|
|
8
|
+
const constans_1 = require("../constans");
|
|
9
|
+
const context_menu_1 = require("../context-menu");
|
|
10
|
+
const explorer_view_1 = require("../explorer-view");
|
|
11
|
+
const text_editor_1 = require("../text-editor");
|
|
12
|
+
const utils_1 = require("../utils");
|
|
13
|
+
const workspace_1 = require("../workspace");
|
|
14
|
+
const hooks_1 = tslib_1.__importStar(require("./hooks"));
|
|
15
|
+
let app;
|
|
16
|
+
let explorer;
|
|
17
|
+
let workspace;
|
|
18
|
+
hooks_1.default.describe('OpenSumi Keyboard Shortcuts', () => {
|
|
19
|
+
hooks_1.default.beforeAll(async () => {
|
|
20
|
+
workspace = new workspace_1.OpenSumiWorkspace([path_1.default.resolve('./src/tests/workspaces/default')]);
|
|
21
|
+
app = await app_1.OpenSumiApp.load(hooks_1.page, workspace);
|
|
22
|
+
explorer = await app.open(explorer_view_1.OpenSumiExplorerView);
|
|
23
|
+
explorer.initFileTreeView(workspace.workspace.displayName);
|
|
24
|
+
});
|
|
25
|
+
hooks_1.default.afterAll(() => {
|
|
26
|
+
app.dispose();
|
|
27
|
+
});
|
|
28
|
+
const openKeymapsView = async () => {
|
|
29
|
+
const leftTabbar = await app.page.waitForSelector(`#${constans_1.OPENSUMI_VIEW_CONTAINERS.LEFT_TABBAR}`);
|
|
30
|
+
const settingsButton = await leftTabbar.$('[class*="titleActions___"] span');
|
|
31
|
+
await (settingsButton === null || settingsButton === void 0 ? void 0 : settingsButton.click());
|
|
32
|
+
const menu = new context_menu_1.OpenSumiContextMenu(app);
|
|
33
|
+
await menu.clickMenuItem('Keyboard Shortcut');
|
|
34
|
+
};
|
|
35
|
+
(0, hooks_1.default)('open Keyboard Settings by keybinding', async () => {
|
|
36
|
+
await explorer.fileTreeView.focus();
|
|
37
|
+
await app.page.keyboard.press((0, utils_1.keypressWithCmdCtrl)('KeyK'), { delay: 200 });
|
|
38
|
+
await app.page.keyboard.press((0, utils_1.keypressWithCmdCtrl)('KeyS'), { delay: 200 });
|
|
39
|
+
const editor = await app.openComponentEditor(component_editor_1.OpenSumiComponentEditor, 'keymaps:/', 'Keyboard Shortcuts', "[class*='keybinding_container___']");
|
|
40
|
+
(0, test_1.expect)(await editor.isVisible()).toBeTruthy();
|
|
41
|
+
await editor.close();
|
|
42
|
+
await app.page.waitForTimeout(1000);
|
|
43
|
+
(0, test_1.expect)(await editor.isVisible()).toBeFalsy();
|
|
44
|
+
});
|
|
45
|
+
(0, hooks_1.default)('open Keyboard Settings by settings button', async () => {
|
|
46
|
+
await openKeymapsView();
|
|
47
|
+
const editor = await app.openComponentEditor(component_editor_1.OpenSumiComponentEditor, 'keymaps:/', 'Keyboard Shortcuts', "[class*='keybinding_container___']");
|
|
48
|
+
(0, test_1.expect)(await editor.isVisible()).toBeTruthy();
|
|
49
|
+
await editor.close();
|
|
50
|
+
});
|
|
51
|
+
(0, hooks_1.default)("change 'Save Current File' keybinding to 'CMD+SHIFT+S'", async () => {
|
|
52
|
+
var _a, _b, _c;
|
|
53
|
+
await openKeymapsView();
|
|
54
|
+
const editor = await app.openComponentEditor(component_editor_1.OpenSumiComponentEditor, 'keymaps:/', 'Keyboard Shortcuts', "[class*='keybinding_container___']");
|
|
55
|
+
(0, test_1.expect)(await editor.isVisible()).toBeTruthy();
|
|
56
|
+
const searchArea = await ((_a = (await editor.getContainer())) === null || _a === void 0 ? void 0 : _a.$('[class*="search_input___"]'));
|
|
57
|
+
const keyboardButton = await (searchArea === null || searchArea === void 0 ? void 0 : searchArea.$('[class*="search_inline_action___"] span'));
|
|
58
|
+
const searchInput = await (searchArea === null || searchArea === void 0 ? void 0 : searchArea.$('.kt-input-box input'));
|
|
59
|
+
await (keyboardButton === null || keyboardButton === void 0 ? void 0 : keyboardButton.click());
|
|
60
|
+
await (searchInput === null || searchInput === void 0 ? void 0 : searchInput.focus());
|
|
61
|
+
// type 'CMD+S' to filter 'Save Current File' command
|
|
62
|
+
await app.page.keyboard.press((0, utils_1.keypressWithCmdCtrl)('KeyS'), { delay: 200 });
|
|
63
|
+
const items = (await ((_b = (await editor.getContainer())) === null || _b === void 0 ? void 0 : _b.$$('[class*="keybinding_list_item__"]'))) || [];
|
|
64
|
+
let saveFileItem;
|
|
65
|
+
for (const item of items) {
|
|
66
|
+
const command_name = await ((_c = (await item.$('[class*="command_name___"]'))) === null || _c === void 0 ? void 0 : _c.textContent());
|
|
67
|
+
if (command_name === 'Save Current File') {
|
|
68
|
+
saveFileItem = item;
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
(0, test_1.expect)(saveFileItem).toBeDefined();
|
|
73
|
+
await (saveFileItem === null || saveFileItem === void 0 ? void 0 : saveFileItem.hover());
|
|
74
|
+
const edit = await saveFileItem.$('[title="Edit"]');
|
|
75
|
+
await (edit === null || edit === void 0 ? void 0 : edit.click());
|
|
76
|
+
await app.page.keyboard.press((0, utils_1.keypressWithCmdCtrl)('Shift+KeyS'), { delay: 200 });
|
|
77
|
+
await app.page.keyboard.press('Enter');
|
|
78
|
+
// varified file save keybinding
|
|
79
|
+
const textEditor = await app.openEditor(text_editor_1.OpenSumiTextEditor, explorer, 'editor.js');
|
|
80
|
+
await textEditor.addTextToNewLineAfterLineByLineNumber(1, `const a = 'a';
|
|
81
|
+
console.log(a);`);
|
|
82
|
+
let isDirty = await textEditor.isDirty();
|
|
83
|
+
(0, test_1.expect)(isDirty).toBeTruthy();
|
|
84
|
+
await app.page.keyboard.press((0, utils_1.keypressWithCmdCtrl)('KeyS'), { delay: 200 });
|
|
85
|
+
await app.page.waitForTimeout(1000);
|
|
86
|
+
isDirty = await textEditor.isDirty();
|
|
87
|
+
(0, test_1.expect)(isDirty).toBeTruthy();
|
|
88
|
+
await app.page.keyboard.press((0, utils_1.keypressWithCmdCtrl)('Shift+KeyS'), { delay: 200 });
|
|
89
|
+
await app.page.waitForTimeout(1000);
|
|
90
|
+
isDirty = await textEditor.isDirty();
|
|
91
|
+
(0, test_1.expect)(isDirty).toBeFalsy();
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
//# sourceMappingURL=keymaps.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keymaps.test.js","sourceRoot":"","sources":["../../src/tests/keymaps.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language.test.d.ts","sourceRoot":"","sources":["../../src/tests/language.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const path_1 = tslib_1.__importDefault(require("path"));
|
|
5
|
+
const test_1 = require("@playwright/test");
|
|
6
|
+
const ide_utils_1 = require("@opensumi/ide-utils");
|
|
7
|
+
const app_1 = require("../app");
|
|
8
|
+
const explorer_view_1 = require("../explorer-view");
|
|
9
|
+
const text_editor_1 = require("../text-editor");
|
|
10
|
+
const workspace_1 = require("../workspace");
|
|
11
|
+
const hooks_1 = tslib_1.__importStar(require("./hooks"));
|
|
12
|
+
let app;
|
|
13
|
+
let explorer;
|
|
14
|
+
let editor;
|
|
15
|
+
let workspace;
|
|
16
|
+
hooks_1.default.describe('OpenSumi Language', () => {
|
|
17
|
+
hooks_1.default.beforeAll(async () => {
|
|
18
|
+
workspace = new workspace_1.OpenSumiWorkspace([path_1.default.resolve('./src/tests/workspaces/language')]);
|
|
19
|
+
app = await app_1.OpenSumiApp.load(hooks_1.page, workspace);
|
|
20
|
+
explorer = await app.open(explorer_view_1.OpenSumiExplorerView);
|
|
21
|
+
explorer.initFileTreeView(workspace.workspace.displayName);
|
|
22
|
+
await explorer.fileTreeView.open();
|
|
23
|
+
});
|
|
24
|
+
hooks_1.default.afterAll(() => {
|
|
25
|
+
app.dispose();
|
|
26
|
+
});
|
|
27
|
+
(0, hooks_1.default)('Go to Defination by cmd + click', async () => {
|
|
28
|
+
const folder = await explorer.getFileStatTreeNodeByPath('language');
|
|
29
|
+
await (folder === null || folder === void 0 ? void 0 : folder.open());
|
|
30
|
+
editor = await app.openEditor(text_editor_1.OpenSumiTextEditor, explorer, 'reference.ts', false);
|
|
31
|
+
await editor.activate();
|
|
32
|
+
await app.page.waitForTimeout(2000);
|
|
33
|
+
await editor.placeCursorInLineWithPosition(4, 20);
|
|
34
|
+
let cursorHandle = await editor.getCursorElement();
|
|
35
|
+
await (cursorHandle === null || cursorHandle === void 0 ? void 0 : cursorHandle.click({ modifiers: [ide_utils_1.isMacintosh ? 'Meta' : 'Control'] }));
|
|
36
|
+
await app.page.waitForTimeout(2000);
|
|
37
|
+
const definitionTree = await explorer.getFileStatTreeNodeByPath('definition.ts');
|
|
38
|
+
(0, test_1.expect)(await (definitionTree === null || definitionTree === void 0 ? void 0 : definitionTree.isSelected())).toBeTruthy();
|
|
39
|
+
const currentTab = await editor.getCurrentTab();
|
|
40
|
+
(0, test_1.expect)(await (currentTab === null || currentTab === void 0 ? void 0 : currentTab.textContent())).toStrictEqual(' definition.ts');
|
|
41
|
+
cursorHandle = await editor.getCursorElement();
|
|
42
|
+
const cursorLineNumber = await editor.getCursorLineNumber(cursorHandle === null || cursorHandle === void 0 ? void 0 : cursorHandle.asElement());
|
|
43
|
+
(0, test_1.expect)(cursorLineNumber).toBe(1);
|
|
44
|
+
(0, test_1.expect)(await editor.textContentOfLineByLineNumber(cursorLineNumber)).toBe('export class Definition {');
|
|
45
|
+
await editor.close();
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
//# sourceMappingURL=language.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language.test.js","sourceRoot":"","sources":["../../src/tests/language.test.ts"],"names":[],"mappings":";;;AAAA,wDAAwB;AAExB,2CAA0C;AAE1C,mDAAkD;AAElD,gCAAqC;AACrC,oDAAwD;AACxD,gDAAoD;AACpD,4CAAiD;AAEjD,yDAAqC;AAErC,IAAI,GAAgB,CAAC;AACrB,IAAI,QAA8B,CAAC;AACnC,IAAI,MAA0B,CAAC;AAC/B,IAAI,SAA4B,CAAC;AAEjC,eAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACtC,eAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACxB,SAAS,GAAG,IAAI,6BAAiB,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC,CAAC,CAAC;QACrF,GAAG,GAAG,MAAM,iBAAW,CAAC,IAAI,CAAC,YAAI,EAAE,SAAS,CAAC,CAAC;QAC9C,QAAQ,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,oCAAoB,CAAC,CAAC;QAChD,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC3D,MAAM,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,eAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;QACjB,GAAG,CAAC,OAAO,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,IAAA,eAAI,EAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC;QACpE,MAAM,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,EAAE,CAAA,CAAC;QAErB,MAAM,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,gCAAkB,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;QACnF,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,MAAM,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAClD,IAAI,YAAY,GAAG,MAAM,MAAM,CAAC,gBAAgB,EAAE,CAAC;QACnD,MAAM,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,uBAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA,CAAC;QAC7E,MAAM,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,yBAAyB,CAAC,eAAe,CAAC,CAAC;QACjF,IAAA,aAAM,EAAC,MAAM,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,UAAU,EAAE,CAAA,CAAC,CAAC,UAAU,EAAE,CAAC;QACxD,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC;QAChD,IAAA,aAAM,EAAC,MAAM,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,WAAW,EAAE,CAAA,CAAC,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;QAExE,YAAY,GAAG,MAAM,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC/C,MAAM,gBAAgB,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,SAAS,EAAE,CAAC,CAAC;QACrF,IAAA,aAAM,EAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjC,IAAA,aAAM,EAAC,MAAM,MAAM,CAAC,6BAA6B,CAAC,gBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAExG,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scm.test.d.ts","sourceRoot":"","sources":["../../src/tests/scm.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const path_1 = tslib_1.__importDefault(require("path"));
|
|
5
|
+
const test_1 = require("@playwright/test");
|
|
6
|
+
const app_1 = require("../app");
|
|
7
|
+
const explorer_view_1 = require("../explorer-view");
|
|
8
|
+
const terminal_1 = require("../terminal");
|
|
9
|
+
const workspace_1 = require("../workspace");
|
|
10
|
+
const hooks_1 = tslib_1.__importStar(require("./hooks"));
|
|
11
|
+
let app;
|
|
12
|
+
let explorer;
|
|
13
|
+
let fileTreeView;
|
|
14
|
+
let workspace;
|
|
15
|
+
hooks_1.default.describe('OpenSumi SCM Panel', () => {
|
|
16
|
+
hooks_1.default.beforeAll(async () => {
|
|
17
|
+
workspace = new workspace_1.OpenSumiWorkspace([path_1.default.resolve('./src/tests/workspaces/git-workspace')]);
|
|
18
|
+
app = await app_1.OpenSumiApp.load(hooks_1.page, workspace);
|
|
19
|
+
explorer = await app.open(explorer_view_1.OpenSumiExplorerView);
|
|
20
|
+
explorer.initFileTreeView(workspace.workspace.displayName);
|
|
21
|
+
fileTreeView = explorer.fileTreeView;
|
|
22
|
+
});
|
|
23
|
+
hooks_1.default.afterAll(() => {
|
|
24
|
+
app.dispose();
|
|
25
|
+
});
|
|
26
|
+
(0, hooks_1.default)('The "U" charset should on the files tail after git initialized', async () => {
|
|
27
|
+
await explorer.fileTreeView.open();
|
|
28
|
+
const terminal = await app.open(terminal_1.OpenSumiTerminal);
|
|
29
|
+
// There should have GIT on the PATH
|
|
30
|
+
await terminal.sendText('git init');
|
|
31
|
+
const action = await fileTreeView.getTitleActionByName('Refresh');
|
|
32
|
+
await (action === null || action === void 0 ? void 0 : action.click());
|
|
33
|
+
await app.page.waitForTimeout(2000);
|
|
34
|
+
const node = await explorer.getFileStatTreeNodeByPath('a.js');
|
|
35
|
+
const badge = await (node === null || node === void 0 ? void 0 : node.badge());
|
|
36
|
+
(0, test_1.expect)(badge).toBe('U');
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=scm.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scm.test.js","sourceRoot":"","sources":["../../src/tests/scm.test.ts"],"names":[],"mappings":";;;AAAA,wDAAwB;AAExB,2CAA0C;AAE1C,gCAAqC;AACrC,oDAAwD;AAExD,0CAA+C;AAC/C,4CAAiD;AAEjD,yDAAqC;AAErC,IAAI,GAAgB,CAAC;AACrB,IAAI,QAA8B,CAAC;AACnC,IAAI,YAAkC,CAAC;AACvC,IAAI,SAA4B,CAAC;AAEjC,eAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IACvC,eAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACxB,SAAS,GAAG,IAAI,6BAAiB,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC,CAAC,CAAC;QAC1F,GAAG,GAAG,MAAM,iBAAW,CAAC,IAAI,CAAC,YAAI,EAAE,SAAS,CAAC,CAAC;QAC9C,QAAQ,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,oCAAoB,CAAC,CAAC;QAChD,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC3D,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,eAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;QACjB,GAAG,CAAC,OAAO,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,IAAA,eAAI,EAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAChF,MAAM,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,2BAAgB,CAAC,CAAC;QAClD,oCAAoC;QACpC,MAAM,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAClE,MAAM,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,EAAE,CAAA,CAAC;QACtB,MAAM,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAG,MAAM,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,EAAE,CAAA,CAAC;QAClC,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -15,8 +15,16 @@ hooks_1.default.describe('OpenSumi Search Panel', () => {
|
|
|
15
15
|
app = await __1.OpenSumiApp.load(hooks_1.page, workspace);
|
|
16
16
|
search = await app.open(search_view_1.OpenSumiSearchView);
|
|
17
17
|
});
|
|
18
|
-
(0, hooks_1.default)('Can search files by simple text', () => {
|
|
19
|
-
|
|
18
|
+
(0, hooks_1.default)('Can search files by simple text', async () => {
|
|
19
|
+
const searchText = 'hello';
|
|
20
|
+
(0, test_1.expect)(await search.isVisible()).toBeTruthy();
|
|
21
|
+
await search.focusOnSearch();
|
|
22
|
+
await hooks_1.page.keyboard.type(searchText);
|
|
23
|
+
// search panel should searched after typing
|
|
24
|
+
await app.page.keyboard.press('Enter');
|
|
25
|
+
const { results, files } = await search.getSearchResult();
|
|
26
|
+
(0, test_1.expect)(results).toBe(1);
|
|
27
|
+
(0, test_1.expect)(files).toBe(1);
|
|
20
28
|
});
|
|
21
29
|
});
|
|
22
30
|
//# sourceMappingURL=search-view.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-view.test.js","sourceRoot":"","sources":["../../src/tests/search-view.test.ts"],"names":[],"mappings":";;;AAAA,wDAAwB;AAExB,2CAA0C;AAE1C,0BAAiC;AACjC,gDAAoD;AACpD,4CAAiD;AAEjD,yDAAqC;AAErC,IAAI,GAAgB,CAAC;AACrB,IAAI,MAA0B,CAAC;AAE/B,eAAI,CAAC,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IAC1C,eAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACxB,MAAM,SAAS,GAAG,IAAI,6BAAiB,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC;QAC1F,GAAG,GAAG,MAAM,eAAW,CAAC,IAAI,CAAC,YAAI,EAAE,SAAS,CAAC,CAAC;QAC9C,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,gCAAkB,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,IAAA,eAAI,EAAC,iCAAiC,EAAE,
|
|
1
|
+
{"version":3,"file":"search-view.test.js","sourceRoot":"","sources":["../../src/tests/search-view.test.ts"],"names":[],"mappings":";;;AAAA,wDAAwB;AAExB,2CAA0C;AAE1C,0BAAiC;AACjC,gDAAoD;AACpD,4CAAiD;AAEjD,yDAAqC;AAErC,IAAI,GAAgB,CAAC;AACrB,IAAI,MAA0B,CAAC;AAE/B,eAAI,CAAC,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IAC1C,eAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACxB,MAAM,SAAS,GAAG,IAAI,6BAAiB,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC;QAC1F,GAAG,GAAG,MAAM,eAAW,CAAC,IAAI,CAAC,YAAI,EAAE,SAAS,CAAC,CAAC;QAC9C,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,gCAAkB,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,IAAA,eAAI,EAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,UAAU,GAAG,OAAO,CAAC;QAC3B,IAAA,aAAM,EAAC,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;QAC9C,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC;QAC7B,MAAM,YAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACrC,4CAA4C;QAC5C,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,EAAE,CAAC;QAC1D,IAAA,aAAM,EAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/lib/text-editor.d.ts
CHANGED
|
@@ -1,9 +1,34 @@
|
|
|
1
|
-
import { ElementHandle } from '@playwright/test';
|
|
1
|
+
import { ElementHandle, Page } from '@playwright/test';
|
|
2
|
+
import { OpenSumiApp } from './app';
|
|
2
3
|
import { OpenSumiContextMenu } from './context-menu';
|
|
3
4
|
import { OpenSumiEditor } from './editor';
|
|
5
|
+
import { OpenSumiExplorerFileStatNode } from './explorer-view';
|
|
6
|
+
declare abstract class ViewsModel {
|
|
7
|
+
readonly page: Page;
|
|
8
|
+
constructor(page: Page);
|
|
9
|
+
protected viewElement: ElementHandle<SVGElement | HTMLElement> | null;
|
|
10
|
+
mount(v: ElementHandle<SVGElement | HTMLElement> | null): Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
declare class GlyphMarginModel extends ViewsModel {
|
|
13
|
+
getElement(): Promise<ElementHandle<any> | null | undefined>;
|
|
14
|
+
getOverlay(lineNumber: number): Promise<ElementHandle<SVGElement | HTMLElement> | undefined>;
|
|
15
|
+
hasBreakpoint(node: ElementHandle<SVGElement | HTMLElement>): Promise<boolean>;
|
|
16
|
+
hasTopStackFrame(node: ElementHandle<SVGElement | HTMLElement>): Promise<boolean>;
|
|
17
|
+
hasTopStackFrameLine(node: ElementHandle<SVGElement | HTMLElement>): Promise<boolean>;
|
|
18
|
+
}
|
|
19
|
+
declare class OverlaysModel extends ViewsModel {
|
|
20
|
+
getElement(): Promise<ElementHandle<SVGElement | HTMLElement> | null | undefined>;
|
|
21
|
+
getOverlay(lineNumber: number): Promise<ElementHandle<SVGElement | HTMLElement> | null | undefined>;
|
|
22
|
+
}
|
|
4
23
|
export declare class OpenSumiTextEditor extends OpenSumiEditor {
|
|
24
|
+
private glyphMarginModel;
|
|
25
|
+
private overlaysModel;
|
|
26
|
+
constructor(app: OpenSumiApp, filestatElement: OpenSumiExplorerFileStatNode);
|
|
27
|
+
getGlyphMarginModel(): Promise<GlyphMarginModel>;
|
|
28
|
+
getOverlaysModel(): Promise<OverlaysModel>;
|
|
5
29
|
openLineContextMenuByLineNumber(lineNumber: number): Promise<OpenSumiContextMenu | undefined>;
|
|
6
30
|
openGlyphMarginContextMenu(): Promise<OpenSumiContextMenu | undefined>;
|
|
31
|
+
openTabContextMenu(): Promise<OpenSumiContextMenu | undefined>;
|
|
7
32
|
numberOfLines(): Promise<number | undefined>;
|
|
8
33
|
textContentOfLineByLineNumber(lineNumber: number): Promise<string | undefined>;
|
|
9
34
|
replaceLineWithLineNumber(text: string, lineNumber: number): Promise<void>;
|
|
@@ -12,7 +37,9 @@ export declare class OpenSumiTextEditor extends OpenSumiEditor {
|
|
|
12
37
|
placeCursorInLineWithLineNumber(lineNumber: number): Promise<ElementHandle<SVGElement | HTMLElement> | undefined>;
|
|
13
38
|
placeCursorInLineWithPosition(lineNumber: number, columnNumber: number): Promise<ElementHandle<SVGElement | HTMLElement> | undefined>;
|
|
14
39
|
deleteLineByLineNumber(lineNumber: number): Promise<void>;
|
|
15
|
-
getGlyphMarginElement(): Promise<ElementHandle<
|
|
40
|
+
getGlyphMarginElement(): Promise<ElementHandle<SVGElement | HTMLElement> | null | undefined>;
|
|
41
|
+
getCursorElement(): Promise<ElementHandle<SVGElement | HTMLElement> | undefined>;
|
|
42
|
+
getCursorLineNumber(node: ElementHandle<SVGElement | HTMLElement> | undefined): Promise<number | undefined>;
|
|
16
43
|
lineByLineNumber(lineNumber: number): Promise<ElementHandle<SVGElement | HTMLElement> | undefined>;
|
|
17
44
|
textContentOfLineContainingText(text: string): Promise<string | undefined>;
|
|
18
45
|
replaceLineContainingText(newText: string, oldText: string): Promise<void>;
|
|
@@ -24,10 +51,11 @@ export declare class OpenSumiTextEditor extends OpenSumiEditor {
|
|
|
24
51
|
pasteContentAfterLineByLineNumber(lineNumber: number): Promise<void>;
|
|
25
52
|
protected lineContainingText(text: string): Promise<ElementHandle<SVGElement | HTMLElement> | undefined>;
|
|
26
53
|
protected selectLine(lineElement: ElementHandle<SVGElement | HTMLElement> | undefined): Promise<void>;
|
|
27
|
-
protected placeCursorInLine(lineElement: ElementHandle<SVGElement | HTMLElement> | undefined): Promise<void>;
|
|
54
|
+
protected placeCursorInLine(lineElement: ElementHandle<SVGElement | HTMLElement> | undefined, point?: 'start' | 'end'): Promise<void>;
|
|
28
55
|
protected replaceEditorSymbolsWithSpace(content: string): string | Promise<string | undefined>;
|
|
29
56
|
protected selectedSuggestion(): Promise<ElementHandle<SVGElement | HTMLElement>>;
|
|
30
57
|
getSelectedSuggestionText(): Promise<string>;
|
|
31
58
|
clearContent(): Promise<void>;
|
|
32
59
|
}
|
|
60
|
+
export {};
|
|
33
61
|
//# sourceMappingURL=text-editor.d.ts.map
|
package/lib/text-editor.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-editor.d.ts","sourceRoot":"","sources":["../src/text-editor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"text-editor.d.ts","sourceRoot":"","sources":["../src/text-editor.ts"],"names":[],"mappings":"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"}
|