@theia/terminal 1.74.0-next.5 → 1.74.0-next.53

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.
Files changed (30) hide show
  1. package/lib/browser/terminal-file-link-provider.d.ts +3 -8
  2. package/lib/browser/terminal-file-link-provider.d.ts.map +1 -1
  3. package/lib/browser/terminal-file-link-provider.js +13 -35
  4. package/lib/browser/terminal-file-link-provider.js.map +1 -1
  5. package/lib/browser/terminal-file-link-provider.spec.d.ts +2 -0
  6. package/lib/browser/terminal-file-link-provider.spec.d.ts.map +1 -0
  7. package/lib/browser/terminal-file-link-provider.spec.js +79 -0
  8. package/lib/browser/terminal-file-link-provider.spec.js.map +1 -0
  9. package/lib/browser/terminal-file-opening-link-provider.d.ts +20 -0
  10. package/lib/browser/terminal-file-opening-link-provider.d.ts.map +1 -0
  11. package/lib/browser/terminal-file-opening-link-provider.js +59 -0
  12. package/lib/browser/terminal-file-opening-link-provider.js.map +1 -0
  13. package/lib/browser/terminal-file-uri-link-provider.d.ts +29 -0
  14. package/lib/browser/terminal-file-uri-link-provider.d.ts.map +1 -0
  15. package/lib/browser/terminal-file-uri-link-provider.js +95 -0
  16. package/lib/browser/terminal-file-uri-link-provider.js.map +1 -0
  17. package/lib/browser/terminal-file-uri-link-provider.spec.d.ts +2 -0
  18. package/lib/browser/terminal-file-uri-link-provider.spec.d.ts.map +1 -0
  19. package/lib/browser/terminal-file-uri-link-provider.spec.js +180 -0
  20. package/lib/browser/terminal-file-uri-link-provider.spec.js.map +1 -0
  21. package/lib/browser/terminal-frontend-module.d.ts.map +1 -1
  22. package/lib/browser/terminal-frontend-module.js +3 -0
  23. package/lib/browser/terminal-frontend-module.js.map +1 -1
  24. package/package.json +9 -9
  25. package/src/browser/terminal-file-link-provider.spec.ts +95 -0
  26. package/src/browser/terminal-file-link-provider.ts +11 -28
  27. package/src/browser/terminal-file-opening-link-provider.ts +57 -0
  28. package/src/browser/terminal-file-uri-link-provider.spec.ts +203 -0
  29. package/src/browser/terminal-file-uri-link-provider.ts +91 -0
  30. package/src/browser/terminal-frontend-module.ts +3 -0
@@ -1,28 +1,23 @@
1
1
  import { QuickInputService, ILogger } from '@theia/core';
2
- import { OpenerService } from '@theia/core/lib/browser';
3
2
  import URI from '@theia/core/lib/common/uri';
4
3
  import { Position } from '@theia/editor/lib/browser';
5
- import { FileService } from '@theia/filesystem/lib/browser/file-service';
4
+ import { AbstractFileOpeningLinkProvider } from './terminal-file-opening-link-provider';
6
5
  import { TerminalWidget } from './base/terminal-widget';
7
- import { TerminalLink, TerminalLinkProvider } from './terminal-link-provider';
6
+ import { TerminalLink } from './terminal-link-provider';
8
7
  import { FileSearchService } from '@theia/file-search/lib/common/file-search-service';
9
8
  import { WorkspaceService } from '@theia/workspace/lib/browser';
10
- export declare class FileLinkProvider implements TerminalLinkProvider {
11
- protected readonly openerService: OpenerService;
9
+ export declare class FileLinkProvider extends AbstractFileOpeningLinkProvider {
12
10
  protected readonly quickInputService: QuickInputService;
13
- protected fileService: FileService;
14
11
  protected searchService: FileSearchService;
15
12
  protected readonly workspaceService: WorkspaceService;
16
13
  protected readonly logger: ILogger;
17
14
  provideLinks(line: string, terminal: TerminalWidget): Promise<TerminalLink[]>;
18
15
  protected createRegExp(): Promise<RegExp>;
19
16
  protected isValidFile(match: string, terminal: TerminalWidget): Promise<boolean>;
20
- protected isValidFileURI(uri: URI): Promise<boolean>;
21
17
  protected toURI(match: string, cwd: URI): Promise<URI | undefined>;
22
18
  protected getCwd(terminal: TerminalWidget): Promise<URI>;
23
19
  protected extractPath(link: string): Promise<string | undefined>;
24
20
  open(match: string, terminal: TerminalWidget): Promise<void>;
25
- openURI(toOpen: URI, position: Position): Promise<void>;
26
21
  protected extractPosition(link: string): Promise<Position>;
27
22
  protected getLineAndColumnMatchIndex(): number;
28
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-file-link-provider.d.ts","sourceRoot":"","sources":["../../src/browser/terminal-file-link-provider.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAY,iBAAiB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,GAAG,MAAM,4BAA4B,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAE9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,qBACa,gBAAiB,YAAW,oBAAoB;IAElC,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAC5C,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC9D,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC;IAC7B,SAAS,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC5C,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAEhF,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAE7B,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;cAiBnE,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;cAK/B,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;cAatE,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;cAQ1C,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;cASxD,MAAM,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC;cAO9C,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAQhE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAS5D,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;cAc7C,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAyBhE,SAAS,CAAC,0BAA0B,IAAI,MAAM;CAGjD;AAED,qBACa,uBAAwB,SAAQ,gBAAgB;IAC1C,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;CAGjD;AAED,qBACa,wBAAyB,SAAQ,gBAAgB;IAC3C,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;CAGjD;AAED,qBACa,qBAAsB,SAAQ,gBAAgB;IACxC,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAgB/B,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;cA0BzE,0BAA0B,IAAI,MAAM;cAIvC,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;CAwB3H"}
1
+ {"version":3,"file":"terminal-file-link-provider.d.ts","sourceRoot":"","sources":["../../src/browser/terminal-file-link-provider.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAY,iBAAiB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,GAAG,MAAM,4BAA4B,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,+BAA+B,EAAE,MAAM,uCAAuC,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,qBACa,gBAAiB,SAAQ,+BAA+B;IAEtC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IACxD,SAAS,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC5C,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAEhF,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAE7B,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;cAiBnE,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;cAK/B,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;cAatE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;cAiBxD,MAAM,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC;cAO9C,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAQhE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;cASlD,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAyBhE,SAAS,CAAC,0BAA0B,IAAI,MAAM;CAGjD;AAED,qBACa,uBAAwB,SAAQ,gBAAgB;IAC1C,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;CAGjD;AAED,qBACa,wBAAyB,SAAQ,gBAAgB;IAC3C,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;CAGjD;AAED,qBACa,qBAAsB,SAAQ,gBAAgB;IACxC,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAgB/B,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;cA0BzE,0BAA0B,IAAI,MAAM;cAIvC,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;CAwB3H"}
@@ -18,14 +18,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.LocalFileLinkProvider = exports.FileDiffPostLinkProvider = exports.FileDiffPreLinkProvider = exports.FileLinkProvider = void 0;
19
19
  const tslib_1 = require("tslib");
20
20
  const core_1 = require("@theia/core");
21
- const browser_1 = require("@theia/core/lib/browser");
22
21
  const uri_1 = require("@theia/core/lib/common/uri");
23
22
  const inversify_1 = require("@theia/core/shared/inversify");
24
- const file_service_1 = require("@theia/filesystem/lib/browser/file-service");
23
+ const terminal_file_opening_link_provider_1 = require("./terminal-file-opening-link-provider");
25
24
  const terminal_widget_impl_1 = require("./terminal-widget-impl");
26
25
  const file_search_service_1 = require("@theia/file-search/lib/common/file-search-service");
27
- const browser_2 = require("@theia/workspace/lib/browser");
28
- let FileLinkProvider = class FileLinkProvider {
26
+ const browser_1 = require("@theia/workspace/lib/browser");
27
+ let FileLinkProvider = class FileLinkProvider extends terminal_file_opening_link_provider_1.AbstractFileOpeningLinkProvider {
29
28
  async provideLinks(line, terminal) {
30
29
  const links = [];
31
30
  const regExp = await this.createRegExp();
@@ -59,19 +58,19 @@ let FileLinkProvider = class FileLinkProvider {
59
58
  }
60
59
  return false;
61
60
  }
62
- async isValidFileURI(uri) {
63
- try {
64
- const stat = await this.fileService.resolve(uri);
65
- return !stat.isDirectory;
66
- }
67
- catch { }
68
- return false;
69
- }
70
61
  async toURI(match, cwd) {
71
62
  const path = await this.extractPath(match);
72
63
  if (!path) {
73
64
  return;
74
65
  }
66
+ // A '//'-leading match is a URL authority, not a local file: the path regex excludes ':'
67
+ // but not '/', so a printed URL matches from its '//host/path' remainder. Such a path
68
+ // cannot form a file URI (no authority component) and is already linkified by the URL link
69
+ // provider, so skip it rather than let `withPath` throw. The Windows path regex splits the
70
+ // leading '//' into a single slash during extraction, so the raw match is checked too.
71
+ if (match.startsWith('//') || path.startsWith('//')) {
72
+ return;
73
+ }
75
74
  const pathObj = new core_1.Path(path);
76
75
  return pathObj.isAbsolute ? cwd.withPath(path) : cwd.resolve(path);
77
76
  }
@@ -96,19 +95,6 @@ let FileLinkProvider = class FileLinkProvider {
96
95
  const position = await this.extractPosition(match);
97
96
  return this.openURI(toOpen, position);
98
97
  }
99
- async openURI(toOpen, position) {
100
- let options = {};
101
- if (position) {
102
- options = { selection: { start: position } };
103
- }
104
- try {
105
- const opener = await this.openerService.getOpener(toOpen, options);
106
- opener.open(toOpen, options);
107
- }
108
- catch (err) {
109
- this.logger.error('Cannot open link ' + toOpen, err);
110
- }
111
- }
112
98
  async extractPosition(link) {
113
99
  const matches = (await this.createRegExp()).exec(link);
114
100
  const info = { line: 1, character: 1 };
@@ -135,25 +121,17 @@ let FileLinkProvider = class FileLinkProvider {
135
121
  }
136
122
  };
137
123
  exports.FileLinkProvider = FileLinkProvider;
138
- tslib_1.__decorate([
139
- (0, inversify_1.inject)(browser_1.OpenerService),
140
- tslib_1.__metadata("design:type", Object)
141
- ], FileLinkProvider.prototype, "openerService", void 0);
142
124
  tslib_1.__decorate([
143
125
  (0, inversify_1.inject)(core_1.QuickInputService),
144
126
  tslib_1.__metadata("design:type", Object)
145
127
  ], FileLinkProvider.prototype, "quickInputService", void 0);
146
- tslib_1.__decorate([
147
- (0, inversify_1.inject)(file_service_1.FileService),
148
- tslib_1.__metadata("design:type", file_service_1.FileService)
149
- ], FileLinkProvider.prototype, "fileService", void 0);
150
128
  tslib_1.__decorate([
151
129
  (0, inversify_1.inject)(file_search_service_1.FileSearchService),
152
130
  tslib_1.__metadata("design:type", Object)
153
131
  ], FileLinkProvider.prototype, "searchService", void 0);
154
132
  tslib_1.__decorate([
155
- (0, inversify_1.inject)(browser_2.WorkspaceService),
156
- tslib_1.__metadata("design:type", browser_2.WorkspaceService)
133
+ (0, inversify_1.inject)(browser_1.WorkspaceService),
134
+ tslib_1.__metadata("design:type", browser_1.WorkspaceService)
157
135
  ], FileLinkProvider.prototype, "workspaceService", void 0);
158
136
  tslib_1.__decorate([
159
137
  (0, inversify_1.inject)(core_1.ILogger),
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-file-link-provider.js","sourceRoot":"","sources":["../../src/browser/terminal-file-link-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminal-file-link-provider.js","sourceRoot":"","sources":["../../src/browser/terminal-file-link-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=terminal-file-link-provider.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-file-link-provider.spec.d.ts","sourceRoot":"","sources":["../../src/browser/terminal-file-link-provider.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 JuliaHub, Inc. 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 jsdom_1 = require("@theia/core/lib/browser/test/jsdom");
19
+ const disableJSDOM = (0, jsdom_1.enableJSDOM)();
20
+ // Importing the provider pulls in xterm, which probes a canvas 2d context on load; JSDOM has no
21
+ // canvas backend, so stub it out to keep this spec runnable without the native `canvas` package.
22
+ HTMLCanvasElement.prototype.getContext = () => undefined;
23
+ const frontend_application_config_provider_1 = require("@theia/core/lib/browser/frontend-application-config-provider");
24
+ frontend_application_config_provider_1.FrontendApplicationConfigProvider.set({});
25
+ const chai = require("chai");
26
+ const uri_1 = require("@theia/core/lib/common/uri");
27
+ const terminal_file_link_provider_1 = require("./terminal-file-link-provider");
28
+ disableJSDOM();
29
+ const expect = chai.expect;
30
+ class TestFileLinkProvider extends terminal_file_link_provider_1.FileLinkProvider {
31
+ constructor() {
32
+ super();
33
+ this.loggedErrors = [];
34
+ this.logger = {
35
+ error: (message) => { this.loggedErrors.push(String(message)); }
36
+ };
37
+ }
38
+ exposeToURI(match, cwd) {
39
+ return this.toURI(match, cwd);
40
+ }
41
+ }
42
+ function terminalWithCwd(cwd) {
43
+ return { lastCwd: cwd };
44
+ }
45
+ describe('FileLinkProvider', () => {
46
+ const cwd = new uri_1.default('file:///home/user/project');
47
+ describe('#toURI', () => {
48
+ it('should skip a URL authority path beginning with "//" instead of throwing', async () => {
49
+ const provider = new TestFileLinkProvider();
50
+ // The '//host/path' the file-path regex matches from a printed URL (its ':' is excluded).
51
+ expect(await provider.exposeToURI('//juliahub.com/products/dyad', cwd)).to.equal(undefined);
52
+ expect(await provider.exposeToURI('//github.com/DyadLang/DyadIssues', cwd)).to.equal(undefined);
53
+ });
54
+ it('should still resolve a genuine absolute local path', async () => {
55
+ const provider = new TestFileLinkProvider();
56
+ const uri = await provider.exposeToURI('/home/user/project/file.ts', cwd);
57
+ expect(uri).to.not.equal(undefined);
58
+ expect(uri.path.toString()).to.equal('/home/user/project/file.ts');
59
+ });
60
+ });
61
+ describe('#provideLinks', () => {
62
+ it('should not produce a file link or log an error for a printed URL', async () => {
63
+ const provider = new TestFileLinkProvider();
64
+ const links = await provider.provideLinks('see https://juliahub.com/products/dyad for details', terminalWithCwd(cwd));
65
+ expect(links).to.deep.equal([]);
66
+ expect(provider.loggedErrors).to.deep.equal([]);
67
+ });
68
+ it('should not throw or log for a printed file:// URL', async () => {
69
+ const provider = new TestFileLinkProvider();
70
+ // ':' is excluded, so a file:// URL survives as a '///path' candidate the guard skips;
71
+ // it is not linkified here today. Documents the no-throw behavior — making file:// links
72
+ // clickable would be a separate feature.
73
+ const links = await provider.provideLinks('open file:///home/user/project/file.ts now', terminalWithCwd(cwd));
74
+ expect(links).to.deep.equal([]);
75
+ expect(provider.loggedErrors).to.deep.equal([]);
76
+ });
77
+ });
78
+ });
79
+ //# sourceMappingURL=terminal-file-link-provider.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-file-link-provider.spec.js","sourceRoot":"","sources":["../../src/browser/terminal-file-link-provider.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { ILogger } from '@theia/core';
2
+ import { OpenerService } from '@theia/core/lib/browser';
3
+ import URI from '@theia/core/lib/common/uri';
4
+ import { Position } from '@theia/editor/lib/browser';
5
+ import { FileService } from '@theia/filesystem/lib/browser/file-service';
6
+ import { TerminalWidget } from './base/terminal-widget';
7
+ import { TerminalLink, TerminalLinkProvider } from './terminal-link-provider';
8
+ /**
9
+ * Base for terminal link providers that resolve a matched string to a local file URI and open it in
10
+ * the editor. Subclasses contribute their own matching in {@link provideLinks} and a named logger.
11
+ */
12
+ export declare abstract class AbstractFileOpeningLinkProvider implements TerminalLinkProvider {
13
+ protected readonly openerService: OpenerService;
14
+ protected readonly fileService: FileService;
15
+ protected abstract readonly logger: ILogger;
16
+ abstract provideLinks(line: string, terminal: TerminalWidget): Promise<TerminalLink[]>;
17
+ protected isValidFileURI(uri: URI): Promise<boolean>;
18
+ openURI(uri: URI, position?: Position): Promise<void>;
19
+ }
20
+ //# sourceMappingURL=terminal-file-opening-link-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-file-opening-link-provider.d.ts","sourceRoot":"","sources":["../../src/browser/terminal-file-opening-link-provider.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,GAAG,MAAM,4BAA4B,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAE9E;;;GAGG;AACH,8BACsB,+BAAgC,YAAW,oBAAoB;IAE1D,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAClD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAEjE,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAE5C,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;cAEtE,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IAQpD,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAS9D"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 JuliaHub, Inc. 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
+ exports.AbstractFileOpeningLinkProvider = void 0;
19
+ const tslib_1 = require("tslib");
20
+ const browser_1 = require("@theia/core/lib/browser");
21
+ const inversify_1 = require("@theia/core/shared/inversify");
22
+ const file_service_1 = require("@theia/filesystem/lib/browser/file-service");
23
+ /**
24
+ * Base for terminal link providers that resolve a matched string to a local file URI and open it in
25
+ * the editor. Subclasses contribute their own matching in {@link provideLinks} and a named logger.
26
+ */
27
+ let AbstractFileOpeningLinkProvider = class AbstractFileOpeningLinkProvider {
28
+ async isValidFileURI(uri) {
29
+ try {
30
+ const stat = await this.fileService.resolve(uri);
31
+ return !stat.isDirectory;
32
+ }
33
+ catch { }
34
+ return false;
35
+ }
36
+ async openURI(uri, position) {
37
+ const options = position ? { selection: { start: position } } : {};
38
+ try {
39
+ const opener = await this.openerService.getOpener(uri, options);
40
+ await opener.open(uri, options);
41
+ }
42
+ catch (err) {
43
+ this.logger.error('Cannot open link ' + uri, err);
44
+ }
45
+ }
46
+ };
47
+ exports.AbstractFileOpeningLinkProvider = AbstractFileOpeningLinkProvider;
48
+ tslib_1.__decorate([
49
+ (0, inversify_1.inject)(browser_1.OpenerService),
50
+ tslib_1.__metadata("design:type", Object)
51
+ ], AbstractFileOpeningLinkProvider.prototype, "openerService", void 0);
52
+ tslib_1.__decorate([
53
+ (0, inversify_1.inject)(file_service_1.FileService),
54
+ tslib_1.__metadata("design:type", file_service_1.FileService)
55
+ ], AbstractFileOpeningLinkProvider.prototype, "fileService", void 0);
56
+ exports.AbstractFileOpeningLinkProvider = AbstractFileOpeningLinkProvider = tslib_1.__decorate([
57
+ (0, inversify_1.injectable)()
58
+ ], AbstractFileOpeningLinkProvider);
59
+ //# sourceMappingURL=terminal-file-opening-link-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-file-opening-link-provider.js","sourceRoot":"","sources":["../../src/browser/terminal-file-opening-link-provider.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,gDAAgD;AAChD,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,qDAAwD;AAExD,4DAAkE;AAElE,6EAAyE;AAIzE;;;GAGG;AAEI,IAAe,+BAA+B,GAA9C,MAAe,+BAA+B;IASvC,KAAK,CAAC,cAAc,CAAC,GAAQ;QACnC,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACjD,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC,CAAC,CAAC;QACX,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAQ,EAAE,QAAmB;QACvC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAChE,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;QACtD,CAAC;IACL,CAAC;CACJ,CAAA;AA1BqB,0EAA+B;AAEP;IAAzC,IAAA,kBAAM,EAAC,uBAAa,CAAC;;sEAAiD;AAC/B;IAAvC,IAAA,kBAAM,EAAC,0BAAW,CAAC;sCAAiC,0BAAW;oEAAC;0CAH/C,+BAA+B;IADpD,IAAA,sBAAU,GAAE;GACS,+BAA+B,CA0BpD"}
@@ -0,0 +1,29 @@
1
+ import { ILogger } from '@theia/core';
2
+ import URI from '@theia/core/lib/common/uri';
3
+ import { Position } from '@theia/editor/lib/browser';
4
+ import { AbstractFileOpeningLinkProvider } from './terminal-file-opening-link-provider';
5
+ import { TerminalWidget } from './base/terminal-widget';
6
+ import { TerminalLink } from './terminal-link-provider';
7
+ /**
8
+ * Linkifies `file://` URLs printed in the terminal and opens the referenced local file in the editor.
9
+ *
10
+ * A dedicated provider is needed because `UrlLinkProvider` only matches `http(s)` and
11
+ * `FileLinkProvider`'s path regex excludes `:`, so neither recognizes the `file:` scheme.
12
+ */
13
+ export declare class FileUriLinkProvider extends AbstractFileOpeningLinkProvider {
14
+ protected readonly logger: ILogger;
15
+ protected readonly fileUriRegExp: RegExp;
16
+ provideLinks(line: string, terminal: TerminalWidget): Promise<TerminalLink[]>;
17
+ /**
18
+ * Splits a trailing `:line` or `:line:column` suffix (as in `file:///x.ts:10:5`) off the matched
19
+ * URL into a one-based editor position. The drive colon of `file:///C:/x.ts` is not affected, as
20
+ * it is not followed by digits at the end of the string.
21
+ */
22
+ protected splitPosition(match: string): {
23
+ fileUri: string;
24
+ position?: Position;
25
+ };
26
+ protected toURI(match: string): URI | undefined;
27
+ protected trimTrailingPunctuation(match: string): string;
28
+ }
29
+ //# sourceMappingURL=terminal-file-uri-link-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-file-uri-link-provider.d.ts","sourceRoot":"","sources":["../../src/browser/terminal-file-uri-link-provider.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,GAAG,MAAM,4BAA4B,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,+BAA+B,EAAE,MAAM,uCAAuC,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD;;;;;GAKG;AACH,qBACa,mBAAoB,SAAQ,+BAA+B;IAGpE,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAInC,SAAS,CAAC,QAAQ,CAAC,aAAa,SAAmC;IAE7D,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAoBnF;;;;OAIG;IACH,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;KAAE;IAahF,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS;IAS/C,SAAS,CAAC,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;CAG3D"}
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 JuliaHub, Inc. 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
+ exports.FileUriLinkProvider = void 0;
19
+ const tslib_1 = require("tslib");
20
+ const core_1 = require("@theia/core");
21
+ const uri_1 = require("@theia/core/lib/common/uri");
22
+ const inversify_1 = require("@theia/core/shared/inversify");
23
+ const terminal_file_opening_link_provider_1 = require("./terminal-file-opening-link-provider");
24
+ /**
25
+ * Linkifies `file://` URLs printed in the terminal and opens the referenced local file in the editor.
26
+ *
27
+ * A dedicated provider is needed because `UrlLinkProvider` only matches `http(s)` and
28
+ * `FileLinkProvider`'s path regex excludes `:`, so neither recognizes the `file:` scheme.
29
+ */
30
+ let FileUriLinkProvider = class FileUriLinkProvider extends terminal_file_opening_link_provider_1.AbstractFileOpeningLinkProvider {
31
+ constructor() {
32
+ super(...arguments);
33
+ // The optional third slash denotes an empty authority (`file:///path`); the match runs to the first
34
+ // whitespace or character that commonly delimits a URL in prose.
35
+ this.fileUriRegExp = /file:\/\/\/?[^\s'"`<>()[\]]+/g;
36
+ }
37
+ async provideLinks(line, terminal) {
38
+ // Collect all matches synchronously before awaiting: the `g`-flag regex is instance-shared, so
39
+ // yielding mid-iteration would let a concurrent call corrupt its `lastIndex`.
40
+ const candidates = [];
41
+ this.fileUriRegExp.lastIndex = 0;
42
+ let regExpResult;
43
+ while (regExpResult = this.fileUriRegExp.exec(line)) {
44
+ candidates.push({ match: this.trimTrailingPunctuation(regExpResult[0]), startIndex: regExpResult.index });
45
+ }
46
+ const links = await Promise.all(candidates.map(async ({ match, startIndex }) => {
47
+ const { fileUri, position } = this.splitPosition(match);
48
+ const uri = this.toURI(fileUri);
49
+ if (uri && await this.isValidFileURI(uri)) {
50
+ return { startIndex, length: match.length, handle: () => this.openURI(uri, position) };
51
+ }
52
+ return undefined;
53
+ }));
54
+ return links.filter((link) => link !== undefined);
55
+ }
56
+ /**
57
+ * Splits a trailing `:line` or `:line:column` suffix (as in `file:///x.ts:10:5`) off the matched
58
+ * URL into a one-based editor position. The drive colon of `file:///C:/x.ts` is not affected, as
59
+ * it is not followed by digits at the end of the string.
60
+ */
61
+ splitPosition(match) {
62
+ const positionMatch = /:(\d+)(?::(\d+))?$/.exec(match);
63
+ if (!positionMatch) {
64
+ return { fileUri: match };
65
+ }
66
+ const line = Math.max(0, parseInt(positionMatch[1], 10) - 1);
67
+ const character = positionMatch[2] !== undefined ? Math.max(0, parseInt(positionMatch[2], 10) - 1) : 0;
68
+ return {
69
+ fileUri: match.slice(0, positionMatch.index),
70
+ position: { line, character }
71
+ };
72
+ }
73
+ toURI(match) {
74
+ try {
75
+ const uri = new uri_1.default(match);
76
+ return uri.scheme === 'file' ? uri : undefined;
77
+ }
78
+ catch {
79
+ return undefined;
80
+ }
81
+ }
82
+ trimTrailingPunctuation(match) {
83
+ return match.replace(/[.,;:]+$/, '');
84
+ }
85
+ };
86
+ exports.FileUriLinkProvider = FileUriLinkProvider;
87
+ tslib_1.__decorate([
88
+ (0, inversify_1.inject)(core_1.ILogger),
89
+ (0, inversify_1.named)('terminal:FileUriLinkProvider'),
90
+ tslib_1.__metadata("design:type", Object)
91
+ ], FileUriLinkProvider.prototype, "logger", void 0);
92
+ exports.FileUriLinkProvider = FileUriLinkProvider = tslib_1.__decorate([
93
+ (0, inversify_1.injectable)()
94
+ ], FileUriLinkProvider);
95
+ //# sourceMappingURL=terminal-file-uri-link-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-file-uri-link-provider.js","sourceRoot":"","sources":["../../src/browser/terminal-file-uri-link-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=terminal-file-uri-link-provider.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-file-uri-link-provider.spec.d.ts","sourceRoot":"","sources":["../../src/browser/terminal-file-uri-link-provider.spec.ts"],"names":[],"mappings":""}