yi-contrib-0.8.0: src/Yi/Config/Users/Jeff.hs
{-# LANGUAGE DeriveDataTypeable, FlexibleContexts, FlexibleInstances,
FunctionalDependencies, GeneralizedNewtypeDeriving,
MultiParamTypeClasses, TypeSynonymInstances #-}
module Yi.Config.Users.Jeff (myConfig) where
import Control.Applicative
import Control.Lens
import Yi
import Yi.Keymap.Vim
import Yi.Snippets
import Yi.Snippets.Haskell
-- import Yi.UI.Pango as Pango
-- import Yi.UI.Vty as Vty
myConfig :: Config
myConfig = defaultVimConfig
{ defaultKm = myVimKeymap
, configUI = (configUI defaultVimConfig)
{ configTheme = defaultTheme
, configWindowFill = '~'
}
, startActions = [makeAction (maxStatusHeightA .= 20 :: EditorM ())]
-- , startFrontEnd = Pango.start
}
myVimKeymap = mkKeymap $ defKeymap `override` \super self -> super
{ v_top_level = v_top_level super ||>
(char ';' ?>>! resetRegexE)
, v_ins_char = (v_ins_char super ||> tabKeymap) <|>
choice [ ctrlCh 's' ?>>! moveToNextBufferMark deleteSnippets
, meta (spec KLeft) ?>>! prevWordB
, meta (spec KRight) ?>>! nextWordB
]
}
deleteSnippets = True
tabKeymap = superTab True $ fromSnippets deleteSnippets $
[ ("f", hsFunction)
, ("c", hsClass)
]