hls-eval-plugin-1.2.2.0: src/Ide/Plugin/Eval/Config.hs
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE OverloadedLabels #-}
{-# LANGUAGE OverloadedStrings #-}
module Ide.Plugin.Eval.Config
( properties
, getEvalConfig
, EvalConfig(..)
) where
import Ide.Plugin.Config (Config)
import Ide.Plugin.Properties
import Ide.PluginUtils (usePropertyLsp)
import Ide.Types (PluginId)
import Language.LSP.Server (MonadLsp)
-- | The Eval plugin configuration. (see 'properties')
data EvalConfig = EvalConfig
{ eval_cfg_diff :: Bool
, eval_cfg_exception :: Bool
}
deriving (Eq, Ord, Show)
properties :: Properties
'[ 'PropertyKey "exception" 'TBoolean
, 'PropertyKey "diff" 'TBoolean
]
properties = emptyProperties
& defineBooleanProperty #diff
"Enable the diff output (WAS/NOW) of eval lenses" True
& defineBooleanProperty #exception
"Enable marking exceptions with `*** Exception:` similarly to doctest and GHCi." False
getEvalConfig :: (MonadLsp Config m) => PluginId -> m EvalConfig
getEvalConfig plId =
EvalConfig
<$> usePropertyLsp #diff plId properties
<*> usePropertyLsp #exception plId properties