From 5311dc043df35bc528c533c33d3a3e1fe9b94598 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=9F=E9=85=8C=20=E9=B5=AC=E5=85=84?= Date: Tue, 7 Mar 2017 12:07:58 +0800 Subject: [PATCH] Fixed a cursor jumping issue for word-wrapped lines --- botanjs/src/Components/Vim/Cursor.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/botanjs/src/Components/Vim/Cursor.js b/botanjs/src/Components/Vim/Cursor.js index f6cd72a..be9c9a0 100644 --- a/botanjs/src/Components/Vim/Cursor.js +++ b/botanjs/src/Components/Vim/Cursor.js @@ -131,9 +131,14 @@ } var jumpY = expLineNum - lastLineNum; - var jumpX = aPos < lineStart ? lineStart - aPos : aPos - lineStart; + if( jumpY ) this.moveY( jumpY ); + pline = this.getLine(); + + var jumpX = aPos < lineStart ? lineStart - aPos : aPos - lineStart; var kX = jumpX - pline.content.length; + + // This handles word-wrapped long line phantom "\n" while( 0 < kX ) { jumpX ++; @@ -142,8 +147,6 @@ kX -= pline.content.length; } - if( jumpY ) this.moveY( jumpY ); - // This is needed because first line does not contain the first "\n" character if( 0 < this.getLine().lineNum && lineStart <= aPos ) jumpX --;