Jedi - a clever Python auto-completion
** This is just a work-in-progress README. The auto-completion is not yet finished (and the README neither :-)) The completion is currently in a pre-alpha state and needs serious testing, as well as some features. If you really want to try it, you can, but I won't be very supportive, just wait 1-2 months more. **
Jedi is an autocompletion tool for Python. It should always work as good as possible. It should provide completion wherever it is possible. In a later stage of the project, it should also provide renaming.
Jedi uses a very simple interface to connect with IDE's. As an example, there is a VIM implementation, which uses Jedi's autocompletion. However, I encourage you to use Jedi in your IDEs. If there is some problem with licensing, just contact me.
Get the latest from github.
Support
There is support for Python 2/3 (3 untested TODO). Jedi supports many of the widely used Python features:
- builtin functions/classes support
- complex module / function / class structures
- ignores syntax and indentation errors
- multiple returns / yields
- tuple assignments / array indexing / dictionary indexing
- exceptions / with-statement /
- *args / **kwargs
- decorators
- generators (yield statement)
Caveats
This framework should work for both Python 2/3. However, some things where not nice in Python 2. To keep things simple, some things have been held back:
- Classes: Always Python 3, therefore all classes inherit from
object. - Generators: No
nextmethod. The__next__method is there instead. - Exceptions are only looked at in the form of
Exception as e, no comma!
Syntax Errors and other strange stuff, that is defined differently in the Python language, may lead to undefined behaviour of the completion. Jedi is NOT a Python compiler, that tries to correct you. It is a tool that wants to help you. But YOU have to know Python, not Jedi.
Importing numpy can be quite slow sometimes, as well as loading the builtins
the first time. If you want to speed it up, you could write import hooks in
jedi, which preloads this stuff. However, once loaded, this is not a problem
anymore.
From time to time Jedi might feel terribly slow. This behaviour is known, when the process was swapped to disk.
A little history
Jedi...
Contents
.
text block
API Design
blabla SRC Box TODO