Use a special role for actions documentation

This commit is contained in:
Kovid Goyal 2022-02-04 18:24:39 +05:30
parent 94898a8758
commit b5676a53ee
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
7 changed files with 30 additions and 11 deletions

View File

@ -83,7 +83,7 @@ Detailed list of changes
- ssh kitten: Fix location of generated terminfo files on NetBSD (:iss:`4622`) - ssh kitten: Fix location of generated terminfo files on NetBSD (:iss:`4622`)
- A new action to clear the screen up to the line containing the cursor, see - A new action to clear the screen up to the line containing the cursor, see
:ref:`action-clear_terminal` :ac:`clear_terminal`
- macOS: Fix a regression in the previous release that broke switching input - macOS: Fix a regression in the previous release that broke switching input
sources by keyboard (:iss:`4621`) sources by keyboard (:iss:`4621`)
@ -153,7 +153,7 @@ Detailed list of changes
- Fix getting last command output not working correctly when the screen is - Fix getting last command output not working correctly when the screen is
scrolled (:pull:`4522`) scrolled (:pull:`4522`)
- Show number of windows per tab in the :ref:`action-select_tab` action (:pull:`4523`) - Show number of windows per tab in the :ac:`select_tab` action (:pull:`4523`)
- macOS: Fix the shift key not clearing pre-edit text in IME (:iss:`4541`) - macOS: Fix the shift key not clearing pre-edit text in IME (:iss:`4541`)
@ -438,7 +438,7 @@ Detailed list of changes
0.22.0 [2021-07-26] 0.22.0 [2021-07-26]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Add a new :ref:`action-toggle_layout` action to easily zoom/unzoom a window - Add a new :ac:`toggle_layout` action to easily zoom/unzoom a window
- When right clicking to extend a selection, move the nearest selection - When right clicking to extend a selection, move the nearest selection
boundary rather than the end of the selection. To restore previous behavior boundary rather than the end of the selection. To restore previous behavior

View File

@ -399,6 +399,12 @@ def parse_shortcut_node(env: Any, sig: str, signode: Any) -> str:
return sig return sig
def parse_action_node(env: Any, sig: str, signode: Any) -> str:
"""Transform an action description into RST nodes."""
signode += addnodes.desc_name(sig, sig)
return sig
def process_opt_link(env: Any, refnode: Any, has_explicit_title: bool, title: str, target: str) -> Tuple[str, str]: def process_opt_link(env: Any, refnode: Any, has_explicit_title: bool, title: str, target: str) -> Tuple[str, str]:
conf_name, opt = target.partition('.')[::2] conf_name, opt = target.partition('.')[::2]
if not opt: if not opt:
@ -407,6 +413,10 @@ def process_opt_link(env: Any, refnode: Any, has_explicit_title: bool, title: st
return title, opt_aliases.get(full_name, full_name) return title, opt_aliases.get(full_name, full_name)
def process_action_link(env: Any, refnode: Any, has_explicit_title: bool, title: str, target: str) -> Tuple[str, str]:
return title, target
def process_shortcut_link(env: Any, refnode: Any, has_explicit_title: bool, title: str, target: str) -> Tuple[str, str]: def process_shortcut_link(env: Any, refnode: Any, has_explicit_title: bool, title: str, target: str) -> Tuple[str, str]:
conf_name, slug = target.partition('.')[::2] conf_name, slug = target.partition('.')[::2]
if not slug: if not slug:
@ -444,6 +454,15 @@ def write_conf_docs(app: Any, all_kitten_names: Iterable[str]) -> None:
sc_role.process_link = process_shortcut_link sc_role.process_link = process_shortcut_link
shortcut_slugs.clear() shortcut_slugs.clear()
app.add_object_type(
'action', 'ac',
indextemplate="pair: %s; Action",
parse_node=parse_action_node,
)
ac_role = app.registry.domain_roles['std']['ac']
ac_role.warn_dangling = True
ac_role.process_link = process_action_link
def generate_default_config(definition: Definition, name: str) -> None: def generate_default_config(definition: Definition, name: str) -> None:
with open(f'generated/conf-{name}.rst', 'w', encoding='utf-8') as f: with open(f'generated/conf-{name}.rst', 'w', encoding='utf-8') as f:
print('.. highlight:: conf\n', file=f) print('.. highlight:: conf\n', file=f)

View File

@ -134,7 +134,7 @@ terminal program, you can tell the kittens system to run the
For example, here is a kitten that "zooms/unzooms" the current terminal window For example, here is a kitten that "zooms/unzooms" the current terminal window
by switching to the stack layout or back to the previous layout. This is by switching to the stack layout or back to the previous layout. This is
equivalent to the builtin :ref:`action-toggle_layout` action. equivalent to the builtin :ac:`toggle_layout` action.
Create a file in the kitty config folder, :file:`~/.config/kitty/zoom_toggle.py` Create a file in the kitty config folder, :file:`~/.config/kitty/zoom_toggle.py`

View File

@ -93,7 +93,7 @@ to be copied.
The feature to jump to previous prompts ( The feature to jump to previous prompts (
:sc:`scroll_to_previous_prompt` and :sc:`scroll_to_next_prompt`) and mouse :sc:`scroll_to_previous_prompt` and :sc:`scroll_to_next_prompt`) and mouse
actions (:ref:`action-mouse_select_command_output` and :ref:`action-mouse_show_command_output`) can actions (:ac:`mouse_select_command_output` and :ac:`mouse_show_command_output`) can
be integrated with browsing command output as well. For example, define the be integrated with browsing command output as well. For example, define the
following mapping in :file:`kitty.conf`: following mapping in :file:`kitty.conf`:

View File

@ -99,10 +99,7 @@ def as_rst() -> str:
for action in allg[group]: for action in allg[group]:
a('') a('')
a(f'.. _action-{action.name}:') a(f'.. action:: {action.name}')
a('')
a(action.name)
a('+' * len(action.name))
a('') a('')
a(action.short_help) a(action.short_help)
a('') a('')

View File

@ -66,6 +66,9 @@ def remove_markup(text: str) -> str:
if m.group(1) == 'ref': if m.group(1) == 'ref':
q = m.group(2).split('<')[-1].rstrip('>') q = m.group(2).split('<')[-1].rstrip('>')
return ref_map()[q] return ref_map()[q]
if m.group(1) == 'ac':
q = m.group(2).split('<')[-1].rstrip('>')
return ref_map()[f'action-{q}']
return str(m.group(2)) return str(m.group(2))
return re.sub(r':([a-zA-Z0-9]+):`(.+?)`', sub, text, flags=re.DOTALL) return re.sub(r':([a-zA-Z0-9]+):`(.+?)`', sub, text, flags=re.DOTALL)

View File

@ -947,7 +947,7 @@ windows, via the quit action). Negative values are converted to positive ones,
however, with :ref:`shell_integration` enabled, using negative values means however, with :ref:`shell_integration` enabled, using negative values means
windows sitting at a shell prompt are not counted, only windows where some windows sitting at a shell prompt are not counted, only windows where some
command is currently running. Note that if you want confirmation when closing command is currently running. Note that if you want confirmation when closing
individual windows, you can map the :ref:`action-close_window_with_confirmation` action. individual windows, you can map the :ac:`close_window_with_confirmation` action.
''' '''
) )
egr() # }}} egr() # }}}
@ -998,7 +998,7 @@ The tab bar style, can be one of:
:disc:`this discussion <4447>` for examples from kitty users. :disc:`this discussion <4447>` for examples from kitty users.
:code:`hidden` :code:`hidden`
The tab bar is hidden. If you use this, you might want to create a The tab bar is hidden. If you use this, you might want to create a
mapping for the :ref:`action-select_tab` mapping for the :ac:`select_tab`
action which presents you with a list of tabs and allows for easy action which presents you with a list of tabs and allows for easy
switching to a tab. switching to a tab.
''' '''