summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2023-02-10 11:04:09 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2023-02-14 08:32:13 +0100
commit186f4492bf9974037ed23550af76f8ea989f88d5 (patch)
treeccf2be62611d676e6c973824e9931a16c3ea5ab5
parentspec: Add header file references (diff)
downloadrtems-central-186f4492bf9974037ed23550af76f8ea989f88d5.tar.bz2
rtemsspec: Add a get value for header files
-rw-r--r--rtemsspec/applconfig.py4
-rw-r--r--rtemsspec/content.py5
-rw-r--r--rtemsspec/interface.py6
-rw-r--r--rtemsspec/sphinxcontent.py6
-rw-r--r--rtemsspec/tests/spec-interface/func4.yml3
-rw-r--r--rtemsspec/tests/test_interfacedoc.py4
6 files changed, 22 insertions, 6 deletions
diff --git a/rtemsspec/applconfig.py b/rtemsspec/applconfig.py
index d203426d..caef370a 100644
--- a/rtemsspec/applconfig.py
+++ b/rtemsspec/applconfig.py
@@ -28,7 +28,8 @@ from typing import Any, Callable, Dict, List, Optional
from rtemsspec.content import Content, CContent, get_value_double_colon, \
get_value_doxygen_function, get_value_doxygen_group, \
- get_value_doxygen_ref, get_value_hash, get_value_plural
+ get_value_doxygen_ref, get_value_hash, get_value_header_file, \
+ get_value_plural
from rtemsspec.sphinxcontent import GenericContent, SphinxContent, \
SphinxInterfaceMapper
from rtemsspec.items import EmptyItem, Item, ItemCache, ItemGetValueContext, \
@@ -311,6 +312,7 @@ def _add_doxygen_get_values(mapper: ItemMapper) -> None:
mapper.add_get_value("interface/function:/name",
get_value_doxygen_function)
mapper.add_get_value("interface/group:/name", get_value_doxygen_group)
+ mapper.add_get_value("interface/header-file:/path", get_value_header_file)
mapper.add_get_value("interface/macro:/name", get_value_doxygen_function)
mapper.add_get_value("interface/struct:/name", get_value_double_colon)
mapper.add_get_value("interface/typedef:/name", get_value_double_colon)
diff --git a/rtemsspec/content.py b/rtemsspec/content.py
index 242e0db9..12ea4e9a 100644
--- a/rtemsspec/content.py
+++ b/rtemsspec/content.py
@@ -1040,6 +1040,11 @@ def get_value_double_colon(ctx: ItemGetValueContext) -> Any:
return f"::{ctx.value[ctx.key]}"
+def get_value_header_file(ctx: ItemGetValueContext) -> Any:
+ """ Gets a value formatted as a header file. """
+ return f"``<{ctx.value[ctx.key]}>``"
+
+
def get_value_hash(ctx: ItemGetValueContext) -> Any:
""" Gets a value with a # prefix. """
return f"#{ctx.value[ctx.key]}"
diff --git a/rtemsspec/interface.py b/rtemsspec/interface.py
index d5edc0ec..4cb2cb6f 100644
--- a/rtemsspec/interface.py
+++ b/rtemsspec/interface.py
@@ -36,8 +36,8 @@ from rtemsspec.content import CContent, CInclude, enabled_by_to_exp, \
ExpressionMapper, forward_declaration, get_value_compound, \
get_value_double_colon, get_value_doxygen_function, \
get_value_doxygen_group, get_value_doxygen_ref, \
- get_value_forward_declaration, get_value_hash, get_value_params, \
- get_value_plural, to_camel_case
+ get_value_forward_declaration, get_value_hash, get_value_header_file, \
+ get_value_params, get_value_plural, to_camel_case
from rtemsspec.items import Item, ItemCache, ItemGetValueMap, ItemMapper
ItemMap = Dict[str, Item]
@@ -81,6 +81,8 @@ class _InterfaceMapper(ItemMapper):
self.add_get_value("interface/enum/doc:/name", get_value_hash)
self.add_get_value("interface/group/doc:/name",
get_value_doxygen_group)
+ self.add_get_value("interface/header-file/doc:/path",
+ get_value_header_file)
self.add_get_value("interface/macro/doc:/name",
get_value_doxygen_function)
self.add_get_value("interface/macro/doc:/params/name",
diff --git a/rtemsspec/sphinxcontent.py b/rtemsspec/sphinxcontent.py
index 1002f9ce..199ee874 100644
--- a/rtemsspec/sphinxcontent.py
+++ b/rtemsspec/sphinxcontent.py
@@ -27,8 +27,8 @@
from contextlib import contextmanager
from typing import Any, Iterable, Iterator, List, Optional, Sequence, Union
-from rtemsspec.content import Content, get_value_plural, make_lines, \
- to_camel_case
+from rtemsspec.content import Content, get_value_header_file, \
+ get_value_plural, make_lines, to_camel_case
from rtemsspec.items import Item, ItemGetValue, ItemGetValueContext, ItemMapper
GenericContent = Union[str, List[str], "Content"]
@@ -286,6 +286,8 @@ class SphinxMapper(ItemMapper):
_get_value_sphinx_macro)
self.add_get_value("interface/function:/name",
_get_value_sphinx_function)
+ self.add_get_value("interface/header-file:/path",
+ get_value_header_file)
self.add_get_value("interface/macro:/name", _get_value_sphinx_function)
self.add_get_value("interface/struct:/name", _get_value_sphinx_type)
self.add_get_value("interface/typedef:/name", _get_value_sphinx_type)
diff --git a/rtemsspec/tests/spec-interface/func4.yml b/rtemsspec/tests/spec-interface/func4.yml
index 193329d3..3d6cafbf 100644
--- a/rtemsspec/tests/spec-interface/func4.yml
+++ b/rtemsspec/tests/spec-interface/func4.yml
@@ -15,7 +15,8 @@ definition:
params: []
return: NotSoVeryLongType
enabled-by: true
-description: null
+description: |
+ I am defined in ${h4:/path}.
enabled-by: true
index-entries: []
interface-type: function
diff --git a/rtemsspec/tests/test_interfacedoc.py b/rtemsspec/tests/test_interfacedoc.py
index 3d5eb523..e9d78bad 100644
--- a/rtemsspec/tests/test_interfacedoc.py
+++ b/rtemsspec/tests/test_interfacedoc.py
@@ -155,6 +155,10 @@ Function brief description with very long return type.
VeryLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongType
VeryLongTypeFunction( void );
+.. rubric:: DESCRIPTION:
+
+I am defined in ``<h4.h>``.
+
.. rubric:: RETURN VALUES:
This function returns an object with a very long type.