@theia/workspace 1.77.0-next.57 → 1.77.0-next.63

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.
@@ -0,0 +1,232 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 STMicroelectronics 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-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const tslib_1 = require("tslib");
19
+ const jsdom_1 = require("@theia/core/lib/browser/test/jsdom");
20
+ let disableJSDOM = (0, jsdom_1.enableJSDOM)();
21
+ const frontend_application_config_provider_1 = require("@theia/core/lib/browser/frontend-application-config-provider");
22
+ frontend_application_config_provider_1.FrontendApplicationConfigProvider.set({});
23
+ const chai_1 = require("chai");
24
+ const uri_1 = tslib_1.__importDefault(require("@theia/core/lib/common/uri"));
25
+ const os_1 = require("@theia/core/lib/common/os");
26
+ const files_1 = require("@theia/filesystem/lib/common/files");
27
+ const workspace_service_1 = require("./workspace-service");
28
+ disableJSDOM();
29
+ describe('WorkspaceService root names', () => {
30
+ let originalIsWindows;
31
+ before(() => {
32
+ disableJSDOM = (0, jsdom_1.enableJSDOM)();
33
+ });
34
+ after(() => {
35
+ disableJSDOM();
36
+ });
37
+ beforeEach(() => {
38
+ // Paths outside the workspace are rendered with `Path.fsPath()`, which branches on the backend OS.
39
+ originalIsWindows = os_1.OS.backend.isWindows;
40
+ os_1.OS.backend.isWindows = false;
41
+ });
42
+ afterEach(() => {
43
+ os_1.OS.backend.isWindows = originalIsWindows;
44
+ });
45
+ const workspaceWith = (...roots) => Object.create(workspace_service_1.WorkspaceService.prototype, {
46
+ tryGetRoots: { value: () => roots.map(root => ({ resource: new uri_1.default(root), isDirectory: true })) }
47
+ });
48
+ const namesOf = (service) => Object.fromEntries(Array.from(service.getRootNames(), ([name, uri]) => [name, uri.toString()]));
49
+ describe('getRootNames', () => {
50
+ it('names each root after its basename', () => {
51
+ (0, chai_1.expect)(namesOf(workspaceWith('file:///home/user/frontend', 'file:///home/user/backend'))).to.deep.equal({
52
+ frontend: 'file:///home/user/frontend',
53
+ backend: 'file:///home/user/backend'
54
+ });
55
+ });
56
+ it('names all roots sharing a basename by the shortest tail that tells them apart', () => {
57
+ (0, chai_1.expect)(namesOf(workspaceWith('file:///bob/app', 'file:///alice/app', 'file:///home/other'))).to.deep.equal({
58
+ 'bob/app': 'file:///bob/app',
59
+ 'alice/app': 'file:///alice/app',
60
+ other: 'file:///home/other'
61
+ });
62
+ });
63
+ it('uses as many parent segments as needed', () => {
64
+ (0, chai_1.expect)(namesOf(workspaceWith('file:///a/src/app', 'file:///b/src/app', 'file:///b/lib/app'))).to.deep.equal({
65
+ 'a/src/app': 'file:///a/src/app',
66
+ 'b/src/app': 'file:///b/src/app',
67
+ 'lib/app': 'file:///b/lib/app'
68
+ });
69
+ });
70
+ it('names a root with a shorter path than its peer by its whole path', () => {
71
+ (0, chai_1.expect)(namesOf(workspaceWith('file:///app', 'file:///x/app'))).to.deep.equal({
72
+ app: 'file:///app',
73
+ 'x/app': 'file:///x/app'
74
+ });
75
+ });
76
+ it('qualifies a name that another root name starts with', () => {
77
+ (0, chai_1.expect)(namesOf(workspaceWith('file:///work/alice', 'file:///home/alice/app', 'file:///home/bob/app'))).to.deep.equal({
78
+ 'work/alice': 'file:///work/alice',
79
+ 'alice/app': 'file:///home/alice/app',
80
+ 'bob/app': 'file:///home/bob/app'
81
+ });
82
+ });
83
+ it('qualifies the longer name if the shorter one is a whole path', () => {
84
+ (0, chai_1.expect)(namesOf(workspaceWith('file:///alice', 'file:///home/alice/app', 'file:///home/bob/app'))).to.deep.equal({
85
+ alice: 'file:///alice',
86
+ 'home/alice/app': 'file:///home/alice/app',
87
+ 'bob/app': 'file:///home/bob/app'
88
+ });
89
+ });
90
+ it('does not qualify a name that the name of a root nested in it starts with', () => {
91
+ (0, chai_1.expect)(namesOf(workspaceWith('file:///ws/x', 'file:///ws/x/app', 'file:///other/app'))).to.deep.equal({
92
+ x: 'file:///ws/x',
93
+ 'x/app': 'file:///ws/x/app',
94
+ 'other/app': 'file:///other/app'
95
+ });
96
+ });
97
+ it('does not depend on the order of the roots', () => {
98
+ (0, chai_1.expect)(namesOf(workspaceWith('file:///alice/app', 'file:///bob/app')))
99
+ .to.deep.equal(namesOf(workspaceWith('file:///bob/app', 'file:///alice/app')));
100
+ });
101
+ it('names a root listed twice once, after its basename', () => {
102
+ (0, chai_1.expect)(namesOf(workspaceWith('file:///home/user/app', 'file:///home/user/app'))).to.deep.equal({
103
+ app: 'file:///home/user/app'
104
+ });
105
+ });
106
+ it('returns the same names until the roots change', async () => {
107
+ let roots = [files_1.FileStat.dir('file:///alice/app')];
108
+ const service = new workspace_service_1.WorkspaceService();
109
+ service['computeRoots'] = async () => roots;
110
+ await service['updateRoots']();
111
+ const names = service.getRootNames();
112
+ (0, chai_1.expect)(service.getRootNames()).to.equal(names);
113
+ roots = [...roots, files_1.FileStat.dir('file:///bob/app')];
114
+ await service['updateRoots']();
115
+ (0, chai_1.expect)(Array.from(service.getRootNames().keys())).to.deep.equal(['alice/app', 'bob/app']);
116
+ (0, chai_1.expect)(service.getRootName(new uri_1.default('file:///bob/app'))).to.equal('bob/app');
117
+ });
118
+ it('falls back to the URI for roots with the same path', () => {
119
+ (0, chai_1.expect)(namesOf(workspaceWith('file:///x/app', 'memfs:/x/app'))).to.deep.equal({
120
+ 'file:///x/app': 'file:///x/app',
121
+ 'memfs:/x/app': 'memfs:/x/app'
122
+ });
123
+ });
124
+ });
125
+ describe('getRootPrefixedPath', () => {
126
+ it('prefixes the path with the name of the root', () => {
127
+ const service = workspaceWith('file:///alice/app', 'file:///bob/app');
128
+ (0, chai_1.expect)(service.getRootPrefixedPath(new uri_1.default('file:///bob/app/src/index.ts'))).to.equal('bob/app/src/index.ts');
129
+ (0, chai_1.expect)(service.getRootPrefixedPath(new uri_1.default('file:///bob/app'))).to.equal('bob/app');
130
+ });
131
+ it('uses the deepest root for nested roots', () => {
132
+ const service = workspaceWith('file:///ws/theia', 'file:///ws/theia/packages/core');
133
+ (0, chai_1.expect)(service.getRootPrefixedPath(new uri_1.default('file:///ws/theia/packages/core/src/a.ts'))).to.equal('core/src/a.ts');
134
+ });
135
+ it('returns the absolute path for files outside the workspace', () => {
136
+ const service = workspaceWith('file:///ws/theia');
137
+ (0, chai_1.expect)(service.getRootPrefixedPath(new uri_1.default('file:///tmp/a.ts'))).to.equal('/tmp/a.ts');
138
+ });
139
+ });
140
+ describe('resolveSupraRelativePath', () => {
141
+ const resolve = (service, path) => service.resolveSupraRelativePath(path).map(uri => uri.toString());
142
+ it('resolves a path that starts with the basename of a root', () => {
143
+ const service = workspaceWith('file:///home/user/frontend', 'file:///home/user/backend');
144
+ (0, chai_1.expect)(resolve(service, 'backend/src/index.ts')).to.deep.equal(['file:///home/user/backend/src/index.ts']);
145
+ (0, chai_1.expect)(resolve(service, 'backend')).to.deep.equal(['file:///home/user/backend']);
146
+ });
147
+ it('resolves a path prefixed with more of the root path than its name', () => {
148
+ const service = workspaceWith('file:///alice/app');
149
+ (0, chai_1.expect)(resolve(service, 'alice/app/src/index.ts')).to.deep.equal(['file:///alice/app/src/index.ts']);
150
+ (0, chai_1.expect)(resolve(service, 'bob/app/src/index.ts')).to.deep.equal([]);
151
+ });
152
+ it('resolves a basename shared by several roots in each of them', () => {
153
+ const service = workspaceWith('file:///alice/app', 'file:///bob/app');
154
+ (0, chai_1.expect)(resolve(service, 'app/src/index.ts')).to.deep.equal(['file:///alice/app/src/index.ts', 'file:///bob/app/src/index.ts']);
155
+ (0, chai_1.expect)(resolve(service, 'bob/app/src/index.ts')).to.deep.equal(['file:///bob/app/src/index.ts']);
156
+ });
157
+ it('does not resolve absolute paths, paths leaving the root or paths without a root basename', () => {
158
+ const service = workspaceWith('file:///home/user/backend');
159
+ (0, chai_1.expect)(resolve(service, '/home/user/backend/a.ts')).to.deep.equal([]);
160
+ (0, chai_1.expect)(resolve(service, 'C:\\backend\\a.ts')).to.deep.equal([]);
161
+ (0, chai_1.expect)(resolve(service, '../backend/a.ts')).to.deep.equal([]);
162
+ (0, chai_1.expect)(resolve(service, 'src/index.ts')).to.deep.equal([]);
163
+ });
164
+ });
165
+ describe('splitRootPrefixedPath', () => {
166
+ const split = (service, path) => {
167
+ const result = service.splitRootPrefixedPath(path);
168
+ return result && { ...result, rootUri: result.rootUri.toString() };
169
+ };
170
+ it('splits off the longest matching root name and keeps the rest as it is', () => {
171
+ const service = workspaceWith('file:///ws/x', 'file:///ws/x/app', 'file:///other/app');
172
+ (0, chai_1.expect)(split(service, 'x/app/src/**/\\*.ts')).to.deep.equal({ rootName: 'x/app', rootUri: 'file:///ws/x/app', rest: 'src/**/\\*.ts' });
173
+ (0, chai_1.expect)(split(service, 'x/lib/{a,b}.ts')).to.deep.equal({ rootName: 'x', rootUri: 'file:///ws/x', rest: 'lib/{a,b}.ts' });
174
+ (0, chai_1.expect)(split(service, 'other/app')).to.deep.equal({ rootName: 'other/app', rootUri: 'file:///other/app', rest: '' });
175
+ });
176
+ it('does not split a path without a root name', () => {
177
+ const service = workspaceWith('file:///alice/app', 'file:///bob/app');
178
+ (0, chai_1.expect)(split(service, 'app/src/index.ts')).to.be.undefined;
179
+ });
180
+ });
181
+ describe('resolveRootPrefixedPath', () => {
182
+ const resolve = (service, path) => service.resolveRootPrefixedPath(path)?.toString();
183
+ it('resolves a path relative to the named root', () => {
184
+ const service = workspaceWith('file:///home/user/frontend', 'file:///home/user/backend');
185
+ (0, chai_1.expect)(resolve(service, 'backend/src/index.ts')).to.equal('file:///home/user/backend/src/index.ts');
186
+ (0, chai_1.expect)(resolve(service, 'backend')).to.equal('file:///home/user/backend');
187
+ });
188
+ it('resolves parent-qualified root names', () => {
189
+ const service = workspaceWith('file:///alice/app', 'file:///bob/app');
190
+ (0, chai_1.expect)(resolve(service, 'bob/app/src/index.ts')).to.equal('file:///bob/app/src/index.ts');
191
+ (0, chai_1.expect)(resolve(service, 'alice/app')).to.equal('file:///alice/app');
192
+ });
193
+ it('does not resolve a basename shared by several roots', () => {
194
+ const service = workspaceWith('file:///alice/app', 'file:///bob/app');
195
+ (0, chai_1.expect)(resolve(service, 'app/src/index.ts')).to.be.undefined;
196
+ });
197
+ it('prefers the longest matching root name', () => {
198
+ const service = workspaceWith('file:///ws/x', 'file:///ws/x/app', 'file:///other/app');
199
+ (0, chai_1.expect)(resolve(service, 'x/app/src/index.ts')).to.equal('file:///ws/x/app/src/index.ts');
200
+ (0, chai_1.expect)(resolve(service, 'x/lib/index.ts')).to.equal('file:///ws/x/lib/index.ts');
201
+ });
202
+ it('accepts backslashes and redundant segments', () => {
203
+ const service = workspaceWith('file:///home/user/backend');
204
+ (0, chai_1.expect)(resolve(service, 'backend\\src\\index.ts')).to.equal('file:///home/user/backend/src/index.ts');
205
+ (0, chai_1.expect)(resolve(service, './backend/src/../lib/a.ts')).to.equal('file:///home/user/backend/lib/a.ts');
206
+ });
207
+ it('does not resolve absolute paths, URIs or paths leaving the root', () => {
208
+ const service = workspaceWith('file:///home/user/backend');
209
+ (0, chai_1.expect)(resolve(service, '/home/user/backend/a.ts')).to.be.undefined;
210
+ (0, chai_1.expect)(resolve(service, 'C:\\backend\\a.ts')).to.be.undefined;
211
+ (0, chai_1.expect)(resolve(service, 'file:///home/user/backend/a.ts')).to.be.undefined;
212
+ (0, chai_1.expect)(resolve(service, 'backend/../../etc/passwd')).to.be.undefined;
213
+ });
214
+ it('does not resolve paths without a root name', () => {
215
+ const service = workspaceWith('file:///home/user/backend');
216
+ (0, chai_1.expect)(resolve(service, 'src/index.ts')).to.be.undefined;
217
+ });
218
+ it('is the inverse of getRootPrefixedPath', () => {
219
+ const service = workspaceWith('file:///alice/app', 'file:///bob/app', 'file:///ws/theia', 'file:///ws/theia/packages/core');
220
+ for (const file of ['file:///alice/app/a.ts', 'file:///bob/app/a.ts', 'file:///ws/theia/b.ts', 'file:///ws/theia/packages/core/c.ts']) {
221
+ (0, chai_1.expect)(resolve(service, service.getRootPrefixedPath(new uri_1.default(file)))).to.equal(file);
222
+ }
223
+ });
224
+ it('is the inverse of getRootPrefixedPath for a root with a folder named like another root', () => {
225
+ const service = workspaceWith('file:///work/alice', 'file:///home/alice/app', 'file:///home/bob/app');
226
+ for (const file of ['file:///work/alice/app/x.ts', 'file:///home/alice/app/x.ts']) {
227
+ (0, chai_1.expect)(resolve(service, service.getRootPrefixedPath(new uri_1.default(file)))).to.equal(file);
228
+ }
229
+ });
230
+ });
231
+ });
232
+ //# sourceMappingURL=workspace-service.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-service.spec.js","sourceRoot":"","sources":["../../src/browser/workspace-service.spec.ts"],"names":[],"mappings":"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"}
@@ -6,9 +6,23 @@ import { WorkspaceVariableContribution } from './workspace-variable-contribution
6
6
  export declare class WorkspaceUriLabelProviderContribution extends DefaultUriLabelProviderContribution {
7
7
  protected readonly workspaceVariable: WorkspaceVariableContribution;
8
8
  protected readonly workspaceService: WorkspaceService;
9
+ /**
10
+ * The names of the workspace roots by root URI, as last labeled.
11
+ */
12
+ protected rootNames: Map<string, string>;
9
13
  init(): void;
14
+ protected getRootNamesByUri(): Map<string, string>;
15
+ /**
16
+ * Notifies a change of the labels of the roots whose names changed, such as a root named `app` that
17
+ * is named `alice/app` once a root `bob/app` is added.
18
+ */
19
+ protected updateRootNames(): void;
10
20
  canHandle(element: object): number;
11
21
  getIcon(element: URI | URIIconReference | FileStat): string;
22
+ /**
23
+ * Names a workspace root by its unique name (see {@link WorkspaceService.getRootNames}), so that
24
+ * roots sharing a folder name can be told apart, e.g. `alice/app` and `bob/app`.
25
+ */
12
26
  getName(element: URI | URIIconReference | FileStat): string | undefined;
13
27
  /**
14
28
  * trims the workspace root from a file uri, if it is a child.
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-uri-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/workspace-uri-contribution.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,mCAAmC,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC/G,OAAO,GAAG,MAAM,4BAA4B,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AAElF,qBACa,qCAAsC,SAAQ,mCAAmC;IAEnD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,6BAA6B,CAAC;IACjF,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAGvE,IAAI,IAAI,IAAI;IAIZ,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAOlC,OAAO,CAAC,OAAO,EAAE,GAAG,GAAG,gBAAgB,GAAG,QAAQ,GAAG,MAAM;IAI3D,OAAO,CAAC,OAAO,EAAE,GAAG,GAAG,gBAAgB,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS;IAIhF;;OAEG;IACM,WAAW,CAAC,OAAO,EAAE,GAAG,GAAG,gBAAgB,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS;IAY3E,UAAU,CAAC,OAAO,EAAE,GAAG,GAAG,gBAAgB,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS;IAenF,SAAS,CAAC,kBAAkB,CAAC,OAAO,EAAE,GAAG,GAAG,gBAAgB,GAAG,QAAQ,GAAG,GAAG,GAAG,gBAAgB;cAW7E,MAAM,CAAC,OAAO,EAAE,GAAG,GAAG,gBAAgB,GAAG,QAAQ,GAAG,GAAG,GAAG,SAAS;CAMzF"}
1
+ {"version":3,"file":"workspace-uri-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/workspace-uri-contribution.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,mCAAmC,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC/G,OAAO,GAAG,MAAM,4BAA4B,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AAElF,qBACa,qCAAsC,SAAQ,mCAAmC;IAEnD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,6BAA6B,CAAC;IACjF,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAEhF;;OAEG;IACH,SAAS,CAAC,SAAS,sBAA6B;IAGvC,IAAI,IAAI,IAAI;IAKrB,SAAS,CAAC,iBAAiB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAIlD;;;OAGG;IACH,SAAS,CAAC,eAAe,IAAI,IAAI;IAmBxB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAOlC,OAAO,CAAC,OAAO,EAAE,GAAG,GAAG,gBAAgB,GAAG,QAAQ,GAAG,MAAM;IAIpE;;;OAGG;IACM,OAAO,CAAC,OAAO,EAAE,GAAG,GAAG,gBAAgB,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS;IAShF;;OAEG;IACM,WAAW,CAAC,OAAO,EAAE,GAAG,GAAG,gBAAgB,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS;IAY3E,UAAU,CAAC,OAAO,EAAE,GAAG,GAAG,gBAAgB,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS;IAenF,SAAS,CAAC,kBAAkB,CAAC,OAAO,EAAE,GAAG,GAAG,gBAAgB,GAAG,QAAQ,GAAG,GAAG,GAAG,gBAAgB;cAW7E,MAAM,CAAC,OAAO,EAAE,GAAG,GAAG,gBAAgB,GAAG,QAAQ,GAAG,GAAG,GAAG,SAAS;CAMzF"}
@@ -24,8 +24,41 @@ const files_1 = require("@theia/filesystem/lib/common/files");
24
24
  const workspace_service_1 = require("./workspace-service");
25
25
  const workspace_variable_contribution_1 = require("./workspace-variable-contribution");
26
26
  let WorkspaceUriLabelProviderContribution = class WorkspaceUriLabelProviderContribution extends label_provider_1.DefaultUriLabelProviderContribution {
27
+ constructor() {
28
+ super(...arguments);
29
+ /**
30
+ * The names of the workspace roots by root URI, as last labeled.
31
+ */
32
+ this.rootNames = new Map();
33
+ }
27
34
  init() {
28
- // no-op, backward compatibility
35
+ this.rootNames = this.getRootNamesByUri();
36
+ this.workspaceService.onWorkspaceChanged(() => this.updateRootNames());
37
+ }
38
+ getRootNamesByUri() {
39
+ return new Map(Array.from(this.workspaceService.getRootNames(), ([name, uri]) => [uri.toString(), name]));
40
+ }
41
+ /**
42
+ * Notifies a change of the labels of the roots whose names changed, such as a root named `app` that
43
+ * is named `alice/app` once a root `bob/app` is added.
44
+ */
45
+ updateRootNames() {
46
+ const rootNames = this.getRootNamesByUri();
47
+ const changed = new Set();
48
+ for (const [uri, name] of rootNames) {
49
+ if (this.rootNames.get(uri) !== name) {
50
+ changed.add(uri);
51
+ }
52
+ }
53
+ this.rootNames = rootNames;
54
+ if (changed.size > 0) {
55
+ this.onDidChangeEmitter.fire({
56
+ affects: element => {
57
+ const uri = this.canHandle(element) > 0 ? this.getUri(element) : undefined;
58
+ return !!uri && changed.has(uri.toString());
59
+ }
60
+ });
61
+ }
29
62
  }
30
63
  canHandle(element) {
31
64
  if ((element instanceof uri_1.default && element.scheme === 'file' || label_provider_1.URIIconReference.is(element) || files_1.FileStat.is(element))) {
@@ -36,7 +69,16 @@ let WorkspaceUriLabelProviderContribution = class WorkspaceUriLabelProviderContr
36
69
  getIcon(element) {
37
70
  return super.getIcon(this.asURIIconReference(element));
38
71
  }
72
+ /**
73
+ * Names a workspace root by its unique name (see {@link WorkspaceService.getRootNames}), so that
74
+ * roots sharing a folder name can be told apart, e.g. `alice/app` and `bob/app`.
75
+ */
39
76
  getName(element) {
77
+ const uri = this.getUri(element);
78
+ const rootName = uri && this.workspaceService.getRootName(uri);
79
+ if (rootName) {
80
+ return rootName;
81
+ }
40
82
  return super.getName(this.asURIIconReference(element));
41
83
  }
42
84
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-uri-contribution.js","sourceRoot":"","sources":["../../src/browser/workspace-uri-contribution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-uri-contribution.js","sourceRoot":"","sources":["../../src/browser/workspace-uri-contribution.ts"],"names":[],"mappings":"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"}
@@ -39,6 +39,12 @@ after(() => disableJSDOM());
39
39
  let container;
40
40
  let labelProvider;
41
41
  let roots;
42
+ let workspaceService;
43
+ /** Changes the roots, as `WorkspaceService.updateRoots` does, which resets their names. */
44
+ const setRoots = (newRoots) => {
45
+ roots = newRoots;
46
+ workspaceService['rootNamesCache'] = undefined;
47
+ };
42
48
  beforeEach(() => {
43
49
  roots = [files_1.FileStat.dir('file:///workspace')];
44
50
  container = new inversify_1.Container();
@@ -51,7 +57,7 @@ beforeEach(() => {
51
57
  onDidCreateWidget: event_1.Event.None
52
58
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
53
59
  });
54
- const workspaceService = new workspace_service_1.WorkspaceService();
60
+ workspaceService = new workspace_service_1.WorkspaceService();
55
61
  workspaceService.tryGetRoots = () => roots;
56
62
  container.bind(workspace_service_1.WorkspaceService).toConstantValue(workspaceService);
57
63
  container.bind(workspace_variable_contribution_1.WorkspaceVariableContribution).toSelf().inSingletonScope();
@@ -123,6 +129,37 @@ describe('WorkspaceUriLabelProviderContribution class', () => {
123
129
  const name = labelProvider.getName(file);
124
130
  (0, chai_1.expect)(name).eq('jacques.doc');
125
131
  });
132
+ it('should return the folder name of a workspace root', () => {
133
+ setRoots([files_1.FileStat.dir('file:///home/alice/app'), files_1.FileStat.dir('file:///home/bob/lib')]);
134
+ (0, chai_1.expect)(labelProvider.getName(files_1.FileStat.dir('file:///home/alice/app'))).eq('app');
135
+ });
136
+ it('should return the unique names of workspace roots sharing a folder name', () => {
137
+ setRoots([files_1.FileStat.dir('file:///home/alice/app'), files_1.FileStat.dir('file:///home/bob/app')]);
138
+ (0, chai_1.expect)(labelProvider.getName(files_1.FileStat.dir('file:///home/alice/app'))).eq('alice/app');
139
+ (0, chai_1.expect)(labelProvider.getName(new uri_1.default('file:///home/bob/app'))).eq('bob/app');
140
+ });
141
+ it('should return the folder name of a folder that shares its name with a workspace root', () => {
142
+ setRoots([files_1.FileStat.dir('file:///home/alice/app'), files_1.FileStat.dir('file:///home/bob/app')]);
143
+ (0, chai_1.expect)(labelProvider.getName(files_1.FileStat.dir('file:///home/alice/app/app'))).eq('app');
144
+ });
145
+ it('should notify a change of the name of a workspace root when a root sharing its folder name is added', () => {
146
+ setRoots([files_1.FileStat.dir('file:///home/alice/app'), files_1.FileStat.dir('file:///home/other')]);
147
+ workspaceService['onWorkspaceChangeEmitter'].fire(roots);
148
+ const events = [];
149
+ labelProvider.onDidChange(event => events.push(event));
150
+ setRoots([...roots, files_1.FileStat.dir('file:///home/bob/app')]);
151
+ workspaceService['onWorkspaceChangeEmitter'].fire(roots);
152
+ (0, chai_1.expect)(events.some(event => event.affects(new uri_1.default('file:///home/alice/app')))).to.be.true;
153
+ (0, chai_1.expect)(events.some(event => event.affects(files_1.FileStat.dir('file:///home/alice/app')))).to.be.true;
154
+ (0, chai_1.expect)(events.some(event => event.affects(new uri_1.default('file:///home/other')))).to.be.false;
155
+ (0, chai_1.expect)(labelProvider.getName(new uri_1.default('file:///home/alice/app'))).eq('alice/app');
156
+ });
157
+ });
158
+ describe('getDetails()', () => {
159
+ it('should prefix the path of a file with the unique name of its workspace root', () => {
160
+ setRoots([files_1.FileStat.dir('file:///home/alice/app'), files_1.FileStat.dir('file:///home/bob/app')]);
161
+ (0, chai_1.expect)(labelProvider.getDetails(new uri_1.default('file:///home/bob/app/src/index.ts'))).eq('bob/app • src');
162
+ });
126
163
  });
127
164
  describe('getLongName()', () => {
128
165
  it('should return the path of a file relative to the workspace from the file\'s URI if the file is in the workspace', () => {
@@ -156,7 +193,7 @@ describe('WorkspaceUriLabelProviderContribution class', () => {
156
193
  }
157
194
  });
158
195
  it('should return the path of a file if WorkspaceService returns no roots', () => {
159
- roots = [];
196
+ setRoots([]);
160
197
  const file = new uri_1.default('file:///tmp/prout.txt');
161
198
  const longName = labelProvider.getLongName(file);
162
199
  if (os_1.OS.backend.isWindows) {
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-uri-contribution.spec.js","sourceRoot":"","sources":["../../src/browser/workspace-uri-contribution.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-uri-contribution.spec.js","sourceRoot":"","sources":["../../src/browser/workspace-uri-contribution.spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@theia/workspace",
3
- "version": "1.77.0-next.57+81ea5f939",
3
+ "version": "1.77.0-next.63+046af0812",
4
4
  "description": "Theia - Workspace Extension",
5
5
  "dependencies": {
6
- "@theia/core": "1.77.0-next.57+81ea5f939",
7
- "@theia/filesystem": "1.77.0-next.57+81ea5f939",
8
- "@theia/variable-resolver": "1.77.0-next.57+81ea5f939",
6
+ "@theia/core": "1.77.0-next.63+046af0812",
7
+ "@theia/filesystem": "1.77.0-next.63+046af0812",
8
+ "@theia/variable-resolver": "1.77.0-next.63+046af0812",
9
9
  "jsonc-parser": "^3.3.1",
10
10
  "tslib": "^2.8.1",
11
11
  "valid-filename": "^2.0.1"
@@ -55,5 +55,5 @@
55
55
  "nyc": {
56
56
  "extends": "../../configs/nyc.json"
57
57
  },
58
- "gitHead": "81ea5f939c40c905de91083d07e284bfd7437fac"
58
+ "gitHead": "046af0812516f46f2bf7ce3357cca0b672159b20"
59
59
  }
@@ -0,0 +1,26 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2026 STMicroelectronics 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 { WorkspaceService } from '../workspace-service';
18
+
19
+ /**
20
+ * Turns a partial mock of the workspace service into one that falls back to the real
21
+ * `WorkspaceService` methods for anything it does not stub, such as the root naming that
22
+ * is computed from `tryGetRoots()`. The mock is modified in place and returned.
23
+ */
24
+ export function withWorkspaceServiceDefaults(mock: object): WorkspaceService {
25
+ return Object.setPrototypeOf(mock, WorkspaceService.prototype);
26
+ }