2016-07-16 2 views
2

私はVim jediプラグインを見て始めました。かなり印象的です。私が使ったいくつかのJava IDEの1つの機能は、必要なインポートを自動的に追加する機能です。ジェダイがそれをすることはできますか?私のようなjedi-vimでインポート文を挿入することはできますか?

arg1 = sys.argv[1] 

、その後、いくつかのジェダイコマンドを呼び出す行を入力した場合、例えば、SYSがすでにされていない場合、プラグインは、自動的に(ソースファイルの先頭にimport sys行を挿入することが可能です輸入)?

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

答えて

1

現在、Jediはリファクタリングを行いません。これにはインポートの追加が含まれます。件名全体に問題があります:https://github.com/davidhalter/jedi/issues/667

このコマンドを優れたパフォーマンスで実装するのは簡単ではありません。しかし、どんな助けもありがとう。 :)

0

FIYでは、lh-devでオンデマンドで使用できる汎用インポート機能を定義しました。私は私のC & C++スイートから、私のsnippet engine (mu-template)から使用しています。

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

これは完璧ではありませんが、始まりです。 mu-templateは、スニペットが展開された後のファイルの先頭にあるものを処理するフックを提供します。これはlh-dev関数と呼ばれます。他のスニペットエンジンで同様のフックが提供されている場合は、スニペットからlh#dev#import#add()を呼び出すことができます。

ここではPythonのための概念スニペットの証明(I Pythonでめったにプログラム、およびそのための多くのスニペットを持っていない):https://github.com/LucHermitte/mu-template/blob/master/after/template/python/path-exists.template

関連する問題