ghcide-2.4.0.0: The core of an IDE

Safe Haskell | Safe-Inferred
Language | Haskell2010

Development.IDE

Synopsis

- data Doc ann
- data Position = Position {
  - _line :: UInt
  - _character :: UInt
  }
- data Action a
- data Rules a
- type family RuleResult key
- data LoggingColumn
  - = TimeColumn
  - | ThreadIdColumn
  - | PriorityColumn
  - | DataColumn
  - | SourceLocColumn
- newtype Recorder msg = Recorder {
  - logger_ :: forall (m :: Type -> Type). MonadIO m => msg -> m ()
  }
- data WithPriority a = WithPriority {
  - priority :: Priority
  - callStack_ :: CallStack
  - payload :: a
  }
- newtype Logger = Logger {
  - logPriority :: Priority -> Text -> IO ()
  }
- data Priority
  - = Debug
  - | Info
  - | Warning
  - | Error
- newtype LayoutOptions = LayoutOptions {
  - layoutPageWidth :: PageWidth
  }
- data PageWidth
  - = AvailablePerLine !Int !Double
  - | Unbounded
- data SimpleDocStream ann
  - = SFail
  - | SEmpty
  - | SChar !Char (SimpleDocStream ann)
  - | SText !Int !Text (SimpleDocStream ann)
  - | SLine !Int (SimpleDocStream ann)
  - | SAnnPush ann (SimpleDocStream ann)
  - | SAnnPop (SimpleDocStream ann)
- data FusionDepth
  - = Shallow
  - | Deep
- class Pretty a where
  - pretty :: a -> Doc ann
  - prettyList :: [a] -> Doc ann
- data Range = Range {
  - _start :: Position
  - _end :: Position
  }
- type DiagnosticStore = HashMap NormalizedUri StoreItem
- data NormalizedUri
- data NormalizedFilePath
- newtype Uri = Uri {
  - getUri :: Text
  }
- data Location = Location {
  - _uri :: Uri
  - _range :: Range
  }
- data DiagnosticSeverity
  - = DiagnosticSeverity_Error
  - | DiagnosticSeverity_Warning
  - | DiagnosticSeverity_Information
  - | DiagnosticSeverity_Hint
- data Diagnostic = Diagnostic {
  - _range :: Range
  - _severity :: Maybe DiagnosticSeverity
  - _code :: Maybe (Int32 |? Text)
  - _codeDescription :: Maybe CodeDescription
  - _source :: Maybe Text
  - _message :: Text
  - _tags :: Maybe [DiagnosticTag]
  - _relatedInformation :: Maybe [DiagnosticRelatedInformation]
  - _data_ :: Maybe Value
  }
- data IdeConfiguration = IdeConfiguration {
  - workspaceFolders :: HashSet NormalizedUri
  - clientSettings :: Hashed (Maybe Value)
  }
- data FastResult a = FastResult {
  - stale :: Maybe (a, PositionMapping)
  - uptoDate :: IO (Maybe a)
  }
- newtype IdeAction a = IdeAction {
  - runIdeActionT :: ReaderT ShakeExtras IO a
  }
- type IdeRule k v = (RuleResult k ~ v, ShakeValue k, Show v, Typeable v, NFData v)
- data IdeState
- data RuleBody k v
  - = Rule (k -> NormalizedFilePath -> Action (Maybe ByteString, IdeResult v))
  - | RuleNoDiagnostics (k -> NormalizedFilePath -> Action (Maybe ByteString, Maybe v))
  - | RuleWithCustomNewnessCheck {
    - newnessCheck :: ByteString -> ByteString -> Bool
    - build :: k -> NormalizedFilePath -> Action (Maybe ByteString, Maybe v)
    }
  - | RuleWithOldValue (k -> NormalizedFilePath -> Value v -> Action (Maybe ByteString, IdeResult v))
- data ShakeExtras
- data VFSModified
  - = VFSUnmodified
  - | VFSModified !VFS
- data GhcVersion
  - = GHC810
  - | GHC90
  - | GHC92
  - | GHC94
  - | GHC96
  - | GHC98
- data Plugin c = Plugin {
  - pluginRules :: Rules ()
  - pluginHandlers :: Handlers (ServerM c)
  - pluginModifyDynflags :: c -> DynFlagsModifications
  }
- data HscEnvEq
- data FileOfInterestStatus
  - = OnDisk
  - | Modified {
    - firstOpen :: !Bool
    }
- data GenerateCore = GenerateCore
- data GetHieAst = GetHieAst
- data TypeCheck = TypeCheck
- data IdeGhcSession = IdeGhcSession {
  - loadSessionFun :: FilePath -> IO (IdeResult HscEnvEq, [FilePath])
  - sessionVersion :: !Int
  }
- data GetParsedModule = GetParsedModule
- data GhcSessionIO = GhcSessionIO
- data GetClientSettings = GetClientSettings
- newtype GhcSessionDeps where
  - GhcSessionDeps_ {
    - fullModSummary :: Bool
    }
  - pattern GhcSessionDeps :: GhcSessionDeps
- type IdeResult v = ([FileDiagnostic], Maybe v)
- newtype GetModificationTime = GetModificationTime_ {
  - missingFileDiagnostics :: Bool
  }
- data FileVersion
  - = ModificationTime !POSIXTime
  - | VFSVersion !Int32
- type FileDiagnostic = (NormalizedFilePath, ShowDiagnostic, Diagnostic)
- data TcModuleResult = TcModuleResult {
  - tmrParsed :: ParsedModule
  - tmrRenamed :: RenamedSource
  - tmrTypechecked :: TcGblEnv
  - tmrTopLevelSplices :: Splices
  - tmrDeferredError :: !Bool
  - tmrRuntimeModules :: !(ModuleEnv ByteString)
  }
- data ParseResult a :: TYPE ('SumRep '['TupleRep '[LiftedRep, LiftedRep], LiftedRep]) where
  - pattern PFailed :: PState -> ParseResult a
  - pattern POk :: PState -> a -> ParseResult a
- data GhcSession = GhcSession
- data ShowDiagnostic
  - = ShowDiag
  - | HideDiag
- type IdeResultNoDiagnosticsEarlyCutoff v = (Maybe ByteString, Maybe v)
- data GetFileExists = GetFileExists
- newtype ImportMap = ImportMap {
  - importMap :: Map ModuleName NormalizedFilePath
  }
- data LinkableType
  - = ObjectLinkable
  - | BCOLinkable
- data GetParsedModuleWithComments = GetParsedModuleWithComments
- data GetModuleGraph = GetModuleGraph
- data GetKnownTargets = GetKnownTargets
- data GetLinkable = GetLinkable
- data LinkableResult = LinkableResult {
  - linkableHomeMod :: !HomeModInfo
  - linkableHash :: !ByteString
  }
- data GetImportMap = GetImportMap
- data Splices = Splices {
  - exprSplices :: [(LHsExpr GhcTc, LHsExpr GhcPs)]
  - patSplices :: [(LHsExpr GhcTc, LPat GhcPs)]
  - typeSplices :: [(LHsExpr GhcTc, LHsType GhcPs)]
  - declSplices :: [(LHsExpr GhcTc, [LHsDecl GhcPs])]
  - awSplices :: [(LHsExpr GhcTc, Serialized)]
  }
- data HiFileResult = HiFileResult {
  - hirModSummary :: !ModSummary
  - hirModIface :: !ModIface
  - hirModDetails :: ModDetails
  - hirIfaceFp :: !ByteString
  - hirRuntimeModules :: !(ModuleEnv ByteString)
  - hirCoreFp :: !(Maybe (CoreFile, ByteString))
  }
- data HieAstResult = forall a.Typeable a => HAR {
  - hieModule :: Module
  - hieAst :: !(HieASTs a)
  - refMap :: RefMap a
  - typeRefs :: Map Name [RealSrcSpan]
  - hieKind :: !(HieKind a)
  }
- data HieKind a where
  - HieFromDisk :: !HieFile -> HieKind TypeIndex
  - HieFresh :: HieKind Type
- data GetBindings = GetBindings
- data DocAndKindMap = DKMap {
  - getDocMap :: !DocMap
  - getKindMap :: !KindMap
  }
- data GetDocMap = GetDocMap
- data GetLocatedImports = GetLocatedImports
- data ReportImportCycles = ReportImportCycles
- data GetModIfaceFromDisk = GetModIfaceFromDisk
- data GetModIfaceFromDiskAndIndex = GetModIfaceFromDiskAndIndex
- data GetModIface = GetModIface
- data GetFileContents = GetFileContents
- data AddWatchedFile = AddWatchedFile
- data IsFileOfInterestResult
  - = NotFOI
  - | IsFOI FileOfInterestStatus
- data IsFileOfInterest = IsFileOfInterest
- data ModSummaryResult = ModSummaryResult {
  - msrModSummary :: !ModSummary
  - msrImports :: [LImportDecl GhcPs]
  - msrFingerprint :: !Fingerprint
  - msrHscEnv :: !HscEnv
  }
- data GetModSummary = GetModSummary
- data GetModSummaryWithoutTimestamps = GetModSummaryWithoutTimestamps
- data NeedsCompilation = NeedsCompilation
- pattern GetModificationTime :: GetModificationTime
- (<>) :: Semigroup a => a -> a -> a
- list :: [Doc ann] -> Doc ann
- comma :: Doc ann
- colon :: Doc ann
- (<+>) :: Doc ann -> Doc ann -> Doc ann
- brackets :: Doc ann -> Doc ann
- indent :: Int -> Doc ann -> Doc ann
- runParser :: DynFlags -> String -> P a -> ParseResult a
- space :: Doc ann
- group :: Doc ann -> Doc ann
- parens :: Doc ann -> Doc ann
- cfilter :: (a -> Bool) -> Recorder a -> Recorder a
- cmap :: (a -> b) -> Recorder b -> Recorder a
- pipe :: Doc ann
- fuse :: FusionDepth -> Doc ann -> Doc ann
- line :: Doc ann
- column :: (Int -> Doc ann) -> Doc ann
- equals :: Doc ann
- nest :: Int -> Doc ann -> Doc ann
- tupled :: [Doc ann] -> Doc ann
- ghcVersion :: GhcVersion
- hang :: Int -> Doc ann -> Doc ann
- action :: Action a -> Rules ()
- renderStrict :: SimpleDocStream ann -> Text
- logError :: Logger -> Text -> IO ()
- logWarning :: Logger -> Text -> IO ()
- logInfo :: Logger -> Text -> IO ()
- logDebug :: Logger -> Text -> IO ()
- noLogging :: Logger
- logWith :: (HasCallStack, MonadIO m) => Recorder (WithPriority msg) -> Priority -> msg -> m ()
- cmapWithPrio :: (a -> b) -> Recorder (WithPriority b) -> Recorder (WithPriority a)
- cmapIO :: (a -> IO b) -> Recorder b -> Recorder a
- makeDefaultStderrRecorder :: MonadIO m => Maybe [LoggingColumn] -> m (Recorder (WithPriority (Doc a)))
- withFileRecorder :: MonadUnliftIO m => FilePath -> Maybe [LoggingColumn] -> (Either IOException (Recorder (WithPriority (Doc d))) -> m a) -> m a
- makeDefaultHandleRecorder :: MonadIO m => Maybe [LoggingColumn] -> Lock -> Handle -> m (Recorder (WithPriority (Doc a)))
- withBacklog :: (v -> Recorder a) -> IO (Recorder a, v -> IO ())
- lspClientMessageRecorder :: LanguageContextEnv config -> Recorder (WithPriority Text)
- lspClientLogRecorder :: LanguageContextEnv config -> Recorder (WithPriority Text)
- toCologActionWithPrio :: forall (m :: Type -> Type) msg. (MonadIO m, HasCallStack) => Recorder (WithPriority msg) -> LogAction m (WithSeverity msg)
- getClientConfig :: MonadLsp Config m => m Config
- viaShow :: Show a => a -> Doc ann
- unsafeViaShow :: Show a => a -> Doc ann
- emptyDoc :: Doc ann
- line' :: Doc ann
- softline :: Doc ann
- softline' :: Doc ann
- hardline :: Doc ann
- flatAlt :: Doc ann -> Doc ann -> Doc ann
- align :: Doc ann -> Doc ann
- encloseSep :: Doc ann -> Doc ann -> Doc ann -> [Doc ann] -> Doc ann
- concatWith :: Foldable t => (Doc ann -> Doc ann -> Doc ann) -> t (Doc ann) -> Doc ann
- hsep :: [Doc ann] -> Doc ann
- vsep :: [Doc ann] -> Doc ann
- fillSep :: [Doc ann] -> Doc ann
- sep :: [Doc ann] -> Doc ann
- hcat :: [Doc ann] -> Doc ann
- vcat :: [Doc ann] -> Doc ann
- fillCat :: [Doc ann] -> Doc ann
- cat :: [Doc ann] -> Doc ann
- punctuate :: Doc ann -> [Doc ann] -> [Doc ann]
- nesting :: (Int -> Doc ann) -> Doc ann
- width :: Doc ann -> (Int -> Doc ann) -> Doc ann
- pageWidth :: (PageWidth -> Doc ann) -> Doc ann
- fill :: Int -> Doc ann -> Doc ann
- fillBreak :: Int -> Doc ann -> Doc ann
- plural :: (Num amount, Eq amount) => doc -> doc -> amount -> doc
- enclose :: Doc ann -> Doc ann -> Doc ann -> Doc ann
- surround :: Doc ann -> Doc ann -> Doc ann -> Doc ann
- annotate :: ann -> Doc ann -> Doc ann
- unAnnotate :: Doc ann -> Doc xxx
- reAnnotate :: (ann -> ann') -> Doc ann -> Doc ann'
- alterAnnotations :: (ann -> [ann']) -> Doc ann -> Doc ann'
- unAnnotateS :: SimpleDocStream ann -> SimpleDocStream xxx
- reAnnotateS :: (ann -> ann') -> SimpleDocStream ann -> SimpleDocStream ann'
- alterAnnotationsS :: (ann -> Maybe ann') -> SimpleDocStream ann -> SimpleDocStream ann'
- removeTrailingWhitespace :: SimpleDocStream ann -> SimpleDocStream ann
- defaultLayoutOptions :: LayoutOptions
- layoutPretty :: LayoutOptions -> Doc ann -> SimpleDocStream ann
- layoutSmart :: LayoutOptions -> Doc ann -> SimpleDocStream ann
- layoutCompact :: Doc ann1 -> SimpleDocStream ann2
- squotes :: Doc ann -> Doc ann
- dquotes :: Doc ann -> Doc ann
- angles :: Doc ann -> Doc ann
- braces :: Doc ann -> Doc ann
- squote :: Doc ann
- dquote :: Doc ann
- lparen :: Doc ann
- rparen :: Doc ann
- langle :: Doc ann
- rangle :: Doc ann
- lbracket :: Doc ann
- rbracket :: Doc ann
- lbrace :: Doc ann
- rbrace :: Doc ann
- semi :: Doc ann
- dot :: Doc ann
- slash :: Doc ann
- backslash :: Doc ann
- use :: IdeRule k v => k -> NormalizedFilePath -> Action (Maybe v)
- uses :: (Traversable f, IdeRule k v) => k -> f NormalizedFilePath -> Action (f (Maybe v))
- toNormalizedUri :: Uri -> NormalizedUri
- fromNormalizedUri :: NormalizedUri -> Uri
- fromNormalizedFilePath :: NormalizedFilePath -> FilePath
- getAtPoint :: NormalizedFilePath -> Position -> IdeAction (Maybe (Maybe Range, [Text]))
- getDefinition :: NormalizedFilePath -> Position -> IdeAction (Maybe [Location])
- getTypeDefinition :: NormalizedFilePath -> Position -> IdeAction (Maybe [Location])
- getFileExists :: NormalizedFilePath -> Action Bool
- getFileContents :: NormalizedFilePath -> Action (UTCTime, Maybe Text)
- isWorkspaceFile :: NormalizedFilePath -> Action Bool
- getFilesOfInterestUntracked :: Action (HashMap NormalizedFilePath FileOfInterestStatus)
- getClientConfigAction :: Action Config
- getParsedModule :: NormalizedFilePath -> Action (Maybe ParsedModule)
- usePropertyAction :: HasProperty s k t r => KeyNameProxy s -> PluginId -> Properties r -> Action (ToHsType t)
- runAction :: String -> IdeState -> Action a -> IO a
- actionLogger :: Action Logger
- define :: IdeRule k v => Recorder (WithPriority Log) -> (k -> NormalizedFilePath -> Action (IdeResult v)) -> Rules ()
- defineEarlyCutoff :: IdeRule k v => Recorder (WithPriority Log) -> RuleBody k v -> Rules ()
- defineNoDiagnostics :: IdeRule k v => Recorder (WithPriority Log) -> (k -> NormalizedFilePath -> Action (Maybe v)) -> Rules ()
- getPluginConfigAction :: PluginId -> Action PluginConfig
- ideLogger :: IdeState -> Logger
- runIdeAction :: String -> ShakeExtras -> IdeAction a -> IO a
- useNoFile :: IdeRule k v => k -> Action (Maybe v)
- useNoFile_ :: IdeRule k v => k -> Action v
- useWithStale :: IdeRule k v => k -> NormalizedFilePath -> Action (Maybe (v, PositionMapping))
- useWithStaleFast :: IdeRule k v => k -> NormalizedFilePath -> IdeAction (Maybe (v, PositionMapping))
- useWithStaleFast' :: IdeRule k v => k -> NormalizedFilePath -> IdeAction (FastResult v)
- useWithStale_ :: IdeRule k v => k -> NormalizedFilePath -> Action (v, PositionMapping)
- use_ :: IdeRule k v => k -> NormalizedFilePath -> Action v
- uses_ :: (Traversable f, IdeRule k v) => k -> f NormalizedFilePath -> Action (f v)
- hscEnvWithImportPaths :: HscEnvEq -> HscEnv
- emptyFilePath :: NormalizedFilePath
- hDuplicateTo' :: Handle -> Handle -> IO ()
- toNormalizedFilePath' :: FilePath -> NormalizedFilePath
- modifyDynFlags :: GhcMonad m => (DynFlags -> DynFlags) -> m ()
- showDiagnostics :: [FileDiagnostic] -> Text
- rangeToRealSrcSpan :: NormalizedFilePath -> Range -> RealSrcSpan
- realSrcSpanToRange :: RealSrcSpan -> Range
- disableWarningsAsErrors :: DynFlags -> DynFlags
- setHieDir :: FilePath -> DynFlags -> DynFlags
- dontWriteHieFiles :: DynFlags -> DynFlags
- printName :: Name -> String
- diagFromErrMsgs :: Text -> DynFlags -> Bag (MsgEnvelope DecoratedSDoc) -> [FileDiagnostic]
- diagFromErrMsg :: Text -> DynFlags -> MsgEnvelope DecoratedSDoc -> [FileDiagnostic]
- diagFromString :: Text -> DiagnosticSeverity -> SrcSpan -> String -> [FileDiagnostic]
- diagFromStrings :: Text -> DiagnosticSeverity -> [(SrcSpan, String)] -> [FileDiagnostic]
- diagFromGhcException :: Text -> DynFlags -> GhcException -> [FileDiagnostic]
- catchSrcErrors :: DynFlags -> Text -> IO a -> IO (Either [FileDiagnostic] a)
- srcSpanToLocation :: SrcSpan -> Maybe Location
- srcSpanToRange :: SrcSpan -> Maybe Range
- realSrcLocToPosition :: RealSrcLoc -> Position
- realSrcSpanToLocation :: RealSrcSpan -> Location
- srcSpanToFilename :: SrcSpan -> Maybe FilePath
- rangeToSrcSpan :: NormalizedFilePath -> Range -> SrcSpan
- positionToRealSrcLoc :: NormalizedFilePath -> Position -> RealSrcLoc
- zeroSpan :: FastString -> RealSrcSpan
- realSpan :: SrcSpan -> Maybe RealSrcSpan
- isInsideSrcSpan :: Position -> SrcSpan -> Bool
- spanContainsRange :: SrcSpan -> Range -> Maybe Bool
- noSpan :: String -> SrcSpan
- toDSeverity :: Severity -> Maybe DiagnosticSeverity
- evalGhcEnv :: HscEnv -> Ghc b -> IO b
- printRdrName :: RdrName -> String
- lookupPackageConfig :: Unit -> HscEnv -> Maybe UnitInfo
- textToStringBuffer :: Text -> StringBuffer
- bytestringToStringBuffer :: ByteString -> StringBuffer
- stringBufferToByteString :: StringBuffer -> ByteString
- moduleImportPath :: NormalizedFilePath -> ModuleName -> Maybe FilePath
- cgGutsToCoreModule :: SafeHaskellMode -> CgGuts -> ModDetails -> CoreModule
- fingerprintToBS :: Fingerprint -> ByteString
- fingerprintFromByteString :: ByteString -> IO Fingerprint
- fingerprintFromStringBuffer :: StringBuffer -> IO Fingerprint
- fingerprintFromPut :: Put -> IO Fingerprint
- readFileUtf8 :: FilePath -> IO Text
- printOutputable :: Outputable a => a -> Text
- getExtensions :: ParsedModule -> [Extension]
- ideErrorText :: NormalizedFilePath -> Text -> FileDiagnostic
- ideErrorWithSource :: Maybe Text -> Maybe DiagnosticSeverity -> a -> Text -> (a, ShowDiagnostic, Diagnostic)
- showDiagnosticsColored :: [FileDiagnostic] -> Text
- noFilePath :: FilePath
- noRange :: Range
- showPosition :: Position -> String
- fromUri :: NormalizedUri -> NormalizedFilePath
- emptyPathUri :: NormalizedUri
- filePathToUri' :: NormalizedFilePath -> NormalizedUri
- uriToFilePath' :: Uri -> Maybe FilePath
- readSrcSpan :: ReadS RealSrcSpan
- encodeLinkableType :: Maybe LinkableType -> ByteString
- tmrModSummary :: TcModuleResult -> ModSummary
- hiFileFingerPrint :: HiFileResult -> ByteString
- mkHiFileResult :: ModSummary -> ModIface -> ModDetails -> ModuleEnv ByteString -> Maybe (CoreFile, ByteString) -> HiFileResult
- vfsVersion :: FileVersion -> Maybe Int32
- awSplicesL :: Lens' Splices [(LHsExpr GhcTc, Serialized)]
- declSplicesL :: Lens' Splices [(LHsExpr GhcTc, [LHsDecl GhcPs])]
- exprSplicesL :: Lens' Splices [(LHsExpr GhcTc, LHsExpr GhcPs)]
- patSplicesL :: Lens' Splices [(LHsExpr GhcTc, LPat GhcPs)]
- typeSplicesL :: Lens' Splices [(LHsExpr GhcTc, LHsType GhcPs)]

# Documentation

data Doc ann #

The abstract data type ``Doc` ann` represents pretty documents that have been annotated with data of type `ann`.

More specifically, a value of type ``Doc`` represents a non-empty set of possible layouts of a document. The layout functions select one of these possibilities, taking into account things like the width of the output document.

The annotation is an arbitrary piece of data associated with (part of) a document. Annotations may be used by the rendering backends in order to display output differently, such as

- color information (e.g. when rendering to the terminal)
- mouseover text (e.g. when rendering to rich HTML)
- whether to show something or not (to allow simple or detailed versions)

The simplest way to display a `Doc` is via the `Show` class.

    >>> putStrLn (show (vsep ["hello", "world"]))
    hello
    world

#### Instances

Instances details

Functor Doc | Alter the document’s annotations. This instance makes `Doc` more flexible (because it can be used in `Functor`-polymorphic values), but ``fmap`` is much less readable compared to using ``reAnnotate`` in code that only works for ``Doc`` anyway. Consider using the latter when the type does not matter.
Instance details Defined in Prettyprinter.Internal Methods fmap :: (a -> b) -> Doc a -> Doc b # (<$) :: a -> Doc b -> Doc a #

IsString (Doc ann)

    >>> pretty ("hello\nworld")
    hello
    world

This instance uses the `Pretty` `Doc` instance, and uses the same newline to `line` conversion.

Instance details Defined in Prettyprinter.Internal Methods fromString :: String -> Doc ann

Monoid (Doc ann)

    mempty = emptyDoc
    mconcat = hcat

    >>> mappend "hello" "world" :: Doc ann
    helloworld

Instance details Defined in Prettyprinter.Internal Methods mempty :: Doc ann # mappend :: Doc ann -> Doc ann -> Doc ann # mconcat :: [Doc ann] -> Doc ann #

Semigroup (Doc ann)

    x <> y = hcat [x, y]

    >>> "hello" <> "world" :: Doc ann
    helloworld

Instance details Defined in Prettyprinter.Internal Methods (<>) :: Doc ann -> Doc ann -> Doc ann # sconcat :: NonEmpty (Doc ann) -> Doc ann # stimes :: Integral b => b -> Doc ann -> Doc ann #
Generic (Doc ann) |
Instance details Defined in Prettyprinter.Internal Associated Types type Rep (Doc ann) :: Type -> Type Methods from :: Doc ann -> Rep (Doc ann) x to :: Rep (Doc ann) x -> Doc ann
Show (Doc ann) | `(`show` doc)` prettyprints document `doc` with `defaultLayoutOptions`, ignoring all annotations.
Instance details Defined in Prettyprinter.Internal Methods showsPrec :: Int -> Doc ann -> ShowS # show :: Doc ann -> String # showList :: [Doc ann] -> ShowS #
type Rep (Doc ann) |

Instance details

Defined in Prettyprinter.Internal

type Rep (Doc ann) = D1 ('MetaData "Doc" "Prettyprinter.Internal" "prettyprinter-1.7.1-GuAcpDZRBAeGkZlhvyZh0C" 'False) (((C1 ('MetaCons "Fail" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Empty" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Char" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Char)))) :+: (C1 ('MetaCons "Text" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text)) :+: (C1 ('MetaCons "Line" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FlatAlt" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Doc ann)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Doc ann)))))) :+: ((C1 ('MetaCons "Cat" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Doc ann)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Doc ann))) :+: (C1 ('MetaCons "Nest" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Doc ann))) :+: C1 ('MetaCons "Union" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Doc ann)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Doc ann))))) :+: ((C1 ('MetaCons "Column" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Int -> Doc ann))) :+: C1 ('MetaCons "WithPageWidth" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (PageWidth -> Doc ann)))) :+: (C1 ('MetaCons "Nesting" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Int -> Doc ann))) :+: C1 ('MetaCons "Annotated" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ann) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Doc ann)))))))

data Position #

Position in a text document expressed as zero-based line and character offset. Prior to 3.17 the offsets were always based on a UTF-16 string representation. So a string of the form `a𐐀b` the character offset of the character `a` is 0, the character offset of `𐐀` is 1 and the character offset of b is 3 since `𐐀` is represented using two code units in UTF-16. Since 3.17 clients and servers can agree on a different string encoding representation (e.g. UTF-8). The client announces it's supported encoding via the client capability `general.positionEncodings`. The value is an array of position encodings the client supports, with decreasing preference (e.g. the encoding at index `0` is the most preferred one). To stay backwards compatible the only mandatory encoding is UTF-16 represented via the string `utf-16`. The server can pick one of the encodings offered by the client and signals that encoding back to the client via the initialize result's property `capabilities.positionEncoding`. If the string value `utf-16` is missing from the client's capability `general.positionEncodings` servers can safely assume that the client supports UTF-16. If the server omits the position encoding in its initialize result the encoding defaults to the string value `utf-16`. Implementation considerations: since the conversion from one encoding into another requires the content of the file / line the conversion is best done where the file is read which is usually on the server side.

Positions are line end character agnostic. So you can not specify a position that denotes `r|n` or `n|` where `|` represents the character offset.

@since 3.17.0 - support for negotiated position encoding.

Constructors

Position |

Fields

- _line :: UInt

  Line position in a document (zero-based).

  If a line number is greater than the number of lines in a document, it defaults back to the number of lines in the document. If a line number is negative, it defaults to 0.

- _character :: UInt

  Character offset on a line in a document (zero-based).

  The meaning of this offset is determined by the negotiated `PositionEncodingKind`.

  If the character value is greater than the line length it defaults back to the line length.

#### Instances

Instances details

FromJSON Position |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Position Methods parseJSON :: Value -> Parser Position # parseJSONList :: Value -> Parser [Position] # omittedField :: Maybe Position #
ToJSON Position |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Position Methods toJSON :: Position -> Value # toEncoding :: Position -> Encoding # toJSONList :: [Position] -> Value # toEncodingList :: [Position] -> Encoding # omitField :: Position -> Bool #
Generic Position |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Position Associated Types type Rep Position :: Type -> Type Methods from :: Position -> Rep Position x to :: Rep Position x -> Position
Show Position |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Position Methods showsPrec :: Int -> Position -> ShowS # show :: Position -> String # showList :: [Position] -> ShowS #
NFData Position |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Position Methods rnf :: Position -> () #
Eq Position |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Position Methods (==) :: Position -> Position -> Bool # (/=) :: Position -> Position -> Bool #
Ord Position |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Position Methods compare :: Position -> Position -> Ordering (<) :: Position -> Position -> Bool (<=) :: Position -> Position -> Bool (>) :: Position -> Position -> Bool (>=) :: Position -> Position -> Bool max :: Position -> Position -> Position min :: Position -> Position -> Position
Hashable Position |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Position Methods hashWithSalt :: Int -> Position -> Int # hash :: Position -> Int #
Pretty Position |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Position Methods pretty :: Position -> Doc ann # prettyList :: [Position] -> Doc ann #
HasCharacter Position UInt |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods character :: Lens' Position UInt #
HasEnd Range Position |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods end :: Lens' Range Position #
HasLine Position UInt |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods line :: Lens' Position UInt #
HasPosition CallHierarchyPrepareParams Position |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods position :: Lens' CallHierarchyPrepareParams Position #
HasPosition CompletionParams Position |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods position :: Lens' CompletionParams Position #
HasPosition DeclarationParams Position |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods position :: Lens' DeclarationParams Position #
HasPosition DefinitionParams Position |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods position :: Lens' DefinitionParams Position #
HasPosition DocumentHighlightParams Position |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods position :: Lens' DocumentHighlightParams Position #
HasPosition DocumentOnTypeFormattingParams Position |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods position :: Lens' DocumentOnTypeFormattingParams Position #
HasPosition HoverParams Position |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods position :: Lens' HoverParams Position #
HasPosition ImplementationParams Position |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods position :: Lens' ImplementationParams Position #
HasPosition InlayHint Position |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods position :: Lens' InlayHint Position #
HasPosition LinkedEditingRangeParams Position |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods position :: Lens' LinkedEditingRangeParams Position #
HasPosition MonikerParams Position |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods position :: Lens' MonikerParams Position #
HasPosition PrepareRenameParams Position |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods position :: Lens' PrepareRenameParams Position #
HasPosition ReferenceParams Position |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods position :: Lens' ReferenceParams Position #
HasPosition RenameParams Position |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods position :: Lens' RenameParams Position #
HasPosition SignatureHelpParams Position |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods position :: Lens' SignatureHelpParams Position #
HasPosition TextDocumentPositionParams Position |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods position :: Lens' TextDocumentPositionParams Position #
HasPosition TypeDefinitionParams Position |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods position :: Lens' TypeDefinitionParams Position #
HasPosition TypeHierarchyPrepareParams Position |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods position :: Lens' TypeHierarchyPrepareParams Position #
HasStart Range Position |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods start :: Lens' Range Position #
HasPositions SelectionRangeParams [Position] |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods positions :: Lens' SelectionRangeParams [Position] #
type Rep Position |

Instance details

Defined in Language.LSP.Protocol.Internal.Types.Position

type Rep Position = D1 ('MetaData "Position" "Language.LSP.Protocol.Internal.Types.Position" "lsp-types-2.0.2.0-6ldEQfFkAQaDyl5nknNRSX" 'False) (C1 ('MetaCons "Position" 'PrefixI 'True) (S1 ('MetaSel ('Just "_line") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedUnpack) (Rec0 UInt) :*: S1 ('MetaSel ('Just "_character") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedUnpack) (Rec0 UInt)))

data Action a #

An action representing something that can be run as part of a `Rule`.

`Action`s can be pure functions but also have access to `IO` via `MonadIO` and 'MonadUnliftIO. It should be assumed that actions throw exceptions, these can be caught with `actionCatch`. In particular, it is permissible to use the `MonadFail` instance, which will lead to an `IOException`.

#### Instances

Instances details

MonadFail Action |
Instance details Defined in Development.IDE.Graph.Internal.Types Methods fail :: String -> Action a #
MonadIO Action |
Instance details Defined in Development.IDE.Graph.Internal.Types Methods liftIO :: IO a -> Action a #
Applicative Action |
Instance details Defined in Development.IDE.Graph.Internal.Types Methods pure :: a -> Action a # (<*>) :: Action (a -> b) -> Action a -> Action b # liftA2 :: (a -> b -> c) -> Action a -> Action b -> Action c # (*>) :: Action a -> Action b -> Action b # (<*) :: Action a -> Action b -> Action a #
Functor Action |
Instance details Defined in Development.IDE.Graph.Internal.Types Methods fmap :: (a -> b) -> Action a -> Action b # (<$) :: a -> Action b -> Action a #
Monad Action |
Instance details Defined in Development.IDE.Graph.Internal.Types Methods (>>=) :: Action a -> (a -> Action b) -> Action b # (>>) :: Action a -> Action b -> Action b # return :: a -> Action a #
MonadCatch Action |
Instance details Defined in Development.IDE.Graph.Internal.Types Methods catch :: (HasCallStack, Exception e) => Action a -> (e -> Action a) -> Action a
MonadMask Action |
Instance details Defined in Development.IDE.Graph.Internal.Types Methods mask :: HasCallStack => ((forall a. Action a -> Action a) -> Action b) -> Action b # uninterruptibleMask :: HasCallStack => ((forall a. Action a -> Action a) -> Action b) -> Action b # generalBracket :: HasCallStack => Action a -> (a -> ExitCase b -> Action c) -> (a -> Action b) -> Action (b, c) #
MonadThrow Action |
Instance details Defined in Development.IDE.Graph.Internal.Types Methods throwM :: (HasCallStack, Exception e) => e -> Action a #
MonadUnliftIO Action |
Instance details Defined in Development.IDE.Graph.Internal.Types Methods withRunInIO :: ((forall a. Action a -> IO a) -> IO b) -> Action b #

data Rules a #

A computation that defines all the rules that form part of the computation graph.

`Rules` has access to `IO` through `MonadIO`. Use of `IO` is at your own risk: if you write `Rules` that throw exceptions, then you need to make sure to handle them yourself when you run the resulting `Rules`.

#### Instances

Instances details

MonadIO Rules |
Instance details Defined in Development.IDE.Graph.Internal.Types Methods liftIO :: IO a -> Rules a #
Applicative Rules |
Instance details Defined in Development.IDE.Graph.Internal.Types Methods pure :: a -> Rules a # (<*>) :: Rules (a -> b) -> Rules a -> Rules b # liftA2 :: (a -> b -> c) -> Rules a -> Rules b -> Rules c # (*>) :: Rules a -> Rules b -> Rules b # (<*) :: Rules a -> Rules b -> Rules a #
Functor Rules |
Instance details Defined in Development.IDE.Graph.Internal.Types Methods fmap :: (a -> b) -> Rules a -> Rules b # (<$) :: a -> Rules b -> Rules a #
Monad Rules |
Instance details Defined in Development.IDE.Graph.Internal.Types Methods (>>=) :: Rules a -> (a -> Rules b) -> Rules b # (>>) :: Rules a -> Rules b -> Rules b # return :: a -> Rules a #
Monoid a => Monoid (Rules a) |
Instance details Defined in Development.IDE.Graph.Internal.Types Methods mempty :: Rules a # mappend :: Rules a -> Rules a -> Rules a # mconcat :: [Rules a] -> Rules a #
Semigroup a => Semigroup (Rules a) |
Instance details Defined in Development.IDE.Graph.Internal.Types Methods (<>) :: Rules a -> Rules a -> Rules a # sconcat :: NonEmpty (Rules a) -> Rules a # stimes :: Integral b => b -> Rules a -> Rules a #

type family RuleResult key #

The type mapping between the `key` or a rule and the resulting `value`.

#### Instances

Instances details

type RuleResult AddWatchedFile # |
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult AddWatchedFile = Bool
type RuleResult GenerateCore # | Convert to Core, requires TypeCheck*
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GenerateCore = ModGuts
type RuleResult GetBindings # | A IntervalMap telling us what is in scope at each point
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GetBindings = Bindings
type RuleResult GetClientSettings # |
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GetClientSettings = Hashed (Maybe Value)
type RuleResult GetDocMap # |
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GetDocMap = DocAndKindMap
type RuleResult GetFileContents # | Get the contents of a file, either dirty (if the buffer is modified) or Nothing to mean use from disk.
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GetFileContents = (FileVersion, Maybe Text)
type RuleResult GetFileExists # |
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GetFileExists = Bool
type RuleResult GetHieAst # | The uncompressed HieAST
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GetHieAst = HieAstResult
type RuleResult GetImportMap # |
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GetImportMap = ImportMap
type RuleResult GetKnownTargets # |
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GetKnownTargets = KnownTargets
type RuleResult GetLinkable # |
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GetLinkable = LinkableResult
type RuleResult GetLocatedImports # | Resolve the imports in a module to the file path of a module in the same package
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GetLocatedImports = [(Located ModuleName, Maybe ArtifactsLocation)]
type RuleResult GetModIface # | Get a module interface details, either from an interface file or a typechecked module
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GetModIface = HiFileResult
type RuleResult GetModIfaceFromDisk # | Read the module interface file from disk. Throws an error for VFS files. This is an internal rule, use `GetModIface` instead.
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GetModIfaceFromDisk = HiFileResult
type RuleResult GetModIfaceFromDiskAndIndex # | GetModIfaceFromDisk and index the `.hie` file into the database. This is an internal rule, use `GetModIface` instead.
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GetModIfaceFromDiskAndIndex = HiFileResult
type RuleResult GetModSummary # | Generate a ModSummary that has enough information to be used to get .hi and .hie files. without needing to parse the entire source
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GetModSummary = ModSummaryResult
type RuleResult GetModSummaryWithoutTimestamps # | Generate a ModSummary with the timestamps and preprocessed content elided, for more successful early cutoff
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GetModSummaryWithoutTimestamps = ModSummaryResult
type RuleResult GetModificationTime # | Get the modification time of a file.
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GetModificationTime = FileVersion
type RuleResult GetModuleGraph # |
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GetModuleGraph = DependencyInformation
type RuleResult GetParsedModule # | The parse tree for the file using GetFileContents
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GetParsedModule = ParsedModule
type RuleResult GetParsedModuleWithComments # | The parse tree for the file using GetFileContents, all comments included using Opt_KeepRawTokenStream
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GetParsedModuleWithComments = ParsedModule
type RuleResult GhcSession # | A GHC session that we reuse.
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GhcSession = HscEnvEq
type RuleResult GhcSessionDeps # | A GHC session preloaded with all the dependencies This rule is also responsible for calling ReportImportCycles for the direct dependencies
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GhcSessionDeps = HscEnvEq
type RuleResult GhcSessionIO # |
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GhcSessionIO = IdeGhcSession
type RuleResult IsFileOfInterest # |
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult IsFileOfInterest = IsFileOfInterestResult
type RuleResult NeedsCompilation # | Does this module need to be compiled?
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult NeedsCompilation = Maybe LinkableType
type RuleResult ReportImportCycles # | This rule is used to report import cycles. It depends on GetModuleGraph. We cannot report the cycles directly from GetModuleGraph since we can only report diagnostics for the current file.
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult ReportImportCycles = ()
type RuleResult TypeCheck # | The type checked version of this file, requires TypeCheck+
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult TypeCheck = TcModuleResult
type RuleResult LocalCompletions # | Produce completions info for a file
Instance details Defined in Development.IDE.Plugin.Completions.Types type RuleResult LocalCompletions = CachedCompletions
type RuleResult NonLocalCompletions # |
Instance details Defined in Development.IDE.Plugin.Completions.Types type RuleResult NonLocalCompletions = CachedCompletions
type RuleResult GetGlobalBindingTypeSigs # |
Instance details Defined in Development.IDE.Plugin.TypeLenses type RuleResult GetGlobalBindingTypeSigs = GlobalBindingTypeSigsResult
type RuleResult (Q k) # |
Instance details Defined in Development.IDE.Types.Shake type RuleResult (Q k) = A (RuleResult k)

data LoggingColumn #

Constructors

TimeColumn |
ThreadIdColumn |
PriorityColumn |
DataColumn |
SourceLocColumn |

newtype Recorder msg #

Note that this is logging actions _of the program_, not of the user. You shouldn't call warning/error if the user has caused an error, only if our code has gone wrong and is itself erroneous (e.g. we threw an exception).

Constructors

Recorder |

Fields

- logger_ :: forall (m :: Type -> Type). MonadIO m => msg -> m ()

#### Instances

Instances details

Contravariant Recorder |
Instance details Defined in Ide.Logger Methods contramap :: (a' -> a) -> Recorder a -> Recorder a' # (>$) :: b -> Recorder b -> Recorder a #
Monoid (Recorder msg) |
Instance details Defined in Ide.Logger Methods mempty :: Recorder msg # mappend :: Recorder msg -> Recorder msg -> Recorder msg # mconcat :: [Recorder msg] -> Recorder msg #
Semigroup (Recorder msg) |
Instance details Defined in Ide.Logger Methods (<>) :: Recorder msg -> Recorder msg -> Recorder msg # sconcat :: NonEmpty (Recorder msg) -> Recorder msg # stimes :: Integral b => b -> Recorder msg -> Recorder msg #

data WithPriority a #

Constructors

WithPriority |

Fields

- priority :: Priority
- callStack_ :: CallStack
- payload :: a

#### Instances

Instances details

Functor WithPriority |
Instance details Defined in Ide.Logger Methods fmap :: (a -> b) -> WithPriority a -> WithPriority b # (<$) :: a -> WithPriority b -> WithPriority a #

newtype Logger #

Note that this is logging actions _of the program_, not of the user. You shouldn't call warning/error if the user has caused an error, only if our code has gone wrong and is itself erroneous (e.g. we threw an exception).

Constructors

Logger |

Fields

- logPriority :: Priority -> Text -> IO ()

#### Instances

Instances details

Monoid Logger |
Instance details Defined in Ide.Logger Methods mempty :: Logger # mappend :: Logger -> Logger -> Logger # mconcat :: [Logger] -> Logger #
Semigroup Logger |
Instance details Defined in Ide.Logger Methods (<>) :: Logger -> Logger -> Logger # sconcat :: NonEmpty Logger -> Logger # stimes :: Integral b => b -> Logger -> Logger #

data Priority #

Constructors

Debug | Verbose debug logging.
Info | Useful information in case an error has to be understood.
Warning | These error messages should not occur in a expected usage, and should be investigated.
Error | Such log messages must never occur in expected usage.

#### Instances

Instances details

Bounded Priority |
Instance details Defined in Ide.Logger Methods minBound :: Priority maxBound :: Priority
Enum Priority |
Instance details Defined in Ide.Logger Methods succ :: Priority -> Priority pred :: Priority -> Priority toEnum :: Int -> Priority fromEnum :: Priority -> Int enumFrom :: Priority -> [Priority] enumFromThen :: Priority -> Priority -> [Priority] enumFromTo :: Priority -> Priority -> [Priority] enumFromThenTo :: Priority -> Priority -> Priority -> [Priority]
Read Priority |
Instance details Defined in Ide.Logger Methods readsPrec :: Int -> ReadS Priority # readList :: ReadS [Priority] # readPrec :: ReadPrec Priority # readListPrec :: ReadPrec [Priority] #
Show Priority |
Instance details Defined in Ide.Logger Methods showsPrec :: Int -> Priority -> ShowS # show :: Priority -> String # showList :: [Priority] -> ShowS #
Eq Priority |
Instance details Defined in Ide.Logger Methods (==) :: Priority -> Priority -> Bool # (/=) :: Priority -> Priority -> Bool #
Ord Priority |
Instance details Defined in Ide.Logger Methods compare :: Priority -> Priority -> Ordering (<) :: Priority -> Priority -> Bool (<=) :: Priority -> Priority -> Bool (>) :: Priority -> Priority -> Bool (>=) :: Priority -> Priority -> Bool max :: Priority -> Priority -> Priority min :: Priority -> Priority -> Priority

newtype LayoutOptions #

Options to influence the layout algorithms.

Constructors

LayoutOptions |

Fields

- layoutPageWidth :: PageWidth

#### Instances

Instances details

Show LayoutOptions |
Instance details Defined in Prettyprinter.Internal Methods showsPrec :: Int -> LayoutOptions -> ShowS # show :: LayoutOptions -> String # showList :: [LayoutOptions] -> ShowS #
Eq LayoutOptions |
Instance details Defined in Prettyprinter.Internal Methods (==) :: LayoutOptions -> LayoutOptions -> Bool # (/=) :: LayoutOptions -> LayoutOptions -> Bool #
Ord LayoutOptions |

Instance details

Defined in Prettyprinter.Internal

Methods

compare :: LayoutOptions -> LayoutOptions -> Ordering

(<) :: LayoutOptions -> LayoutOptions -> Bool

(<=) :: LayoutOptions -> LayoutOptions -> Bool

(>) :: LayoutOptions -> LayoutOptions -> Bool

(>=) :: LayoutOptions -> LayoutOptions -> Bool

max :: LayoutOptions -> LayoutOptions -> LayoutOptions

min :: LayoutOptions -> LayoutOptions -> LayoutOptions

data PageWidth #

Maximum number of characters that fit in one line. The layout algorithms will try not to exceed the set limit by inserting line breaks when applicable (e.g. via `softline'`).

Constructors

AvailablePerLine !Int !Double

Layouters should not exceed the specified space per line.

- The `Int` is the number of characters, including whitespace, that fit in a line. A typical value is 80.
- The `Double` is the ribbon with, i.e. the fraction of the total page width that can be printed on. This allows limiting the length of printable text per line. Values must be between 0 and 1, and 0.4 to 1 is typical.

Unbounded | Layouters should not introduce line breaks on their own.

#### Instances

Instances details

Show PageWidth |
Instance details Defined in Prettyprinter.Internal Methods showsPrec :: Int -> PageWidth -> ShowS # show :: PageWidth -> String # showList :: [PageWidth] -> ShowS #
Eq PageWidth |
Instance details Defined in Prettyprinter.Internal Methods (==) :: PageWidth -> PageWidth -> Bool # (/=) :: PageWidth -> PageWidth -> Bool #
Ord PageWidth |
Instance details Defined in Prettyprinter.Internal Methods compare :: PageWidth -> PageWidth -> Ordering (<) :: PageWidth -> PageWidth -> Bool (<=) :: PageWidth -> PageWidth -> Bool (>) :: PageWidth -> PageWidth -> Bool (>=) :: PageWidth -> PageWidth -> Bool max :: PageWidth -> PageWidth -> PageWidth min :: PageWidth -> PageWidth -> PageWidth

data SimpleDocStream ann #

The data type `SimpleDocStream` represents laid out documents and is used by the display functions.

A simplified view is that ``Doc` = [`SimpleDocStream`]`, and the layout functions pick one of the `SimpleDocStream`s based on which one fits the layout constraints best. This means that `SimpleDocStream` has all complexity contained in `Doc` resolved, making it very easy to convert it to other formats, such as plain text or terminal output.

To write your own ``Doc`` to X converter, it is therefore sufficient to convert from ``SimpleDocStream``. The »Render« submodules provide some built-in converters to do so, and helpers to create own ones.

Constructors

SFail |
SEmpty |
SChar !Char (SimpleDocStream ann) |
SText !Int !Text (SimpleDocStream ann) | `length` is O(n), so we cache it in the `Int` field.
SLine !Int (SimpleDocStream ann) | `Int` = indentation level for the (next) line
SAnnPush ann (SimpleDocStream ann) | Add an annotation to the remaining document.
SAnnPop (SimpleDocStream ann) | Remove a previously pushed annotation.

#### Instances

Instances details

Foldable SimpleDocStream | Collect all annotations from a document.

Instance details

Defined in Prettyprinter.Internal

Methods

fold :: Monoid m => SimpleDocStream m -> m

foldMap :: Monoid m => (a -> m) -> SimpleDocStream a -> m

foldMap' :: Monoid m => (a -> m) -> SimpleDocStream a -> m

foldr :: (a -> b -> b) -> b -> SimpleDocStream a -> b

foldr' :: (a -> b -> b) -> b -> SimpleDocStream a -> b

foldl :: (b -> a -> b) -> b -> SimpleDocStream a -> b

foldl' :: (b -> a -> b) -> b -> SimpleDocStream a -> b

foldr1 :: (a -> a -> a) -> SimpleDocStream a -> a

foldl1 :: (a -> a -> a) -> SimpleDocStream a -> a

toList :: SimpleDocStream a -> [a]

null :: SimpleDocStream a -> Bool

length :: SimpleDocStream a -> Int

elem :: Eq a => a -> SimpleDocStream a -> Bool

maximum :: Ord a => SimpleDocStream a -> a

minimum :: Ord a => SimpleDocStream a -> a

sum :: Num a => SimpleDocStream a -> a

product :: Num a => SimpleDocStream a -> a

Traversable SimpleDocStream | Transform a document based on its annotations, possibly leveraging `Applicative` effects.
Instance details Defined in Prettyprinter.Internal Methods traverse :: Applicative f => (a -> f b) -> SimpleDocStream a -> f (SimpleDocStream b) # sequenceA :: Applicative f => SimpleDocStream (f a) -> f (SimpleDocStream a) mapM :: Monad m => (a -> m b) -> SimpleDocStream a -> m (SimpleDocStream b) # sequence :: Monad m => SimpleDocStream (m a) -> m (SimpleDocStream a) #
Functor SimpleDocStream | Alter the document’s annotations. This instance makes `SimpleDocStream` more flexible (because it can be used in `Functor`-polymorphic values), but ``fmap`` is much less readable compared to using ``reAnnotateST`` in code that only works for ``SimpleDocStream`` anyway. Consider using the latter when the type does not matter.
Instance details Defined in Prettyprinter.Internal Methods fmap :: (a -> b) -> SimpleDocStream a -> SimpleDocStream b # (<$) :: a -> SimpleDocStream b -> SimpleDocStream a #
Generic (SimpleDocStream ann) |
Instance details Defined in Prettyprinter.Internal Associated Types type Rep (SimpleDocStream ann) :: Type -> Type Methods from :: SimpleDocStream ann -> Rep (SimpleDocStream ann) x to :: Rep (SimpleDocStream ann) x -> SimpleDocStream ann
Show ann => Show (SimpleDocStream ann) |
Instance details Defined in Prettyprinter.Internal Methods showsPrec :: Int -> SimpleDocStream ann -> ShowS # show :: SimpleDocStream ann -> String # showList :: [SimpleDocStream ann] -> ShowS #
Eq ann => Eq (SimpleDocStream ann) |
Instance details Defined in Prettyprinter.Internal Methods (==) :: SimpleDocStream ann -> SimpleDocStream ann -> Bool # (/=) :: SimpleDocStream ann -> SimpleDocStream ann -> Bool #
Ord ann => Ord (SimpleDocStream ann) |

Instance details

Defined in Prettyprinter.Internal

Methods

compare :: SimpleDocStream ann -> SimpleDocStream ann -> Ordering

(<) :: SimpleDocStream ann -> SimpleDocStream ann -> Bool

(<=) :: SimpleDocStream ann -> SimpleDocStream ann -> Bool

(>) :: SimpleDocStream ann -> SimpleDocStream ann -> Bool

(>=) :: SimpleDocStream ann -> SimpleDocStream ann -> Bool

max :: SimpleDocStream ann -> SimpleDocStream ann -> SimpleDocStream ann

min :: SimpleDocStream ann -> SimpleDocStream ann -> SimpleDocStream ann

type Rep (SimpleDocStream ann) |

Instance details

Defined in Prettyprinter.Internal

type Rep (SimpleDocStream ann) = D1 ('MetaData "SimpleDocStream" "Prettyprinter.Internal" "prettyprinter-1.7.1-GuAcpDZRBAeGkZlhvyZh0C" 'False) ((C1 ('MetaCons "SFail" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "SEmpty" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SChar" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Char) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (SimpleDocStream ann))))) :+: ((C1 ('MetaCons "SText" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (SimpleDocStream ann)))) :+: C1 ('MetaCons "SLine" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (SimpleDocStream ann)))) :+: (C1 ('MetaCons "SAnnPush" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ann) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (SimpleDocStream ann))) :+: C1 ('MetaCons "SAnnPop" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (SimpleDocStream ann))))))

data FusionDepth #

Fusion depth parameter, used by `fuse`.

Constructors

Shallow | Do not dive deep into nested documents, fusing mostly concatenations of text nodes together.

Deep

Recurse into all parts of the `Doc`, including different layout alternatives, and location-sensitive values such as created by `nesting` which cannot be fused before, but only during, the layout process. As a result, the performance cost of using deep fusion is often hard to predict, and depends on the interplay between page layout and document to prettyprint.

This value should only be used if profiling shows it is significantly faster than using `Shallow`.

#### Instances

Instances details

Show FusionDepth |
Instance details Defined in Prettyprinter.Internal Methods showsPrec :: Int -> FusionDepth -> ShowS # show :: FusionDepth -> String # showList :: [FusionDepth] -> ShowS #
Eq FusionDepth |
Instance details Defined in Prettyprinter.Internal Methods (==) :: FusionDepth -> FusionDepth -> Bool # (/=) :: FusionDepth -> FusionDepth -> Bool #
Ord FusionDepth |
Instance details Defined in Prettyprinter.Internal Methods compare :: FusionDepth -> FusionDepth -> Ordering (<) :: FusionDepth -> FusionDepth -> Bool (<=) :: FusionDepth -> FusionDepth -> Bool (>) :: FusionDepth -> FusionDepth -> Bool (>=) :: FusionDepth -> FusionDepth -> Bool max :: FusionDepth -> FusionDepth -> FusionDepth min :: FusionDepth -> FusionDepth -> FusionDepth

class Pretty a where #

Overloaded conversion to `Doc`.

Laws:

1. output should be pretty. :-)

Minimal complete definition

pretty

Methods

pretty :: a -> Doc ann #

    >>> pretty 1 <+> pretty "hello" <+> pretty 1.234
    1 hello 1.234

prettyList :: [a] -> Doc ann #

``prettyList`` is only used to define the `instance `Pretty` a => `Pretty` [a]`. In normal circumstances only the ``pretty`` function is used.

    >>> prettyList [1, 23, 456]
    [1, 23, 456]

#### Instances

Instances details

Pretty Void

Finding a good example for printing something that does not exist is hard, so here is an example of printing a list full of nothing.

    >>> pretty ([] :: [Void])
    []

Instance details Defined in Prettyprinter.Internal Methods pretty :: Void -> Doc ann # prettyList :: [Void] -> Doc ann #
Pretty Int16 |
Instance details Defined in Prettyprinter.Internal Methods pretty :: Int16 -> Doc ann # prettyList :: [Int16] -> Doc ann #
Pretty Int32 |
Instance details Defined in Prettyprinter.Internal Methods pretty :: Int32 -> Doc ann # prettyList :: [Int32] -> Doc ann #
Pretty Int64 |
Instance details Defined in Prettyprinter.Internal Methods pretty :: Int64 -> Doc ann # prettyList :: [Int64] -> Doc ann #
Pretty Int8 |
Instance details Defined in Prettyprinter.Internal Methods pretty :: Int8 -> Doc ann # prettyList :: [Int8] -> Doc ann #
Pretty Word16 |
Instance details Defined in Prettyprinter.Internal Methods pretty :: Word16 -> Doc ann # prettyList :: [Word16] -> Doc ann #
Pretty Word32 |
Instance details Defined in Prettyprinter.Internal Methods pretty :: Word32 -> Doc ann # prettyList :: [Word32] -> Doc ann #
Pretty Word64 |
Instance details Defined in Prettyprinter.Internal Methods pretty :: Word64 -> Doc ann # prettyList :: [Word64] -> Doc ann #
Pretty Word8 |
Instance details Defined in Prettyprinter.Internal Methods pretty :: Word8 -> Doc ann # prettyList :: [Word8] -> Doc ann #
Pretty Log # |
Instance details Defined in Development.IDE.Core.FileStore Methods pretty :: Log -> Doc ann # prettyList :: [Log] -> Doc ann #
Pretty Log # |
Instance details Defined in Development.IDE.Core.OfInterest Methods pretty :: Log -> Doc ann # prettyList :: [Log] -> Doc ann #
Pretty Log # |
Instance details Defined in Development.IDE.Core.Rules Methods pretty :: Log -> Doc ann # prettyList :: [Log] -> Doc ann #
Pretty Log # |
Instance details Defined in Development.IDE.Core.Service Methods pretty :: Log -> Doc ann # prettyList :: [Log] -> Doc ann #
Pretty Log # |
Instance details Defined in Development.IDE.Core.Shake Methods pretty :: Log -> Doc ann # prettyList :: [Log] -> Doc ann #
Pretty Log # |
Instance details Defined in Development.IDE.LSP.LanguageServer Methods pretty :: Log -> Doc ann # prettyList :: [Log] -> Doc ann #
Pretty Log # |
Instance details Defined in Development.IDE.LSP.Notifications Methods pretty :: Log -> Doc ann # prettyList :: [Log] -> Doc ann #
Pretty Log # |
Instance details Defined in Development.IDE.Main Methods pretty :: Log -> Doc ann # prettyList :: [Log] -> Doc ann #
Pretty Log # |
Instance details Defined in Development.IDE.Main.HeapStats Methods pretty :: Log -> Doc ann # prettyList :: [Log] -> Doc ann #
Pretty Log # |
Instance details Defined in Development.IDE.Plugin.Completions Methods pretty :: Log -> Doc ann # prettyList :: [Log] -> Doc ann #
Pretty Log # |
Instance details Defined in Development.IDE.Plugin.HLS Methods pretty :: Log -> Doc ann # prettyList :: [Log] -> Doc ann #
Pretty Log # |
Instance details Defined in Development.IDE.Plugin.HLS.GhcIde Methods pretty :: Log -> Doc ann # prettyList :: [Log] -> Doc ann #
Pretty Log # |
Instance details Defined in Development.IDE.Plugin.TypeLenses Methods pretty :: Log -> Doc ann # prettyList :: [Log] -> Doc ann #
Pretty Log # |
Instance details Defined in Development.IDE.Session Methods pretty :: Log -> Doc ann # prettyList :: [Log] -> Doc ann #
Pretty Log |
Instance details Defined in HIE.Bios.Types Methods pretty :: Log -> Doc ann # prettyList :: [Log] -> Doc ann #
Pretty PluginError |
Instance details Defined in Ide.Plugin.Error Methods pretty :: PluginError -> Doc ann # prettyList :: [PluginError] -> Doc ann #
Pretty LspServerLog |
Instance details Defined in Language.LSP.Server.Control Methods pretty :: LspServerLog -> Doc ann # prettyList :: [LspServerLog] -> Doc ann #
Pretty LspCoreLog |
Instance details Defined in Language.LSP.Server.Core Methods pretty :: LspCoreLog -> Doc ann # prettyList :: [LspCoreLog] -> Doc ann #
Pretty VfsLog |
Instance details Defined in Language.LSP.VFS Methods pretty :: VfsLog -> Doc ann # prettyList :: [VfsLog] -> Doc ann #
Pretty AnnotatedTextEdit |
Instance details Defined in Language.LSP.Protocol.Internal.Types.AnnotatedTextEdit Methods pretty :: AnnotatedTextEdit -> Doc ann # prettyList :: [AnnotatedTextEdit] -> Doc ann #
Pretty ApplyWorkspaceEditParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.ApplyWorkspaceEditParams Methods pretty :: ApplyWorkspaceEditParams -> Doc ann # prettyList :: [ApplyWorkspaceEditParams] -> Doc ann #
Pretty ApplyWorkspaceEditResult |
Instance details Defined in Language.LSP.Protocol.Internal.Types.ApplyWorkspaceEditResult Methods pretty :: ApplyWorkspaceEditResult -> Doc ann # prettyList :: [ApplyWorkspaceEditResult] -> Doc ann #
Pretty BaseSymbolInformation |
Instance details Defined in Language.LSP.Protocol.Internal.Types.BaseSymbolInformation Methods pretty :: BaseSymbolInformation -> Doc ann # prettyList :: [BaseSymbolInformation] -> Doc ann #
Pretty CallHierarchyClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CallHierarchyClientCapabilities Methods pretty :: CallHierarchyClientCapabilities -> Doc ann # prettyList :: [CallHierarchyClientCapabilities] -> Doc ann #
Pretty CallHierarchyIncomingCall |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CallHierarchyIncomingCall Methods pretty :: CallHierarchyIncomingCall -> Doc ann # prettyList :: [CallHierarchyIncomingCall] -> Doc ann #
Pretty CallHierarchyIncomingCallsParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CallHierarchyIncomingCallsParams Methods pretty :: CallHierarchyIncomingCallsParams -> Doc ann # prettyList :: [CallHierarchyIncomingCallsParams] -> Doc ann #
Pretty CallHierarchyItem |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CallHierarchyItem Methods pretty :: CallHierarchyItem -> Doc ann # prettyList :: [CallHierarchyItem] -> Doc ann #
Pretty CallHierarchyOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CallHierarchyOptions Methods pretty :: CallHierarchyOptions -> Doc ann # prettyList :: [CallHierarchyOptions] -> Doc ann #
Pretty CallHierarchyOutgoingCall |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CallHierarchyOutgoingCall Methods pretty :: CallHierarchyOutgoingCall -> Doc ann # prettyList :: [CallHierarchyOutgoingCall] -> Doc ann #
Pretty CallHierarchyOutgoingCallsParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CallHierarchyOutgoingCallsParams Methods pretty :: CallHierarchyOutgoingCallsParams -> Doc ann # prettyList :: [CallHierarchyOutgoingCallsParams] -> Doc ann #
Pretty CallHierarchyPrepareParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CallHierarchyPrepareParams Methods pretty :: CallHierarchyPrepareParams -> Doc ann # prettyList :: [CallHierarchyPrepareParams] -> Doc ann #
Pretty CallHierarchyRegistrationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CallHierarchyRegistrationOptions Methods pretty :: CallHierarchyRegistrationOptions -> Doc ann # prettyList :: [CallHierarchyRegistrationOptions] -> Doc ann #
Pretty CancelParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CancelParams Methods pretty :: CancelParams -> Doc ann # prettyList :: [CancelParams] -> Doc ann #
Pretty ChangeAnnotation |
Instance details Defined in Language.LSP.Protocol.Internal.Types.ChangeAnnotation Methods pretty :: ChangeAnnotation -> Doc ann # prettyList :: [ChangeAnnotation] -> Doc ann #
Pretty ChangeAnnotationIdentifier |
Instance details Defined in Language.LSP.Protocol.Internal.Types.ChangeAnnotationIdentifier Methods pretty :: ChangeAnnotationIdentifier -> Doc ann # prettyList :: [ChangeAnnotationIdentifier] -> Doc ann #
Pretty ClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.ClientCapabilities Methods pretty :: ClientCapabilities -> Doc ann # prettyList :: [ClientCapabilities] -> Doc ann #
Pretty CodeAction |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CodeAction Methods pretty :: CodeAction -> Doc ann # prettyList :: [CodeAction] -> Doc ann #
Pretty CodeActionClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CodeActionClientCapabilities Methods pretty :: CodeActionClientCapabilities -> Doc ann # prettyList :: [CodeActionClientCapabilities] -> Doc ann #
Pretty CodeActionContext |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CodeActionContext Methods pretty :: CodeActionContext -> Doc ann # prettyList :: [CodeActionContext] -> Doc ann #
Pretty CodeActionKind |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CodeActionKind Methods pretty :: CodeActionKind -> Doc ann # prettyList :: [CodeActionKind] -> Doc ann #
Pretty CodeActionOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CodeActionOptions Methods pretty :: CodeActionOptions -> Doc ann # prettyList :: [CodeActionOptions] -> Doc ann #
Pretty CodeActionParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CodeActionParams Methods pretty :: CodeActionParams -> Doc ann # prettyList :: [CodeActionParams] -> Doc ann #
Pretty CodeActionRegistrationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CodeActionRegistrationOptions Methods pretty :: CodeActionRegistrationOptions -> Doc ann # prettyList :: [CodeActionRegistrationOptions] -> Doc ann #
Pretty CodeActionTriggerKind |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CodeActionTriggerKind Methods pretty :: CodeActionTriggerKind -> Doc ann # prettyList :: [CodeActionTriggerKind] -> Doc ann #
Pretty CodeDescription |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CodeDescription Methods pretty :: CodeDescription -> Doc ann # prettyList :: [CodeDescription] -> Doc ann #
Pretty CodeLens |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CodeLens Methods pretty :: CodeLens -> Doc ann # prettyList :: [CodeLens] -> Doc ann #
Pretty CodeLensClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CodeLensClientCapabilities Methods pretty :: CodeLensClientCapabilities -> Doc ann # prettyList :: [CodeLensClientCapabilities] -> Doc ann #
Pretty CodeLensOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CodeLensOptions Methods pretty :: CodeLensOptions -> Doc ann # prettyList :: [CodeLensOptions] -> Doc ann #
Pretty CodeLensParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CodeLensParams Methods pretty :: CodeLensParams -> Doc ann # prettyList :: [CodeLensParams] -> Doc ann #
Pretty CodeLensRegistrationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CodeLensRegistrationOptions Methods pretty :: CodeLensRegistrationOptions -> Doc ann # prettyList :: [CodeLensRegistrationOptions] -> Doc ann #
Pretty CodeLensWorkspaceClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CodeLensWorkspaceClientCapabilities Methods pretty :: CodeLensWorkspaceClientCapabilities -> Doc ann # prettyList :: [CodeLensWorkspaceClientCapabilities] -> Doc ann #
Pretty Color |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Color Methods pretty :: Color -> Doc ann # prettyList :: [Color] -> Doc ann #
Pretty ColorInformation |
Instance details Defined in Language.LSP.Protocol.Internal.Types.ColorInformation Methods pretty :: ColorInformation -> Doc ann # prettyList :: [ColorInformation] -> Doc ann #
Pretty ColorPresentation |
Instance details Defined in Language.LSP.Protocol.Internal.Types.ColorPresentation Methods pretty :: ColorPresentation -> Doc ann # prettyList :: [ColorPresentation] -> Doc ann #
Pretty ColorPresentationParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.ColorPresentationParams Methods pretty :: ColorPresentationParams -> Doc ann # prettyList :: [ColorPresentationParams] -> Doc ann #
Pretty Command |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Command Methods pretty :: Command -> Doc ann # prettyList :: [Command] -> Doc ann #
Pretty CompletionClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CompletionClientCapabilities Methods pretty :: CompletionClientCapabilities -> Doc ann # prettyList :: [CompletionClientCapabilities] -> Doc ann #
Pretty CompletionContext |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CompletionContext Methods pretty :: CompletionContext -> Doc ann # prettyList :: [CompletionContext] -> Doc ann #
Pretty CompletionItem |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CompletionItem Methods pretty :: CompletionItem -> Doc ann # prettyList :: [CompletionItem] -> Doc ann #
Pretty CompletionItemKind |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CompletionItemKind Methods pretty :: CompletionItemKind -> Doc ann # prettyList :: [CompletionItemKind] -> Doc ann #
Pretty CompletionItemLabelDetails |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CompletionItemLabelDetails Methods pretty :: CompletionItemLabelDetails -> Doc ann # prettyList :: [CompletionItemLabelDetails] -> Doc ann #
Pretty CompletionItemTag |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CompletionItemTag Methods pretty :: CompletionItemTag -> Doc ann # prettyList :: [CompletionItemTag] -> Doc ann #
Pretty CompletionList |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CompletionList Methods pretty :: CompletionList -> Doc ann # prettyList :: [CompletionList] -> Doc ann #
Pretty CompletionOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CompletionOptions Methods pretty :: CompletionOptions -> Doc ann # prettyList :: [CompletionOptions] -> Doc ann #
Pretty CompletionParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CompletionParams Methods pretty :: CompletionParams -> Doc ann # prettyList :: [CompletionParams] -> Doc ann #
Pretty CompletionRegistrationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CompletionRegistrationOptions Methods pretty :: CompletionRegistrationOptions -> Doc ann # prettyList :: [CompletionRegistrationOptions] -> Doc ann #
Pretty CompletionTriggerKind |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CompletionTriggerKind Methods pretty :: CompletionTriggerKind -> Doc ann # prettyList :: [CompletionTriggerKind] -> Doc ann #
Pretty ConfigurationItem |
Instance details Defined in Language.LSP.Protocol.Internal.Types.ConfigurationItem Methods pretty :: ConfigurationItem -> Doc ann # prettyList :: [ConfigurationItem] -> Doc ann #
Pretty ConfigurationParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.ConfigurationParams Methods pretty :: ConfigurationParams -> Doc ann # prettyList :: [ConfigurationParams] -> Doc ann #
Pretty CreateFile |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CreateFile Methods pretty :: CreateFile -> Doc ann # prettyList :: [CreateFile] -> Doc ann #
Pretty CreateFileOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CreateFileOptions Methods pretty :: CreateFileOptions -> Doc ann # prettyList :: [CreateFileOptions] -> Doc ann #
Pretty CreateFilesParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.CreateFilesParams Methods pretty :: CreateFilesParams -> Doc ann # prettyList :: [CreateFilesParams] -> Doc ann #
Pretty Declaration |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Declaration Methods pretty :: Declaration -> Doc ann # prettyList :: [Declaration] -> Doc ann #
Pretty DeclarationClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DeclarationClientCapabilities Methods pretty :: DeclarationClientCapabilities -> Doc ann # prettyList :: [DeclarationClientCapabilities] -> Doc ann #
Pretty DeclarationLink |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DeclarationLink Methods pretty :: DeclarationLink -> Doc ann # prettyList :: [DeclarationLink] -> Doc ann #
Pretty DeclarationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DeclarationOptions Methods pretty :: DeclarationOptions -> Doc ann # prettyList :: [DeclarationOptions] -> Doc ann #
Pretty DeclarationParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DeclarationParams Methods pretty :: DeclarationParams -> Doc ann # prettyList :: [DeclarationParams] -> Doc ann #
Pretty DeclarationRegistrationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DeclarationRegistrationOptions Methods pretty :: DeclarationRegistrationOptions -> Doc ann # prettyList :: [DeclarationRegistrationOptions] -> Doc ann #
Pretty Definition |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Definition Methods pretty :: Definition -> Doc ann # prettyList :: [Definition] -> Doc ann #
Pretty DefinitionClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DefinitionClientCapabilities Methods pretty :: DefinitionClientCapabilities -> Doc ann # prettyList :: [DefinitionClientCapabilities] -> Doc ann #
Pretty DefinitionLink |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DefinitionLink Methods pretty :: DefinitionLink -> Doc ann # prettyList :: [DefinitionLink] -> Doc ann #
Pretty DefinitionOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DefinitionOptions Methods pretty :: DefinitionOptions -> Doc ann # prettyList :: [DefinitionOptions] -> Doc ann #
Pretty DefinitionParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DefinitionParams Methods pretty :: DefinitionParams -> Doc ann # prettyList :: [DefinitionParams] -> Doc ann #
Pretty DefinitionRegistrationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DefinitionRegistrationOptions Methods pretty :: DefinitionRegistrationOptions -> Doc ann # prettyList :: [DefinitionRegistrationOptions] -> Doc ann #
Pretty DeleteFile |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DeleteFile Methods pretty :: DeleteFile -> Doc ann # prettyList :: [DeleteFile] -> Doc ann #
Pretty DeleteFileOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DeleteFileOptions Methods pretty :: DeleteFileOptions -> Doc ann # prettyList :: [DeleteFileOptions] -> Doc ann #
Pretty DeleteFilesParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DeleteFilesParams Methods pretty :: DeleteFilesParams -> Doc ann # prettyList :: [DeleteFilesParams] -> Doc ann #
Pretty Diagnostic |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Diagnostic Methods pretty :: Diagnostic -> Doc ann # prettyList :: [Diagnostic] -> Doc ann #
Pretty DiagnosticClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DiagnosticClientCapabilities Methods pretty :: DiagnosticClientCapabilities -> Doc ann # prettyList :: [DiagnosticClientCapabilities] -> Doc ann #
Pretty DiagnosticOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DiagnosticOptions Methods pretty :: DiagnosticOptions -> Doc ann # prettyList :: [DiagnosticOptions] -> Doc ann #
Pretty DiagnosticRegistrationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DiagnosticRegistrationOptions Methods pretty :: DiagnosticRegistrationOptions -> Doc ann # prettyList :: [DiagnosticRegistrationOptions] -> Doc ann #
Pretty DiagnosticRelatedInformation |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DiagnosticRelatedInformation Methods pretty :: DiagnosticRelatedInformation -> Doc ann # prettyList :: [DiagnosticRelatedInformation] -> Doc ann #
Pretty DiagnosticServerCancellationData |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DiagnosticServerCancellationData Methods pretty :: DiagnosticServerCancellationData -> Doc ann # prettyList :: [DiagnosticServerCancellationData] -> Doc ann #
Pretty DiagnosticSeverity |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DiagnosticSeverity Methods pretty :: DiagnosticSeverity -> Doc ann # prettyList :: [DiagnosticSeverity] -> Doc ann #
Pretty DiagnosticTag |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DiagnosticTag Methods pretty :: DiagnosticTag -> Doc ann # prettyList :: [DiagnosticTag] -> Doc ann #
Pretty DiagnosticWorkspaceClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DiagnosticWorkspaceClientCapabilities Methods pretty :: DiagnosticWorkspaceClientCapabilities -> Doc ann # prettyList :: [DiagnosticWorkspaceClientCapabilities] -> Doc ann #
Pretty DidChangeConfigurationClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DidChangeConfigurationClientCapabilities Methods pretty :: DidChangeConfigurationClientCapabilities -> Doc ann # prettyList :: [DidChangeConfigurationClientCapabilities] -> Doc ann #
Pretty DidChangeConfigurationParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DidChangeConfigurationParams Methods pretty :: DidChangeConfigurationParams -> Doc ann # prettyList :: [DidChangeConfigurationParams] -> Doc ann #
Pretty DidChangeConfigurationRegistrationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DidChangeConfigurationRegistrationOptions Methods pretty :: DidChangeConfigurationRegistrationOptions -> Doc ann # prettyList :: [DidChangeConfigurationRegistrationOptions] -> Doc ann #
Pretty DidChangeNotebookDocumentParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DidChangeNotebookDocumentParams Methods pretty :: DidChangeNotebookDocumentParams -> Doc ann # prettyList :: [DidChangeNotebookDocumentParams] -> Doc ann #
Pretty DidChangeTextDocumentParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DidChangeTextDocumentParams Methods pretty :: DidChangeTextDocumentParams -> Doc ann # prettyList :: [DidChangeTextDocumentParams] -> Doc ann #
Pretty DidChangeWatchedFilesClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DidChangeWatchedFilesClientCapabilities Methods pretty :: DidChangeWatchedFilesClientCapabilities -> Doc ann # prettyList :: [DidChangeWatchedFilesClientCapabilities] -> Doc ann #
Pretty DidChangeWatchedFilesParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DidChangeWatchedFilesParams Methods pretty :: DidChangeWatchedFilesParams -> Doc ann # prettyList :: [DidChangeWatchedFilesParams] -> Doc ann #
Pretty DidChangeWatchedFilesRegistrationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DidChangeWatchedFilesRegistrationOptions Methods pretty :: DidChangeWatchedFilesRegistrationOptions -> Doc ann # prettyList :: [DidChangeWatchedFilesRegistrationOptions] -> Doc ann #
Pretty DidChangeWorkspaceFoldersParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DidChangeWorkspaceFoldersParams Methods pretty :: DidChangeWorkspaceFoldersParams -> Doc ann # prettyList :: [DidChangeWorkspaceFoldersParams] -> Doc ann #
Pretty DidCloseNotebookDocumentParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DidCloseNotebookDocumentParams Methods pretty :: DidCloseNotebookDocumentParams -> Doc ann # prettyList :: [DidCloseNotebookDocumentParams] -> Doc ann #
Pretty DidCloseTextDocumentParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DidCloseTextDocumentParams Methods pretty :: DidCloseTextDocumentParams -> Doc ann # prettyList :: [DidCloseTextDocumentParams] -> Doc ann #
Pretty DidOpenNotebookDocumentParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DidOpenNotebookDocumentParams Methods pretty :: DidOpenNotebookDocumentParams -> Doc ann # prettyList :: [DidOpenNotebookDocumentParams] -> Doc ann #
Pretty DidOpenTextDocumentParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DidOpenTextDocumentParams Methods pretty :: DidOpenTextDocumentParams -> Doc ann # prettyList :: [DidOpenTextDocumentParams] -> Doc ann #
Pretty DidSaveNotebookDocumentParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DidSaveNotebookDocumentParams Methods pretty :: DidSaveNotebookDocumentParams -> Doc ann # prettyList :: [DidSaveNotebookDocumentParams] -> Doc ann #
Pretty DidSaveTextDocumentParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DidSaveTextDocumentParams Methods pretty :: DidSaveTextDocumentParams -> Doc ann # prettyList :: [DidSaveTextDocumentParams] -> Doc ann #
Pretty DocumentColorClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DocumentColorClientCapabilities Methods pretty :: DocumentColorClientCapabilities -> Doc ann # prettyList :: [DocumentColorClientCapabilities] -> Doc ann #
Pretty DocumentColorOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DocumentColorOptions Methods pretty :: DocumentColorOptions -> Doc ann # prettyList :: [DocumentColorOptions] -> Doc ann #
Pretty DocumentColorParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DocumentColorParams Methods pretty :: DocumentColorParams -> Doc ann # prettyList :: [DocumentColorParams] -> Doc ann #
Pretty DocumentColorRegistrationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DocumentColorRegistrationOptions Methods pretty :: DocumentColorRegistrationOptions -> Doc ann # prettyList :: [DocumentColorRegistrationOptions] -> Doc ann #
Pretty DocumentDiagnosticParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DocumentDiagnosticParams Methods pretty :: DocumentDiagnosticParams -> Doc ann # prettyList :: [DocumentDiagnosticParams] -> Doc ann #
Pretty DocumentDiagnosticReport |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DocumentDiagnosticReport Methods pretty :: DocumentDiagnosticReport -> Doc ann # prettyList :: [DocumentDiagnosticReport] -> Doc ann #
Pretty DocumentDiagnosticReportKind |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DocumentDiagnosticReportKind Methods pretty :: DocumentDiagnosticReportKind -> Doc ann # prettyList :: [DocumentDiagnosticReportKind] -> Doc ann #
Pretty DocumentDiagnosticReportPartialResult |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DocumentDiagnosticReportPartialResult Methods pretty :: DocumentDiagnosticReportPartialResult -> Doc ann # prettyList :: [DocumentDiagnosticReportPartialResult] -> Doc ann #
Pretty DocumentFilter |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DocumentFilter Methods pretty :: DocumentFilter -> Doc ann # prettyList :: [DocumentFilter] -> Doc ann #
Pretty DocumentFormattingClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DocumentFormattingClientCapabilities Methods pretty :: DocumentFormattingClientCapabilities -> Doc ann # prettyList :: [DocumentFormattingClientCapabilities] -> Doc ann #
Pretty DocumentFormattingOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DocumentFormattingOptions Methods pretty :: DocumentFormattingOptions -> Doc ann # prettyList :: [DocumentFormattingOptions] -> Doc ann #
Pretty DocumentFormattingParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DocumentFormattingParams Methods pretty :: DocumentFormattingParams -> Doc ann # prettyList :: [DocumentFormattingParams] -> Doc ann #
Pretty DocumentFormattingRegistrationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DocumentFormattingRegistrationOptions Methods pretty :: DocumentFormattingRegistrationOptions -> Doc ann # prettyList :: [DocumentFormattingRegistrationOptions] -> Doc ann #
Pretty DocumentHighlight |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DocumentHighlight Methods pretty :: DocumentHighlight -> Doc ann # prettyList :: [DocumentHighlight] -> Doc ann #
Pretty DocumentHighlightClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DocumentHighlightClientCapabilities Methods pretty :: DocumentHighlightClientCapabilities -> Doc ann # prettyList :: [DocumentHighlightClientCapabilities] -> Doc ann #
Pretty DocumentHighlightKind |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DocumentHighlightKind Methods pretty :: DocumentHighlightKind -> Doc ann # prettyList :: [DocumentHighlightKind] -> Doc ann #
Pretty DocumentHighlightOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DocumentHighlightOptions Methods pretty :: DocumentHighlightOptions -> Doc ann # prettyList :: [DocumentHighlightOptions] -> Doc ann #
Pretty DocumentHighlightParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DocumentHighlightParams Methods pretty :: DocumentHighlightParams -> Doc ann # prettyList :: [DocumentHighlightParams] -> Doc ann #
Pretty DocumentHighlightRegistrationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DocumentHighlightRegistrationOptions Methods pretty :: DocumentHighlightRegistrationOptions -> Doc ann # prettyList :: [DocumentHighlightRegistrationOptions] -> Doc ann #
Pretty DocumentLink |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DocumentLink Methods pretty :: DocumentLink -> Doc ann # prettyList :: [DocumentLink] -> Doc ann #
Pretty DocumentLinkClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DocumentLinkClientCapabilities Methods pretty :: DocumentLinkClientCapabilities -> Doc ann # prettyList :: [DocumentLinkClientCapabilities] -> Doc ann #
Pretty DocumentLinkOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DocumentLinkOptions Methods pretty :: DocumentLinkOptions -> Doc ann # prettyList :: [DocumentLinkOptions] -> Doc ann #
Pretty DocumentLinkParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DocumentLinkParams Methods pretty :: DocumentLinkParams -> Doc ann # prettyList :: [DocumentLinkParams] -> Doc ann #
Pretty DocumentLinkRegistrationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DocumentLinkRegistrationOptions Methods pretty :: DocumentLinkRegistrationOptions -> Doc ann # prettyList :: [DocumentLinkRegistrationOptions] -> Doc ann #
Pretty DocumentOnTypeFormattingClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DocumentOnTypeFormattingClientCapabilities Methods pretty :: DocumentOnTypeFormattingClientCapabilities -> Doc ann # prettyList :: [DocumentOnTypeFormattingClientCapabilities] -> Doc ann #
Pretty DocumentOnTypeFormattingOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DocumentOnTypeFormattingOptions Methods pretty :: DocumentOnTypeFormattingOptions -> Doc ann # prettyList :: [DocumentOnTypeFormattingOptions] -> Doc ann #
Pretty DocumentOnTypeFormattingParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DocumentOnTypeFormattingParams Methods pretty :: DocumentOnTypeFormattingParams -> Doc ann # prettyList :: [DocumentOnTypeFormattingParams] -> Doc ann #
Pretty DocumentOnTypeFormattingRegistrationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DocumentOnTypeFormattingRegistrationOptions Methods pretty :: DocumentOnTypeFormattingRegistrationOptions -> Doc ann # prettyList :: [DocumentOnTypeFormattingRegistrationOptions] -> Doc ann #
Pretty DocumentRangeFormattingClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DocumentRangeFormattingClientCapabilities Methods pretty :: DocumentRangeFormattingClientCapabilities -> Doc ann # prettyList :: [DocumentRangeFormattingClientCapabilities] -> Doc ann #
Pretty DocumentRangeFormattingOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DocumentRangeFormattingOptions Methods pretty :: DocumentRangeFormattingOptions -> Doc ann # prettyList :: [DocumentRangeFormattingOptions] -> Doc ann #
Pretty DocumentRangeFormattingParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DocumentRangeFormattingParams Methods pretty :: DocumentRangeFormattingParams -> Doc ann # prettyList :: [DocumentRangeFormattingParams] -> Doc ann #
Pretty DocumentRangeFormattingRegistrationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DocumentRangeFormattingRegistrationOptions Methods pretty :: DocumentRangeFormattingRegistrationOptions -> Doc ann # prettyList :: [DocumentRangeFormattingRegistrationOptions] -> Doc ann #
Pretty DocumentSelector |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DocumentSelector Methods pretty :: DocumentSelector -> Doc ann # prettyList :: [DocumentSelector] -> Doc ann #
Pretty DocumentSymbol |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DocumentSymbol Methods pretty :: DocumentSymbol -> Doc ann # prettyList :: [DocumentSymbol] -> Doc ann #
Pretty DocumentSymbolClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DocumentSymbolClientCapabilities Methods pretty :: DocumentSymbolClientCapabilities -> Doc ann # prettyList :: [DocumentSymbolClientCapabilities] -> Doc ann #
Pretty DocumentSymbolOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DocumentSymbolOptions Methods pretty :: DocumentSymbolOptions -> Doc ann # prettyList :: [DocumentSymbolOptions] -> Doc ann #
Pretty DocumentSymbolParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DocumentSymbolParams Methods pretty :: DocumentSymbolParams -> Doc ann # prettyList :: [DocumentSymbolParams] -> Doc ann #
Pretty DocumentSymbolRegistrationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DocumentSymbolRegistrationOptions Methods pretty :: DocumentSymbolRegistrationOptions -> Doc ann # prettyList :: [DocumentSymbolRegistrationOptions] -> Doc ann #
Pretty ErrorCodes |
Instance details Defined in Language.LSP.Protocol.Internal.Types.ErrorCodes Methods pretty :: ErrorCodes -> Doc ann # prettyList :: [ErrorCodes] -> Doc ann #
Pretty ExecuteCommandClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.ExecuteCommandClientCapabilities Methods pretty :: ExecuteCommandClientCapabilities -> Doc ann # prettyList :: [ExecuteCommandClientCapabilities] -> Doc ann #
Pretty ExecuteCommandOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.ExecuteCommandOptions Methods pretty :: ExecuteCommandOptions -> Doc ann # prettyList :: [ExecuteCommandOptions] -> Doc ann #
Pretty ExecuteCommandParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.ExecuteCommandParams Methods pretty :: ExecuteCommandParams -> Doc ann # prettyList :: [ExecuteCommandParams] -> Doc ann #
Pretty ExecuteCommandRegistrationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.ExecuteCommandRegistrationOptions Methods pretty :: ExecuteCommandRegistrationOptions -> Doc ann # prettyList :: [ExecuteCommandRegistrationOptions] -> Doc ann #
Pretty ExecutionSummary |
Instance details Defined in Language.LSP.Protocol.Internal.Types.ExecutionSummary Methods pretty :: ExecutionSummary -> Doc ann # prettyList :: [ExecutionSummary] -> Doc ann #
Pretty FailureHandlingKind |
Instance details Defined in Language.LSP.Protocol.Internal.Types.FailureHandlingKind Methods pretty :: FailureHandlingKind -> Doc ann # prettyList :: [FailureHandlingKind] -> Doc ann #
Pretty FileChangeType |
Instance details Defined in Language.LSP.Protocol.Internal.Types.FileChangeType Methods pretty :: FileChangeType -> Doc ann # prettyList :: [FileChangeType] -> Doc ann #
Pretty FileCreate |
Instance details Defined in Language.LSP.Protocol.Internal.Types.FileCreate Methods pretty :: FileCreate -> Doc ann # prettyList :: [FileCreate] -> Doc ann #
Pretty FileDelete |
Instance details Defined in Language.LSP.Protocol.Internal.Types.FileDelete Methods pretty :: FileDelete -> Doc ann # prettyList :: [FileDelete] -> Doc ann #
Pretty FileEvent |
Instance details Defined in Language.LSP.Protocol.Internal.Types.FileEvent Methods pretty :: FileEvent -> Doc ann # prettyList :: [FileEvent] -> Doc ann #
Pretty FileOperationClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.FileOperationClientCapabilities Methods pretty :: FileOperationClientCapabilities -> Doc ann # prettyList :: [FileOperationClientCapabilities] -> Doc ann #
Pretty FileOperationFilter |
Instance details Defined in Language.LSP.Protocol.Internal.Types.FileOperationFilter Methods pretty :: FileOperationFilter -> Doc ann # prettyList :: [FileOperationFilter] -> Doc ann #
Pretty FileOperationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.FileOperationOptions Methods pretty :: FileOperationOptions -> Doc ann # prettyList :: [FileOperationOptions] -> Doc ann #
Pretty FileOperationPattern |
Instance details Defined in Language.LSP.Protocol.Internal.Types.FileOperationPattern Methods pretty :: FileOperationPattern -> Doc ann # prettyList :: [FileOperationPattern] -> Doc ann #
Pretty FileOperationPatternKind |
Instance details Defined in Language.LSP.Protocol.Internal.Types.FileOperationPatternKind Methods pretty :: FileOperationPatternKind -> Doc ann # prettyList :: [FileOperationPatternKind] -> Doc ann #
Pretty FileOperationPatternOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.FileOperationPatternOptions Methods pretty :: FileOperationPatternOptions -> Doc ann # prettyList :: [FileOperationPatternOptions] -> Doc ann #
Pretty FileOperationRegistrationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.FileOperationRegistrationOptions Methods pretty :: FileOperationRegistrationOptions -> Doc ann # prettyList :: [FileOperationRegistrationOptions] -> Doc ann #
Pretty FileRename |
Instance details Defined in Language.LSP.Protocol.Internal.Types.FileRename Methods pretty :: FileRename -> Doc ann # prettyList :: [FileRename] -> Doc ann #
Pretty FileSystemWatcher |
Instance details Defined in Language.LSP.Protocol.Internal.Types.FileSystemWatcher Methods pretty :: FileSystemWatcher -> Doc ann # prettyList :: [FileSystemWatcher] -> Doc ann #
Pretty FoldingRange |
Instance details Defined in Language.LSP.Protocol.Internal.Types.FoldingRange Methods pretty :: FoldingRange -> Doc ann # prettyList :: [FoldingRange] -> Doc ann #
Pretty FoldingRangeClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.FoldingRangeClientCapabilities Methods pretty :: FoldingRangeClientCapabilities -> Doc ann # prettyList :: [FoldingRangeClientCapabilities] -> Doc ann #
Pretty FoldingRangeKind |
Instance details Defined in Language.LSP.Protocol.Internal.Types.FoldingRangeKind Methods pretty :: FoldingRangeKind -> Doc ann # prettyList :: [FoldingRangeKind] -> Doc ann #
Pretty FoldingRangeOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.FoldingRangeOptions Methods pretty :: FoldingRangeOptions -> Doc ann # prettyList :: [FoldingRangeOptions] -> Doc ann #
Pretty FoldingRangeParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.FoldingRangeParams Methods pretty :: FoldingRangeParams -> Doc ann # prettyList :: [FoldingRangeParams] -> Doc ann #
Pretty FoldingRangeRegistrationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.FoldingRangeRegistrationOptions Methods pretty :: FoldingRangeRegistrationOptions -> Doc ann # prettyList :: [FoldingRangeRegistrationOptions] -> Doc ann #
Pretty FormattingOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.FormattingOptions Methods pretty :: FormattingOptions -> Doc ann # prettyList :: [FormattingOptions] -> Doc ann #
Pretty FullDocumentDiagnosticReport |
Instance details Defined in Language.LSP.Protocol.Internal.Types.FullDocumentDiagnosticReport Methods pretty :: FullDocumentDiagnosticReport -> Doc ann # prettyList :: [FullDocumentDiagnosticReport] -> Doc ann #
Pretty GeneralClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.GeneralClientCapabilities Methods pretty :: GeneralClientCapabilities -> Doc ann # prettyList :: [GeneralClientCapabilities] -> Doc ann #
Pretty GlobPattern |
Instance details Defined in Language.LSP.Protocol.Internal.Types.GlobPattern Methods pretty :: GlobPattern -> Doc ann # prettyList :: [GlobPattern] -> Doc ann #
Pretty Hover |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Hover Methods pretty :: Hover -> Doc ann # prettyList :: [Hover] -> Doc ann #
Pretty HoverClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.HoverClientCapabilities Methods pretty :: HoverClientCapabilities -> Doc ann # prettyList :: [HoverClientCapabilities] -> Doc ann #
Pretty HoverOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.HoverOptions Methods pretty :: HoverOptions -> Doc ann # prettyList :: [HoverOptions] -> Doc ann #
Pretty HoverParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.HoverParams Methods pretty :: HoverParams -> Doc ann # prettyList :: [HoverParams] -> Doc ann #
Pretty HoverRegistrationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.HoverRegistrationOptions Methods pretty :: HoverRegistrationOptions -> Doc ann # prettyList :: [HoverRegistrationOptions] -> Doc ann #
Pretty ImplementationClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.ImplementationClientCapabilities Methods pretty :: ImplementationClientCapabilities -> Doc ann # prettyList :: [ImplementationClientCapabilities] -> Doc ann #
Pretty ImplementationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.ImplementationOptions Methods pretty :: ImplementationOptions -> Doc ann # prettyList :: [ImplementationOptions] -> Doc ann #
Pretty ImplementationParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.ImplementationParams Methods pretty :: ImplementationParams -> Doc ann # prettyList :: [ImplementationParams] -> Doc ann #
Pretty ImplementationRegistrationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.ImplementationRegistrationOptions Methods pretty :: ImplementationRegistrationOptions -> Doc ann # prettyList :: [ImplementationRegistrationOptions] -> Doc ann #
Pretty InitializeError |
Instance details Defined in Language.LSP.Protocol.Internal.Types.InitializeError Methods pretty :: InitializeError -> Doc ann # prettyList :: [InitializeError] -> Doc ann #
Pretty InitializeParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.InitializeParams Methods pretty :: InitializeParams -> Doc ann # prettyList :: [InitializeParams] -> Doc ann #
Pretty InitializeResult |
Instance details Defined in Language.LSP.Protocol.Internal.Types.InitializeResult Methods pretty :: InitializeResult -> Doc ann # prettyList :: [InitializeResult] -> Doc ann #
Pretty InitializedParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.InitializedParams Methods pretty :: InitializedParams -> Doc ann # prettyList :: [InitializedParams] -> Doc ann #
Pretty InlayHint |
Instance details Defined in Language.LSP.Protocol.Internal.Types.InlayHint Methods pretty :: InlayHint -> Doc ann # prettyList :: [InlayHint] -> Doc ann #
Pretty InlayHintClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.InlayHintClientCapabilities Methods pretty :: InlayHintClientCapabilities -> Doc ann # prettyList :: [InlayHintClientCapabilities] -> Doc ann #
Pretty InlayHintKind |
Instance details Defined in Language.LSP.Protocol.Internal.Types.InlayHintKind Methods pretty :: InlayHintKind -> Doc ann # prettyList :: [InlayHintKind] -> Doc ann #
Pretty InlayHintLabelPart |
Instance details Defined in Language.LSP.Protocol.Internal.Types.InlayHintLabelPart Methods pretty :: InlayHintLabelPart -> Doc ann # prettyList :: [InlayHintLabelPart] -> Doc ann #
Pretty InlayHintOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.InlayHintOptions Methods pretty :: InlayHintOptions -> Doc ann # prettyList :: [InlayHintOptions] -> Doc ann #
Pretty InlayHintParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.InlayHintParams Methods pretty :: InlayHintParams -> Doc ann # prettyList :: [InlayHintParams] -> Doc ann #
Pretty InlayHintRegistrationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.InlayHintRegistrationOptions Methods pretty :: InlayHintRegistrationOptions -> Doc ann # prettyList :: [InlayHintRegistrationOptions] -> Doc ann #
Pretty InlayHintWorkspaceClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.InlayHintWorkspaceClientCapabilities Methods pretty :: InlayHintWorkspaceClientCapabilities -> Doc ann # prettyList :: [InlayHintWorkspaceClientCapabilities] -> Doc ann #
Pretty InlineValue |
Instance details Defined in Language.LSP.Protocol.Internal.Types.InlineValue Methods pretty :: InlineValue -> Doc ann # prettyList :: [InlineValue] -> Doc ann #
Pretty InlineValueClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.InlineValueClientCapabilities Methods pretty :: InlineValueClientCapabilities -> Doc ann # prettyList :: [InlineValueClientCapabilities] -> Doc ann #
Pretty InlineValueContext |
Instance details Defined in Language.LSP.Protocol.Internal.Types.InlineValueContext Methods pretty :: InlineValueContext -> Doc ann # prettyList :: [InlineValueContext] -> Doc ann #
Pretty InlineValueEvaluatableExpression |
Instance details Defined in Language.LSP.Protocol.Internal.Types.InlineValueEvaluatableExpression Methods pretty :: InlineValueEvaluatableExpression -> Doc ann # prettyList :: [InlineValueEvaluatableExpression] -> Doc ann #
Pretty InlineValueOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.InlineValueOptions Methods pretty :: InlineValueOptions -> Doc ann # prettyList :: [InlineValueOptions] -> Doc ann #
Pretty InlineValueParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.InlineValueParams Methods pretty :: InlineValueParams -> Doc ann # prettyList :: [InlineValueParams] -> Doc ann #
Pretty InlineValueRegistrationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.InlineValueRegistrationOptions Methods pretty :: InlineValueRegistrationOptions -> Doc ann # prettyList :: [InlineValueRegistrationOptions] -> Doc ann #
Pretty InlineValueText |
Instance details Defined in Language.LSP.Protocol.Internal.Types.InlineValueText Methods pretty :: InlineValueText -> Doc ann # prettyList :: [InlineValueText] -> Doc ann #
Pretty InlineValueVariableLookup |
Instance details Defined in Language.LSP.Protocol.Internal.Types.InlineValueVariableLookup Methods pretty :: InlineValueVariableLookup -> Doc ann # prettyList :: [InlineValueVariableLookup] -> Doc ann #
Pretty InlineValueWorkspaceClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.InlineValueWorkspaceClientCapabilities Methods pretty :: InlineValueWorkspaceClientCapabilities -> Doc ann # prettyList :: [InlineValueWorkspaceClientCapabilities] -> Doc ann #
Pretty InsertReplaceEdit |
Instance details Defined in Language.LSP.Protocol.Internal.Types.InsertReplaceEdit Methods pretty :: InsertReplaceEdit -> Doc ann # prettyList :: [InsertReplaceEdit] -> Doc ann #
Pretty InsertTextFormat |
Instance details Defined in Language.LSP.Protocol.Internal.Types.InsertTextFormat Methods pretty :: InsertTextFormat -> Doc ann # prettyList :: [InsertTextFormat] -> Doc ann #
Pretty InsertTextMode |
Instance details Defined in Language.LSP.Protocol.Internal.Types.InsertTextMode Methods pretty :: InsertTextMode -> Doc ann # prettyList :: [InsertTextMode] -> Doc ann #
Pretty LSPErrorCodes |
Instance details Defined in Language.LSP.Protocol.Internal.Types.LSPErrorCodes Methods pretty :: LSPErrorCodes -> Doc ann # prettyList :: [LSPErrorCodes] -> Doc ann #
Pretty LinkedEditingRangeClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.LinkedEditingRangeClientCapabilities Methods pretty :: LinkedEditingRangeClientCapabilities -> Doc ann # prettyList :: [LinkedEditingRangeClientCapabilities] -> Doc ann #
Pretty LinkedEditingRangeOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.LinkedEditingRangeOptions Methods pretty :: LinkedEditingRangeOptions -> Doc ann # prettyList :: [LinkedEditingRangeOptions] -> Doc ann #
Pretty LinkedEditingRangeParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.LinkedEditingRangeParams Methods pretty :: LinkedEditingRangeParams -> Doc ann # prettyList :: [LinkedEditingRangeParams] -> Doc ann #
Pretty LinkedEditingRangeRegistrationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.LinkedEditingRangeRegistrationOptions Methods pretty :: LinkedEditingRangeRegistrationOptions -> Doc ann # prettyList :: [LinkedEditingRangeRegistrationOptions] -> Doc ann #
Pretty LinkedEditingRanges |
Instance details Defined in Language.LSP.Protocol.Internal.Types.LinkedEditingRanges Methods pretty :: LinkedEditingRanges -> Doc ann # prettyList :: [LinkedEditingRanges] -> Doc ann #
Pretty Location |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Location Methods pretty :: Location -> Doc ann # prettyList :: [Location] -> Doc ann #
Pretty LocationLink |
Instance details Defined in Language.LSP.Protocol.Internal.Types.LocationLink Methods pretty :: LocationLink -> Doc ann # prettyList :: [LocationLink] -> Doc ann #
Pretty LogMessageParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.LogMessageParams Methods pretty :: LogMessageParams -> Doc ann # prettyList :: [LogMessageParams] -> Doc ann #
Pretty LogTraceParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.LogTraceParams Methods pretty :: LogTraceParams -> Doc ann # prettyList :: [LogTraceParams] -> Doc ann #
Pretty MarkdownClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.MarkdownClientCapabilities Methods pretty :: MarkdownClientCapabilities -> Doc ann # prettyList :: [MarkdownClientCapabilities] -> Doc ann #
Pretty MarkedString |
Instance details Defined in Language.LSP.Protocol.Internal.Types.MarkedString Methods pretty :: MarkedString -> Doc ann # prettyList :: [MarkedString] -> Doc ann #
Pretty MarkupContent |
Instance details Defined in Language.LSP.Protocol.Internal.Types.MarkupContent Methods pretty :: MarkupContent -> Doc ann # prettyList :: [MarkupContent] -> Doc ann #
Pretty MarkupKind |
Instance details Defined in Language.LSP.Protocol.Internal.Types.MarkupKind Methods pretty :: MarkupKind -> Doc ann # prettyList :: [MarkupKind] -> Doc ann #
Pretty MessageActionItem |
Instance details Defined in Language.LSP.Protocol.Internal.Types.MessageActionItem Methods pretty :: MessageActionItem -> Doc ann # prettyList :: [MessageActionItem] -> Doc ann #
Pretty MessageType |
Instance details Defined in Language.LSP.Protocol.Internal.Types.MessageType Methods pretty :: MessageType -> Doc ann # prettyList :: [MessageType] -> Doc ann #
Pretty Moniker |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Moniker Methods pretty :: Moniker -> Doc ann # prettyList :: [Moniker] -> Doc ann #
Pretty MonikerClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.MonikerClientCapabilities Methods pretty :: MonikerClientCapabilities -> Doc ann # prettyList :: [MonikerClientCapabilities] -> Doc ann #
Pretty MonikerKind |
Instance details Defined in Language.LSP.Protocol.Internal.Types.MonikerKind Methods pretty :: MonikerKind -> Doc ann # prettyList :: [MonikerKind] -> Doc ann #
Pretty MonikerOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.MonikerOptions Methods pretty :: MonikerOptions -> Doc ann # prettyList :: [MonikerOptions] -> Doc ann #
Pretty MonikerParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.MonikerParams Methods pretty :: MonikerParams -> Doc ann # prettyList :: [MonikerParams] -> Doc ann #
Pretty MonikerRegistrationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.MonikerRegistrationOptions Methods pretty :: MonikerRegistrationOptions -> Doc ann # prettyList :: [MonikerRegistrationOptions] -> Doc ann #
Pretty NotebookCell |
Instance details Defined in Language.LSP.Protocol.Internal.Types.NotebookCell Methods pretty :: NotebookCell -> Doc ann # prettyList :: [NotebookCell] -> Doc ann #
Pretty NotebookCellArrayChange |
Instance details Defined in Language.LSP.Protocol.Internal.Types.NotebookCellArrayChange Methods pretty :: NotebookCellArrayChange -> Doc ann # prettyList :: [NotebookCellArrayChange] -> Doc ann #
Pretty NotebookCellKind |
Instance details Defined in Language.LSP.Protocol.Internal.Types.NotebookCellKind Methods pretty :: NotebookCellKind -> Doc ann # prettyList :: [NotebookCellKind] -> Doc ann #
Pretty NotebookCellTextDocumentFilter |
Instance details Defined in Language.LSP.Protocol.Internal.Types.NotebookCellTextDocumentFilter Methods pretty :: NotebookCellTextDocumentFilter -> Doc ann # prettyList :: [NotebookCellTextDocumentFilter] -> Doc ann #
Pretty NotebookDocument |
Instance details Defined in Language.LSP.Protocol.Internal.Types.NotebookDocument Methods pretty :: NotebookDocument -> Doc ann # prettyList :: [NotebookDocument] -> Doc ann #
Pretty NotebookDocumentChangeEvent |
Instance details Defined in Language.LSP.Protocol.Internal.Types.NotebookDocumentChangeEvent Methods pretty :: NotebookDocumentChangeEvent -> Doc ann # prettyList :: [NotebookDocumentChangeEvent] -> Doc ann #
Pretty NotebookDocumentClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.NotebookDocumentClientCapabilities Methods pretty :: NotebookDocumentClientCapabilities -> Doc ann # prettyList :: [NotebookDocumentClientCapabilities] -> Doc ann #
Pretty NotebookDocumentFilter |
Instance details Defined in Language.LSP.Protocol.Internal.Types.NotebookDocumentFilter Methods pretty :: NotebookDocumentFilter -> Doc ann # prettyList :: [NotebookDocumentFilter] -> Doc ann #
Pretty NotebookDocumentIdentifier |
Instance details Defined in Language.LSP.Protocol.Internal.Types.NotebookDocumentIdentifier Methods pretty :: NotebookDocumentIdentifier -> Doc ann # prettyList :: [NotebookDocumentIdentifier] -> Doc ann #
Pretty NotebookDocumentSyncClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.NotebookDocumentSyncClientCapabilities Methods pretty :: NotebookDocumentSyncClientCapabilities -> Doc ann # prettyList :: [NotebookDocumentSyncClientCapabilities] -> Doc ann #
Pretty NotebookDocumentSyncOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.NotebookDocumentSyncOptions Methods pretty :: NotebookDocumentSyncOptions -> Doc ann # prettyList :: [NotebookDocumentSyncOptions] -> Doc ann #
Pretty NotebookDocumentSyncRegistrationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.NotebookDocumentSyncRegistrationOptions Methods pretty :: NotebookDocumentSyncRegistrationOptions -> Doc ann # prettyList :: [NotebookDocumentSyncRegistrationOptions] -> Doc ann #
Pretty OptionalVersionedTextDocumentIdentifier |
Instance details Defined in Language.LSP.Protocol.Internal.Types.OptionalVersionedTextDocumentIdentifier Methods pretty :: OptionalVersionedTextDocumentIdentifier -> Doc ann # prettyList :: [OptionalVersionedTextDocumentIdentifier] -> Doc ann #
Pretty ParameterInformation |
Instance details Defined in Language.LSP.Protocol.Internal.Types.ParameterInformation Methods pretty :: ParameterInformation -> Doc ann # prettyList :: [ParameterInformation] -> Doc ann #
Pretty PartialResultParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.PartialResultParams Methods pretty :: PartialResultParams -> Doc ann # prettyList :: [PartialResultParams] -> Doc ann #
Pretty Pattern |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Pattern Methods pretty :: Pattern -> Doc ann # prettyList :: [Pattern] -> Doc ann #
Pretty Position |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Position Methods pretty :: Position -> Doc ann # prettyList :: [Position] -> Doc ann #
Pretty PositionEncodingKind |
Instance details Defined in Language.LSP.Protocol.Internal.Types.PositionEncodingKind Methods pretty :: PositionEncodingKind -> Doc ann # prettyList :: [PositionEncodingKind] -> Doc ann #
Pretty PrepareRenameParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.PrepareRenameParams Methods pretty :: PrepareRenameParams -> Doc ann # prettyList :: [PrepareRenameParams] -> Doc ann #
Pretty PrepareRenameResult |
Instance details Defined in Language.LSP.Protocol.Internal.Types.PrepareRenameResult Methods pretty :: PrepareRenameResult -> Doc ann # prettyList :: [PrepareRenameResult] -> Doc ann #
Pretty PrepareSupportDefaultBehavior |
Instance details Defined in Language.LSP.Protocol.Internal.Types.PrepareSupportDefaultBehavior Methods pretty :: PrepareSupportDefaultBehavior -> Doc ann # prettyList :: [PrepareSupportDefaultBehavior] -> Doc ann #
Pretty PreviousResultId |
Instance details Defined in Language.LSP.Protocol.Internal.Types.PreviousResultId Methods pretty :: PreviousResultId -> Doc ann # prettyList :: [PreviousResultId] -> Doc ann #
Pretty ProgressParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.ProgressParams Methods pretty :: ProgressParams -> Doc ann # prettyList :: [ProgressParams] -> Doc ann #
Pretty ProgressToken |
Instance details Defined in Language.LSP.Protocol.Internal.Types.ProgressToken Methods pretty :: ProgressToken -> Doc ann # prettyList :: [ProgressToken] -> Doc ann #
Pretty PublishDiagnosticsClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.PublishDiagnosticsClientCapabilities Methods pretty :: PublishDiagnosticsClientCapabilities -> Doc ann # prettyList :: [PublishDiagnosticsClientCapabilities] -> Doc ann #
Pretty PublishDiagnosticsParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.PublishDiagnosticsParams Methods pretty :: PublishDiagnosticsParams -> Doc ann # prettyList :: [PublishDiagnosticsParams] -> Doc ann #
Pretty Range |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Range Methods pretty :: Range -> Doc ann # prettyList :: [Range] -> Doc ann #
Pretty ReferenceClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.ReferenceClientCapabilities Methods pretty :: ReferenceClientCapabilities -> Doc ann # prettyList :: [ReferenceClientCapabilities] -> Doc ann #
Pretty ReferenceContext |
Instance details Defined in Language.LSP.Protocol.Internal.Types.ReferenceContext Methods pretty :: ReferenceContext -> Doc ann # prettyList :: [ReferenceContext] -> Doc ann #
Pretty ReferenceOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.ReferenceOptions Methods pretty :: ReferenceOptions -> Doc ann # prettyList :: [ReferenceOptions] -> Doc ann #
Pretty ReferenceParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.ReferenceParams Methods pretty :: ReferenceParams -> Doc ann # prettyList :: [ReferenceParams] -> Doc ann #
Pretty ReferenceRegistrationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.ReferenceRegistrationOptions Methods pretty :: ReferenceRegistrationOptions -> Doc ann # prettyList :: [ReferenceRegistrationOptions] -> Doc ann #
Pretty Registration |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Registration Methods pretty :: Registration -> Doc ann # prettyList :: [Registration] -> Doc ann #
Pretty RegistrationParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.RegistrationParams Methods pretty :: RegistrationParams -> Doc ann # prettyList :: [RegistrationParams] -> Doc ann #
Pretty RegularExpressionsClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.RegularExpressionsClientCapabilities Methods pretty :: RegularExpressionsClientCapabilities -> Doc ann # prettyList :: [RegularExpressionsClientCapabilities] -> Doc ann #
Pretty RelatedFullDocumentDiagnosticReport |
Instance details Defined in Language.LSP.Protocol.Internal.Types.RelatedFullDocumentDiagnosticReport Methods pretty :: RelatedFullDocumentDiagnosticReport -> Doc ann # prettyList :: [RelatedFullDocumentDiagnosticReport] -> Doc ann #
Pretty RelatedUnchangedDocumentDiagnosticReport |
Instance details Defined in Language.LSP.Protocol.Internal.Types.RelatedUnchangedDocumentDiagnosticReport Methods pretty :: RelatedUnchangedDocumentDiagnosticReport -> Doc ann # prettyList :: [RelatedUnchangedDocumentDiagnosticReport] -> Doc ann #
Pretty RelativePattern |
Instance details Defined in Language.LSP.Protocol.Internal.Types.RelativePattern Methods pretty :: RelativePattern -> Doc ann # prettyList :: [RelativePattern] -> Doc ann #
Pretty RenameClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.RenameClientCapabilities Methods pretty :: RenameClientCapabilities -> Doc ann # prettyList :: [RenameClientCapabilities] -> Doc ann #
Pretty RenameFile |
Instance details Defined in Language.LSP.Protocol.Internal.Types.RenameFile Methods pretty :: RenameFile -> Doc ann # prettyList :: [RenameFile] -> Doc ann #
Pretty RenameFileOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.RenameFileOptions Methods pretty :: RenameFileOptions -> Doc ann # prettyList :: [RenameFileOptions] -> Doc ann #
Pretty RenameFilesParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.RenameFilesParams Methods pretty :: RenameFilesParams -> Doc ann # prettyList :: [RenameFilesParams] -> Doc ann #
Pretty RenameOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.RenameOptions Methods pretty :: RenameOptions -> Doc ann # prettyList :: [RenameOptions] -> Doc ann #
Pretty RenameParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.RenameParams Methods pretty :: RenameParams -> Doc ann # prettyList :: [RenameParams] -> Doc ann #
Pretty RenameRegistrationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.RenameRegistrationOptions Methods pretty :: RenameRegistrationOptions -> Doc ann # prettyList :: [RenameRegistrationOptions] -> Doc ann #
Pretty ResourceOperation |
Instance details Defined in Language.LSP.Protocol.Internal.Types.ResourceOperation Methods pretty :: ResourceOperation -> Doc ann # prettyList :: [ResourceOperation] -> Doc ann #
Pretty ResourceOperationKind |
Instance details Defined in Language.LSP.Protocol.Internal.Types.ResourceOperationKind Methods pretty :: ResourceOperationKind -> Doc ann # prettyList :: [ResourceOperationKind] -> Doc ann #
Pretty SaveOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.SaveOptions Methods pretty :: SaveOptions -> Doc ann # prettyList :: [SaveOptions] -> Doc ann #
Pretty SelectionRange |
Instance details Defined in Language.LSP.Protocol.Internal.Types.SelectionRange Methods pretty :: SelectionRange -> Doc ann # prettyList :: [SelectionRange] -> Doc ann #
Pretty SelectionRangeClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.SelectionRangeClientCapabilities Methods pretty :: SelectionRangeClientCapabilities -> Doc ann # prettyList :: [SelectionRangeClientCapabilities] -> Doc ann #
Pretty SelectionRangeOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.SelectionRangeOptions Methods pretty :: SelectionRangeOptions -> Doc ann # prettyList :: [SelectionRangeOptions] -> Doc ann #
Pretty SelectionRangeParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.SelectionRangeParams Methods pretty :: SelectionRangeParams -> Doc ann # prettyList :: [SelectionRangeParams] -> Doc ann #
Pretty SelectionRangeRegistrationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.SelectionRangeRegistrationOptions Methods pretty :: SelectionRangeRegistrationOptions -> Doc ann # prettyList :: [SelectionRangeRegistrationOptions] -> Doc ann #
Pretty SemanticTokenModifiers |
Instance details Defined in Language.LSP.Protocol.Internal.Types.SemanticTokenModifiers Methods pretty :: SemanticTokenModifiers -> Doc ann # prettyList :: [SemanticTokenModifiers] -> Doc ann #
Pretty SemanticTokenTypes |
Instance details Defined in Language.LSP.Protocol.Internal.Types.SemanticTokenTypes Methods pretty :: SemanticTokenTypes -> Doc ann # prettyList :: [SemanticTokenTypes] -> Doc ann #
Pretty SemanticTokens |
Instance details Defined in Language.LSP.Protocol.Internal.Types.SemanticTokens Methods pretty :: SemanticTokens -> Doc ann # prettyList :: [SemanticTokens] -> Doc ann #
Pretty SemanticTokensClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.SemanticTokensClientCapabilities Methods pretty :: SemanticTokensClientCapabilities -> Doc ann # prettyList :: [SemanticTokensClientCapabilities] -> Doc ann #
Pretty SemanticTokensDelta |
Instance details Defined in Language.LSP.Protocol.Internal.Types.SemanticTokensDelta Methods pretty :: SemanticTokensDelta -> Doc ann # prettyList :: [SemanticTokensDelta] -> Doc ann #
Pretty SemanticTokensDeltaParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.SemanticTokensDeltaParams Methods pretty :: SemanticTokensDeltaParams -> Doc ann # prettyList :: [SemanticTokensDeltaParams] -> Doc ann #
Pretty SemanticTokensDeltaPartialResult |
Instance details Defined in Language.LSP.Protocol.Internal.Types.SemanticTokensDeltaPartialResult Methods pretty :: SemanticTokensDeltaPartialResult -> Doc ann # prettyList :: [SemanticTokensDeltaPartialResult] -> Doc ann #
Pretty SemanticTokensEdit |
Instance details Defined in Language.LSP.Protocol.Internal.Types.SemanticTokensEdit Methods pretty :: SemanticTokensEdit -> Doc ann # prettyList :: [SemanticTokensEdit] -> Doc ann #
Pretty SemanticTokensLegend |
Instance details Defined in Language.LSP.Protocol.Internal.Types.SemanticTokensLegend Methods pretty :: SemanticTokensLegend -> Doc ann # prettyList :: [SemanticTokensLegend] -> Doc ann #
Pretty SemanticTokensOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.SemanticTokensOptions Methods pretty :: SemanticTokensOptions -> Doc ann # prettyList :: [SemanticTokensOptions] -> Doc ann #
Pretty SemanticTokensParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.SemanticTokensParams Methods pretty :: SemanticTokensParams -> Doc ann # prettyList :: [SemanticTokensParams] -> Doc ann #
Pretty SemanticTokensPartialResult |
Instance details Defined in Language.LSP.Protocol.Internal.Types.SemanticTokensPartialResult Methods pretty :: SemanticTokensPartialResult -> Doc ann # prettyList :: [SemanticTokensPartialResult] -> Doc ann #
Pretty SemanticTokensRangeParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.SemanticTokensRangeParams Methods pretty :: SemanticTokensRangeParams -> Doc ann # prettyList :: [SemanticTokensRangeParams] -> Doc ann #
Pretty SemanticTokensRegistrationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.SemanticTokensRegistrationOptions Methods pretty :: SemanticTokensRegistrationOptions -> Doc ann # prettyList :: [SemanticTokensRegistrationOptions] -> Doc ann #
Pretty SemanticTokensWorkspaceClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.SemanticTokensWorkspaceClientCapabilities Methods pretty :: SemanticTokensWorkspaceClientCapabilities -> Doc ann # prettyList :: [SemanticTokensWorkspaceClientCapabilities] -> Doc ann #
Pretty ServerCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.ServerCapabilities Methods pretty :: ServerCapabilities -> Doc ann # prettyList :: [ServerCapabilities] -> Doc ann #
Pretty SetTraceParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.SetTraceParams Methods pretty :: SetTraceParams -> Doc ann # prettyList :: [SetTraceParams] -> Doc ann #
Pretty ShowDocumentClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.ShowDocumentClientCapabilities Methods pretty :: ShowDocumentClientCapabilities -> Doc ann # prettyList :: [ShowDocumentClientCapabilities] -> Doc ann #
Pretty ShowDocumentParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.ShowDocumentParams Methods pretty :: ShowDocumentParams -> Doc ann # prettyList :: [ShowDocumentParams] -> Doc ann #
Pretty ShowDocumentResult |
Instance details Defined in Language.LSP.Protocol.Internal.Types.ShowDocumentResult Methods pretty :: ShowDocumentResult -> Doc ann # prettyList :: [ShowDocumentResult] -> Doc ann #
Pretty ShowMessageParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.ShowMessageParams Methods pretty :: ShowMessageParams -> Doc ann # prettyList :: [ShowMessageParams] -> Doc ann #
Pretty ShowMessageRequestClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.ShowMessageRequestClientCapabilities Methods pretty :: ShowMessageRequestClientCapabilities -> Doc ann # prettyList :: [ShowMessageRequestClientCapabilities] -> Doc ann #
Pretty ShowMessageRequestParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.ShowMessageRequestParams Methods pretty :: ShowMessageRequestParams -> Doc ann # prettyList :: [ShowMessageRequestParams] -> Doc ann #
Pretty SignatureHelp |
Instance details Defined in Language.LSP.Protocol.Internal.Types.SignatureHelp Methods pretty :: SignatureHelp -> Doc ann # prettyList :: [SignatureHelp] -> Doc ann #
Pretty SignatureHelpClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.SignatureHelpClientCapabilities Methods pretty :: SignatureHelpClientCapabilities -> Doc ann # prettyList :: [SignatureHelpClientCapabilities] -> Doc ann #
Pretty SignatureHelpContext |
Instance details Defined in Language.LSP.Protocol.Internal.Types.SignatureHelpContext Methods pretty :: SignatureHelpContext -> Doc ann # prettyList :: [SignatureHelpContext] -> Doc ann #
Pretty SignatureHelpOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.SignatureHelpOptions Methods pretty :: SignatureHelpOptions -> Doc ann # prettyList :: [SignatureHelpOptions] -> Doc ann #
Pretty SignatureHelpParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.SignatureHelpParams Methods pretty :: SignatureHelpParams -> Doc ann # prettyList :: [SignatureHelpParams] -> Doc ann #
Pretty SignatureHelpRegistrationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.SignatureHelpRegistrationOptions Methods pretty :: SignatureHelpRegistrationOptions -> Doc ann # prettyList :: [SignatureHelpRegistrationOptions] -> Doc ann #
Pretty SignatureHelpTriggerKind |
Instance details Defined in Language.LSP.Protocol.Internal.Types.SignatureHelpTriggerKind Methods pretty :: SignatureHelpTriggerKind -> Doc ann # prettyList :: [SignatureHelpTriggerKind] -> Doc ann #
Pretty SignatureInformation |
Instance details Defined in Language.LSP.Protocol.Internal.Types.SignatureInformation Methods pretty :: SignatureInformation -> Doc ann # prettyList :: [SignatureInformation] -> Doc ann #
Pretty StaticRegistrationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.StaticRegistrationOptions Methods pretty :: StaticRegistrationOptions -> Doc ann # prettyList :: [StaticRegistrationOptions] -> Doc ann #
Pretty SymbolInformation |
Instance details Defined in Language.LSP.Protocol.Internal.Types.SymbolInformation Methods pretty :: SymbolInformation -> Doc ann # prettyList :: [SymbolInformation] -> Doc ann #
Pretty SymbolKind |
Instance details Defined in Language.LSP.Protocol.Internal.Types.SymbolKind Methods pretty :: SymbolKind -> Doc ann # prettyList :: [SymbolKind] -> Doc ann #
Pretty SymbolTag |
Instance details Defined in Language.LSP.Protocol.Internal.Types.SymbolTag Methods pretty :: SymbolTag -> Doc ann # prettyList :: [SymbolTag] -> Doc ann #
Pretty TextDocumentChangeRegistrationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.TextDocumentChangeRegistrationOptions Methods pretty :: TextDocumentChangeRegistrationOptions -> Doc ann # prettyList :: [TextDocumentChangeRegistrationOptions] -> Doc ann #
Pretty TextDocumentClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.TextDocumentClientCapabilities Methods pretty :: TextDocumentClientCapabilities -> Doc ann # prettyList :: [TextDocumentClientCapabilities] -> Doc ann #
Pretty TextDocumentContentChangeEvent |
Instance details Defined in Language.LSP.Protocol.Internal.Types.TextDocumentContentChangeEvent Methods pretty :: TextDocumentContentChangeEvent -> Doc ann # prettyList :: [TextDocumentContentChangeEvent] -> Doc ann #
Pretty TextDocumentEdit |
Instance details Defined in Language.LSP.Protocol.Internal.Types.TextDocumentEdit Methods pretty :: TextDocumentEdit -> Doc ann # prettyList :: [TextDocumentEdit] -> Doc ann #
Pretty TextDocumentFilter |
Instance details Defined in Language.LSP.Protocol.Internal.Types.TextDocumentFilter Methods pretty :: TextDocumentFilter -> Doc ann # prettyList :: [TextDocumentFilter] -> Doc ann #
Pretty TextDocumentIdentifier |
Instance details Defined in Language.LSP.Protocol.Internal.Types.TextDocumentIdentifier Methods pretty :: TextDocumentIdentifier -> Doc ann # prettyList :: [TextDocumentIdentifier] -> Doc ann #
Pretty TextDocumentItem |
Instance details Defined in Language.LSP.Protocol.Internal.Types.TextDocumentItem Methods pretty :: TextDocumentItem -> Doc ann # prettyList :: [TextDocumentItem] -> Doc ann #
Pretty TextDocumentPositionParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.TextDocumentPositionParams Methods pretty :: TextDocumentPositionParams -> Doc ann # prettyList :: [TextDocumentPositionParams] -> Doc ann #
Pretty TextDocumentRegistrationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.TextDocumentRegistrationOptions Methods pretty :: TextDocumentRegistrationOptions -> Doc ann # prettyList :: [TextDocumentRegistrationOptions] -> Doc ann #
Pretty TextDocumentSaveReason |
Instance details Defined in Language.LSP.Protocol.Internal.Types.TextDocumentSaveReason Methods pretty :: TextDocumentSaveReason -> Doc ann # prettyList :: [TextDocumentSaveReason] -> Doc ann #
Pretty TextDocumentSaveRegistrationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.TextDocumentSaveRegistrationOptions Methods pretty :: TextDocumentSaveRegistrationOptions -> Doc ann # prettyList :: [TextDocumentSaveRegistrationOptions] -> Doc ann #
Pretty TextDocumentSyncClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.TextDocumentSyncClientCapabilities Methods pretty :: TextDocumentSyncClientCapabilities -> Doc ann # prettyList :: [TextDocumentSyncClientCapabilities] -> Doc ann #
Pretty TextDocumentSyncKind |
Instance details Defined in Language.LSP.Protocol.Internal.Types.TextDocumentSyncKind Methods pretty :: TextDocumentSyncKind -> Doc ann # prettyList :: [TextDocumentSyncKind] -> Doc ann #
Pretty TextDocumentSyncOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.TextDocumentSyncOptions Methods pretty :: TextDocumentSyncOptions -> Doc ann # prettyList :: [TextDocumentSyncOptions] -> Doc ann #
Pretty TextEdit |
Instance details Defined in Language.LSP.Protocol.Internal.Types.TextEdit Methods pretty :: TextEdit -> Doc ann # prettyList :: [TextEdit] -> Doc ann #
Pretty TokenFormat |
Instance details Defined in Language.LSP.Protocol.Internal.Types.TokenFormat Methods pretty :: TokenFormat -> Doc ann # prettyList :: [TokenFormat] -> Doc ann #
Pretty TraceValues |
Instance details Defined in Language.LSP.Protocol.Internal.Types.TraceValues Methods pretty :: TraceValues -> Doc ann # prettyList :: [TraceValues] -> Doc ann #
Pretty TypeDefinitionClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.TypeDefinitionClientCapabilities Methods pretty :: TypeDefinitionClientCapabilities -> Doc ann # prettyList :: [TypeDefinitionClientCapabilities] -> Doc ann #
Pretty TypeDefinitionOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.TypeDefinitionOptions Methods pretty :: TypeDefinitionOptions -> Doc ann # prettyList :: [TypeDefinitionOptions] -> Doc ann #
Pretty TypeDefinitionParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.TypeDefinitionParams Methods pretty :: TypeDefinitionParams -> Doc ann # prettyList :: [TypeDefinitionParams] -> Doc ann #
Pretty TypeDefinitionRegistrationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.TypeDefinitionRegistrationOptions Methods pretty :: TypeDefinitionRegistrationOptions -> Doc ann # prettyList :: [TypeDefinitionRegistrationOptions] -> Doc ann #
Pretty TypeHierarchyClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.TypeHierarchyClientCapabilities Methods pretty :: TypeHierarchyClientCapabilities -> Doc ann # prettyList :: [TypeHierarchyClientCapabilities] -> Doc ann #
Pretty TypeHierarchyItem |
Instance details Defined in Language.LSP.Protocol.Internal.Types.TypeHierarchyItem Methods pretty :: TypeHierarchyItem -> Doc ann # prettyList :: [TypeHierarchyItem] -> Doc ann #
Pretty TypeHierarchyOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.TypeHierarchyOptions Methods pretty :: TypeHierarchyOptions -> Doc ann # prettyList :: [TypeHierarchyOptions] -> Doc ann #
Pretty TypeHierarchyPrepareParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.TypeHierarchyPrepareParams Methods pretty :: TypeHierarchyPrepareParams -> Doc ann # prettyList :: [TypeHierarchyPrepareParams] -> Doc ann #
Pretty TypeHierarchyRegistrationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.TypeHierarchyRegistrationOptions Methods pretty :: TypeHierarchyRegistrationOptions -> Doc ann # prettyList :: [TypeHierarchyRegistrationOptions] -> Doc ann #
Pretty TypeHierarchySubtypesParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.TypeHierarchySubtypesParams Methods pretty :: TypeHierarchySubtypesParams -> Doc ann # prettyList :: [TypeHierarchySubtypesParams] -> Doc ann #
Pretty TypeHierarchySupertypesParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.TypeHierarchySupertypesParams Methods pretty :: TypeHierarchySupertypesParams -> Doc ann # prettyList :: [TypeHierarchySupertypesParams] -> Doc ann #
Pretty UInitializeParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.UInitializeParams Methods pretty :: UInitializeParams -> Doc ann # prettyList :: [UInitializeParams] -> Doc ann #
Pretty UnchangedDocumentDiagnosticReport |
Instance details Defined in Language.LSP.Protocol.Internal.Types.UnchangedDocumentDiagnosticReport Methods pretty :: UnchangedDocumentDiagnosticReport -> Doc ann # prettyList :: [UnchangedDocumentDiagnosticReport] -> Doc ann #
Pretty UniquenessLevel |
Instance details Defined in Language.LSP.Protocol.Internal.Types.UniquenessLevel Methods pretty :: UniquenessLevel -> Doc ann # prettyList :: [UniquenessLevel] -> Doc ann #
Pretty Unregistration |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Unregistration Methods pretty :: Unregistration -> Doc ann # prettyList :: [Unregistration] -> Doc ann #
Pretty UnregistrationParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.UnregistrationParams Methods pretty :: UnregistrationParams -> Doc ann # prettyList :: [UnregistrationParams] -> Doc ann #
Pretty VersionedNotebookDocumentIdentifier |
Instance details Defined in Language.LSP.Protocol.Internal.Types.VersionedNotebookDocumentIdentifier Methods pretty :: VersionedNotebookDocumentIdentifier -> Doc ann # prettyList :: [VersionedNotebookDocumentIdentifier] -> Doc ann #
Pretty VersionedTextDocumentIdentifier |
Instance details Defined in Language.LSP.Protocol.Internal.Types.VersionedTextDocumentIdentifier Methods pretty :: VersionedTextDocumentIdentifier -> Doc ann # prettyList :: [VersionedTextDocumentIdentifier] -> Doc ann #
Pretty WatchKind |
Instance details Defined in Language.LSP.Protocol.Internal.Types.WatchKind Methods pretty :: WatchKind -> Doc ann # prettyList :: [WatchKind] -> Doc ann #
Pretty WillSaveTextDocumentParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.WillSaveTextDocumentParams Methods pretty :: WillSaveTextDocumentParams -> Doc ann # prettyList :: [WillSaveTextDocumentParams] -> Doc ann #
Pretty WindowClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.WindowClientCapabilities Methods pretty :: WindowClientCapabilities -> Doc ann # prettyList :: [WindowClientCapabilities] -> Doc ann #
Pretty WorkDoneProgressBegin |
Instance details Defined in Language.LSP.Protocol.Internal.Types.WorkDoneProgressBegin Methods pretty :: WorkDoneProgressBegin -> Doc ann # prettyList :: [WorkDoneProgressBegin] -> Doc ann #
Pretty WorkDoneProgressCancelParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.WorkDoneProgressCancelParams Methods pretty :: WorkDoneProgressCancelParams -> Doc ann # prettyList :: [WorkDoneProgressCancelParams] -> Doc ann #
Pretty WorkDoneProgressCreateParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.WorkDoneProgressCreateParams Methods pretty :: WorkDoneProgressCreateParams -> Doc ann # prettyList :: [WorkDoneProgressCreateParams] -> Doc ann #
Pretty WorkDoneProgressEnd |
Instance details Defined in Language.LSP.Protocol.Internal.Types.WorkDoneProgressEnd Methods pretty :: WorkDoneProgressEnd -> Doc ann # prettyList :: [WorkDoneProgressEnd] -> Doc ann #
Pretty WorkDoneProgressOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.WorkDoneProgressOptions Methods pretty :: WorkDoneProgressOptions -> Doc ann # prettyList :: [WorkDoneProgressOptions] -> Doc ann #
Pretty WorkDoneProgressParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.WorkDoneProgressParams Methods pretty :: WorkDoneProgressParams -> Doc ann # prettyList :: [WorkDoneProgressParams] -> Doc ann #
Pretty WorkDoneProgressReport |
Instance details Defined in Language.LSP.Protocol.Internal.Types.WorkDoneProgressReport Methods pretty :: WorkDoneProgressReport -> Doc ann # prettyList :: [WorkDoneProgressReport] -> Doc ann #
Pretty WorkspaceClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.WorkspaceClientCapabilities Methods pretty :: WorkspaceClientCapabilities -> Doc ann # prettyList :: [WorkspaceClientCapabilities] -> Doc ann #
Pretty WorkspaceDiagnosticParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.WorkspaceDiagnosticParams Methods pretty :: WorkspaceDiagnosticParams -> Doc ann # prettyList :: [WorkspaceDiagnosticParams] -> Doc ann #
Pretty WorkspaceDiagnosticReport |
Instance details Defined in Language.LSP.Protocol.Internal.Types.WorkspaceDiagnosticReport Methods pretty :: WorkspaceDiagnosticReport -> Doc ann # prettyList :: [WorkspaceDiagnosticReport] -> Doc ann #
Pretty WorkspaceDiagnosticReportPartialResult |
Instance details Defined in Language.LSP.Protocol.Internal.Types.WorkspaceDiagnosticReportPartialResult Methods pretty :: WorkspaceDiagnosticReportPartialResult -> Doc ann # prettyList :: [WorkspaceDiagnosticReportPartialResult] -> Doc ann #
Pretty WorkspaceDocumentDiagnosticReport |
Instance details Defined in Language.LSP.Protocol.Internal.Types.WorkspaceDocumentDiagnosticReport Methods pretty :: WorkspaceDocumentDiagnosticReport -> Doc ann # prettyList :: [WorkspaceDocumentDiagnosticReport] -> Doc ann #
Pretty WorkspaceEdit |
Instance details Defined in Language.LSP.Protocol.Internal.Types.WorkspaceEdit Methods pretty :: WorkspaceEdit -> Doc ann # prettyList :: [WorkspaceEdit] -> Doc ann #
Pretty WorkspaceEditClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.WorkspaceEditClientCapabilities Methods pretty :: WorkspaceEditClientCapabilities -> Doc ann # prettyList :: [WorkspaceEditClientCapabilities] -> Doc ann #
Pretty WorkspaceFolder |
Instance details Defined in Language.LSP.Protocol.Internal.Types.WorkspaceFolder Methods pretty :: WorkspaceFolder -> Doc ann # prettyList :: [WorkspaceFolder] -> Doc ann #
Pretty WorkspaceFoldersChangeEvent |
Instance details Defined in Language.LSP.Protocol.Internal.Types.WorkspaceFoldersChangeEvent Methods pretty :: WorkspaceFoldersChangeEvent -> Doc ann # prettyList :: [WorkspaceFoldersChangeEvent] -> Doc ann #
Pretty WorkspaceFoldersInitializeParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.WorkspaceFoldersInitializeParams Methods pretty :: WorkspaceFoldersInitializeParams -> Doc ann # prettyList :: [WorkspaceFoldersInitializeParams] -> Doc ann #
Pretty WorkspaceFoldersServerCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.WorkspaceFoldersServerCapabilities Methods pretty :: WorkspaceFoldersServerCapabilities -> Doc ann # prettyList :: [WorkspaceFoldersServerCapabilities] -> Doc ann #
Pretty WorkspaceFullDocumentDiagnosticReport |
Instance details Defined in Language.LSP.Protocol.Internal.Types.WorkspaceFullDocumentDiagnosticReport Methods pretty :: WorkspaceFullDocumentDiagnosticReport -> Doc ann # prettyList :: [WorkspaceFullDocumentDiagnosticReport] -> Doc ann #
Pretty WorkspaceSymbol |
Instance details Defined in Language.LSP.Protocol.Internal.Types.WorkspaceSymbol Methods pretty :: WorkspaceSymbol -> Doc ann # prettyList :: [WorkspaceSymbol] -> Doc ann #
Pretty WorkspaceSymbolClientCapabilities |
Instance details Defined in Language.LSP.Protocol.Internal.Types.WorkspaceSymbolClientCapabilities Methods pretty :: WorkspaceSymbolClientCapabilities -> Doc ann # prettyList :: [WorkspaceSymbolClientCapabilities] -> Doc ann #
Pretty WorkspaceSymbolOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.WorkspaceSymbolOptions Methods pretty :: WorkspaceSymbolOptions -> Doc ann # prettyList :: [WorkspaceSymbolOptions] -> Doc ann #
Pretty WorkspaceSymbolParams |
Instance details Defined in Language.LSP.Protocol.Internal.Types.WorkspaceSymbolParams Methods pretty :: WorkspaceSymbolParams -> Doc ann # prettyList :: [WorkspaceSymbolParams] -> Doc ann #
Pretty WorkspaceSymbolRegistrationOptions |
Instance details Defined in Language.LSP.Protocol.Internal.Types.WorkspaceSymbolRegistrationOptions Methods pretty :: WorkspaceSymbolRegistrationOptions -> Doc ann # prettyList :: [WorkspaceSymbolRegistrationOptions] -> Doc ann #
Pretty WorkspaceUnchangedDocumentDiagnosticReport |
Instance details Defined in Language.LSP.Protocol.Internal.Types.WorkspaceUnchangedDocumentDiagnosticReport Methods pretty :: WorkspaceUnchangedDocumentDiagnosticReport -> Doc ann # prettyList :: [WorkspaceUnchangedDocumentDiagnosticReport] -> Doc ann #
Pretty SomeClientMethod |
Instance details Defined in Language.LSP.Protocol.Message.Method Methods pretty :: SomeClientMethod -> Doc ann # prettyList :: [SomeClientMethod] -> Doc ann #
Pretty SomeServerMethod |
Instance details Defined in Language.LSP.Protocol.Message.Method Methods pretty :: SomeServerMethod -> Doc ann # prettyList :: [SomeServerMethod] -> Doc ann #
Pretty SomeRegistration |
Instance details Defined in Language.LSP.Protocol.Message.Registration Methods pretty :: SomeRegistration -> Doc ann # prettyList :: [SomeRegistration] -> Doc ann #
Pretty SomeUnregistration |
Instance details Defined in Language.LSP.Protocol.Message.Registration Methods pretty :: SomeUnregistration -> Doc ann # prettyList :: [SomeUnregistration] -> Doc ann #
Pretty NotificationMessage |
Instance details Defined in Language.LSP.Protocol.Message.Types Methods pretty :: NotificationMessage -> Doc ann # prettyList :: [NotificationMessage] -> Doc ann #
Pretty RequestMessage |
Instance details Defined in Language.LSP.Protocol.Message.Types Methods pretty :: RequestMessage -> Doc ann # prettyList :: [RequestMessage] -> Doc ann #
Pretty ResponseError |
Instance details Defined in Language.LSP.Protocol.Message.Types Methods pretty :: ResponseError -> Doc ann # prettyList :: [ResponseError] -> Doc ann #
Pretty ResponseMessage |
Instance details Defined in Language.LSP.Protocol.Message.Types Methods pretty :: ResponseMessage -> Doc ann # prettyList :: [ResponseMessage] -> Doc ann #
Pretty Null |
Instance details Defined in Language.LSP.Protocol.Types.Common Methods pretty :: Null -> Doc ann # prettyList :: [Null] -> Doc ann #
Pretty UInt |
Instance details Defined in Language.LSP.Protocol.Types.Common Methods pretty :: UInt -> Doc ann # prettyList :: [UInt] -> Doc ann #
Pretty NormalizedUri |
Instance details Defined in Language.LSP.Protocol.Types.Uri Methods pretty :: NormalizedUri -> Doc ann # prettyList :: [NormalizedUri] -> Doc ann #
Pretty Uri |
Instance details Defined in Language.LSP.Protocol.Types.Uri Methods pretty :: Uri -> Doc ann # prettyList :: [Uri] -> Doc ann #

Pretty Text

Automatically converts all newlines to ``line``.

    >>> pretty ("hello\nworld" :: Text)
    hello
    world

Note that ``line`` can be undone by ``group``:

    >>> group (pretty ("hello\nworld" :: Text))
    hello world

Manually use ``hardline`` if you definitely want newlines.

Instance details Defined in Prettyprinter.Internal Methods pretty :: Text -> Doc ann # prettyList :: [Text] -> Doc ann #
Pretty Text | (lazy `Doc` instance, identical to the strict version)
Instance details Defined in Prettyprinter.Internal Methods pretty :: Text -> Doc ann # prettyList :: [Text] -> Doc ann #

Pretty Integer

    >>> pretty (2^123 :: Integer)
    10633823966279326983230456482242756608

Instance details Defined in Prettyprinter.Internal Methods pretty :: Integer -> Doc ann # prettyList :: [Integer] -> Doc ann #
Pretty Natural |
Instance details Defined in Prettyprinter.Internal Methods pretty :: Natural -> Doc ann # prettyList :: [Natural] -> Doc ann #

Pretty ()

    >>> pretty ()
    ()

The argument is not used:

    >>> pretty (error "Strict?" :: ())
    ()

Instance details Defined in Prettyprinter.Internal Methods pretty :: () -> Doc ann # prettyList :: [()] -> Doc ann #

Pretty Bool

    >>> pretty True
    True

Instance details Defined in Prettyprinter.Internal Methods pretty :: Bool -> Doc ann # prettyList :: [Bool] -> Doc ann #

Pretty Char

Instead of `(`pretty` 'n')`, consider using ``line`` as a more readable alternative.

    >>> pretty 'f' <> pretty 'o' <> pretty 'o'
    foo
    >>> pretty ("string" :: String)
    string

Instance details Defined in Prettyprinter.Internal Methods pretty :: Char -> Doc ann # prettyList :: [Char] -> Doc ann #

Pretty Double

    >>> pretty (exp 1 :: Double)
    2.71828182845904...

Instance details Defined in Prettyprinter.Internal Methods pretty :: Double -> Doc ann # prettyList :: [Double] -> Doc ann #

Pretty Float

    >>> pretty (pi :: Float)
    3.1415927

Instance details Defined in Prettyprinter.Internal Methods pretty :: Float -> Doc ann # prettyList :: [Float] -> Doc ann #

Pretty Int

    >>> pretty (123 :: Int)
    123

Instance details Defined in Prettyprinter.Internal Methods pretty :: Int -> Doc ann # prettyList :: [Int] -> Doc ann #
Pretty Word |
Instance details Defined in Prettyprinter.Internal Methods pretty :: Word -> Doc ann # prettyList :: [Word] -> Doc ann #

Pretty a => Pretty (Identity a)

    >>> pretty (Identity 1)
    1

Instance details Defined in Prettyprinter.Internal Methods pretty :: Identity a -> Doc ann # prettyList :: [Identity a] -> Doc ann #
Pretty a => Pretty (NonEmpty a) |
Instance details Defined in Prettyprinter.Internal Methods pretty :: NonEmpty a -> Doc ann # prettyList :: [NonEmpty a] -> Doc ann #
Pretty (AString s) |
Instance details Defined in Language.LSP.Protocol.Types.Singletons Methods pretty :: AString s -> Doc ann # prettyList :: [AString s] -> Doc ann #
Pretty (AnInteger n) |
Instance details Defined in Language.LSP.Protocol.Types.Singletons Methods pretty :: AnInteger n -> Doc ann # prettyList :: [AnInteger n] -> Doc ann #

Pretty a => Pretty (Maybe a)

Ignore `Nothing`s, print `Just` contents.

    >>> pretty (Just True)
    True
    >>> braces (pretty (Nothing :: Maybe Bool))
    {}

    >>> pretty [Just 1, Nothing, Just 3, Nothing]
    [1, 3]

Instance details Defined in Prettyprinter.Internal Methods pretty :: Maybe a -> Doc ann # prettyList :: [Maybe a] -> Doc ann #

Pretty a => Pretty [a]

    >>> pretty [1,2,3]
    [1, 2, 3]

Instance details Defined in Prettyprinter.Internal Methods pretty :: [a] -> Doc ann # prettyList :: [[a]] -> Doc ann #
Pretty (LspId m) |
Instance details Defined in Language.LSP.Protocol.Message.LspId Methods pretty :: LspId m -> Doc ann # prettyList :: [LspId m] -> Doc ann #
Pretty (TRegistration m) |
Instance details Defined in Language.LSP.Protocol.Message.Registration Methods pretty :: TRegistration m -> Doc ann # prettyList :: [TRegistration m] -> Doc ann #
Pretty (TUnregistration m) |
Instance details Defined in Language.LSP.Protocol.Message.Registration Methods pretty :: TUnregistration m -> Doc ann # prettyList :: [TUnregistration m] -> Doc ann #
ToJSON (MessageParams m) => Pretty (TNotificationMessage m) |
Instance details Defined in Language.LSP.Protocol.Message.Types Methods pretty :: TNotificationMessage m -> Doc ann # prettyList :: [TNotificationMessage m] -> Doc ann #
ToJSON (MessageParams m) => Pretty (TRequestMessage m) |
Instance details Defined in Language.LSP.Protocol.Message.Types Methods pretty :: TRequestMessage m -> Doc ann # prettyList :: [TRequestMessage m] -> Doc ann #
ToJSON (ErrorData m) => Pretty (TResponseError m) |
Instance details Defined in Language.LSP.Protocol.Message.Types Methods pretty :: TResponseError m -> Doc ann # prettyList :: [TResponseError m] -> Doc ann #
(ToJSON (MessageResult m), ToJSON (ErrorData m)) => Pretty (TResponseMessage m) |
Instance details Defined in Language.LSP.Protocol.Message.Types Methods pretty :: TResponseMessage m -> Doc ann # prettyList :: [TResponseMessage m] -> Doc ann #
(ToJSON a, ToJSON b) => Pretty (a |? b) |
Instance details Defined in Language.LSP.Protocol.Types.Common Methods pretty :: (a |? b) -> Doc ann # prettyList :: [a |? b] -> Doc ann #

(Pretty a1, Pretty a2) => Pretty (a1, a2)

    >>> pretty (123, "hello")
    (123, hello)

Instance details Defined in Prettyprinter.Internal Methods pretty :: (a1, a2) -> Doc ann # prettyList :: [(a1, a2)] -> Doc ann #
Pretty a => Pretty (Const a b) |
Instance details Defined in Prettyprinter.Internal Methods pretty :: Const a b -> Doc ann # prettyList :: [Const a b] -> Doc ann #
KnownSymbol s => Pretty (TCustomMessage s f t) |
Instance details Defined in Language.LSP.Protocol.Message.Types Methods pretty :: TCustomMessage s f t -> Doc ann # prettyList :: [TCustomMessage s f t] -> Doc ann #

(Pretty a1, Pretty a2, Pretty a3) => Pretty (a1, a2, a3)

    >>> pretty (123, "hello", False)
    (123, hello, False)

Instance details Defined in Prettyprinter.Internal Methods pretty :: (a1, a2, a3) -> Doc ann # prettyList :: [(a1, a2, a3)] -> Doc ann #

data Range #

A range in a text document expressed as (zero-based) start and end positions.

If you want to specify a range that contains a line including the line ending character(s) then use an end position denoting the start of the next line. For example: ```ts { start: { line: 5, character: 23 } end : { line 6, character : 0 } } ```

Constructors

Range |

Fields

- _start :: Position

  The range's start position.

- _end :: Position

  The range's end position.

#### Instances

Instances details

FromJSON Range |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Range Methods parseJSON :: Value -> Parser Range # parseJSONList :: Value -> Parser [Range] # omittedField :: Maybe Range #
ToJSON Range |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Range Methods toJSON :: Range -> Value # toEncoding :: Range -> Encoding # toJSONList :: [Range] -> Value # toEncodingList :: [Range] -> Encoding # omitField :: Range -> Bool #
Generic Range |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Range Associated Types type Rep Range :: Type -> Type Methods from :: Range -> Rep Range x to :: Rep Range x -> Range
Show Range |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Range Methods showsPrec :: Int -> Range -> ShowS # show :: Range -> String # showList :: [Range] -> ShowS #
NFData Range |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Range Methods rnf :: Range -> () #
Eq Range |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Range Methods (==) :: Range -> Range -> Bool # (/=) :: Range -> Range -> Bool #
Ord Range |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Range Methods compare :: Range -> Range -> Ordering (<) :: Range -> Range -> Bool (<=) :: Range -> Range -> Bool (>) :: Range -> Range -> Bool (>=) :: Range -> Range -> Bool max :: Range -> Range -> Range min :: Range -> Range -> Range
MapAge Range # |
Instance details Defined in Development.IDE.Core.UseStale Methods mapAgeFrom :: forall (from :: Age) (to :: Age). PositionMap from to -> Tracked to Range -> Maybe (Tracked from Range) # mapAgeTo :: forall (from :: Age) (to :: Age). PositionMap from to -> Tracked from Range -> Maybe (Tracked to Range) #
Hashable Range |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Range Methods hashWithSalt :: Int -> Range -> Int # hash :: Range -> Int #
Pretty Range |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Range Methods pretty :: Range -> Doc ann # prettyList :: [Range] -> Doc ann #
HasEnd Range Position |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods end :: Lens' Range Position #
HasInsert InsertReplaceEdit Range |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods insert :: Lens' InsertReplaceEdit Range #
HasRange AnnotatedTextEdit Range |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods range :: Lens' AnnotatedTextEdit Range #
HasRange CallHierarchyItem Range |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods range :: Lens' CallHierarchyItem Range #
HasRange CodeActionParams Range |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods range :: Lens' CodeActionParams Range #
HasRange CodeLens Range |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods range :: Lens' CodeLens Range #
HasRange ColorInformation Range |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods range :: Lens' ColorInformation Range #
HasRange ColorPresentationParams Range |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods range :: Lens' ColorPresentationParams Range #
HasRange Diagnostic Range |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods range :: Lens' Diagnostic Range #
HasRange DocumentHighlight Range |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods range :: Lens' DocumentHighlight Range #
HasRange DocumentLink Range |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods range :: Lens' DocumentLink Range #
HasRange DocumentRangeFormattingParams Range |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods range :: Lens' DocumentRangeFormattingParams Range #
HasRange DocumentSymbol Range |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods range :: Lens' DocumentSymbol Range #
HasRange InlayHintParams Range |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods range :: Lens' InlayHintParams Range #
HasRange InlineValueEvaluatableExpression Range |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods range :: Lens' InlineValueEvaluatableExpression Range #
HasRange InlineValueParams Range |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods range :: Lens' InlineValueParams Range #
HasRange InlineValueText Range |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods range :: Lens' InlineValueText Range #
HasRange InlineValueVariableLookup Range |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods range :: Lens' InlineValueVariableLookup Range #
HasRange Location Range |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods range :: Lens' Location Range #
HasRange SelectionRange Range |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods range :: Lens' SelectionRange Range #
HasRange SemanticTokensRangeParams Range |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods range :: Lens' SemanticTokensRangeParams Range #
HasRange TextEdit Range |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods range :: Lens' TextEdit Range #
HasRange TypeHierarchyItem Range |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods range :: Lens' TypeHierarchyItem Range #
HasReplace InsertReplaceEdit Range |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods replace :: Lens' InsertReplaceEdit Range #
HasSelectionRange CallHierarchyItem Range |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods selectionRange :: Lens' CallHierarchyItem Range #
HasSelectionRange DocumentSymbol Range |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods selectionRange :: Lens' DocumentSymbol Range #
HasSelectionRange TypeHierarchyItem Range |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods selectionRange :: Lens' TypeHierarchyItem Range #
HasStart Range Position |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods start :: Lens' Range Position #
HasStoppedLocation InlineValueContext Range |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods stoppedLocation :: Lens' InlineValueContext Range #
HasTargetRange LocationLink Range |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods targetRange :: Lens' LocationLink Range #
HasTargetSelectionRange LocationLink Range |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods targetSelectionRange :: Lens' LocationLink Range #
HasFromRanges CallHierarchyIncomingCall [Range] |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods fromRanges :: Lens' CallHierarchyIncomingCall [Range] #
HasFromRanges CallHierarchyOutgoingCall [Range] |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods fromRanges :: Lens' CallHierarchyOutgoingCall [Range] #
HasOriginSelectionRange LocationLink (Maybe Range) |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods originSelectionRange :: Lens' LocationLink (Maybe Range) #
HasRange Hover (Maybe Range) |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods range :: Lens' Hover (Maybe Range) #
HasRanges LinkedEditingRanges [Range] |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods ranges :: Lens' LinkedEditingRanges [Range] #
HasSelection ShowDocumentParams (Maybe Range) |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods selection :: Lens' ShowDocumentParams (Maybe Range) #
type Rep Range |

Instance details

Defined in Language.LSP.Protocol.Internal.Types.Range

type Rep Range = D1 ('MetaData "Range" "Language.LSP.Protocol.Internal.Types.Range" "lsp-types-2.0.2.0-6ldEQfFkAQaDyl5nknNRSX" 'False) (C1 ('MetaCons "Range" 'PrefixI 'True) (S1 ('MetaSel ('Just "_start") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Position) :*: S1 ('MetaSel ('Just "_end") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Position)))

type DiagnosticStore = HashMap NormalizedUri StoreItem #

data NormalizedUri #

A normalized `Uri`.

If you want to use a URI as a map key, use this type. It is important to normalize the percent encoding in the URI since URIs that only differ when it comes to the percent-encoding should be treated as equivalent.

`NormalizedUri` has a cached hash in order to make it especially fast in a hash map.

#### Instances

Instances details

Generic NormalizedUri |
Instance details Defined in Language.LSP.Protocol.Types.Uri Associated Types type Rep NormalizedUri :: Type -> Type Methods from :: NormalizedUri -> Rep NormalizedUri x to :: Rep NormalizedUri x -> NormalizedUri
Read NormalizedUri |
Instance details Defined in Language.LSP.Protocol.Types.Uri Methods readsPrec :: Int -> ReadS NormalizedUri # readList :: ReadS [NormalizedUri] # readPrec :: ReadPrec NormalizedUri # readListPrec :: ReadPrec [NormalizedUri] #
Show NormalizedUri |
Instance details Defined in Language.LSP.Protocol.Types.Uri Methods showsPrec :: Int -> NormalizedUri -> ShowS # show :: NormalizedUri -> String # showList :: [NormalizedUri] -> ShowS #
NFData NormalizedUri |
Instance details Defined in Language.LSP.Protocol.Types.Uri Methods rnf :: NormalizedUri -> () #
Eq NormalizedUri |
Instance details Defined in Language.LSP.Protocol.Types.Uri Methods (==) :: NormalizedUri -> NormalizedUri -> Bool # (/=) :: NormalizedUri -> NormalizedUri -> Bool #
Ord NormalizedUri |

Instance details

Defined in Language.LSP.Protocol.Types.Uri

Methods

compare :: NormalizedUri -> NormalizedUri -> Ordering

(<) :: NormalizedUri -> NormalizedUri -> Bool

(<=) :: NormalizedUri -> NormalizedUri -> Bool

(>) :: NormalizedUri -> NormalizedUri -> Bool

(>=) :: NormalizedUri -> NormalizedUri -> Bool

max :: NormalizedUri -> NormalizedUri -> NormalizedUri

min :: NormalizedUri -> NormalizedUri -> NormalizedUri

Hashable NormalizedUri |
Instance details Defined in Language.LSP.Protocol.Types.Uri Methods hashWithSalt :: Int -> NormalizedUri -> Int # hash :: NormalizedUri -> Int #
Pretty NormalizedUri |
Instance details Defined in Language.LSP.Protocol.Types.Uri Methods pretty :: NormalizedUri -> Doc ann # prettyList :: [NormalizedUri] -> Doc ann #
HasVfsMap VFS (Map NormalizedUri VirtualFile) |
Instance details Defined in Language.LSP.VFS Methods vfsMap :: Lens' VFS (Map NormalizedUri VirtualFile) #
type Rep NormalizedUri |

Instance details

Defined in Language.LSP.Protocol.Types.Uri

type Rep NormalizedUri = D1 ('MetaData "NormalizedUri" "Language.LSP.Protocol.Types.Uri" "lsp-types-2.0.2.0-6ldEQfFkAQaDyl5nknNRSX" 'False) (C1 ('MetaCons "NormalizedUri" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text)))

data NormalizedFilePath #

A file path that is already normalized.

The `NormalizedUri` is cached to avoided repeated normalisation when we need to compute them (which is a lot).

This is one of the most performance critical parts of HLS, do not modify it without profiling.

#### Instances

Instances details

IsString NormalizedFilePath |
Instance details Defined in Language.LSP.Protocol.Types.Uri Methods fromString :: String -> NormalizedFilePath
Generic NormalizedFilePath |
Instance details Defined in Language.LSP.Protocol.Types.Uri Associated Types type Rep NormalizedFilePath :: Type -> Type Methods from :: NormalizedFilePath -> Rep NormalizedFilePath x to :: Rep NormalizedFilePath x -> NormalizedFilePath
Show NormalizedFilePath |
Instance details Defined in Language.LSP.Protocol.Types.Uri Methods showsPrec :: Int -> NormalizedFilePath -> ShowS # show :: NormalizedFilePath -> String # showList :: [NormalizedFilePath] -> ShowS #
Binary NormalizedFilePath |
Instance details Defined in Language.LSP.Protocol.Types.Uri Methods put :: NormalizedFilePath -> Put get :: Get NormalizedFilePath putList :: [NormalizedFilePath] -> Put
NFData NormalizedFilePath |
Instance details Defined in Language.LSP.Protocol.Types.Uri Methods rnf :: NormalizedFilePath -> () #
Eq NormalizedFilePath |
Instance details Defined in Language.LSP.Protocol.Types.Uri Methods (==) :: NormalizedFilePath -> NormalizedFilePath -> Bool # (/=) :: NormalizedFilePath -> NormalizedFilePath -> Bool #
Ord NormalizedFilePath |

Instance details

Defined in Language.LSP.Protocol.Types.Uri

Methods

compare :: NormalizedFilePath -> NormalizedFilePath -> Ordering

(<) :: NormalizedFilePath -> NormalizedFilePath -> Bool

(<=) :: NormalizedFilePath -> NormalizedFilePath -> Bool

(>) :: NormalizedFilePath -> NormalizedFilePath -> Bool

(>=) :: NormalizedFilePath -> NormalizedFilePath -> Bool

max :: NormalizedFilePath -> NormalizedFilePath -> NormalizedFilePath

min :: NormalizedFilePath -> NormalizedFilePath -> NormalizedFilePath

Hashable NormalizedFilePath |
Instance details Defined in Language.LSP.Protocol.Types.Uri Methods hashWithSalt :: Int -> NormalizedFilePath -> Int # hash :: NormalizedFilePath -> Int #
type Rep NormalizedFilePath |

Instance details

Defined in Language.LSP.Protocol.Types.Uri

type Rep NormalizedFilePath = D1 ('MetaData "NormalizedFilePath" "Language.LSP.Protocol.Types.Uri" "lsp-types-2.0.2.0-6ldEQfFkAQaDyl5nknNRSX" 'False) (C1 ('MetaCons "NormalizedFilePath" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 NormalizedUri) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'SourceUnpack 'SourceStrict 'DecidedUnpack) (Rec0 Text)))

newtype Uri #

The `Uri` type in the LSP specification.

Constructors

Uri |

Fields

- getUri :: Text

#### Instances

Instances details

FromJSON Uri |
Instance details Defined in Language.LSP.Protocol.Types.Uri Methods parseJSON :: Value -> Parser Uri # parseJSONList :: Value -> Parser [Uri] # omittedField :: Maybe Uri #
FromJSONKey Uri |
Instance details Defined in Language.LSP.Protocol.Types.Uri Methods fromJSONKey :: FromJSONKeyFunction Uri # fromJSONKeyList :: FromJSONKeyFunction [Uri] #
ToJSON Uri |
Instance details Defined in Language.LSP.Protocol.Types.Uri Methods toJSON :: Uri -> Value # toEncoding :: Uri -> Encoding # toJSONList :: [Uri] -> Value # toEncodingList :: [Uri] -> Encoding # omitField :: Uri -> Bool #
ToJSONKey Uri |
Instance details Defined in Language.LSP.Protocol.Types.Uri Methods toJSONKey :: ToJSONKeyFunction Uri # toJSONKeyList :: ToJSONKeyFunction [Uri] #
Generic Uri |
Instance details Defined in Language.LSP.Protocol.Types.Uri Associated Types type Rep Uri :: Type -> Type Methods from :: Uri -> Rep Uri x to :: Rep Uri x -> Uri
Read Uri |
Instance details Defined in Language.LSP.Protocol.Types.Uri Methods readsPrec :: Int -> ReadS Uri # readList :: ReadS [Uri] # readPrec :: ReadPrec Uri # readListPrec :: ReadPrec [Uri] #
Show Uri |
Instance details Defined in Language.LSP.Protocol.Types.Uri Methods showsPrec :: Int -> Uri -> ShowS # show :: Uri -> String # showList :: [Uri] -> ShowS #
NFData Uri |
Instance details Defined in Language.LSP.Protocol.Types.Uri Methods rnf :: Uri -> () #
Eq Uri |
Instance details Defined in Language.LSP.Protocol.Types.Uri Methods (==) :: Uri -> Uri -> Bool # (/=) :: Uri -> Uri -> Bool #
Ord Uri |
Instance details Defined in Language.LSP.Protocol.Types.Uri Methods compare :: Uri -> Uri -> Ordering (<) :: Uri -> Uri -> Bool (<=) :: Uri -> Uri -> Bool (>) :: Uri -> Uri -> Bool (>=) :: Uri -> Uri -> Bool max :: Uri -> Uri -> Uri min :: Uri -> Uri -> Uri
Hashable Uri |
Instance details Defined in Language.LSP.Protocol.Types.Uri Methods hashWithSalt :: Int -> Uri -> Int # hash :: Uri -> Int #
Pretty Uri |
Instance details Defined in Language.LSP.Protocol.Types.Uri Methods pretty :: Uri -> Doc ann # prettyList :: [Uri] -> Doc ann #
HasDocument NotebookCell Uri |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods document :: Lens' NotebookCell Uri #
HasHref CodeDescription Uri |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods href :: Lens' CodeDescription Uri #
HasNewUri RenameFile Uri |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods newUri :: Lens' RenameFile Uri #
HasOldUri RenameFile Uri |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods oldUri :: Lens' RenameFile Uri #
HasTargetUri LocationLink Uri |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods targetUri :: Lens' LocationLink Uri #
HasUri CallHierarchyItem Uri |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods uri :: Lens' CallHierarchyItem Uri #
HasUri CreateFile Uri |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods uri :: Lens' CreateFile Uri #
HasUri DeleteFile Uri |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods uri :: Lens' DeleteFile Uri #
HasUri FileEvent Uri |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods uri :: Lens' FileEvent Uri #
HasUri Location Uri |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods uri :: Lens' Location Uri #
HasUri NotebookDocument Uri |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods uri :: Lens' NotebookDocument Uri #
HasUri NotebookDocumentIdentifier Uri |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods uri :: Lens' NotebookDocumentIdentifier Uri #
HasUri OptionalVersionedTextDocumentIdentifier Uri |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods uri :: Lens' OptionalVersionedTextDocumentIdentifier Uri #
HasUri PreviousResultId Uri |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods uri :: Lens' PreviousResultId Uri #
HasUri PublishDiagnosticsParams Uri |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods uri :: Lens' PublishDiagnosticsParams Uri #
HasUri ShowDocumentParams Uri |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods uri :: Lens' ShowDocumentParams Uri #
HasUri TextDocumentIdentifier Uri |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods uri :: Lens' TextDocumentIdentifier Uri #
HasUri TextDocumentItem Uri |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods uri :: Lens' TextDocumentItem Uri #
HasUri TypeHierarchyItem Uri |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods uri :: Lens' TypeHierarchyItem Uri #
HasUri VersionedNotebookDocumentIdentifier Uri |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods uri :: Lens' VersionedNotebookDocumentIdentifier Uri #
HasUri VersionedTextDocumentIdentifier Uri |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods uri :: Lens' VersionedTextDocumentIdentifier Uri #
HasUri WorkspaceFolder Uri |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods uri :: Lens' WorkspaceFolder Uri #
HasUri WorkspaceFullDocumentDiagnosticReport Uri |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods uri :: Lens' WorkspaceFullDocumentDiagnosticReport Uri #
HasUri WorkspaceUnchangedDocumentDiagnosticReport Uri |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods uri :: Lens' WorkspaceUnchangedDocumentDiagnosticReport Uri #
HasChanges WorkspaceEdit (Maybe (Map Uri [TextEdit])) |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods changes :: Lens' WorkspaceEdit (Maybe (Map Uri [TextEdit])) #
HasRelatedDocuments RelatedFullDocumentDiagnosticReport (Maybe (Map Uri (FullDocumentDiagnosticReport |? UnchangedDocumentDiagnosticReport))) |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods relatedDocuments :: Lens' RelatedFullDocumentDiagnosticReport (Maybe (Map Uri (FullDocumentDiagnosticReport |? UnchangedDocumentDiagnosticReport))) #
HasRelatedDocuments RelatedUnchangedDocumentDiagnosticReport (Maybe (Map Uri (FullDocumentDiagnosticReport |? UnchangedDocumentDiagnosticReport))) |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods relatedDocuments :: Lens' RelatedUnchangedDocumentDiagnosticReport (Maybe (Map Uri (FullDocumentDiagnosticReport |? UnchangedDocumentDiagnosticReport))) #
HasBaseUri RelativePattern (WorkspaceFolder |? Uri) |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods baseUri :: Lens' RelativePattern (WorkspaceFolder |? Uri) #
HasRelatedDocuments DocumentDiagnosticReportPartialResult (Map Uri (FullDocumentDiagnosticReport |? UnchangedDocumentDiagnosticReport)) |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods relatedDocuments :: Lens' DocumentDiagnosticReportPartialResult (Map Uri (FullDocumentDiagnosticReport |? UnchangedDocumentDiagnosticReport)) #
HasRootUri InitializeParams (Uri |? Null) |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods rootUri :: Lens' InitializeParams (Uri |? Null) #
HasRootUri UInitializeParams (Uri |? Null) |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods rootUri :: Lens' UInitializeParams (Uri |? Null) #
type Rep Uri |
Instance details Defined in Language.LSP.Protocol.Types.Uri type Rep Uri = D1 ('MetaData "Uri" "Language.LSP.Protocol.Types.Uri" "lsp-types-2.0.2.0-6ldEQfFkAQaDyl5nknNRSX" 'True) (C1 ('MetaCons "Uri" 'PrefixI 'True) (S1 ('MetaSel ('Just "getUri") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)))

data Location #

Represents a location inside a resource, such as a line inside a text file.

Constructors

Location |

Fields

- _uri :: Uri
- _range :: Range

#### Instances

Instances details

FromJSON Location |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Location Methods parseJSON :: Value -> Parser Location # parseJSONList :: Value -> Parser [Location] # omittedField :: Maybe Location #
ToJSON Location |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Location Methods toJSON :: Location -> Value # toEncoding :: Location -> Encoding # toJSONList :: [Location] -> Value # toEncodingList :: [Location] -> Encoding # omitField :: Location -> Bool #
Generic Location |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Location Associated Types type Rep Location :: Type -> Type Methods from :: Location -> Rep Location x to :: Rep Location x -> Location
Show Location |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Location Methods showsPrec :: Int -> Location -> ShowS # show :: Location -> String # showList :: [Location] -> ShowS #
NFData Location |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Location Methods rnf :: Location -> () #
Eq Location |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Location Methods (==) :: Location -> Location -> Bool # (/=) :: Location -> Location -> Bool #
Ord Location |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Location Methods compare :: Location -> Location -> Ordering (<) :: Location -> Location -> Bool (<=) :: Location -> Location -> Bool (>) :: Location -> Location -> Bool (>=) :: Location -> Location -> Bool max :: Location -> Location -> Location min :: Location -> Location -> Location
Hashable Location |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Location Methods hashWithSalt :: Int -> Location -> Int # hash :: Location -> Int #
Pretty Location |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Location Methods pretty :: Location -> Doc ann # prettyList :: [Location] -> Doc ann #
HasLocation DiagnosticRelatedInformation Location |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods location :: Lens' DiagnosticRelatedInformation Location #
HasLocation SymbolInformation Location |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods location :: Lens' SymbolInformation Location #
HasRange Location Range |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods range :: Lens' Location Range #
HasUri Location Uri |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods uri :: Lens' Location Uri #
HasLocation InlayHintLabelPart (Maybe Location) |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods location :: Lens' InlayHintLabelPart (Maybe Location) #
type Rep Location |

Instance details

Defined in Language.LSP.Protocol.Internal.Types.Location

type Rep Location = D1 ('MetaData "Location" "Language.LSP.Protocol.Internal.Types.Location" "lsp-types-2.0.2.0-6ldEQfFkAQaDyl5nknNRSX" 'False) (C1 ('MetaCons "Location" 'PrefixI 'True) (S1 ('MetaSel ('Just "_uri") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Uri) :*: S1 ('MetaSel ('Just "_range") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Range)))

data DiagnosticSeverity #

The diagnostic's severity.

Constructors

DiagnosticSeverity_Error | Reports an error.
DiagnosticSeverity_Warning | Reports a warning.
DiagnosticSeverity_Information | Reports an information.
DiagnosticSeverity_Hint | Reports a hint.

#### Instances

Instances details

FromJSON DiagnosticSeverity |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DiagnosticSeverity Methods parseJSON :: Value -> Parser DiagnosticSeverity # parseJSONList :: Value -> Parser [DiagnosticSeverity] # omittedField :: Maybe DiagnosticSeverity #
ToJSON DiagnosticSeverity |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DiagnosticSeverity Methods toJSON :: DiagnosticSeverity -> Value # toEncoding :: DiagnosticSeverity -> Encoding # toJSONList :: [DiagnosticSeverity] -> Value # toEncodingList :: [DiagnosticSeverity] -> Encoding # omitField :: DiagnosticSeverity -> Bool #
Generic DiagnosticSeverity |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DiagnosticSeverity Associated Types type Rep DiagnosticSeverity :: Type -> Type Methods from :: DiagnosticSeverity -> Rep DiagnosticSeverity x to :: Rep DiagnosticSeverity x -> DiagnosticSeverity
Show DiagnosticSeverity |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DiagnosticSeverity Methods showsPrec :: Int -> DiagnosticSeverity -> ShowS # show :: DiagnosticSeverity -> String # showList :: [DiagnosticSeverity] -> ShowS #
NFData DiagnosticSeverity |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DiagnosticSeverity Methods rnf :: DiagnosticSeverity -> () #
Eq DiagnosticSeverity |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DiagnosticSeverity Methods (==) :: DiagnosticSeverity -> DiagnosticSeverity -> Bool # (/=) :: DiagnosticSeverity -> DiagnosticSeverity -> Bool #
Ord DiagnosticSeverity |

Instance details

Defined in Language.LSP.Protocol.Internal.Types.DiagnosticSeverity

Methods

compare :: DiagnosticSeverity -> DiagnosticSeverity -> Ordering

(<) :: DiagnosticSeverity -> DiagnosticSeverity -> Bool

(<=) :: DiagnosticSeverity -> DiagnosticSeverity -> Bool

(>) :: DiagnosticSeverity -> DiagnosticSeverity -> Bool

(>=) :: DiagnosticSeverity -> DiagnosticSeverity -> Bool

max :: DiagnosticSeverity -> DiagnosticSeverity -> DiagnosticSeverity

min :: DiagnosticSeverity -> DiagnosticSeverity -> DiagnosticSeverity

Hashable DiagnosticSeverity |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DiagnosticSeverity Methods hashWithSalt :: Int -> DiagnosticSeverity -> Int # hash :: DiagnosticSeverity -> Int #
LspEnum DiagnosticSeverity |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DiagnosticSeverity Associated Types type EnumBaseType DiagnosticSeverity # Methods knownValues :: Set DiagnosticSeverity # toEnumBaseType :: DiagnosticSeverity -> EnumBaseType DiagnosticSeverity # fromEnumBaseType :: EnumBaseType DiagnosticSeverity -> Maybe DiagnosticSeverity #
Pretty DiagnosticSeverity |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DiagnosticSeverity Methods pretty :: DiagnosticSeverity -> Doc ann # prettyList :: [DiagnosticSeverity] -> Doc ann #
HasSeverity Diagnostic (Maybe DiagnosticSeverity) |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods severity :: Lens' Diagnostic (Maybe DiagnosticSeverity) #
type Rep DiagnosticSeverity |

Instance details

Defined in Language.LSP.Protocol.Internal.Types.DiagnosticSeverity

type Rep DiagnosticSeverity = D1 ('MetaData "DiagnosticSeverity" "Language.LSP.Protocol.Internal.Types.DiagnosticSeverity" "lsp-types-2.0.2.0-6ldEQfFkAQaDyl5nknNRSX" 'False) ((C1 ('MetaCons "DiagnosticSeverity_Error" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DiagnosticSeverity_Warning" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "DiagnosticSeverity_Information" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DiagnosticSeverity_Hint" 'PrefixI 'False) (U1 :: Type -> Type)))

type EnumBaseType DiagnosticSeverity |
Instance details Defined in Language.LSP.Protocol.Internal.Types.DiagnosticSeverity type EnumBaseType DiagnosticSeverity = UInt

data Diagnostic #

Represents a diagnostic, such as a compiler error or warning. Diagnostic objects are only valid in the scope of a resource.

Constructors

Diagnostic |

Fields

- _range :: Range

  The range at which the message applies

- _severity :: Maybe DiagnosticSeverity

  The diagnostic's severity. Can be omitted. If omitted it is up to the client to interpret diagnostics as error, warning, info or hint.

- _code :: Maybe (Int32 |? Text)

  The diagnostic's code, which usually appear in the user interface.

- _codeDescription :: Maybe CodeDescription

  An optional property to describe the error code. Requires the code field (above) to be present/not null.

  Since: lsp-types-3.16.0

- _source :: Maybe Text

  A human-readable string describing the source of this diagnostic, e.g. `typescript` or 'super lint'. It usually appears in the user interface.

- _message :: Text

  The diagnostic's message. It usually appears in the user interface

- _tags :: Maybe [DiagnosticTag]

  Additional metadata about the diagnostic.

  Since: lsp-types-3.15.0

- _relatedInformation :: Maybe [DiagnosticRelatedInformation]

  An array of related diagnostic information, e.g. when symbol-names within a scope collide all definitions can be marked via this property.

- _data_ :: Maybe Value

  A data entry field that is preserved between a `textDocument/publishDiagnostics` notification and `textDocument/codeAction` request.

  Since: lsp-types-3.16.0

#### Instances

Instances details

FromJSON Diagnostic |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Diagnostic Methods parseJSON :: Value -> Parser Diagnostic # parseJSONList :: Value -> Parser [Diagnostic] # omittedField :: Maybe Diagnostic #
ToJSON Diagnostic |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Diagnostic Methods toJSON :: Diagnostic -> Value # toEncoding :: Diagnostic -> Encoding # toJSONList :: [Diagnostic] -> Value # toEncodingList :: [Diagnostic] -> Encoding # omitField :: Diagnostic -> Bool #
Generic Diagnostic |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Diagnostic Associated Types type Rep Diagnostic :: Type -> Type Methods from :: Diagnostic -> Rep Diagnostic x to :: Rep Diagnostic x -> Diagnostic
Show Diagnostic |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Diagnostic Methods showsPrec :: Int -> Diagnostic -> ShowS # show :: Diagnostic -> String # showList :: [Diagnostic] -> ShowS #
NFData Diagnostic |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Diagnostic Methods rnf :: Diagnostic -> () #
Eq Diagnostic |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Diagnostic Methods (==) :: Diagnostic -> Diagnostic -> Bool # (/=) :: Diagnostic -> Diagnostic -> Bool #
Ord Diagnostic |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Diagnostic Methods compare :: Diagnostic -> Diagnostic -> Ordering (<) :: Diagnostic -> Diagnostic -> Bool (<=) :: Diagnostic -> Diagnostic -> Bool (>) :: Diagnostic -> Diagnostic -> Bool (>=) :: Diagnostic -> Diagnostic -> Bool max :: Diagnostic -> Diagnostic -> Diagnostic min :: Diagnostic -> Diagnostic -> Diagnostic
Hashable Diagnostic |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Diagnostic Methods hashWithSalt :: Int -> Diagnostic -> Int # hash :: Diagnostic -> Int #
Pretty Diagnostic |
Instance details Defined in Language.LSP.Protocol.Internal.Types.Diagnostic Methods pretty :: Diagnostic -> Doc ann # prettyList :: [Diagnostic] -> Doc ann #
HasMessage Diagnostic Text |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods message :: Lens' Diagnostic Text #
HasRange Diagnostic Range |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods range :: Lens' Diagnostic Range #
HasCode Diagnostic (Maybe (Int32 |? Text)) |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods code :: Lens' Diagnostic (Maybe (Int32 |? Text)) #
HasCodeDescription Diagnostic (Maybe CodeDescription) |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods codeDescription :: Lens' Diagnostic (Maybe CodeDescription) #
HasData_ Diagnostic (Maybe Value) |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods data_ :: Lens' Diagnostic (Maybe Value) #
HasDiagnostics CodeAction (Maybe [Diagnostic]) |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods diagnostics :: Lens' CodeAction (Maybe [Diagnostic]) #
HasDiagnostics CodeActionContext [Diagnostic] |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods diagnostics :: Lens' CodeActionContext [Diagnostic] #
HasDiagnostics PublishDiagnosticsParams [Diagnostic] |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods diagnostics :: Lens' PublishDiagnosticsParams [Diagnostic] #
HasItems FullDocumentDiagnosticReport [Diagnostic] |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods items :: Lens' FullDocumentDiagnosticReport [Diagnostic] #
HasItems RelatedFullDocumentDiagnosticReport [Diagnostic] |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods items :: Lens' RelatedFullDocumentDiagnosticReport [Diagnostic] #
HasItems WorkspaceFullDocumentDiagnosticReport [Diagnostic] |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods items :: Lens' WorkspaceFullDocumentDiagnosticReport [Diagnostic] #
HasRelatedInformation Diagnostic (Maybe [DiagnosticRelatedInformation]) |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods relatedInformation :: Lens' Diagnostic (Maybe [DiagnosticRelatedInformation]) #
HasSeverity Diagnostic (Maybe DiagnosticSeverity) |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods severity :: Lens' Diagnostic (Maybe DiagnosticSeverity) #
HasSource Diagnostic (Maybe Text) |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods source :: Lens' Diagnostic (Maybe Text) #
HasTags Diagnostic (Maybe [DiagnosticTag]) |
Instance details Defined in Language.LSP.Protocol.Internal.Lens Methods tags :: Lens' Diagnostic (Maybe [DiagnosticTag]) #
type Rep Diagnostic |

Instance details

Defined in Language.LSP.Protocol.Internal.Types.Diagnostic

type Rep Diagnostic = D1 ('MetaData "Diagnostic" "Language.LSP.Protocol.Internal.Types.Diagnostic" "lsp-types-2.0.2.0-6ldEQfFkAQaDyl5nknNRSX" 'False) (C1 ('MetaCons "Diagnostic" 'PrefixI 'True) (((S1 ('MetaSel ('Just "_range") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Range) :*: S1 ('MetaSel ('Just "_severity") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe DiagnosticSeverity))) :*: (S1 ('MetaSel ('Just "_code") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe (Int32 |? Text))) :*: S1 ('MetaSel ('Just "_codeDescription") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe CodeDescription)))) :*: ((S1 ('MetaSel ('Just "_source") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe Text)) :*: S1 ('MetaSel ('Just "_message") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Text)) :*: (S1 ('MetaSel ('Just "_tags") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe [DiagnosticTag])) :*: (S1 ('MetaSel ('Just "_relatedInformation") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe [DiagnosticRelatedInformation])) :*: S1 ('MetaSel ('Just "_data_") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe Value)))))))

data IdeConfiguration #

Lsp client relevant configuration details

Constructors

IdeConfiguration |

Fields

- workspaceFolders :: HashSet NormalizedUri
- clientSettings :: Hashed (Maybe Value)

#### Instances

Instances details

Show IdeConfiguration # |
Instance details Defined in Development.IDE.Core.IdeConfiguration Methods showsPrec :: Int -> IdeConfiguration -> ShowS # show :: IdeConfiguration -> String # showList :: [IdeConfiguration] -> ShowS #

data FastResult a #

A (maybe) stale result now, and an up to date one later

Constructors

FastResult |

Fields

- stale :: Maybe (a, PositionMapping)
- uptoDate :: IO (Maybe a)

newtype IdeAction a #

IdeActions are used when we want to return a result immediately, even if it is stale Useful for UI actions like hover, completion where we don't want to block.

Run via `runIdeAction`.

Constructors

IdeAction |

Fields

- runIdeActionT :: ReaderT ShakeExtras IO a

#### Instances

Instances details

MonadIO IdeAction # |
Instance details Defined in Development.IDE.Core.Shake Methods liftIO :: IO a -> IdeAction a #
Applicative IdeAction # |
Instance details Defined in Development.IDE.Core.Shake Methods pure :: a -> IdeAction a # (<*>) :: IdeAction (a -> b) -> IdeAction a -> IdeAction b # liftA2 :: (a -> b -> c) -> IdeAction a -> IdeAction b -> IdeAction c # (*>) :: IdeAction a -> IdeAction b -> IdeAction b # (<*) :: IdeAction a -> IdeAction b -> IdeAction a #
Functor IdeAction # |
Instance details Defined in Development.IDE.Core.Shake Methods fmap :: (a -> b) -> IdeAction a -> IdeAction b # (<$) :: a -> IdeAction b -> IdeAction a #
Monad IdeAction # |
Instance details Defined in Development.IDE.Core.Shake Methods (>>=) :: IdeAction a -> (a -> IdeAction b) -> IdeAction b # (>>) :: IdeAction a -> IdeAction b -> IdeAction b # return :: a -> IdeAction a #
MonadReader ShakeExtras IdeAction # |
Instance details Defined in Development.IDE.Core.Shake Methods ask :: IdeAction ShakeExtras # local :: (ShakeExtras -> ShakeExtras) -> IdeAction a -> IdeAction a # reader :: (ShakeExtras -> a) -> IdeAction a #
Semigroup a => Semigroup (IdeAction a) # |
Instance details Defined in Development.IDE.Core.Shake Methods (<>) :: IdeAction a -> IdeAction a -> IdeAction a # sconcat :: NonEmpty (IdeAction a) -> IdeAction a # stimes :: Integral b => b -> IdeAction a -> IdeAction a #

type IdeRule k v = (RuleResult k ~ v, ShakeValue k, Show v, Typeable v, NFData v) #

data IdeState #

A Shake database plus persistent store. Can be thought of as storing mappings from `(FilePath, k)` to `RuleResult k`.

#### Instances

Instances details

MonadReader (ReactorChan, IdeState) (ServerM c) # |
Instance details Defined in Development.IDE.LSP.Server Methods ask :: ServerM c (ReactorChan, IdeState) # local :: ((ReactorChan, IdeState) -> (ReactorChan, IdeState)) -> ServerM c a -> ServerM c a # reader :: ((ReactorChan, IdeState) -> a) -> ServerM c a #

data RuleBody k v #

Constructors

Rule (k -> NormalizedFilePath -> Action (Maybe ByteString, IdeResult v)) |
RuleNoDiagnostics (k -> NormalizedFilePath -> Action (Maybe ByteString, Maybe v)) |
RuleWithCustomNewnessCheck |

Fields

- newnessCheck :: ByteString -> ByteString -> Bool
- build :: k -> NormalizedFilePath -> Action (Maybe ByteString, Maybe v)

RuleWithOldValue (k -> NormalizedFilePath -> Value v -> Action (Maybe ByteString, IdeResult v)) |

data ShakeExtras #

#### Instances

Instances details

MonadReader ShakeExtras IdeAction # |
Instance details Defined in Development.IDE.Core.Shake Methods ask :: IdeAction ShakeExtras # local :: (ShakeExtras -> ShakeExtras) -> IdeAction a -> IdeAction a # reader :: (ShakeExtras -> a) -> IdeAction a #

data VFSModified #

Constructors

VFSUnmodified |
VFSModified !VFS |

data GhcVersion #

Constructors

GHC810 |
GHC90 |
GHC92 |
GHC94 |
GHC96 |
GHC98 |

#### Instances

Instances details

Show GhcVersion # |
Instance details Defined in Development.IDE.GHC.Compat Methods showsPrec :: Int -> GhcVersion -> ShowS # show :: GhcVersion -> String # showList :: [GhcVersion] -> ShowS #
Eq GhcVersion # |
Instance details Defined in Development.IDE.GHC.Compat Methods (==) :: GhcVersion -> GhcVersion -> Bool # (/=) :: GhcVersion -> GhcVersion -> Bool #
Ord GhcVersion # |
Instance details Defined in Development.IDE.GHC.Compat Methods compare :: GhcVersion -> GhcVersion -> Ordering (<) :: GhcVersion -> GhcVersion -> Bool (<=) :: GhcVersion -> GhcVersion -> Bool (>) :: GhcVersion -> GhcVersion -> Bool (>=) :: GhcVersion -> GhcVersion -> Bool max :: GhcVersion -> GhcVersion -> GhcVersion min :: GhcVersion -> GhcVersion -> GhcVersion

data Plugin c #

Constructors

Plugin |

Fields

- pluginRules :: Rules ()
- pluginHandlers :: Handlers (ServerM c)
- pluginModifyDynflags :: c -> DynFlagsModifications

#### Instances

Instances details

Monoid (Plugin c) # |
Instance details Defined in Development.IDE.Plugin Methods mempty :: Plugin c # mappend :: Plugin c -> Plugin c -> Plugin c # mconcat :: [Plugin c] -> Plugin c #
Semigroup (Plugin c) # |
Instance details Defined in Development.IDE.Plugin Methods (<>) :: Plugin c -> Plugin c -> Plugin c # sconcat :: NonEmpty (Plugin c) -> Plugin c # stimes :: Integral b => b -> Plugin c -> Plugin c #
Default (Plugin c) # |
Instance details Defined in Development.IDE.Plugin Methods def :: Plugin c #

data HscEnvEq #

An `HscEnv` with equality. Two values are considered equal if they are created with the same call to `newHscEnvEq` or `updateHscEnvEq`.

#### Instances

Instances details

Show HscEnvEq # |
Instance details Defined in Development.IDE.Types.HscEnvEq Methods showsPrec :: Int -> HscEnvEq -> ShowS # show :: HscEnvEq -> String # showList :: [HscEnvEq] -> ShowS #
NFData HscEnvEq # |
Instance details Defined in Development.IDE.Types.HscEnvEq Methods rnf :: HscEnvEq -> () #
Eq HscEnvEq # |
Instance details Defined in Development.IDE.Types.HscEnvEq Methods (==) :: HscEnvEq -> HscEnvEq -> Bool # (/=) :: HscEnvEq -> HscEnvEq -> Bool #
Hashable HscEnvEq # |
Instance details Defined in Development.IDE.Types.HscEnvEq Methods hashWithSalt :: Int -> HscEnvEq -> Int # hash :: HscEnvEq -> Int #

data FileOfInterestStatus #

Constructors

OnDisk |
Modified |

Fields

- firstOpen :: !Bool

  was this file just opened

#### Instances

Instances details

Generic FileOfInterestStatus # |
Instance details Defined in Development.IDE.Core.RuleTypes Associated Types type Rep FileOfInterestStatus :: Type -> Type Methods from :: FileOfInterestStatus -> Rep FileOfInterestStatus x to :: Rep FileOfInterestStatus x -> FileOfInterestStatus
Show FileOfInterestStatus # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> FileOfInterestStatus -> ShowS # show :: FileOfInterestStatus -> String # showList :: [FileOfInterestStatus] -> ShowS #
NFData FileOfInterestStatus # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: FileOfInterestStatus -> () #
Eq FileOfInterestStatus # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods (==) :: FileOfInterestStatus -> FileOfInterestStatus -> Bool # (/=) :: FileOfInterestStatus -> FileOfInterestStatus -> Bool #
Hashable FileOfInterestStatus # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods hashWithSalt :: Int -> FileOfInterestStatus -> Int # hash :: FileOfInterestStatus -> Int #
type Rep FileOfInterestStatus # |

Instance details

Defined in Development.IDE.Core.RuleTypes

type Rep FileOfInterestStatus = D1 ('MetaData "FileOfInterestStatus" "Development.IDE.Core.RuleTypes" "ghcide-2.4.0.0-2GLANXY6yWhIRmLZNYhiFQ" 'False) (C1 ('MetaCons "OnDisk" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Modified" 'PrefixI 'True) (S1 ('MetaSel ('Just "firstOpen") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool)))

data GenerateCore #

Constructors

GenerateCore |

#### Instances

Instances details

Generic GenerateCore # |
Instance details Defined in Development.IDE.Core.RuleTypes Associated Types type Rep GenerateCore :: Type -> Type Methods from :: GenerateCore -> Rep GenerateCore x to :: Rep GenerateCore x -> GenerateCore
Show GenerateCore # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> GenerateCore -> ShowS # show :: GenerateCore -> String # showList :: [GenerateCore] -> ShowS #
NFData GenerateCore # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: GenerateCore -> () #
Eq GenerateCore # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods (==) :: GenerateCore -> GenerateCore -> Bool # (/=) :: GenerateCore -> GenerateCore -> Bool #
Hashable GenerateCore # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods hashWithSalt :: Int -> GenerateCore -> Int # hash :: GenerateCore -> Int #
type Rep GenerateCore # |
Instance details Defined in Development.IDE.Core.RuleTypes type Rep GenerateCore = D1 ('MetaData "GenerateCore" "Development.IDE.Core.RuleTypes" "ghcide-2.4.0.0-2GLANXY6yWhIRmLZNYhiFQ" 'False) (C1 ('MetaCons "GenerateCore" 'PrefixI 'False) (U1 :: Type -> Type))
type RuleResult GenerateCore # | Convert to Core, requires TypeCheck*
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GenerateCore = ModGuts

data GetHieAst #

Constructors

GetHieAst |

#### Instances

Instances details

Generic GetHieAst # |
Instance details Defined in Development.IDE.Core.RuleTypes Associated Types type Rep GetHieAst :: Type -> Type Methods from :: GetHieAst -> Rep GetHieAst x to :: Rep GetHieAst x -> GetHieAst
Show GetHieAst # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> GetHieAst -> ShowS # show :: GetHieAst -> String # showList :: [GetHieAst] -> ShowS #
NFData GetHieAst # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: GetHieAst -> () #
Eq GetHieAst # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods (==) :: GetHieAst -> GetHieAst -> Bool # (/=) :: GetHieAst -> GetHieAst -> Bool #
Hashable GetHieAst # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods hashWithSalt :: Int -> GetHieAst -> Int # hash :: GetHieAst -> Int #
type Rep GetHieAst # |
Instance details Defined in Development.IDE.Core.RuleTypes type Rep GetHieAst = D1 ('MetaData "GetHieAst" "Development.IDE.Core.RuleTypes" "ghcide-2.4.0.0-2GLANXY6yWhIRmLZNYhiFQ" 'False) (C1 ('MetaCons "GetHieAst" 'PrefixI 'False) (U1 :: Type -> Type))
type RuleResult GetHieAst # | The uncompressed HieAST
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GetHieAst = HieAstResult

data TypeCheck #

Constructors

TypeCheck |

#### Instances

Instances details

Generic TypeCheck # |
Instance details Defined in Development.IDE.Core.RuleTypes Associated Types type Rep TypeCheck :: Type -> Type Methods from :: TypeCheck -> Rep TypeCheck x to :: Rep TypeCheck x -> TypeCheck
Show TypeCheck # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> TypeCheck -> ShowS # show :: TypeCheck -> String # showList :: [TypeCheck] -> ShowS #
NFData TypeCheck # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: TypeCheck -> () #
Eq TypeCheck # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods (==) :: TypeCheck -> TypeCheck -> Bool # (/=) :: TypeCheck -> TypeCheck -> Bool #
Hashable TypeCheck # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods hashWithSalt :: Int -> TypeCheck -> Int # hash :: TypeCheck -> Int #
type Rep TypeCheck # |
Instance details Defined in Development.IDE.Core.RuleTypes type Rep TypeCheck = D1 ('MetaData "TypeCheck" "Development.IDE.Core.RuleTypes" "ghcide-2.4.0.0-2GLANXY6yWhIRmLZNYhiFQ" 'False) (C1 ('MetaCons "TypeCheck" 'PrefixI 'False) (U1 :: Type -> Type))
type RuleResult TypeCheck # | The type checked version of this file, requires TypeCheck+
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult TypeCheck = TcModuleResult

data IdeGhcSession #

Constructors

IdeGhcSession |

Fields

- loadSessionFun :: FilePath -> IO (IdeResult HscEnvEq, [FilePath])

  Returns the Ghc session and the cradle dependencies

- sessionVersion :: !Int

  Used as Shake key, versions must be unique and not reused

#### Instances

Instances details

Show IdeGhcSession # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> IdeGhcSession -> ShowS # show :: IdeGhcSession -> String # showList :: [IdeGhcSession] -> ShowS #
NFData IdeGhcSession # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: IdeGhcSession -> () #

data GetParsedModule #

Constructors

GetParsedModule |

#### Instances

Instances details

Generic GetParsedModule # |
Instance details Defined in Development.IDE.Core.RuleTypes Associated Types type Rep GetParsedModule :: Type -> Type Methods from :: GetParsedModule -> Rep GetParsedModule x to :: Rep GetParsedModule x -> GetParsedModule
Show GetParsedModule # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> GetParsedModule -> ShowS # show :: GetParsedModule -> String # showList :: [GetParsedModule] -> ShowS #
NFData GetParsedModule # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: GetParsedModule -> () #
Eq GetParsedModule # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods (==) :: GetParsedModule -> GetParsedModule -> Bool # (/=) :: GetParsedModule -> GetParsedModule -> Bool #
Hashable GetParsedModule # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods hashWithSalt :: Int -> GetParsedModule -> Int # hash :: GetParsedModule -> Int #
type Rep GetParsedModule # |
Instance details Defined in Development.IDE.Core.RuleTypes type Rep GetParsedModule = D1 ('MetaData "GetParsedModule" "Development.IDE.Core.RuleTypes" "ghcide-2.4.0.0-2GLANXY6yWhIRmLZNYhiFQ" 'False) (C1 ('MetaCons "GetParsedModule" 'PrefixI 'False) (U1 :: Type -> Type))
type RuleResult GetParsedModule # | The parse tree for the file using GetFileContents
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GetParsedModule = ParsedModule

data GhcSessionIO #

Constructors

GhcSessionIO |

#### Instances

Instances details

Generic GhcSessionIO # |
Instance details Defined in Development.IDE.Core.RuleTypes Associated Types type Rep GhcSessionIO :: Type -> Type Methods from :: GhcSessionIO -> Rep GhcSessionIO x to :: Rep GhcSessionIO x -> GhcSessionIO
Show GhcSessionIO # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> GhcSessionIO -> ShowS # show :: GhcSessionIO -> String # showList :: [GhcSessionIO] -> ShowS #
NFData GhcSessionIO # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: GhcSessionIO -> () #
Eq GhcSessionIO # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods (==) :: GhcSessionIO -> GhcSessionIO -> Bool # (/=) :: GhcSessionIO -> GhcSessionIO -> Bool #
Hashable GhcSessionIO # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods hashWithSalt :: Int -> GhcSessionIO -> Int # hash :: GhcSessionIO -> Int #
type Rep GhcSessionIO # |
Instance details Defined in Development.IDE.Core.RuleTypes type Rep GhcSessionIO = D1 ('MetaData "GhcSessionIO" "Development.IDE.Core.RuleTypes" "ghcide-2.4.0.0-2GLANXY6yWhIRmLZNYhiFQ" 'False) (C1 ('MetaCons "GhcSessionIO" 'PrefixI 'False) (U1 :: Type -> Type))
type RuleResult GhcSessionIO # |
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GhcSessionIO = IdeGhcSession

data GetClientSettings #

Get the client config stored in the ide state

Constructors

GetClientSettings |

#### Instances

Instances details

Generic GetClientSettings # |
Instance details Defined in Development.IDE.Core.RuleTypes Associated Types type Rep GetClientSettings :: Type -> Type Methods from :: GetClientSettings -> Rep GetClientSettings x to :: Rep GetClientSettings x -> GetClientSettings
Show GetClientSettings # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> GetClientSettings -> ShowS # show :: GetClientSettings -> String # showList :: [GetClientSettings] -> ShowS #
NFData GetClientSettings # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: GetClientSettings -> () #
Eq GetClientSettings # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods (==) :: GetClientSettings -> GetClientSettings -> Bool # (/=) :: GetClientSettings -> GetClientSettings -> Bool #
Hashable GetClientSettings # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods hashWithSalt :: Int -> GetClientSettings -> Int # hash :: GetClientSettings -> Int #
type Rep GetClientSettings # |
Instance details Defined in Development.IDE.Core.RuleTypes type Rep GetClientSettings = D1 ('MetaData "GetClientSettings" "Development.IDE.Core.RuleTypes" "ghcide-2.4.0.0-2GLANXY6yWhIRmLZNYhiFQ" 'False) (C1 ('MetaCons "GetClientSettings" 'PrefixI 'False) (U1 :: Type -> Type))
type RuleResult GetClientSettings # |
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GetClientSettings = Hashed (Maybe Value)

newtype GhcSessionDeps #

Constructors

GhcSessionDeps_ |

Fields

- fullModSummary :: Bool

  Load full ModSummary values in the GHC session. Required for interactive evaluation, but leads to more cache invalidations

Bundled Patterns

pattern GhcSessionDeps :: GhcSessionDeps |

#### Instances

Instances details

Show GhcSessionDeps # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> GhcSessionDeps -> ShowS # show :: GhcSessionDeps -> String # showList :: [GhcSessionDeps] -> ShowS #
NFData GhcSessionDeps # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: GhcSessionDeps -> () #
Eq GhcSessionDeps # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods (==) :: GhcSessionDeps -> GhcSessionDeps -> Bool # (/=) :: GhcSessionDeps -> GhcSessionDeps -> Bool #
Hashable GhcSessionDeps # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods hashWithSalt :: Int -> GhcSessionDeps -> Int # hash :: GhcSessionDeps -> Int #
type RuleResult GhcSessionDeps # | A GHC session preloaded with all the dependencies This rule is also responsible for calling ReportImportCycles for the direct dependencies
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GhcSessionDeps = HscEnvEq

type IdeResult v = ([FileDiagnostic], Maybe v) #

The result of an IDE operation. Warnings and errors are in the Diagnostic, and a value is in the Maybe. For operations that throw an error you expect a non-empty list of diagnostics, at least one of which is an error, and a Nothing. For operations that succeed you expect perhaps some warnings and a Just. For operations that depend on other failing operations you may get empty diagnostics and a Nothing, to indicate this phase throws no fresh errors but still failed.

A rule on a file should only return diagnostics for that given file. It should not propagate diagnostic errors through multiple phases.

newtype GetModificationTime #

Constructors

GetModificationTime_ |

Fields

- missingFileDiagnostics :: Bool

  If false, missing file diagnostics are not reported

#### Instances

Instances details

Generic GetModificationTime # |
Instance details Defined in Development.IDE.Core.RuleTypes Associated Types type Rep GetModificationTime :: Type -> Type Methods from :: GetModificationTime -> Rep GetModificationTime x to :: Rep GetModificationTime x -> GetModificationTime
Show GetModificationTime # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> GetModificationTime -> ShowS # show :: GetModificationTime -> String # showList :: [GetModificationTime] -> ShowS #
NFData GetModificationTime # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: GetModificationTime -> () #
Eq GetModificationTime # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods (==) :: GetModificationTime -> GetModificationTime -> Bool # (/=) :: GetModificationTime -> GetModificationTime -> Bool #
Hashable GetModificationTime # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods hashWithSalt :: Int -> GetModificationTime -> Int # hash :: GetModificationTime -> Int #
type Rep GetModificationTime # |
Instance details Defined in Development.IDE.Core.RuleTypes type Rep GetModificationTime = D1 ('MetaData "GetModificationTime" "Development.IDE.Core.RuleTypes" "ghcide-2.4.0.0-2GLANXY6yWhIRmLZNYhiFQ" 'True) (C1 ('MetaCons "GetModificationTime_" 'PrefixI 'True) (S1 ('MetaSel ('Just "missingFileDiagnostics") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))
type RuleResult GetModificationTime # | Get the modification time of a file.
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GetModificationTime = FileVersion

data FileVersion #

Either the mtime from disk or an LSP version LSP versions always compare as greater than on disk versions

Constructors

ModificationTime !POSIXTime |
VFSVersion !Int32 |

#### Instances

Instances details

Generic FileVersion # |
Instance details Defined in Development.IDE.Core.RuleTypes Associated Types type Rep FileVersion :: Type -> Type Methods from :: FileVersion -> Rep FileVersion x to :: Rep FileVersion x -> FileVersion
Show FileVersion # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> FileVersion -> ShowS # show :: FileVersion -> String # showList :: [FileVersion] -> ShowS #
NFData FileVersion # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: FileVersion -> () #
Eq FileVersion # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods (==) :: FileVersion -> FileVersion -> Bool # (/=) :: FileVersion -> FileVersion -> Bool #
Ord FileVersion # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods compare :: FileVersion -> FileVersion -> Ordering (<) :: FileVersion -> FileVersion -> Bool (<=) :: FileVersion -> FileVersion -> Bool (>) :: FileVersion -> FileVersion -> Bool (>=) :: FileVersion -> FileVersion -> Bool max :: FileVersion -> FileVersion -> FileVersion min :: FileVersion -> FileVersion -> FileVersion
type Rep FileVersion # |

Instance details

Defined in Development.IDE.Core.RuleTypes

type Rep FileVersion = D1 ('MetaData "FileVersion" "Development.IDE.Core.RuleTypes" "ghcide-2.4.0.0-2GLANXY6yWhIRmLZNYhiFQ" 'False) (C1 ('MetaCons "ModificationTime" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 POSIXTime)) :+: C1 ('MetaCons "VFSVersion" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int32)))

type FileDiagnostic = (NormalizedFilePath, ShowDiagnostic, Diagnostic) #

Human readable diagnostics for a specific file.

This type packages a pretty printed, human readable error message along with the related source location so that we can display the error on either the console or in the IDE at the right source location.

data TcModuleResult #

Contains the typechecked module and the OrigNameCache entry for that module.

Constructors

TcModuleResult |

Fields

- tmrParsed :: ParsedModule
- tmrRenamed :: RenamedSource
- tmrTypechecked :: TcGblEnv
- tmrTopLevelSplices :: Splices

  Typechecked splice information

- tmrDeferredError :: !Bool

  Did we defer any type errors for this module?

- tmrRuntimeModules :: !(ModuleEnv ByteString)

  Which modules did we need at runtime while compiling this file? Used for recompilation checking in the presence of TH Stores the hash of their core file

#### Instances

Instances details

Show TcModuleResult # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> TcModuleResult -> ShowS # show :: TcModuleResult -> String # showList :: [TcModuleResult] -> ShowS #
NFData TcModuleResult # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: TcModuleResult -> () #

data ParseResult a :: TYPE ('SumRep '['TupleRep '[LiftedRep, LiftedRep], LiftedRep]) where #

Bundled Patterns

pattern PFailed :: PState -> ParseResult a |
pattern POk :: PState -> a -> ParseResult a |

data GhcSession #

Constructors

GhcSession |

#### Instances

Instances details

Generic GhcSession # |
Instance details Defined in Development.IDE.Core.RuleTypes Associated Types type Rep GhcSession :: Type -> Type Methods from :: GhcSession -> Rep GhcSession x to :: Rep GhcSession x -> GhcSession
Show GhcSession # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> GhcSession -> ShowS # show :: GhcSession -> String # showList :: [GhcSession] -> ShowS #
NFData GhcSession # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: GhcSession -> () #
Eq GhcSession # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods (==) :: GhcSession -> GhcSession -> Bool # (/=) :: GhcSession -> GhcSession -> Bool #
Hashable GhcSession # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods hashWithSalt :: Int -> GhcSession -> Int # hash :: GhcSession -> Int #
type Rep GhcSession # |
Instance details Defined in Development.IDE.Core.RuleTypes type Rep GhcSession = D1 ('MetaData "GhcSession" "Development.IDE.Core.RuleTypes" "ghcide-2.4.0.0-2GLANXY6yWhIRmLZNYhiFQ" 'False) (C1 ('MetaCons "GhcSession" 'PrefixI 'False) (U1 :: Type -> Type))
type RuleResult GhcSession # | A GHC session that we reuse.
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GhcSession = HscEnvEq

data ShowDiagnostic #

Defines whether a particular diagnostic should be reported back to the user.

One important use case is "missing signature" code lenses, for which we need to enable the corresponding warning during type checking. However, we do not want to show the warning unless the programmer asks for it (#261).

Constructors

ShowDiag | Report back to the user
HideDiag | Hide from user

#### Instances

Instances details

Show ShowDiagnostic # |
Instance details Defined in Development.IDE.Types.Diagnostics Methods showsPrec :: Int -> ShowDiagnostic -> ShowS # show :: ShowDiagnostic -> String # showList :: [ShowDiagnostic] -> ShowS #
NFData ShowDiagnostic # |
Instance details Defined in Development.IDE.Types.Diagnostics Methods rnf :: ShowDiagnostic -> () #
Eq ShowDiagnostic # |
Instance details Defined in Development.IDE.Types.Diagnostics Methods (==) :: ShowDiagnostic -> ShowDiagnostic -> Bool # (/=) :: ShowDiagnostic -> ShowDiagnostic -> Bool #
Ord ShowDiagnostic # |

Instance details

Defined in Development.IDE.Types.Diagnostics

Methods

compare :: ShowDiagnostic -> ShowDiagnostic -> Ordering

(<) :: ShowDiagnostic -> ShowDiagnostic -> Bool

(<=) :: ShowDiagnostic -> ShowDiagnostic -> Bool

(>) :: ShowDiagnostic -> ShowDiagnostic -> Bool

(>=) :: ShowDiagnostic -> ShowDiagnostic -> Bool

max :: ShowDiagnostic -> ShowDiagnostic -> ShowDiagnostic

min :: ShowDiagnostic -> ShowDiagnostic -> ShowDiagnostic

type IdeResultNoDiagnosticsEarlyCutoff v = (Maybe ByteString, Maybe v) #

an IdeResult with a fingerprint

data GetFileExists #

Constructors

GetFileExists |

#### Instances

Instances details

Generic GetFileExists # |
Instance details Defined in Development.IDE.Core.RuleTypes Associated Types type Rep GetFileExists :: Type -> Type Methods from :: GetFileExists -> Rep GetFileExists x to :: Rep GetFileExists x -> GetFileExists
Show GetFileExists # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> GetFileExists -> ShowS # show :: GetFileExists -> String # showList :: [GetFileExists] -> ShowS #
NFData GetFileExists # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: GetFileExists -> () #
Eq GetFileExists # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods (==) :: GetFileExists -> GetFileExists -> Bool # (/=) :: GetFileExists -> GetFileExists -> Bool #
Hashable GetFileExists # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods hashWithSalt :: Int -> GetFileExists -> Int # hash :: GetFileExists -> Int #
type Rep GetFileExists # |
Instance details Defined in Development.IDE.Core.RuleTypes type Rep GetFileExists = D1 ('MetaData "GetFileExists" "Development.IDE.Core.RuleTypes" "ghcide-2.4.0.0-2GLANXY6yWhIRmLZNYhiFQ" 'False) (C1 ('MetaCons "GetFileExists" 'PrefixI 'False) (U1 :: Type -> Type))
type RuleResult GetFileExists # |
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GetFileExists = Bool

newtype ImportMap #

Constructors

ImportMap |

Fields

- importMap :: Map ModuleName NormalizedFilePath

  Where are the modules imported by this file located?

#### Instances

Instances details

Show ImportMap # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> ImportMap -> ShowS # show :: ImportMap -> String # showList :: [ImportMap] -> ShowS #
NFData ImportMap # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: ImportMap -> () #

data LinkableType #

Constructors

ObjectLinkable |
BCOLinkable |

#### Instances

Instances details

Generic LinkableType # |
Instance details Defined in Development.IDE.Core.RuleTypes Associated Types type Rep LinkableType :: Type -> Type Methods from :: LinkableType -> Rep LinkableType x to :: Rep LinkableType x -> LinkableType
Show LinkableType # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> LinkableType -> ShowS # show :: LinkableType -> String # showList :: [LinkableType] -> ShowS #
NFData LinkableType # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: LinkableType -> () #
Eq LinkableType # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods (==) :: LinkableType -> LinkableType -> Bool # (/=) :: LinkableType -> LinkableType -> Bool #
Ord LinkableType # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods compare :: LinkableType -> LinkableType -> Ordering (<) :: LinkableType -> LinkableType -> Bool (<=) :: LinkableType -> LinkableType -> Bool (>) :: LinkableType -> LinkableType -> Bool (>=) :: LinkableType -> LinkableType -> Bool max :: LinkableType -> LinkableType -> LinkableType min :: LinkableType -> LinkableType -> LinkableType
Hashable LinkableType # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods hashWithSalt :: Int -> LinkableType -> Int # hash :: LinkableType -> Int #
type Rep LinkableType # |
Instance details Defined in Development.IDE.Core.RuleTypes type Rep LinkableType = D1 ('MetaData "LinkableType" "Development.IDE.Core.RuleTypes" "ghcide-2.4.0.0-2GLANXY6yWhIRmLZNYhiFQ" 'False) (C1 ('MetaCons "ObjectLinkable" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "BCOLinkable" 'PrefixI 'False) (U1 :: Type -> Type))

data GetParsedModuleWithComments #

Constructors

GetParsedModuleWithComments |

#### Instances

Instances details

Generic GetParsedModuleWithComments # |
Instance details Defined in Development.IDE.Core.RuleTypes Associated Types type Rep GetParsedModuleWithComments :: Type -> Type Methods from :: GetParsedModuleWithComments -> Rep GetParsedModuleWithComments x to :: Rep GetParsedModuleWithComments x -> GetParsedModuleWithComments
Show GetParsedModuleWithComments # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> GetParsedModuleWithComments -> ShowS # show :: GetParsedModuleWithComments -> String # showList :: [GetParsedModuleWithComments] -> ShowS #
NFData GetParsedModuleWithComments # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: GetParsedModuleWithComments -> () #
Eq GetParsedModuleWithComments # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods (==) :: GetParsedModuleWithComments -> GetParsedModuleWithComments -> Bool # (/=) :: GetParsedModuleWithComments -> GetParsedModuleWithComments -> Bool #
Hashable GetParsedModuleWithComments # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods hashWithSalt :: Int -> GetParsedModuleWithComments -> Int # hash :: GetParsedModuleWithComments -> Int #
type Rep GetParsedModuleWithComments # |
Instance details Defined in Development.IDE.Core.RuleTypes type Rep GetParsedModuleWithComments = D1 ('MetaData "GetParsedModuleWithComments" "Development.IDE.Core.RuleTypes" "ghcide-2.4.0.0-2GLANXY6yWhIRmLZNYhiFQ" 'False) (C1 ('MetaCons "GetParsedModuleWithComments" 'PrefixI 'False) (U1 :: Type -> Type))
type RuleResult GetParsedModuleWithComments # | The parse tree for the file using GetFileContents, all comments included using Opt_KeepRawTokenStream
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GetParsedModuleWithComments = ParsedModule

data GetModuleGraph #

Constructors

GetModuleGraph |

#### Instances

Instances details

Generic GetModuleGraph # |
Instance details Defined in Development.IDE.Core.RuleTypes Associated Types type Rep GetModuleGraph :: Type -> Type Methods from :: GetModuleGraph -> Rep GetModuleGraph x to :: Rep GetModuleGraph x -> GetModuleGraph
Show GetModuleGraph # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> GetModuleGraph -> ShowS # show :: GetModuleGraph -> String # showList :: [GetModuleGraph] -> ShowS #
NFData GetModuleGraph # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: GetModuleGraph -> () #
Eq GetModuleGraph # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods (==) :: GetModuleGraph -> GetModuleGraph -> Bool # (/=) :: GetModuleGraph -> GetModuleGraph -> Bool #
Hashable GetModuleGraph # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods hashWithSalt :: Int -> GetModuleGraph -> Int # hash :: GetModuleGraph -> Int #
type Rep GetModuleGraph # |
Instance details Defined in Development.IDE.Core.RuleTypes type Rep GetModuleGraph = D1 ('MetaData "GetModuleGraph" "Development.IDE.Core.RuleTypes" "ghcide-2.4.0.0-2GLANXY6yWhIRmLZNYhiFQ" 'False) (C1 ('MetaCons "GetModuleGraph" 'PrefixI 'False) (U1 :: Type -> Type))
type RuleResult GetModuleGraph # |
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GetModuleGraph = DependencyInformation

data GetKnownTargets #

Constructors

GetKnownTargets |

#### Instances

Instances details

Generic GetKnownTargets # |
Instance details Defined in Development.IDE.Core.RuleTypes Associated Types type Rep GetKnownTargets :: Type -> Type Methods from :: GetKnownTargets -> Rep GetKnownTargets x to :: Rep GetKnownTargets x -> GetKnownTargets
Show GetKnownTargets # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> GetKnownTargets -> ShowS # show :: GetKnownTargets -> String # showList :: [GetKnownTargets] -> ShowS #
NFData GetKnownTargets # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: GetKnownTargets -> () #
Eq GetKnownTargets # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods (==) :: GetKnownTargets -> GetKnownTargets -> Bool # (/=) :: GetKnownTargets -> GetKnownTargets -> Bool #
Ord GetKnownTargets # |

Instance details

Defined in Development.IDE.Core.RuleTypes

Methods

compare :: GetKnownTargets -> GetKnownTargets -> Ordering

(<) :: GetKnownTargets -> GetKnownTargets -> Bool

(<=) :: GetKnownTargets -> GetKnownTargets -> Bool

(>) :: GetKnownTargets -> GetKnownTargets -> Bool

(>=) :: GetKnownTargets -> GetKnownTargets -> Bool

max :: GetKnownTargets -> GetKnownTargets -> GetKnownTargets

min :: GetKnownTargets -> GetKnownTargets -> GetKnownTargets

Hashable GetKnownTargets # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods hashWithSalt :: Int -> GetKnownTargets -> Int # hash :: GetKnownTargets -> Int #
type Rep GetKnownTargets # |
Instance details Defined in Development.IDE.Core.RuleTypes type Rep GetKnownTargets = D1 ('MetaData "GetKnownTargets" "Development.IDE.Core.RuleTypes" "ghcide-2.4.0.0-2GLANXY6yWhIRmLZNYhiFQ" 'False) (C1 ('MetaCons "GetKnownTargets" 'PrefixI 'False) (U1 :: Type -> Type))
type RuleResult GetKnownTargets # |
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GetKnownTargets = KnownTargets

data GetLinkable #

Constructors

GetLinkable |

#### Instances

Instances details

Generic GetLinkable # |
Instance details Defined in Development.IDE.Core.RuleTypes Associated Types type Rep GetLinkable :: Type -> Type Methods from :: GetLinkable -> Rep GetLinkable x to :: Rep GetLinkable x -> GetLinkable
Show GetLinkable # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> GetLinkable -> ShowS # show :: GetLinkable -> String # showList :: [GetLinkable] -> ShowS #
NFData GetLinkable # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: GetLinkable -> () #
Eq GetLinkable # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods (==) :: GetLinkable -> GetLinkable -> Bool # (/=) :: GetLinkable -> GetLinkable -> Bool #
Hashable GetLinkable # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods hashWithSalt :: Int -> GetLinkable -> Int # hash :: GetLinkable -> Int #
type Rep GetLinkable # |
Instance details Defined in Development.IDE.Core.RuleTypes type Rep GetLinkable = D1 ('MetaData "GetLinkable" "Development.IDE.Core.RuleTypes" "ghcide-2.4.0.0-2GLANXY6yWhIRmLZNYhiFQ" 'False) (C1 ('MetaCons "GetLinkable" 'PrefixI 'False) (U1 :: Type -> Type))
type RuleResult GetLinkable # |
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GetLinkable = LinkableResult

data LinkableResult #

Constructors

LinkableResult |

Fields

- linkableHomeMod :: !HomeModInfo
- linkableHash :: !ByteString

  The hash of the core file

#### Instances

Instances details

Show LinkableResult # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> LinkableResult -> ShowS # show :: LinkableResult -> String # showList :: [LinkableResult] -> ShowS #
NFData LinkableResult # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: LinkableResult -> () #

data GetImportMap #

Constructors

GetImportMap |

#### Instances

Instances details

Generic GetImportMap # |
Instance details Defined in Development.IDE.Core.RuleTypes Associated Types type Rep GetImportMap :: Type -> Type Methods from :: GetImportMap -> Rep GetImportMap x to :: Rep GetImportMap x -> GetImportMap
Show GetImportMap # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> GetImportMap -> ShowS # show :: GetImportMap -> String # showList :: [GetImportMap] -> ShowS #
NFData GetImportMap # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: GetImportMap -> () #
Eq GetImportMap # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods (==) :: GetImportMap -> GetImportMap -> Bool # (/=) :: GetImportMap -> GetImportMap -> Bool #
Hashable GetImportMap # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods hashWithSalt :: Int -> GetImportMap -> Int # hash :: GetImportMap -> Int #
type Rep GetImportMap # |
Instance details Defined in Development.IDE.Core.RuleTypes type Rep GetImportMap = D1 ('MetaData "GetImportMap" "Development.IDE.Core.RuleTypes" "ghcide-2.4.0.0-2GLANXY6yWhIRmLZNYhiFQ" 'False) (C1 ('MetaCons "GetImportMap" 'PrefixI 'False) (U1 :: Type -> Type))
type RuleResult GetImportMap # |
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GetImportMap = ImportMap

data Splices #

Constructors

Splices |

Fields

- exprSplices :: [(LHsExpr GhcTc, LHsExpr GhcPs)]
- patSplices :: [(LHsExpr GhcTc, LPat GhcPs)]
- typeSplices :: [(LHsExpr GhcTc, LHsType GhcPs)]
- declSplices :: [(LHsExpr GhcTc, [LHsDecl GhcPs])]
- awSplices :: [(LHsExpr GhcTc, Serialized)]

#### Instances

Instances details

Monoid Splices # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods mempty :: Splices # mappend :: Splices -> Splices -> Splices # mconcat :: [Splices] -> Splices #
Semigroup Splices # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods (<>) :: Splices -> Splices -> Splices # sconcat :: NonEmpty Splices -> Splices # stimes :: Integral b => b -> Splices -> Splices #
NFData Splices # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: Splices -> () #

data HiFileResult #

Constructors

HiFileResult |

Fields

- hirModSummary :: !ModSummary
- hirModIface :: !ModIface
- hirModDetails :: ModDetails

  Populated lazily

- hirIfaceFp :: !ByteString

  Fingerprint for the ModIface

- hirRuntimeModules :: !(ModuleEnv ByteString)

  same as tmrRuntimeModules

- hirCoreFp :: !(Maybe (CoreFile, ByteString))

  If we wrote a core file for this module, then its contents (lazily deserialised) along with its hash

#### Instances

Instances details

Show HiFileResult # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> HiFileResult -> ShowS # show :: HiFileResult -> String # showList :: [HiFileResult] -> ShowS #
NFData HiFileResult # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: HiFileResult -> () #

data HieAstResult #

Save the uncompressed AST here, we compress it just before writing to disk

Constructors

forall a.Typeable a => HAR |

Fields

- hieModule :: Module
- hieAst :: !(HieASTs a)
- refMap :: RefMap a

  Lazy because its value only depends on the hieAst, which is bundled in this type Lazyness can't cause leaks here because the lifetime of `refMap` will be the same as that of `hieAst`

- typeRefs :: Map Name [RealSrcSpan]

  type references in this file

- hieKind :: !(HieKind a)

  Is this hie file loaded from the disk, or freshly computed?

#### Instances

Instances details

Show HieAstResult # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> HieAstResult -> ShowS # show :: HieAstResult -> String # showList :: [HieAstResult] -> ShowS #
NFData HieAstResult # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: HieAstResult -> () #

data HieKind a where #

Constructors

HieFromDisk :: !HieFile -> HieKind TypeIndex |
HieFresh :: HieKind Type |

#### Instances

Instances details

NFData (HieKind a) # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: HieKind a -> () #

data GetBindings #

Constructors

GetBindings |

#### Instances

Instances details

Generic GetBindings # |
Instance details Defined in Development.IDE.Core.RuleTypes Associated Types type Rep GetBindings :: Type -> Type Methods from :: GetBindings -> Rep GetBindings x to :: Rep GetBindings x -> GetBindings
Show GetBindings # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> GetBindings -> ShowS # show :: GetBindings -> String # showList :: [GetBindings] -> ShowS #
NFData GetBindings # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: GetBindings -> () #
Eq GetBindings # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods (==) :: GetBindings -> GetBindings -> Bool # (/=) :: GetBindings -> GetBindings -> Bool #
Hashable GetBindings # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods hashWithSalt :: Int -> GetBindings -> Int # hash :: GetBindings -> Int #
type Rep GetBindings # |
Instance details Defined in Development.IDE.Core.RuleTypes type Rep GetBindings = D1 ('MetaData "GetBindings" "Development.IDE.Core.RuleTypes" "ghcide-2.4.0.0-2GLANXY6yWhIRmLZNYhiFQ" 'False) (C1 ('MetaCons "GetBindings" 'PrefixI 'False) (U1 :: Type -> Type))
type RuleResult GetBindings # | A IntervalMap telling us what is in scope at each point
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GetBindings = Bindings

data DocAndKindMap #

Constructors

DKMap |

Fields

- getDocMap :: !DocMap
- getKindMap :: !KindMap

#### Instances

Instances details

Show DocAndKindMap # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> DocAndKindMap -> ShowS # show :: DocAndKindMap -> String # showList :: [DocAndKindMap] -> ShowS #
NFData DocAndKindMap # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: DocAndKindMap -> () #

data GetDocMap #

Constructors

GetDocMap |

#### Instances

Instances details

Generic GetDocMap # |
Instance details Defined in Development.IDE.Core.RuleTypes Associated Types type Rep GetDocMap :: Type -> Type Methods from :: GetDocMap -> Rep GetDocMap x to :: Rep GetDocMap x -> GetDocMap
Show GetDocMap # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> GetDocMap -> ShowS # show :: GetDocMap -> String # showList :: [GetDocMap] -> ShowS #
NFData GetDocMap # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: GetDocMap -> () #
Eq GetDocMap # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods (==) :: GetDocMap -> GetDocMap -> Bool # (/=) :: GetDocMap -> GetDocMap -> Bool #
Hashable GetDocMap # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods hashWithSalt :: Int -> GetDocMap -> Int # hash :: GetDocMap -> Int #
type Rep GetDocMap # |
Instance details Defined in Development.IDE.Core.RuleTypes type Rep GetDocMap = D1 ('MetaData "GetDocMap" "Development.IDE.Core.RuleTypes" "ghcide-2.4.0.0-2GLANXY6yWhIRmLZNYhiFQ" 'False) (C1 ('MetaCons "GetDocMap" 'PrefixI 'False) (U1 :: Type -> Type))
type RuleResult GetDocMap # |
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GetDocMap = DocAndKindMap

data GetLocatedImports #

Constructors

GetLocatedImports |

#### Instances

Instances details

Generic GetLocatedImports # |
Instance details Defined in Development.IDE.Core.RuleTypes Associated Types type Rep GetLocatedImports :: Type -> Type Methods from :: GetLocatedImports -> Rep GetLocatedImports x to :: Rep GetLocatedImports x -> GetLocatedImports
Show GetLocatedImports # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> GetLocatedImports -> ShowS # show :: GetLocatedImports -> String # showList :: [GetLocatedImports] -> ShowS #
NFData GetLocatedImports # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: GetLocatedImports -> () #
Eq GetLocatedImports # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods (==) :: GetLocatedImports -> GetLocatedImports -> Bool # (/=) :: GetLocatedImports -> GetLocatedImports -> Bool #
Hashable GetLocatedImports # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods hashWithSalt :: Int -> GetLocatedImports -> Int # hash :: GetLocatedImports -> Int #
type Rep GetLocatedImports # |
Instance details Defined in Development.IDE.Core.RuleTypes type Rep GetLocatedImports = D1 ('MetaData "GetLocatedImports" "Development.IDE.Core.RuleTypes" "ghcide-2.4.0.0-2GLANXY6yWhIRmLZNYhiFQ" 'False) (C1 ('MetaCons "GetLocatedImports" 'PrefixI 'False) (U1 :: Type -> Type))
type RuleResult GetLocatedImports # | Resolve the imports in a module to the file path of a module in the same package
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GetLocatedImports = [(Located ModuleName, Maybe ArtifactsLocation)]

data ReportImportCycles #

Constructors

ReportImportCycles |

#### Instances

Instances details

Generic ReportImportCycles # |
Instance details Defined in Development.IDE.Core.RuleTypes Associated Types type Rep ReportImportCycles :: Type -> Type Methods from :: ReportImportCycles -> Rep ReportImportCycles x to :: Rep ReportImportCycles x -> ReportImportCycles
Show ReportImportCycles # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> ReportImportCycles -> ShowS # show :: ReportImportCycles -> String # showList :: [ReportImportCycles] -> ShowS #
NFData ReportImportCycles # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: ReportImportCycles -> () #
Eq ReportImportCycles # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods (==) :: ReportImportCycles -> ReportImportCycles -> Bool # (/=) :: ReportImportCycles -> ReportImportCycles -> Bool #
Hashable ReportImportCycles # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods hashWithSalt :: Int -> ReportImportCycles -> Int # hash :: ReportImportCycles -> Int #
type Rep ReportImportCycles # |
Instance details Defined in Development.IDE.Core.RuleTypes type Rep ReportImportCycles = D1 ('MetaData "ReportImportCycles" "Development.IDE.Core.RuleTypes" "ghcide-2.4.0.0-2GLANXY6yWhIRmLZNYhiFQ" 'False) (C1 ('MetaCons "ReportImportCycles" 'PrefixI 'False) (U1 :: Type -> Type))
type RuleResult ReportImportCycles # | This rule is used to report import cycles. It depends on GetModuleGraph. We cannot report the cycles directly from GetModuleGraph since we can only report diagnostics for the current file.
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult ReportImportCycles = ()

data GetModIfaceFromDisk #

Constructors

GetModIfaceFromDisk |

#### Instances

Instances details

Generic GetModIfaceFromDisk # |
Instance details Defined in Development.IDE.Core.RuleTypes Associated Types type Rep GetModIfaceFromDisk :: Type -> Type Methods from :: GetModIfaceFromDisk -> Rep GetModIfaceFromDisk x to :: Rep GetModIfaceFromDisk x -> GetModIfaceFromDisk
Show GetModIfaceFromDisk # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> GetModIfaceFromDisk -> ShowS # show :: GetModIfaceFromDisk -> String # showList :: [GetModIfaceFromDisk] -> ShowS #
NFData GetModIfaceFromDisk # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: GetModIfaceFromDisk -> () #
Eq GetModIfaceFromDisk # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods (==) :: GetModIfaceFromDisk -> GetModIfaceFromDisk -> Bool # (/=) :: GetModIfaceFromDisk -> GetModIfaceFromDisk -> Bool #
Hashable GetModIfaceFromDisk # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods hashWithSalt :: Int -> GetModIfaceFromDisk -> Int # hash :: GetModIfaceFromDisk -> Int #
type Rep GetModIfaceFromDisk # |
Instance details Defined in Development.IDE.Core.RuleTypes type Rep GetModIfaceFromDisk = D1 ('MetaData "GetModIfaceFromDisk" "Development.IDE.Core.RuleTypes" "ghcide-2.4.0.0-2GLANXY6yWhIRmLZNYhiFQ" 'False) (C1 ('MetaCons "GetModIfaceFromDisk" 'PrefixI 'False) (U1 :: Type -> Type))
type RuleResult GetModIfaceFromDisk # | Read the module interface file from disk. Throws an error for VFS files. This is an internal rule, use `GetModIface` instead.
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GetModIfaceFromDisk = HiFileResult

data GetModIfaceFromDiskAndIndex #

Constructors

GetModIfaceFromDiskAndIndex |

#### Instances

Instances details

Generic GetModIfaceFromDiskAndIndex # |
Instance details Defined in Development.IDE.Core.RuleTypes Associated Types type Rep GetModIfaceFromDiskAndIndex :: Type -> Type Methods from :: GetModIfaceFromDiskAndIndex -> Rep GetModIfaceFromDiskAndIndex x to :: Rep GetModIfaceFromDiskAndIndex x -> GetModIfaceFromDiskAndIndex
Show GetModIfaceFromDiskAndIndex # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> GetModIfaceFromDiskAndIndex -> ShowS # show :: GetModIfaceFromDiskAndIndex -> String # showList :: [GetModIfaceFromDiskAndIndex] -> ShowS #
NFData GetModIfaceFromDiskAndIndex # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: GetModIfaceFromDiskAndIndex -> () #
Eq GetModIfaceFromDiskAndIndex # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods (==) :: GetModIfaceFromDiskAndIndex -> GetModIfaceFromDiskAndIndex -> Bool # (/=) :: GetModIfaceFromDiskAndIndex -> GetModIfaceFromDiskAndIndex -> Bool #
Hashable GetModIfaceFromDiskAndIndex # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods hashWithSalt :: Int -> GetModIfaceFromDiskAndIndex -> Int # hash :: GetModIfaceFromDiskAndIndex -> Int #
type Rep GetModIfaceFromDiskAndIndex # |
Instance details Defined in Development.IDE.Core.RuleTypes type Rep GetModIfaceFromDiskAndIndex = D1 ('MetaData "GetModIfaceFromDiskAndIndex" "Development.IDE.Core.RuleTypes" "ghcide-2.4.0.0-2GLANXY6yWhIRmLZNYhiFQ" 'False) (C1 ('MetaCons "GetModIfaceFromDiskAndIndex" 'PrefixI 'False) (U1 :: Type -> Type))
type RuleResult GetModIfaceFromDiskAndIndex # | GetModIfaceFromDisk and index the `.hie` file into the database. This is an internal rule, use `GetModIface` instead.
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GetModIfaceFromDiskAndIndex = HiFileResult

data GetModIface #

Constructors

GetModIface |

#### Instances

Instances details

Generic GetModIface # |
Instance details Defined in Development.IDE.Core.RuleTypes Associated Types type Rep GetModIface :: Type -> Type Methods from :: GetModIface -> Rep GetModIface x to :: Rep GetModIface x -> GetModIface
Show GetModIface # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> GetModIface -> ShowS # show :: GetModIface -> String # showList :: [GetModIface] -> ShowS #
NFData GetModIface # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: GetModIface -> () #
Eq GetModIface # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods (==) :: GetModIface -> GetModIface -> Bool # (/=) :: GetModIface -> GetModIface -> Bool #
Hashable GetModIface # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods hashWithSalt :: Int -> GetModIface -> Int # hash :: GetModIface -> Int #
type Rep GetModIface # |
Instance details Defined in Development.IDE.Core.RuleTypes type Rep GetModIface = D1 ('MetaData "GetModIface" "Development.IDE.Core.RuleTypes" "ghcide-2.4.0.0-2GLANXY6yWhIRmLZNYhiFQ" 'False) (C1 ('MetaCons "GetModIface" 'PrefixI 'False) (U1 :: Type -> Type))
type RuleResult GetModIface # | Get a module interface details, either from an interface file or a typechecked module
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GetModIface = HiFileResult

data GetFileContents #

Constructors

GetFileContents |

#### Instances

Instances details

Generic GetFileContents # |
Instance details Defined in Development.IDE.Core.RuleTypes Associated Types type Rep GetFileContents :: Type -> Type Methods from :: GetFileContents -> Rep GetFileContents x to :: Rep GetFileContents x -> GetFileContents
Show GetFileContents # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> GetFileContents -> ShowS # show :: GetFileContents -> String # showList :: [GetFileContents] -> ShowS #
NFData GetFileContents # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: GetFileContents -> () #
Eq GetFileContents # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods (==) :: GetFileContents -> GetFileContents -> Bool # (/=) :: GetFileContents -> GetFileContents -> Bool #
Hashable GetFileContents # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods hashWithSalt :: Int -> GetFileContents -> Int # hash :: GetFileContents -> Int #
type Rep GetFileContents # |
Instance details Defined in Development.IDE.Core.RuleTypes type Rep GetFileContents = D1 ('MetaData "GetFileContents" "Development.IDE.Core.RuleTypes" "ghcide-2.4.0.0-2GLANXY6yWhIRmLZNYhiFQ" 'False) (C1 ('MetaCons "GetFileContents" 'PrefixI 'False) (U1 :: Type -> Type))
type RuleResult GetFileContents # | Get the contents of a file, either dirty (if the buffer is modified) or Nothing to mean use from disk.
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GetFileContents = (FileVersion, Maybe Text)

data AddWatchedFile #

Constructors

AddWatchedFile |

#### Instances

Instances details

Generic AddWatchedFile # |
Instance details Defined in Development.IDE.Core.RuleTypes Associated Types type Rep AddWatchedFile :: Type -> Type Methods from :: AddWatchedFile -> Rep AddWatchedFile x to :: Rep AddWatchedFile x -> AddWatchedFile
Show AddWatchedFile # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> AddWatchedFile -> ShowS # show :: AddWatchedFile -> String # showList :: [AddWatchedFile] -> ShowS #
NFData AddWatchedFile # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: AddWatchedFile -> () #
Eq AddWatchedFile # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods (==) :: AddWatchedFile -> AddWatchedFile -> Bool # (/=) :: AddWatchedFile -> AddWatchedFile -> Bool #
Hashable AddWatchedFile # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods hashWithSalt :: Int -> AddWatchedFile -> Int # hash :: AddWatchedFile -> Int #
type Rep AddWatchedFile # |
Instance details Defined in Development.IDE.Core.RuleTypes type Rep AddWatchedFile = D1 ('MetaData "AddWatchedFile" "Development.IDE.Core.RuleTypes" "ghcide-2.4.0.0-2GLANXY6yWhIRmLZNYhiFQ" 'False) (C1 ('MetaCons "AddWatchedFile" 'PrefixI 'False) (U1 :: Type -> Type))
type RuleResult AddWatchedFile # |
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult AddWatchedFile = Bool

data IsFileOfInterestResult #

Constructors

NotFOI |
IsFOI FileOfInterestStatus |

#### Instances

Instances details

Generic IsFileOfInterestResult # |
Instance details Defined in Development.IDE.Core.RuleTypes Associated Types type Rep IsFileOfInterestResult :: Type -> Type Methods from :: IsFileOfInterestResult -> Rep IsFileOfInterestResult x to :: Rep IsFileOfInterestResult x -> IsFileOfInterestResult
Show IsFileOfInterestResult # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> IsFileOfInterestResult -> ShowS # show :: IsFileOfInterestResult -> String # showList :: [IsFileOfInterestResult] -> ShowS #
NFData IsFileOfInterestResult # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: IsFileOfInterestResult -> () #
Eq IsFileOfInterestResult # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods (==) :: IsFileOfInterestResult -> IsFileOfInterestResult -> Bool # (/=) :: IsFileOfInterestResult -> IsFileOfInterestResult -> Bool #
Hashable IsFileOfInterestResult # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods hashWithSalt :: Int -> IsFileOfInterestResult -> Int # hash :: IsFileOfInterestResult -> Int #
type Rep IsFileOfInterestResult # |

Instance details

Defined in Development.IDE.Core.RuleTypes

type Rep IsFileOfInterestResult = D1 ('MetaData "IsFileOfInterestResult" "Development.IDE.Core.RuleTypes" "ghcide-2.4.0.0-2GLANXY6yWhIRmLZNYhiFQ" 'False) (C1 ('MetaCons "NotFOI" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "IsFOI" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FileOfInterestStatus)))

data IsFileOfInterest #

Constructors

IsFileOfInterest |

#### Instances

Instances details

Generic IsFileOfInterest # |
Instance details Defined in Development.IDE.Core.RuleTypes Associated Types type Rep IsFileOfInterest :: Type -> Type Methods from :: IsFileOfInterest -> Rep IsFileOfInterest x to :: Rep IsFileOfInterest x -> IsFileOfInterest
Show IsFileOfInterest # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> IsFileOfInterest -> ShowS # show :: IsFileOfInterest -> String # showList :: [IsFileOfInterest] -> ShowS #
NFData IsFileOfInterest # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: IsFileOfInterest -> () #
Eq IsFileOfInterest # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods (==) :: IsFileOfInterest -> IsFileOfInterest -> Bool # (/=) :: IsFileOfInterest -> IsFileOfInterest -> Bool #
Hashable IsFileOfInterest # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods hashWithSalt :: Int -> IsFileOfInterest -> Int # hash :: IsFileOfInterest -> Int #
type Rep IsFileOfInterest # |
Instance details Defined in Development.IDE.Core.RuleTypes type Rep IsFileOfInterest = D1 ('MetaData "IsFileOfInterest" "Development.IDE.Core.RuleTypes" "ghcide-2.4.0.0-2GLANXY6yWhIRmLZNYhiFQ" 'False) (C1 ('MetaCons "IsFileOfInterest" 'PrefixI 'False) (U1 :: Type -> Type))
type RuleResult IsFileOfInterest # |
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult IsFileOfInterest = IsFileOfInterestResult

data ModSummaryResult #

Constructors

ModSummaryResult |

Fields

- msrModSummary :: !ModSummary
- msrImports :: [LImportDecl GhcPs]
- msrFingerprint :: !Fingerprint
- msrHscEnv :: !HscEnv

  HscEnv for this particular ModSummary. Contains initialised plugins, parsed options, etc...

  Implicit assumption: DynFlags in `msrModSummary` are the same as the DynFlags in `msrHscEnv`.

#### Instances

Instances details

Show ModSummaryResult # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> ModSummaryResult -> ShowS # show :: ModSummaryResult -> String # showList :: [ModSummaryResult] -> ShowS #
NFData ModSummaryResult # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: ModSummaryResult -> () #

data GetModSummary #

Constructors

GetModSummary |

#### Instances

Instances details

Generic GetModSummary # |
Instance details Defined in Development.IDE.Core.RuleTypes Associated Types type Rep GetModSummary :: Type -> Type Methods from :: GetModSummary -> Rep GetModSummary x to :: Rep GetModSummary x -> GetModSummary
Show GetModSummary # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> GetModSummary -> ShowS # show :: GetModSummary -> String # showList :: [GetModSummary] -> ShowS #
NFData GetModSummary # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: GetModSummary -> () #
Eq GetModSummary # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods (==) :: GetModSummary -> GetModSummary -> Bool # (/=) :: GetModSummary -> GetModSummary -> Bool #
Hashable GetModSummary # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods hashWithSalt :: Int -> GetModSummary -> Int # hash :: GetModSummary -> Int #
type Rep GetModSummary # |
Instance details Defined in Development.IDE.Core.RuleTypes type Rep GetModSummary = D1 ('MetaData "GetModSummary" "Development.IDE.Core.RuleTypes" "ghcide-2.4.0.0-2GLANXY6yWhIRmLZNYhiFQ" 'False) (C1 ('MetaCons "GetModSummary" 'PrefixI 'False) (U1 :: Type -> Type))
type RuleResult GetModSummary # | Generate a ModSummary that has enough information to be used to get .hi and .hie files. without needing to parse the entire source
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GetModSummary = ModSummaryResult

data GetModSummaryWithoutTimestamps #

Constructors

GetModSummaryWithoutTimestamps |

#### Instances

Instances details

Generic GetModSummaryWithoutTimestamps # |
Instance details Defined in Development.IDE.Core.RuleTypes Associated Types type Rep GetModSummaryWithoutTimestamps :: Type -> Type Methods from :: GetModSummaryWithoutTimestamps -> Rep GetModSummaryWithoutTimestamps x to :: Rep GetModSummaryWithoutTimestamps x -> GetModSummaryWithoutTimestamps
Show GetModSummaryWithoutTimestamps # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> GetModSummaryWithoutTimestamps -> ShowS # show :: GetModSummaryWithoutTimestamps -> String # showList :: [GetModSummaryWithoutTimestamps] -> ShowS #
NFData GetModSummaryWithoutTimestamps # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: GetModSummaryWithoutTimestamps -> () #
Eq GetModSummaryWithoutTimestamps # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods (==) :: GetModSummaryWithoutTimestamps -> GetModSummaryWithoutTimestamps -> Bool # (/=) :: GetModSummaryWithoutTimestamps -> GetModSummaryWithoutTimestamps -> Bool #
Hashable GetModSummaryWithoutTimestamps # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods hashWithSalt :: Int -> GetModSummaryWithoutTimestamps -> Int # hash :: GetModSummaryWithoutTimestamps -> Int #
type Rep GetModSummaryWithoutTimestamps # |
Instance details Defined in Development.IDE.Core.RuleTypes type Rep GetModSummaryWithoutTimestamps = D1 ('MetaData "GetModSummaryWithoutTimestamps" "Development.IDE.Core.RuleTypes" "ghcide-2.4.0.0-2GLANXY6yWhIRmLZNYhiFQ" 'False) (C1 ('MetaCons "GetModSummaryWithoutTimestamps" 'PrefixI 'False) (U1 :: Type -> Type))
type RuleResult GetModSummaryWithoutTimestamps # | Generate a ModSummary with the timestamps and preprocessed content elided, for more successful early cutoff
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult GetModSummaryWithoutTimestamps = ModSummaryResult

data NeedsCompilation #

Constructors

NeedsCompilation |

#### Instances

Instances details

Generic NeedsCompilation # |
Instance details Defined in Development.IDE.Core.RuleTypes Associated Types type Rep NeedsCompilation :: Type -> Type Methods from :: NeedsCompilation -> Rep NeedsCompilation x to :: Rep NeedsCompilation x -> NeedsCompilation
Show NeedsCompilation # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods showsPrec :: Int -> NeedsCompilation -> ShowS # show :: NeedsCompilation -> String # showList :: [NeedsCompilation] -> ShowS #
NFData NeedsCompilation # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods rnf :: NeedsCompilation -> () #
Eq NeedsCompilation # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods (==) :: NeedsCompilation -> NeedsCompilation -> Bool # (/=) :: NeedsCompilation -> NeedsCompilation -> Bool #
Hashable NeedsCompilation # |
Instance details Defined in Development.IDE.Core.RuleTypes Methods hashWithSalt :: Int -> NeedsCompilation -> Int # hash :: NeedsCompilation -> Int #
type Rep NeedsCompilation # |
Instance details Defined in Development.IDE.Core.RuleTypes type Rep NeedsCompilation = D1 ('MetaData "NeedsCompilation" "Development.IDE.Core.RuleTypes" "ghcide-2.4.0.0-2GLANXY6yWhIRmLZNYhiFQ" 'False) (C1 ('MetaCons "NeedsCompilation" 'PrefixI 'False) (U1 :: Type -> Type))
type RuleResult NeedsCompilation # | Does this module need to be compiled?
Instance details Defined in Development.IDE.Core.RuleTypes type RuleResult NeedsCompilation = Maybe LinkableType

pattern GetModificationTime :: GetModificationTime #

(<>) :: Semigroup a => a -> a -> a #

list :: [Doc ann] -> Doc ann #

Haskell-inspired variant of `encloseSep` with braces and comma as separator.

    >>> let doc = list (map pretty [1,20,300,4000])

    >>> putDocW 80 doc
    [1, 20, 300, 4000]

    >>> putDocW 10 doc
    [ 1
    , 20
    , 300
    , 4000 ]

comma :: Doc ann #

    >>> comma
    ,

colon :: Doc ann #

    >>> colon
    :

(<+>) :: Doc ann -> Doc ann -> Doc ann infixr 6 #

`(x `<+>` y)` concatenates document `x` and `y` with a ``space`` in between.

    >>> "hello" <+> "world"
    hello world

    x <+> y = x <> space <> y

brackets :: Doc ann -> Doc ann #

    >>> brackets "·"
    [·]

indent #

Arguments

:: Int | Number of spaces to increase indentation by
-> Doc ann |
-> Doc ann |

`(`indent` i x)` indents document `x` by `i` columns, starting from the current cursor position.

    >>> let doc = reflow "The indent function indents these words!"
    >>> putDocW 24 ("prefix" <> indent 4 doc)
    prefix    The indent
              function
              indents these
              words!

    indent i d = hang i ({i spaces} <> d)

runParser :: DynFlags -> String -> P a -> ParseResult a #

space :: Doc ann #

    >>> "a" <> space <> "b"
    a b

This is mostly used via ``<+>``,

    >>> "a" <+> "b"
    a b

group :: Doc ann -> Doc ann #

`(`group` x)` tries laying out `x` into a single line by removing the contained line breaks; if this does not fit the page, or when a `hardline` within `x` prevents it from being flattened, `x` is laid out without any changes.

The `group` function is key to layouts that adapt to available space nicely.

See `vcat`, `line`, or `flatAlt` for examples that are related, or make good use of it.

parens :: Doc ann -> Doc ann #

    >>> parens "·"
    (·)

cfilter :: (a -> Bool) -> Recorder a -> Recorder a #

cmap :: (a -> b) -> Recorder b -> Recorder a #

pipe :: Doc ann #

    >>> pipe
    |

fuse :: FusionDepth -> Doc ann -> Doc ann #

`(`fuse` depth doc)` combines text nodes so they can be rendered more efficiently. A fused document is always laid out identical to its unfused version.

When laying a `Doc`ument out to a `SimpleDocStream`, every component of the input is translated directly to the simpler output format. This sometimes yields undesirable chunking when many pieces have been concatenated together.

For example

    >>> "a" <> "b" <> pretty 'c' <> "d"
    abcd

results in a chain of four entries in a `SimpleDocStream`, although this is fully equivalent to the tightly packed

    >>> "abcd" :: Doc ann
    abcd

which is only a single `SimpleDocStream` entry, and can be processed faster.

It is therefore a good idea to run `fuse` on concatenations of lots of small strings that are used many times:

    >>> let oftenUsed = fuse Shallow ("a" <> "b" <> pretty 'c' <> "d")
    >>> hsep (replicate 5 oftenUsed)
    abcd abcd abcd abcd abcd

line :: Doc ann #

The ``line`` document advances to the next line and indents to the current nesting level.

    >>> let doc = "lorem ipsum" <> line <> "dolor sit amet"
    >>> doc
    lorem ipsum
    dolor sit amet

``line`` behaves like ``space`` if the line break is undone by `group`:

    >>> group doc
    lorem ipsum dolor sit amet

column :: (Int -> Doc ann) -> Doc ann #

Layout a document depending on which column it starts at. `align` is implemented in terms of `column`.

    >>> column (\l -> "Columns are" <+> pretty l <> "-based.")
    Columns are 0-based.

    >>> let doc = "prefix" <+> column (\l -> "| <- column" <+> pretty l)
    >>> vsep [indent n doc | n <- [0,4,8]]
    prefix | <- column 7
        prefix | <- column 11
            prefix | <- column 15

equals :: Doc ann #

    >>> equals
    =

nest #

Arguments

:: Int | Change of nesting level
-> Doc ann |
-> Doc ann |

`(`nest` i x)` lays out the document `x` with the current nesting level (indentation of the following lines) increased by `i`. Negative values are allowed, and decrease the nesting level accordingly.

    >>> vsep [nest 4 (vsep ["lorem", "ipsum", "dolor"]), "sit", "amet"]
    lorem
        ipsum
        dolor
    sit
    amet

See also

- `hang` (`nest` relative to current cursor position instead of current nesting level)
- `align` (set nesting level to current cursor position)
- `indent` (increase indentation on the spot, padding with spaces).

tupled :: [Doc ann] -> Doc ann #

Haskell-inspired variant of `encloseSep` with parentheses and comma as separator.

    >>> let doc = tupled (map pretty [1,20,300,4000])

    >>> putDocW 80 doc
    (1, 20, 300, 4000)

    >>> putDocW 10 doc
    ( 1
    , 20
    , 300
    , 4000 )

ghcVersion :: GhcVersion #

hang #

Arguments

:: Int | Change of nesting level, relative to the start of the first line
-> Doc ann |
-> Doc ann |

`(`hang` i x)` lays out the document `x` with a nesting level set to the current column plus `i`. Negative values are allowed, and decrease the nesting level accordingly.

    >>> let doc = reflow "Indenting these words with hang"
    >>> putDocW 24 ("prefix" <+> hang 4 doc)
    prefix Indenting these
               words with
               hang

This differs from `nest`, which is based on the current nesting level plus `i`. When you're not sure, try the more efficient `nest` first. In our example, this would yield

    >>> let doc = reflow "Indenting these words with nest"
    >>> putDocW 24 ("prefix" <+> nest 4 doc)
    prefix Indenting these
        words with nest

    hang i doc = align (nest i doc)

action :: Action a -> Rules () #

renderStrict :: SimpleDocStream ann -> Text #

`(`renderStrict` sdoc)` takes the output `sdoc` from a rendering function and transforms it to strict text.

logError :: Logger -> Text -> IO () #

logWarning :: Logger -> Text -> IO () #

logInfo :: Logger -> Text -> IO () #

logDebug :: Logger -> Text -> IO () #

noLogging :: Logger #

logWith :: (HasCallStack, MonadIO m) => Recorder (WithPriority msg) -> Priority -> msg -> m () #

cmapWithPrio :: (a -> b) -> Recorder (WithPriority b) -> Recorder (WithPriority a) #

cmapIO :: (a -> IO b) -> Recorder b -> Recorder a #

makeDefaultStderrRecorder :: MonadIO m => Maybe [LoggingColumn] -> m (Recorder (WithPriority (Doc a))) #

withFileRecorder #

Arguments

:: MonadUnliftIO m |
=> FilePath | Log file path.
-> Maybe [LoggingColumn] | logging columns to display. `Nothing` uses `defaultLoggingColumns`
-> (Either IOException (Recorder (WithPriority (Doc d))) -> m a) | action given a recorder, or the exception if we failed to open the file
-> m a |

makeDefaultHandleRecorder #

Arguments

:: MonadIO m |
=> Maybe [LoggingColumn] | built-in logging columns to display. Nothing uses the default
-> Lock | lock to take when outputting to handle
-> Handle | handle to output to
-> m (Recorder (WithPriority (Doc a))) |

withBacklog :: (v -> Recorder a) -> IO (Recorder a, v -> IO ()) #

Given a `Recorder` that requires an argument, produces a `Recorder` that queues up messages until the argument is provided using the callback, at which point it sends the backlog and begins functioning normally.

lspClientMessageRecorder :: LanguageContextEnv config -> Recorder (WithPriority Text) #

Creates a recorder that sends logs to the LSP client via `window/showMessage` notifications.

lspClientLogRecorder :: LanguageContextEnv config -> Recorder (WithPriority Text) #

Creates a recorder that sends logs to the LSP client via `window/logMessage` notifications.

toCologActionWithPrio :: forall (m :: Type -> Type) msg. (MonadIO m, HasCallStack) => Recorder (WithPriority msg) -> LogAction m (WithSeverity msg) #

getClientConfig :: MonadLsp Config m => m Config #

Returns the current client configuration. It is not wise to permanently cache the returned value of this function, as clients can at runtime change their configuration.

viaShow :: Show a => a -> Doc ann #

Convenience function to convert a `Show`able value to a `Doc`. If the `String` does not contain newlines, consider using the more performant `unsafeViaShow`.

unsafeViaShow :: Show a => a -> Doc ann #

Convenience function to convert a `Show`able value /that must not contain newlines/ to a `Doc`. If there may be newlines, use `viaShow` instead.

emptyDoc :: Doc ann #

The empty document behaves like `(`pretty` "")`, so it has a height of 1. This may lead to surprising behaviour if we expect it to bear no weight inside e.g. `vcat`, where we get an empty line of output from it (`parens` for visibility only):

    >>> vsep ["hello", parens emptyDoc, "world"]
    hello
    ()
    world

Together with `<>`, `emptyDoc` forms the `Monoid` `Doc`.

line' :: Doc ann #

``line'`` is like ``line``, but behaves like ``mempty`` if the line break is undone by `group` (instead of ``space``).

    >>> let doc = "lorem ipsum" <> line' <> "dolor sit amet"
    >>> doc
    lorem ipsum
    dolor sit amet
    >>> group doc
    lorem ipsumdolor sit amet

softline :: Doc ann #

`softline` behaves like ``space`` if the resulting output fits the page, otherwise like ``line``.

Here, we have enough space to put everything in one line:

    >>> let doc = "lorem ipsum" <> softline <> "dolor sit amet"
    >>> putDocW 80 doc
    lorem ipsum dolor sit amet

If we narrow the page to width 10, the layouter produces a line break:

    >>> putDocW 10 doc
    lorem ipsum
    dolor sit amet

    softline = group line

softline' :: Doc ann #

``softline'`` is like ``softline``, but behaves like ``mempty`` if the resulting output does not fit on the page (instead of ``space``). In other words, ``line`` is to ``line'`` how ``softline`` is to ``softline'``.

With enough space, we get direct concatenation:

    >>> let doc = "ThisWord" <> softline' <> "IsWayTooLong"
    >>> putDocW 80 doc
    ThisWordIsWayTooLong

If we narrow the page to width 10, the layouter produces a line break:

    >>> putDocW 10 doc
    ThisWord
    IsWayTooLong

    softline' = group line'

hardline :: Doc ann #

A ``hardline`` is always laid out as a line break, even when `group`ed or when there is plenty of space. Note that it might still be simply discarded if it is part of a `flatAlt` inside a `group`.

    >>> let doc = "lorem ipsum" <> hardline <> "dolor sit amet"
    >>> putDocW 1000 doc
    lorem ipsum
    dolor sit amet

    >>> group doc
    lorem ipsum
    dolor sit amet

flatAlt #

Arguments

:: Doc ann | Default
-> Doc ann | Preferred when `group`ed
-> Doc ann |

By default, `(`flatAlt` x y)` renders as `x`. However when `group`ed, `y` will be preferred, with `x` as the fallback for the case when `y` doesn't fit.

    >>> let doc = flatAlt "a" "b"
    >>> putDoc doc
    a
    >>> putDoc (group doc)
    b
    >>> putDocW 0 (group doc)
    a

`flatAlt` is particularly useful for defining conditional separators such as

    softline = group (flatAlt hardline " ")

    >>> let hello = "Hello" <> softline <> "world!"
    >>> putDocW 12 hello
    Hello world!
    >>> putDocW 11 hello
    Hello
    world!

### Example: Haskell's do-notation

Expand

We can use this to render Haskell's do-notation nicely:

    >>> let open        = flatAlt "" "{ "
    >>> let close       = flatAlt "" " }"
    >>> let separator   = flatAlt "" "; "
    >>> let prettyDo xs = group ("do" <+> align (encloseSep open close separator xs))
    >>> let statements  = ["name:_ <- getArgs", "let greet = \"Hello, \" <> name", "putStrLn greet"]

This is put into a single line with `{;}` style if it fits:

    >>> putDocW 80 (prettyDo statements)
    do { name:_ <- getArgs; let greet = "Hello, " <> name; putStrLn greet }

When there is not enough space the statements are broken up into lines nicely:

    >>> putDocW 10 (prettyDo statements)
    do name:_ <- getArgs
       let greet = "Hello, " <> name
       putStrLn greet

### Notes

Users should be careful to choose `x` to be less wide than `y`. Otherwise, if `y` turns out not to fit the page, we fall back on an even wider layout:

    >>> let ugly = group (flatAlt "even wider" "too wide")
    >>> putDocW 7 ugly
    even wider

Also note that `group` will flatten `y`:

    >>> putDoc (group (flatAlt "x" ("y" <> line <> "y")))
    y y

This also means that an "unflattenable" `y` which contains a hard linebreak will never be rendered:

    >>> putDoc (group (flatAlt "x" ("y" <> hardline <> "y")))
    x

align :: Doc ann -> Doc ann #

`(`align` x)` lays out the document `x` with the nesting level set to the current column. It is used for example to implement `hang`.

As an example, we will put a document right above another one, regardless of the current nesting level. Without `align`ment, the second line is put simply below everything we've had so far:

    >>> "lorem" <+> vsep ["ipsum", "dolor"]
    lorem ipsum
    dolor

If we add an `align` to the mix, the ``vsep``'s contents all start in the same column:

    >>> "lorem" <+> align (vsep ["ipsum", "dolor"])
    lorem ipsum
          dolor

encloseSep #

Arguments

:: Doc ann | left delimiter
-> Doc ann | right delimiter
-> Doc ann | separator
-> [Doc ann] | input documents
-> Doc ann |

`(`encloseSep` l r sep xs)` concatenates the documents `xs` separated by `sep`, and encloses the resulting document by `l` and `r`.

The documents are laid out horizontally if that fits the page:

    >>> let doc = "list" <+> align (encloseSep lbracket rbracket comma (map pretty [1,20,300,4000]))
    >>> putDocW 80 doc
    list [1,20,300,4000]

If there is not enough space, then the input is split into lines entry-wise therwise they are laid out vertically, with separators put in the front:

    >>> putDocW 10 doc
    list [1
         ,20
         ,300
         ,4000]

Note that `doc` contains an explicit call to `align` so that the list items are aligned vertically.

For putting separators at the end of entries instead, have a look at `punctuate`.

concatWith :: Foldable t => (Doc ann -> Doc ann -> Doc ann) -> t (Doc ann) -> Doc ann #

Concatenate all documents element-wise with a binary function.

    concatWith _ [] = mempty
    concatWith (**) [x,y,z] = x ** y ** z

Multiple convenience definitions based on `concatWith` are already predefined, for example:

    hsep    = concatWith (<+>)
    fillSep = concatWith (\x y -> x <> softline <> y)

This is also useful to define customized joiners:

    >>> concatWith (surround dot) ["Prettyprinter", "Render", "Text"]
    Prettyprinter.Render.Text

hsep :: [Doc ann] -> Doc ann #

`(`hsep` xs)` concatenates all documents `xs` horizontally with ``<+>``, i.e. it puts a space between all entries.

    >>> let docs = Util.words "lorem ipsum dolor sit amet"

    >>> hsep docs
    lorem ipsum dolor sit amet

``hsep`` does not introduce line breaks on its own, even when the page is too narrow:

    >>> putDocW 5 (hsep docs)
    lorem ipsum dolor sit amet

For automatic line breaks, consider using `fillSep` instead.

vsep :: [Doc ann] -> Doc ann #

`(`vsep` xs)` concatenates all documents `xs` above each other. If a `group` undoes the line breaks inserted by `vsep`, the documents are separated with a `space` instead.

Using `vsep` alone yields

    >>> "prefix" <+> vsep ["text", "to", "lay", "out"]
    prefix text
    to
    lay
    out

`group`ing a `vsep` separates the documents with a `space` if it fits the page (and does nothing otherwise). See the ``sep`` convenience function for this use case.

The `align` function can be used to align the documents under their first element:

    >>> "prefix" <+> align (vsep ["text", "to", "lay", "out"])
    prefix text
           to
           lay
           out

Since `group`ing a `vsep` is rather common, `sep` is a built-in for doing that.

fillSep :: [Doc ann] -> Doc ann #

`(`fillSep` xs)` concatenates the documents `xs` horizontally with ``<+>`` as long as it fits the page, then inserts a ``line`` and continues doing that for all documents in `xs`. (``line`` means that if `group`ed, the documents are separated with a `space` instead of newlines. Use `fillCat` if you do not want a `space`.)

Let's print some words to fill the line:

    >>> let docs = take 20 (cycle ["lorem", "ipsum", "dolor", "sit", "amet"])
    >>> putDocW 80 ("Docs:" <+> fillSep docs)
    Docs: lorem ipsum dolor sit amet lorem ipsum dolor sit amet lorem ipsum dolor
    sit amet lorem ipsum dolor sit amet

The same document, printed at a width of only 40, yields

    >>> putDocW 40 ("Docs:" <+> fillSep docs)
    Docs: lorem ipsum dolor sit amet lorem
    ipsum dolor sit amet lorem ipsum dolor
    sit amet lorem ipsum dolor sit amet

sep :: [Doc ann] -> Doc ann #

`(`sep` xs)` tries laying out the documents `xs` separated with `space`s, and if this does not fit the page, separates them with newlines. This is what differentiates it from `vsep`, which always lays out its contents beneath each other.

    >>> let doc = "prefix" <+> sep ["text", "to", "lay", "out"]
    >>> putDocW 80 doc
    prefix text to lay out

With a narrower layout, the entries are separated by newlines:

    >>> putDocW 20 doc
    prefix text
    to
    lay
    out

    sep = group . vsep

hcat :: [Doc ann] -> Doc ann #

`(`hcat` xs)` concatenates all documents `xs` horizontally with ``<>`` (i.e. without any spacing).

It is provided only for consistency, since it is identical to `mconcat`.

    >>> let docs = Util.words "lorem ipsum dolor"
    >>> hcat docs
    loremipsumdolor

vcat :: [Doc ann] -> Doc ann #

`(`vcat` xs)` vertically concatenates the documents `xs`. If it is `group`ed, the line breaks are removed.

In other words ``vcat`` is like ``vsep``, with newlines removed instead of replaced by `space`s.

    >>> let docs = Util.words "lorem ipsum dolor"
    >>> vcat docs
    lorem
    ipsum
    dolor
    >>> group (vcat docs)
    loremipsumdolor

Since `group`ing a `vcat` is rather common, `cat` is a built-in shortcut for it.

fillCat :: [Doc ann] -> Doc ann #

`(`fillCat` xs)` concatenates documents `xs` horizontally with ``<>`` as long as it fits the page, then inserts a ``line'`` and continues doing that for all documents in `xs`. This is similar to how an ordinary word processor lays out the text if you just keep typing after you hit the maximum line length.

(``line'`` means that if `group`ed, the documents are separated with nothing instead of newlines. See `fillSep` if you want a `space` instead.)

Observe the difference between `fillSep` and `fillCat`. `fillSep` concatenates the entries `space`d when `group`ed:

    >>> let docs = take 20 (cycle (["lorem", "ipsum", "dolor", "sit", "amet"]))
    >>> putDocW 40 ("Grouped:" <+> group (fillSep docs))
    Grouped: lorem ipsum dolor sit amet
    lorem ipsum dolor sit amet lorem ipsum
    dolor sit amet lorem ipsum dolor sit
    amet

On the other hand, `fillCat` concatenates the entries directly when `group`ed:

    >>> putDocW 40 ("Grouped:" <+> group (fillCat docs))
    Grouped: loremipsumdolorsitametlorem
    ipsumdolorsitametloremipsumdolorsitamet
    loremipsumdolorsitamet

cat :: [Doc ann] -> Doc ann #

`(`cat` xs)` tries laying out the documents `xs` separated with nothing, and if this does not fit the page, separates them with newlines. This is what differentiates it from `vcat`, which always lays out its contents beneath each other.

    >>> let docs = Util.words "lorem ipsum dolor"
    >>> putDocW 80 ("Docs:" <+> cat docs)
    Docs: loremipsumdolor

When there is enough space, the documents are put above one another:

    >>> putDocW 10 ("Docs:" <+> cat docs)
    Docs: lorem
    ipsum
    dolor

    cat = group . vcat

punctuate #

Arguments

:: Doc ann | Punctuation, e.g. `comma`
-> [Doc ann] |
-> [Doc ann] |

`(`punctuate` p xs)` appends `p` to all but the last document in `xs`.

    >>> let docs = punctuate comma (Util.words "lorem ipsum dolor sit amet")
    >>> putDocW 80 (hsep docs)
    lorem, ipsum, dolor, sit, amet

The separators are put at the end of the entries, which we can see if we position the result vertically:

    >>> putDocW 20 (vsep docs)
    lorem,
    ipsum,
    dolor,
    sit,
    amet

If you want put the commas in front of their elements instead of at the end, you should use `tupled` or, in general, `encloseSep`.

nesting :: (Int -> Doc ann) -> Doc ann #

Layout a document depending on the current `nest`ing level. `align` is implemented in terms of `nesting`.

    >>> let doc = "prefix" <+> nesting (\l -> brackets ("Nested:" <+> pretty l))
    >>> vsep [indent n doc | n <- [0,4,8]]
    prefix [Nested: 0]
        prefix [Nested: 4]
            prefix [Nested: 8]

width :: Doc ann -> (Int -> Doc ann) -> Doc ann #

`(`width` doc f)` lays out the document `doc`, and makes the column width of it available to a function.

    >>> let annotate doc = width (brackets doc) (\w -> " <- width:" <+> pretty w)
    >>> align (vsep (map annotate ["---", "------", indent 3 "---", vsep ["---", indent 4 "---"]]))
    [---] <- width: 5
    [------] <- width: 8
    [   ---] <- width: 8
    [---
        ---] <- width: 8

pageWidth :: (PageWidth -> Doc ann) -> Doc ann #

Layout a document depending on the page width, if one has been specified.

    >>> let prettyPageWidth (AvailablePerLine l r) = "Width:" <+> pretty l <> ", ribbon fraction:" <+> pretty r
    >>> let doc = "prefix" <+> pageWidth (brackets . prettyPageWidth)
    >>> putDocW 32 (vsep [indent n doc | n <- [0,4,8]])
    prefix [Width: 32, ribbon fraction: 1.0]
        prefix [Width: 32, ribbon fraction: 1.0]
            prefix [Width: 32, ribbon fraction: 1.0]

fill #

Arguments

:: Int | Append spaces until the document is at least this wide
-> Doc ann |
-> Doc ann |

`(`fill` i x)` lays out the document `x`. It then appends `space`s until the width is equal to `i`. If the width of `x` is already larger, nothing is appended.

This function is quite useful in practice to output a list of bindings:

    >>> let types = [("empty","Doc"), ("nest","Int -> Doc -> Doc"), ("fillSep","[Doc] -> Doc")]
    >>> let ptype (name, tp) = fill 5 (pretty name) <+> "::" <+> pretty tp
    >>> "let" <+> align (vcat (map ptype types))
    let empty :: Doc
        nest  :: Int -> Doc -> Doc
        fillSep :: [Doc] -> Doc

fillBreak #

Arguments

:: Int | Append spaces until the document is at least this wide
-> Doc ann |
-> Doc ann |

`(`fillBreak` i x)` first lays out the document `x`. It then appends `space`s until the width is equal to `i`. If the width of `x` is already larger than `i`, the nesting level is increased by `i` and a `line` is appended. When we redefine `ptype` in the example given in `fill` to use ``fillBreak``, we get a useful variation of the output:

    >>> let types = [("empty","Doc"), ("nest","Int -> Doc -> Doc"), ("fillSep","[Doc] -> Doc")]
    >>> let ptype (name, tp) = fillBreak 5 (pretty name) <+> "::" <+> pretty tp
    >>> "let" <+> align (vcat (map ptype types))
    let empty :: Doc
        nest  :: Int -> Doc -> Doc
        fillSep
              :: [Doc] -> Doc

plural #

Arguments

:: (Num amount, Eq amount) |
=> doc | `1` case
-> doc | other cases
-> amount |
-> doc |

`(`plural` n one many)` is `one` if `n` is `1`, and `many` otherwise. A typical use case is adding a plural "s".

    >>> let things = [True]
    >>> let amount = length things
    >>> pretty things <+> "has" <+> pretty amount <+> plural "entry" "entries" amount
    [True] has 1 entry

enclose #

Arguments

:: Doc ann | L
-> Doc ann | R
-> Doc ann | x
-> Doc ann | LxR

`(`enclose` l r x)` encloses document `x` between documents `l` and `r` using ``<>``.

    >>> enclose "A" "Z" "·"
    A·Z

    enclose l r x = l <> x <> r

surround :: Doc ann -> Doc ann -> Doc ann -> Doc ann #

`(`surround` x l r)` surrounds document `x` with `l` and `r`.

    >>> surround "·" "A" "Z"
    A·Z

This is merely an argument reordering of ``enclose``, but allows for definitions like

    >>> concatWith (surround dot) ["Prettyprinter", "Render", "Text"]
    Prettyprinter.Render.Text

annotate :: ann -> Doc ann -> Doc ann #

Add an annotation to a ``Doc``. This annotation can then be used by the renderer to e.g. add color to certain parts of the output. For a full tutorial example on how to use it, see the Prettyprinter.Render.Tutorials.StackMachineTutorial or Prettyprinter.Render.Tutorials.TreeRenderingTutorial modules.

This function is only relevant for custom formats with their own annotations, and not relevant for basic prettyprinting. The predefined renderers, e.g. Prettyprinter.Render.Text, should be enough for the most common needs.

unAnnotate :: Doc ann -> Doc xxx #

Remove all annotations.

Although `unAnnotate` is idempotent with respect to rendering,

    unAnnotate . unAnnotate = unAnnotate

it should not be used without caution, for each invocation traverses the entire contained document. If possible, it is preferrable to unannotate after producing the layout by using `unAnnotateS`.

reAnnotate :: (ann -> ann') -> Doc ann -> Doc ann' #

Change the annotation of a `Doc`ument.

Useful in particular to embed documents with one form of annotation in a more generally annotated document.

Since this traverses the entire ``Doc`` tree, including parts that are not rendered due to other layouts fitting better, it is preferrable to reannotate after producing the layout by using ``reAnnotateS``.

Since ``reAnnotate`` has the right type and satisfies `'reAnnotate id = id'`, it is used to define the ``Functor`` instance of ``Doc``.

alterAnnotations :: (ann -> [ann']) -> Doc ann -> Doc ann' #

Change the annotations of a `Doc`ument. Individual annotations can be removed, changed, or replaced by multiple ones.

This is a general function that combines `unAnnotate` and `reAnnotate`, and it is useful for mapping semantic annotations (such as »this is a keyword«) to display annotations (such as »this is red and underlined«), because some backends may not care about certain annotations, while others may.

Annotations earlier in the new list will be applied earlier, i.e. returning `[Bold, Green]` will result in a bold document that contains green text, and not vice-versa.

Since this traverses the entire ``Doc`` tree, including parts that are not rendered due to other layouts fitting better, it is preferrable to reannotate after producing the layout by using ``alterAnnotationsS``.

unAnnotateS :: SimpleDocStream ann -> SimpleDocStream xxx #

Remove all annotations. `unAnnotate` for `SimpleDocStream`.

reAnnotateS :: (ann -> ann') -> SimpleDocStream ann -> SimpleDocStream ann' #

Change the annotation of a document. `reAnnotate` for `SimpleDocStream`.

alterAnnotationsS :: (ann -> Maybe ann') -> SimpleDocStream ann -> SimpleDocStream ann' #

Change the annotation of a document to a different annotation, or none at all. `alterAnnotations` for `SimpleDocStream`.

Note that the `Doc` version is more flexible, since it allows changing a single annotation to multiple ones. (`SimpleDocTree` restores this flexibility again.)

removeTrailingWhitespace :: SimpleDocStream ann -> SimpleDocStream ann #

Remove all trailing space characters.

This has some performance impact, because it does an entire additional pass over the `SimpleDocStream`.

No trimming will be done inside annotations, which are considered to contain no (trimmable) whitespace, since the annotation might actually be about the whitespace, for example a renderer that colors the background of trailing whitespace, as e.g. `git diff` can be configured to do.

Historical note: Since v1.7.0, `layoutPretty` and `layoutSmart` avoid producing the trailing whitespace that was the original motivation for creating `removeTrailingWhitespace`. See https://github.com/quchen/prettyprinter/pull/139 for some background info.

defaultLayoutOptions :: LayoutOptions #

The default layout options, suitable when you just want some output, and don’t particularly care about the details. Used by the `Show` instance, for example.

    >>> defaultLayoutOptions
    LayoutOptions {layoutPageWidth = AvailablePerLine 80 1.0}

layoutPretty :: LayoutOptions -> Doc ann -> SimpleDocStream ann #

This is the default layout algorithm, and it is used by `show`, `putDoc` and `hPutDoc`.

``layoutPretty`` commits to rendering something in a certain way if the next element fits the layout constraints; in other words, it has one `SimpleDocStream` element lookahead when rendering. Consider using the smarter, but a bit less performant, ``layoutSmart`` algorithm if the results seem to run off to the right before having lots of line breaks.

layoutSmart :: LayoutOptions -> Doc ann -> SimpleDocStream ann #

A layout algorithm with more lookahead than `layoutPretty`, that introduces line breaks earlier if the content does not (or will not, rather) fit into one line.

Consider the following python-ish document,

    >>> let fun x = hang 2 ("fun(" <> softline' <> x) <> ")"
    >>> let doc = (fun . fun . fun . fun . fun) (align (list ["abcdef", "ghijklm"]))

which we’ll be rendering using the following pipeline (where the layout algorithm has been left open):

    >>> import Data.Text.IO as T
    >>> import Prettyprinter.Render.Text
    >>> let hr = pipe <> pretty (replicate (26-2) '-') <> pipe
    >>> let go layouter x = (T.putStrLn . renderStrict . layouter (LayoutOptions (AvailablePerLine 26 1))) (vsep [hr, x, hr])

If we render this using `layoutPretty` with a page width of 26 characters per line, all the `fun` calls fit into the first line so they will be put there:

    >>> go layoutPretty doc
    |------------------------|
    fun(fun(fun(fun(fun(
                      [ abcdef
                      , ghijklm ])))))
    |------------------------|

Note that this exceeds the desired 26 character page width. The same document, rendered with ``layoutSmart``, fits the layout contstraints:

    >>> go layoutSmart doc
    |------------------------|
    fun(
      fun(
        fun(
          fun(
            fun(
              [ abcdef
              , ghijklm ])))))
    |------------------------|

The key difference between `layoutPretty` and `layoutSmart` is that the latter will check the potential document until it encounters a line with the same indentation or less than the start of the document. Any line encountered earlier is assumed to belong to the same syntactic structure. `layoutPretty` checks only the first line.

Consider for example the question of whether the `A`s fit into the document below:

    1 A
    2   A
    3  A
    4 B
    5   B

`layoutPretty` will check only line 1, ignoring whether e.g. line 2 might already be too wide. By contrast, `layoutSmart` stops only once it reaches line 4, where the `B` has the same indentation as the first `A`.

layoutCompact :: Doc ann1 -> SimpleDocStream ann2 #

`(layoutCompact x)` lays out the document `x` without adding any indentation and without preserving annotations. Since no 'pretty' printing is involved, this layouter is very fast. The resulting output contains fewer characters than a prettyprinted version and can be used for output that is read by other programs.

    >>> let doc = hang 4 (vsep ["lorem", "ipsum", hang 4 (vsep ["dolor", "sit"])])
    >>> doc
    lorem
        ipsum
        dolor
            sit

    >>> let putDocCompact = renderIO System.IO.stdout . layoutCompact
    >>> putDocCompact doc
    lorem
    ipsum
    dolor
    sit

squotes :: Doc ann -> Doc ann #

    >>> squotes "·"
    '·'

dquotes :: Doc ann -> Doc ann #

    >>> dquotes "·"
    "·"

angles :: Doc ann -> Doc ann #

    >>> angles "·"
    <·>

braces :: Doc ann -> Doc ann #

    >>> braces "·"
    {·}

squote :: Doc ann #

    >>> squote
    '

dquote :: Doc ann #

    >>> dquote
    "

lparen :: Doc ann #

    >>> lparen
    (

rparen :: Doc ann #

    >>> rparen
    )

langle :: Doc ann #

    >>> langle
    <

rangle :: Doc ann #

    >>> rangle
    >

lbracket :: Doc ann #

    >>> lbracket
    [

rbracket :: Doc ann #

    >>> rbracket
    ]

lbrace :: Doc ann #

    >>> lbrace
    {

rbrace :: Doc ann #

    >>> rbrace
    }

semi :: Doc ann #

    >>> semi
    ;

dot :: Doc ann #

    >>> dot
    .

slash :: Doc ann #

    >>> slash
    /

backslash :: Doc ann #

    >>> backslash
    \

use :: IdeRule k v => k -> NormalizedFilePath -> Action (Maybe v) #

Request a Rule result if available

uses :: (Traversable f, IdeRule k v) => k -> f NormalizedFilePath -> Action (f (Maybe v)) #

Plural version of `use`

toNormalizedUri :: Uri -> NormalizedUri #

fromNormalizedUri :: NormalizedUri -> Uri #

fromNormalizedFilePath :: NormalizedFilePath -> FilePath #

Extracts `FilePath` from `NormalizedFilePath`.

getAtPoint :: NormalizedFilePath -> Position -> IdeAction (Maybe (Maybe Range, [Text])) #

Try to get hover text for the name under point.

getDefinition :: NormalizedFilePath -> Position -> IdeAction (Maybe [Location]) #

Goto Definition.

getTypeDefinition :: NormalizedFilePath -> Position -> IdeAction (Maybe [Location]) #

getFileExists :: NormalizedFilePath -> Action Bool #

Returns True if the file exists

getFileContents :: NormalizedFilePath -> Action (UTCTime, Maybe Text) #

Returns the modification time and the contents. For VFS paths, the modification time is the current time.

isWorkspaceFile :: NormalizedFilePath -> Action Bool #

getFilesOfInterestUntracked :: Action (HashMap NormalizedFilePath FileOfInterestStatus) #

getClientConfigAction :: Action Config #

Returns the client configuration, creating a build dependency. You should always use this function when accessing client configuration from build rules.

getParsedModule :: NormalizedFilePath -> Action (Maybe ParsedModule) #

Parse the contents of a haskell file.

usePropertyAction :: HasProperty s k t r => KeyNameProxy s -> PluginId -> Properties r -> Action (ToHsType t) #

runAction :: String -> IdeState -> Action a -> IO a #

actionLogger :: Action Logger #

define :: IdeRule k v => Recorder (WithPriority Log) -> (k -> NormalizedFilePath -> Action (IdeResult v)) -> Rules () #

Define a new Rule without early cutoff

defineEarlyCutoff :: IdeRule k v => Recorder (WithPriority Log) -> RuleBody k v -> Rules () #

Define a new Rule with early cutoff

defineNoDiagnostics :: IdeRule k v => Recorder (WithPriority Log) -> (k -> NormalizedFilePath -> Action (Maybe v)) -> Rules () #

getPluginConfigAction :: PluginId -> Action PluginConfig #

ideLogger :: IdeState -> Logger #

runIdeAction :: String -> ShakeExtras -> IdeAction a -> IO a #

useNoFile :: IdeRule k v => k -> Action (Maybe v) #

useNoFile_ :: IdeRule k v => k -> Action v #

useWithStale :: IdeRule k v => k -> NormalizedFilePath -> Action (Maybe (v, PositionMapping)) #

Request a Rule result, it not available return the last computed result, if any, which may be stale

useWithStaleFast :: IdeRule k v => k -> NormalizedFilePath -> IdeAction (Maybe (v, PositionMapping)) #

Lookup value in the database and return with the stale value immediately Will queue an action to refresh the value. Might block the first time the rule runs, but never blocks after that.

useWithStaleFast' :: IdeRule k v => k -> NormalizedFilePath -> IdeAction (FastResult v) #

Same as useWithStaleFast but lets you wait for an up to date result

useWithStale_ :: IdeRule k v => k -> NormalizedFilePath -> Action (v, PositionMapping) #

Request a Rule result, it not available return the last computed result which may be stale.

Throws an `BadDependency` exception which is caught by the rule system if none available.

WARNING: Not suitable for PluginHandlers. Use `useWithStaleE` instead.

use_ :: IdeRule k v => k -> NormalizedFilePath -> Action v #

uses_ :: (Traversable f, IdeRule k v) => k -> f NormalizedFilePath -> Action (f v) #

Plural version of `use_`

Throws an `BadDependency` exception which is caught by the rule system if none available.

WARNING: Not suitable for PluginHandlers. Use `usesE` instead.

hscEnvWithImportPaths :: HscEnvEq -> HscEnv #

Unwrap the `HscEnv` with the original import paths. Used only for locating imports

emptyFilePath :: NormalizedFilePath #

hDuplicateTo' :: Handle -> Handle -> IO () #

A slightly modified version of `hDuplicateTo` from GHC. Importantly, it avoids the bug listed in https://gitlab.haskell.org/ghc/ghc/merge_requests/2318.

toNormalizedFilePath' :: FilePath -> NormalizedFilePath #

modifyDynFlags :: GhcMonad m => (DynFlags -> DynFlags) -> m () #

Used to modify dyn flags in preference to calling `setSessionDynFlags`, since that function also reloads packages (which is very slow).

showDiagnostics :: [FileDiagnostic] -> Text #

rangeToRealSrcSpan :: NormalizedFilePath -> Range -> RealSrcSpan #

realSrcSpanToRange :: RealSrcSpan -> Range #

disableWarningsAsErrors :: DynFlags -> DynFlags #

setHieDir :: FilePath -> DynFlags -> DynFlags #

dontWriteHieFiles :: DynFlags -> DynFlags #

printName :: Name -> String #

Pretty print a `Name` wrapping operators in parens

diagFromErrMsgs :: Text -> DynFlags -> Bag (MsgEnvelope DecoratedSDoc) -> [FileDiagnostic] #

diagFromErrMsg :: Text -> DynFlags -> MsgEnvelope DecoratedSDoc -> [FileDiagnostic] #

Produce a GHC-style error from a source span and a message.

diagFromString :: Text -> DiagnosticSeverity -> SrcSpan -> String -> [FileDiagnostic] #

Produce a GHC-style error from a source span and a message.

diagFromStrings :: Text -> DiagnosticSeverity -> [(SrcSpan, String)] -> [FileDiagnostic] #

Produce a bag of GHC-style errors (`ErrorMessages`) from the given (optional) locations and message strings.

diagFromGhcException :: Text -> DynFlags -> GhcException -> [FileDiagnostic] #

catchSrcErrors :: DynFlags -> Text -> IO a -> IO (Either [FileDiagnostic] a) #

Catch the errors thrown by GHC (SourceErrors and compiler-internal exceptions like Panic or InstallationError), and turn them into diagnostics

srcSpanToLocation :: SrcSpan -> Maybe Location #

srcSpanToRange :: SrcSpan -> Maybe Range #

Convert a GHC SrcSpan to a DAML compiler Range

realSrcLocToPosition :: RealSrcLoc -> Position #

realSrcSpanToLocation :: RealSrcSpan -> Location #

srcSpanToFilename :: SrcSpan -> Maybe FilePath #

Extract a file name from a GHC SrcSpan (use message for unhelpful ones) FIXME This may not be an _absolute_ file name, needs fixing.

rangeToSrcSpan :: NormalizedFilePath -> Range -> SrcSpan #

positionToRealSrcLoc :: NormalizedFilePath -> Position -> RealSrcLoc #

zeroSpan #

Arguments

:: FastString | file path of span
-> RealSrcSpan |

creates a span with zero length in the filename of the argument passed

realSpan :: SrcSpan -> Maybe RealSrcSpan #

isInsideSrcSpan :: Position -> SrcSpan -> Bool #

spanContainsRange :: SrcSpan -> Range -> Maybe Bool #

noSpan :: String -> SrcSpan #

Produces an "unhelpful" source span with the given string.

toDSeverity :: Severity -> Maybe DiagnosticSeverity #

Convert a GHC severity to a DAML compiler Severity. Severities below Warning level are dropped (returning Nothing).

evalGhcEnv :: HscEnv -> Ghc b -> IO b #

Run a `Ghc` monad value using an existing `HscEnv`. Sets up and tears down all the required pieces, but designed to be more efficient than a standard `runGhc`.

printRdrName :: RdrName -> String #

Pretty print a `RdrName` wrapping operators in parens

lookupPackageConfig :: Unit -> HscEnv -> Maybe UnitInfo #

Given a `Unit` try and find the associated `PackageConfig` in the environment.

textToStringBuffer :: Text -> StringBuffer #

Convert from the `text` package to the `GHC` `StringBuffer`. Currently implemented somewhat inefficiently (if it ever comes up in a profile).

bytestringToStringBuffer :: ByteString -> StringBuffer #

stringBufferToByteString :: StringBuffer -> ByteString #

moduleImportPath :: NormalizedFilePath -> ModuleName -> Maybe FilePath #

Given a module location, and its parse tree, figure out what is the include directory implied by it. For example, given the file `/usr/Test/Foo/Bar.hs` with the module name `Foo.Bar` the directory `/usr/Test` should be on the include path to find sibling modules.

cgGutsToCoreModule :: SafeHaskellMode -> CgGuts -> ModDetails -> CoreModule #

Convert from a `CgGuts` to a `CoreModule`.

fingerprintToBS :: Fingerprint -> ByteString #

Convert a `Fingerprint` to a `ByteString` by copying the byte across. Will produce an 8 byte unreadable ByteString.

fingerprintFromByteString :: ByteString -> IO Fingerprint #

fingerprintFromStringBuffer :: StringBuffer -> IO Fingerprint #

Take the `Fingerprint` of a `StringBuffer`.

fingerprintFromPut :: Put -> IO Fingerprint #

readFileUtf8 :: FilePath -> IO Text #

Read a UTF8 file, with lenient decoding, so it will never raise a decoding error.

printOutputable :: Outputable a => a -> Text #

Print a GHC value in `defaultUserStyle` without unique symbols. It uses `showSDocUnsafe` with `unsafeGlobalDynFlags` internally.

This is the most common print utility. It will do something additionally compared to what the `Outputable` instance does.

1. print with a user-friendly style: `a_a4ME` as `a`.
2. unescape escape sequences of printable unicode characters within a pair of double quotes

getExtensions :: ParsedModule -> [Extension] #

ideErrorText :: NormalizedFilePath -> Text -> FileDiagnostic #

ideErrorWithSource :: Maybe Text -> Maybe DiagnosticSeverity -> a -> Text -> (a, ShowDiagnostic, Diagnostic) #

showDiagnosticsColored :: [FileDiagnostic] -> Text #

noFilePath :: FilePath #

noRange :: Range #

showPosition :: Position -> String #

fromUri :: NormalizedUri -> NormalizedFilePath #

emptyPathUri :: NormalizedUri #

filePathToUri' :: NormalizedFilePath -> NormalizedUri #

uriToFilePath' :: Uri -> Maybe FilePath #

We use an empty string as a filepath when we don’t have a file. However, haskell-lsp doesn’t support that in uriToFilePath and given that it is not a valid filepath it does not make sense to upstream a fix. So we have our own wrapper here that supports empty filepaths.

readSrcSpan :: ReadS RealSrcSpan #

Parser for the GHC output format

encodeLinkableType :: Maybe LinkableType -> ByteString #

Encode the linkable into an ordered bytestring. This is used to drive an ordered "newness" predicate in the `NeedsCompilation` build rule.

tmrModSummary :: TcModuleResult -> ModSummary #

hiFileFingerPrint :: HiFileResult -> ByteString #

mkHiFileResult :: ModSummary -> ModIface -> ModDetails -> ModuleEnv ByteString -> Maybe (CoreFile, ByteString) -> HiFileResult #

vfsVersion :: FileVersion -> Maybe Int32 #

awSplicesL :: Lens' Splices [(LHsExpr GhcTc, Serialized)] #

declSplicesL :: Lens' Splices [(LHsExpr GhcTc, [LHsDecl GhcPs])] #

exprSplicesL :: Lens' Splices [(LHsExpr GhcTc, LHsExpr GhcPs)] #

patSplicesL :: Lens' Splices [(LHsExpr GhcTc, LPat GhcPs)] #

typeSplicesL :: Lens' Splices [(LHsExpr GhcTc, LHsType GhcPs)] #