diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/Main.hs | 33 | 
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)    ] | 
