2

我刚刚开始研究 Vim jedi 插件,它看起来非常令人印象深刻。我使用的一些 Java IDE 的一个特性是能够自动添加所需的导入。绝地能做到吗?例如,如果我输入一行,例如

arg1 = sys.argv[1]

然后调用一些绝地命令,插件是否可以import sys在源文件的顶部自动插入一行(如果尚未导入 sys)?

我查看了绝地帮助,但看不到任何类似的东西 - 但我可能错过了一些东西。或者,是否有另一个 Vim 插件可以做到这一点?(它需要对 Python 语法有一定程度的理解才能使其正确,这就是为什么我希望 Jedi 能够做到这一点)。

4

2 回答 2

1

目前 Jedi 不进行重构。这包括进口添加。整个主题都有一个问题:https ://github.com/davidhalter/jedi/issues/667 。

以良好的性能实现此命令并不容易。然而,任何帮助表示赞赏。:)

于 2016-07-17T08:39:41.017 回答
0

FIY,我已经定义了一个通用的导入功能,可以在lh-dev中按需使用。我从我的 C&C++ 套件和我的代码片段引擎 (mu-template)中使用它。

到目前为止,我没有解析任何内容来添加缺少的导入/包含语句。正如戴夫所说,这部分会很复杂。相反,我的片段知道哪些文件需要导入/包含,如果尚未导入/包含,则导入/包含它们。

它远非完美,但它是一个开始。mu-template 在片段展开后提供了一个挂钩来在文件的开头做一些事情,这就是我调用 lh-dev 函数的地方。如果其他片段引擎提供类似的钩子,您应该能够lh#dev#import#add()从您的片段中调用。

这里是 Python 的概念证明片段(我很少用 Python 编程,也没有很多片段):https ://github.com/LucHermitte/mu-template/blob/master/after/template/python/路径存在.模板

于 2016-07-18T09:16:24.013 回答