@@ -102,7 +102,7 @@ export class MergeConflictParser {
102102 header : scanned . startHeader . range ,
103103 decoratorContent : new vscode . Range (
104104 scanned . startHeader . rangeIncludingLineBreak . end ,
105- MergeConflictParser . shiftBackOneCharacter ( document , tokenAfterCurrentBlock . range . start ) ) ,
105+ MergeConflictParser . shiftBackOneCharacter ( document , tokenAfterCurrentBlock . range . start , scanned . startHeader . rangeIncludingLineBreak . end ) ) ,
106106 // Current content is range between header (shifted for linebreak) and splitter or common ancestors mark start
107107 content : new vscode . Range (
108108 scanned . startHeader . rangeIncludingLineBreak . end ,
@@ -115,7 +115,7 @@ export class MergeConflictParser {
115115 header : currentTokenLine . range ,
116116 decoratorContent : new vscode . Range (
117117 currentTokenLine . rangeIncludingLineBreak . end ,
118- MergeConflictParser . shiftBackOneCharacter ( document , nextTokenLine . range . start ) ) ,
118+ MergeConflictParser . shiftBackOneCharacter ( document , nextTokenLine . range . start , currentTokenLine . rangeIncludingLineBreak . end ) ) ,
119119 // Each common ancestors block is range between one common ancestors token
120120 // (shifted for linebreak) and start of next common ancestors token or splitter
121121 content : new vscode . Range (
@@ -129,7 +129,7 @@ export class MergeConflictParser {
129129 header : scanned . endFooter . range ,
130130 decoratorContent : new vscode . Range (
131131 scanned . splitter . rangeIncludingLineBreak . end ,
132- MergeConflictParser . shiftBackOneCharacter ( document , scanned . endFooter . range . start ) ) ,
132+ MergeConflictParser . shiftBackOneCharacter ( document , scanned . endFooter . range . start , scanned . splitter . rangeIncludingLineBreak . end ) ) ,
133133 // Incoming content is range between splitter (shifted for linebreak) and footer start
134134 content : new vscode . Range (
135135 scanned . splitter . rangeIncludingLineBreak . end ,
@@ -150,7 +150,11 @@ export class MergeConflictParser {
150150 return text . includes ( startHeaderMarker ) && text . includes ( endFooterMarker ) ;
151151 }
152152
153- private static shiftBackOneCharacter ( document : vscode . TextDocument , range : vscode . Position ) : vscode . Position {
153+ private static shiftBackOneCharacter ( document : vscode . TextDocument , range : vscode . Position , unlessEqual : vscode . Position ) : vscode . Position {
154+ if ( range . isEqual ( unlessEqual ) ) {
155+ return range ;
156+ }
157+
154158 let line = range . line ;
155159 let character = range . character - 1 ;
156160
0 commit comments