@@ -67,14 +67,14 @@ module ts.formatting {
6767 }
6868
6969 export function formatOnEnter ( position : number , sourceFile : SourceFile , rulesProvider : RulesProvider , options : FormatCodeOptions ) : TextChange [ ] {
70- var line = sourceFile . getOneBasedLineAndCharacterOfPosition ( position ) . line ;
71- if ( line === 1 ) {
70+ var line = sourceFile . getZeroBasedLineAndCharacterOfPosition ( position ) . line ;
71+ if ( line === 0 ) {
7272 return [ ] ;
7373 }
7474 // get the span for the previous\current line
7575 var span = {
7676 // get start position for the previous line
77- pos : getStartPositionOfOneBasedLine ( line - 1 , sourceFile ) ,
77+ pos : getStartPositionOfZeroBasedLine ( line - 1 , sourceFile ) ,
7878 // get end position for the current line (end value is exclusive so add 1 to the result)
7979 end : getEndLinePosition ( line , sourceFile ) + 1
8080 }
@@ -283,7 +283,7 @@ module ts.formatting {
283283 var previousLine = Constants . Unknown ;
284284 var childKind = SyntaxKind . Unknown ;
285285 while ( n ) {
286- var line = sourceFile . getOneBasedLineAndCharacterOfPosition ( n . getStart ( sourceFile ) ) . line ;
286+ var line = sourceFile . getZeroBasedLineAndCharacterOfPosition ( n . getStart ( sourceFile ) ) . line ;
287287 if ( previousLine !== Constants . Unknown && line !== previousLine ) {
288288 break ;
289289 }
@@ -327,7 +327,7 @@ module ts.formatting {
327327 formattingScanner . advance ( ) ;
328328
329329 if ( formattingScanner . isOnToken ( ) ) {
330- var startLine = sourceFile . getOneBasedLineAndCharacterOfPosition ( enclosingNode . getStart ( sourceFile ) ) . line ;
330+ var startLine = sourceFile . getZeroBasedLineAndCharacterOfPosition ( enclosingNode . getStart ( sourceFile ) ) . line ;
331331 var delta = getOwnOrInheritedDelta ( enclosingNode , options , sourceFile ) ;
332332 processNode ( enclosingNode , enclosingNode , startLine , initialIndentation , delta ) ;
333333 }
@@ -357,7 +357,7 @@ module ts.formatting {
357357 }
358358 }
359359 else {
360- var startLine = sourceFile . getOneBasedLineAndCharacterOfPosition ( startPos ) . line ;
360+ var startLine = sourceFile . getZeroBasedLineAndCharacterOfPosition ( startPos ) . line ;
361361 var startLinePosition = getLineStartPositionForPosition ( startPos , sourceFile ) ;
362362 var column = SmartIndenter . findFirstNonWhitespaceColumn ( startLinePosition , startPos , sourceFile , options ) ;
363363 if ( startLine !== parentStartLine || startPos === column ) {
@@ -521,7 +521,7 @@ module ts.formatting {
521521
522522 var childStartPos = child . getStart ( sourceFile ) ;
523523
524- var childStart = sourceFile . getOneBasedLineAndCharacterOfPosition ( childStartPos ) ;
524+ var childStart = sourceFile . getZeroBasedLineAndCharacterOfPosition ( childStartPos ) ;
525525
526526 // if child is a list item - try to get its indentation
527527 var childIndentationAmount = Constants . Unknown ;
@@ -594,7 +594,7 @@ module ts.formatting {
594594 }
595595 else if ( tokenInfo . token . kind === listStartToken ) {
596596 // consume list start token
597- startLine = sourceFile . getOneBasedLineAndCharacterOfPosition ( tokenInfo . token . pos ) . line ;
597+ startLine = sourceFile . getZeroBasedLineAndCharacterOfPosition ( tokenInfo . token . pos ) . line ;
598598 var indentation =
599599 computeIndentation ( tokenInfo . token , startLine , Constants . Unknown , parent , parentDynamicIndentation , startLine ) ;
600600
@@ -641,7 +641,7 @@ module ts.formatting {
641641 var lineAdded : boolean ;
642642 var isTokenInRange = rangeContainsRange ( originalRange , currentTokenInfo . token ) ;
643643
644- var tokenStart = sourceFile . getOneBasedLineAndCharacterOfPosition ( currentTokenInfo . token . pos ) ;
644+ var tokenStart = sourceFile . getZeroBasedLineAndCharacterOfPosition ( currentTokenInfo . token . pos ) ;
645645 if ( isTokenInRange ) {
646646 var rangeHasError = rangeContainsError ( currentTokenInfo . token ) ;
647647 // save prevStartLine since processRange will overwrite this value with current ones
@@ -674,7 +674,7 @@ module ts.formatting {
674674 continue ;
675675 }
676676
677- var triviaStartLine = sourceFile . getOneBasedLineAndCharacterOfPosition ( triviaItem . pos ) . line ;
677+ var triviaStartLine = sourceFile . getZeroBasedLineAndCharacterOfPosition ( triviaItem . pos ) . line ;
678678 switch ( triviaItem . kind ) {
679679 case SyntaxKind . MultiLineCommentTrivia :
680680 var commentIndentation = dynamicIndentation . getIndentationForComment ( currentTokenInfo . token . kind ) ;
@@ -712,7 +712,7 @@ module ts.formatting {
712712 for ( var i = 0 , len = trivia . length ; i < len ; ++ i ) {
713713 var triviaItem = trivia [ i ] ;
714714 if ( isComment ( triviaItem . kind ) && rangeContainsRange ( originalRange , triviaItem ) ) {
715- var triviaItemStart = sourceFile . getOneBasedLineAndCharacterOfPosition ( triviaItem . pos ) ;
715+ var triviaItemStart = sourceFile . getZeroBasedLineAndCharacterOfPosition ( triviaItem . pos ) ;
716716 processRange ( triviaItem , triviaItemStart , parent , contextNode , dynamicIndentation ) ;
717717 }
718718 }
@@ -729,7 +729,7 @@ module ts.formatting {
729729 if ( ! rangeHasError && ! previousRangeHasError ) {
730730 if ( ! previousRange ) {
731731 // trim whitespaces starting from the beginning of the span up to the current line
732- var originalStart = sourceFile . getOneBasedLineAndCharacterOfPosition ( originalRange . pos ) ;
732+ var originalStart = sourceFile . getZeroBasedLineAndCharacterOfPosition ( originalRange . pos ) ;
733733 trimTrailingWhitespacesForLines ( originalStart . line , rangeStart . line ) ;
734734 }
735735 else {
@@ -807,18 +807,18 @@ module ts.formatting {
807807 recordReplace ( pos , 0 , indentationString ) ;
808808 }
809809 else {
810- var tokenStart = sourceFile . getOneBasedLineAndCharacterOfPosition ( pos ) ;
811- if ( indentation !== tokenStart . character - 1 ) {
812- var startLinePosition = getStartPositionOfOneBasedLine ( tokenStart . line , sourceFile ) ;
813- recordReplace ( startLinePosition , tokenStart . character - 1 , indentationString ) ;
810+ var tokenStart = sourceFile . getZeroBasedLineAndCharacterOfPosition ( pos ) ;
811+ if ( indentation !== tokenStart . character ) {
812+ var startLinePosition = getStartPositionOfZeroBasedLine ( tokenStart . line , sourceFile ) ;
813+ recordReplace ( startLinePosition , tokenStart . character , indentationString ) ;
814814 }
815815 }
816816 }
817817
818818 function indentMultilineComment ( commentRange : TextRange , indentation : number , firstLineIsIndented : boolean ) {
819819 // split comment in lines
820- var startLine = sourceFile . getOneBasedLineAndCharacterOfPosition ( commentRange . pos ) . line ;
821- var endLine = sourceFile . getOneBasedLineAndCharacterOfPosition ( commentRange . end ) . line ;
820+ var startLine = sourceFile . getZeroBasedLineAndCharacterOfPosition ( commentRange . pos ) . line ;
821+ var endLine = sourceFile . getZeroBasedLineAndCharacterOfPosition ( commentRange . end ) . line ;
822822
823823 if ( startLine === endLine ) {
824824 if ( ! firstLineIsIndented ) {
@@ -833,13 +833,13 @@ module ts.formatting {
833833 for ( var line = startLine ; line < endLine ; ++ line ) {
834834 var endOfLine = getEndLinePosition ( line , sourceFile ) ;
835835 parts . push ( { pos : startPos , end : endOfLine } ) ;
836- startPos = getStartPositionOfOneBasedLine ( line + 1 , sourceFile ) ;
836+ startPos = getStartPositionOfZeroBasedLine ( line + 1 , sourceFile ) ;
837837 }
838838
839839 parts . push ( { pos : startPos , end : commentRange . end } ) ;
840840 }
841841
842- var startLinePos = getStartPositionOfOneBasedLine ( startLine , sourceFile ) ;
842+ var startLinePos = getStartPositionOfZeroBasedLine ( startLine , sourceFile ) ;
843843
844844 var nonWhitespaceColumnInFirstPart =
845845 SmartIndenter . findFirstNonWhitespaceColumn ( startLinePos , parts [ 0 ] . pos , sourceFile , options ) ;
@@ -857,7 +857,7 @@ module ts.formatting {
857857 // shift all parts on the delta size
858858 var delta = indentation - nonWhitespaceColumnInFirstPart ;
859859 for ( var i = startIndex , len = parts . length ; i < len ; ++ i , ++ startLine ) {
860- var startLinePos = getStartPositionOfOneBasedLine ( startLine , sourceFile ) ;
860+ var startLinePos = getStartPositionOfZeroBasedLine ( startLine , sourceFile ) ;
861861 var nonWhitespaceColumn =
862862 i === 0
863863 ? nonWhitespaceColumnInFirstPart
@@ -876,7 +876,7 @@ module ts.formatting {
876876
877877 function trimTrailingWhitespacesForLines ( line1 : number , line2 : number , range ?: TextRangeWithKind ) {
878878 for ( var line = line1 ; line < line2 ; ++ line ) {
879- var lineStartPosition = getStartPositionOfOneBasedLine ( line , sourceFile ) ;
879+ var lineStartPosition = getStartPositionOfZeroBasedLine ( line , sourceFile ) ;
880880 var lineEndPosition = getEndLinePosition ( line , sourceFile ) ;
881881
882882 // do not trim whitespaces in comments
0 commit comments