summaryrefslogtreecommitdiffstats
path: root/rtemsspec
diff options
context:
space:
mode:
Diffstat (limited to 'rtemsspec')
-rw-r--r--rtemsspec/interface.py8
-rw-r--r--rtemsspec/interfacedoc.py6
-rw-r--r--rtemsspec/tests/spec-interface/func.yml1
-rw-r--r--rtemsspec/tests/test_interface.py2
-rw-r--r--rtemsspec/tests/test_interfacedoc.py2
5 files changed, 17 insertions, 2 deletions
diff --git a/rtemsspec/interface.py b/rtemsspec/interface.py
index 04536232..c9b07ff0 100644
--- a/rtemsspec/interface.py
+++ b/rtemsspec/interface.py
@@ -59,6 +59,10 @@ def _get_value_forward_declaration(ctx: ItemGetValueContext) -> Any:
return _forward_declaration(ctx.item)
+def _get_value_params(ctx: ItemGetValueContext) -> Any:
+ return f"``{ctx.value[ctx.key]}``"
+
+
class _InterfaceMapper(ItemMapper):
def __init__(self, node: "Node"):
super().__init__(node.item)
@@ -70,6 +74,8 @@ class _InterfaceMapper(ItemMapper):
_get_value_forward_declaration)
self.add_get_value("interface/function/doc:/name",
get_value_doxygen_function)
+ self.add_get_value("interface/function/doc:/params/name",
+ _get_value_params)
self.add_get_value("interface/enumerator/doc:/name",
get_value_double_colon)
self.add_get_value("interface/typedef/doc:/name",
@@ -78,6 +84,8 @@ class _InterfaceMapper(ItemMapper):
self.add_get_value("interface/enum/doc:/name", get_value_hash)
self.add_get_value("interface/macro/doc:/name",
get_value_doxygen_function)
+ self.add_get_value("interface/macro/doc:/params/name",
+ _get_value_params)
self.add_get_value("interface/variable/doc:/name", get_value_hash)
for opt in ["feature-enable", "feature", "initializer", "integer"]:
name = f"interface/appl-config-option/{opt}/doc:/name"
diff --git a/rtemsspec/interfacedoc.py b/rtemsspec/interfacedoc.py
index 6109a711..5e7e3106 100644
--- a/rtemsspec/interfacedoc.py
+++ b/rtemsspec/interfacedoc.py
@@ -64,11 +64,17 @@ def _get_value_function(ctx: ItemGetValueContext) -> Any:
return _get_reference(ctx.value[ctx.key])
+def _get_param(ctx: ItemGetValueContext) -> Any:
+ return f"``{ctx.value[ctx.key].lstrip('_')}``"
+
+
class _Mapper(SphinxMapper):
def __init__(self, item: Item):
super().__init__(item)
self.add_get_value("interface/function:/name", _get_value_function)
self.add_get_value("interface/macro:/name", _get_value_function)
+ self.add_get_value("interface/function:/params/name", _get_param)
+ self.add_get_value("interface/macro:/params/name", _get_param)
def _generate_introduction(target: str, group: Item,
diff --git a/rtemsspec/tests/spec-interface/func.yml b/rtemsspec/tests/spec-interface/func.yml
index c5177826..e5dc909b 100644
--- a/rtemsspec/tests/spec-interface/func.yml
+++ b/rtemsspec/tests/spec-interface/func.yml
@@ -17,6 +17,7 @@ description: |
Function description. References to ${func2:/name}, ${td:/name},
${enum:/name}, ${define:/name}, ${macro:/name}, ${var:/name},
${enumerator-0:/name}, ${s:/name}, ${option:/name}, and ${option:/type}.
+ Second parameter is ${.:/params[1]/name}.
enabled-by: true
index-entries: []
interface-type: function
diff --git a/rtemsspec/tests/test_interface.py b/rtemsspec/tests/test_interface.py
index 924ab324..2ac2f3e9 100644
--- a/rtemsspec/tests/test_interface.py
+++ b/rtemsspec/tests/test_interface.py
@@ -205,7 +205,7 @@ typedef enum EnumB {
*
* Function description. References to VeryLongFunction(), ::Integer, #Enum,
* #DEFINE, VERY_LONG_MACRO(), #Variable, ::ENUMERATOR_0, Struct, #a, and
- * interface.
+ * interface. Second parameter is ``Param1``.
*
* @param Param0 is parameter 0.
*
diff --git a/rtemsspec/tests/test_interfacedoc.py b/rtemsspec/tests/test_interfacedoc.py
index e7073027..c1c8f371 100644
--- a/rtemsspec/tests/test_interfacedoc.py
+++ b/rtemsspec/tests/test_interfacedoc.py
@@ -444,6 +444,6 @@ Function brief description.
Function description. References to :ref:`InterfaceVeryLongFunction`,
:c:type:`Integer`, :c:type:`Enum`, :c:macro:`DEFINE`,
:ref:`InterfaceVERYLONGMACRO`, Variable, :c:macro:`ENUMERATOR_0`,
-:c:type:`Struct`, :ref:`a`, and interface.
+:c:type:`Struct`, :ref:`a`, and interface. Second parameter is ``Param1``.
"""
assert content == src.read()