{- |
Module      :  Neovim.Config
Description :  The user editable and compilable configuration
Copyright   :  (c) Sebastian Witte
License     :  Apache-2.0

Maintainer  :  woozletoff@gmail.com
Stability   :  experimental
-}
module Neovim.Config (
    NeovimConfig (..),
    module System.Log,
) where

import Neovim.Context (Neovim)
import Neovim.Plugin.Internal (NeovimPlugin)

import System.Log (Priority (..))

{- | This data type contains information about the configuration of neovim. See
 the fields' documentation for what you possibly want to change. Also, the
 tutorial in the "Neovim" module should get you started.
-}
data NeovimConfig = Config
    { -- | The list of plugins. The IO type inside the list allows the plugin
      -- author to run some arbitrary startup code before creating a value of
      -- type 'NeovimPlugin'.
      NeovimConfig -> [Neovim () NeovimPlugin]
plugins :: [Neovim () NeovimPlugin]
    , -- | Set the general logging options.
      NeovimConfig -> Maybe (FilePath, Priority)
logOptions :: Maybe (FilePath, Priority)
    }