如何在左键双击语句后在右键菜单中显示 Go To Declaration?

How to have Go To Declaration in right-click menu after left double-clicking on a statement?

如何将右键单击菜单配置为在以下两种情况下以相同的方式具有 Go To > Declaration or Usages 选项?

使用简单的代码示例:

def a_func():
    pass

def b_func():
    a_func()

案例一:

如果我们右键单击 .py 源文件中已声明对象的 a statement,则 Go To > Declaration or Usages 选项在菜单。如截图所示:

案例二:

但是,如果我们首先左键双击声明,第二右键单击声明,Go To > Declaration or Usages 选项在菜单中不可用。如截图所示:

键盘快捷键 Ctrl + B 在这两种情况下都有效,但是当只使用鼠标时,我希望在右键单击时使用相同的选项,无论我之前是否左键双击过 或没有。

我试图寻找一种方法来做到这一点,显然配置在 Settings > Menus and Toolbars > Edit Popup Menu,但我不能'不明白 EditorPopupMenu 需要更改什么以及如何更改?

这发生在我身上 PyCharm (2020.3)。您可以将单个 go to declaration 等操作添加到菜单,但不能添加整个 Go To 菜单本身。

这是由于 <install path>\JetBrains\Pycharm Community Edition 2020.3\lib\resources.jar 中文件的 class 属性造成的。在 idea/LangActions.xml 下的那个罐子里是 EditorPopUpMenu.GoTo 的组定义。 class 属性 class="com.intellij.ide.actions.EditorPopupNoSelectionGroup" 可防止在选择文本时显示 Go To 菜单。

可以使用 7zip 等实用工具解压 jar,删除 LangActions.xml 中的 class="com.intellij.ide.actions.EditorPopupNoSelectionGroup" 属性,将新的 resources.jar 替换为安装路径中的旧属性,并且菜单应该出现在两种情况下。这是一个非常肮脏的 hack,但我已经确认它有效。