@theia/playwright 1.37.0-next.1 → 1.37.0-next.10
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/index.d.ts +4 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +4 -0
- package/lib/index.js.map +1 -1
- package/lib/tests/theia-explorer-view.test.js +25 -5
- package/lib/tests/theia-explorer-view.test.js.map +1 -1
- package/lib/tests/theia-main-menu.test.js +2 -2
- package/lib/tests/theia-main-menu.test.js.map +1 -1
- package/lib/tests/theia-output-view.test.d.ts +2 -0
- package/lib/tests/theia-output-view.test.d.ts.map +1 -0
- package/lib/tests/theia-output-view.test.js +77 -0
- package/lib/tests/theia-output-view.test.js.map +1 -0
- package/lib/tests/theia-quick-command.test.js +14 -0
- package/lib/tests/theia-quick-command.test.js.map +1 -1
- package/lib/tests/theia-sample-app.test.js +3 -30
- package/lib/tests/theia-sample-app.test.js.map +1 -1
- package/lib/tests/theia-toolbar.test.d.ts +2 -0
- package/lib/tests/theia-toolbar.test.d.ts.map +1 -0
- package/lib/tests/theia-toolbar.test.js +60 -0
- package/lib/tests/theia-toolbar.test.js.map +1 -0
- package/lib/tests/theia-workspace.test.js +5 -3
- package/lib/tests/theia-workspace.test.js.map +1 -1
- package/lib/theia-app.d.ts.map +1 -1
- package/lib/theia-app.js +1 -0
- package/lib/theia-app.js.map +1 -1
- package/lib/theia-explorer-view.d.ts +11 -4
- package/lib/theia-explorer-view.d.ts.map +1 -1
- package/lib/theia-explorer-view.js +54 -6
- package/lib/theia-explorer-view.js.map +1 -1
- package/lib/theia-monaco-editor.d.ts +16 -0
- package/lib/theia-monaco-editor.d.ts.map +1 -0
- package/lib/theia-monaco-editor.js +76 -0
- package/lib/theia-monaco-editor.js.map +1 -0
- package/lib/theia-output-channel.d.ts +25 -0
- package/lib/theia-output-channel.d.ts.map +1 -0
- package/lib/theia-output-channel.js +72 -0
- package/lib/theia-output-channel.js.map +1 -0
- package/lib/theia-output-view.d.ts +10 -0
- package/lib/theia-output-view.d.ts.map +1 -0
- package/lib/theia-output-view.js +82 -0
- package/lib/theia-output-view.js.map +1 -0
- package/lib/theia-quick-command-palette.d.ts +2 -1
- package/lib/theia-quick-command-palette.d.ts.map +1 -1
- package/lib/theia-quick-command-palette.js +9 -2
- package/lib/theia-quick-command-palette.js.map +1 -1
- package/lib/theia-text-editor.d.ts +2 -3
- package/lib/theia-text-editor.d.ts.map +1 -1
- package/lib/theia-text-editor.js +11 -40
- package/lib/theia-text-editor.js.map +1 -1
- package/lib/theia-toolbar-item.d.ts +11 -0
- package/lib/theia-toolbar-item.d.ts.map +1 -0
- package/lib/theia-toolbar-item.js +40 -0
- package/lib/theia-toolbar-item.js.map +1 -0
- package/lib/theia-toolbar.d.ts +20 -0
- package/lib/theia-toolbar.d.ts.map +1 -0
- package/lib/theia-toolbar.js +91 -0
- package/lib/theia-toolbar.js.map +1 -0
- package/lib/theia-tree-node.d.ts +1 -0
- package/lib/theia-tree-node.d.ts.map +1 -1
- package/lib/theia-tree-node.js +8 -0
- package/lib/theia-tree-node.js.map +1 -1
- package/package.json +13 -10
- package/src/index.ts +4 -0
- package/src/tests/resources/sample-files1/sampleFolderCompact/nestedFolder1/nestedFolder2/sampleFile1-1.txt +0 -0
- package/src/tests/theia-explorer-view.test.ts +26 -6
- package/src/tests/theia-main-menu.test.ts +2 -2
- package/src/tests/theia-output-view.test.ts +85 -0
- package/src/tests/theia-quick-command.test.ts +15 -0
- package/src/tests/theia-sample-app.test.ts +3 -34
- package/src/tests/theia-toolbar.test.ts +65 -0
- package/src/tests/theia-workspace.test.ts +5 -3
- package/src/theia-app.ts +1 -0
- package/src/theia-explorer-view.ts +60 -7
- package/src/theia-monaco-editor.ts +83 -0
- package/src/theia-output-channel.ts +88 -0
- package/src/theia-output-view.ts +87 -0
- package/src/theia-quick-command-palette.ts +10 -2
- package/src/theia-text-editor.ts +13 -44
- package/src/theia-toolbar-item.ts +41 -0
- package/src/theia-toolbar.ts +99 -0
- package/src/theia-tree-node.ts +10 -1
|
@@ -100,8 +100,8 @@ class TheiaExplorerView extends theia_view_1.TheiaView {
|
|
|
100
100
|
}
|
|
101
101
|
return file;
|
|
102
102
|
}
|
|
103
|
-
async fileStatNode(filePath) {
|
|
104
|
-
return this.fileStatNodeBySegments(...filePath.split('/'));
|
|
103
|
+
async fileStatNode(filePath, compact = false) {
|
|
104
|
+
return compact ? this.compactFileStatNode(filePath) : this.fileStatNodeBySegments(...filePath.split('/'));
|
|
105
105
|
}
|
|
106
106
|
async fileStatNodeBySegments(...pathFragments) {
|
|
107
107
|
await super.activate();
|
|
@@ -124,6 +124,33 @@ class TheiaExplorerView extends theia_view_1.TheiaView {
|
|
|
124
124
|
}
|
|
125
125
|
return currentTreeNode;
|
|
126
126
|
}
|
|
127
|
+
async compactFileStatNode(path) {
|
|
128
|
+
// default setting `explorer.compactFolders=true` renders folders in a compact form - single child folders will be compressed in a combined tree element
|
|
129
|
+
await super.activate();
|
|
130
|
+
const viewElement = await this.viewElement();
|
|
131
|
+
// check if first segment folder needs to be expanded first (if folder has never been expanded, it will not show the compact folder structure)
|
|
132
|
+
await this.waitForVisibleFileNodes();
|
|
133
|
+
const firstSegment = path.split('/')[0];
|
|
134
|
+
const selector = this.treeNodeSelector(firstSegment);
|
|
135
|
+
const folderElement = await (viewElement === null || viewElement === void 0 ? void 0 : viewElement.$(selector));
|
|
136
|
+
if (folderElement && await folderElement.isVisible()) {
|
|
137
|
+
const folderNode = await (viewElement === null || viewElement === void 0 ? void 0 : viewElement.waitForSelector(selector, { state: 'visible' }));
|
|
138
|
+
if (!folderNode) {
|
|
139
|
+
throw new Error(`Tree node '${selector}' not found in explorer`);
|
|
140
|
+
}
|
|
141
|
+
const folderFileStatNode = new TheiaExplorerFileStatNode(folderNode, this);
|
|
142
|
+
if (await folderFileStatNode.isCollapsed()) {
|
|
143
|
+
await folderFileStatNode.expand();
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
// now get tree node via the full path
|
|
147
|
+
const fullPathSelector = this.treeNodeSelector(path);
|
|
148
|
+
const treeNode = await (viewElement === null || viewElement === void 0 ? void 0 : viewElement.waitForSelector(fullPathSelector, { state: 'visible' }));
|
|
149
|
+
if (!treeNode) {
|
|
150
|
+
throw new Error(`Tree node '${fullPathSelector}' not found in explorer`);
|
|
151
|
+
}
|
|
152
|
+
return new TheiaExplorerFileStatNode(treeNode, this);
|
|
153
|
+
}
|
|
127
154
|
async selectTreeNode(filePath) {
|
|
128
155
|
await this.activate();
|
|
129
156
|
const treeNode = await this.page.waitForSelector(this.treeNodeSelector(filePath));
|
|
@@ -132,6 +159,10 @@ class TheiaExplorerView extends theia_view_1.TheiaView {
|
|
|
132
159
|
}
|
|
133
160
|
else {
|
|
134
161
|
await treeNode.click({ modifiers: ['Control'] });
|
|
162
|
+
// make sure the click has been acted-upon before returning
|
|
163
|
+
while (!await this.isTreeNodeSelected(filePath)) {
|
|
164
|
+
console.debug('Waiting for clicked tree node to be selected: ' + filePath);
|
|
165
|
+
}
|
|
135
166
|
}
|
|
136
167
|
}
|
|
137
168
|
async isTreeNodeSelected(filePath) {
|
|
@@ -158,8 +189,8 @@ class TheiaExplorerView extends theia_view_1.TheiaView {
|
|
|
158
189
|
const menuItem = await fileStatNode.getMenuItemByNamePath(...path);
|
|
159
190
|
await menuItem.click();
|
|
160
191
|
}
|
|
161
|
-
async existsNode(path, isDirectory) {
|
|
162
|
-
const fileStatNode = await this.fileStatNode(path);
|
|
192
|
+
async existsNode(path, isDirectory, compact = false) {
|
|
193
|
+
const fileStatNode = await this.fileStatNode(path, compact);
|
|
163
194
|
if (!fileStatNode) {
|
|
164
195
|
return false;
|
|
165
196
|
}
|
|
@@ -178,8 +209,13 @@ class TheiaExplorerView extends theia_view_1.TheiaView {
|
|
|
178
209
|
async existsFileNode(path) {
|
|
179
210
|
return this.existsNode(path, false);
|
|
180
211
|
}
|
|
181
|
-
async existsDirectoryNode(path) {
|
|
182
|
-
return this.existsNode(path, true);
|
|
212
|
+
async existsDirectoryNode(path, compact = false) {
|
|
213
|
+
return this.existsNode(path, true, compact);
|
|
214
|
+
}
|
|
215
|
+
async waitForTreeNodeVisible(path) {
|
|
216
|
+
// wait for tree node to be visible, e.g. after triggering create
|
|
217
|
+
const viewElement = await this.viewElement();
|
|
218
|
+
await (viewElement === null || viewElement === void 0 ? void 0 : viewElement.waitForSelector(this.treeNodeSelector(path), { state: 'visible' }));
|
|
183
219
|
}
|
|
184
220
|
async getNumberOfVisibleNodes() {
|
|
185
221
|
await this.activate();
|
|
@@ -205,6 +241,18 @@ class TheiaExplorerView extends theia_view_1.TheiaView {
|
|
|
205
241
|
await renameDialog.waitForClosed();
|
|
206
242
|
await this.refresh();
|
|
207
243
|
}
|
|
244
|
+
async waitForVisible() {
|
|
245
|
+
await super.waitForVisible();
|
|
246
|
+
await this.page.waitForSelector(this.tabSelector, { state: 'visible' });
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Waits until some non-dot file nodes are visible
|
|
250
|
+
*/
|
|
251
|
+
async waitForVisibleFileNodes() {
|
|
252
|
+
while ((await this.visibleFileStatNodes(exports.DOT_FILES_FILTER)).length === 0) {
|
|
253
|
+
console.debug('Awaiting for tree nodes to appear');
|
|
254
|
+
}
|
|
255
|
+
}
|
|
208
256
|
}
|
|
209
257
|
exports.TheiaExplorerView = TheiaExplorerView;
|
|
210
258
|
//# sourceMappingURL=theia-explorer-view.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theia-explorer-view.js","sourceRoot":"","sources":["../src/theia-explorer-view.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"theia-explorer-view.js","sourceRoot":"","sources":["../src/theia-explorer-view.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ElementHandle } from '@playwright/test';
|
|
2
|
+
import { TheiaPageObject } from './theia-page-object';
|
|
3
|
+
import { TheiaApp } from './theia-app';
|
|
4
|
+
export declare class TheiaMonacoEditor extends TheiaPageObject {
|
|
5
|
+
protected readonly selector: string;
|
|
6
|
+
constructor(selector: string, app: TheiaApp);
|
|
7
|
+
waitForVisible(): Promise<void>;
|
|
8
|
+
protected viewElement(): Promise<ElementHandle<SVGElement | HTMLElement> | null>;
|
|
9
|
+
numberOfLines(): Promise<number | undefined>;
|
|
10
|
+
textContentOfLineByLineNumber(lineNumber: number): Promise<string | undefined>;
|
|
11
|
+
lineByLineNumber(lineNumber: number): Promise<ElementHandle<SVGElement | HTMLElement> | undefined>;
|
|
12
|
+
textContentOfLineContainingText(text: string): Promise<string | undefined>;
|
|
13
|
+
lineContainingText(text: string): Promise<ElementHandle<SVGElement | HTMLElement> | undefined>;
|
|
14
|
+
protected replaceEditorSymbolsWithSpace(content: string): string | Promise<string | undefined>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=theia-monaco-editor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theia-monaco-editor.d.ts","sourceRoot":"","sources":["../src/theia-monaco-editor.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,qBAAa,iBAAkB,SAAQ,eAAe;IACtC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM;gBAAhB,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ;IAIxD,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrC,SAAS,CAAC,WAAW,IAAI,OAAO,CAAC,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC;IAI1E,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAO5C,6BAA6B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAO9E,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,SAAS,CAAC;IAiBlG,+BAA+B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAO1E,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,SAAS,CAAC;IAKpG,SAAS,CAAC,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAMjG"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2023 EclipseSource and others.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.TheiaMonacoEditor = void 0;
|
|
19
|
+
const theia_page_object_1 = require("./theia-page-object");
|
|
20
|
+
class TheiaMonacoEditor extends theia_page_object_1.TheiaPageObject {
|
|
21
|
+
constructor(selector, app) {
|
|
22
|
+
super(app);
|
|
23
|
+
this.selector = selector;
|
|
24
|
+
}
|
|
25
|
+
async waitForVisible() {
|
|
26
|
+
await this.page.waitForSelector(this.selector, { state: 'visible' });
|
|
27
|
+
}
|
|
28
|
+
viewElement() {
|
|
29
|
+
return this.page.$(this.selector);
|
|
30
|
+
}
|
|
31
|
+
async numberOfLines() {
|
|
32
|
+
await this.waitForVisible();
|
|
33
|
+
const viewElement = await this.viewElement();
|
|
34
|
+
const lineElements = await (viewElement === null || viewElement === void 0 ? void 0 : viewElement.$$('.view-lines .view-line'));
|
|
35
|
+
return lineElements === null || lineElements === void 0 ? void 0 : lineElements.length;
|
|
36
|
+
}
|
|
37
|
+
async textContentOfLineByLineNumber(lineNumber) {
|
|
38
|
+
await this.waitForVisible();
|
|
39
|
+
const lineElement = await this.lineByLineNumber(lineNumber);
|
|
40
|
+
const content = await (lineElement === null || lineElement === void 0 ? void 0 : lineElement.textContent());
|
|
41
|
+
return content ? this.replaceEditorSymbolsWithSpace(content) : undefined;
|
|
42
|
+
}
|
|
43
|
+
async lineByLineNumber(lineNumber) {
|
|
44
|
+
await this.waitForVisible();
|
|
45
|
+
const viewElement = await this.viewElement();
|
|
46
|
+
const lines = await (viewElement === null || viewElement === void 0 ? void 0 : viewElement.$$('.view-lines > .view-line'));
|
|
47
|
+
if (!lines) {
|
|
48
|
+
throw new Error('Couldn\'t retrieve lines of monaco editor');
|
|
49
|
+
}
|
|
50
|
+
const linesWithXCoordinates = [];
|
|
51
|
+
for (const lineElement of lines) {
|
|
52
|
+
const box = await lineElement.boundingBox();
|
|
53
|
+
linesWithXCoordinates.push({ x: box ? box.x : Number.MAX_VALUE, lineElement });
|
|
54
|
+
}
|
|
55
|
+
linesWithXCoordinates.sort((a, b) => a.x.toString().localeCompare(b.x.toString()));
|
|
56
|
+
return linesWithXCoordinates[lineNumber - 1].lineElement;
|
|
57
|
+
}
|
|
58
|
+
async textContentOfLineContainingText(text) {
|
|
59
|
+
await this.waitForVisible();
|
|
60
|
+
const lineElement = await this.lineContainingText(text);
|
|
61
|
+
const content = await (lineElement === null || lineElement === void 0 ? void 0 : lineElement.textContent());
|
|
62
|
+
return content ? this.replaceEditorSymbolsWithSpace(content) : undefined;
|
|
63
|
+
}
|
|
64
|
+
async lineContainingText(text) {
|
|
65
|
+
const viewElement = await this.viewElement();
|
|
66
|
+
return viewElement === null || viewElement === void 0 ? void 0 : viewElement.waitForSelector(`.view-lines .view-line:has-text("${text}")`);
|
|
67
|
+
}
|
|
68
|
+
replaceEditorSymbolsWithSpace(content) {
|
|
69
|
+
// [ ] => \u00a0 -- NO-BREAK SPACE
|
|
70
|
+
// [·] · => \u00b7 -- MIDDLE DOT
|
|
71
|
+
// [] ‌ => \u200c -- ZERO WIDTH NON-JOINER
|
|
72
|
+
return content.replace(/[\u00a0\u00b7]/g, ' ').replace(/[\u200c]/g, '');
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
exports.TheiaMonacoEditor = TheiaMonacoEditor;
|
|
76
|
+
//# sourceMappingURL=theia-monaco-editor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theia-monaco-editor.js","sourceRoot":"","sources":["../src/theia-monaco-editor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ElementHandle } from '@playwright/test';
|
|
2
|
+
import { TheiaOutputView } from './theia-output-view';
|
|
3
|
+
import { TheiaPageObject } from './theia-page-object';
|
|
4
|
+
import { TheiaMonacoEditor } from './theia-monaco-editor';
|
|
5
|
+
export interface TheiaOutputViewChannelData {
|
|
6
|
+
viewSelector: string;
|
|
7
|
+
dataUri: string;
|
|
8
|
+
channelName: string;
|
|
9
|
+
}
|
|
10
|
+
export declare class TheiaOutputViewChannel extends TheiaPageObject {
|
|
11
|
+
protected readonly data: TheiaOutputViewChannelData;
|
|
12
|
+
protected readonly outputView: TheiaOutputView;
|
|
13
|
+
protected monacoEditor: TheiaMonacoEditor;
|
|
14
|
+
constructor(data: TheiaOutputViewChannelData, outputView: TheiaOutputView);
|
|
15
|
+
protected get viewSelector(): string;
|
|
16
|
+
protected get dataUri(): string | undefined;
|
|
17
|
+
protected get channelName(): string | undefined;
|
|
18
|
+
waitForVisible(): Promise<void>;
|
|
19
|
+
isDisplayed(): Promise<boolean>;
|
|
20
|
+
protected viewElement(): Promise<ElementHandle<SVGElement | HTMLElement> | null>;
|
|
21
|
+
numberOfLines(): Promise<number | undefined>;
|
|
22
|
+
maxSeverityOfLineByLineNumber(lineNumber: number): Promise<'error' | 'warning' | 'info'>;
|
|
23
|
+
textContentOfLineByLineNumber(lineNumber: number): Promise<string | undefined>;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=theia-output-channel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theia-output-channel.d.ts","sourceRoot":"","sources":["../src/theia-output-channel.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,WAAW,0BAA0B;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,sBAAuB,SAAQ,eAAe;IAI3C,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,0BAA0B;IAAE,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,eAAe;IAF/G,SAAS,CAAC,YAAY,EAAE,iBAAiB,CAAC;gBAEX,IAAI,EAAE,0BAA0B,EAAqB,UAAU,EAAE,eAAe;IAK/G,SAAS,KAAK,YAAY,IAAI,MAAM,CAEnC;IAED,SAAS,KAAK,OAAO,IAAI,MAAM,GAAG,SAAS,CAE1C;IAED,SAAS,KAAK,WAAW,IAAI,MAAM,GAAG,SAAS,CAE9C;IAEK,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAIrC,SAAS,CAAC,WAAW,IAAI,OAAO,CAAC,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC;IAI1E,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAK5C,6BAA6B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IAkBxF,6BAA6B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAGvF"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2023 EclipseSource and others.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.TheiaOutputViewChannel = void 0;
|
|
19
|
+
const theia_page_object_1 = require("./theia-page-object");
|
|
20
|
+
const util_1 = require("./util");
|
|
21
|
+
const theia_monaco_editor_1 = require("./theia-monaco-editor");
|
|
22
|
+
class TheiaOutputViewChannel extends theia_page_object_1.TheiaPageObject {
|
|
23
|
+
constructor(data, outputView) {
|
|
24
|
+
super(outputView.app);
|
|
25
|
+
this.data = data;
|
|
26
|
+
this.outputView = outputView;
|
|
27
|
+
this.monacoEditor = new theia_monaco_editor_1.TheiaMonacoEditor(this.viewSelector, outputView.app);
|
|
28
|
+
}
|
|
29
|
+
get viewSelector() {
|
|
30
|
+
return this.data.viewSelector;
|
|
31
|
+
}
|
|
32
|
+
get dataUri() {
|
|
33
|
+
return this.data.dataUri;
|
|
34
|
+
}
|
|
35
|
+
get channelName() {
|
|
36
|
+
return this.data.channelName;
|
|
37
|
+
}
|
|
38
|
+
async waitForVisible() {
|
|
39
|
+
await this.page.waitForSelector(this.viewSelector, { state: 'visible' });
|
|
40
|
+
}
|
|
41
|
+
async isDisplayed() {
|
|
42
|
+
return (0, util_1.isElementVisible)(this.viewElement());
|
|
43
|
+
}
|
|
44
|
+
viewElement() {
|
|
45
|
+
return this.page.$(this.viewSelector);
|
|
46
|
+
}
|
|
47
|
+
async numberOfLines() {
|
|
48
|
+
await this.waitForVisible();
|
|
49
|
+
return this.monacoEditor.numberOfLines();
|
|
50
|
+
}
|
|
51
|
+
async maxSeverityOfLineByLineNumber(lineNumber) {
|
|
52
|
+
await this.waitForVisible();
|
|
53
|
+
const lineElement = await this.monacoEditor.lineByLineNumber(lineNumber);
|
|
54
|
+
const contents = await (lineElement === null || lineElement === void 0 ? void 0 : lineElement.$$('span > span.mtk1'));
|
|
55
|
+
if (!contents || contents.length < 1) {
|
|
56
|
+
throw new Error(`Could not find contents of line number ${lineNumber}!`);
|
|
57
|
+
}
|
|
58
|
+
const severityClassNames = await Promise.all(contents.map(async (content) => { var _a; return (_a = (await content.getAttribute('class'))) === null || _a === void 0 ? void 0 : _a.split(' ')[1]; }));
|
|
59
|
+
if (severityClassNames.includes('theia-output-error')) {
|
|
60
|
+
return 'error';
|
|
61
|
+
}
|
|
62
|
+
else if (severityClassNames.includes('theia-output-warning')) {
|
|
63
|
+
return 'warning';
|
|
64
|
+
}
|
|
65
|
+
return 'info';
|
|
66
|
+
}
|
|
67
|
+
async textContentOfLineByLineNumber(lineNumber) {
|
|
68
|
+
return this.monacoEditor.textContentOfLineByLineNumber(lineNumber);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
exports.TheiaOutputViewChannel = TheiaOutputViewChannel;
|
|
72
|
+
//# sourceMappingURL=theia-output-channel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theia-output-channel.js","sourceRoot":"","sources":["../src/theia-output-channel.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+CAA+C;AAC/C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;;;AAIhF,2DAAsD;AACtD,iCAA0C;AAC1C,+DAA0D;AAQ1D,MAAa,sBAAuB,SAAQ,mCAAe;IAIvD,YAA+B,IAAgC,EAAqB,UAA2B;QAC3G,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QADK,SAAI,GAAJ,IAAI,CAA4B;QAAqB,eAAU,GAAV,UAAU,CAAiB;QAE3G,IAAI,CAAC,YAAY,GAAG,IAAI,uCAAiB,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;IACjF,CAAC;IAED,IAAc,YAAY;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;IAClC,CAAC;IAED,IAAc,OAAO;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IAC7B,CAAC;IAED,IAAc,WAAW;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,cAAc;QAChB,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,WAAW;QACb,OAAO,IAAA,uBAAgB,EAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAChD,CAAC;IAES,WAAW;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,aAAa;QACf,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,6BAA6B,CAAC,UAAkB;QAClD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACzE,MAAM,QAAQ,GAAG,MAAM,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,EAAE,CAAC,kBAAkB,CAAC,CAAA,CAAC;QAC3D,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAClC,MAAM,IAAI,KAAK,CAAC,0CAA0C,UAAU,GAAG,CAAC,CAAC;SAC5E;QACD,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CACrD,KAAK,EAAC,OAAO,EAAC,EAAE,WAAC,OAAA,MAAA,CAAC,MAAM,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,0CAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA,EAAA,CAAC,CAAC,CAAC;QAE5E,IAAI,kBAAkB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE;YACnD,OAAO,OAAO,CAAC;SAClB;aAAM,IAAI,kBAAkB,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE;YAC5D,OAAO,SAAS,CAAC;SACpB;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,6BAA6B,CAAC,UAAkB;QAClD,OAAO,IAAI,CAAC,YAAY,CAAC,6BAA6B,CAAC,UAAU,CAAC,CAAC;IACvE,CAAC;CACJ;AA3DD,wDA2DC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { TheiaApp } from './theia-app';
|
|
2
|
+
import { TheiaOutputViewChannel } from './theia-output-channel';
|
|
3
|
+
import { TheiaView } from './theia-view';
|
|
4
|
+
export declare class TheiaOutputView extends TheiaView {
|
|
5
|
+
constructor(app: TheiaApp);
|
|
6
|
+
isOutputChannelSelected(outputChannelName: string): Promise<boolean>;
|
|
7
|
+
getOutputChannel(outputChannelName: string): Promise<TheiaOutputViewChannel | undefined>;
|
|
8
|
+
selectOutputChannel(outputChannelName: string): Promise<boolean>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=theia-output-view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theia-output-view.d.ts","sourceRoot":"","sources":["../src/theia-output-view.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AASzC,qBAAa,eAAgB,SAAQ,SAAS;gBAC9B,GAAG,EAAE,QAAQ;IAInB,uBAAuB,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAapE,gBAAgB,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC;IAiBxF,mBAAmB,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAwBzE"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2023 EclipseSource and others.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.TheiaOutputView = void 0;
|
|
19
|
+
const theia_output_channel_1 = require("./theia-output-channel");
|
|
20
|
+
const theia_view_1 = require("./theia-view");
|
|
21
|
+
const util_1 = require("./util");
|
|
22
|
+
const TheiaOutputViewData = {
|
|
23
|
+
tabSelector: '#shell-tab-outputView',
|
|
24
|
+
viewSelector: '#outputView',
|
|
25
|
+
viewName: 'Output'
|
|
26
|
+
};
|
|
27
|
+
class TheiaOutputView extends theia_view_1.TheiaView {
|
|
28
|
+
constructor(app) {
|
|
29
|
+
super(TheiaOutputViewData, app);
|
|
30
|
+
}
|
|
31
|
+
async isOutputChannelSelected(outputChannelName) {
|
|
32
|
+
await this.activate();
|
|
33
|
+
const contentPanel = await this.page.$('#theia-bottom-content-panel');
|
|
34
|
+
if (contentPanel && (await contentPanel.isVisible())) {
|
|
35
|
+
const channelList = await contentPanel.$('#outputChannelList');
|
|
36
|
+
const selectedChannel = await (channelList === null || channelList === void 0 ? void 0 : channelList.$('div.theia-select-component-label'));
|
|
37
|
+
if (selectedChannel && (await selectedChannel.textContent()) === outputChannelName) {
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
async getOutputChannel(outputChannelName) {
|
|
44
|
+
await this.activate();
|
|
45
|
+
const channel = new theia_output_channel_1.TheiaOutputViewChannel({
|
|
46
|
+
viewSelector: 'div.p-Widget.theia-editor.p-DockPanel-widget > div.monaco-editor',
|
|
47
|
+
dataUri: (0, util_1.normalizeId)(`output:/${encodeURIComponent(outputChannelName)}`),
|
|
48
|
+
channelName: outputChannelName
|
|
49
|
+
}, this);
|
|
50
|
+
await channel.waitForVisible();
|
|
51
|
+
if (await channel.isDisplayed()) {
|
|
52
|
+
return channel;
|
|
53
|
+
}
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
async selectOutputChannel(outputChannelName) {
|
|
57
|
+
await this.activate();
|
|
58
|
+
const contentPanel = await this.page.$('#theia-bottom-content-panel');
|
|
59
|
+
if (contentPanel && (await contentPanel.isVisible())) {
|
|
60
|
+
const channelSelectComponent = await contentPanel.$('#outputChannelList');
|
|
61
|
+
if (!channelSelectComponent) {
|
|
62
|
+
throw Error('Output Channel List not visible.');
|
|
63
|
+
}
|
|
64
|
+
// open output channel list component
|
|
65
|
+
await channelSelectComponent.click();
|
|
66
|
+
const channelContainer = await this.page.waitForSelector('#select-component-container > div.theia-select-component-dropdown');
|
|
67
|
+
if (!channelContainer) {
|
|
68
|
+
throw Error('Output Channel List could not be opened.');
|
|
69
|
+
}
|
|
70
|
+
const channels = await channelContainer.$$('div.theia-select-component-option-value');
|
|
71
|
+
for (const channel of channels) {
|
|
72
|
+
if (await channel.textContent() === outputChannelName) {
|
|
73
|
+
await channel.click();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return this.isOutputChannelSelected(outputChannelName);
|
|
77
|
+
}
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
exports.TheiaOutputView = TheiaOutputView;
|
|
82
|
+
//# sourceMappingURL=theia-output-view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theia-output-view.js","sourceRoot":"","sources":["../src/theia-output-view.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,10 +3,11 @@ import { TheiaPageObject } from './theia-page-object';
|
|
|
3
3
|
export declare class TheiaQuickCommandPalette extends TheiaPageObject {
|
|
4
4
|
selector: string;
|
|
5
5
|
open(): Promise<void>;
|
|
6
|
+
hide(): Promise<void>;
|
|
6
7
|
isOpen(): Promise<boolean>;
|
|
7
8
|
trigger(...commandName: string[]): Promise<void>;
|
|
8
9
|
protected triggerSingleCommand(commandName: string): Promise<void>;
|
|
9
|
-
type(
|
|
10
|
+
type(value: string, confirm?: boolean): Promise<void>;
|
|
10
11
|
protected selectedCommand(): Promise<ElementHandle<SVGElement | HTMLElement> | null>;
|
|
11
12
|
}
|
|
12
13
|
//# sourceMappingURL=theia-quick-command-palette.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theia-quick-command-palette.d.ts","sourceRoot":"","sources":["../src/theia-quick-command-palette.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,qBAAa,wBAAyB,SAAQ,eAAe;IAEzD,QAAQ,SAAyB;IAE3B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrB,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAS1B,OAAO,CAAC,GAAG,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;cAMtC,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYlE,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"theia-quick-command-palette.d.ts","sourceRoot":"","sources":["../src/theia-quick-command-palette.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,qBAAa,wBAAyB,SAAQ,eAAe;IAEzD,QAAQ,SAAyB;IAE3B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrB,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAS1B,OAAO,CAAC,GAAG,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;cAMtC,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYlE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;cAczC,eAAe,IAAI,OAAO,CAAC,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC;CAO7F"}
|
|
@@ -27,6 +27,10 @@ class TheiaQuickCommandPalette extends theia_page_object_1.TheiaPageObject {
|
|
|
27
27
|
await this.page.keyboard.press(util_1.OSUtil.isMacOS ? 'Meta+Shift+p' : 'Control+Shift+p');
|
|
28
28
|
await this.page.waitForSelector(this.selector);
|
|
29
29
|
}
|
|
30
|
+
async hide() {
|
|
31
|
+
await this.page.keyboard.press('Escape');
|
|
32
|
+
await this.page.waitForSelector(this.selector, { state: 'hidden' });
|
|
33
|
+
}
|
|
30
34
|
async isOpen() {
|
|
31
35
|
try {
|
|
32
36
|
await this.page.waitForSelector(this.selector, { timeout: 5000 });
|
|
@@ -52,14 +56,17 @@ class TheiaQuickCommandPalette extends theia_page_object_1.TheiaPageObject {
|
|
|
52
56
|
}
|
|
53
57
|
await this.page.keyboard.press('Enter');
|
|
54
58
|
}
|
|
55
|
-
async type(
|
|
59
|
+
async type(value, confirm = false) {
|
|
56
60
|
if (!await this.isOpen()) {
|
|
57
61
|
this.open();
|
|
58
62
|
}
|
|
59
63
|
const input = await this.page.waitForSelector(`${this.selector} .monaco-inputbox .input`);
|
|
60
64
|
if (input != null) {
|
|
61
65
|
await input.focus();
|
|
62
|
-
await input.type(
|
|
66
|
+
await input.type(value, { delay: util_1.USER_KEY_TYPING_DELAY });
|
|
67
|
+
if (confirm) {
|
|
68
|
+
await this.page.keyboard.press('Enter');
|
|
69
|
+
}
|
|
63
70
|
}
|
|
64
71
|
}
|
|
65
72
|
async selectedCommand() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theia-quick-command-palette.js","sourceRoot":"","sources":["../src/theia-quick-command-palette.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+DAA+D;AAC/D,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;;;AAGhF,2DAAsD;AACtD,iCAAuD;AAEvD,MAAa,wBAAyB,SAAQ,mCAAe;IAA7D;;QAEI,aAAQ,GAAG,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"theia-quick-command-palette.js","sourceRoot":"","sources":["../src/theia-quick-command-palette.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { ElementHandle } from '@playwright/test';
|
|
2
2
|
import { TheiaApp } from './theia-app';
|
|
3
3
|
import { TheiaEditor } from './theia-editor';
|
|
4
|
+
import { TheiaMonacoEditor } from './theia-monaco-editor';
|
|
4
5
|
export declare class TheiaTextEditor extends TheiaEditor {
|
|
6
|
+
protected monacoEditor: TheiaMonacoEditor;
|
|
5
7
|
constructor(filePath: string, app: TheiaApp);
|
|
6
8
|
numberOfLines(): Promise<number | undefined>;
|
|
7
9
|
textContentOfLineByLineNumber(lineNumber: number): Promise<string | undefined>;
|
|
@@ -10,7 +12,6 @@ export declare class TheiaTextEditor extends TheiaEditor {
|
|
|
10
12
|
selectLineWithLineNumber(lineNumber: number): Promise<ElementHandle<SVGElement | HTMLElement> | undefined>;
|
|
11
13
|
placeCursorInLineWithLineNumber(lineNumber: number): Promise<ElementHandle<SVGElement | HTMLElement> | undefined>;
|
|
12
14
|
deleteLineByLineNumber(lineNumber: number): Promise<void>;
|
|
13
|
-
protected lineByLineNumber(lineNumber: number): Promise<ElementHandle<SVGElement | HTMLElement> | undefined>;
|
|
14
15
|
textContentOfLineContainingText(text: string): Promise<string | undefined>;
|
|
15
16
|
replaceLineContainingText(newText: string, oldText: string): Promise<void>;
|
|
16
17
|
selectLineContainingText(text: string): Promise<ElementHandle<SVGElement | HTMLElement> | undefined>;
|
|
@@ -18,10 +19,8 @@ export declare class TheiaTextEditor extends TheiaEditor {
|
|
|
18
19
|
deleteLineContainingText(text: string): Promise<void>;
|
|
19
20
|
addTextToNewLineAfterLineContainingText(textContainedByExistingLine: string, newText: string): Promise<void>;
|
|
20
21
|
addTextToNewLineAfterLineByLineNumber(lineNumber: number, newText: string): Promise<void>;
|
|
21
|
-
protected lineContainingText(text: string): Promise<ElementHandle<SVGElement | HTMLElement> | undefined>;
|
|
22
22
|
protected selectLine(lineElement: ElementHandle<SVGElement | HTMLElement> | undefined): Promise<void>;
|
|
23
23
|
protected placeCursorInLine(lineElement: ElementHandle<SVGElement | HTMLElement> | undefined): Promise<void>;
|
|
24
|
-
protected replaceEditorSymbolsWithSpace(content: string): string | Promise<string | undefined>;
|
|
25
24
|
protected selectedSuggestion(): Promise<ElementHandle<SVGElement | HTMLElement>>;
|
|
26
25
|
getSelectedSuggestionText(): Promise<string>;
|
|
27
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theia-text-editor.d.ts","sourceRoot":"","sources":["../src/theia-text-editor.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"theia-text-editor.d.ts","sourceRoot":"","sources":["../src/theia-text-editor.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,qBAAa,eAAgB,SAAQ,WAAW;IAE5C,SAAS,CAAC,YAAY,EAAE,iBAAiB,CAAC;gBAE9B,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ;IAUrC,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAK5C,6BAA6B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAI9E,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAKhE,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK1D,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,SAAS,CAAC;IAO1G,+BAA+B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,SAAS,CAAC;IAOjH,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzD,+BAA+B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAK1E,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK1E,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,SAAS,CAAC;IAOpG,+BAA+B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,SAAS,CAAC;IAO3G,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrD,uCAAuC,CAAC,2BAA2B,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ5G,qCAAqC,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAQ/E,UAAU,CAAC,WAAW,EAAE,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;cAI3F,iBAAiB,CAAC,WAAW,EAAE,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;cAIlG,kBAAkB,IAAI,OAAO,CAAC,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC;IAIhF,yBAAyB,IAAI,OAAO,CAAC,MAAM,CAAC;CAOrD"}
|