0 | module Idris.IDEMode.Pretty
 1 |
 2 | import Protocol.IDE
 3 | import Idris.Pretty
 4 | import Idris.Doc.Annotations
 5 |
 6 | ------------------------------------------------------------------------
 7 | -- Text properties supported by the IDE mode
 8 | ------------------------------------------------------------------------
 9 |
10 | export
11 | syntaxToProperties : IdrisSyntax -> Maybe Properties
12 | syntaxToProperties syn = mkDecor <$> syntaxToDecoration syn
13 |
14 | export
15 | annToProperties : IdrisAnn -> Maybe Properties
16 | annToProperties Warning       = Just $ MkProperties
17 |                                  { decor = Just Postulate
18 |                                  , format = Just Bold
19 |                                  }
20 | annToProperties Error         = Just $ MkProperties
21 |                                  { decor = Just $ Postulate
22 |                                  , format = Just Bold
23 |                                  }
24 | annToProperties ErrorDesc     = Nothing
25 | annToProperties FileCtxt      = Just $ mkDecor Typ
26 | annToProperties Code          = Just $ mkDecor Bound
27 | annToProperties Meta          = Just $ mkDecor Function
28 | annToProperties (Syntax syn)  = syntaxToProperties syn
29 | annToProperties UserDocString = Just $ mkDecor Comment
30 |
31 | export
32 | docToProperties : IdrisDocAnn -> Maybe Properties
33 | docToProperties Header        = pure $ mkFormat Underline
34 | docToProperties Deprecation   = pure $ mkFormat Bold
35 | docToProperties Declarations  = Nothing
36 | docToProperties (Decl _)      = Nothing
37 | docToProperties DocStringBody = Nothing
38 | docToProperties UserDocString = Nothing
39 | docToProperties (Syntax syn)  = syntaxToProperties syn
40 |