@opensumi/ide-core-browser 3.4.6-next-1730442794.0 → 3.5.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/services/status-bar-service.d.ts +1 -6
- package/lib/services/status-bar-service.d.ts.map +1 -1
- package/lib/services/status-bar-service.js.map +1 -1
- package/lib/window/window.service.d.ts +1 -0
- package/lib/window/window.service.d.ts.map +1 -1
- package/lib/window/window.service.js +34 -1
- package/lib/window/window.service.js.map +1 -1
- package/package.json +5 -5
- package/src/services/status-bar-service.ts +16 -6
- package/src/window/window.service.ts +32 -1
|
@@ -61,13 +61,8 @@ export interface StatusBarEntry {
|
|
|
61
61
|
iconClass?: string;
|
|
62
62
|
ariaLabel?: string;
|
|
63
63
|
role?: string;
|
|
64
|
-
|
|
65
|
-
* 是否默认展示,可以通过右键菜单控制
|
|
66
|
-
*/
|
|
64
|
+
side?: 'left' | 'right';
|
|
67
65
|
hidden?: boolean;
|
|
68
|
-
/**
|
|
69
|
-
* 鼠标移上去 Content 的内容
|
|
70
|
-
*/
|
|
71
66
|
hoverContents?: StatusBarHoverContent[];
|
|
72
67
|
onClick?: (e: any) => void;
|
|
73
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status-bar-service.d.ts","sourceRoot":"","sources":["../../src/services/status-bar-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAE7G,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAErC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,eAAO,MAAM,iBAAiB,eAA8B,CAAC;AAE7D,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,YAAY,CAAC;QACpB,eAAe,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3B,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;KAClB,CAAC,CAAC;IACH,kBAAkB,IAAI,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,IAAI,MAAM,GAAG,SAAS,CAAC;IAC/B,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,sBAAsB,CAAC;IAC3E,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAClD,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC;;;OAGG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,WAAW,EAAE,KAAK,CAAC;IACnB,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,YAAY,EAAE,cAAc,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,qBAAqB,CAAC;CACjC;AAED,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"status-bar-service.d.ts","sourceRoot":"","sources":["../../src/services/status-bar-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status-bar-service.js","sourceRoot":"","sources":["../../src/services/status-bar-service.ts"],"names":[],"mappings":";;;AAMa,QAAA,iBAAiB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"status-bar-service.js","sourceRoot":"","sources":["../../src/services/status-bar-service.ts"],"names":[],"mappings":";;;AAMa,QAAA,iBAAiB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;AA2F7D,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC5B,2DAAI,CAAA;IACJ,6DAAK,CAAA;AACP,CAAC,EAHW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAG7B;AAED,IAAiB,gBAAgB,CAgBhC;AAhBD,WAAiB,gBAAgB;IAClB,4BAAW,GAAG;QACzB,EAAE,EAAE,uBAAuB;KAC5B,CAAC;IAEW,sCAAqB,GAAG;QACnC,EAAE,EAAE,iCAAiC;KACtC,CAAC;IAEW,2BAAU,GAAG;QACxB,EAAE,EAAE,sBAAsB;KAC3B,CAAC;IAEW,8BAAa,GAAG;QAC3B,EAAE,EAAE,yBAAyB;KAC9B,CAAC;AACJ,CAAC,EAhBgB,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAgBhC"}
|
|
@@ -3,6 +3,7 @@ import { IOpenWorkspaceOption, IWindowService, NewWindowOptions } from '.';
|
|
|
3
3
|
export declare class WindowService implements IWindowService {
|
|
4
4
|
private readonly injector;
|
|
5
5
|
private readonly appConfig;
|
|
6
|
+
private logger;
|
|
6
7
|
openNewWindow(url: string, options?: NewWindowOptions): Window | undefined;
|
|
7
8
|
openWorkspace(workspace: URI, options?: IOpenWorkspaceOption): void;
|
|
8
9
|
close(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"window.service.d.ts","sourceRoot":"","sources":["../../src/window/window.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"window.service.d.ts","sourceRoot":"","sources":["../../src/window/window.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAQhD,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,GAAG,CAAC;AAE3E,qBACa,aAAc,YAAW,cAAc;IAElD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IAGpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IAGtC,OAAO,CAAC,MAAM,CAAS;IAEvB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,MAAM,GAAG,SAAS;IAqB1E,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,GAAE,oBAAyB,GAAG,IAAI;IA2CvE,KAAK,IAAI,IAAI;IASb,QAAQ,IAAI,IAAI;IAShB,UAAU,IAAI,IAAI;IASlB,UAAU,IAAI,IAAI;IASlB,QAAQ,IAAI,IAAI;CAQjB"}
|
|
@@ -5,6 +5,7 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const di_1 = require("@opensumi/di");
|
|
6
6
|
const ide_core_common_1 = require("@opensumi/ide-core-common");
|
|
7
7
|
const electron_1 = require("@opensumi/ide-core-common/lib/electron");
|
|
8
|
+
const logger_1 = require("../logger");
|
|
8
9
|
const config_provider_1 = require("../react-providers/config-provider");
|
|
9
10
|
const services_1 = require("../services");
|
|
10
11
|
const electron_2 = require("../utils/electron");
|
|
@@ -44,7 +45,35 @@ let WindowService = class WindowService {
|
|
|
44
45
|
}
|
|
45
46
|
}
|
|
46
47
|
else {
|
|
47
|
-
|
|
48
|
+
try {
|
|
49
|
+
const workspaceUri = new ide_core_common_1.URI(workspace.toString());
|
|
50
|
+
let workspacePath;
|
|
51
|
+
if (workspaceUri.scheme === 'file') {
|
|
52
|
+
workspacePath = workspaceUri.codeUri.fsPath;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
workspacePath = workspaceUri.path.toString();
|
|
56
|
+
}
|
|
57
|
+
if (!workspacePath) {
|
|
58
|
+
throw new Error('Invalid workspace path');
|
|
59
|
+
}
|
|
60
|
+
const url = `${window.location.protocol}//${window.location.host}?workspaceDir=${encodeURIComponent(workspacePath)}`;
|
|
61
|
+
this.logger.debug(`Opening workspace with URL: ${url}`);
|
|
62
|
+
if (options.newWindow) {
|
|
63
|
+
const newWindow = window.open(url);
|
|
64
|
+
if (!newWindow) {
|
|
65
|
+
this.logger.error('Failed to open new window');
|
|
66
|
+
throw new Error('Unable to open new window, please check if your browser blocks pop-ups');
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
parent.window.location.href = url;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
this.logger.error('Failed to open workspace:', error);
|
|
75
|
+
throw error;
|
|
76
|
+
}
|
|
48
77
|
}
|
|
49
78
|
}
|
|
50
79
|
close() {
|
|
@@ -101,6 +130,10 @@ tslib_1.__decorate([
|
|
|
101
130
|
(0, di_1.Autowired)(config_provider_1.AppConfig),
|
|
102
131
|
tslib_1.__metadata("design:type", Object)
|
|
103
132
|
], WindowService.prototype, "appConfig", void 0);
|
|
133
|
+
tslib_1.__decorate([
|
|
134
|
+
(0, di_1.Autowired)(),
|
|
135
|
+
tslib_1.__metadata("design:type", logger_1.Logger)
|
|
136
|
+
], WindowService.prototype, "logger", void 0);
|
|
104
137
|
WindowService = tslib_1.__decorate([
|
|
105
138
|
(0, di_1.Injectable)()
|
|
106
139
|
], WindowService);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"window.service.js","sourceRoot":"","sources":["../../src/window/window.service.ts"],"names":[],"mappings":";;;;AAAA,qCAA+E;AAC/E,+DAAgD;AAChD,qEAA+G;AAE/G,wEAA+D;AAC/D,0CAAkD;AAClD,gDAAgD;AAKzC,IAAM,aAAa,GAAnB,MAAM,aAAa;
|
|
1
|
+
{"version":3,"file":"window.service.js","sourceRoot":"","sources":["../../src/window/window.service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opensumi/ide-core-browser",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.5.0",
|
|
4
4
|
"description": "@opensumi/ide-core-browser",
|
|
5
5
|
"files": [
|
|
6
6
|
"lib",
|
|
@@ -18,9 +18,9 @@
|
|
|
18
18
|
"build": "tsc --build ../../configs/ts/references/tsconfig.core-browser.json"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@opensumi/ide-components": "3.
|
|
22
|
-
"@opensumi/ide-connection": "3.
|
|
23
|
-
"@opensumi/ide-core-common": "3.
|
|
21
|
+
"@opensumi/ide-components": "3.5.0",
|
|
22
|
+
"@opensumi/ide-connection": "3.5.0",
|
|
23
|
+
"@opensumi/ide-core-common": "3.5.0",
|
|
24
24
|
"@opensumi/vscode-debugprotocol": "1.49.0-beta.1",
|
|
25
25
|
"@vscode/codicons": "0.0.35",
|
|
26
26
|
"ajv": "^6.10.0",
|
|
@@ -43,5 +43,5 @@
|
|
|
43
43
|
"react": "^18.2.0",
|
|
44
44
|
"react-dom": "^18.2.0"
|
|
45
45
|
},
|
|
46
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "967717cae1872aa8f572e05c3d57b0b5d879de5a"
|
|
47
47
|
}
|
|
@@ -56,25 +56,35 @@ export interface StatusBarEntry {
|
|
|
56
56
|
* 标识当前状态栏组件 contextmenu 显示的名称,如果没有使用 text 代替
|
|
57
57
|
*/
|
|
58
58
|
name?: string;
|
|
59
|
+
// 状态栏项的对齐方式
|
|
59
60
|
alignment: StatusBarAlignment;
|
|
61
|
+
// 状态栏项的颜色
|
|
60
62
|
color?: IThemeColor | string;
|
|
63
|
+
// 状态栏项的背景颜色
|
|
61
64
|
backgroundColor?: IThemeColor | string;
|
|
65
|
+
// 状态栏项的CSS类名称
|
|
62
66
|
className?: string;
|
|
67
|
+
// 状态栏项的工具提示文本或Markdown字符串
|
|
63
68
|
tooltip?: string | IMarkdownString;
|
|
69
|
+
// 状态栏项关联的命令ID
|
|
64
70
|
command?: string;
|
|
71
|
+
// 命令参数数组
|
|
65
72
|
arguments?: any[];
|
|
73
|
+
// 状态栏项的优先级
|
|
66
74
|
priority?: number;
|
|
75
|
+
// 状态栏项的图标类名称
|
|
67
76
|
iconClass?: string;
|
|
77
|
+
// 状态栏项的ARIA标签
|
|
68
78
|
ariaLabel?: string;
|
|
79
|
+
// 状态栏项的角色属性
|
|
69
80
|
role?: string;
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
81
|
+
// 状态栏项的位置,可以是左侧或右侧
|
|
82
|
+
side?: 'left' | 'right';
|
|
83
|
+
// 是否默认展示,可以通过右键菜单控制
|
|
73
84
|
hidden?: boolean;
|
|
74
|
-
|
|
75
|
-
* 鼠标移上去 Content 的内容
|
|
76
|
-
*/
|
|
85
|
+
// 鼠标移上去 Content 的内容
|
|
77
86
|
hoverContents?: StatusBarHoverContent[];
|
|
87
|
+
// 点击事件
|
|
78
88
|
onClick?: (e: any) => void;
|
|
79
89
|
}
|
|
80
90
|
|
|
@@ -2,6 +2,7 @@ import { Autowired, INJECTOR_TOKEN, Injectable, Injector } from '@opensumi/di';
|
|
|
2
2
|
import { URI } from '@opensumi/ide-core-common';
|
|
3
3
|
import { IElectronMainLifeCycleService, IElectronMainUIService } from '@opensumi/ide-core-common/lib/electron';
|
|
4
4
|
|
|
5
|
+
import { Logger } from '../logger';
|
|
5
6
|
import { AppConfig } from '../react-providers/config-provider';
|
|
6
7
|
import { IExternalUriService } from '../services';
|
|
7
8
|
import { electronEnv } from '../utils/electron';
|
|
@@ -16,6 +17,9 @@ export class WindowService implements IWindowService {
|
|
|
16
17
|
@Autowired(AppConfig)
|
|
17
18
|
private readonly appConfig: AppConfig;
|
|
18
19
|
|
|
20
|
+
@Autowired()
|
|
21
|
+
private logger: Logger;
|
|
22
|
+
|
|
19
23
|
openNewWindow(url: string, options?: NewWindowOptions): Window | undefined {
|
|
20
24
|
if (this.appConfig.isElectronRenderer) {
|
|
21
25
|
// Electron 环境下使用 shell.openExternal 方法打开外部 Uri
|
|
@@ -49,7 +53,34 @@ export class WindowService implements IWindowService {
|
|
|
49
53
|
});
|
|
50
54
|
}
|
|
51
55
|
} else {
|
|
52
|
-
|
|
56
|
+
try {
|
|
57
|
+
const workspaceUri = new URI(workspace.toString());
|
|
58
|
+
let workspacePath: string;
|
|
59
|
+
if (workspaceUri.scheme === 'file') {
|
|
60
|
+
workspacePath = workspaceUri.codeUri.fsPath;
|
|
61
|
+
} else {
|
|
62
|
+
workspacePath = workspaceUri.path.toString();
|
|
63
|
+
}
|
|
64
|
+
if (!workspacePath) {
|
|
65
|
+
throw new Error('Invalid workspace path');
|
|
66
|
+
}
|
|
67
|
+
const url = `${window.location.protocol}//${window.location.host}?workspaceDir=${encodeURIComponent(
|
|
68
|
+
workspacePath,
|
|
69
|
+
)}`;
|
|
70
|
+
this.logger.debug(`Opening workspace with URL: ${url}`);
|
|
71
|
+
if (options.newWindow) {
|
|
72
|
+
const newWindow = window.open(url);
|
|
73
|
+
if (!newWindow) {
|
|
74
|
+
this.logger.error('Failed to open new window');
|
|
75
|
+
throw new Error('Unable to open new window, please check if your browser blocks pop-ups');
|
|
76
|
+
}
|
|
77
|
+
} else {
|
|
78
|
+
parent.window.location.href = url;
|
|
79
|
+
}
|
|
80
|
+
} catch (error) {
|
|
81
|
+
this.logger.error('Failed to open workspace:', error);
|
|
82
|
+
throw error;
|
|
83
|
+
}
|
|
53
84
|
}
|
|
54
85
|
}
|
|
55
86
|
|