@theia/terminal 1.77.0-next.95 → 1.77.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/browser/base/terminal-service.d.ts +1 -1
- package/lib/browser/base/terminal-service.d.ts.map +1 -1
- package/lib/browser/base/terminal-service.js +1 -4
- package/lib/browser/base/terminal-service.js.map +1 -1
- package/lib/browser/base/terminal-widget.d.ts +2 -2
- package/lib/browser/base/terminal-widget.d.ts.map +1 -1
- package/lib/browser/base/terminal-widget.js +5 -9
- package/lib/browser/base/terminal-widget.js.map +1 -1
- package/lib/browser/index.d.ts +2 -2
- package/lib/browser/index.d.ts.map +1 -1
- package/lib/browser/index.js +2 -5
- package/lib/browser/index.js.map +1 -1
- package/lib/browser/search/terminal-search-container.d.ts +1 -1
- package/lib/browser/search/terminal-search-container.d.ts.map +1 -1
- package/lib/browser/search/terminal-search-container.js +7 -9
- package/lib/browser/search/terminal-search-container.js.map +1 -1
- package/lib/browser/search/terminal-search-widget.d.ts +1 -1
- package/lib/browser/search/terminal-search-widget.d.ts.map +1 -1
- package/lib/browser/search/terminal-search-widget.js +24 -30
- package/lib/browser/search/terminal-search-widget.js.map +1 -1
- package/lib/browser/shell-terminal-profile.d.ts +3 -3
- package/lib/browser/shell-terminal-profile.d.ts.map +1 -1
- package/lib/browser/shell-terminal-profile.js +1 -5
- package/lib/browser/shell-terminal-profile.js.map +1 -1
- package/lib/browser/terminal-command-history.d.ts +1 -1
- package/lib/browser/terminal-command-history.d.ts.map +1 -1
- package/lib/browser/terminal-command-history.js +10 -14
- package/lib/browser/terminal-command-history.js.map +1 -1
- package/lib/browser/terminal-contribution.d.ts +1 -1
- package/lib/browser/terminal-contribution.d.ts.map +1 -1
- package/lib/browser/terminal-contribution.js +3 -5
- package/lib/browser/terminal-contribution.js.map +1 -1
- package/lib/browser/terminal-copy-on-selection-handler.js +9 -15
- package/lib/browser/terminal-copy-on-selection-handler.js.map +1 -1
- package/lib/browser/terminal-creation-handler.d.ts +1 -1
- package/lib/browser/terminal-creation-handler.d.ts.map +1 -1
- package/lib/browser/terminal-creation-handler.js +1 -4
- package/lib/browser/terminal-creation-handler.js.map +1 -1
- package/lib/browser/terminal-file-link-provider.d.ts +3 -3
- package/lib/browser/terminal-file-link-provider.d.ts.map +1 -1
- package/lib/browser/terminal-file-link-provider.js +37 -44
- package/lib/browser/terminal-file-link-provider.js.map +1 -1
- package/lib/browser/terminal-file-link-provider.spec.js +9 -12
- package/lib/browser/terminal-file-link-provider.spec.js.map +1 -1
- package/lib/browser/terminal-file-opening-link-provider.d.ts +2 -2
- package/lib/browser/terminal-file-opening-link-provider.d.ts.map +1 -1
- package/lib/browser/terminal-file-opening-link-provider.js +11 -16
- package/lib/browser/terminal-file-opening-link-provider.js.map +1 -1
- package/lib/browser/terminal-file-uri-link-provider.d.ts +3 -3
- package/lib/browser/terminal-file-uri-link-provider.d.ts.map +1 -1
- package/lib/browser/terminal-file-uri-link-provider.js +13 -17
- package/lib/browser/terminal-file-uri-link-provider.js.map +1 -1
- package/lib/browser/terminal-file-uri-link-provider.spec.js +16 -19
- package/lib/browser/terminal-file-uri-link-provider.spec.js.map +1 -1
- package/lib/browser/terminal-frontend-contribution.d.ts +8 -8
- package/lib/browser/terminal-frontend-contribution.d.ts.map +1 -1
- package/lib/browser/terminal-frontend-contribution.js +194 -221
- package/lib/browser/terminal-frontend-contribution.js.map +1 -1
- package/lib/browser/terminal-frontend-module.js +94 -96
- package/lib/browser/terminal-frontend-module.js.map +1 -1
- package/lib/browser/terminal-link-helpers.js +3 -8
- package/lib/browser/terminal-link-helpers.js.map +1 -1
- package/lib/browser/terminal-link-provider.d.ts +4 -4
- package/lib/browser/terminal-link-provider.d.ts.map +1 -1
- package/lib/browser/terminal-link-provider.js +46 -60
- package/lib/browser/terminal-link-provider.js.map +1 -1
- package/lib/browser/terminal-profile-service.d.ts +1 -1
- package/lib/browser/terminal-profile-service.d.ts.map +1 -1
- package/lib/browser/terminal-profile-service.js +23 -27
- package/lib/browser/terminal-profile-service.js.map +1 -1
- package/lib/browser/terminal-quick-open-service.d.ts +2 -2
- package/lib/browser/terminal-quick-open-service.d.ts.map +1 -1
- package/lib/browser/terminal-quick-open-service.js +30 -38
- package/lib/browser/terminal-quick-open-service.js.map +1 -1
- package/lib/browser/terminal-secondary-window-close-contribution.d.ts +1 -1
- package/lib/browser/terminal-secondary-window-close-contribution.d.ts.map +1 -1
- package/lib/browser/terminal-secondary-window-close-contribution.js +10 -14
- package/lib/browser/terminal-secondary-window-close-contribution.js.map +1 -1
- package/lib/browser/terminal-shell-handler.d.ts +3 -3
- package/lib/browser/terminal-shell-handler.d.ts.map +1 -1
- package/lib/browser/terminal-shell-handler.js +17 -22
- package/lib/browser/terminal-shell-handler.js.map +1 -1
- package/lib/browser/terminal-theme-service.js +15 -20
- package/lib/browser/terminal-theme-service.js.map +1 -1
- package/lib/browser/terminal-theme-service.spec.js +30 -35
- package/lib/browser/terminal-theme-service.spec.js.map +1 -1
- package/lib/browser/terminal-url-link-provider.d.ts +2 -2
- package/lib/browser/terminal-url-link-provider.d.ts.map +1 -1
- package/lib/browser/terminal-url-link-provider.js +11 -15
- package/lib/browser/terminal-url-link-provider.js.map +1 -1
- package/lib/browser/terminal-widget-impl.d.ts +11 -11
- package/lib/browser/terminal-widget-impl.d.ts.map +1 -1
- package/lib/browser/terminal-widget-impl.js +148 -173
- package/lib/browser/terminal-widget-impl.js.map +1 -1
- package/lib/browser-only/browser-only-terminal-frontend-contribution.d.ts +3 -3
- package/lib/browser-only/browser-only-terminal-frontend-contribution.d.ts.map +1 -1
- package/lib/browser-only/browser-only-terminal-frontend-contribution.js +12 -16
- package/lib/browser-only/browser-only-terminal-frontend-contribution.js.map +1 -1
- package/lib/browser-only/browser-only-terminal-frontend-contribution.spec.js +68 -70
- package/lib/browser-only/browser-only-terminal-frontend-contribution.spec.js.map +1 -1
- package/lib/browser-only/terminal-frontend-only-module.js +5 -7
- package/lib/browser-only/terminal-frontend-only-module.js.map +1 -1
- package/lib/common/base-terminal-protocol.js +7 -11
- package/lib/common/base-terminal-protocol.js.map +1 -1
- package/lib/common/shell-terminal-protocol.d.ts +1 -1
- package/lib/common/shell-terminal-protocol.d.ts.map +1 -1
- package/lib/common/shell-terminal-protocol.js +6 -9
- package/lib/common/shell-terminal-protocol.js.map +1 -1
- package/lib/common/shell-type.js +12 -20
- package/lib/common/shell-type.js.map +1 -1
- package/lib/common/shell-type.spec.js +69 -71
- package/lib/common/shell-type.spec.js.map +1 -1
- package/lib/common/terminal-preferences.js +77 -83
- package/lib/common/terminal-preferences.js.map +1 -1
- package/lib/common/terminal-protocol.d.ts +1 -1
- package/lib/common/terminal-protocol.d.ts.map +1 -1
- package/lib/common/terminal-protocol.js +3 -6
- package/lib/common/terminal-protocol.js.map +1 -1
- package/lib/common/terminal-watcher.d.ts +1 -1
- package/lib/common/terminal-watcher.d.ts.map +1 -1
- package/lib/common/terminal-watcher.js +10 -13
- package/lib/common/terminal-watcher.js.map +1 -1
- package/lib/node/base-terminal-server.d.ts +1 -1
- package/lib/node/base-terminal-server.d.ts.map +1 -1
- package/lib/node/base-terminal-server.js +24 -28
- package/lib/node/base-terminal-server.js.map +1 -1
- package/lib/node/buffering-stream.js +5 -11
- package/lib/node/buffering-stream.js.map +1 -1
- package/lib/node/buffering-stream.spec.js +18 -20
- package/lib/node/buffering-stream.spec.js.map +1 -1
- package/lib/node/index.d.ts +1 -1
- package/lib/node/index.d.ts.map +1 -1
- package/lib/node/index.js +1 -4
- package/lib/node/index.js.map +1 -1
- package/lib/node/shell-integration-injector.d.ts +1 -1
- package/lib/node/shell-integration-injector.d.ts.map +1 -1
- package/lib/node/shell-integration-injector.js +19 -24
- package/lib/node/shell-integration-injector.js.map +1 -1
- package/lib/node/shell-integration-injector.spec.js +24 -27
- package/lib/node/shell-integration-injector.spec.js.map +1 -1
- package/lib/node/shell-process.js +28 -34
- package/lib/node/shell-process.js.map +1 -1
- package/lib/node/shell-terminal-server.d.ts +3 -3
- package/lib/node/shell-terminal-server.d.ts.map +1 -1
- package/lib/node/shell-terminal-server.js +39 -44
- package/lib/node/shell-terminal-server.js.map +1 -1
- package/lib/node/shell-terminal-server.spec.js +12 -14
- package/lib/node/shell-terminal-server.spec.js.map +1 -1
- package/lib/node/terminal-backend-contribution.js +17 -22
- package/lib/node/terminal-backend-contribution.js.map +1 -1
- package/lib/node/terminal-backend-contribution.slow-spec.js +10 -12
- package/lib/node/terminal-backend-contribution.slow-spec.js.map +1 -1
- package/lib/node/terminal-backend-module.d.ts +1 -1
- package/lib/node/terminal-backend-module.d.ts.map +1 -1
- package/lib/node/terminal-backend-module.js +36 -39
- package/lib/node/terminal-backend-module.js.map +1 -1
- package/lib/node/terminal-server.d.ts +2 -2
- package/lib/node/terminal-server.d.ts.map +1 -1
- package/lib/node/terminal-server.js +14 -19
- package/lib/node/terminal-server.js.map +1 -1
- package/lib/node/terminal-server.spec.js +5 -8
- package/lib/node/terminal-server.spec.js.map +1 -1
- package/lib/node/test/terminal-test-container.js +17 -21
- package/lib/node/test/terminal-test-container.js.map +1 -1
- package/lib/package.spec.d.ts +1 -0
- package/lib/package.spec.js +1 -1
- package/lib/package.spec.js.map +1 -1
- package/package.json +21 -10
- package/src/browser/base/terminal-service.ts +1 -1
- package/src/browser/base/terminal-widget.ts +2 -2
- package/src/browser/index.ts +2 -2
- package/src/browser/search/terminal-search-container.ts +4 -3
- package/src/browser/search/terminal-search-widget.tsx +3 -2
- package/src/browser/shell-terminal-profile.ts +3 -3
- package/src/browser/terminal-command-history.ts +1 -1
- package/src/browser/terminal-contribution.ts +1 -1
- package/src/browser/terminal-creation-handler.ts +1 -1
- package/src/browser/terminal-file-link-provider.spec.ts +2 -2
- package/src/browser/terminal-file-link-provider.ts +4 -4
- package/src/browser/terminal-file-opening-link-provider.ts +2 -2
- package/src/browser/terminal-file-uri-link-provider.spec.ts +2 -2
- package/src/browser/terminal-file-uri-link-provider.ts +3 -3
- package/src/browser/terminal-frontend-contribution.ts +12 -10
- package/src/browser/terminal-frontend-module.ts +23 -23
- package/src/browser/terminal-link-provider.ts +4 -4
- package/src/browser/terminal-profile-service.ts +2 -2
- package/src/browser/terminal-quick-open-service.ts +3 -3
- package/src/browser/terminal-secondary-window-close-contribution.ts +2 -2
- package/src/browser/terminal-shell-handler.ts +3 -3
- package/src/browser/terminal-theme-service.spec.ts +1 -1
- package/src/browser/terminal-theme-service.ts +1 -1
- package/src/browser/terminal-url-link-provider.ts +2 -2
- package/src/browser/terminal-widget-impl.ts +17 -16
- package/src/browser-only/browser-only-terminal-frontend-contribution.spec.ts +9 -9
- package/src/browser-only/browser-only-terminal-frontend-contribution.ts +3 -3
- package/src/browser-only/terminal-frontend-only-module.ts +2 -2
- package/src/common/shell-terminal-protocol.ts +1 -1
- package/src/common/shell-type.spec.ts +1 -1
- package/src/common/terminal-protocol.ts +1 -1
- package/src/common/terminal-watcher.ts +1 -1
- package/src/node/base-terminal-server.ts +2 -2
- package/src/node/buffering-stream.spec.ts +1 -1
- package/src/node/index.ts +1 -1
- package/src/node/shell-integration-injector.spec.ts +2 -2
- package/src/node/shell-integration-injector.ts +4 -4
- package/src/node/shell-terminal-server.spec.ts +5 -4
- package/src/node/shell-terminal-server.ts +3 -3
- package/src/node/terminal-backend-contribution.slow-spec.ts +3 -3
- package/src/node/terminal-backend-contribution.ts +2 -2
- package/src/node/terminal-backend-module.ts +10 -10
- package/src/node/terminal-server.spec.ts +2 -2
- package/src/node/terminal-server.ts +2 -2
- package/src/node/test/terminal-test-container.ts +1 -1
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// *****************************************************************************
|
|
3
2
|
// Copyright (C) 2026 EclipseSource and others.
|
|
4
3
|
//
|
|
@@ -14,8 +13,6 @@
|
|
|
14
13
|
//
|
|
15
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
15
|
// *****************************************************************************
|
|
17
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.TerminalCreationHandler = void 0;
|
|
19
16
|
/**
|
|
20
17
|
* Contribution point that allows extensions to intercept terminal placement
|
|
21
18
|
* and take ownership of how/where terminals are displayed.
|
|
@@ -29,5 +26,5 @@ exports.TerminalCreationHandler = void 0;
|
|
|
29
26
|
* manager's tree view) to take ownership of terminal placement without relying
|
|
30
27
|
* on post-hoc event interception or timing-sensitive side-channel flags.
|
|
31
28
|
*/
|
|
32
|
-
|
|
29
|
+
export const TerminalCreationHandler = Symbol('TerminalCreationHandler');
|
|
33
30
|
//# sourceMappingURL=terminal-creation-handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-creation-handler.js","sourceRoot":"","sources":["../../src/browser/terminal-creation-handler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"terminal-creation-handler.js","sourceRoot":"","sources":["../../src/browser/terminal-creation-handler.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,+CAA+C;AAC/C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;AAMhF;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { QuickInputService, ILogger } from '@theia/core';
|
|
2
2
|
import URI from '@theia/core/lib/common/uri';
|
|
3
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';
|
|
4
|
+
import { AbstractFileOpeningLinkProvider } from './terminal-file-opening-link-provider.js';
|
|
5
|
+
import { TerminalWidget } from './base/terminal-widget.js';
|
|
6
|
+
import { TerminalLink } from './terminal-link-provider.js';
|
|
7
7
|
import { FileSearchService } from '@theia/file-search/lib/common/file-search-service';
|
|
8
8
|
import { WorkspaceService } from '@theia/workspace/lib/browser';
|
|
9
9
|
export declare class FileLinkProvider extends AbstractFileOpeningLinkProvider {
|
|
@@ -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,GAAG,MAAM,4BAA4B,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,+BAA+B,EAAE,MAAM,
|
|
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,0CAA0C,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// *****************************************************************************
|
|
3
2
|
// Copyright (C) 2019 TypeFox and others.
|
|
4
3
|
//
|
|
@@ -14,17 +13,15 @@
|
|
|
14
13
|
//
|
|
15
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
15
|
// *****************************************************************************
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const browser_1 = require("@theia/workspace/lib/browser");
|
|
27
|
-
let FileLinkProvider = class FileLinkProvider extends terminal_file_opening_link_provider_1.AbstractFileOpeningLinkProvider {
|
|
16
|
+
import { __decorate } from "tslib";
|
|
17
|
+
import { OS, Path, QuickInputService, ILogger } from '@theia/core';
|
|
18
|
+
import URI from '@theia/core/lib/common/uri';
|
|
19
|
+
import { inject, injectable, named } from '@theia/core/shared/inversify';
|
|
20
|
+
import { AbstractFileOpeningLinkProvider } from './terminal-file-opening-link-provider.js';
|
|
21
|
+
import { TerminalWidgetImpl } from './terminal-widget-impl.js';
|
|
22
|
+
import { FileSearchService } from '@theia/file-search/lib/common/file-search-service';
|
|
23
|
+
import { WorkspaceService } from '@theia/workspace/lib/browser';
|
|
24
|
+
let FileLinkProvider = class FileLinkProvider extends AbstractFileOpeningLinkProvider {
|
|
28
25
|
async provideLinks(line, terminal) {
|
|
29
26
|
const links = [];
|
|
30
27
|
const regExp = await this.createRegExp();
|
|
@@ -42,7 +39,7 @@ let FileLinkProvider = class FileLinkProvider extends terminal_file_opening_link
|
|
|
42
39
|
return links;
|
|
43
40
|
}
|
|
44
41
|
async createRegExp() {
|
|
45
|
-
const baseLocalLinkClause =
|
|
42
|
+
const baseLocalLinkClause = OS.backend.isWindows ? winLocalLinkClause : unixLocalLinkClause;
|
|
46
43
|
return new RegExp(`${baseLocalLinkClause}(${lineAndColumnClause})`, 'g');
|
|
47
44
|
}
|
|
48
45
|
async isValidFile(match, terminal) {
|
|
@@ -71,11 +68,11 @@ let FileLinkProvider = class FileLinkProvider extends terminal_file_opening_link
|
|
|
71
68
|
if (match.startsWith('//') || path.startsWith('//')) {
|
|
72
69
|
return;
|
|
73
70
|
}
|
|
74
|
-
const pathObj = new
|
|
71
|
+
const pathObj = new Path(path);
|
|
75
72
|
return pathObj.isAbsolute ? cwd.withPath(path) : cwd.resolve(path);
|
|
76
73
|
}
|
|
77
74
|
async getCwd(terminal) {
|
|
78
|
-
if (terminal instanceof
|
|
75
|
+
if (terminal instanceof TerminalWidgetImpl) {
|
|
79
76
|
return terminal.cwd;
|
|
80
77
|
}
|
|
81
78
|
return terminal.lastCwd;
|
|
@@ -117,48 +114,44 @@ let FileLinkProvider = class FileLinkProvider extends terminal_file_opening_link
|
|
|
117
114
|
return info;
|
|
118
115
|
}
|
|
119
116
|
getLineAndColumnMatchIndex() {
|
|
120
|
-
return
|
|
117
|
+
return OS.backend.isWindows ? winLineAndColumnMatchIndex : unixLineAndColumnMatchIndex;
|
|
121
118
|
}
|
|
122
119
|
};
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
(0, inversify_1.inject)(core_1.QuickInputService),
|
|
126
|
-
tslib_1.__metadata("design:type", Object)
|
|
120
|
+
__decorate([
|
|
121
|
+
inject(QuickInputService)
|
|
127
122
|
], FileLinkProvider.prototype, "quickInputService", void 0);
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
tslib_1.__metadata("design:type", Object)
|
|
123
|
+
__decorate([
|
|
124
|
+
inject(FileSearchService)
|
|
131
125
|
], FileLinkProvider.prototype, "searchService", void 0);
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
tslib_1.__metadata("design:type", browser_1.WorkspaceService)
|
|
126
|
+
__decorate([
|
|
127
|
+
inject(WorkspaceService)
|
|
135
128
|
], FileLinkProvider.prototype, "workspaceService", void 0);
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
tslib_1.__metadata("design:type", Object)
|
|
129
|
+
__decorate([
|
|
130
|
+
inject(ILogger),
|
|
131
|
+
named('terminal:FileLinkProvider')
|
|
140
132
|
], FileLinkProvider.prototype, "logger", void 0);
|
|
141
|
-
|
|
142
|
-
|
|
133
|
+
FileLinkProvider = __decorate([
|
|
134
|
+
injectable()
|
|
143
135
|
], FileLinkProvider);
|
|
136
|
+
export { FileLinkProvider };
|
|
144
137
|
let FileDiffPreLinkProvider = class FileDiffPreLinkProvider extends FileLinkProvider {
|
|
145
138
|
async createRegExp() {
|
|
146
139
|
return /^--- a\/(\S*)/g;
|
|
147
140
|
}
|
|
148
141
|
};
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
(0, inversify_1.injectable)()
|
|
142
|
+
FileDiffPreLinkProvider = __decorate([
|
|
143
|
+
injectable()
|
|
152
144
|
], FileDiffPreLinkProvider);
|
|
145
|
+
export { FileDiffPreLinkProvider };
|
|
153
146
|
let FileDiffPostLinkProvider = class FileDiffPostLinkProvider extends FileLinkProvider {
|
|
154
147
|
async createRegExp() {
|
|
155
148
|
return /^\+\+\+ b\/(\S*)/g;
|
|
156
149
|
}
|
|
157
150
|
};
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
(0, inversify_1.injectable)()
|
|
151
|
+
FileDiffPostLinkProvider = __decorate([
|
|
152
|
+
injectable()
|
|
161
153
|
], FileDiffPostLinkProvider);
|
|
154
|
+
export { FileDiffPostLinkProvider };
|
|
162
155
|
let LocalFileLinkProvider = class LocalFileLinkProvider extends FileLinkProvider {
|
|
163
156
|
async createRegExp() {
|
|
164
157
|
// match links that might not start with a separator, e.g. 'foo.bar', but don't match single words e.g. 'foo'
|
|
@@ -168,7 +161,7 @@ let LocalFileLinkProvider = class LocalFileLinkProvider extends FileLinkProvider
|
|
|
168
161
|
const baseLocalWindowsLinkClause = '((' + winPathPrefix + '|' +
|
|
169
162
|
'(' + winExcludedPathCharactersClause + '+(' + winPathSeparatorClause + '|' + '\\.' + ')' + winExcludedPathCharactersClause + '+))' +
|
|
170
163
|
'(' + winPathSeparatorClause + '(' + winExcludedPathCharactersClause + ')+)*)';
|
|
171
|
-
const baseLocalLinkClause =
|
|
164
|
+
const baseLocalLinkClause = OS.backend.isWindows ? baseLocalWindowsLinkClause : baseLocalUnixLinkClause;
|
|
172
165
|
return new RegExp(`${baseLocalLinkClause}(${lineAndColumnClause})`, 'g');
|
|
173
166
|
}
|
|
174
167
|
async provideLinks(line, terminal) {
|
|
@@ -198,7 +191,7 @@ let LocalFileLinkProvider = class LocalFileLinkProvider extends FileLinkProvider
|
|
|
198
191
|
return links;
|
|
199
192
|
}
|
|
200
193
|
getLineAndColumnMatchIndex() {
|
|
201
|
-
return
|
|
194
|
+
return OS.backend.isWindows ? 14 : 12;
|
|
202
195
|
}
|
|
203
196
|
async isValidWorkspaceFile(searchTerm, terminal) {
|
|
204
197
|
if (!searchTerm) {
|
|
@@ -217,7 +210,7 @@ let LocalFileLinkProvider = class LocalFileLinkProvider extends FileLinkProvider
|
|
|
217
210
|
// checks if the string ends in a separator + searchTerm
|
|
218
211
|
const regex = new RegExp(`[\\\\|\\/]${searchTerm}$`);
|
|
219
212
|
if (files.length && regex.test(files[0])) {
|
|
220
|
-
const fileUri = new
|
|
213
|
+
const fileUri = new URI(files[0]);
|
|
221
214
|
const valid = await this.isValidFileURI(fileUri);
|
|
222
215
|
if (valid) {
|
|
223
216
|
return fileUri;
|
|
@@ -225,10 +218,10 @@ let LocalFileLinkProvider = class LocalFileLinkProvider extends FileLinkProvider
|
|
|
225
218
|
}
|
|
226
219
|
}
|
|
227
220
|
};
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
(0, inversify_1.injectable)()
|
|
221
|
+
LocalFileLinkProvider = __decorate([
|
|
222
|
+
injectable()
|
|
231
223
|
], LocalFileLinkProvider);
|
|
224
|
+
export { LocalFileLinkProvider };
|
|
232
225
|
// The following regular expressions are taken from:
|
|
233
226
|
// https://github.com/microsoft/vscode/blob/b118105bf28d773fbbce683f7230d058be2f89a7/src/vs/workbench/contrib/terminal/browser/links/terminalLocalLinkDetector.ts#L34-L58
|
|
234
227
|
/*---------------------------------------------------------------------------------------------
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-file-link-provider.js","sourceRoot":"","sources":["../../src/browser/terminal-file-link-provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"terminal-file-link-provider.js","sourceRoot":"","sources":["../../src/browser/terminal-file-link-provider.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,yCAAyC;AACzC,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;;AAEhF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,GAAG,MAAM,4BAA4B,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAEzE,OAAO,EAAE,+BAA+B,EAAE,MAAM,0CAA0C,CAAC;AAG3F,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEzD,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,+BAA+B;IAQjE,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,QAAwB;QACrD,MAAM,KAAK,GAAmB,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QACzC,IAAI,YAAoC,CAAC;QACzC,OAAO,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;gBAC1C,KAAK,CAAC,IAAI,CAAC;oBACP,UAAU,EAAE,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM;oBAC3C,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC;iBAC3C,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAES,KAAK,CAAC,YAAY;QACxB,MAAM,mBAAmB,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,mBAAmB,CAAC;QAC5F,OAAO,IAAI,MAAM,CAAC,GAAG,mBAAmB,IAAI,mBAAmB,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7E,CAAC;IAES,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,QAAwB;QAC/D,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YACpE,IAAI,MAAM,EAAE,CAAC;gBACT,qGAAqG;gBACrG,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YACvC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,GAAG,KAAK,EAAE,GAAG,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAES,KAAK,CAAC,KAAK,CAAC,KAAa,EAAE,GAAQ;QACzC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO;QACX,CAAC;QACD,yFAAyF;QACzF,sFAAsF;QACtF,2FAA2F;QAC3F,2FAA2F;QAC3F,uFAAuF;QACvF,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAClD,OAAO;QACX,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,CAAC;IAES,KAAK,CAAC,MAAM,CAAC,QAAwB;QAC3C,IAAI,QAAQ,YAAY,kBAAkB,EAAE,CAAC;YACzC,OAAO,QAAQ,CAAC,GAAG,CAAC;QACxB,CAAC;QACD,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC5B,CAAC;IAES,KAAK,CAAC,WAAW,CAAC,IAAY;QACpC,MAAM,OAAO,GAAoB,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxE,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAa,EAAE,QAAwB;QAC9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAES,KAAK,CAAC,eAAe,CAAC,IAAY;QACxC,MAAM,OAAO,GAAoB,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxE,MAAM,IAAI,GAAa,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAEjD,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,uBAAuB,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAClE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClD,MAAM,cAAc,GAAG,uBAAuB,GAAG,CAAC,6BAA6B,GAAG,CAAC,CAAC,CAAC;YACrF,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;YAC1C,IAAI,SAAS,EAAE,CAAC;gBACZ,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;gBACxC,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;gBACjD,IAAI,YAAY,EAAE,CAAC;oBACf,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;gBACpD,CAAC;gBACD,MAAM;YACV,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAES,0BAA0B;QAChC,OAAO,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,2BAA2B,CAAC;IAC3F,CAAC;CACJ,CAAA;AA9GiD;IAA7C,MAAM,CAAC,iBAAiB,CAAC;2DAAyD;AAC9C;IAApC,MAAM,CAAC,iBAAiB,CAAC;uDAA4C;AACzB;IAA5C,MAAM,CAAC,gBAAgB,CAAC;0DAAuD;AAE7D;IADlB,MAAM,CAAC,OAAO,CAAC;IAAE,KAAK,CAAC,2BAA2B,CAAC;gDACjB;AAN1B,gBAAgB;IAD5B,UAAU,EAAE;GACA,gBAAgB,CAgH5B;;AAGM,IAAM,uBAAuB,GAA7B,MAAM,uBAAwB,SAAQ,gBAAgB;IAChD,KAAK,CAAC,YAAY;QACvB,OAAO,gBAAgB,CAAC;IAC5B,CAAC;CACJ,CAAA;AAJY,uBAAuB;IADnC,UAAU,EAAE;GACA,uBAAuB,CAInC;;AAGM,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,gBAAgB;IACjD,KAAK,CAAC,YAAY;QACvB,OAAO,mBAAmB,CAAC;IAC/B,CAAC;CACJ,CAAA;AAJY,wBAAwB;IADpC,UAAU,EAAE;GACA,wBAAwB,CAIpC;;AAGM,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,gBAAgB;IAC9C,KAAK,CAAC,YAAY;QACvB,6GAA6G;QAC7G,MAAM,uBAAuB,GACzB,IAAI,GAAG,UAAU,GAAG,GAAG;YACvB,GAAG,GAAG,4BAA4B,GAAG,IAAI,GAAG,mBAAmB,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,GAAG,4BAA4B,GAAG,KAAK;YAC1H,GAAG,GAAG,mBAAmB,GAAG,GAAG,GAAG,4BAA4B,GAAG,OAAO,CAAC;QAE7E,MAAM,0BAA0B,GAC5B,IAAI,GAAG,aAAa,GAAG,GAAG;YAC1B,GAAG,GAAG,+BAA+B,GAAG,IAAI,GAAG,sBAAsB,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,GAAG,+BAA+B,GAAG,KAAK;YACnI,GAAG,GAAG,sBAAsB,GAAG,GAAG,GAAG,+BAA+B,GAAG,OAAO,CAAC;QAEnF,MAAM,mBAAmB,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,uBAAuB,CAAC;QACxG,OAAO,IAAI,MAAM,CAAC,GAAG,mBAAmB,IAAI,mBAAmB,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7E,CAAC;IAEQ,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,QAAwB;QAC9D,MAAM,KAAK,GAAmB,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QACzC,IAAI,YAAoC,CAAC;QACzC,OAAO,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACjD,IAAI,UAAU,EAAE,CAAC;gBACb,KAAK,CAAC,IAAI,CAAC;oBACP,UAAU,EAAE,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM;oBAC3C,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,MAAM,EAAE,KAAK,IAAI,EAAE;wBACf,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;wBACtE,IAAI,OAAO,EAAE,CAAC;4BACV,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;4BACnD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;wBACpC,CAAC;6BAAM,CAAC;4BACJ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACvC,CAAC;oBACL,CAAC;iBACJ,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEkB,0BAA0B;QACzC,OAAO,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1C,CAAC;IAES,KAAK,CAAC,oBAAoB,CAAC,UAA8B,EAAE,QAAwB;QACzF,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACxC,4DAA4D;QAC5D,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QACpD,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjG,gDAAgD;QAChD,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE;YACrD,QAAQ,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,cAAc,CAAC;YAC7C,UAAU,EAAE,IAAI;YAChB,KAAK,EAAE,CAAC;SACX,CAAC,CAAC,CAAC;QACJ,wDAAwD;QACxD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,aAAa,UAAU,GAAG,CAAC,CAAC;QACrD,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YACjD,IAAI,KAAK,EAAE,CAAC;gBACR,OAAO,OAAO,CAAC;YACnB,CAAC;QACL,CAAC;IACL,CAAC;CACJ,CAAA;AAvEY,qBAAqB;IADjC,UAAU,EAAE;GACA,qBAAqB,CAuEjC;;AAED,oDAAoD;AACpD,yKAAyK;AAEzK;;;gGAGgG;AAEhG,MAAM,UAAU,GAAG,eAAe,CAAC;AACnC,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAClC,yEAAyE;AACzE,sEAAsE;AACtE,MAAM,4BAA4B,GAAG,gCAAgC,CAAC;AACtE,iFAAiF;AACjF,MAAM,mBAAmB,GAAG,IAAI,GAAG,UAAU,GAAG,IAAI,GAAG,4BAA4B,GAAG,OAAO,GAAG,mBAAmB,GAAG,GAAG,GAAG,4BAA4B,GAAG,OAAO,CAAC;AAEnK,MAAM,cAAc,GAAG,+BAA+B,CAAC;AACvD,MAAM,aAAa,GAAG,GAAG,GAAG,cAAc,GAAG,eAAe,CAAC;AAC7D,MAAM,sBAAsB,GAAG,YAAY,CAAC;AAC5C,MAAM,+BAA+B,GAAG,uCAAuC,CAAC;AAChF,8FAA8F;AAC9F,MAAM,kBAAkB,GAAG,IAAI,GAAG,aAAa,GAAG,IAAI,GAAG,+BAA+B,GAAG,OAAO,GAAG,sBAAsB,GAAG,GAAG,GAAG,+BAA+B,GAAG,OAAO,CAAC;AAE9K,yJAAyJ;AACzJ,MAAM,mBAAmB,GAAG;IACxB,sCAAsC;IACtC,+CAA+C;IAC/C,gCAAgC;IAChC,kCAAkC;IAClC,mCAAmC;IACnC,6CAA6C;IAC7C,gCAAgC;IAChC,0CAA0C;IAC1C,sIAAsI;IACtI,6DAA6D;IAC7D,qCAAqC;IACrC,oDAAoD;CACvD,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,QAAQ,IAAI,CAAC,CAAC;AAE5C,oFAAoF;AACpF,MAAM,0BAA0B,GAAG,EAAE,CAAC;AACtC,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAEvC,sFAAsF;AACtF,MAAM,6BAA6B,GAAG,CAAC,CAAC"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// *****************************************************************************
|
|
3
2
|
// Copyright (C) 2026 JuliaHub, Inc. and others.
|
|
4
3
|
//
|
|
@@ -14,21 +13,19 @@
|
|
|
14
13
|
//
|
|
15
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
15
|
// *****************************************************************************
|
|
17
|
-
|
|
18
|
-
const
|
|
19
|
-
const jsdom_1 = require("@theia/core/lib/browser/test/jsdom");
|
|
20
|
-
const disableJSDOM = (0, jsdom_1.enableJSDOM)();
|
|
16
|
+
import { enableJSDOM } from '@theia/core/lib/browser/test/jsdom';
|
|
17
|
+
const disableJSDOM = enableJSDOM();
|
|
21
18
|
// Importing the provider pulls in xterm, which probes a canvas 2d context on load; JSDOM has no
|
|
22
19
|
// canvas backend, so stub it out to keep this spec runnable without the native `canvas` package.
|
|
23
20
|
HTMLCanvasElement.prototype.getContext = () => undefined;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
21
|
+
import { FrontendApplicationConfigProvider } from '@theia/core/lib/browser/frontend-application-config-provider';
|
|
22
|
+
FrontendApplicationConfigProvider.set({});
|
|
23
|
+
import * as chai from 'chai';
|
|
24
|
+
import URI from '@theia/core/lib/common/uri';
|
|
25
|
+
import { FileLinkProvider } from './terminal-file-link-provider.js';
|
|
29
26
|
disableJSDOM();
|
|
30
27
|
const expect = chai.expect;
|
|
31
|
-
class TestFileLinkProvider extends
|
|
28
|
+
class TestFileLinkProvider extends FileLinkProvider {
|
|
32
29
|
constructor() {
|
|
33
30
|
super();
|
|
34
31
|
this.loggedErrors = [];
|
|
@@ -44,7 +41,7 @@ function terminalWithCwd(cwd) {
|
|
|
44
41
|
return { lastCwd: cwd };
|
|
45
42
|
}
|
|
46
43
|
describe('FileLinkProvider', () => {
|
|
47
|
-
const cwd = new
|
|
44
|
+
const cwd = new URI('file:///home/user/project');
|
|
48
45
|
describe('#toURI', () => {
|
|
49
46
|
it('should skip a URL authority path beginning with "//" instead of throwing', async () => {
|
|
50
47
|
const provider = new TestFileLinkProvider();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-file-link-provider.spec.js","sourceRoot":"","sources":["../../src/browser/terminal-file-link-provider.spec.ts"],"names":[],"mappings":"
|
|
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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"}
|
|
@@ -3,8 +3,8 @@ import { OpenerService } from '@theia/core/lib/browser';
|
|
|
3
3
|
import URI from '@theia/core/lib/common/uri';
|
|
4
4
|
import { Position } from '@theia/editor/lib/browser';
|
|
5
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';
|
|
6
|
+
import { TerminalWidget } from './base/terminal-widget.js';
|
|
7
|
+
import { TerminalLink, TerminalLinkProvider } from './terminal-link-provider.js';
|
|
8
8
|
/**
|
|
9
9
|
* Base for terminal link providers that resolve a matched string to a local file URI and open it in
|
|
10
10
|
* the editor. Subclasses contribute their own matching in {@link provideLinks} and a named logger.
|
|
@@ -1 +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,
|
|
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,2BAA2B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEjF;;;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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// *****************************************************************************
|
|
3
2
|
// Copyright (C) 2026 JuliaHub, Inc. and others.
|
|
4
3
|
//
|
|
@@ -14,12 +13,10 @@
|
|
|
14
13
|
//
|
|
15
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
15
|
// *****************************************************************************
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const inversify_1 = require("@theia/core/shared/inversify");
|
|
22
|
-
const file_service_1 = require("@theia/filesystem/lib/browser/file-service");
|
|
16
|
+
import { __decorate } from "tslib";
|
|
17
|
+
import { OpenerService } from '@theia/core/lib/browser';
|
|
18
|
+
import { inject, injectable } from '@theia/core/shared/inversify';
|
|
19
|
+
import { FileService } from '@theia/filesystem/lib/browser/file-service';
|
|
23
20
|
/**
|
|
24
21
|
* Base for terminal link providers that resolve a matched string to a local file URI and open it in
|
|
25
22
|
* the editor. Subclasses contribute their own matching in {@link provideLinks} and a named logger.
|
|
@@ -44,16 +41,14 @@ let AbstractFileOpeningLinkProvider = class AbstractFileOpeningLinkProvider {
|
|
|
44
41
|
}
|
|
45
42
|
}
|
|
46
43
|
};
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
(0, inversify_1.inject)(browser_1.OpenerService),
|
|
50
|
-
tslib_1.__metadata("design:type", Object)
|
|
44
|
+
__decorate([
|
|
45
|
+
inject(OpenerService)
|
|
51
46
|
], AbstractFileOpeningLinkProvider.prototype, "openerService", void 0);
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
tslib_1.__metadata("design:type", file_service_1.FileService)
|
|
47
|
+
__decorate([
|
|
48
|
+
inject(FileService)
|
|
55
49
|
], AbstractFileOpeningLinkProvider.prototype, "fileService", void 0);
|
|
56
|
-
|
|
57
|
-
|
|
50
|
+
AbstractFileOpeningLinkProvider = __decorate([
|
|
51
|
+
injectable()
|
|
58
52
|
], AbstractFileOpeningLinkProvider);
|
|
53
|
+
export { AbstractFileOpeningLinkProvider };
|
|
59
54
|
//# sourceMappingURL=terminal-file-opening-link-provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-file-opening-link-provider.js","sourceRoot":"","sources":["../../src/browser/terminal-file-opening-link-provider.ts"],"names":[],"mappings":"
|
|
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,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;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;AAxB6C;IAAzC,MAAM,CAAC,aAAa,CAAC;sEAAiD;AAC/B;IAAvC,MAAM,CAAC,WAAW,CAAC;oEAA6C;AAH/C,+BAA+B;IADpD,UAAU,EAAE;GACS,+BAA+B,CA0BpD"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ILogger } from '@theia/core';
|
|
2
2
|
import URI from '@theia/core/lib/common/uri';
|
|
3
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';
|
|
4
|
+
import { AbstractFileOpeningLinkProvider } from './terminal-file-opening-link-provider.js';
|
|
5
|
+
import { TerminalWidget } from './base/terminal-widget.js';
|
|
6
|
+
import { TerminalLink } from './terminal-link-provider.js';
|
|
7
7
|
/**
|
|
8
8
|
* Linkifies `file://` URLs printed in the terminal and opens the referenced local file in the editor.
|
|
9
9
|
*
|
|
@@ -1 +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,
|
|
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,0CAA0C,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D;;;;;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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// *****************************************************************************
|
|
3
2
|
// Copyright (C) 2026 JuliaHub, Inc. and others.
|
|
4
3
|
//
|
|
@@ -14,20 +13,18 @@
|
|
|
14
13
|
//
|
|
15
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
15
|
// *****************************************************************************
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
const inversify_1 = require("@theia/core/shared/inversify");
|
|
23
|
-
const terminal_file_opening_link_provider_1 = require("./terminal-file-opening-link-provider");
|
|
16
|
+
import { __decorate } from "tslib";
|
|
17
|
+
import { ILogger } from '@theia/core';
|
|
18
|
+
import URI from '@theia/core/lib/common/uri';
|
|
19
|
+
import { inject, injectable, named } from '@theia/core/shared/inversify';
|
|
20
|
+
import { AbstractFileOpeningLinkProvider } from './terminal-file-opening-link-provider.js';
|
|
24
21
|
/**
|
|
25
22
|
* Linkifies `file://` URLs printed in the terminal and opens the referenced local file in the editor.
|
|
26
23
|
*
|
|
27
24
|
* A dedicated provider is needed because `UrlLinkProvider` only matches `http(s)` and
|
|
28
25
|
* `FileLinkProvider`'s path regex excludes `:`, so neither recognizes the `file:` scheme.
|
|
29
26
|
*/
|
|
30
|
-
let FileUriLinkProvider = class FileUriLinkProvider extends
|
|
27
|
+
let FileUriLinkProvider = class FileUriLinkProvider extends AbstractFileOpeningLinkProvider {
|
|
31
28
|
constructor() {
|
|
32
29
|
super(...arguments);
|
|
33
30
|
// The optional third slash denotes an empty authority (`file:///path`); the match runs to the first
|
|
@@ -72,7 +69,7 @@ let FileUriLinkProvider = class FileUriLinkProvider extends terminal_file_openin
|
|
|
72
69
|
}
|
|
73
70
|
toURI(match) {
|
|
74
71
|
try {
|
|
75
|
-
const uri = new
|
|
72
|
+
const uri = new URI(match);
|
|
76
73
|
return uri.scheme === 'file' ? uri : undefined;
|
|
77
74
|
}
|
|
78
75
|
catch {
|
|
@@ -83,13 +80,12 @@ let FileUriLinkProvider = class FileUriLinkProvider extends terminal_file_openin
|
|
|
83
80
|
return match.replace(/[.,;:]+$/, '');
|
|
84
81
|
}
|
|
85
82
|
};
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
(
|
|
89
|
-
(0, inversify_1.named)('terminal:FileUriLinkProvider'),
|
|
90
|
-
tslib_1.__metadata("design:type", Object)
|
|
83
|
+
__decorate([
|
|
84
|
+
inject(ILogger),
|
|
85
|
+
named('terminal:FileUriLinkProvider')
|
|
91
86
|
], FileUriLinkProvider.prototype, "logger", void 0);
|
|
92
|
-
|
|
93
|
-
|
|
87
|
+
FileUriLinkProvider = __decorate([
|
|
88
|
+
injectable()
|
|
94
89
|
], FileUriLinkProvider);
|
|
90
|
+
export { FileUriLinkProvider };
|
|
95
91
|
//# sourceMappingURL=terminal-file-uri-link-provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-file-uri-link-provider.js","sourceRoot":"","sources":["../../src/browser/terminal-file-uri-link-provider.ts"],"names":[],"mappings":"
|
|
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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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// *****************************************************************************
|
|
3
2
|
// Copyright (C) 2026 JuliaHub, Inc. and others.
|
|
4
3
|
//
|
|
@@ -14,28 +13,26 @@
|
|
|
14
13
|
//
|
|
15
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
15
|
// *****************************************************************************
|
|
17
|
-
|
|
18
|
-
const
|
|
19
|
-
const jsdom_1 = require("@theia/core/lib/browser/test/jsdom");
|
|
20
|
-
const disableJSDOM = (0, jsdom_1.enableJSDOM)();
|
|
16
|
+
import { enableJSDOM } from '@theia/core/lib/browser/test/jsdom';
|
|
17
|
+
const disableJSDOM = enableJSDOM();
|
|
21
18
|
// Importing the provider pulls in xterm, which probes a canvas 2d context on load; JSDOM has no
|
|
22
19
|
// canvas backend, so stub it out to keep this spec runnable without the native `canvas` package.
|
|
23
20
|
HTMLCanvasElement.prototype.getContext = () => undefined;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
21
|
+
import { FrontendApplicationConfigProvider } from '@theia/core/lib/browser/frontend-application-config-provider';
|
|
22
|
+
FrontendApplicationConfigProvider.set({});
|
|
23
|
+
import * as chai from 'chai';
|
|
24
|
+
import URI from '@theia/core/lib/common/uri';
|
|
25
|
+
import { FileUriLinkProvider } from './terminal-file-uri-link-provider.js';
|
|
29
26
|
disableJSDOM();
|
|
30
27
|
const expect = chai.expect;
|
|
31
|
-
class TestFileUriLinkProvider extends
|
|
28
|
+
class TestFileUriLinkProvider extends FileUriLinkProvider {
|
|
32
29
|
constructor(existingFiles, directories = []) {
|
|
33
30
|
super();
|
|
34
31
|
this.loggedErrors = [];
|
|
35
32
|
this.opened = [];
|
|
36
33
|
this.openedOptions = [];
|
|
37
34
|
const files = new Set(existingFiles);
|
|
38
|
-
const dirs = new Set(directories.map(uri => new
|
|
35
|
+
const dirs = new Set(directories.map(uri => new URI(uri).toString()));
|
|
39
36
|
this.logger = {
|
|
40
37
|
error: (message) => { this.loggedErrors.push(String(message)); }
|
|
41
38
|
};
|
|
@@ -76,18 +73,18 @@ describe('FileUriLinkProvider', () => {
|
|
|
76
73
|
expect(links[0].length).to.equal(uri.length);
|
|
77
74
|
expect(provider.loggedErrors).to.deep.equal([]);
|
|
78
75
|
await links[0].handle();
|
|
79
|
-
expect(provider.opened).to.deep.equal([new
|
|
76
|
+
expect(provider.opened).to.deep.equal([new URI(uri).toString()]);
|
|
80
77
|
});
|
|
81
78
|
it('should linkify a Windows drive file:// URL', async () => {
|
|
82
79
|
const uri = 'file:///C:/Users/dev/file.ts';
|
|
83
|
-
const provider = new TestFileUriLinkProvider([new
|
|
80
|
+
const provider = new TestFileUriLinkProvider([new URI(uri).toString()]);
|
|
84
81
|
const links = await provider.provideLinks(`see ${uri}`, terminal);
|
|
85
82
|
expect(links).to.have.lengthOf(1);
|
|
86
83
|
expect(provider.loggedErrors).to.deep.equal([]);
|
|
87
84
|
});
|
|
88
85
|
it('should linkify a UNC file:// URL with an authority', async () => {
|
|
89
86
|
const uri = 'file://server/share/file.ts';
|
|
90
|
-
const provider = new TestFileUriLinkProvider([new
|
|
87
|
+
const provider = new TestFileUriLinkProvider([new URI(uri).toString()]);
|
|
91
88
|
const links = await provider.provideLinks(uri, terminal);
|
|
92
89
|
expect(links).to.have.lengthOf(1);
|
|
93
90
|
expect(provider.loggedErrors).to.deep.equal([]);
|
|
@@ -119,7 +116,7 @@ describe('FileUriLinkProvider', () => {
|
|
|
119
116
|
// The whole `file://…:10:5` is clickable, but the URI drops the position suffix.
|
|
120
117
|
expect(links[0].length).to.equal(match.length);
|
|
121
118
|
await links[0].handle();
|
|
122
|
-
expect(provider.opened).to.deep.equal([new
|
|
119
|
+
expect(provider.opened).to.deep.equal([new URI(uri).toString()]);
|
|
123
120
|
// one-based `10:5` becomes a zero-based editor position.
|
|
124
121
|
expect(provider.openedOptions).to.deep.equal([{ selection: { start: { line: 9, character: 4 } } }]);
|
|
125
122
|
});
|
|
@@ -129,16 +126,16 @@ describe('FileUriLinkProvider', () => {
|
|
|
129
126
|
const links = await provider.provideLinks(`${uri}:42`, terminal);
|
|
130
127
|
expect(links).to.have.lengthOf(1);
|
|
131
128
|
await links[0].handle();
|
|
132
|
-
expect(provider.opened).to.deep.equal([new
|
|
129
|
+
expect(provider.opened).to.deep.equal([new URI(uri).toString()]);
|
|
133
130
|
expect(provider.openedOptions).to.deep.equal([{ selection: { start: { line: 41, character: 0 } } }]);
|
|
134
131
|
});
|
|
135
132
|
it('should keep the Windows drive colon and still apply a trailing position', async () => {
|
|
136
133
|
const uri = 'file:///C:/Users/dev/file.ts';
|
|
137
|
-
const provider = new TestFileUriLinkProvider([new
|
|
134
|
+
const provider = new TestFileUriLinkProvider([new URI(uri).toString()]);
|
|
138
135
|
const links = await provider.provideLinks(`${uri}:7:3`, terminal);
|
|
139
136
|
expect(links).to.have.lengthOf(1);
|
|
140
137
|
await links[0].handle();
|
|
141
|
-
expect(provider.opened).to.deep.equal([new
|
|
138
|
+
expect(provider.opened).to.deep.equal([new URI(uri).toString()]);
|
|
142
139
|
expect(provider.openedOptions).to.deep.equal([{ selection: { start: { line: 6, character: 2 } } }]);
|
|
143
140
|
});
|
|
144
141
|
it('should clamp a zero line/column to the first position', async () => {
|