Files
jedi/README.mdown
2012-06-24 20:25:48 +02:00

2.5 KiB

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 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