69 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Haskell
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Haskell
		
	
	
	
	
	
-- -*- haskell -*-
 | 
						|
-- .ghci for hledger-web
 | 
						|
 | 
						|
-- yesod
 | 
						|
 | 
						|
:set -i.:config:dist/build/autogen:app
 | 
						|
:set -XCPP -XTemplateHaskell -XQuasiQuotes -XTypeFamilies -XFlexibleContexts -XGADTs -XOverloadedStrings -XMultiParamTypeClasses -XGeneralizedNewtypeDeriving -XEmptyDataDecls -XDeriveDataTypeable
 | 
						|
import Prelude
 | 
						|
 | 
						|
-- hledger-web
 | 
						|
 | 
						|
:def serve const . return $ ":main --server --port 3000"
 | 
						|
 | 
						|
-- misc
 | 
						|
 | 
						|
import Control.Applicative
 | 
						|
import Data.Char
 | 
						|
import Data.List
 | 
						|
import qualified Data.Text as T
 | 
						|
import Data.Text (Text)
 | 
						|
 | 
						|
:set prompt "λ "
 | 
						|
:def hlint  \s -> return $ ":! hlint \"" ++ s ++ "\""
 | 
						|
:def hoogle \s -> return $ ":! hoogle --count=15 \"" ++ s ++ "\""
 | 
						|
:def doc    \s -> return $ ":! hoogle --info \"" ++ s ++ "\""
 | 
						|
:def pl     \s -> return $ ":! pointfree \"" ++ s ++ "\""
 | 
						|
 | 
						|
-- extra
 | 
						|
 | 
						|
-- -- hayoo search (requires hsdev, mtl)
 | 
						|
-- -- λ :hayoo (a -> c) -> (b -> c)
 | 
						|
-- -- either :: (a -> c) -> (b -> c) -> Either a b -> c
 | 
						|
-- --     Case analysis for the Either type.
 | 
						|
-- --      If the value is Left a, apply the first function to a;
 | 
						|
-- --      if it is Right b, apply the second function to b.
 | 
						|
-- --     -- Defined in 'Prelude', base
 | 
						|
-- import Control.Monad.Error
 | 
						|
-- import HsDev.Tools.Hayoo
 | 
						|
-- :{
 | 
						|
-- let
 | 
						|
--     showHayooFunction f =
 | 
						|
--         (hayooName f ++ " :: " ++ hayooSignature f) :
 | 
						|
--         (map ('\t':) $
 | 
						|
--             lines (untagDescription (hayooDescription f)) ++
 | 
						|
--             ["-- Defined in '" ++ hayooModule f ++ "', " ++ hayooPackage f])
 | 
						|
--     showHayoo = concatMap showHayooFunction . hayooFunctions
 | 
						|
-- :}
 | 
						|
-- :def hayoo \s -> return $ "runErrorT (hayoo \"" ++ s ++ "\") >>= (mapM_ putStrLn) . either (return . (\"Error: \" ++)) showHayoo"
 | 
						|
 | 
						|
-- -- watch for changes and restart, like yesod devel in interpreted mode (requires fsnotify)
 | 
						|
-- -- from https://gist.github.com/rehno-lindeque/10490026
 | 
						|
-- import System.FSNotify
 | 
						|
-- import Data.String
 | 
						|
-- import Control.Concurrent.MVar
 | 
						|
-- import Control.Concurrent
 | 
						|
-- :{
 | 
						|
-- :def serveAndReload const (withManager (\manager -> 
 | 
						|
--      do putStrLn "Listening to changes, press any key to stop..."
 | 
						|
--         lock <- newEmptyMVar
 | 
						|
--         watchTree manager (fromString ".") (const True) (const $ putMVar lock True)
 | 
						|
--         forkIO (getLine >> putMVar lock False)
 | 
						|
--         rerun <- readMVar lock
 | 
						|
--         return $ if rerun 
 | 
						|
--           then ":reload \n :main Development\n :serveAndReload"
 | 
						|
--           else ""
 | 
						|
--      ))
 | 
						|
-- :}
 | 
						|
 |