From 3c4446d4d8d8d723b92c15defc58649900ab1906 Mon Sep 17 00:00:00 2001 From: nosami Date: Wed, 13 Jun 2018 20:57:24 +0100 Subject: [PATCH] Return to normal mode shouldn't move caret past start of line. Fixes #230 --- XSVim.Tests/MiscTests.fs | 4 ++++ XSVim/Properties/AssemblyInfo.fs | 2 +- XSVim/XSVim.fs | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/XSVim.Tests/MiscTests.fs b/XSVim.Tests/MiscTests.fs index 2e7e7db..8f857a9 100644 --- a/XSVim.Tests/MiscTests.fs +++ b/XSVim.Tests/MiscTests.fs @@ -76,6 +76,10 @@ module ``Miscellaneous tests`` = let `` escapes``() = assertText " abc$" "i" " ab$c" + [] + let ``Return to normal mode doesn't move past start of line``() = + assertText "abc\nd$ef" "i" "abc\nd$ef" + [] let ``dot repeats at start of line``() = assertText diff --git a/XSVim/Properties/AssemblyInfo.fs b/XSVim/Properties/AssemblyInfo.fs index 13d7b5a..b479bc1 100644 --- a/XSVim/Properties/AssemblyInfo.fs +++ b/XSVim/Properties/AssemblyInfo.fs @@ -5,7 +5,7 @@ open System.Runtime.CompilerServices [] module AddinVersion = [] - let version = "0.60.5" + let version = "0.60.6" [] // The assembly version has the format {Major}.{Minor}.{Build}.{Revision} diff --git a/XSVim/XSVim.fs b/XSVim/XSVim.fs index 397702a..066a0f2 100755 --- a/XSVim/XSVim.fs +++ b/XSVim/XSVim.fs @@ -741,7 +741,7 @@ module Vim = // https://github.com/mono/monodevelop/blob/fdbfbe89529bd9076e1906e7b70fdb51a9ae6b99/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Extension/CompletionTextEditorExtension.cs#L153 if editor.SelectionMode = SelectionMode.Normal then EditActions.ToggleBlockSelectionMode editor vimState.undoGroup |> Option.iter(fun d -> d.Dispose()) - if vimState.mode = InsertMode then + if vimState.mode = InsertMode && editor.CaretColumn > 1 then EditActions.MoveCaretLeft editor { vimState with mode = NormalMode; lastSelection = lastSelection; undoGroup = None; statusMessage = None }