@opensumi/ide-terminal-next 3.8.3-next-1747658811.0 → 3.9.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.
@@ -74,6 +74,7 @@ export declare class TerminalLinkManager extends Disposable {
74
74
  private _getUserHomeDirOnce;
75
75
  protected _preprocessPath(link: string): Promise<string | null>;
76
76
  private _resolvePath;
77
+ private _extractLineInfoFromMatch;
77
78
  /**
78
79
  * Returns line and column number of URl if that is present.
79
80
  *
@@ -88,6 +89,7 @@ export declare class TerminalLinkManager extends Disposable {
88
89
  extractLinkUrl(link: string): string | null;
89
90
  }
90
91
  export interface LineColumnInfo {
92
+ filePath: string;
91
93
  lineNumber: number;
92
94
  columnNumber: number;
93
95
  }
@@ -1 +1 @@
1
- {"version":3,"file":"link-manager.d.ts","sourceRoot":"","sources":["../../../src/browser/links/link-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"link-manager.d.ts","sourceRoot":"","sources":["../../../src/browser/links/link-manager.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ const ide_core_common_1 = require("@opensumi/ide-core-common");
9
9
  const common_1 = require("@opensumi/ide-editor/lib/common");
10
10
  const ide_file_service_1 = require("@opensumi/ide-file-service");
11
11
  const common_2 = require("../../common");
12
+ const terminal_link_1 = require("../../common/terminal-link");
12
13
  const terminal_client_1 = require("../terminal.client");
13
14
  const external_link_provider_adapter_1 = require("./external-link-provider-adapter");
14
15
  const protocol_link_provider_1 = require("./protocol-link-provider");
@@ -123,24 +124,23 @@ let TerminalLinkManager = class TerminalLinkManager extends ide_core_common_1.Di
123
124
  };
124
125
  }
125
126
  get _localLinkRegex() {
126
- const baseLocalLinkClause = this._client.os === ide_core_common_1.OperatingSystem.Windows ? validated_local_link_provider_1.winLocalLinkClause : validated_local_link_provider_1.unixLocalLinkClause;
127
+ const baseLocalLinkClause = this._client.os === ide_core_common_1.OperatingSystem.Windows ? terminal_link_1.winLocalLinkClause : terminal_link_1.unixLocalLinkClause;
127
128
  // Append line and column number regex
128
- return new RegExp(`${baseLocalLinkClause}(${validated_local_link_provider_1.lineAndColumnClause})`);
129
+ return new RegExp(`${baseLocalLinkClause}(${(0, terminal_link_1.getLineAndColumnClause)()})`);
129
130
  }
130
131
  async _handleLocalLink(link) {
131
- // TODO: This gets resolved again but doesn't need to as it's already validated
132
- const resolvedLink = await this._resolvePath(link);
132
+ const lineColumnInfo = this.extractLineColumnInfo(link);
133
+ const resolvedLink = await this._resolvePath(lineColumnInfo.filePath);
133
134
  if (!resolvedLink) {
134
135
  return;
135
136
  }
136
- const lineColumnInfo = this.extractLineColumnInfo(link);
137
137
  const range = {
138
138
  startLineNumber: lineColumnInfo.lineNumber,
139
139
  endLineNumber: lineColumnInfo.lineNumber,
140
140
  startColumn: lineColumnInfo.columnNumber,
141
141
  endColumn: lineColumnInfo.columnNumber,
142
142
  };
143
- await this._editorService.open(resolvedLink.uri, { range });
143
+ await this._editorService.open(resolvedLink.uri, { range, focus: true });
144
144
  }
145
145
  _handleHypertextLink(url) {
146
146
  this._openerService.open(url);
@@ -222,7 +222,7 @@ let TerminalLinkManager = class TerminalLinkManager extends ide_core_common_1.Di
222
222
  const cwd = await this.getTerminalCwd();
223
223
  // Resolve workspace path . | .. | <relative_path> -> <path>/. | <path>/.. | <path>/<relative_path>
224
224
  if (this._client.os === ide_core_common_1.OperatingSystem.Windows) {
225
- if (!link.match('^' + validated_local_link_provider_1.winDrivePrefix) && !link.startsWith('\\\\?\\')) {
225
+ if (!link.match('^' + terminal_link_1.winDrivePrefix) && !link.startsWith('\\\\?\\')) {
226
226
  if (!cwd) {
227
227
  // Abort if no workspace is open
228
228
  return null;
@@ -263,35 +263,31 @@ let TerminalLinkManager = class TerminalLinkManager extends ide_core_common_1.Di
263
263
  return undefined;
264
264
  }
265
265
  }
266
+ _extractLineInfoFromMatch(match) {
267
+ return (0, terminal_link_1.extractLineInfoFromMatch)(match);
268
+ }
266
269
  /**
267
270
  * Returns line and column number of URl if that is present.
268
271
  *
269
272
  * @param link Url link which may contain line and column number.
270
273
  */
271
274
  extractLineColumnInfo(link) {
275
+ var _a, _b, _c;
272
276
  const matches = this._localLinkRegex.exec(link);
273
277
  const lineColumnInfo = {
274
278
  lineNumber: 1,
275
279
  columnNumber: 1,
280
+ filePath: link,
276
281
  };
277
282
  if (!matches) {
278
283
  return lineColumnInfo;
279
284
  }
280
- const lineAndColumnMatchIndex = this._client.os === ide_core_common_1.OperatingSystem.Windows ? validated_local_link_provider_1.winLineAndColumnMatchIndex : validated_local_link_provider_1.unixLineAndColumnMatchIndex;
281
- for (let i = 0; i < validated_local_link_provider_1.lineAndColumnClause.length; i++) {
282
- const lineMatchIndex = lineAndColumnMatchIndex + validated_local_link_provider_1.lineAndColumnClauseGroupCount * i;
283
- const rowNumber = matches[lineMatchIndex];
284
- if (rowNumber) {
285
- lineColumnInfo['lineNumber'] = parseInt(rowNumber, 10);
286
- // Check if column number exists
287
- const columnNumber = matches[lineMatchIndex + 2];
288
- if (columnNumber) {
289
- lineColumnInfo['columnNumber'] = parseInt(columnNumber, 10);
290
- }
291
- break;
292
- }
293
- }
294
- return lineColumnInfo;
285
+ const lineInfo = this._extractLineInfoFromMatch(matches);
286
+ return {
287
+ filePath: (_a = lineInfo.filePath) !== null && _a !== void 0 ? _a : link,
288
+ lineNumber: (_b = lineInfo.line) !== null && _b !== void 0 ? _b : 1,
289
+ columnNumber: (_c = lineInfo.column) !== null && _c !== void 0 ? _c : 1,
290
+ };
295
291
  }
296
292
  /**
297
293
  * Returns url from link as link may contain line and column information.
@@ -1 +1 @@
1
- {"version":3,"file":"link-manager.js","sourceRoot":"","sources":["../../../src/browser/links/link-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"link-manager.js","sourceRoot":"","sources":["../../../src/browser/links/link-manager.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ export declare class TerminalLink extends Disposable implements ILink {
12
12
  private readonly _tooltipCallback;
13
13
  private readonly _isHighConfidenceLink;
14
14
  readonly label: string | undefined;
15
+ private readonly _lineInfo?;
15
16
  decorations: ILinkDecorations;
16
17
  private readonly preferenceService;
17
18
  private _tooltipScheduler;
@@ -19,7 +20,19 @@ export declare class TerminalLink extends Disposable implements ILink {
19
20
  private _tooltipDisposable;
20
21
  private readonly _onInvalidated;
21
22
  get onInvalidated(): Event<void>;
22
- constructor(_xterm: Terminal, range: IBufferRange, text: string, _viewportY: number, _activateCallback: (event: MouseEvent | undefined, uri: string) => void, _tooltipCallback: (link: TerminalLink, viewportRange: IViewportRange, modifierDownCallback?: () => void, modifierUpCallback?: () => void) => IDisposable | undefined, _isHighConfidenceLink: boolean, label: string | undefined);
23
+ constructor(_xterm: Terminal, range: IBufferRange, text: string, _viewportY: number, _activateCallback: (event: MouseEvent | undefined, uri: string, lineInfo?: {
24
+ filePath?: string;
25
+ line?: number;
26
+ column?: number;
27
+ endLine?: number;
28
+ endColumn?: number;
29
+ }) => void, _tooltipCallback: (link: TerminalLink, viewportRange: IViewportRange, modifierDownCallback?: () => void, modifierUpCallback?: () => void) => IDisposable | undefined, _isHighConfidenceLink: boolean, label: string | undefined, _lineInfo?: {
30
+ filePath?: string;
31
+ line?: number;
32
+ column?: number;
33
+ endLine?: number;
34
+ endColumn?: number;
35
+ } | undefined);
23
36
  dispose(): void;
24
37
  activate(event: MouseEvent | undefined, text: string): void;
25
38
  hover(event: MouseEvent, text: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../../src/browser/links/link.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,UAAU,EAGV,KAAK,EACL,WAAW,EAIZ,MAAM,2BAA2B,CAAC;AAInC,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAKpG,eAAO,MAAM,eAAe,QAAuD,CAAC;AACpF,eAAO,MAAM,yBAAyB,QAA+D,CAAC;AACtG,eAAO,MAAM,6BAA6B,QAA+D,CAAC;AAE1G,qBACa,YAAa,SAAQ,UAAW,YAAW,KAAK;IAgBzD,OAAO,CAAC,QAAQ,CAAC,MAAM;aACP,KAAK,EAAE,YAAY;aACnB,IAAI,EAAE,MAAM;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAMjC,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS;IA3BpC,WAAW,EAAE,gBAAgB,CAAC;IAG9B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IAEtD,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,eAAe,CAAmC;IAC1D,OAAO,CAAC,kBAAkB,CAA0B;IAEpD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuB;IACtD,IAAW,aAAa,IAAI,KAAK,CAAC,IAAI,CAAC,CAEtC;gBAGkB,MAAM,EAAE,QAAQ,EACjB,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAClB,iBAAiB,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,EACvE,gBAAgB,EAAE,CACjC,IAAI,EAAE,YAAY,EAClB,aAAa,EAAE,cAAc,EAC7B,oBAAoB,CAAC,EAAE,MAAM,IAAI,EACjC,kBAAkB,CAAC,EAAE,MAAM,IAAI,KAC5B,WAAW,GAAG,SAAS,EACX,qBAAqB,EAAE,OAAO,EACtC,KAAK,EAAE,MAAM,GAAG,SAAS;IASpC,OAAO,IAAI,IAAI;IAUf,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAI3D,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAoE5C,KAAK,IAAI,IAAI;IASb,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,eAAe;CAGxB"}
1
+ {"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../../src/browser/links/link.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,UAAU,EAGV,KAAK,EACL,WAAW,EAIZ,MAAM,2BAA2B,CAAC;AAInC,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAKpG,eAAO,MAAM,eAAe,QAAuD,CAAC;AACpF,eAAO,MAAM,yBAAyB,QAA+D,CAAC;AACtG,eAAO,MAAM,6BAA6B,QAA+D,CAAC;AAE1G,qBACa,YAAa,SAAQ,UAAW,YAAW,KAAK;IAgBzD,OAAO,CAAC,QAAQ,CAAC,MAAM;aACP,KAAK,EAAE,YAAY;aACnB,IAAI,EAAE,MAAM;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAWlC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAMjC,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;IAtC7B,WAAW,EAAE,gBAAgB,CAAC;IAG9B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IAEtD,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,eAAe,CAAmC;IAC1D,OAAO,CAAC,kBAAkB,CAA0B;IAEpD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuB;IACtD,IAAW,aAAa,IAAI,KAAK,CAAC,IAAI,CAAC,CAEtC;gBAGkB,MAAM,EAAE,QAAQ,EACjB,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAClB,iBAAiB,EAAE,CAClC,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE;QACT,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,KACE,IAAI,EACQ,gBAAgB,EAAE,CACjC,IAAI,EAAE,YAAY,EAClB,aAAa,EAAE,cAAc,EAC7B,oBAAoB,CAAC,EAAE,MAAM,IAAI,EACjC,kBAAkB,CAAC,EAAE,MAAM,IAAI,KAC5B,WAAW,GAAG,SAAS,EACX,qBAAqB,EAAE,OAAO,EACtC,KAAK,EAAE,MAAM,GAAG,SAAS,EACjB,SAAS,CAAC,EAAE;QAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,YAAA;IASH,OAAO,IAAI,IAAI;IAUf,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAI3D,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAoE5C,KAAK,IAAI,IAAI;IASb,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,eAAe;CAGxB"}
@@ -15,7 +15,7 @@ let TerminalLink = class TerminalLink extends ide_core_common_1.Disposable {
15
15
  get onInvalidated() {
16
16
  return this._onInvalidated.event;
17
17
  }
18
- constructor(_xterm, range, text, _viewportY, _activateCallback, _tooltipCallback, _isHighConfidenceLink, label) {
18
+ constructor(_xterm, range, text, _viewportY, _activateCallback, _tooltipCallback, _isHighConfidenceLink, label, _lineInfo) {
19
19
  super();
20
20
  this._xterm = _xterm;
21
21
  this.range = range;
@@ -25,6 +25,7 @@ let TerminalLink = class TerminalLink extends ide_core_common_1.Disposable {
25
25
  this._tooltipCallback = _tooltipCallback;
26
26
  this._isHighConfidenceLink = _isHighConfidenceLink;
27
27
  this.label = label;
28
+ this._lineInfo = _lineInfo;
28
29
  this._onInvalidated = new ide_core_common_1.Emitter();
29
30
  this.decorations = {
30
31
  pointerCursor: false,
@@ -42,7 +43,7 @@ let TerminalLink = class TerminalLink extends ide_core_common_1.Disposable {
42
43
  this._tooltipDisposable = undefined;
43
44
  }
44
45
  activate(event, text) {
45
- this._activateCallback(event, text);
46
+ this._activateCallback(event, text, this._lineInfo);
46
47
  }
47
48
  hover(event, text) {
48
49
  // Listen for modifier before handing it off to the hover to handle so it gets disposed correctly
@@ -131,6 +132,6 @@ tslib_1.__decorate([
131
132
  ], TerminalLink.prototype, "preferenceService", void 0);
132
133
  exports.TerminalLink = TerminalLink = tslib_1.__decorate([
133
134
  (0, di_1.Injectable)({ multiple: true }),
134
- tslib_1.__metadata("design:paramtypes", [Function, Object, String, Number, Function, Function, Boolean, Object])
135
+ tslib_1.__metadata("design:paramtypes", [Function, Object, String, Number, Function, Function, Boolean, Object, Object])
135
136
  ], TerminalLink);
136
137
  //# sourceMappingURL=link.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"link.js","sourceRoot":"","sources":["../../../src/browser/links/link.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"link.js","sourceRoot":"","sources":["../../../src/browser/links/link.ts"],"names":[],"mappings":"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"}
@@ -5,17 +5,6 @@ import { TerminalLink } from './link';
5
5
  import { XtermLinkMatcherHandler } from './link-manager';
6
6
  import type { TerminalClient } from '../terminal.client';
7
7
  import type { IViewportRange, Terminal } from '@xterm/xterm';
8
- /** A regex that matches paths in the form /foo, ~/foo, ./foo, ../foo, foo/bar */
9
- export declare const unixLocalLinkClause: string;
10
- export declare const winDrivePrefix = "(?:\\\\\\\\\\?\\\\)?[a-zA-Z]:";
11
- /** A regex that matches paths in the form \\?\c:\foo c:\foo, ~\foo, .\foo, ..\foo, foo\bar */
12
- export declare const winLocalLinkClause: string;
13
- /** As xterm reads from DOM, space in that case is nonbreaking char ASCII code - 160,
14
- replacing space with nonBreakningSpace or space ASCII code - 32. */
15
- export declare const lineAndColumnClause: string;
16
- export declare const winLineAndColumnMatchIndex = 12;
17
- export declare const unixLineAndColumnMatchIndex = 11;
18
- export declare const lineAndColumnClauseGroupCount = 6;
19
8
  export declare class TerminalValidatedLocalLinkProvider extends TerminalBaseLinkProvider {
20
9
  private readonly _xterm;
21
10
  private readonly _client;
@@ -33,8 +22,9 @@ export declare class TerminalValidatedLocalLinkProvider extends TerminalBaseLink
33
22
  isDirectory: boolean;
34
23
  } | undefined) => void) => void);
35
24
  protected _provideLinks(y: number): Promise<TerminalLink[]>;
36
- private detectLocalLink;
25
+ private _extractLineInfoFromMatch;
37
26
  protected get _localLinkRegex(): RegExp;
27
+ private detectLocalLink;
38
28
  private _handleLocalFolderLink;
39
29
  private _isDirectoryInsideWorkspace;
40
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validated-local-link-provider.d.ts","sourceRoot":"","sources":["../../../src/browser/links/validated-local-link-provider.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAkB,WAAW,EAAmB,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAG9F,OAAO,EAAE,wBAAwB,EAAE,MAAM,QAAQ,CAAC;AAElD,OAAO,EAA6E,YAAY,EAAE,MAAM,QAAQ,CAAC;AACjH,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAe,cAAc,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAO1E,iFAAiF;AACjF,eAAO,MAAM,mBAAmB,QASvB,CAAC;AAEV,eAAO,MAAM,cAAc,kCAAkC,CAAC;AAI9D,8FAA8F;AAC9F,eAAO,MAAM,kBAAkB,QAStB,CAAC;AAEV;mEACmE;AACnE,eAAO,MAAM,mBAAmB,QASE,CAAC;AAGnC,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAC7C,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAG9C,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAI/C,qBACa,kCAAmC,SAAQ,wBAAwB;IAiB5E,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAGjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAMjC,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IA3BtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IAGpC,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAC;IAGjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAGhD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoB;IAGrD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;gBAGnB,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,cAAc,EACvB,qBAAqB,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,EAC5E,gBAAgB,EAAE,CACjC,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,KAC3D,uBAAuB,EACX,gBAAgB,EAAE,CACjC,IAAI,EAAE,YAAY,EAClB,aAAa,EAAE,cAAc,EAC7B,oBAAoB,CAAC,EAAE,MAAM,IAAI,EACjC,kBAAkB,CAAC,EAAE,MAAM,IAAI,KAC5B,WAAW,EACC,mBAAmB,EAAE,CACpC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,GAAG,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE,GAAG,SAAS,KAAK,IAAI,KACvE,IAAI;cAKK,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;YAmEnD,eAAe;IAgE7B,SAAS,KAAK,eAAe,IAAI,MAAM,CAItC;YAEa,sBAAsB;YAatB,2BAA2B;CAS1C"}
1
+ {"version":3,"file":"validated-local-link-provider.d.ts","sourceRoot":"","sources":["../../../src/browser/links/validated-local-link-provider.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAA2B,WAAW,EAAmB,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAYvG,OAAO,EAAE,wBAAwB,EAAE,MAAM,QAAQ,CAAC;AAElD,OAAO,EAA6E,YAAY,EAAE,MAAM,QAAQ,CAAC;AACjH,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAe,cAAc,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE1E,qBACa,kCAAmC,SAAQ,wBAAwB;IAiB5E,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAGjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAMjC,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IA3BtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IAGpC,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAC;IAGjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAGhD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoB;IAGrD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;gBAGnB,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,cAAc,EACvB,qBAAqB,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,EAC5E,gBAAgB,EAAE,CACjC,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,KAC3D,uBAAuB,EACX,gBAAgB,EAAE,CACjC,IAAI,EAAE,YAAY,EAClB,aAAa,EAAE,cAAc,EAC7B,oBAAoB,CAAC,EAAE,MAAM,IAAI,EACjC,kBAAkB,CAAC,EAAE,MAAM,IAAI,KAC5B,WAAW,EACC,mBAAmB,EAAE,CACpC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,GAAG,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE,GAAG,SAAS,KAAK,IAAI,KACvE,IAAI;cAKK,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAqEjE,OAAO,CAAC,yBAAyB;IAIjC,SAAS,KAAK,eAAe,IAAI,MAAM,CAItC;YAEa,eAAe;YA4Ef,sBAAsB;YAatB,2BAA2B;CAS1C"}
@@ -5,63 +5,17 @@
5
5
  *--------------------------------------------------------------------------------------------*/
6
6
  // Some code copied and modified from https://github.com/microsoft/vscode/blob/1.63.2/src/vs/workbench/contrib/terminal/browser/links/terminalValidatedLocalLinkProvider.ts
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.TerminalValidatedLocalLinkProvider = exports.lineAndColumnClauseGroupCount = exports.unixLineAndColumnMatchIndex = exports.winLineAndColumnMatchIndex = exports.lineAndColumnClause = exports.winLocalLinkClause = exports.winDrivePrefix = exports.unixLocalLinkClause = void 0;
8
+ exports.TerminalValidatedLocalLinkProvider = void 0;
9
9
  const tslib_1 = require("tslib");
10
10
  const di_1 = require("@opensumi/di");
11
11
  const config_provider_1 = require("@opensumi/ide-core-browser/lib/react-providers/config-provider");
12
12
  const window_1 = require("@opensumi/ide-core-browser/lib/window");
13
13
  const ide_core_common_1 = require("@opensumi/ide-core-common");
14
14
  const workspace_interface_1 = require("@opensumi/ide-workspace/lib/common/workspace.interface");
15
+ const terminal_link_1 = require("../../common/terminal-link");
15
16
  const base_1 = require("./base");
16
17
  const helpers_1 = require("./helpers");
17
18
  const link_1 = require("./link");
18
- const pathPrefix = '(\\.\\.?|\\~)';
19
- const pathSeparatorClause = '\\/';
20
- // '":; are allowed in paths but they are often separators so ignore them
21
- // Also disallow \\ to prevent a catastropic backtracking case #24795
22
- const excludedPathCharactersClause = '[^\\0\\s!`&*()\\[\\]\'":;\\\\]';
23
- /** A regex that matches paths in the form /foo, ~/foo, ./foo, ../foo, foo/bar */
24
- exports.unixLocalLinkClause = '((' +
25
- pathPrefix +
26
- '|(' +
27
- excludedPathCharactersClause +
28
- ')+)?(' +
29
- pathSeparatorClause +
30
- '(' +
31
- excludedPathCharactersClause +
32
- ')+)+)';
33
- exports.winDrivePrefix = '(?:\\\\\\\\\\?\\\\)?[a-zA-Z]:';
34
- const winPathPrefix = '(' + exports.winDrivePrefix + '|\\.\\.?|\\~)';
35
- const winPathSeparatorClause = '(\\\\|\\/)';
36
- const winExcludedPathCharactersClause = '[^\\0<>\\?\\|\\/\\s!`&*()\\[\\]\'":;]';
37
- /** A regex that matches paths in the form \\?\c:\foo c:\foo, ~\foo, .\foo, ..\foo, foo\bar */
38
- exports.winLocalLinkClause = '((' +
39
- winPathPrefix +
40
- '|(' +
41
- winExcludedPathCharactersClause +
42
- ')+)?(' +
43
- winPathSeparatorClause +
44
- '(' +
45
- winExcludedPathCharactersClause +
46
- ')+)+)';
47
- /** As xterm reads from DOM, space in that case is nonbreaking char ASCII code - 160,
48
- replacing space with nonBreakningSpace or space ASCII code - 32. */
49
- exports.lineAndColumnClause = [
50
- '((\\S*)[\'"], line ((\\d+)( column (\\d+))?))', // "(file path)", line 45 [see #40468]
51
- '((\\S*)[\'"],((\\d+)(:(\\d+))?))', // "(file path)",45 [see #78205]
52
- '((\\S*) on line ((\\d+)(, column (\\d+))?))', // (file path) on line 8, column 13
53
- '((\\S*):line ((\\d+)(, column (\\d+))?))', // (file path):line 8, column 13
54
- '(([^\\s\\(\\)]*)(\\s?[\\(\\[](\\d+)(,\\s?(\\d+))?)[\\)\\]])', // (file path)(45), (file path) (45), (file path)(45,18), (file path) (45,18), (file path)(45, 18), (file path) (45, 18), also with []
55
- '(([^:\\s\\(\\)<>\'"\\[\\]]*)(:(\\d+))?(:(\\d+))?)', // (file path):336, (file path):336:9
56
- ]
57
- .join('|')
58
- .replace(/ /g, `[${'\u00A0'} ]`);
59
- // Changing any regex may effect this value, hence changes this as well if required.
60
- exports.winLineAndColumnMatchIndex = 12;
61
- exports.unixLineAndColumnMatchIndex = 11;
62
- // Each line and column clause have 6 groups (ie no. of expressions in round brackets)
63
- exports.lineAndColumnClauseGroupCount = 6;
64
- const MAX_LENGTH = 2000;
65
19
  let TerminalValidatedLocalLinkProvider = class TerminalValidatedLocalLinkProvider extends base_1.TerminalBaseLinkProvider {
66
20
  constructor(_xterm, _client, _activateFileCallback, _wrapLinkHandler, _tooltipCallback, _validationCallback) {
67
21
  super();
@@ -87,7 +41,7 @@ let TerminalValidatedLocalLinkProvider = class TerminalValidatedLocalLinkProvide
87
41
  endLine++;
88
42
  }
89
43
  const text = (0, helpers_1.getXtermLineContent)(this._xterm.buffer.active, startLine, endLine, this._xterm.cols);
90
- if (text.length > MAX_LENGTH) {
44
+ if (text.length > terminal_link_1.MAX_LENGTH) {
91
45
  return [];
92
46
  }
93
47
  // clone regex to do a global search on text
@@ -122,17 +76,32 @@ let TerminalValidatedLocalLinkProvider = class TerminalValidatedLocalLinkProvide
122
76
  link = link.substring(2);
123
77
  stringIndex += 2;
124
78
  }
125
- const validatedLinks = await this.detectLocalLink(link, lines, startLine, stringIndex, 1);
79
+ // 从匹配结果中提取行号信息
80
+ const lineInfo = this._extractLineInfoFromMatch(match);
81
+ const validatedLinks = await this.detectLocalLink(link, lines, startLine, stringIndex, 1, lineInfo);
126
82
  if (validatedLinks.length > 0) {
127
83
  result.push(...validatedLinks);
128
84
  }
129
85
  }
130
86
  return result;
131
87
  }
132
- async detectLocalLink(text, bufferLines, startLine, stringIndex, offset) {
88
+ _extractLineInfoFromMatch(match) {
89
+ return (0, terminal_link_1.extractLineInfoFromMatch)(match);
90
+ }
91
+ get _localLinkRegex() {
92
+ const baseLocalLinkClause = this._client.os === ide_core_common_1.OperatingSystem.Windows ? terminal_link_1.winLocalLinkClause : terminal_link_1.unixLocalLinkClause;
93
+ // Append line and column number regex
94
+ return new RegExp(`(${baseLocalLinkClause})(${(0, terminal_link_1.getLineAndColumnClause)()})?`);
95
+ }
96
+ async detectLocalLink(text, bufferLines, startLine, stringIndex, offset, lineInfo) {
133
97
  const result = [];
134
98
  const validatedLink = await new Promise((r) => {
135
- this._validationCallback(text, async (result) => {
99
+ var _a;
100
+ // 使用匹配到的文件路径
101
+ const filePath = ((_a = text.match(this._localLinkRegex)) === null || _a === void 0 ? void 0 : _a[1]) || text;
102
+ // 如果是 file:/// 协议,转换为本地路径
103
+ const localPath = filePath.startsWith('file://') ? ide_core_common_1.FileUri.fsPath(ide_core_common_1.URI.parse(filePath)) : filePath;
104
+ this._validationCallback(localPath, async (result) => {
136
105
  if (result) {
137
106
  const label = result.isDirectory
138
107
  ? (await this._isDirectoryInsideWorkspace(result.uri))
@@ -164,6 +133,7 @@ let TerminalValidatedLocalLinkProvider = class TerminalValidatedLocalLinkProvide
164
133
  tooltipCallback,
165
134
  true,
166
135
  label,
136
+ lineInfo,
167
137
  ]));
168
138
  }
169
139
  else {
@@ -176,11 +146,6 @@ let TerminalValidatedLocalLinkProvider = class TerminalValidatedLocalLinkProvide
176
146
  }
177
147
  return result;
178
148
  }
179
- get _localLinkRegex() {
180
- const baseLocalLinkClause = this._client.os === ide_core_common_1.OperatingSystem.Windows ? exports.winLocalLinkClause : exports.unixLocalLinkClause;
181
- // Append line and column number regex
182
- return new RegExp(`${baseLocalLinkClause}(${exports.lineAndColumnClause})`);
183
- }
184
149
  async _handleLocalFolderLink(uri) {
185
150
  // If the folder is within one of the window's workspaces, focus it in the explorer
186
151
  if (await this._isDirectoryInsideWorkspace(uri)) {
@@ -1 +1 @@
1
- {"version":3,"file":"validated-local-link-provider.js","sourceRoot":"","sources":["../../../src/browser/links/validated-local-link-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validated-local-link-provider.js","sourceRoot":"","sources":["../../../src/browser/links/validated-local-link-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ export declare const pathPrefix = "(\\.\\.?|\\~)";
2
+ export declare const pathSeparatorClause = "\\/";
3
+ export declare const excludedPathCharactersClause = "[^\\0\\s!`&*()\\[\\]'\":;\\\\]";
4
+ export declare const winDrivePrefix = "(?:\\\\\\\\\\?\\\\)?[a-zA-Z]:";
5
+ export declare const winPathPrefix: string;
6
+ export declare const winPathSeparatorClause = "(\\\\|\\/)";
7
+ export declare const winExcludedPathCharactersClause = "[^\\0<>\\?\\|\\/\\s!`&*()\\[\\]'\":;]";
8
+ export declare const unixLocalLinkClause: string;
9
+ export declare const winLocalLinkClause: string;
10
+ /** As xterm reads from DOM, space in that case is nonbreaking char ASCII code - 160,
11
+ replacing space with nonBreakningSpace or space ASCII code - 32. */
12
+ export declare function getLineAndColumnClause(): string;
13
+ export declare const winLineAndColumnMatchIndex = 12;
14
+ export declare const unixLineAndColumnMatchIndex = 11;
15
+ export declare const lineAndColumnClauseGroupCount = 6;
16
+ export interface ILinkInfo {
17
+ filePath?: string;
18
+ line?: number;
19
+ column?: number;
20
+ endLine?: number;
21
+ endColumn?: number;
22
+ }
23
+ export declare const MAX_LENGTH = 2000;
24
+ /**
25
+ * 从正则匹配结果中提取行号信息
26
+ */
27
+ export declare function extractLineInfoFromMatch(match: RegExpExecArray): ILinkInfo;
28
+ //# sourceMappingURL=terminal-link.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-link.d.ts","sourceRoot":"","sources":["../../src/common/terminal-link.ts"],"names":[],"mappings":"AA8BA,eAAO,MAAM,UAAU,kBAAkB,CAAC;AAC1C,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AACzC,eAAO,MAAM,4BAA4B,mCAAmC,CAAC;AAC7E,eAAO,MAAM,cAAc,kCAAkC,CAAC;AAC9D,eAAO,MAAM,aAAa,QAAyC,CAAC;AACpE,eAAO,MAAM,sBAAsB,eAAe,CAAC;AACnD,eAAO,MAAM,+BAA+B,0CAA0C,CAAC;AAGvF,eAAO,MAAM,mBAAmB,QASvB,CAAC;AAEV,eAAO,MAAM,kBAAkB,QAStB,CAAC;AAKV;mEACmE;AACnE,wBAAgB,sBAAsB,IAAI,MAAM,CA0D/C;AAGD,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAC7C,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAG9C,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAG/C,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAGD,eAAO,MAAM,UAAU,OAAO,CAAC;AAE/B;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,eAAe,GAAG,SAAS,CAkC1E"}
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+ /* ---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Microsoft Corporation. All rights reserved.
4
+ * Licensed under the MIT License. See License.txt in the project root for license information.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.MAX_LENGTH = exports.lineAndColumnClauseGroupCount = exports.unixLineAndColumnMatchIndex = exports.winLineAndColumnMatchIndex = exports.winLocalLinkClause = exports.unixLocalLinkClause = exports.winExcludedPathCharactersClause = exports.winPathSeparatorClause = exports.winPathPrefix = exports.winDrivePrefix = exports.excludedPathCharactersClause = exports.pathSeparatorClause = exports.pathPrefix = void 0;
8
+ exports.getLineAndColumnClause = getLineAndColumnClause;
9
+ exports.extractLineInfoFromMatch = extractLineInfoFromMatch;
10
+ // 行号和列号的正则生成函数
11
+ class LinkMatchCounters {
12
+ constructor() {
13
+ this.ri = 0;
14
+ this.ci = 0;
15
+ this.rei = 0;
16
+ this.cei = 0;
17
+ }
18
+ r() {
19
+ return `(?<row${this.ri++}>\\d+)`;
20
+ }
21
+ c() {
22
+ return `(?<col${this.ci++}>\\d+)`;
23
+ }
24
+ re() {
25
+ return `(?<rowEnd${this.rei++}>\\d+)`;
26
+ }
27
+ ce() {
28
+ return `(?<colEnd${this.cei++}>\\d+)`;
29
+ }
30
+ }
31
+ // 路径相关的正则表达式
32
+ exports.pathPrefix = '(\\.\\.?|\\~)';
33
+ exports.pathSeparatorClause = '\\/';
34
+ exports.excludedPathCharactersClause = '[^\\0\\s!`&*()\\[\\]\'":;\\\\]';
35
+ exports.winDrivePrefix = '(?:\\\\\\\\\\?\\\\)?[a-zA-Z]:';
36
+ exports.winPathPrefix = '(' + exports.winDrivePrefix + '|\\.\\.?|\\~)';
37
+ exports.winPathSeparatorClause = '(\\\\|\\/)';
38
+ exports.winExcludedPathCharactersClause = '[^\\0<>\\?\\|\\/\\s!`&*()\\[\\]\'":;]';
39
+ // Unix 和 Windows 的本地链接正则表达式
40
+ exports.unixLocalLinkClause = '((' +
41
+ exports.pathPrefix +
42
+ '|(' +
43
+ exports.excludedPathCharactersClause +
44
+ ')+)?(' +
45
+ exports.pathSeparatorClause +
46
+ '(' +
47
+ exports.excludedPathCharactersClause +
48
+ ')+)+)';
49
+ exports.winLocalLinkClause = '((' +
50
+ exports.winPathPrefix +
51
+ '|(' +
52
+ exports.winExcludedPathCharactersClause +
53
+ ')+)?(' +
54
+ exports.winPathSeparatorClause +
55
+ '(' +
56
+ exports.winExcludedPathCharactersClause +
57
+ ')+)+)';
58
+ // 行号和列号的匹配正则表达式
59
+ const eolSuffix = '';
60
+ /** As xterm reads from DOM, space in that case is nonbreaking char ASCII code - 160,
61
+ replacing space with nonBreakningSpace or space ASCII code - 32. */
62
+ function getLineAndColumnClause() {
63
+ const counters = new LinkMatchCounters();
64
+ return [
65
+ // foo:339
66
+ // foo:339:12
67
+ // foo:339:12-789
68
+ // foo:339:12-341.789
69
+ // foo:339.12
70
+ // foo 339
71
+ // foo 339:12 [#140780]
72
+ // foo 339.12
73
+ // foo#339
74
+ // foo#339:12 [#190288]
75
+ // foo#339.12
76
+ // foo, 339 [#217927]
77
+ // "foo",339
78
+ // "foo",339:12
79
+ // "foo",339.12
80
+ // "foo",339.12-789
81
+ // "foo",339.12-341.789
82
+ `(?::|#| |['"],|, )${counters.r()}([:.]${counters.c()}(?:-(?:${counters.re()}\\.)?${counters.ce()})?)?` + eolSuffix,
83
+ // The quotes below are optional [#171652]
84
+ // "foo", line 339 [#40468]
85
+ // "foo", line 339, col 12
86
+ // "foo", line 339, column 12
87
+ // "foo":line 339
88
+ // "foo":line 339, col 12
89
+ // "foo":line 339, column 12
90
+ // "foo": line 339
91
+ // "foo": line 339, col 12
92
+ // "foo": line 339, column 12
93
+ // "foo" on line 339
94
+ // "foo" on line 339, col 12
95
+ // "foo" on line 339, column 12
96
+ // "foo" line 339 column 12
97
+ // "foo", line 339, character 12 [#171880]
98
+ // "foo", line 339, characters 12-789 [#171880]
99
+ // "foo", lines 339-341 [#171880]
100
+ // "foo", lines 339-341, characters 12-789 [#178287]
101
+ `['"]?(?:,? |: ?| on )lines? ${counters.r()}(?:-${counters.re()})?(?:,? (?:col(?:umn)?|characters?) ${counters.c()}(?:-${counters.ce()})?)?` +
102
+ eolSuffix,
103
+ // () and [] are interchangeable
104
+ // foo(339)
105
+ // foo(339,12)
106
+ // foo(339, 12)
107
+ // foo (339)
108
+ // foo (339,12)
109
+ // foo (339, 12)
110
+ // foo: (339)
111
+ // foo: (339,12)
112
+ // foo: (339, 12)
113
+ // foo(339:12) [#229842]
114
+ // foo (339:12) [#229842]
115
+ `:? ?[\\[\\(]${counters.r()}(?:(?:, ?|:)${counters.c()})?[\\]\\)]` + eolSuffix,
116
+ ]
117
+ .join('|')
118
+ .replace(/ /g, `[${'\u00A0'} ]`);
119
+ }
120
+ // 行号和列号匹配的索引
121
+ exports.winLineAndColumnMatchIndex = 12;
122
+ exports.unixLineAndColumnMatchIndex = 11;
123
+ // 行号和列号子句的组数
124
+ exports.lineAndColumnClauseGroupCount = 6;
125
+ // 最大长度限制
126
+ exports.MAX_LENGTH = 2000;
127
+ /**
128
+ * 从正则匹配结果中提取行号信息
129
+ */
130
+ function extractLineInfoFromMatch(match) {
131
+ const result = {};
132
+ // 提取文件路径(第一个捕获组)
133
+ if (match[1]) {
134
+ result.filePath = match[1];
135
+ }
136
+ // 提取命名捕获组中的行号信息
137
+ if (match.groups) {
138
+ for (const [key, value] of Object.entries(match.groups)) {
139
+ if (!value) {
140
+ continue;
141
+ }
142
+ if (key.startsWith('row')) {
143
+ const index = key.replace('row', '');
144
+ if (index === 'End') {
145
+ result.endLine = parseInt(value, 10);
146
+ }
147
+ else {
148
+ result.line = parseInt(value, 10);
149
+ }
150
+ }
151
+ else if (key.startsWith('col')) {
152
+ const index = key.replace('col', '');
153
+ if (index === 'End') {
154
+ result.endColumn = parseInt(value, 10);
155
+ }
156
+ else {
157
+ result.column = parseInt(value, 10);
158
+ }
159
+ }
160
+ }
161
+ }
162
+ return result;
163
+ }
164
+ //# sourceMappingURL=terminal-link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-link.js","sourceRoot":"","sources":["../../src/common/terminal-link.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opensumi/ide-terminal-next",
3
- "version": "3.8.3-next-1747658811.0",
3
+ "version": "3.9.0",
4
4
  "files": [
5
5
  "lib",
6
6
  "src"
@@ -17,11 +17,11 @@
17
17
  "url": "git@github.com:opensumi/core.git"
18
18
  },
19
19
  "dependencies": {
20
- "@opensumi/ide-connection": "3.8.3-next-1747658811.0",
21
- "@opensumi/ide-core-common": "3.8.3-next-1747658811.0",
22
- "@opensumi/ide-core-node": "3.8.3-next-1747658811.0",
23
- "@opensumi/ide-file-service": "3.8.3-next-1747658811.0",
24
- "@opensumi/ide-utils": "3.8.3-next-1747658811.0",
20
+ "@opensumi/ide-connection": "3.9.0",
21
+ "@opensumi/ide-core-common": "3.9.0",
22
+ "@opensumi/ide-core-node": "3.9.0",
23
+ "@opensumi/ide-file-service": "3.9.0",
24
+ "@opensumi/ide-utils": "3.9.0",
25
25
  "@xterm/addon-canvas": "0.7.0",
26
26
  "@xterm/addon-fit": "0.10.0",
27
27
  "@xterm/addon-search": "0.15.0",
@@ -31,19 +31,19 @@
31
31
  "os-locale": "^4.0.0"
32
32
  },
33
33
  "devDependencies": {
34
- "@opensumi/ide-components": "3.8.3-next-1747658811.0",
35
- "@opensumi/ide-core-browser": "3.8.3-next-1747658811.0",
36
- "@opensumi/ide-dev-tool": "3.8.3-next-1747658811.0",
37
- "@opensumi/ide-editor": "3.8.3-next-1747658811.0",
38
- "@opensumi/ide-main-layout": "3.8.3-next-1747658811.0",
39
- "@opensumi/ide-monaco": "3.8.3-next-1747658811.0",
40
- "@opensumi/ide-overlay": "3.8.3-next-1747658811.0",
41
- "@opensumi/ide-status-bar": "3.8.3-next-1747658811.0",
42
- "@opensumi/ide-theme": "3.8.3-next-1747658811.0",
43
- "@opensumi/ide-variable": "3.8.3-next-1747658811.0",
44
- "@opensumi/ide-workspace": "3.8.3-next-1747658811.0",
34
+ "@opensumi/ide-components": "3.9.0",
35
+ "@opensumi/ide-core-browser": "3.9.0",
36
+ "@opensumi/ide-dev-tool": "3.9.0",
37
+ "@opensumi/ide-editor": "3.9.0",
38
+ "@opensumi/ide-main-layout": "3.9.0",
39
+ "@opensumi/ide-monaco": "3.9.0",
40
+ "@opensumi/ide-overlay": "3.9.0",
41
+ "@opensumi/ide-status-bar": "3.9.0",
42
+ "@opensumi/ide-theme": "3.9.0",
43
+ "@opensumi/ide-variable": "3.9.0",
44
+ "@opensumi/ide-workspace": "3.9.0",
45
45
  "@types/http-proxy": "^1.17.2",
46
46
  "http-proxy": "^1.18.0"
47
47
  },
48
- "gitHead": "407b26bedd9f0a2c3d8260f9c4c604953a505487"
48
+ "gitHead": "6791ce569a373e2f65df9486c6ff312f23d4707c"
49
49
  }
@@ -25,22 +25,21 @@ import {
25
25
  ITerminalHoverManagerService,
26
26
  ITerminalService,
27
27
  } from '../../common';
28
+ import {
29
+ ILinkInfo,
30
+ extractLineInfoFromMatch,
31
+ getLineAndColumnClause,
32
+ unixLocalLinkClause,
33
+ winDrivePrefix,
34
+ winLocalLinkClause,
35
+ } from '../../common/terminal-link';
28
36
  import { XTermCore } from '../../common/xterm-private';
29
37
  import { TerminalClient } from '../terminal.client';
30
38
 
31
39
  import { TerminalExternalLinkProviderAdapter } from './external-link-provider-adapter';
32
40
  import { TerminalLink } from './link';
33
41
  import { TerminalProtocolLinkProvider } from './protocol-link-provider';
34
- import {
35
- TerminalValidatedLocalLinkProvider,
36
- lineAndColumnClause,
37
- lineAndColumnClauseGroupCount,
38
- unixLineAndColumnMatchIndex,
39
- unixLocalLinkClause,
40
- winDrivePrefix,
41
- winLineAndColumnMatchIndex,
42
- winLocalLinkClause,
43
- } from './validated-local-link-provider';
42
+ import { TerminalValidatedLocalLinkProvider } from './validated-local-link-provider';
44
43
  import { TerminalWordLinkProvider } from './word-link-provider';
45
44
 
46
45
  const { posix, win32 } = path;
@@ -249,23 +248,22 @@ export class TerminalLinkManager extends Disposable {
249
248
  protected get _localLinkRegex(): RegExp {
250
249
  const baseLocalLinkClause = this._client.os === OperatingSystem.Windows ? winLocalLinkClause : unixLocalLinkClause;
251
250
  // Append line and column number regex
252
- return new RegExp(`${baseLocalLinkClause}(${lineAndColumnClause})`);
251
+ return new RegExp(`${baseLocalLinkClause}(${getLineAndColumnClause()})`);
253
252
  }
254
253
 
255
254
  private async _handleLocalLink(link: string): Promise<void> {
256
- // TODO: This gets resolved again but doesn't need to as it's already validated
257
- const resolvedLink = await this._resolvePath(link);
255
+ const lineColumnInfo: LineColumnInfo = this.extractLineColumnInfo(link);
256
+ const resolvedLink = await this._resolvePath(lineColumnInfo.filePath);
258
257
  if (!resolvedLink) {
259
258
  return;
260
259
  }
261
- const lineColumnInfo: LineColumnInfo = this.extractLineColumnInfo(link);
262
260
  const range: ITextEditorSelection = {
263
261
  startLineNumber: lineColumnInfo.lineNumber,
264
262
  endLineNumber: lineColumnInfo.lineNumber,
265
263
  startColumn: lineColumnInfo.columnNumber,
266
264
  endColumn: lineColumnInfo.columnNumber,
267
265
  };
268
- await this._editorService.open(resolvedLink.uri, { range });
266
+ await this._editorService.open(resolvedLink.uri, { range, focus: true });
269
267
  }
270
268
 
271
269
  private _handleHypertextLink(url: string): void {
@@ -399,39 +397,31 @@ export class TerminalLinkManager extends Disposable {
399
397
  }
400
398
  }
401
399
 
400
+ private _extractLineInfoFromMatch(match: RegExpExecArray): ILinkInfo {
401
+ return extractLineInfoFromMatch(match);
402
+ }
403
+
402
404
  /**
403
405
  * Returns line and column number of URl if that is present.
404
406
  *
405
407
  * @param link Url link which may contain line and column number.
406
408
  */
407
409
  public extractLineColumnInfo(link: string): LineColumnInfo {
408
- const matches: string[] | null = this._localLinkRegex.exec(link);
410
+ const matches: RegExpExecArray | null = this._localLinkRegex.exec(link);
409
411
  const lineColumnInfo: LineColumnInfo = {
410
412
  lineNumber: 1,
411
413
  columnNumber: 1,
414
+ filePath: link,
412
415
  };
413
-
414
416
  if (!matches) {
415
417
  return lineColumnInfo;
416
418
  }
417
-
418
- const lineAndColumnMatchIndex =
419
- this._client.os === OperatingSystem.Windows ? winLineAndColumnMatchIndex : unixLineAndColumnMatchIndex;
420
- for (let i = 0; i < lineAndColumnClause.length; i++) {
421
- const lineMatchIndex = lineAndColumnMatchIndex + lineAndColumnClauseGroupCount * i;
422
- const rowNumber = matches[lineMatchIndex];
423
- if (rowNumber) {
424
- lineColumnInfo['lineNumber'] = parseInt(rowNumber, 10);
425
- // Check if column number exists
426
- const columnNumber = matches[lineMatchIndex + 2];
427
- if (columnNumber) {
428
- lineColumnInfo['columnNumber'] = parseInt(columnNumber, 10);
429
- }
430
- break;
431
- }
432
- }
433
-
434
- return lineColumnInfo;
419
+ const lineInfo = this._extractLineInfoFromMatch(matches);
420
+ return {
421
+ filePath: lineInfo.filePath ?? link,
422
+ lineNumber: lineInfo.line ?? 1,
423
+ columnNumber: lineInfo.column ?? 1,
424
+ };
435
425
  }
436
426
 
437
427
  /**
@@ -449,6 +439,7 @@ export class TerminalLinkManager extends Disposable {
449
439
  }
450
440
 
451
441
  export interface LineColumnInfo {
442
+ filePath: string;
452
443
  lineNumber: number;
453
444
  columnNumber: number;
454
445
  }
@@ -43,7 +43,17 @@ export class TerminalLink extends Disposable implements ILink {
43
43
  public readonly range: IBufferRange,
44
44
  public readonly text: string,
45
45
  private readonly _viewportY: number,
46
- private readonly _activateCallback: (event: MouseEvent | undefined, uri: string) => void,
46
+ private readonly _activateCallback: (
47
+ event: MouseEvent | undefined,
48
+ uri: string,
49
+ lineInfo?: {
50
+ filePath?: string;
51
+ line?: number;
52
+ column?: number;
53
+ endLine?: number;
54
+ endColumn?: number;
55
+ },
56
+ ) => void,
47
57
  private readonly _tooltipCallback: (
48
58
  link: TerminalLink,
49
59
  viewportRange: IViewportRange,
@@ -52,6 +62,13 @@ export class TerminalLink extends Disposable implements ILink {
52
62
  ) => IDisposable | undefined,
53
63
  private readonly _isHighConfidenceLink: boolean,
54
64
  readonly label: string | undefined,
65
+ private readonly _lineInfo?: {
66
+ filePath?: string;
67
+ line?: number;
68
+ column?: number;
69
+ endLine?: number;
70
+ endColumn?: number;
71
+ },
55
72
  ) {
56
73
  super();
57
74
  this.decorations = {
@@ -71,7 +88,7 @@ export class TerminalLink extends Disposable implements ILink {
71
88
  }
72
89
 
73
90
  activate(event: MouseEvent | undefined, text: string): void {
74
- this._activateCallback(event, text);
91
+ this._activateCallback(event, text, this._lineInfo);
75
92
  }
76
93
 
77
94
  hover(event: MouseEvent, text: string): void {
@@ -7,9 +7,18 @@
7
7
  import { Autowired, INJECTOR_TOKEN, Injectable, Injector } from '@opensumi/di';
8
8
  import { AppConfig } from '@opensumi/ide-core-browser/lib/react-providers/config-provider';
9
9
  import { IWindowService } from '@opensumi/ide-core-browser/lib/window';
10
- import { CommandService, IDisposable, OperatingSystem, URI } from '@opensumi/ide-core-common';
10
+ import { CommandService, FileUri, IDisposable, OperatingSystem, URI } from '@opensumi/ide-core-common';
11
11
  import { IWorkspaceService } from '@opensumi/ide-workspace/lib/common/workspace.interface';
12
12
 
13
+ import {
14
+ ILinkInfo,
15
+ MAX_LENGTH,
16
+ extractLineInfoFromMatch,
17
+ getLineAndColumnClause,
18
+ unixLocalLinkClause,
19
+ winLocalLinkClause,
20
+ } from '../../common/terminal-link';
21
+
13
22
  import { TerminalBaseLinkProvider } from './base';
14
23
  import { convertLinkRangeToBuffer, getXtermLineContent } from './helpers';
15
24
  import { FOLDER_IN_WORKSPACE_LABEL, FOLDER_NOT_IN_WORKSPACE_LABEL, OPEN_FILE_LABEL, TerminalLink } from './link';
@@ -18,61 +27,6 @@ import { XtermLinkMatcherHandler } from './link-manager';
18
27
  import type { TerminalClient } from '../terminal.client';
19
28
  import type { IBufferLine, IViewportRange, Terminal } from '@xterm/xterm';
20
29
 
21
- const pathPrefix = '(\\.\\.?|\\~)';
22
- const pathSeparatorClause = '\\/';
23
- // '":; are allowed in paths but they are often separators so ignore them
24
- // Also disallow \\ to prevent a catastropic backtracking case #24795
25
- const excludedPathCharactersClause = '[^\\0\\s!`&*()\\[\\]\'":;\\\\]';
26
- /** A regex that matches paths in the form /foo, ~/foo, ./foo, ../foo, foo/bar */
27
- export const unixLocalLinkClause =
28
- '((' +
29
- pathPrefix +
30
- '|(' +
31
- excludedPathCharactersClause +
32
- ')+)?(' +
33
- pathSeparatorClause +
34
- '(' +
35
- excludedPathCharactersClause +
36
- ')+)+)';
37
-
38
- export const winDrivePrefix = '(?:\\\\\\\\\\?\\\\)?[a-zA-Z]:';
39
- const winPathPrefix = '(' + winDrivePrefix + '|\\.\\.?|\\~)';
40
- const winPathSeparatorClause = '(\\\\|\\/)';
41
- const winExcludedPathCharactersClause = '[^\\0<>\\?\\|\\/\\s!`&*()\\[\\]\'":;]';
42
- /** A regex that matches paths in the form \\?\c:\foo c:\foo, ~\foo, .\foo, ..\foo, foo\bar */
43
- export const winLocalLinkClause =
44
- '((' +
45
- winPathPrefix +
46
- '|(' +
47
- winExcludedPathCharactersClause +
48
- ')+)?(' +
49
- winPathSeparatorClause +
50
- '(' +
51
- winExcludedPathCharactersClause +
52
- ')+)+)';
53
-
54
- /** As xterm reads from DOM, space in that case is nonbreaking char ASCII code - 160,
55
- replacing space with nonBreakningSpace or space ASCII code - 32. */
56
- export const lineAndColumnClause = [
57
- '((\\S*)[\'"], line ((\\d+)( column (\\d+))?))', // "(file path)", line 45 [see #40468]
58
- '((\\S*)[\'"],((\\d+)(:(\\d+))?))', // "(file path)",45 [see #78205]
59
- '((\\S*) on line ((\\d+)(, column (\\d+))?))', // (file path) on line 8, column 13
60
- '((\\S*):line ((\\d+)(, column (\\d+))?))', // (file path):line 8, column 13
61
- '(([^\\s\\(\\)]*)(\\s?[\\(\\[](\\d+)(,\\s?(\\d+))?)[\\)\\]])', // (file path)(45), (file path) (45), (file path)(45,18), (file path) (45,18), (file path)(45, 18), (file path) (45, 18), also with []
62
- '(([^:\\s\\(\\)<>\'"\\[\\]]*)(:(\\d+))?(:(\\d+))?)', // (file path):336, (file path):336:9
63
- ]
64
- .join('|')
65
- .replace(/ /g, `[${'\u00A0'} ]`);
66
-
67
- // Changing any regex may effect this value, hence changes this as well if required.
68
- export const winLineAndColumnMatchIndex = 12;
69
- export const unixLineAndColumnMatchIndex = 11;
70
-
71
- // Each line and column clause have 6 groups (ie no. of expressions in round brackets)
72
- export const lineAndColumnClauseGroupCount = 6;
73
-
74
- const MAX_LENGTH = 2000;
75
-
76
30
  @Injectable({ multiple: true })
77
31
  export class TerminalValidatedLocalLinkProvider extends TerminalBaseLinkProvider {
78
32
  @Autowired(INJECTOR_TOKEN)
@@ -168,7 +122,9 @@ export class TerminalValidatedLocalLinkProvider extends TerminalBaseLinkProvider
168
122
  link = link.substring(2);
169
123
  stringIndex += 2;
170
124
  }
171
- const validatedLinks = await this.detectLocalLink(link, lines, startLine, stringIndex, 1);
125
+ // 从匹配结果中提取行号信息
126
+ const lineInfo = this._extractLineInfoFromMatch(match);
127
+ const validatedLinks = await this.detectLocalLink(link, lines, startLine, stringIndex, 1, lineInfo);
172
128
 
173
129
  if (validatedLinks.length > 0) {
174
130
  result.push(...validatedLinks);
@@ -178,16 +134,33 @@ export class TerminalValidatedLocalLinkProvider extends TerminalBaseLinkProvider
178
134
  return result;
179
135
  }
180
136
 
137
+ private _extractLineInfoFromMatch(match: RegExpExecArray): ILinkInfo {
138
+ return extractLineInfoFromMatch(match);
139
+ }
140
+
141
+ protected get _localLinkRegex(): RegExp {
142
+ const baseLocalLinkClause = this._client.os === OperatingSystem.Windows ? winLocalLinkClause : unixLocalLinkClause;
143
+ // Append line and column number regex
144
+ return new RegExp(`(${baseLocalLinkClause})(${getLineAndColumnClause()})?`);
145
+ }
146
+
181
147
  private async detectLocalLink(
182
148
  text: string,
183
149
  bufferLines: IBufferLine[],
184
150
  startLine: number,
185
151
  stringIndex: number,
186
152
  offset,
153
+ lineInfo?: ILinkInfo,
187
154
  ) {
188
155
  const result: TerminalLink[] = [];
156
+
189
157
  const validatedLink = await new Promise<TerminalLink | undefined>((r) => {
190
- this._validationCallback(text, async (result) => {
158
+ // 使用匹配到的文件路径
159
+ const filePath = text.match(this._localLinkRegex)?.[1] || text;
160
+ // 如果是 file:/// 协议,转换为本地路径
161
+ const localPath = filePath.startsWith('file://') ? FileUri.fsPath(URI.parse(filePath)) : filePath;
162
+
163
+ this._validationCallback(localPath, async (result) => {
191
164
  if (result) {
192
165
  const label = result.isDirectory
193
166
  ? (await this._isDirectoryInsideWorkspace(result.uri))
@@ -201,6 +174,7 @@ export class TerminalValidatedLocalLinkProvider extends TerminalBaseLinkProvider
201
174
  this._activateFileCallback(event, text);
202
175
  }
203
176
  });
177
+
204
178
  // Convert the link text's string index into a wrapped buffer range
205
179
  const bufferRange = convertLinkRangeToBuffer(
206
180
  bufferLines,
@@ -213,12 +187,14 @@ export class TerminalValidatedLocalLinkProvider extends TerminalBaseLinkProvider
213
187
  },
214
188
  startLine,
215
189
  );
190
+
216
191
  const tooltipCallback = (
217
192
  link: TerminalLink,
218
193
  viewportRange: IViewportRange,
219
194
  modifierDownCallback?: () => void,
220
195
  modifierUpCallback?: () => void,
221
196
  ) => this._tooltipCallback(link, viewportRange, modifierDownCallback, modifierUpCallback);
197
+
222
198
  r(
223
199
  this.injector.get(TerminalLink, [
224
200
  this._xterm,
@@ -229,6 +205,7 @@ export class TerminalValidatedLocalLinkProvider extends TerminalBaseLinkProvider
229
205
  tooltipCallback,
230
206
  true,
231
207
  label,
208
+ lineInfo,
232
209
  ]),
233
210
  );
234
211
  } else {
@@ -236,18 +213,13 @@ export class TerminalValidatedLocalLinkProvider extends TerminalBaseLinkProvider
236
213
  }
237
214
  });
238
215
  });
216
+
239
217
  if (validatedLink) {
240
218
  result.push(validatedLink);
241
219
  }
242
220
  return result;
243
221
  }
244
222
 
245
- protected get _localLinkRegex(): RegExp {
246
- const baseLocalLinkClause = this._client.os === OperatingSystem.Windows ? winLocalLinkClause : unixLocalLinkClause;
247
- // Append line and column number regex
248
- return new RegExp(`${baseLocalLinkClause}(${lineAndColumnClause})`);
249
- }
250
-
251
223
  private async _handleLocalFolderLink(uri: URI): Promise<void> {
252
224
  // If the folder is within one of the window's workspaces, focus it in the explorer
253
225
  if (await this._isDirectoryInsideWorkspace(uri)) {
@@ -0,0 +1,183 @@
1
+ /* ---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the MIT License. See License.txt in the project root for license information.
4
+ *--------------------------------------------------------------------------------------------*/
5
+
6
+ // 行号和列号的正则生成函数
7
+ class LinkMatchCounters {
8
+ private ri = 0;
9
+ private ci = 0;
10
+ private rei = 0;
11
+ private cei = 0;
12
+
13
+ r(): string {
14
+ return `(?<row${this.ri++}>\\d+)`;
15
+ }
16
+
17
+ c(): string {
18
+ return `(?<col${this.ci++}>\\d+)`;
19
+ }
20
+
21
+ re(): string {
22
+ return `(?<rowEnd${this.rei++}>\\d+)`;
23
+ }
24
+
25
+ ce(): string {
26
+ return `(?<colEnd${this.cei++}>\\d+)`;
27
+ }
28
+ }
29
+
30
+ // 路径相关的正则表达式
31
+ export const pathPrefix = '(\\.\\.?|\\~)';
32
+ export const pathSeparatorClause = '\\/';
33
+ export const excludedPathCharactersClause = '[^\\0\\s!`&*()\\[\\]\'":;\\\\]';
34
+ export const winDrivePrefix = '(?:\\\\\\\\\\?\\\\)?[a-zA-Z]:';
35
+ export const winPathPrefix = '(' + winDrivePrefix + '|\\.\\.?|\\~)';
36
+ export const winPathSeparatorClause = '(\\\\|\\/)';
37
+ export const winExcludedPathCharactersClause = '[^\\0<>\\?\\|\\/\\s!`&*()\\[\\]\'":;]';
38
+
39
+ // Unix 和 Windows 的本地链接正则表达式
40
+ export const unixLocalLinkClause =
41
+ '((' +
42
+ pathPrefix +
43
+ '|(' +
44
+ excludedPathCharactersClause +
45
+ ')+)?(' +
46
+ pathSeparatorClause +
47
+ '(' +
48
+ excludedPathCharactersClause +
49
+ ')+)+)';
50
+
51
+ export const winLocalLinkClause =
52
+ '((' +
53
+ winPathPrefix +
54
+ '|(' +
55
+ winExcludedPathCharactersClause +
56
+ ')+)?(' +
57
+ winPathSeparatorClause +
58
+ '(' +
59
+ winExcludedPathCharactersClause +
60
+ ')+)+)';
61
+
62
+ // 行号和列号的匹配正则表达式
63
+ const eolSuffix = '';
64
+
65
+ /** As xterm reads from DOM, space in that case is nonbreaking char ASCII code - 160,
66
+ replacing space with nonBreakningSpace or space ASCII code - 32. */
67
+ export function getLineAndColumnClause(): string {
68
+ const counters = new LinkMatchCounters();
69
+
70
+ return [
71
+ // foo:339
72
+ // foo:339:12
73
+ // foo:339:12-789
74
+ // foo:339:12-341.789
75
+ // foo:339.12
76
+ // foo 339
77
+ // foo 339:12 [#140780]
78
+ // foo 339.12
79
+ // foo#339
80
+ // foo#339:12 [#190288]
81
+ // foo#339.12
82
+ // foo, 339 [#217927]
83
+ // "foo",339
84
+ // "foo",339:12
85
+ // "foo",339.12
86
+ // "foo",339.12-789
87
+ // "foo",339.12-341.789
88
+ `(?::|#| |['"],|, )${counters.r()}([:.]${counters.c()}(?:-(?:${counters.re()}\\.)?${counters.ce()})?)?` + eolSuffix,
89
+ // The quotes below are optional [#171652]
90
+ // "foo", line 339 [#40468]
91
+ // "foo", line 339, col 12
92
+ // "foo", line 339, column 12
93
+ // "foo":line 339
94
+ // "foo":line 339, col 12
95
+ // "foo":line 339, column 12
96
+ // "foo": line 339
97
+ // "foo": line 339, col 12
98
+ // "foo": line 339, column 12
99
+ // "foo" on line 339
100
+ // "foo" on line 339, col 12
101
+ // "foo" on line 339, column 12
102
+ // "foo" line 339 column 12
103
+ // "foo", line 339, character 12 [#171880]
104
+ // "foo", line 339, characters 12-789 [#171880]
105
+ // "foo", lines 339-341 [#171880]
106
+ // "foo", lines 339-341, characters 12-789 [#178287]
107
+ `['"]?(?:,? |: ?| on )lines? ${counters.r()}(?:-${counters.re()})?(?:,? (?:col(?:umn)?|characters?) ${counters.c()}(?:-${counters.ce()})?)?` +
108
+ eolSuffix,
109
+ // () and [] are interchangeable
110
+ // foo(339)
111
+ // foo(339,12)
112
+ // foo(339, 12)
113
+ // foo (339)
114
+ // foo (339,12)
115
+ // foo (339, 12)
116
+ // foo: (339)
117
+ // foo: (339,12)
118
+ // foo: (339, 12)
119
+ // foo(339:12) [#229842]
120
+ // foo (339:12) [#229842]
121
+ `:? ?[\\[\\(]${counters.r()}(?:(?:, ?|:)${counters.c()})?[\\]\\)]` + eolSuffix,
122
+ ]
123
+ .join('|')
124
+ .replace(/ /g, `[${'\u00A0'} ]`);
125
+ }
126
+
127
+ // 行号和列号匹配的索引
128
+ export const winLineAndColumnMatchIndex = 12;
129
+ export const unixLineAndColumnMatchIndex = 11;
130
+
131
+ // 行号和列号子句的组数
132
+ export const lineAndColumnClauseGroupCount = 6;
133
+
134
+ // 链接信息接口
135
+ export interface ILinkInfo {
136
+ filePath?: string;
137
+ line?: number;
138
+ column?: number;
139
+ endLine?: number;
140
+ endColumn?: number;
141
+ }
142
+
143
+ // 最大长度限制
144
+ export const MAX_LENGTH = 2000;
145
+
146
+ /**
147
+ * 从正则匹配结果中提取行号信息
148
+ */
149
+ export function extractLineInfoFromMatch(match: RegExpExecArray): ILinkInfo {
150
+ const result: any = {};
151
+
152
+ // 提取文件路径(第一个捕获组)
153
+ if (match[1]) {
154
+ result.filePath = match[1];
155
+ }
156
+
157
+ // 提取命名捕获组中的行号信息
158
+ if (match.groups) {
159
+ for (const [key, value] of Object.entries(match.groups)) {
160
+ if (!value) {
161
+ continue;
162
+ }
163
+
164
+ if (key.startsWith('row')) {
165
+ const index = key.replace('row', '');
166
+ if (index === 'End') {
167
+ result.endLine = parseInt(value, 10);
168
+ } else {
169
+ result.line = parseInt(value, 10);
170
+ }
171
+ } else if (key.startsWith('col')) {
172
+ const index = key.replace('col', '');
173
+ if (index === 'End') {
174
+ result.endColumn = parseInt(value, 10);
175
+ } else {
176
+ result.column = parseInt(value, 10);
177
+ }
178
+ }
179
+ }
180
+ }
181
+
182
+ return result;
183
+ }