diff options
| author | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2020-02-11 02:36:04 +0900 |
|---|---|---|
| committer | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2020-02-29 17:00:58 +0900 |
| commit | de52e77bc0ef1454f758a6cea8c6a7044ba0b3c7 (patch) | |
| tree | ce64ad2b02786937b7d4114c81e3c67360537657 | |
| parent | 8cfea7beddc26c51be08b41a09db1b96afad3d85 (diff) | |
| download | sphinx-git-de52e77bc0ef1454f758a6cea8c6a7044ba0b3c7.tar.gz | |
refactor: Set source_info to nodes
| -rw-r--r-- | sphinx/directives/__init__.py | 1 | ||||
| -rw-r--r-- | sphinx/domains/javascript.py | 3 | ||||
| -rw-r--r-- | sphinx/domains/python.py | 3 | ||||
| -rw-r--r-- | sphinx/domains/rst.py | 4 | ||||
| -rw-r--r-- | sphinx/domains/std.py | 13 | ||||
| -rw-r--r-- | tests/test_domain_std.py | 2 |
6 files changed, 13 insertions, 13 deletions
diff --git a/sphinx/directives/__init__.py b/sphinx/directives/__init__.py index 8f290d62d..0d9490f31 100644 --- a/sphinx/directives/__init__.py +++ b/sphinx/directives/__init__.py @@ -171,6 +171,7 @@ class ObjectDescription(SphinxDirective): # add a signature node for each signature in the current unit # and add a reference target for it signode = addnodes.desc_signature(sig, '') + self.set_source_info(signode) node.append(signode) try: # name can also be a tuple, e.g. (classname, objname); diff --git a/sphinx/domains/javascript.py b/sphinx/domains/javascript.py index 2a91d4a3a..bf4e641eb 100644 --- a/sphinx/domains/javascript.py +++ b/sphinx/domains/javascript.py @@ -112,8 +112,7 @@ class JSObject(ObjectDescription): self.state.document.note_explicit_target(signode) domain = cast(JavaScriptDomain, self.env.get_domain('js')) - domain.note_object(fullname, self.objtype, - location=(self.env.docname, self.lineno)) + domain.note_object(fullname, self.objtype, location=signode) indextext = self.get_index_text(mod_name, name_obj) if indextext: diff --git a/sphinx/domains/python.py b/sphinx/domains/python.py index d928e0d98..c9c8d5704 100644 --- a/sphinx/domains/python.py +++ b/sphinx/domains/python.py @@ -365,8 +365,7 @@ class PyObject(ObjectDescription): self.state.document.note_explicit_target(signode) domain = cast(PythonDomain, self.env.get_domain('py')) - domain.note_object(fullname, self.objtype, - location=(self.env.docname, self.lineno)) + domain.note_object(fullname, self.objtype, location=signode) indextext = self.get_index_text(modname, name_cls) if indextext: diff --git a/sphinx/domains/rst.py b/sphinx/domains/rst.py index 81c01fbf2..c0117d89f 100644 --- a/sphinx/domains/rst.py +++ b/sphinx/domains/rst.py @@ -46,7 +46,7 @@ class ReSTMarkup(ObjectDescription): self.state.document.note_explicit_target(signode) domain = cast(ReSTDomain, self.env.get_domain('rst')) - domain.note_object(self.objtype, name, location=(self.env.docname, self.lineno)) + domain.note_object(self.objtype, name, location=signode) indextext = self.get_index_text(self.objtype, name) if indextext: @@ -136,7 +136,7 @@ class ReSTDirectiveOption(ReSTMarkup): objname = ':'.join(filter(None, [directive_name, name])) domain = cast(ReSTDomain, self.env.get_domain('rst')) - domain.note_object(self.objtype, objname, location=(self.env.docname, self.lineno)) + domain.note_object(self.objtype, objname, location=signode) if directive_name: key = name[0].upper() diff --git a/sphinx/domains/std.py b/sphinx/domains/std.py index 91497035b..abf3be716 100644 --- a/sphinx/domains/std.py +++ b/sphinx/domains/std.py @@ -81,8 +81,7 @@ class GenericObject(ObjectDescription): targetname, '', None)) std = cast(StandardDomain, self.env.get_domain('std')) - std.note_object(self.objtype, name, targetname, - location=(self.env.docname, self.lineno)) + std.note_object(self.objtype, name, targetname, location=signode) class EnvVar(GenericObject): @@ -127,6 +126,7 @@ class Target(SphinxDirective): fullname = ws_re.sub(' ', self.arguments[0].strip()) targetname = '%s-%s' % (self.name, fullname) node = nodes.target('', '', ids=[targetname]) + self.set_source_info(node) self.state.document.note_explicit_target(node) ret = [node] # type: List[Node] if self.indextemplate: @@ -144,7 +144,7 @@ class Target(SphinxDirective): _, name = self.name.split(':', 1) std = cast(StandardDomain, self.env.get_domain('std')) - std.note_object(name, fullname, targetname, location=(self.env.docname, self.lineno)) + std.note_object(name, fullname, targetname, location=node) return ret @@ -165,7 +165,7 @@ class Cmdoption(ObjectDescription): logger.warning(__('Malformed option description %r, should ' 'look like "opt", "-opt args", "--opt args", ' '"/opt args" or "+opt args"'), potential_option, - location=(self.env.docname, self.lineno)) + location=signode) continue optname, args = m.groups() if count: @@ -274,7 +274,7 @@ def make_glossary_term(env: "BuildEnvironment", textnodes: Iterable[Node], index term['ids'].append(node_id) std = cast(StandardDomain, env.get_domain('std')) - std.note_object('term', termtext.lower(), node_id, location=(env.docname, lineno)) + std.note_object('term', termtext.lower(), node_id, location=term) # add an index entry too indexnode = addnodes.index() @@ -439,6 +439,7 @@ class ProductionList(SphinxDirective): def run(self) -> List[Node]: domain = cast(StandardDomain, self.env.get_domain('std')) node = addnodes.productionlist() # type: Element + self.set_source_info(node) # The backslash handling is from ObjectDescription.get_signatures nl_escape_re = re.compile(r'\\\n') lines = nl_escape_re.sub('', self.arguments[0]).split('\n') @@ -474,7 +475,7 @@ class ProductionList(SphinxDirective): else: objName = name domain.note_object(objtype='token', name=objName, labelid=idname, - location=(self.env.docname, self.lineno)) + location=node) subnode.extend(token_xrefs(tokens, productionGroup)) node.append(subnode) return [node] diff --git a/tests/test_domain_std.py b/tests/test_domain_std.py index e98384824..973208298 100644 --- a/tests/test_domain_std.py +++ b/tests/test_domain_std.py @@ -183,7 +183,7 @@ def test_glossary_warning(app, status, warning): " term-case4\n" " term-case4\n") restructuredtext.parse(app, text, "case4") - assert ("case4.txt:3: WARNING: duplicate term description of term-case4, " + assert ("case4.rst:3: WARNING: duplicate term description of term-case4, " "other instance in case4" in warning.getvalue()) |
