python-rope / ropevim

vim mode that uses rope library to provide features like python refactorings and code-assists
GNU General Public License v2.0
245 stars 34 forks source link

Crash on renaming current module #77

Closed mcepl closed 1 year ago

mcepl commented 4 years ago

When running RenameCurrentModule I get:

Chyba při zpracování function RopeRenameCurrentModule[1]..provider#python3#Call:
řádek   18:
Error invoking 'python_execute' on channel 3 (python3-script-host):
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/matej/.local/lib/python3.7/site-packages/ropemode/decorators.py", line 54, in newfunc
    return func(*args, **kwds)
  File "/home/matej/.local/lib/python3.7/site-packages/ropemode/interface.py", line 52, in do_refactor
    refactoring(self, self.env).show(initial_asking=initial_asking)
  File "/home/matej/.local/lib/python3.7/site-packages/ropemode/refactor.py", line 45, in show
    self._perform(changes)
  File "/home/matej/.local/lib/python3.7/site-packages/ropemode/refactor.py", line 94, in _perform
    interrupts=False)
  File "/home/matej/.local/lib/python3.7/site-packages/ropemode/refactor.py", line 469, in runtask
    return RunTask(env, command, name, interrupts)()
  File "/home/matej/.local/lib/python3.7/site-packages/ropemode/refactor.py", line 489, in __call__
    result = self.task(handle)
  File "/home/matej/.local/lib/python3.7/site-packages/ropemode/refactor.py", line 91, in perform
    self.interface._reload_buffers(changes)
  File "/home/matej/.local/lib/python3.7/site-packages/ropemode/interface.py", line 492, in _reload_buffers
    self._get_moved_resources(changes, undo))
  File "/home/matej/.local/lib/python3.7/site-packages/ropemode/interface.py", line 498, in _reload_buffers_for_changes
    self.env.reload_files(filenames, moved)
  File "/home/matej/.vim/pack/modules/start/ropevim/ropevim.py", line 205, in reload_files
    self.find_file(initial)
  File "/home/matej/.vim/pack/modules/start/ropevim/ropevim.py", line 248, in find_file
    if self._samefile(win.buffer.name, filename):
  File "/home/matej/.vim/pack/modules/start/ropevim/ropevim.py", line 222, in _samefile
    return os.path.samefile(file1, file2)
  File "/usr/lib64/python3.7/genericpath.py", line 97, in samefile
    s2 = os.stat(f2)
FileNotFoundError: [Errno 2] No such file or directory: '/tmp/testproject/example.py'
Press ENTER or type command to continue
mcepl commented 4 years ago

Apparently, ropevim didn't recognized that it renamed current module and searches still the old filename.