summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/Main.hs33
1 files changed, 19 insertions, 14 deletions
diff --git a/src/Main.hs b/src/Main.hs
index ef56107..ed52ba1 100644
--- a/src/Main.hs
+++ b/src/Main.hs
@@ -225,6 +225,11 @@ execCommand (MotionCommand x) = do
when (null $ snd $ buffer q) $
modifyBuffer (gotoLeft 1)
+-- TODO Make this "real" warnings, i.e. don't throwError but tell. This
+-- is required in order to perform any Combine-d commands regardless of
+-- failed moves. Currently this is only used to SetCount Nothing (which
+-- is defunct atm) Alternatively we could simply reset the state when an
+-- error happens Discus!
execCommand (MotionCommandWarn x) = do
b0 <- gets buffer
execCommand (MotionCommand x)
@@ -469,16 +474,16 @@ nmap =
, ("a", ChangeMode InsertMode <> SetCount Nothing <> MotionCommand GotoRight)
, ("I", ChangeMode InsertMode <> MotionCommand GotoFirstChar)
, ("A", ChangeMode InsertMode <> MotionCommand GotoEndOfLine)
- , ("|", MotionCommand GotoColumn <> SetCount Nothing)
- , ("$", MotionCommand GotoEndOfLine <> SetCount Nothing)
- , ("h", MotionCommand GotoLeft <> SetCount Nothing)
- , ("l", MotionCommand GotoRight <> SetCount Nothing)
- , ("b", MotionCommand WordsBackward <> SetCount Nothing)
- , ("w", MotionCommand WordsForward <> SetCount Nothing)
+ , ("|", MotionCommandWarn GotoColumn <> SetCount Nothing)
+ , ("$", MotionCommandWarn GotoEndOfLine <> SetCount Nothing)
+ , ("h", MotionCommandWarn GotoLeft <> SetCount Nothing)
+ , ("l", MotionCommandWarn GotoRight <> SetCount Nothing)
+ , ("b", MotionCommandWarn WordsBackward <> SetCount Nothing)
+ , ("w", MotionCommandWarn WordsForward <> SetCount Nothing)
, ("d", ChangeMode DeleteMode)
, ("\"", ChangeMode SelectRegisterMode <> SetCount Nothing)
- , ("\x1b[C", MotionCommand GotoRight <> SetCount Nothing)
- , ("\x1b[D", MotionCommand GotoLeft <> SetCount Nothing)
+ , ("\x1b[C", MotionCommandWarn GotoRight <> SetCount Nothing)
+ , ("\x1b[D", MotionCommandWarn GotoLeft <> SetCount Nothing)
, ("\x0a", ExecuteInputBuffer <> ChangeMode InsertMode <> SetCount Nothing)
]
++ (map (\i -> (show i, AppendCount i)) [0..9])
@@ -504,18 +509,18 @@ nmap =
imap :: Keymap
imap =
[ ("\x1b", ChangeMode NormalMode <> MotionCommand GotoLeft)
- , ("\x01", MotionCommand GotoFirstChar)
- , ("\x05", MotionCommand GotoEndOfLine)
+ , ("\x01", MotionCommandWarn GotoFirstChar)
+ , ("\x05", MotionCommandWarn GotoEndOfLine)
, ("\x1b[3~", KillNextChar)
- , ("\x1b[C", MotionCommand GotoRight)
- , ("\x1b[D", MotionCommand GotoLeft)
+ , ("\x1b[C", MotionCommandWarn GotoRight)
+ , ("\x1b[D", MotionCommandWarn GotoLeft)
, ("\x16", ChangeMode VerbatimMode) -- ^V
, ("\x17", KillLastWord) -- ^W
, ("\x0a", ExecuteInputBuffer)
, ("\x7f", KillLastChar) -- Delete
, ("\x08", KillLastChar) -- BackSpace
- , ("\x1bOc", MotionCommand WordsForward)
- , ("\x1bOd", MotionCommand WordsBackward)
+ , ("\x1bOc", MotionCommandWarn WordsForward)
+ , ("\x1bOd", MotionCommandWarn WordsBackward)
]