diagnose-2.1.0: Beautiful error reporting done easily
Copyright(c) Mesabloo 2021-2022
LicenseBSD3
Stabilityexperimental
PortabilityPortable
Safe HaskellNone
LanguageHaskell2010

Error.Diagnose.Diagnostic

Contents

Description

 
Synopsis

Re-exports

stdout :: Handle #

A handle managing output to the Haskell program's standard output channel.

stderr :: Handle #

A handle managing output to the Haskell program's standard error channel.

def :: Default a => a #

The default value for this type.

data Diagnostic msg Source #

The data type for diagnostic containing messages of an abstract type.

The constructors are private, but users can use def from the Default typeclass to create a new empty diagnostic, and addFile and addReport to alter its internal state.

Instances

Instances details
Semigroup (Diagnostic msg) Source # 
Instance details

Defined in Error.Diagnose.Diagnostic.Internal

Methods

(<>) :: Diagnostic msg -> Diagnostic msg -> Diagnostic msg #

sconcat :: NonEmpty (Diagnostic msg) -> Diagnostic msg #

stimes :: Integral b => b -> Diagnostic msg -> Diagnostic msg #

Default (Diagnostic msg) Source # 
Instance details

Defined in Error.Diagnose.Diagnostic.Internal

Methods

def :: Diagnostic msg #

prettyDiagnostic Source #

Arguments

:: Pretty msg 
=> Bool

Should we use unicode when printing paths?

-> Int

The number of spaces each TAB character will span.

-> Diagnostic msg

The diagnostic to print.

-> Doc Annotation 

Pretty prints a Diagnostic into a Document that can be output using hPutDoc.

Colors are put by default. If you do not want these, just unAnnotate the resulting document like so:

>>> let doc = unAnnotate (prettyDiagnostic withUnicode tabSize diagnostic)

Changing the style is also rather easy:

>>> let myCustomStyle :: Style = _
>>> let doc = myCustomStyle (prettyDiagnostic withUnicode tabSize diagnostic)

printDiagnostic Source #

Arguments

:: (MonadIO m, Pretty msg) 
=> Handle

The handle onto which to output the diagnostic.

-> Bool

Should we print with unicode characters?

-> Bool

False to disable colors.

-> Int

The number of spaces each TAB character will span.

-> Style

The style in which to output the diagnostic.

-> Diagnostic msg

The diagnostic to output.

-> m () 

Prints a Diagnostic onto a specific Handle.

addFile Source #

Arguments

:: Diagnostic msg 
-> FilePath

The path to the file.

-> String

The content of the file as a single string, where lines are ended by \n.

-> Diagnostic msg 

Inserts a new referenceable file within the diagnostic.

addReport Source #

Arguments

:: Diagnostic msg 
-> Report msg

The new report to add to the diagnostic.

-> Diagnostic msg 

Inserts a new report into a diagnostic.