hledger/.ghci
2023-11-08 13:50:33 -08:00

52 lines
1.7 KiB
Plaintext

:set prompt "ghci> "
import System.Environment
setEnv "NO_COLOR" "1"
-- TEMP
-- :m +*Hledger.Cli.Commands
-- https://github.com/cdepillabout/pretty-simple
-- If not using a cabal environment file with pretty-simple added, this adds itK here:
-- :set -package pretty-simple
:set -interactive-print=Text.Pretty.Simple.pPrintNoColor
-- ghci commands to be run once at ghci startup
-- http://www.haskell.org/ghc/docs/7.6.3/html/users_guide/ghci-commands.html
-- set up context (handled by make ghci/stack ghci/cabal repl now)
-- :set -ihledger-lib -ihledger -ihledger-web
-- :l hledger/hledger-cli.hs
-- import Hledger
-- -- :reload and run commands in .ghci2
-- :def R \_ -> return ":reload\n:script .ghci2"
-- Reload (to flush cached unsafe IO values) and run main with the given args
:def rmain \args -> return $ ":reload\n:main "<>args
-- -- run commands from a file, .ghci2 by default
-- :def s \f -> readFile $ if null f then ".ghci2" else f
-- -- reset hledger's sticky global debug level flag so :main --debug=N works
-- :def resetdebug \_ -> return ":!touch hledger-lib/Hledger/Utils.hs\n:reload\n"
-- -- http://www.reddit.com/r/haskell/comments/24kpyu/watching_for_changes_and_rerunning_tests_in_ghci/
-- :{
-- {-
-- import System.FSNotify
-- import Data.String
-- import Control.Concurrent.MVar
-- import Control.Concurrent
-- :def test 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 \n :test"
-- else ""
-- ))
-- -}
-- :}