mirror of
https://github.com/davidhalter/jedi.git
synced 2025-12-24 22:34:22 +08:00
80 lines
2.5 KiB
Markdown
80 lines
2.5 KiB
Markdown
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](http://github.com/davidhalter/jedi).
|
|
|
|
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 `next` method. 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
|
|
|
|
|