3

If I use evil-jump-to-tag or xref-find-defintions on an inherited class module whose name is the same as a class in my current project, I am taken to the definition in the current project. I would expect to go to the definition given in the module.

Aside from renaming the class in my current project, how I can I navigate to the module?

For example

Suppose my_module.py defines a custom MainWindow that I use in my_project.py:


# my_module.py

class MainWindow(QtWidgets.QMainWindow):

    def __init__(self):
        super().__init__()
        print("My module!")

# my_project

class MainWindow(my_module.MainWindow):

    def __init__(self):
        super().__init__()
        print("My project calling my module!")

If my cursor is |, then a call to evil-jump-to-tag or xref-find-defintions at

# my_project.py
class MainWindow(my_module.MainWind|ow):

moves my cursor to

# my_project.py
class |MainWindow(my_module.MainWindow):

I would expect it to take me to

# my_module.py
class |MainWindow(QtWidgets.QMainWindow): 

What can I do, aside from renaming the class in my_project.py, to help xref understand that my_module.MainWindow lives in my_module.py?


Configuration details

I am using Gnu Emacs 26.1 on Windows 10 with Python 3. I edit Python files with elpy and evil. The elpy-config reads:

Elpy Configuration

Virtualenv........: venv (c:/projects/my_project/venv)
RPC Python........: 3.6.8 (c:/projects/my_project/venv/Scripts/python.exe)
Interactive Python: ipython (c:/projects/my_project/venv/Scripts/ipython.exe)
Emacs.............: 26.1
Elpy..............: 1.28.0
Jedi..............: 0.13.2
Rope..............: 0.11.0
Autopep8..........: 1.4.3
Yapf..............: 0.25.0
Black.............: 18.9b0
Syntax checker....: flake8.exe (c:/projects/my_project/venv/Scripts/flake8.exe)

I have not done any configuration for xref. Until now, it has Just Worked™.

Lorem Ipsum
  • 4,327
  • 2
  • 14
  • 35

0 Answers0