Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Data.GI.CodeGen.GtkDoc
Description
A parser for gtk-doc formatted documentation, see https://developer.gnome.org/gtk-doc-manual/ for the spec.
Synopsis
- parseGtkDoc :: Text -> GtkDoc
- newtype GtkDoc = GtkDoc [Token]
- data Token
- newtype Language = Language Text
- data Link = Link {
- linkName :: Text
- linkAddress :: Text
- data CRef
- = FunctionRef DocSymbolName
- | OldFunctionRef Text
- | MethodRef DocSymbolName Text
- | ParamRef Text
- | ConstantRef Text
- | SignalRef DocSymbolName Text
- | OldSignalRef Text Text
- | LocalSignalRef Text
- | PropertyRef DocSymbolName Text
- | OldPropertyRef Text Text
- | VMethodRef Text Text
- | VFuncRef DocSymbolName Text
- | StructFieldRef Text Text
- | EnumMemberRef DocSymbolName Text
- | CTypeRef Text
- | TypeRef DocSymbolName
- data DocSymbolName
- docName :: Name -> DocSymbolName
- resolveDocSymbol :: DocSymbolName -> Text -> Name
Documentation
parseGtkDoc :: Text -> GtkDoc Source #
Parse the given gtk-doc formatted documentation.
Examples
>>>
parseGtkDoc ""
GtkDoc []
>>>
parseGtkDoc "func()"
GtkDoc [SymbolRef (OldFunctionRef "func")]
>>>
parseGtkDoc "literal"
GtkDoc [Literal "literal"]
>>>
parseGtkDoc "This is a long literal"
GtkDoc [Literal "This is a long literal"]
>>>
parseGtkDoc "Call foo() for free cookies"
GtkDoc [Literal "Call ",SymbolRef (OldFunctionRef "foo"),Literal " for free cookies"]
>>>
parseGtkDoc "The signal ::activate is related to gtk_button_activate()."
GtkDoc [Literal "The signal ",SymbolRef (LocalSignalRef "activate"),Literal " is related to ",SymbolRef (OldFunctionRef "gtk_button_activate"),Literal "."]
>>>
parseGtkDoc "The signal ##%#GtkButton::activate is related to gtk_button_activate()."
GtkDoc [Literal "The signal ##%",SymbolRef (OldSignalRef "GtkButton" "activate"),Literal " is related to ",SymbolRef (OldFunctionRef "gtk_button_activate"),Literal "."]
>>>
parseGtkDoc "# A section\n\n## and a subsection ##\n"
GtkDoc [SectionHeader 1 (GtkDoc [Literal "A section"]),Literal "\n",SectionHeader 2 (GtkDoc [Literal "and a subsection "])]
>>>
parseGtkDoc "Compact list:\n- First item\n- Second item"
GtkDoc [Literal "Compact list:\n",UnnumberedList [GtkDoc [Literal "First item"],GtkDoc [Literal "Second item"]]]
>>>
parseGtkDoc "Spaced list:\n\n- First item\n\n- Second item"
GtkDoc [Literal "Spaced list:\n\n",UnnumberedList [GtkDoc [Literal "First item"],GtkDoc [Literal "Second item"]]]
>>>
parseGtkDoc "List with urls:\n- [test](http://test)\n- "
GtkDoc [Literal "List with urls:\n",UnnumberedList [GtkDoc [ExternalLink (Link {linkName = "test", linkAddress = "http://test"})],GtkDoc [Image (Link {linkName = "", linkAddress = "image.png"})]]]
A parsed gtk-doc with fully resolved references.
A parsed gtk-doc token.
Constructors
Literal Text | |
Comment Text | |
Verbatim Text | |
CodeBlock (Maybe Language) Text | |
ExternalLink Link | |
Image Link | |
UnnumberedList [GtkDoc] | An unnumbered list of items. |
NumberedList [(Text, GtkDoc)] | A list of numbered list items. The first element in the pair is the index. |
SectionHeader Int GtkDoc | A section header of the given depth. |
SymbolRef CRef |
A link to a resource, either offline or a section of the documentation.
Constructors
Link | |
Fields
|
A reference to some symbol in the API.
Constructors
data DocSymbolName Source #
Reference to a name (of a class, for instance) in the documentation. It can be either relative to the module where the documentation is, of in some other namespace.
Constructors
RelativeName Text | The symbol without a namespace specified |
AbsoluteName Text Text | Namespace and symbol |
Instances
Show DocSymbolName Source # | |
Defined in Data.GI.CodeGen.GtkDoc Methods showsPrec :: Int -> DocSymbolName -> ShowS # show :: DocSymbolName -> String # showList :: [DocSymbolName] -> ShowS # | |
Eq DocSymbolName Source # | |
Defined in Data.GI.CodeGen.GtkDoc Methods (==) :: DocSymbolName -> DocSymbolName -> Bool # (/=) :: DocSymbolName -> DocSymbolName -> Bool # | |
Ord DocSymbolName Source # | |
Defined in Data.GI.CodeGen.GtkDoc Methods compare :: DocSymbolName -> DocSymbolName -> Ordering # (<) :: DocSymbolName -> DocSymbolName -> Bool # (<=) :: DocSymbolName -> DocSymbolName -> Bool # (>) :: DocSymbolName -> DocSymbolName -> Bool # (>=) :: DocSymbolName -> DocSymbolName -> Bool # max :: DocSymbolName -> DocSymbolName -> DocSymbolName # min :: DocSymbolName -> DocSymbolName -> DocSymbolName # |
docName :: Name -> DocSymbolName Source #
Turn an ordinary Name
into a DocSymbolName
resolveDocSymbol :: DocSymbolName -> Text -> Name Source #
Return a Name
from a potentially relative DocSymbolName
,
using the provided default namespace if the name is relative.