コード例 #1
0
ファイル: ceph_confval.py プロジェクト: hmrg-grmh/ceph.fs
 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
コード例 #2
0
ファイル: std.py プロジェクト: bobesch/sphinx
    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))
コード例 #3
0
    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))
コード例 #4
0
 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'])
コード例 #5
0
 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'])
コード例 #6
0
 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'])
コード例 #7
0
ファイル: std.py プロジェクト: bobesch/sphinx
 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
コード例 #8
0
    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, ''
コード例 #9
0
 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
コード例 #10
0
ファイル: python.py プロジェクト: maltfield/sphinx
    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
コード例 #11
0
    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))
コード例 #12
0
ファイル: sphinxdomain.py プロジェクト: klauer/blark
    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, ""
コード例 #13
0
ファイル: python.py プロジェクト: zhou-/sphinx
 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
コード例 #14
0
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')
コード例 #15
0
 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