我正在使用vim和jedi-vim来编辑一些python代码。但是,我们使用的一些库是C ++共享库,我们使用pybindgen为其生成python绑定。当使用jedi-vim时,我没有获得任何类和方法的签名,只是它们的列表。
例如,在此库中https://github.com/jorisv/SpaceVecAlg如果我安装了库并导入它:
import spacevecalg as sva
然后,sva.
将正确显示所有一阶函数和类。但是,如果我选择第一个,sva.ABInertia(
jedi将不会建议我任何类构造函数。
我想我必须以某种方式将类定义导出到一种python文档,我想我可以使用doxygen注释,但我不知道如何将这些额外的文档提供给jedi(或任何其他完成引擎,例如内置于IPython中的引擎。)
非常感谢!
答案 0 :(得分:2)
您无法向Jedi提供额外的文档。但是,您可以按照Jedi理解的方式设置__doc__
属性。如果您以与标准库相同的方式定义呼叫签名,我想它应该可以工作。
作为旁注,我不得不提到在Python 3.4+中,有一种更好的定义文档字符串的方法。恕我直言,这是定义它的正确方法。我不知道该怎么做(但有办法使用它):
>>> inspect.signature(exit)
<inspect.Signature object at 0x7f2b5a05aa58>
>>> str(inspect.signature(exit))
'(code=None)'
Jedi还没有理解它,但它肯定会在将来发生。