Skip to content

Commit

Permalink
fixes #2689
Browse files Browse the repository at this point in the history
  • Loading branch information
esetnik committed Feb 2, 2019
1 parent 1116fe6 commit 0dfa97a
Showing 1 changed file with 9 additions and 11 deletions.
20 changes: 9 additions & 11 deletions src/common/motion/position.ts
Original file line number Diff line number Diff line change
Expand Up @@ -639,7 +639,7 @@ export class Position extends vscode.Position {
if (args.forward) {
return this.getNextSentenceBeginWithRegex(this._sentenceEndRegex, false);
} else {
return this.getPreviousSentenceBeginWithRegex(this._sentenceEndRegex, false);
return this.getPreviousSentenceBeginWithRegex(this._sentenceEndRegex);
}
}

Expand Down Expand Up @@ -972,22 +972,20 @@ export class Position extends vscode.Position {
return new Position(TextEditor.getLineCount() - 1, 0).getLineEnd();
}

private getPreviousSentenceBeginWithRegex(regex: RegExp, inclusive: boolean): Position {
private getPreviousSentenceBeginWithRegex(regex: RegExp): Position {
let paragraphBegin = this.getCurrentParagraphBeginning();
for (let currentLine = this.line; currentLine >= paragraphBegin.line; currentLine--) {
let endPositions = this.getAllEndPositions(
TextEditor.getLineAt(new vscode.Position(currentLine, 0)).text,
regex
);
let newCharacter = _.find(
endPositions.reverse(),
index =>
(index < this.character &&
!inclusive &&
new Position(currentLine, index).getRightThroughLineBreaks().compareTo(this)) ||
(index <= this.character && inclusive) ||
currentLine !== this.line
);
let newCharacter = _.find(endPositions.reverse(), index => {
const newPositionBeforeThis = new Position(currentLine, index)
.getRightThroughLineBreaks()
.compareTo(this);

return (newPositionBeforeThis && (index < this.character || currentLine < this.line));
});

if (newCharacter !== undefined) {
return new Position(currentLine, <number>newCharacter).getRightThroughLineBreaks();
Expand Down

0 comments on commit 0dfa97a

Please sign in to comment.