module Yi.Config.Default.Vim (configureVim) where

import Lens.Micro.Platform ((.=), (%=), (.~))
import Yi.Buffer.Normal    (RegionStyle (..))
import Yi.Keymap.Vim       (keymapSet)
import Yi.Config.Misc      (ScrollStyle (..))
import Yi.Config.Lens
import Yi.Config.Simple    (ConfigM)

configureVim :: ConfigM ()
configureVim :: ConfigM ()
configureVim = do
  (KeymapSet -> Identity KeymapSet) -> Config -> Identity Config
Lens' Config KeymapSet
defaultKmA         ((KeymapSet -> Identity KeymapSet) -> Config -> Identity Config)
-> KeymapSet -> ConfigM ()
forall s (m :: * -> *) a b.
MonadState s m =>
ASetter s s a b -> b -> m ()
.= KeymapSet
keymapSet
  (UIConfig -> Identity UIConfig) -> Config -> Identity Config
Lens' Config UIConfig
configUIA          ((UIConfig -> Identity UIConfig) -> Config -> Identity Config)
-> (UIConfig -> UIConfig) -> ConfigM ()
forall s (m :: * -> *) a b.
MonadState s m =>
ASetter s s a b -> (a -> b) -> m ()
%= ((Maybe ScrollStyle -> Identity (Maybe ScrollStyle))
-> UIConfig -> Identity UIConfig
Lens' UIConfig (Maybe ScrollStyle)
configScrollStyleA ((Maybe ScrollStyle -> Identity (Maybe ScrollStyle))
 -> UIConfig -> Identity UIConfig)
-> Maybe ScrollStyle -> UIConfig -> UIConfig
forall s t a b. ASetter s t a b -> b -> s -> t
.~ ScrollStyle -> Maybe ScrollStyle
forall a. a -> Maybe a
Just ScrollStyle
SingleLine)
  (RegionStyle -> Identity RegionStyle) -> Config -> Identity Config
Lens' Config RegionStyle
configRegionStyleA ((RegionStyle -> Identity RegionStyle)
 -> Config -> Identity Config)
-> RegionStyle -> ConfigM ()
forall s (m :: * -> *) a b.
MonadState s m =>
ASetter s s a b -> b -> m ()
.= RegionStyle
Inclusive