Sublime Text 3:如何修改goto_definition命令?

时间:2014-07-02 21:27:48

标签: python plugins command sublimetext3

这不是键盘重映射请求。我目前的困境是无法编辑goto_definition命令(默认情况下绑定到F12)。如果我能找到它的.py文件,那么(希望)会是一块蛋糕。

我的项目范围越大,我就需要修改goto_definition的功能,使其更接近CodeWright中的等效功能。我在ST3工作,恢复到ST2不是一个选择。

让我更清楚地阐述我的障碍:

  • 找到.py文件,其中包含goto_definition运行时使用的信息。

  • 将该命令的性质修改为更灵活:

    • 基本上,有一些方法,EditElementHandleRMSBsplineCurveCRGetElementDescrPGetModelRef以及其他几种类似的方法。

      < / LI>
    • 有&#34;标签&#34;附加到其中一些,如果方法名称要有标记,则它将是以下四种之一:CRCPRP

    • 还有使用这些名称的方法,无标签。

    • CodeWright将程序员带到定义的行为是指向等效的方法名称,没有标记 ,即使光标当前位于方法名称上也是如此标签

    • 如果我点击F12(召回:goto_definition),而光标位于&#34;标记为&#34;那么Sublime无法找到原始方法方法名称。

这是理想情况:我的光标位于名为EditElem|entHandleR的方法中(|表示光标),我点击F12。 Sublime然后带我进入EditElementHandle定义。

1 个答案:

答案 0 :(得分:0)

不幸的是,goto_definition没有在Python中实现,它是Sublime编译的可执行文件(主要用C ++编写)的一部分,所以它不是用户可修改的。但是,有几个可用的代码智能插件,包括SublimeCodeIntelAnaconda,可能更适合您的需求。代码智能并不神奇,它只是使用(在您的情况下是模糊的)搜索来匹配光标下的内容与语言库索引中的内容。您所要做的只是略微改变搜索逻辑以检查是否存在您的某个“标签”,然后忽略它。您甚至可以为goto_definition编写一个包装器来为您执行此操作,而不必费心学习大型代码库。 Sublime的API应该有所帮助,因为应该密切关注sublime.pysublime_plugin.py的来源,因为有一些未记录的函数。