Allow linking to latter options in a option group

This commit is contained in:
Kovid Goyal 2018-06-04 11:59:09 +05:30
parent 0070e0a58a
commit 485fe0a7fb
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -328,6 +328,9 @@ def expand_opt_references(conf_name, text):
return re.sub(r':opt:`(.+?)`', expand, text) return re.sub(r':opt:`(.+?)`', expand, text)
opt_aliases = {}
def parse_opt_node(env, sig, signode): def parse_opt_node(env, sig, signode):
"""Transform an option description into RST nodes.""" """Transform an option description into RST nodes."""
count = 0 count = 0
@ -343,6 +346,7 @@ def parse_opt_node(env, sig, signode):
signode['allnames'] = [optname] signode['allnames'] = [optname]
else: else:
signode['allnames'].append(optname) signode['allnames'].append(optname)
opt_aliases[optname] = firstname
count += 1 count += 1
if not firstname: if not firstname:
raise ValueError('{} is not a valid opt'.format(sig)) raise ValueError('{} is not a valid opt'.format(sig))
@ -382,7 +386,8 @@ def process_opt_link(env, refnode, has_explicit_title, title, target):
conf_name, opt = target.partition('.')[::2] conf_name, opt = target.partition('.')[::2]
if not opt: if not opt:
conf_name, opt = 'kitty', conf_name conf_name, opt = 'kitty', conf_name
return title, conf_name + '.' + opt full_name = conf_name + '.' + opt
return title, opt_aliases.get(full_name, full_name)
def write_conf_docs(app): def write_conf_docs(app):
@ -401,7 +406,6 @@ def write_conf_docs(app):
print('.. highlight:: ini\n', file=f) print('.. highlight:: ini\n', file=f)
f.write(render_conf('kitty', all_options.values())) f.write(render_conf('kitty', all_options.values()))
# }}} # }}}