2

Vim jedi プラグインを調べ始めたところですが、かなり印象的です。私が使用したいくつかの Java IDE の機能の 1 つは、必要なインポートを自動的に追加する機能です。ジェダイはそれを行うことができますか?たとえば、次のような行を入力すると

arg1 = sys.argv[1]

次に、いくつかの Jedi コマンドを呼び出します。プラグインがimport sysソース ファイルの先頭に行を自動的に挿入することは可能ですか (sys がまだインポートされていない場合)。

Jedi のヘルプを調べましたが、このようなものは見当たりませんでしたが、何か見落としている可能性があります。あるいは、これを行う別の Vim プラグインはありますか? (それを正しく行うには、ある程度の Python 構文の理解が必要です。そのため、私はそれができるようになるために Jedi に目を向けました)。

4

2 に答える 2

0

FIY、lh-devでオンデマンドで使用できる汎用インポート機能を定義しました。C&C++ スイートとスニペット エンジン (mu-template)から使用しています。

これまでのところ、欠落している import/include ステートメントを追加するために何も解析していません。デイブが言ったように、この部分は複雑です。代わりに、私のスニペットは、どのファイルをインポート/インクルードする必要があるかを認識し、まだインポート/インクルードしていない場合はインポート/インクルードします。

完璧にはほど遠いですが、それは始まりです。mu-template は、スニペットが展開された後、ファイルの先頭で何かを行うためのフックを提供します。これは、lh-dev 関数を呼び出す場所です。他のスニペット エンジンが同様のフックを提供する場合、スニペットから呼び出すことができるはずですlh#dev#import#add()

Python の概念実証スニペットを次に示します (私は Python でプログラミングすることはめったになく、そのためのスニペットはあまりありません): https://github.com/LucHermitte/mu-template/blob/master/after/template/python/ path-exists.template

于 2016-07-18T09:16:24.013 に答える