是否可以为绑定到Python的C++库获得绝地自动完成?

2024-10-16 17:24:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用vim和jedi vim来编辑一些python代码。但是,我们使用的一些库是C++共享库,我们使用pybDunGEN生成Python绑定。当使用jedi-vim时,我没有得到任何类和方法的签名,只是它们的一个列表。在

例如,在此库中,https://github.com/jorisv/SpaceVecAlg如果我安装并导入库:

import spacevecalg as sva

然后,sva.将正确显示所有一阶函数和类。但是,如果我选择第一个,那么sva.ABInertia(jedi不会建议我使用任何类构造函数。在

我想我必须以某种方式将类定义导出到一种python文档中,我想我可以使用doxygen注释来实现这一点,但我不知道如何将额外的文档提供给jedi(或任何其他完成引擎,例如IPython内置的引擎)。在

非常感谢!在


Tags: 方法代码文档https引擎githubcom编辑
1条回答
网友
1楼 · 发布于 2024-10-16 17:24:39

你不能给绝地武士提供额外的文件。但是,您可以按照Jedi理解的方式设置__doc__属性。如果你用与标准库相同的方式定义调用签名,我想它应该可以工作。在

作为补充说明,我不得不提到,在python3.4+中,有一种更好的方法来定义docstring。我觉得这是正确的定义方式。我不知道该怎么做(但有一些方法可以使用它):

>>> inspect.signature(exit)
<inspect.Signature object at 0x7f2b5a05aa58>
>>> str(inspect.signature(exit))
'(code=None)'

绝地武士还不明白,但将来肯定会明白的。在

相关问题 更多 >