packages feed

yi-contrib 0.6.3.0 → 0.6.4.0

raw patch · 2 files changed

+94/−2 lines, 2 filesdep +directorydep +filepathdep ~yi

Dependencies added: directory, filepath

Dependency ranges changed: yi

Files

+ src/Yi/Config/Users/Reiner.hs view
@@ -0,0 +1,89 @@+{-# LANGUAGE NoMonomorphismRestriction, NamedFieldPuns, DoAndIfThenElse #-}+module Yi.Config.Users.Reiner (setup, main) where++import Yi.Config.Simple+import Yi.Prelude hiding ((%=))+import qualified Prelude++import qualified Yi.Mode.Haskell as Haskell+import Yi.Mode.Latex(latexMode3)+import Yi.Command(buildRun)++import System.Directory+import System.FilePath++-- | The main entry point, when used as a standalone yi.hs file.+main = configMain defaultEmacsConfig setup++-- | Registers my settings in the 'ConfigM' monad.+setup :: ConfigM ()+setup = do+  setFrontendPreferences ["pango", "vte", "vty"]+  fontSize %= Just 9++  globalBindKeys globalBindings+  evaluator %= publishedActionsEvaluator+  publishAction "createDirectory" yiCreateDirectory++  addMode Haskell.fastMode+  modeBindKeys Haskell.fastMode (ctrlCh 'c' ?>> ctrlCh 's' ?>>! insertHaskSection)++  -- LaTeX stuff+  addMode latexMode3+  publishAction "compileLatex" compileLatex+  modeBindKeys latexMode3 (ctrlCh 'c' ?>> ctrlCh 'c' ?>>! compileLatex)++--------------------------------------------------------------------------------+--                            Actions and bindings                            --+--------------------------------------------------------------------------------+yiCreateDirectory :: YiM ()+yiCreateDirectory = do+    BufferFileInfo{bufInfoFileName} <- withEditor $ withBuffer0 bufInfoB+    let dir = takeDirectory bufInfoFileName+    exists <- io $ doesDirectoryExist dir+    if not exists +    then do+            io $ createDirectoryIfMissing True dir+            withEditor $ printMsg $  "Created directory '" ++ dir ++ "'."+    else withEditor $ printMsg $ "Directory already exists!"++sectionSize = 80++-- inserts the "Actions and bindings" header above+insertHaskSection :: String -> BufferM ()+insertHaskSection s+   | lenS >= sectionSize - 6 = do+           insertDashes lenS+           newlineB+           insertN s+           newlineB+           insertDashes lenS+   | otherwise = do+           insertDashes sectionSize+           newlineB+           insertN "--"+           let nSpaces = sectionSize - 4 - lenS+               nSpacesL = nSpaces `div` 2+               nSpacesR = nSpaces - nSpacesL+           insertN (replicate nSpacesL ' ')+           insertN s+           insertN (replicate nSpacesR ' ')+           insertN "--"+           newlineB+           insertDashes sectionSize+  where lenS = Prelude.length s+        insertDashes n = insertN (replicate n '-')+    ++globalBindings = choice+   [ +     ctrlCh '\t' ?>>! nextWinE,+     shift (ctrlCh '\t') ?>>! prevWinE,+     metaCh 'r' ?>>! reload+   ]++compileLatex = do+    mfilename <- withEditor $ withBuffer0 (gets file)+    case mfilename of+        Just filename -> buildRun "pdflatex" ["--file-line-error", "--interaction=nonstopmode", filename] (const $ return ())+        Nothing -> return ()
yi-contrib.cabal view
@@ -1,5 +1,5 @@ name:           yi-contrib-version:        0.6.3.0+version:        0.6.4.0 category:       Development, Editor synopsis:       Add-ons to Yi, the Haskell-Scriptable Editor description:@@ -25,6 +25,7 @@     Yi.Config.Users.Gwern     Yi.Config.Users.Jeff     Yi.Config.Users.JP+    Yi.Config.Users.Reiner     Yi.Style.Misc     Yi.Templates @@ -32,5 +33,7 @@     base >=4.0 && <5,     containers,     data-accessor >= 0.2.1.4 && < 0.3,+    directory < 1.2,+    filepath < 1.3,     split ==0.1.*,-    yi ==0.6.3.0+    yi ==0.6.4.0