    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