def handle_signature(self, sig: str, signode: addnodes.desc_signature) -> str: signode.clear() signode += addnodes.desc_name(sig, sig) # normalize whitespace like XRefRole does name = ws_re.sub(' ', sig) return name
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', []): prefixes = ['cmdoption'] if currprogram: 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['ids'].append(node_id) self.state.document.note_explicit_target(signode) domain = cast(StandardDomain, self.env.get_domain('std')) for optname in signode.get('allnames', []): domain.add_program_option(currprogram, optname, self.env.docname, signode['ids'][0]) # create an index entry if currprogram: descr = _('%s command line option') % currprogram else: descr = _('command line option') for option in sig.split(', '): entry = '; '.join([descr, option]) self.indexnode['entries'].append( ('pair', entry, signode['ids'][0], '', None))
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 if currprogram: targetname = '-' + currprogram + targetname targetname = 'cmdoption' + targetname signode['names'].append(targetname) 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]) # create an index entry if currprogram: descr = _('%s command line option') % currprogram else: descr = _('command line option') for option in sig.split(', '): entry = '; '.join([descr, option]) self.indexnode['entries'].append( ('pair', entry, signode['ids'][0], '', None))
def handle_signature(self, sig: str, signode: desc_signature) -> Signature: signode += desc_annotation(self.objtype, self.objtype) module_name = self.options['module'] + '.' signode += desc_name(sig, sig) signode += desc_type(' = ', ' = ') signode.extend(parse_type(self.options['target'], make_desc_type)) return Signature(self.objtype, sig, self.options['module'])
def handle_signature(self, sig: str, signode: desc_signature) -> Signature: if 'oneway' in self.options: signode += desc_annotation('oneway', 'oneway') signode += desc_type(self.options['return_type'] + ' ', self.options['return_type'] + ' ') service_name = self.options['service'] + '.' signode += desc_name(sig, sig) signode += desc_addname('(', '(') first = True for name, type_ in self.options['parameters']: if first: first = False else: signode += desc_addname(', ', ', ') signode.extend(parse_type(type_, make_desc_type)) signode += make_desc_type(' ') signode += desc_addname(name, name) signode += desc_addname(')', ')') first = True if self.options['exceptions']: signode += desc_addname(' throws (', ' throws (') for name, type_ in self.options['exceptions']: if first: first = False else: signode += desc_addname(', ', ', ') signode.extend(parse_type(type_, make_desc_type)) signode += make_desc_type(' ') signode += desc_addname(name, name) if self.options['exceptions']: signode += desc_addname(')', ')') return Signature(self.objtype, service_name + sig, self.options['module'])
def handle_signature(self, sig: str, signode: desc_signature) -> Signature: annotation = 'field' signode += desc_annotation(annotation, annotation) struct_name = self.options['struct'] + '.' signode += desc_name(sig, sig) signode += desc_type(': ', ': ') signode.extend(parse_type(self.options['type'], make_desc_type)) return Signature(self.kind, struct_name + sig, self.options['module'])
def handle_signature(self, sig: str, signode: desc_signature) -> str: if self.parse_node: name = self.parse_node(self.env, sig, signode) else: signode.clear() signode += addnodes.desc_name(sig, sig) # normalize whitespace like XRefRole does name = ws_re.sub(' ', sig) return name
def handle_signature(self, sig: str, sig_node: addnodes.desc_signature) -> Tuple[str, str]: """Transform a Lua signature into RST nodes. Return (fully qualified name of the thing, classname if any). If inside a class, the current class name is handled intelligently: * it is stripped from the displayed name if present * it is added to the full name (return value) if not present """ m = self.CLASS_DEF_RE.match(sig) if m is None: raise ValueError class_name, base_classes_raw = m.groups() if base_classes_raw: base_classes = re.findall(r'[\w.]+', base_classes_raw) else: base_classes = [] # determine module and class name (if applicable), as well as full name modname = self.options.get('module', self.env.ref_context.get('lua:module')) classname = self.env.ref_context.get('lua:class') sig_node['module'] = modname sig_node['class'] = classname sig_node['fullname'] = class_name sig_prefix = self.get_signature_prefix(sig) if sig_prefix: sig_node += addnodes.desc_annotation(sig_prefix, sig_prefix) modname = self.options.get('module', self.env.ref_context.get('lua:module')) if modname: nodetext = modname + '.' sig_node += addnodes.desc_addname(nodetext, nodetext) sig_node += addnodes.desc_name(class_name, class_name) sig_node += addnodes.desc_annotation(": ", ": ") for base in base_classes: p_node = addnodes.pending_xref('', refdomain='lua', reftype='type', reftarget=base, modname=None, classname=None) p_node['lua:class'] = base p_node += nodes.Text(base) sig_node += p_node sig_node += nodes.Text(', ') sig_node.pop() return class_name, ''
def handle_signature(self, sig: str, signode: addnodes.desc_signature) -> str: signode.clear() signode += addnodes.desc_name(sig, sig) # normalize whitespace like XRefRole does name = ws_re.sub(' ', sig) cur_module = self._current_module() if cur_module: return '/'.join(['mgr', cur_module, name]) else: return name
def handle_signature(self, sig: str, signode: desc_signature) -> Tuple[str, str]: for cls in self.__class__.__mro__: if cls.__name__ != 'DirectiveAdapter': warnings.warn('PyDecoratorMixin is deprecated. ' 'Please check the implementation of %s' % cls, RemovedInSphinx50Warning, stacklevel=2) break else: warnings.warn('PyDecoratorMixin is deprecated', RemovedInSphinx50Warning, stacklevel=2) ret = super().handle_signature(sig, signode) # type: ignore signode.insert(0, addnodes.desc_addname('@', '@')) return ret
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 if currprogram: targetname = '-' + currprogram + targetname targetname = 'cmdoption' + targetname signode['names'].append(targetname) 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]) # create only one index entry for the whole option if optname == firstname: self.indexnode['entries'].append( ('pair', _('%scommand line option; %s') % ((currprogram and currprogram + ' ' or ''), sig), signode['ids'][0], '', None))
def handle_signature(self, sig: str, signode: addnodes.desc_signature) -> Tuple[str, str]: self.block_header = sig.upper() func = self.env.ref_context.get("bk:function", None) if func is None: self.declarations = None return "", "" self.parent_name = func.name self.declarations = list( func.declarations_by_block[self.block_header].values()) signode += addnodes.desc_name( text=self.block_header, classes=["variable_block", self.block_header]) signode.classes = ["variable_block"] return self.block_header, ""
def handle_signature(self, sig: str, signode: desc_signature) -> Tuple[str, str]: ret = super().handle_signature(sig, signode) # type: ignore signode.insert(0, addnodes.desc_addname('@', '@')) return ret
def depart_desc_signature(self, node: addnodes.desc_signature) -> None: if not node.get("is_multiline"): self.add_permalink_ref(node, _("Permalink to this definition")) self.body.append('</dt>\n')
def handle_signature(self, sig: str, signode: addnodes.desc_signature) -> T: # The signature is the name signode.clear() signode += addnodes.desc_name(sig, sig) return sig