Skip to content

Commit 58b32d6

Browse files
authored
1 parent be6446d commit 58b32d6

File tree

4 files changed

+11
-9
lines changed

4 files changed

+11
-9
lines changed

src/vs/editor/browser/view/viewLayer.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { StringBuilder } from 'vs/editor/common/core/stringBuilder';
88
import * as viewEvents from 'vs/editor/common/viewEvents';
99
import { ViewportData } from 'vs/editor/common/viewLayout/viewLinesViewportData';
1010
import { EditorOption } from 'vs/editor/common/config/editorOptions';
11+
import { BugIndicatingError } from 'vs/base/common/errors';
1112

1213
/**
1314
* Represents a visible line
@@ -80,7 +81,7 @@ export class RenderedLinesCollection<T extends ILine> {
8081
public getLine(lineNumber: number): T {
8182
const lineIndex = lineNumber - this._rendLineNumberStart;
8283
if (lineIndex < 0 || lineIndex >= this._lines.length) {
83-
throw new Error('Illegal value for lineNumber');
84+
throw new BugIndicatingError('Illegal value for lineNumber');
8485
}
8586
return this._lines[lineIndex];
8687
}

src/vs/editor/common/model/guidesTextModelPart.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import { TextModelPart } from 'vs/editor/common/model/textModelPart';
1313
import { computeIndentLevel } from 'vs/editor/common/model/utils';
1414
import { ILanguageConfigurationService, ResolvedLanguageConfiguration } from 'vs/editor/common/languages/languageConfigurationRegistry';
1515
import { BracketGuideOptions, HorizontalGuidesState, IActiveIndentGuideInfo, IGuidesTextModelPart, IndentGuide, IndentGuideHorizontalLine } from 'vs/editor/common/textModelGuides';
16+
import { BugIndicatingError } from 'vs/base/common/errors';
1617

1718
export class GuidesTextModelPart extends TextModelPart implements IGuidesTextModelPart {
1819
constructor(
@@ -46,7 +47,7 @@ export class GuidesTextModelPart extends TextModelPart implements IGuidesTextMod
4647
const lineCount = this.textModel.getLineCount();
4748

4849
if (lineNumber < 1 || lineNumber > lineCount) {
49-
throw new Error('Illegal value for lineNumber');
50+
throw new BugIndicatingError('Illegal value for lineNumber');
5051
}
5152

5253
const foldingRules = this.getLanguageConfiguration(

src/vs/editor/common/model/textModel.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import { ArrayQueue, pushMany } from 'vs/base/common/arrays';
77
import { VSBuffer, VSBufferReadableStream } from 'vs/base/common/buffer';
88
import { Color } from 'vs/base/common/color';
9-
import { illegalArgument, onUnexpectedError } from 'vs/base/common/errors';
9+
import { BugIndicatingError, illegalArgument, onUnexpectedError } from 'vs/base/common/errors';
1010
import { Emitter, Event } from 'vs/base/common/event';
1111
import { IMarkdownString } from 'vs/base/common/htmlContent';
1212
import { combinedDisposable, Disposable, IDisposable, MutableDisposable } from 'vs/base/common/lifecycle';
@@ -792,7 +792,7 @@ export class TextModel extends Disposable implements model.ITextModel, IDecorati
792792
public getLineContent(lineNumber: number): string {
793793
this._assertNotDisposed();
794794
if (lineNumber < 1 || lineNumber > this.getLineCount()) {
795-
throw new Error('Illegal value for lineNumber');
795+
throw new BugIndicatingError('Illegal value for lineNumber');
796796
}
797797

798798
return this._buffer.getLineContent(lineNumber);
@@ -801,7 +801,7 @@ export class TextModel extends Disposable implements model.ITextModel, IDecorati
801801
public getLineLength(lineNumber: number): number {
802802
this._assertNotDisposed();
803803
if (lineNumber < 1 || lineNumber > this.getLineCount()) {
804-
throw new Error('Illegal value for lineNumber');
804+
throw new BugIndicatingError('Illegal value for lineNumber');
805805
}
806806

807807
return this._buffer.getLineLength(lineNumber);
@@ -834,23 +834,23 @@ export class TextModel extends Disposable implements model.ITextModel, IDecorati
834834
public getLineMaxColumn(lineNumber: number): number {
835835
this._assertNotDisposed();
836836
if (lineNumber < 1 || lineNumber > this.getLineCount()) {
837-
throw new Error('Illegal value for lineNumber');
837+
throw new BugIndicatingError('Illegal value for lineNumber');
838838
}
839839
return this._buffer.getLineLength(lineNumber) + 1;
840840
}
841841

842842
public getLineFirstNonWhitespaceColumn(lineNumber: number): number {
843843
this._assertNotDisposed();
844844
if (lineNumber < 1 || lineNumber > this.getLineCount()) {
845-
throw new Error('Illegal value for lineNumber');
845+
throw new BugIndicatingError('Illegal value for lineNumber');
846846
}
847847
return this._buffer.getLineFirstNonWhitespaceColumn(lineNumber);
848848
}
849849

850850
public getLineLastNonWhitespaceColumn(lineNumber: number): number {
851851
this._assertNotDisposed();
852852
if (lineNumber < 1 || lineNumber > this.getLineCount()) {
853-
throw new Error('Illegal value for lineNumber');
853+
throw new BugIndicatingError('Illegal value for lineNumber');
854854
}
855855
return this._buffer.getLineLastNonWhitespaceColumn(lineNumber);
856856
}

src/vs/editor/common/model/tokenizationTextModelPart.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -544,7 +544,7 @@ class GrammarTokens extends Disposable {
544544
return;
545545
}
546546

547-
startLineNumber = Math.max(1, startLineNumber);
547+
startLineNumber = Math.max(1, Math.min(this._textModel.getLineCount(), startLineNumber));
548548
endLineNumber = Math.min(this._textModel.getLineCount(), endLineNumber);
549549

550550
const builder = new ContiguousMultilineTokensBuilder();

0 commit comments

Comments
 (0)