yi-0.4.1: examples/yi.hs
import Yi
import Yi.Keymap.Emacs (keymap)
-- You can use other keymap by importing some other module:
-- import Yi.Keymap.Cua (keymap)
-- If configured with ghcAPI, Shim Mode can be enabled:
-- import qualified Yi.Mode.Shim as Shim
import Yi.Mode.Haskell
import Data.List (isSuffixOf)
import Yi.Prelude
import Prelude ()
import Yi.Keymap.Keys
myModetable :: ReaderT String Maybe AnyMode
myModetable = ReaderT $ \fname -> case () of
_ | ".hs" `isSuffixOf` fname -> Just $ AnyMode bestHaskellMode
_ -> Nothing
where bestHaskellMode = cleverHaskellMode
{
-- example of Mode-local rebinding
modeKeymap = ((ctrl (char 'c') ?>> ctrl(char 'c') ?>>! haskellToggleCommentSelectionB)
<||)
-- uncomment this for Shim (dot is important!)
-- . modeKeymap Shim.mode
}
main :: IO ()
main = yi $ defaultConfig {
configKillringAccumulate = True,
modeTable = myModetable <|> modeTable defaultConfig,
configUI = (configUI defaultConfig) { configFontSize = Just 10 },
defaultKm = keymap
}