diff --git a/src/vs/workbench/contrib/quickopen/browser/gotoLineHandler.ts b/src/vs/workbench/contrib/quickopen/browser/gotoLineHandler.ts index 724509b2d05..abde827728c 100644 --- a/src/vs/workbench/contrib/quickopen/browser/gotoLineHandler.ts +++ b/src/vs/workbench/contrib/quickopen/browser/gotoLineHandler.ts @@ -87,8 +87,10 @@ class GotoLineEntry extends EditorQuickOpenEntry { private parseInput(line: string) { const numbers = line.split(/,|:|#/).map(part => parseInt(part, 10)).filter(part => !isNaN(part)); - this.line = numbers[0]; + const endLine = this.getMaxLineNumber() + 1; + this.column = numbers[1]; + this.line = numbers[0] > 0 ? numbers[0] : endLine + numbers[0]; } getLabel(): string { @@ -114,7 +116,7 @@ class GotoLineEntry extends EditorQuickOpenEntry { } private invalidRange(maxLineNumber: number = this.getMaxLineNumber()): boolean { - return !this.line || !types.isNumber(this.line) || (maxLineNumber > 0 && types.isNumber(this.line) && this.line > maxLineNumber); + return !this.line || !types.isNumber(this.line) || (maxLineNumber > 0 && types.isNumber(this.line) && this.line > maxLineNumber) || this.line < 0; } private getMaxLineNumber(): number {