From 38547c9e7ab062e86b0dd2dbe33427361461e948 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 17 Nov 2022 17:20:40 +0530 Subject: [PATCH] Documentation: distinguish between examples and default values for multi-valued options --- kitty/conf/types.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/kitty/conf/types.py b/kitty/conf/types.py index 50504be4e..f24046363 100644 --- a/kitty/conf/types.py +++ b/kitty/conf/types.py @@ -331,11 +331,21 @@ class MultiOption: ans: List[str] = [] a = ans.append a(f'.. opt:: {conf_name}.{self.name}') - if any(k.defval_as_str for k in self.items): - a('.. code-block:: conf') - a('') - for k in self.items: - if k.documented: + documented = tuple(x for x in self.items if x.documented) + if any(k.defval_as_str for k in documented): + defaults = tuple(x for x in documented if x.add_to_default) + if defaults: + a('.. code-block:: conf') + a('') + for k in defaults: + a(f' {self.name:s} {k.defval_as_str}'.rstrip()) + else: + a('') + a('Has no default values. Example values are shown below:') + a('') + a('.. code-block:: conf') + a('') + for k in self.items: a(f' {self.name:s} {k.defval_as_str}'.rstrip()) a('') if self.long_text: