@@ -122,9 +122,13 @@ export class MoveOperations {
122122 column = cursor . position . column ;
123123 }
124124
125+ if ( cursor . isEnd ) {
126+ column = model . getLineMaxColumn ( lineNumber + 1 ) ;
127+ }
128+
125129 let r = MoveOperations . down ( config , model , lineNumber , column , cursor . leftoverVisibleColumns , linesCount , true ) ;
126130
127- return cursor . move ( inSelectionMode , r . lineNumber , r . column , r . leftoverVisibleColumns ) ;
131+ return cursor . move ( inSelectionMode , r . lineNumber , cursor . isEnd ? column : r . column , r . leftoverVisibleColumns , cursor . isEnd ) ;
128132 }
129133
130134 public static translateDown ( config : CursorConfiguration , model : ICursorSimpleModel , cursor : SingleCursorState ) : SingleCursorState {
@@ -174,9 +178,13 @@ export class MoveOperations {
174178 column = cursor . position . column ;
175179 }
176180
181+ if ( cursor . isEnd ) {
182+ column = model . getLineMaxColumn ( lineNumber - 1 ) ;
183+ }
184+
177185 let r = MoveOperations . up ( config , model , lineNumber , column , cursor . leftoverVisibleColumns , linesCount , true ) ;
178186
179- return cursor . move ( inSelectionMode , r . lineNumber , r . column , r . leftoverVisibleColumns ) ;
187+ return cursor . move ( inSelectionMode , r . lineNumber , cursor . isEnd ? column : r . column , r . leftoverVisibleColumns , cursor . isEnd ) ;
180188 }
181189
182190 public static translateUp ( config : CursorConfiguration , model : ICursorSimpleModel , cursor : SingleCursorState ) : SingleCursorState {
@@ -214,7 +222,7 @@ export class MoveOperations {
214222 public static moveToEndOfLine ( config : CursorConfiguration , model : ICursorSimpleModel , cursor : SingleCursorState , inSelectionMode : boolean ) : SingleCursorState {
215223 let lineNumber = cursor . position . lineNumber ;
216224 let maxColumn = model . getLineMaxColumn ( lineNumber ) ;
217- return cursor . move ( inSelectionMode , lineNumber , maxColumn , 0 ) ;
225+ return cursor . move ( inSelectionMode , lineNumber , maxColumn , 0 , true ) ;
218226 }
219227
220228 public static moveToBeginningOfBuffer ( config : CursorConfiguration , model : ICursorSimpleModel , cursor : SingleCursorState , inSelectionMode : boolean ) : SingleCursorState {
0 commit comments