{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE ExistentialQuantification #-}
module Ide.Plugin.HaddockComments.Prelude where
import qualified Data.Text as T
import Development.IDE.GHC.Compat
import Development.IDE.GHC.ExactPrint
import Language.Haskell.GHC.ExactPrint (AnnKey, Annotation)
-- | A more generic comments generator
data GenComments = GenComments
{ title :: T.Text,
-- | Use 'Maybe' monad to exit early. 'Nothing' means a code action for haddock comments
-- in the given context is not possible.
updateAnns :: LHsDecl GhcPs -> TransformT Maybe ()
}
-- | Defines how to generate haddock comments by tweaking annotations of AST
--
-- This is left here for compatibility reason, so that we don't break the existing code.
data GenCommentsSimple = forall a.
GenCommentsSimple
{ title :: T.Text,
fromDecl :: HsDecl GhcPs -> Maybe a,
collectKeys :: a -> [AnnKey],
isFresh :: Annotation -> Bool,
updateAnn :: Annotation -> Annotation,
updateDeclAnn :: Annotation -> Annotation
}