rasa-ext-files 0.1.0.0 → 0.1.1
raw patch · 2 files changed
+47/−43 lines, 2 filesdep +rasa-ext-bufsdep +yi-ropedep ~basedep ~data-defaultdep ~lensPVP ok
version bump matches the API change (PVP)
Dependencies added: rasa-ext-bufs, yi-rope
Dependency ranges changed: base, data-default, lens, rasa, rasa-ext-cmd, rasa-ext-status-bar, text
API changes (from Hackage documentation)
Files
- rasa-ext-files.cabal +33/−33
- src/Rasa/Ext/Files.hs +14/−10
rasa-ext-files.cabal view
@@ -1,36 +1,36 @@-name: rasa-ext-files-version: 0.1.0.0-synopsis: Rasa Ext for filesystem actions-description: Rasa Ext for filesystem actions-homepage: https://github.com/ChrisPenner/rasa/-license: MIT-license-file: LICENSE-author: Chris Penner-maintainer: christopher.penner@gmail.com-copyright: 2016 Chris Penner-category: Extension-build-type: Simple--- extra-source-files:-cabal-version: >=1.10--library- hs-source-dirs: src- exposed-modules:- Rasa.Ext.Files-- build-depends: base >= 4.7 && < 5- , rasa- , rasa-ext-status-bar- , rasa-ext-cmd- , data-default- , lens- , text- default-language: Haskell2010+name: rasa-ext-files+version: 0.1.1+cabal-version: >=1.10+build-type: Simple+license: MIT+license-file: LICENSE+copyright: 2016 Chris Penner+maintainer: christopher.penner@gmail.com+homepage: https://github.com/ChrisPenner/rasa/+synopsis: Rasa Ext for filesystem actions+description:+ Rasa Ext for filesystem actions+category: Extension+author: Chris Penner - default-extensions:+source-repository head+ type: git+ location: https://github.com/ChrisPenner/rasa - ghc-options: -Wall+library+ exposed-modules:+ Rasa.Ext.Files+ build-depends:+ base >=4.8 && <5,+ rasa >=0.1.4 && <0.2,+ rasa-ext-bufs >=0.1.1 && <0.2,+ rasa-ext-status-bar >=0.1.1 && <0.2,+ rasa-ext-cmd >=0.1.1 && <0.2,+ data-default >=0.7.1.1 && <0.8,+ lens ==4.14.*,+ text >=1.2.2.1 && <1.3,+ yi-rope >=0.7.0.2 && <0.8+ default-language: Haskell2010+ hs-source-dirs: src+ ghc-options: -Wall -source-repository head- type: git- location: https://github.com/ChrisPenner/rasa
src/Rasa/Ext/Files.hs view
@@ -14,15 +14,17 @@ import Data.Default import Data.Monoid +import Control.Monad import Control.Monad.IO.Class-import qualified Data.Text as T+import qualified Yi.Rope as Y import Rasa.Ext+import Rasa.Ext.Bufs import Rasa.Ext.Cmd import Rasa.Ext.StatusBar data FileInfo = FileInfo- { _filename :: Maybe T.Text+ { _filename :: Maybe Y.YiString } deriving (Typeable, Show, Eq) makeLenses ''FileInfo@@ -36,17 +38,17 @@ files = do onInit $ do loadFiles- addCmd "save" $ focusDo . saveAs+ addCmd "save" $ void . focusDo . saveAs . Y.fromString beforeRender showFilename showFilename :: Action ()-showFilename = focusDo $ do+showFilename = void . focusDo $ do mName <- use $ bufExt.filename traverse_ (leftStatus . disp) mName where disp name = "<" <> name <> ">" -saveAs :: T.Text -> BufAction ()-saveAs fName = use text >>= liftIO . TIO.writeFile (T.unpack fName)+saveAs :: Y.YiString -> BufAction ()+saveAs fName = use text >>= liftIO . TIO.writeFile (Y.toString fName) . Y.toText save :: BufAction () save = do@@ -55,14 +57,16 @@ Just fName -> saveAs fName Nothing -> return () -setFilename :: T.Text -> BufAction ()+setFilename :: Y.YiString -> BufAction () setFilename fname = bufExt.filename ?= fname -addFile :: T.Text -> T.Text -> Action ()-addFile fname txt = addBufferThen txt (setFilename fname)+addFile :: Y.YiString -> Y.YiString -> Action ()+addFile fname txt = do+ newBuf <- newBuffer txt+ bufDo_ newBuf (setFilename fname) loadFiles :: Action () loadFiles = do fileNames <- liftIO getArgs fileTexts <- liftIO $ traverse TIO.readFile fileNames- mapM_ (uncurry addFile) $ zip (T.pack <$> fileNames) fileTexts+ mapM_ (uncurry addFile) $ zip (Y.fromString <$> fileNames) (Y.fromText <$> fileTexts)