Leontius Adhika Pradhana avatar Leontius Adhika Pradhana committed 0692352

rst domain now properly implements clear_doc() and warns on duplicate object descriptions.

Comments (0)

Files changed (1)

sphinx/domains/rst.py

             self.state.document.note_explicit_target(signode)
         
             objects = self.env.domaindata['rst']['objects']
-            #XXX add warning for duplicate definitions
+            print objects
+            if name in objects:
+                self.env.warn(
+                    self.env.docname,
+                    'duplicate object description of %s, ' % name +
+                    'other instance in ' +
+                    self.env.doc2path(objects[name][0]),
+                    self.lineno)
             objects[name] = self.env.docname, self.objtype
         indextext = self.get_index_text(self.objtype, name)
         if indextext:
         'objects': {},  # fullname -> docname, objtype
     }
     
+    def clear_doc(self, docname):
+        for name, (doc, _) in self.data['objects'].items():
+            if doc == docname:
+                del self.data['objects'][name]
+    
     def resolve_xref(self, env, fromdocname, builder, typ, target, node,
                      contnode):
         objects = self.data['objects']
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.