Skip to content

Commit 0113f43

Browse files
committed
Fix the edits clamping from #28583 after rebasing to master
1 parent 751cb9e commit 0113f43

File tree

7 files changed

+20
-20
lines changed

7 files changed

+20
-20
lines changed

src/compiler/scanner.ts

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -337,17 +337,14 @@ namespace ts {
337337
return result;
338338
}
339339

340-
export function getPositionOfLineAndCharacter(sourceFile: SourceFileLike, line: number, character: number): number {
341-
return sourceFile.getPositionOfLineAndCharacter ?
342-
sourceFile.getPositionOfLineAndCharacter(line, character) :
343-
computePositionOfLineAndCharacter(getLineStarts(sourceFile), line, character, sourceFile.text);
344-
}
345-
340+
export function getPositionOfLineAndCharacter(sourceFile: SourceFileLike, line: number, character: number): number;
346341
/* @internal */
347-
export function getPositionOfLineAndCharacterWithEdits(sourceFile: SourceFileLike, line: number, character: number): number {
342+
// tslint:disable-next-line:unified-signatures
343+
export function getPositionOfLineAndCharacter(sourceFile: SourceFileLike, line: number, character: number, allowEdits?: true): number;
344+
export function getPositionOfLineAndCharacter(sourceFile: SourceFileLike, line: number, character: number, allowEdits?: true): number {
348345
return sourceFile.getPositionOfLineAndCharacter ?
349-
sourceFile.getPositionOfLineAndCharacter(line, character) :
350-
computePositionOfLineAndCharacter(getLineStarts(sourceFile), line, character, sourceFile.text, /*allowEdits*/ true);
346+
sourceFile.getPositionOfLineAndCharacter(line, character, allowEdits) :
347+
computePositionOfLineAndCharacter(getLineStarts(sourceFile), line, character, sourceFile.text, allowEdits);
351348
}
352349

353350
/* @internal */

src/compiler/sourcemap.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -616,15 +616,15 @@ namespace ts {
616616

617617
function processMapping(mapping: Mapping): MappedPosition {
618618
const generatedPosition = generatedFile !== undefined
619-
? getPositionOfLineAndCharacterWithEdits(generatedFile, mapping.generatedLine, mapping.generatedCharacter)
619+
? getPositionOfLineAndCharacter(generatedFile, mapping.generatedLine, mapping.generatedCharacter, /*allowEdits*/ true)
620620
: -1;
621621
let source: string | undefined;
622622
let sourcePosition: number | undefined;
623623
if (isSourceMapping(mapping)) {
624624
const sourceFile = host.getSourceFileLike(sourceFileAbsolutePaths[mapping.sourceIndex]);
625625
source = map.sources[mapping.sourceIndex];
626626
sourcePosition = sourceFile !== undefined
627-
? getPositionOfLineAndCharacterWithEdits(sourceFile, mapping.sourceLine, mapping.sourceCharacter)
627+
? getPositionOfLineAndCharacter(sourceFile, mapping.sourceLine, mapping.sourceCharacter, /*allowEdits*/ true)
628628
: -1;
629629
}
630630
return {

src/compiler/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2615,7 +2615,7 @@ namespace ts {
26152615
readonly text: string;
26162616
lineMap?: ReadonlyArray<number>;
26172617
/* @internal */
2618-
getPositionOfLineAndCharacter?(line: number, character: number): number;
2618+
getPositionOfLineAndCharacter?(line: number, character: number, allowEdits?: true): number;
26192619
}
26202620

26212621

src/server/editorServices.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2316,7 +2316,7 @@ namespace ts.server {
23162316
const lineOffset = info.positionToLineOffset(pos);
23172317
return { line: lineOffset.line - 1, character: lineOffset.offset - 1 };
23182318
},
2319-
getPositionOfLineAndCharacter: (line, character) => info.lineOffsetToPosition(line + 1, character + 1)
2319+
getPositionOfLineAndCharacter: (line, character, allowEdits) => info.lineOffsetToPosition(line + 1, character + 1, allowEdits)
23202320
};
23212321
}
23222322
return info.sourceFileLike;

src/server/scriptInfo.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -186,9 +186,9 @@ namespace ts.server {
186186
* @param line 1 based index
187187
* @param offset 1 based index
188188
*/
189-
lineOffsetToPosition(line: number, offset: number): number {
189+
lineOffsetToPosition(line: number, offset: number, allowEdits?: true): number {
190190
if (!this.useScriptVersionCacheIfValidOrOpen()) {
191-
return computePositionOfLineAndCharacter(this.getLineMap(), line - 1, offset - 1, this.text);
191+
return computePositionOfLineAndCharacter(this.getLineMap(), line - 1, offset - 1, this.text, allowEdits);
192192
}
193193

194194
// TODO: assert this offset is actually on the line
@@ -586,8 +586,12 @@ namespace ts.server {
586586
* @param line 1 based index
587587
* @param offset 1 based index
588588
*/
589-
lineOffsetToPosition(line: number, offset: number): number {
590-
return this.textStorage.lineOffsetToPosition(line, offset);
589+
lineOffsetToPosition(line: number, offset: number): number;
590+
/*@internal*/
591+
// tslint:disable-next-line:unified-signatures
592+
lineOffsetToPosition(line: number, offset: number, allowEdits?: true): number;
593+
lineOffsetToPosition(line: number, offset: number, allowEdits?: true): number {
594+
return this.textStorage.lineOffsetToPosition(line, offset, allowEdits);
591595
}
592596

593597
positionToLineOffset(position: number): protocol.Location {

src/services/services.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -602,8 +602,8 @@ namespace ts {
602602
return getLineStarts(this);
603603
}
604604

605-
public getPositionOfLineAndCharacter(line: number, character: number): number {
606-
return computePositionOfLineAndCharacter(getLineStarts(this), line, character, this.text);
605+
public getPositionOfLineAndCharacter(line: number, character: number, allowEdits?: true): number {
606+
return computePositionOfLineAndCharacter(getLineStarts(this), line, character, this.text, allowEdits);
607607
}
608608

609609
public getLineEndOfPosition(pos: number): number {

src/services/sourcemaps.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,6 @@ namespace ts {
9797
const fileFromCache = sourceFileLike.get(path);
9898
if (fileFromCache !== undefined) return fileFromCache ? fileFromCache : undefined;
9999

100-
// TODO: should ask host instead?
101100
if (!host.readFile || host.fileExists && !host.fileExists(path)) {
102101
sourceFileLike.set(path, false);
103102
return undefined;

0 commit comments

Comments
 (0)