On this page:
doc
doc_  meta.space
doc.bridge
doc_  meta.transformer
head_  extract_  name
parens_  extract_  name
operator_  macro_  extract_  name
identifier_  macro_  extract_  name
head_  extract_  metavariables
parens_  extract_  metavariables
operator_  macro_  extract_  metavariables
identifier_  macro_  extract_  metavariables
head_  extract_  typeset
parens_  extract_  typeset
operator_  macro_  extract_  typeset
identifier_  macro_  extract_  typeset
doc_  meta.add_  metavariable
doc_  meta.typeset_  rhombusblock
8.15.0.2

3.6 Creating Documentation Forms🔗ℹ

 import: scribble/doc_meta package: rhombus-scribble-lib

A space for documentation forms.

definition

doc.bridge name:

  body

  ...

Binds name as a documentation form in the doc space for use with the doc documentation form. The bodys should produce a value created by doc_meta.transformer.

function

fun doc_meta.transformer(

  ~extract_desc: extract_desc :: Function.of_arity(1),

  ~extract_space: extract_space :: Function.of_arity(1),

  ~extract_defined: extract_defined :: Function.of_arity(2),

  ~extract_metavariables: extract_metavariables :: Function.of_arity(3),

  ~extract_typeset: extract_typeset :: Function.of_arity(3)

)

Combines a set of functions into a value suitable for use with doc.bridge:

function

fun head_extract_name(

  stx :: Syntax, space :: SpaceName

) :: Identifier || List

 

function

fun parens_extract_name(

  stx :: Syntax, space :: SpaceName

) :: Identifier || List

 

function

fun operator_macro_extract_name(

  stx :: Syntax, space :: SpaceName

) :: Identifier || List

 

function

fun identifier_macro_extract_name(

  stx :: Syntax, space :: SpaceName

) :: Identifier || List

 

function

fun head_extract_metavariables(

  stx :: Syntax, space :: SpaceName, vars :: Map

) :: Map

 

function

fun parens_extract_metavariables(

  stx :: Syntax, space :: SpaceName, vars :: Map

) :: Map

 

function

fun operator_macro_extract_metavariables(

  stx :: Syntax, space :: SpaceName, vars :: Map

) :: Map

 

function

fun identifier_macro_extract_metavariables(

  stx :: Syntax, space :: SpaceName, vars :: Map

) :: Map

 

function

fun head_extract_typeset(

  stx :: Syntax, space :: SpaceName, subst

) :: Syntax

 

function

fun parens_extract_typeset(

  stx :: Syntax, space :: SpaceName, subst

) :: Syntax

 

function

fun operator_macro_extract_typeset(

  stx :: Syntax, space :: SpaceName, subst

) :: Syntax

 

function

fun identifier_macro_extract_typeset(

  stx :: Syntax, space :: SpaceName, subst

) :: Syntax

Extraction functions for use with doc_meta.transformer that handle common documentation patterns.

function

fun doc_meta.add_metavariable(

  vars :: Map,

  id :: Identifier,

  ~is_nonterminal = #false

) :: Map

For use by the ~extract_metavariables component of a doc_meta.transformer construction.

function

fun doc_meta.typeset_rhombusblock(

  form :: Syntax,

  ~at: at_form :: Syntax = form,

  ~is_pattern = #false,

  ~options: options :: Term = '(~inset: #false)'

) :: Syntax

For use by the ~extract_typeset component of a doc_meta.transformer construction.