@theia/core 1.54.0 → 1.55.0-next.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -9
- package/lib/browser/catalog.json +158 -49
- package/lib/browser/frontend-application-module.d.ts.map +1 -1
- package/lib/browser/frontend-application-module.js +4 -0
- package/lib/browser/frontend-application-module.js.map +1 -1
- package/lib/browser/index.d.ts +1 -0
- package/lib/browser/index.d.ts.map +1 -1
- package/lib/browser/index.js +1 -0
- package/lib/browser/index.js.map +1 -1
- package/lib/browser/open-with-service.d.ts.map +1 -1
- package/lib/browser/open-with-service.js +4 -0
- package/lib/browser/open-with-service.js.map +1 -1
- package/lib/browser/widget-status-bar-service.d.ts +29 -0
- package/lib/browser/widget-status-bar-service.d.ts.map +1 -0
- package/lib/browser/widget-status-bar-service.js +81 -0
- package/lib/browser/widget-status-bar-service.js.map +1 -0
- package/lib/browser/widgets/split-widget.d.ts +2 -3
- package/lib/browser/widgets/split-widget.d.ts.map +1 -1
- package/lib/browser/widgets/split-widget.js +2 -2
- package/lib/browser/widgets/split-widget.js.map +1 -1
- package/lib/node/logger-cli-contribution.d.ts.map +1 -1
- package/lib/node/logger-cli-contribution.js +10 -8
- package/lib/node/logger-cli-contribution.js.map +1 -1
- package/package.json +6 -6
- package/shared/@parcel/watcher/index.d.ts +2 -0
- package/shared/@parcel/watcher/index.js +1 -0
- package/src/browser/frontend-application-module.ts +5 -0
- package/src/browser/index.ts +1 -0
- package/src/browser/open-with-service.ts +4 -0
- package/src/browser/style/tabs.css +55 -138
- package/src/browser/widget-status-bar-service.ts +84 -0
- package/src/browser/widgets/split-widget.ts +1 -2
- package/src/node/logger-cli-contribution.ts +10 -8
- package/shared/nsfw/index.d.ts +0 -2
- package/shared/nsfw/index.js +0 -1
|
@@ -1,16 +1,15 @@
|
|
|
1
|
-
import { Emitter } from 'vscode-languageserver-protocol';
|
|
2
1
|
import { ApplicationShell, StatefulWidget } from '../shell';
|
|
3
2
|
import { BaseWidget, Message, SplitPanel, Widget } from './widget';
|
|
4
3
|
import { CompositeSaveable, Saveable, SaveableSource } from '../saveable';
|
|
5
4
|
import { Navigatable } from '../navigatable-types';
|
|
6
|
-
import { URI } from '../../common';
|
|
5
|
+
import { Emitter, URI } from '../../common';
|
|
7
6
|
/**
|
|
8
7
|
* A widget containing a number of panes in a split layout.
|
|
9
8
|
*/
|
|
10
9
|
export declare class SplitWidget extends BaseWidget implements ApplicationShell.TrackableWidgetProvider, SaveableSource, Navigatable, StatefulWidget {
|
|
11
10
|
protected readonly splitPanel: SplitPanel;
|
|
12
11
|
protected readonly onDidChangeTrackableWidgetsEmitter: Emitter<Widget[]>;
|
|
13
|
-
readonly onDidChangeTrackableWidgets: import("
|
|
12
|
+
readonly onDidChangeTrackableWidgets: import("../../common").Event<Widget[]>;
|
|
14
13
|
protected readonly compositeSaveable: CompositeSaveable;
|
|
15
14
|
protected navigatable?: Navigatable;
|
|
16
15
|
constructor(options?: SplitPanel.IOptions & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"split-widget.d.ts","sourceRoot":"","sources":["../../../src/browser/widgets/split-widget.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"split-widget.d.ts","sourceRoot":"","sources":["../../../src/browser/widgets/split-widget.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,OAAO,EAAe,UAAU,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAE5C;;GAEG;AACH,qBAAa,WAAY,SAAQ,UAAW,YAAW,gBAAgB,CAAC,uBAAuB,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc;IAExI,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAE1C,SAAS,CAAC,QAAQ,CAAC,kCAAkC,oBAA2B;IAChF,QAAQ,CAAC,2BAA2B,yCAAiD;IAErF,SAAS,CAAC,QAAQ,CAAC,iBAAiB,oBAA2B;IAE/D,SAAS,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;gBAExB,OAAO,CAAC,EAAE,UAAU,CAAC,QAAQ,GAAG;QAAE,WAAW,CAAC,EAAE,WAAW,CAAA;KAAE;IA+BzE,IAAI,WAAW,IAAI,UAAU,CAAC,WAAW,CAExC;IAED,IAAI,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,EAE5C;IAED,aAAa,IAAI,MAAM,EAAE;IAIzB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAIvC,IAAI,OAAO,IAAI,SAAS,cAAc,EAAE,CAEvC;IAED,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAED,cAAc,IAAI,GAAG,GAAG,SAAS;IAIjC,eAAe,CAAC,WAAW,EAAE,GAAG,GAAG,GAAG,GAAG,SAAS;IAIlD,UAAU,IAAI,WAAW,CAAC,KAAK;IAI/B,YAAY,CAAC,QAAQ,EAAE,WAAW,CAAC,KAAK,GAAG,IAAI;IAa/C,IAAI,KAAK,IAAI,SAAS,MAAM,EAAE,CAE7B;IAED,mBAAmB,IAAI,MAAM,EAAE;IAI/B,SAAS,CAAC,6BAA6B,IAAI,IAAI;IAI/C,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI3B,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAI7C,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAOzC,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;cAOxB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;CAG3D;AAED,yBAAiB,WAAW,CAAC;IACzB,UAAiB,KAAK;QAClB,WAAW,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC;QACrC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;QAC3B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;KAC5B;CACJ"}
|
|
@@ -16,16 +16,16 @@
|
|
|
16
16
|
// *****************************************************************************
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
exports.SplitWidget = void 0;
|
|
19
|
-
const vscode_languageserver_protocol_1 = require("vscode-languageserver-protocol");
|
|
20
19
|
const widget_1 = require("./widget");
|
|
21
20
|
const saveable_1 = require("../saveable");
|
|
21
|
+
const common_1 = require("../../common");
|
|
22
22
|
/**
|
|
23
23
|
* A widget containing a number of panes in a split layout.
|
|
24
24
|
*/
|
|
25
25
|
class SplitWidget extends widget_1.BaseWidget {
|
|
26
26
|
constructor(options) {
|
|
27
27
|
super();
|
|
28
|
-
this.onDidChangeTrackableWidgetsEmitter = new
|
|
28
|
+
this.onDidChangeTrackableWidgetsEmitter = new common_1.Emitter();
|
|
29
29
|
this.onDidChangeTrackableWidgets = this.onDidChangeTrackableWidgetsEmitter.event;
|
|
30
30
|
this.compositeSaveable = new saveable_1.CompositeSaveable();
|
|
31
31
|
this.toDispose.pushAll([this.onDidChangeTrackableWidgetsEmitter]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"split-widget.js","sourceRoot":"","sources":["../../../src/browser/widgets/split-widget.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,6CAA6C;AAC7C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;
|
|
1
|
+
{"version":3,"file":"split-widget.js","sourceRoot":"","sources":["../../../src/browser/widgets/split-widget.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger-cli-contribution.d.ts","sourceRoot":"","sources":["../../src/node/logger-cli-contribution.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAGxC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAGjD,wCAAwC;AACxC,MAAM,WAAW,SAAS;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC;CAC3B;AAED;;;;GAIG;AACH,qBACa,uBAAwB,YAAW,eAAe;IAE3D,SAAS,CAAC,UAAU,EAAE,SAAS,CAAM;IAErC;;OAEG;IACH,SAAS,CAAC,gBAAgB,EAAE,QAAQ,CAAiB;IAErD,SAAS,CAAC,qBAAqB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAuB;IAErE,IAAI,eAAe,IAAI,QAAQ,CAE9B;IAED,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,IAAI;IAc3B,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"logger-cli-contribution.d.ts","sourceRoot":"","sources":["../../src/node/logger-cli-contribution.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAGxC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAGjD,wCAAwC;AACxC,MAAM,WAAW,SAAS;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC;CAC3B;AAED;;;;GAIG;AACH,qBACa,uBAAwB,YAAW,eAAe;IAE3D,SAAS,CAAC,UAAU,EAAE,SAAS,CAAM;IAErC;;OAEG;IACH,SAAS,CAAC,gBAAgB,EAAE,QAAQ,CAAiB;IAErD,SAAS,CAAC,qBAAqB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAuB;IAErE,IAAI,eAAe,IAAI,QAAQ,CAE9B;IAED,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,IAAI;IAc3B,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;cAsBxC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAsBnD,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BnE,IAAI,kBAAkB,IAAI,KAAK,CAAC,IAAI,CAAC,CAEpC;IAED,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ;IAUzC;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,QAAQ;CASrF"}
|
|
@@ -20,7 +20,7 @@ const tslib_1 = require("tslib");
|
|
|
20
20
|
const inversify_1 = require("inversify");
|
|
21
21
|
const logger_1 = require("../common/logger");
|
|
22
22
|
const fs = require("fs-extra");
|
|
23
|
-
const
|
|
23
|
+
const watcher_1 = require("@parcel/watcher");
|
|
24
24
|
const event_1 = require("../common/event");
|
|
25
25
|
const path = require("path");
|
|
26
26
|
/**
|
|
@@ -74,13 +74,17 @@ let LogLevelCliContribution = class LogLevelCliContribution {
|
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
|
-
watchLogConfigFile(filename) {
|
|
78
|
-
|
|
77
|
+
async watchLogConfigFile(filename) {
|
|
78
|
+
await (0, watcher_1.subscribe)(filename, async (err, events) => {
|
|
79
|
+
if (err) {
|
|
80
|
+
console.log(`Error during log file watching ${filename}: ${err}`);
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
79
83
|
try {
|
|
80
84
|
for (const event of events) {
|
|
81
|
-
switch (event.
|
|
82
|
-
case
|
|
83
|
-
case
|
|
85
|
+
switch (event.type) {
|
|
86
|
+
case 'create':
|
|
87
|
+
case 'update':
|
|
84
88
|
await this.slurpLogConfigFile(filename);
|
|
85
89
|
this.logConfigChangedEvent.fire(undefined);
|
|
86
90
|
break;
|
|
@@ -90,8 +94,6 @@ let LogLevelCliContribution = class LogLevelCliContribution {
|
|
|
90
94
|
catch (e) {
|
|
91
95
|
console.error(`Error reading log config file ${filename}: ${e}`);
|
|
92
96
|
}
|
|
93
|
-
}).then((watcher) => {
|
|
94
|
-
watcher.start();
|
|
95
97
|
});
|
|
96
98
|
}
|
|
97
99
|
async slurpLogConfigFile(filename) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger-cli-contribution.js","sourceRoot":"","sources":["../../src/node/logger-cli-contribution.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAGhF,yCAAuC;AACvC,6CAA4C;AAE5C,+BAA+B;AAC/B,
|
|
1
|
+
{"version":3,"file":"logger-cli-contribution.js","sourceRoot":"","sources":["../../src/node/logger-cli-contribution.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/core",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.55.0-next.14+d999fe031",
|
|
4
4
|
"description": "Theia is a cloud & desktop IDE framework implemented in TypeScript.",
|
|
5
5
|
"main": "lib/common/index.js",
|
|
6
6
|
"typings": "lib/common/index.d.ts",
|
|
7
7
|
"dependencies": {
|
|
8
8
|
"@babel/runtime": "^7.10.0",
|
|
9
|
+
"@parcel/watcher": "^2.4.1",
|
|
9
10
|
"@phosphor/algorithm": "1",
|
|
10
11
|
"@phosphor/commands": "1",
|
|
11
12
|
"@phosphor/coreutils": "1",
|
|
@@ -16,8 +17,8 @@
|
|
|
16
17
|
"@phosphor/signaling": "1",
|
|
17
18
|
"@phosphor/virtualdom": "1",
|
|
18
19
|
"@phosphor/widgets": "1",
|
|
19
|
-
"@theia/application-package": "1.
|
|
20
|
-
"@theia/request": "1.
|
|
20
|
+
"@theia/application-package": "1.55.0-next.14+d999fe031",
|
|
21
|
+
"@theia/request": "1.55.0-next.14+d999fe031",
|
|
21
22
|
"@types/body-parser": "^1.16.4",
|
|
22
23
|
"@types/cookie": "^0.3.3",
|
|
23
24
|
"@types/dompurify": "^2.2.2",
|
|
@@ -57,7 +58,6 @@
|
|
|
57
58
|
"lodash.throttle": "^4.1.1",
|
|
58
59
|
"markdown-it": "^12.3.2",
|
|
59
60
|
"msgpackr": "^1.10.2",
|
|
60
|
-
"nsfw": "^2.2.4",
|
|
61
61
|
"p-debounce": "^2.1.0",
|
|
62
62
|
"perfect-scrollbar": "^1.3.0",
|
|
63
63
|
"react": "^18.2.0",
|
|
@@ -119,11 +119,11 @@
|
|
|
119
119
|
"vscode-uri"
|
|
120
120
|
],
|
|
121
121
|
"export =": [
|
|
122
|
+
"@parcel/watcher as parcelWatcher",
|
|
122
123
|
"dompurify as DOMPurify",
|
|
123
124
|
"express",
|
|
124
125
|
"lodash.debounce as debounce",
|
|
125
126
|
"lodash.throttle as throttle",
|
|
126
|
-
"nsfw",
|
|
127
127
|
"markdown-it as markdownit",
|
|
128
128
|
"react as React",
|
|
129
129
|
"ws as WebSocket",
|
|
@@ -218,5 +218,5 @@
|
|
|
218
218
|
"nyc": {
|
|
219
219
|
"extends": "../../configs/nyc.json"
|
|
220
220
|
},
|
|
221
|
-
"gitHead": "
|
|
221
|
+
"gitHead": "d999fe0315a29bc5b154067621dbc1eb180fa567"
|
|
222
222
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require('@parcel/watcher');
|
|
@@ -144,6 +144,7 @@ import { bindTreePreferences } from './tree';
|
|
|
144
144
|
import { OpenWithService } from './open-with-service';
|
|
145
145
|
import { ViewColumnService } from './shell/view-column-service';
|
|
146
146
|
import { DomInputUndoRedoHandler, UndoRedoHandler, UndoRedoHandlerService } from './undo-redo-handler';
|
|
147
|
+
import { WidgetStatusBarContribution, WidgetStatusBarService } from './widget-status-bar-service';
|
|
147
148
|
|
|
148
149
|
export { bindResourceProvider, bindMessageService, bindPreferenceService };
|
|
149
150
|
|
|
@@ -471,4 +472,8 @@ export const frontendApplicationModule = new ContainerModule((bind, _unbind, _is
|
|
|
471
472
|
bindContributionProvider(bind, UndoRedoHandler);
|
|
472
473
|
bind(DomInputUndoRedoHandler).toSelf().inSingletonScope();
|
|
473
474
|
bind(UndoRedoHandler).toService(DomInputUndoRedoHandler);
|
|
475
|
+
|
|
476
|
+
bind(WidgetStatusBarService).toSelf().inSingletonScope();
|
|
477
|
+
bind(FrontendApplicationContribution).toService(WidgetStatusBarService);
|
|
478
|
+
bindContributionProvider(bind, WidgetStatusBarContribution);
|
|
474
479
|
});
|
package/src/browser/index.ts
CHANGED
|
@@ -77,6 +77,10 @@ export class OpenWithService {
|
|
|
77
77
|
protected readonly handlers: OpenWithHandler[] = [];
|
|
78
78
|
|
|
79
79
|
registerHandler(handler: OpenWithHandler): Disposable {
|
|
80
|
+
if (this.handlers.some(h => h.id === handler.id)) {
|
|
81
|
+
console.warn('Duplicate OpenWithHandler registration: ' + handler.id);
|
|
82
|
+
return Disposable.NULL;
|
|
83
|
+
}
|
|
80
84
|
this.handlers.push(handler);
|
|
81
85
|
return Disposable.create(() => {
|
|
82
86
|
const index = this.handlers.indexOf(handler);
|
|
@@ -9,10 +9,7 @@
|
|
|
9
9
|
--theia-private-horizontal-tab-scrollbar-height: 5px;
|
|
10
10
|
--theia-tabbar-toolbar-z-index: 1001;
|
|
11
11
|
--theia-toolbar-active-transform-scale: 1.272019649;
|
|
12
|
-
--theia-horizontal-toolbar-height: calc(
|
|
13
|
-
var(--theia-private-horizontal-tab-height) +
|
|
14
|
-
var(--theia-private-horizontal-tab-scrollbar-rail-height) / 2
|
|
15
|
-
);
|
|
12
|
+
--theia-horizontal-toolbar-height: calc(var(--theia-private-horizontal-tab-height) + var(--theia-private-horizontal-tab-scrollbar-rail-height) / 2);
|
|
16
13
|
--theia-dragover-tab-border-width: 2px;
|
|
17
14
|
}
|
|
18
15
|
|
|
@@ -75,9 +72,7 @@
|
|
|
75
72
|
border-left: var(--theia-border-width) solid var(--theia-editorGroup-border);
|
|
76
73
|
}
|
|
77
74
|
|
|
78
|
-
#theia-main-content-panel
|
|
79
|
-
.p-DockPanel-handle[data-orientation="vertical"]
|
|
80
|
-
+ .p-TabBar {
|
|
75
|
+
#theia-main-content-panel .p-DockPanel-handle[data-orientation="vertical"]+.p-TabBar {
|
|
81
76
|
border-top: var(--theia-border-width) solid var(--theia-editorGroup-border);
|
|
82
77
|
}
|
|
83
78
|
|
|
@@ -142,11 +137,9 @@
|
|
|
142
137
|
|
|
143
138
|
-webkit-appearance: none;
|
|
144
139
|
-moz-appearance: none;
|
|
145
|
-
background-image: linear-gradient(
|
|
146
|
-
45deg,
|
|
140
|
+
background-image: linear-gradient(45deg,
|
|
147
141
|
transparent 50%,
|
|
148
|
-
var(--theia-icon-foreground) 50%
|
|
149
|
-
),
|
|
142
|
+
var(--theia-icon-foreground) 50%),
|
|
150
143
|
linear-gradient(135deg, var(--theia-icon-foreground) 50%, transparent 50%);
|
|
151
144
|
background-position: calc(100% - 6px) 8px, calc(100% - 2px) 8px, 100% 0;
|
|
152
145
|
background-size: 4px 5px;
|
|
@@ -225,12 +218,8 @@
|
|
|
225
218
|
visibility: hidden;
|
|
226
219
|
}
|
|
227
220
|
|
|
228
|
-
.p-TabBar.theia-app-centers
|
|
229
|
-
|
|
230
|
-
> .p-TabBar-tabCloseIcon,
|
|
231
|
-
.p-TabBar.theia-app-centers
|
|
232
|
-
.p-TabBar-tab.theia-mod-pinned
|
|
233
|
-
> .p-TabBar-tabCloseIcon {
|
|
221
|
+
.p-TabBar.theia-app-centers .p-TabBar-tab.p-mod-closable>.p-TabBar-tabCloseIcon,
|
|
222
|
+
.p-TabBar.theia-app-centers .p-TabBar-tab.theia-mod-pinned>.p-TabBar-tabCloseIcon {
|
|
234
223
|
padding: 2px;
|
|
235
224
|
margin-top: 2px;
|
|
236
225
|
margin-left: 4px;
|
|
@@ -248,31 +237,19 @@
|
|
|
248
237
|
-ms-user-select: none;
|
|
249
238
|
}
|
|
250
239
|
|
|
251
|
-
.p-TabBar.theia-app-centers.dynamic-tabs
|
|
252
|
-
|
|
253
|
-
> .p-TabBar-tabCloseIcon,
|
|
254
|
-
.p-TabBar.theia-app-centers.dynamic-tabs
|
|
255
|
-
.p-TabBar-tab.theia-mod-pinned
|
|
256
|
-
> .p-TabBar-tabCloseIcon {
|
|
240
|
+
.p-TabBar.theia-app-centers.dynamic-tabs .p-TabBar-tab.p-mod-closable>.p-TabBar-tabCloseIcon,
|
|
241
|
+
.p-TabBar.theia-app-centers.dynamic-tabs .p-TabBar-tab.theia-mod-pinned>.p-TabBar-tabCloseIcon {
|
|
257
242
|
/* hide close icon for dynamic tabs strategy*/
|
|
258
243
|
display: none;
|
|
259
244
|
}
|
|
260
245
|
|
|
261
|
-
.p-TabBar.theia-app-centers
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
.p-TabBar.theia-app-centers
|
|
265
|
-
.p-TabBar-tab:hover.p-mod-closable
|
|
266
|
-
> .p-TabBar-tabCloseIcon,
|
|
267
|
-
.p-TabBar.theia-app-centers
|
|
268
|
-
.p-TabBar-tab:hover.theia-mod-pinned
|
|
269
|
-
> .p-TabBar-tabCloseIcon {
|
|
246
|
+
.p-TabBar.theia-app-centers .p-TabBar-tab.p-mod-current>.p-TabBar-tabCloseIcon,
|
|
247
|
+
.p-TabBar.theia-app-centers .p-TabBar-tab:hover.p-mod-closable>.p-TabBar-tabCloseIcon,
|
|
248
|
+
.p-TabBar.theia-app-centers .p-TabBar-tab:hover.theia-mod-pinned>.p-TabBar-tabCloseIcon {
|
|
270
249
|
display: inline-block;
|
|
271
250
|
}
|
|
272
251
|
|
|
273
|
-
.p-TabBar.theia-app-centers
|
|
274
|
-
.p-TabBar-tab.p-mod-closable
|
|
275
|
-
> .p-TabBar-tabCloseIcon:hover {
|
|
252
|
+
.p-TabBar.theia-app-centers .p-TabBar-tab.p-mod-closable>.p-TabBar-tabCloseIcon:hover {
|
|
276
253
|
border-radius: 5px;
|
|
277
254
|
background-color: rgba(50%, 50%, 50%, 0.2);
|
|
278
255
|
}
|
|
@@ -282,33 +259,21 @@
|
|
|
282
259
|
padding-right: 4px;
|
|
283
260
|
}
|
|
284
261
|
|
|
285
|
-
.p-TabBar.theia-app-centers
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
.p-TabBar.theia-app-centers
|
|
289
|
-
.p-TabBar-tab.p-mod-closable:not(.theia-mod-dirty).p-TabBar-tab.p-mod-current
|
|
290
|
-
> .p-TabBar-tabCloseIcon:before,
|
|
291
|
-
.p-TabBar.theia-app-centers
|
|
292
|
-
.p-TabBar-tab.p-mod-closable.theia-mod-dirty
|
|
293
|
-
> .p-TabBar-tabCloseIcon:hover:before {
|
|
262
|
+
.p-TabBar.theia-app-centers .p-TabBar-tab.p-mod-closable:not(.theia-mod-dirty):hover>.p-TabBar-tabCloseIcon:before,
|
|
263
|
+
.p-TabBar.theia-app-centers .p-TabBar-tab.p-mod-closable:not(.theia-mod-dirty).p-TabBar-tab.p-mod-current>.p-TabBar-tabCloseIcon:before,
|
|
264
|
+
.p-TabBar.theia-app-centers .p-TabBar-tab.p-mod-closable.theia-mod-dirty>.p-TabBar-tabCloseIcon:hover:before {
|
|
294
265
|
content: "\ea76";
|
|
295
266
|
}
|
|
296
267
|
|
|
297
|
-
.p-TabBar.theia-app-centers
|
|
298
|
-
.p-TabBar-tab.p-mod-closable.theia-mod-dirty
|
|
299
|
-
> .p-TabBar-tabCloseIcon:before {
|
|
268
|
+
.p-TabBar.theia-app-centers .p-TabBar-tab.p-mod-closable.theia-mod-dirty>.p-TabBar-tabCloseIcon:before {
|
|
300
269
|
content: "\ea71";
|
|
301
270
|
}
|
|
302
271
|
|
|
303
|
-
.p-TabBar.theia-app-centers
|
|
304
|
-
.p-TabBar-tab.theia-mod-pinned
|
|
305
|
-
> .p-TabBar-tabCloseIcon:before {
|
|
272
|
+
.p-TabBar.theia-app-centers .p-TabBar-tab.theia-mod-pinned>.p-TabBar-tabCloseIcon:before {
|
|
306
273
|
content: "\eba0";
|
|
307
274
|
}
|
|
308
275
|
|
|
309
|
-
.p-TabBar.theia-app-centers
|
|
310
|
-
.p-TabBar-tab.theia-mod-pinned.theia-mod-dirty
|
|
311
|
-
> .p-TabBar-tabCloseIcon:before {
|
|
276
|
+
.p-TabBar.theia-app-centers .p-TabBar-tab.theia-mod-pinned.theia-mod-dirty>.p-TabBar-tabCloseIcon:before {
|
|
312
277
|
content: "\ebb2";
|
|
313
278
|
}
|
|
314
279
|
|
|
@@ -351,72 +316,35 @@
|
|
|
351
316
|
| Perfect scrollbar
|
|
352
317
|
|----------------------------------------------------------------------------*/
|
|
353
318
|
|
|
354
|
-
.p-TabBar[data-orientation="horizontal"]
|
|
355
|
-
.p-TabBar-content-container
|
|
356
|
-
> .ps__rail-x {
|
|
319
|
+
.p-TabBar[data-orientation="horizontal"] .p-TabBar-content-container>.ps__rail-x {
|
|
357
320
|
height: var(--theia-private-horizontal-tab-scrollbar-rail-height);
|
|
358
321
|
z-index: 1000;
|
|
359
322
|
}
|
|
360
323
|
|
|
361
|
-
.p-TabBar[data-orientation="horizontal"]
|
|
362
|
-
.p-TabBar-content-container
|
|
363
|
-
> .ps__rail-x
|
|
364
|
-
> .ps__thumb-x {
|
|
324
|
+
.p-TabBar[data-orientation="horizontal"] .p-TabBar-content-container>.ps__rail-x>.ps__thumb-x {
|
|
365
325
|
height: var(--theia-private-horizontal-tab-scrollbar-height) !important;
|
|
366
|
-
bottom: calc(
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
);
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
.p-TabBar[data-orientation="horizontal"]
|
|
375
|
-
.p-TabBar-content-container
|
|
376
|
-
> .ps__rail-x:hover,
|
|
377
|
-
.p-TabBar[data-orientation="horizontal"]
|
|
378
|
-
.p-TabBar-content-container
|
|
379
|
-
> .ps__rail-x:focus {
|
|
326
|
+
bottom: calc((var(--theia-private-horizontal-tab-scrollbar-rail-height) - var(--theia-private-horizontal-tab-scrollbar-height)) / 2);
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
.p-TabBar[data-orientation="horizontal"] .p-TabBar-content-container>.ps__rail-x:hover,
|
|
330
|
+
.p-TabBar[data-orientation="horizontal"] .p-TabBar-content-container>.ps__rail-x:focus {
|
|
380
331
|
height: var(--theia-private-horizontal-tab-scrollbar-rail-height) !important;
|
|
381
332
|
}
|
|
382
333
|
|
|
383
|
-
.p-TabBar[data-orientation="horizontal"]
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
> .ps__thumb-x {
|
|
391
|
-
height: calc(
|
|
392
|
-
var(--theia-private-horizontal-tab-scrollbar-height) / 2
|
|
393
|
-
) !important;
|
|
394
|
-
bottom: calc(
|
|
395
|
-
(
|
|
396
|
-
var(--theia-private-horizontal-tab-scrollbar-rail-height) -
|
|
397
|
-
var(--theia-private-horizontal-tab-scrollbar-height)
|
|
398
|
-
) / 2
|
|
399
|
-
);
|
|
400
|
-
}
|
|
401
|
-
|
|
402
|
-
.p-TabBar[data-orientation="vertical"]
|
|
403
|
-
.p-TabBar-content-container
|
|
404
|
-
> .ps__rail-y {
|
|
334
|
+
.p-TabBar[data-orientation="horizontal"] .p-TabBar-content-container>.ps__rail-x:hover>.ps__thumb-x,
|
|
335
|
+
.p-TabBar[data-orientation="horizontal"] .p-TabBar-content-container>.ps__rail-x:focus>.ps__thumb-x {
|
|
336
|
+
height: calc(var(--theia-private-horizontal-tab-scrollbar-height) / 2) !important;
|
|
337
|
+
bottom: calc((var(--theia-private-horizontal-tab-scrollbar-rail-height) - var(--theia-private-horizontal-tab-scrollbar-height)) / 2);
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
.p-TabBar[data-orientation="vertical"] .p-TabBar-content-container>.ps__rail-y {
|
|
405
341
|
width: var(--theia-private-horizontal-tab-scrollbar-rail-height);
|
|
406
342
|
z-index: 1000;
|
|
407
343
|
}
|
|
408
344
|
|
|
409
|
-
.p-TabBar[data-orientation="vertical"]
|
|
410
|
-
.p-TabBar-content-container
|
|
411
|
-
> .ps__rail-y
|
|
412
|
-
> .ps__thumb-y {
|
|
345
|
+
.p-TabBar[data-orientation="vertical"] .p-TabBar-content-container>.ps__rail-y>.ps__thumb-y {
|
|
413
346
|
width: var(--theia-private-horizontal-tab-scrollbar-height) !important;
|
|
414
|
-
right: calc(
|
|
415
|
-
(
|
|
416
|
-
var(--theia-private-horizontal-tab-scrollbar-rail-height) -
|
|
417
|
-
var(--theia-private-horizontal-tab-scrollbar-height)
|
|
418
|
-
) / 2
|
|
419
|
-
);
|
|
347
|
+
right: calc((var(--theia-private-horizontal-tab-scrollbar-rail-height) - var(--theia-private-horizontal-tab-scrollbar-height)) / 2);
|
|
420
348
|
}
|
|
421
349
|
|
|
422
350
|
.p-TabBar[data-orientation="vertical"] .p-TabBar-content-container {
|
|
@@ -447,9 +375,8 @@
|
|
|
447
375
|
|----------------------------------------------------------------------------*/
|
|
448
376
|
|
|
449
377
|
.p-TabBar-toolbar {
|
|
450
|
-
z-index: var(
|
|
451
|
-
|
|
452
|
-
); /* Due to the scrollbar (`z-index: 1000;`) it has a greater `z-index`. */
|
|
378
|
+
z-index: var(--theia-tabbar-toolbar-z-index);
|
|
379
|
+
/* Due to the scrollbar (`z-index: 1000;`) it has a greater `z-index`. */
|
|
453
380
|
display: flex;
|
|
454
381
|
flex-direction: row-reverse;
|
|
455
382
|
padding: 4px;
|
|
@@ -460,7 +387,8 @@
|
|
|
460
387
|
.p-TabBar-content-container {
|
|
461
388
|
display: flex;
|
|
462
389
|
flex: 1;
|
|
463
|
-
position: relative;
|
|
390
|
+
position: relative;
|
|
391
|
+
/* This is necessary for perfect-scrollbar */
|
|
464
392
|
}
|
|
465
393
|
|
|
466
394
|
.p-TabBar-toolbar .item {
|
|
@@ -473,7 +401,7 @@
|
|
|
473
401
|
}
|
|
474
402
|
|
|
475
403
|
.p-TabBar-toolbar .item>div {
|
|
476
|
-
|
|
404
|
+
height: 100%;
|
|
477
405
|
}
|
|
478
406
|
|
|
479
407
|
.p-TabBar-toolbar .item.enabled {
|
|
@@ -491,14 +419,14 @@
|
|
|
491
419
|
background-color: var(--theia-inputOption-activeBackground);
|
|
492
420
|
}
|
|
493
421
|
|
|
494
|
-
.p-TabBar-toolbar .item
|
|
495
|
-
line-height: calc(var(--theia-icon-size)+2px);
|
|
496
|
-
height: calc(var(--theia-icon-size)+2px);
|
|
422
|
+
.p-TabBar-toolbar .item>div {
|
|
423
|
+
line-height: calc(var(--theia-icon-size) + 2px);
|
|
424
|
+
height: calc(var(--theia-icon-size) + 2px);
|
|
497
425
|
background-repeat: no-repeat;
|
|
498
426
|
line-height: 18px;
|
|
499
427
|
}
|
|
500
428
|
|
|
501
|
-
.p-TabBar-toolbar .item
|
|
429
|
+
.p-TabBar-toolbar .item>div.no-icon {
|
|
502
430
|
/* Make room for a text label instead of an icon. */
|
|
503
431
|
width: 100%;
|
|
504
432
|
}
|
|
@@ -532,9 +460,7 @@
|
|
|
532
460
|
vertical-align: bottom;
|
|
533
461
|
}
|
|
534
462
|
|
|
535
|
-
#theia-main-content-panel
|
|
536
|
-
.p-TabBar:not(.theia-tabBar-active)
|
|
537
|
-
.p-TabBar-toolbar {
|
|
463
|
+
#theia-main-content-panel .p-TabBar:not(.theia-tabBar-active) .p-TabBar-toolbar {
|
|
538
464
|
display: none;
|
|
539
465
|
}
|
|
540
466
|
|
|
@@ -543,9 +469,7 @@
|
|
|
543
469
|
}
|
|
544
470
|
|
|
545
471
|
.p-TabBar.theia-tabBar-multirow[data-orientation="horizontal"] {
|
|
546
|
-
min-height: calc(
|
|
547
|
-
var(--theia-breadcrumbs-height) + var(--theia-horizontal-toolbar-height)
|
|
548
|
-
);
|
|
472
|
+
min-height: calc(var(--theia-breadcrumbs-height) + var(--theia-horizontal-toolbar-height));
|
|
549
473
|
flex-direction: column;
|
|
550
474
|
}
|
|
551
475
|
|
|
@@ -569,19 +493,14 @@
|
|
|
569
493
|
flex-direction: column;
|
|
570
494
|
}
|
|
571
495
|
|
|
572
|
-
.p-TabBar.theia-app-centers[data-orientation="horizontal"].dynamic-tabs
|
|
573
|
-
.p-TabBar-tabLabel {
|
|
496
|
+
.p-TabBar.theia-app-centers[data-orientation="horizontal"].dynamic-tabs .p-TabBar-tabLabel {
|
|
574
497
|
/* fade out text with dynamic tabs strategy */
|
|
575
|
-
mask-image: linear-gradient(
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
to left,
|
|
582
|
-
rgba(0, 0, 0, 0.3),
|
|
583
|
-
rgba(0, 0, 0, 1) 15px
|
|
584
|
-
);
|
|
498
|
+
mask-image: linear-gradient(to left,
|
|
499
|
+
rgba(0, 0, 0, 0.3),
|
|
500
|
+
rgba(0, 0, 0, 1) 15px);
|
|
501
|
+
-webkit-mask-image: linear-gradient(to left,
|
|
502
|
+
rgba(0, 0, 0, 0.3),
|
|
503
|
+
rgba(0, 0, 0, 1) 15px);
|
|
585
504
|
flex: 1;
|
|
586
505
|
}
|
|
587
506
|
|
|
@@ -625,13 +544,11 @@
|
|
|
625
544
|
/*-----------------------------------------------------------------------------
|
|
626
545
|
| Open tabs dropdown
|
|
627
546
|
|----------------------------------------------------------------------------*/
|
|
628
|
-
.theia-tabBar-open-tabs
|
|
629
|
-
> .theia-select-component
|
|
630
|
-
.theia-select-component-label {
|
|
547
|
+
.theia-tabBar-open-tabs>.theia-select-component .theia-select-component-label {
|
|
631
548
|
display: none;
|
|
632
549
|
}
|
|
633
550
|
|
|
634
|
-
.theia-tabBar-open-tabs
|
|
551
|
+
.theia-tabBar-open-tabs>.theia-select-component {
|
|
635
552
|
min-width: auto;
|
|
636
553
|
height: 100%;
|
|
637
554
|
}
|
|
@@ -644,4 +561,4 @@
|
|
|
644
561
|
|
|
645
562
|
.theia-tabBar-open-tabs.p-mod-hidden {
|
|
646
563
|
display: none;
|
|
647
|
-
}
|
|
564
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2024 TypeFox and others.
|
|
3
|
+
//
|
|
4
|
+
// This program and the accompanying materials are made available under the
|
|
5
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
//
|
|
8
|
+
// This Source Code may also be made available under the following Secondary
|
|
9
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
// with the GNU Classpath Exception which is available at
|
|
12
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
//
|
|
14
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
|
|
17
|
+
import { inject, injectable, named } from 'inversify';
|
|
18
|
+
import { Widget } from './widgets';
|
|
19
|
+
import { StatusBar } from './status-bar';
|
|
20
|
+
import { FrontendApplicationContribution } from './frontend-application-contribution';
|
|
21
|
+
import { ContributionProvider } from '../common';
|
|
22
|
+
import { FrontendApplication } from './frontend-application';
|
|
23
|
+
|
|
24
|
+
export const WidgetStatusBarContribution = Symbol('WidgetStatusBarContribution');
|
|
25
|
+
|
|
26
|
+
export interface WidgetStatusBarContribution<T extends Widget> {
|
|
27
|
+
canHandle(widget: Widget): widget is T;
|
|
28
|
+
activate(statusBar: StatusBar, widget: T): void;
|
|
29
|
+
deactivate(statusBar: StatusBar): void;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Creates an empty {@link WidgetStatusBarContribution} that does nothing.
|
|
34
|
+
* Useful for widgets that are not handled by any other contribution, for example:
|
|
35
|
+
* * Settings widget
|
|
36
|
+
* * Welcome widget
|
|
37
|
+
* * Webview widget
|
|
38
|
+
*
|
|
39
|
+
* @param prototype Prototype to identify the kind of the widget.
|
|
40
|
+
* @returns An empty {@link WidgetStatusBarContribution}.
|
|
41
|
+
*/
|
|
42
|
+
export function noopWidgetStatusBarContribution(prototype: Function): WidgetStatusBarContribution<Widget> {
|
|
43
|
+
return {
|
|
44
|
+
canHandle(widget: Widget): widget is Widget {
|
|
45
|
+
return widget instanceof prototype;
|
|
46
|
+
},
|
|
47
|
+
activate: () => { },
|
|
48
|
+
deactivate: () => { }
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
@injectable()
|
|
53
|
+
export class WidgetStatusBarService implements FrontendApplicationContribution {
|
|
54
|
+
|
|
55
|
+
@inject(ContributionProvider) @named(WidgetStatusBarContribution)
|
|
56
|
+
protected readonly contributionProvider: ContributionProvider<WidgetStatusBarContribution<Widget>>;
|
|
57
|
+
|
|
58
|
+
@inject(StatusBar)
|
|
59
|
+
protected readonly statusBar: StatusBar;
|
|
60
|
+
|
|
61
|
+
onStart(app: FrontendApplication): void {
|
|
62
|
+
app.shell.onDidChangeCurrentWidget(event => {
|
|
63
|
+
if (event.newValue) {
|
|
64
|
+
this.show(event.newValue);
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
protected show(widget: Widget): void {
|
|
70
|
+
const contributions = this.contributionProvider.getContributions();
|
|
71
|
+
// If any contribution can handle the widget, activate it
|
|
72
|
+
// If none can, keep everything as is
|
|
73
|
+
if (contributions.some(contribution => contribution.canHandle(widget))) {
|
|
74
|
+
for (const contribution of contributions) {
|
|
75
|
+
// Deactivate all contributions
|
|
76
|
+
contribution.deactivate(this.statusBar);
|
|
77
|
+
if (contribution.canHandle(widget)) {
|
|
78
|
+
// Selectively re-activate them
|
|
79
|
+
contribution.activate(this.statusBar, widget);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|