Anonymous avatar Anonymous committed dfea3e3

worder: fixed finding the start of empty string literals

Comments (0)

Files changed (2)

rope/base/worder.py

     def _find_string_start(self, offset):
         kind = self.code[offset]
         try:
-            return self.code.rindex(kind, 0, offset - 1)
+            return self.code.rindex(kind, 0, offset)
         except ValueError:
             return 0
 

ropetest/codeanalyzetest.py

         finder = worder.Worder(code)
         self.assertEquals(1, finder.find_parens_start_from_inside(2))
 
+    def test_underlined_find_parens_start(self):
+        code = 'f(p="")\n'
+        finder = worder.Worder(code)
+        self.assertEquals(1, finder._find_parens_start(len(code) - 2))
+
     def test_find_parens_start_with_multiple_entries(self):
         code = 'myfunc(p1, p2, p3\n'
         finder = worder.Worder(code)
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.