packages feed

rasa-ext-vim 0.1.6 → 0.1.7

raw patch · 2 files changed

+39/−27 lines, 2 filesdep ~rasadep ~rasa-ext-cursorsdep ~rasa-ext-files

Dependency ranges changed: rasa, rasa-ext-cursors, rasa-ext-files, rasa-ext-views, rasa-ext-vim

Files

rasa-ext-vim.cabal view
@@ -1,5 +1,5 @@ name: rasa-ext-vim-version: 0.1.6+version: 0.1.7 cabal-version: >=1.10 build-type: Simple license: GPL-3@@ -22,10 +22,10 @@         Rasa.Ext.Vim     build-depends:         base >=4.8 && <5,-        rasa >=0.1.10 && <0.2,-        rasa-ext-files >=0.1.4 && <0.2,-        rasa-ext-views >=0.1.4 && <0.2,-        rasa-ext-cursors >=0.1.6 && <0.2,+        rasa >=0.1.11 && <0.2,+        rasa-ext-files >=0.1.5 && <0.2,+        rasa-ext-views >=0.1.5 && <0.2,+        rasa-ext-cursors >=0.1.7 && <0.2,         text >=1.2.2.1 && <1.3,         yi-rope >=0.7.0.2 && <0.8,         text-lens >=0.1.1 && <0.2,@@ -41,7 +41,7 @@     main-is: Spec.hs     build-depends:         base >=4.9.0.0 && <4.10,-        rasa-ext-vim >=0.1.6 && <0.2,+        rasa-ext-vim >=0.1.7 && <0.2,         hspec >=2.2.4 && <2.3     default-language: Haskell2010     default-extensions: OverloadedStrings
src/Rasa/Ext/Vim.hs view
@@ -11,6 +11,7 @@ import Control.Monad import Control.Lens import Data.Default+import Data.Maybe (fromMaybe) import Data.Typeable import qualified Yi.Rope as Y @@ -56,7 +57,7 @@ -- > rasa $ do -- >    vim -- >    ...-vim :: Action ()+vim :: App () vim = do   void $ onKeypress handleKeypress   onEveryNewBuffer_ . addBottomStatus $ do@@ -66,7 +67,7 @@       Insert -> styleText "INSERT" $ fg Green  -- | The event listener which listens for keypresses and responds appropriately-handleKeypress :: Keypress -> Action ()+handleKeypress :: Keypress -> App () handleKeypress keypress = focusDo_ $ do   mode <- getMode   preHist <- getHist@@ -80,9 +81,9 @@  -- | Listeners for keypresses that run regardless of current mode. anyMode :: [Keypress] -> BufAction ()-anyMode [Keypress 'c' [Ctrl]] = liftAction exit-anyMode [KPageDown []] = liftAction $ scrollBy 14 -- Page down-anyMode [KPageUp []] = liftAction $ scrollBy (-14) -- Page up+anyMode [Keypress 'c' [Ctrl]] = liftApp exit+anyMode [KPageDown []] = liftApp $ scrollBy 14 -- Page down+anyMode [KPageUp []] = liftApp $ scrollBy (-14) -- Page up anyMode [KHome []] = startOfLine anyMode [KEnd []] = endOfLine anyMode _ = return ()@@ -110,22 +111,22 @@ normal [Keypress 's' []] = addHist $ Keypress 's' [] normal [Keypress 's' [], Keypress 'n' []] = toggleLineNumbers -normal [Keypress '+' []] = liftAction nextBuf-normal [Keypress '-' []] = liftAction prevBuf-normal [Keypress 'w' [Ctrl]] = liftAction hSplit-normal [Keypress 'v' [Ctrl]] = liftAction vSplit-normal [Keypress 'o' [Ctrl]] = liftAction closeInactive-normal [Keypress 'r' [Ctrl]] = liftAction rotate+normal [Keypress '+' []] = liftApp nextBuf+normal [Keypress '-' []] = liftApp prevBuf+normal [Keypress 'w' [Ctrl]] = liftApp hSplit+normal [Keypress 'v' [Ctrl]] = liftApp vSplit+normal [Keypress 'o' [Ctrl]] = liftApp closeInactive+normal [Keypress 'r' [Ctrl]] = liftApp rotate -normal [Keypress 'e' [Ctrl]] = liftAction $ scrollBy 1 -- Scroll down-normal [Keypress 'd' [Ctrl]] = liftAction $ scrollBy 7 -- Half-Page down-normal [Keypress 'y' [Ctrl]] = liftAction $ scrollBy (-1) -- Scroll up-normal [Keypress 'u' [Ctrl]] = liftAction $ scrollBy (-7) -- Half-Page up+normal [Keypress 'e' [Ctrl]] = liftApp $ scrollBy 1 -- Scroll down+normal [Keypress 'd' [Ctrl]] = liftApp $ scrollBy 7 -- Half-Page down+normal [Keypress 'y' [Ctrl]] = liftApp $ scrollBy (-1) -- Scroll up+normal [Keypress 'u' [Ctrl]] = liftApp $ scrollBy (-7) -- Half-Page up -normal [KLeft []] = liftAction focusViewLeft-normal [KRight []] = liftAction focusViewRight-normal [KUp []] = liftAction focusViewAbove-normal [KDown []] = liftAction focusViewBelow+normal [KLeft []] = liftApp focusViewLeft+normal [KRight []] = liftApp focusViewRight+normal [KUp []] = liftApp focusViewAbove+normal [KDown []] = liftApp focusViewBelow   normal [Keypress 'G' []] = do@@ -178,8 +179,19 @@  -- | Move cursors to end of the line endOfLine :: BufAction ()-endOfLine = findNext "\n"+endOfLine = do +  txt <- getText+  overRanges . map $ overBoth $ coordEndOfLine txt+  where+    coordEndOfLine :: Y.YiString -> Coord -> Coord+    coordEndOfLine txt (Coord row col) = Coord row maxColumn+      where+        maxColumn :: Int+        maxColumn = fromMaybe col (txt ^? asLines . ix row . to Y.length)  -- | Move cursors to start of the line startOfLine :: BufAction ()-startOfLine = findPrev "\n"+startOfLine = overRanges . map $ overBoth coordStartOfLine+  where+    coordStartOfLine :: Coord -> Coord+    coordStartOfLine (Coord x _) = Coord x 0