1

私は jedi-vim で vim を使用して、いくつかの Python コードを編集しています。ただし、使用する一部のライブラリは、pybindgen を使用して Python バインディングを生成した C++ 共有ライブラリです。jedi-vim を使用すると、どのクラスやメソッドの署名も得られず、それらのリストだけが表示されます。

たとえば、このライブラリでは、ライブラリをインストールしてインポートすると 、 https://github.com/jorisv/SpaceVecAlgになります。

import spacevecalg as sva

次に、sva.すべての一次関数とクラスを正しく表示します。ただし、最初のものを選択すると、sva.ABInertia(jedi はクラス コンストラクターを提案しません。

どうにかしてクラス定義を一種の python ドキュメントにエクスポートする必要があると思います。そのために doxygen アノテーションを使用できると考えましたが、その追加のドキュメントを jedi (または他の補完エンジンなど) にフィードする方法がわかりません。 IPythonで構築されたものとして)。

どうもありがとう !

4

1 に答える 1

2

追加のドキュメントを Jedi にフィードすることはできません。ただし、__doc__Jedi が理解できる方法で属性を設定することはできます。標準ライブラリと同じように呼び出し署名を定義すれば、うまくいくはずです。

補足として、Python 3.4+ では、docstring を定義するさらに優れた方法があることに言及する必要があります。私見は、それを定義する適切な方法です。正確な方法はわかりません(ただし、使用する方法はあります):

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

ジェダイはまだそれを理解していませんが、将来的には間違いなくそうなるでしょう.

于 2014-09-26T09:25:12.680 に答える