packages feed

rasa-ext-cursors 0.1.5 → 0.1.6

raw patch · 4 files changed

+20/−23 lines, 4 filesdep −rasa-ext-styledep ~rasaPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies removed: rasa-ext-style

Dependency ranges changed: rasa

API changes (from Hackage documentation)

- Rasa.Ext.Cursors.Internal.Base: displayRange :: BufAction ()
+ Rasa.Ext.Cursors.Internal.Base: setStyleProvider :: BufAction ()

Files

rasa-ext-cursors.cabal view
@@ -1,5 +1,5 @@ name: rasa-ext-cursors-version: 0.1.5+version: 0.1.6 cabal-version: >=1.10 build-type: Simple license: GPL-3@@ -24,8 +24,7 @@         Rasa.Ext.Cursors.Internal.Base     build-depends:         base >=4.8 && <5,-        rasa >=0.1.9 && <0.2,-        rasa-ext-style >=0.1.4 && <0.2,+        rasa >=0.1.10 && <0.2,         text-lens >=0.1.1 && <0.2,         lens ==4.14.*,         mtl >=2.2.1 && <2.3,
src/Rasa/Ext/Cursors.hs view
@@ -27,4 +27,5 @@  -- | Registers listeners for the extension. The user should add this to their config. cursors :: Action ()-cursors = beforeEveryRender_ $ buffersDo_ displayRange+cursors = onInit . onBufAdded $+  \(BufAdded bufRef) -> bufDo_ bufRef setStyleProvider
src/Rasa/Ext/Cursors/Internal/Actions.hs view
@@ -10,7 +10,6 @@   ) where  import qualified Yi.Rope as Y-import qualified Data.Text as T  import Control.Lens import Control.Lens.Text
src/Rasa/Ext/Cursors/Internal/Base.hs view
@@ -8,12 +8,11 @@   , setRanges   , overEachRange   , addRange-  , displayRange+  , setStyleProvider   ) where   import Rasa.Ext-import Rasa.Ext.Style  import Control.Monad.State import Control.Lens@@ -23,20 +22,17 @@ import qualified Yi.Rope as Y  -- | Stores the cursor ranges in each buffer.-data Cursors = Cursors-  { _cursors :: [CrdRange]-  } deriving (Typeable, Show)-makeLenses ''Cursors+data Cursors =+  Cursors [CrdRange]+  deriving (Typeable, Show)  instance Default Cursors where-  def = Cursors {-  _cursors=[Range (Coord 0 0) (Coord 0 1)]-}+  def = Cursors [Range (Coord 0 0) (Coord 0 1)]  -- | Adjusts input ranges to contain at least one character. ensureSize :: CrdRange -> CrdRange ensureSize r@(Range start end)-  | start == end = +  | start == end =     if start^.coordCol == 0 then r & rEnd %~ moveCursorByN 1                           else r & rStart %~ moveCursorByN (-1)   | otherwise = r@@ -46,14 +42,16 @@ cleanRanges :: Y.YiString -> [CrdRange] -> [CrdRange] cleanRanges txt = fmap (ensureSize . clampRange txt) . reverse . nub . sort --- | A lens over all the stored cursor ranges for a buffer+-- | Get the list of ranges getRanges :: BufAction [CrdRange]-getRanges = use (bufExt.cursors)+getRanges = do+  Cursors ranges <- getBufExt+  return ranges  setRanges :: [CrdRange] -> BufAction () setRanges new = do   txt <- getText-  bufExt.cursors .= cleanRanges txt new+  setBufExt . Cursors $ cleanRanges txt new  overRanges :: ([CrdRange] -> [CrdRange]) -> BufAction () overRanges f = getRanges >>= setRanges . f@@ -74,9 +72,9 @@ addRange :: CrdRange -> BufAction () addRange r = overRanges (++[r]) --- | Sets style attributes to show a given range.-displayRange ::  BufAction ()-displayRange = rangeDo_ setStyle+-- | Adds cursor specific styles+setStyleProvider :: BufAction ()+setStyleProvider = void . addStyleProvider $ rangeDo setStyle   where-    setStyle :: CrdRange -> BufAction ()-    setStyle r = addStyle r (flair ReverseVideo)+    setStyle :: CrdRange -> BufAction (Span CrdRange Style)+    setStyle r = return $ Span r (flair ReverseVideo)