Jedi は Python 用の静的分析ツールで、通常は IDE/エディター プラグインで使用されます。 Jedi はオートコンプリートと goto 機能に重点を置いています。その他の機能には、リファクタリング、コード検索、参照の検索などがあります。
Jedi には、操作するためのシンプルな API があります。 VIM プラグインとしてリファレンス実装があります。 REPL でのオートコンプリートも可能です。IPython はそれをネイティブに使用し、CPython REPL の場合はインストールできます。 Jedi は十分にテストされており、バグはほとんどないはずです。
Jedi は現在、次のエディタ/プロジェクトで使用できます。
などなど!
Jedi を使用する言語サーバーがいくつかあります。
以下は jedi-vim から撮影したいくつかの写真です。
ほぼ何でも完了:
ドキュメント:
github から最新バージョンを入手します (master ブランチは常に安定/動作している必要があります)。
ドキュメントは https://jedi.readthedocs.org/en/latest/ で入手できます。機能拡張や修正を伴うプル リクエストは素晴らしいものであり、大歓迎です。 Jedi はセマンティック バージョニングを使用します。
最新のリリースを入手したい場合は、このメーリング リストに登録してください: https://groups.google.com/g/jedi-announce。購読するには、 [email protected]
に空のメールを送信するだけです。
問題や質問は、問題トラッカー <https://github.com/davidhalter/jedi/> に登録できます。あるいは、ラベルpython-jedi
を使用して Stack Overflow で質問することもできます。
ドキュメントを確認してください。
Jedi の機能はここにリストされています: 機能。
Jedi は Python 3.6 以降で実行できますが、それらのバージョンよりも古いコードも理解できる必要があります。さらに、Virtualenvs をうまく使用できるはずです。
Jedi を効率的に使用する方法に関するヒントは、ここで見つけることができます。
API の包括的なドキュメントはここで見つけることができます。
次のコマンドがあります。
jedi.Script.goto
jedi.Script.infer
jedi.Script.help
jedi.Script.complete
jedi.Script.get_references
jedi.Script.get_signatures
jedi.Script.get_context
返されるオブジェクトは非常に強力で、実際に必要なものはすべて揃っています。
Jedi は IPython の依存関係です。したがって、追加の構成を行わなくても、Jedi を使用した IPython でのオートコンプリートが可能です。
REPL の完了がどのように見えるかの例のビデオを次に示します。 python
シェルの場合、REPL でタブ補完を有効にすることができます。
多くの形式の静的分析では、 jedi.Script(...).get_names
使用を試みることができます。フィルタリングして操作できる名前のリストが返されます。ファイル内の構文エラーをリストする方法もあります: jedi.Script.get_syntax_errors
。
Jedi は次のリファクタリングをサポートしています。
jedi.Script.inline
jedi.Script.rename
jedi.Script.extract_function
jedi.Script.extract_variable
jedi.Script.search
によるモジュール検索、およびjedi.Project.search
によるプロジェクト検索がサポートされています。検索方法は、 foo
のような名前を指定するか、 foo.bar
のようなドット構文を使用することです。さらに、 class foo.bar.Bar
のような API タイプを提供できます。関数jedi.Script.complete_search
およびjedi.Project.complete_search
もあります。
かなり充実した広範な開発ドキュメントがあります。
テスト スイートはpytest
を使用します。
pip インストール pytest
特定の Python バージョン (Python 3.8 など) のみをテストしたい場合は、次のように簡単です。
python3.8 -m pytest
詳細については、テストのドキュメントを参照してください。
貢献者の皆様、本当にありがとうございました!