Skip to content

Commit

Permalink
std domain: Generate node_id for cmdoptions in the right way
Browse files Browse the repository at this point in the history
  • Loading branch information
tk0miya committed Mar 3, 2020
1 parent 8dd83a5 commit fa40ea0
Showing 1 changed file with 8 additions and 7 deletions.
15 changes: 8 additions & 7 deletions sphinx/domains/std.py
Original file line number Diff line number Diff line change
Expand Up @@ -214,16 +214,17 @@ def handle_signature(self, sig: str, signode: desc_signature) -> str:
def add_target_and_index(self, firstname: str, sig: str, signode: desc_signature) -> None:
currprogram = self.env.ref_context.get('std:program')
for optname in signode.get('allnames', []):
targetname = optname.replace('/', '-')
if not targetname.startswith('-'):
targetname = '-arg-' + targetname
prefixes = ['cmdoption']
if currprogram:
targetname = '-' + currprogram + targetname
targetname = 'cmdoption' + targetname
signode['names'].append(targetname)
prefixes.append(currprogram)
if not optname.startswith(('-', '/')):
prefixes.append('arg')
prefix = '-'.join(prefixes)
node_id = make_id(self.env, self.state.document, prefix, optname)
signode['names'].append(node_id)
self.state.document.note_explicit_target(signode)

domain = cast(StandardDomain, self.env.get_domain('std'))
self.state.document.note_explicit_target(signode)
for optname in signode.get('allnames', []):
domain.add_program_option(currprogram, optname,
self.env.docname, signode['ids'][0])
Expand Down

0 comments on commit fa40ea0

Please sign in to comment.