diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 8c4f435affe..0f2042b0f68 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -1733,6 +1733,13 @@ module ts { } } + function getOneBasedLineAndCharacterOfPosition(sourceFile: SourceFile, pos: number) { + var result = getZeroBasedLineAndCharacterOfPosition(sourceFile, pos); + result.line++; + result.character++; + return result; + } + function recordSourceMapSpan(pos: number) { var sourceLinePos = getOneBasedLineAndCharacterOfPosition(currentSourceFile, pos); var emittedLine = writer.getLine(); diff --git a/src/compiler/scanner.ts b/src/compiler/scanner.ts index 25e1ef63f6f..c124c55c7da 100644 --- a/src/compiler/scanner.ts +++ b/src/compiler/scanner.ts @@ -319,10 +319,6 @@ module ts { return computeZeroBasedLineAndCharacterOfPosition(getLineStarts(sourceFile), position); } - export function getOneBasedLineAndCharacterOfPosition(sourceFile: SourceFile, position: number): LineAndCharacter { - return computeOneBasedLineAndCharacterOfPosition(getLineStarts(sourceFile), position); - } - var hasOwnProperty = Object.prototype.hasOwnProperty; export function isWhiteSpace(ch: number): boolean { diff --git a/src/compiler/tsc.ts b/src/compiler/tsc.ts index 84d8a25e790..64272b196ff 100644 --- a/src/compiler/tsc.ts +++ b/src/compiler/tsc.ts @@ -72,7 +72,7 @@ module ts { function countLines(program: Program): number { var count = 0; forEach(program.getSourceFiles(), file => { - count += getOneBasedLineAndCharacterOfPosition(file, file.end).line; + count += getLineStarts(file).length; }); return count; } @@ -86,9 +86,9 @@ module ts { var output = ""; if (diagnostic.file) { - var loc = getOneBasedLineAndCharacterOfPosition(diagnostic.file, diagnostic.start); + var loc = getZeroBasedLineAndCharacterOfPosition(diagnostic.file, diagnostic.start); - output += diagnostic.file.fileName + "(" + loc.line + "," + loc.character + "): "; + output += diagnostic.file.fileName + "(" + (loc.line + 1) + "," + (loc.character + 1) + "): "; } var category = DiagnosticCategory[diagnostic.category].toLowerCase(); diff --git a/src/compiler/utilities.ts b/src/compiler/utilities.ts index 095044c4b8f..d543adaa103 100644 --- a/src/compiler/utilities.ts +++ b/src/compiler/utilities.ts @@ -118,8 +118,8 @@ module ts { // This is a useful function for debugging purposes. export function nodePosToString(node: Node): string { var file = getSourceFileOfNode(node); - var loc = getOneBasedLineAndCharacterOfPosition(file, node.pos); - return file.fileName + "(" + loc.line + "," + loc.character + ")"; + var loc = getZeroBasedLineAndCharacterOfPosition(file, node.pos); + return file.fileName + "(" + (loc.line + 1) + "," + (loc.character + 1) + ")"; } export function getStartPosOfNode(node: Node): number { diff --git a/src/services/services.ts b/src/services/services.ts index 33fde9e005e..05015c60c02 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -756,7 +756,10 @@ module ts { } public getOneBasedLineAndCharacterOfPosition(position: number): LineAndCharacter { - return ts.getOneBasedLineAndCharacterOfPosition(this, position); + var result = ts.getZeroBasedLineAndCharacterOfPosition(this, position); + result.line++; + result.character++; + return result; } public getLineStarts(): number[] {