Android разработчик
0,3
рейтинг
5 сентября 2013 в 09:35

Разработка → Jedi — библиотека автодополнения для Python

Вот, набрел на просторах гитхаба на интересную библиотеку (GitHub). Дальше следует немного слов от автора.
Jedi — это инструмент, который можно использовать для автодополнения кода Python в IDE/редакторах. Jedi работает. Jedi быстр. Он понимает все основные элементы синтаксиса Python, в том числе встроенные функции.
Кроме того, Jedi поддерживает две разные goto функции и имеет поддержку переименования, а также поддерживает Pydoc и другие фишки IDE.
Jedi использует очень простой API, чтобы соединиться с IDE. Основная реализация — это VIM-плагин, использующий автозавершение Jedi. Я призываю использовать Jedi в ваших IDE. Это очень просто. Если возникнут проблемы (в том числе с лицензированием) — свяжитесь со мной.
Jedi можно использовать с такими редакторами:
  • Vim (jedi-vim, YouCompleteMe)
  • Emacs (Jedi.el)
  • SynWrite (SynJedi)
  • Sublime Text (Sublime JEDI [ST2 + ST3], anaconda [only ST3])

    А также присутствует в проекте wdb

    Несколько изображений:

    image

    Завершение для чего угодно (Ctrl+Space)

    image

    Отображение тела класса / функции, docstrings

    image

    Поддержка Pydoc. С подсветкой (Shift+K)

    Установка

    pip install jedi
    

    Эта команда устанавливает только Jedi, а не плагины. Об установке в ваш редактор читайте в соответствующей документации.
    Да, чуть не забыл — официально поддерживается Python 2.6, 2.7, 3.2 и 3.3, но в принципе, можно пользоваться им и для более ранних версий.
Пользуетесь ли Вы автодополнением?
72%
(265)
Да
12%
(45)
Нет
16%
(57)
Под настроение

Проголосовало 367 человек. Воздержалось 34 человека.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Артём Калачян @Bringoff
карма
39,7
рейтинг 0,3
Android разработчик
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (19)

  • 0
    Давно пользуюсь этой библиотекой/плагином в SublimeText. Работает хорошо. Есть ещё rope (SublimeRope) для рефакторинга, но почему-то вместе как плагины в SublimeText они не работают должным образом — конфликтуют.
  • +1
    Поставил через
    call vam#ActivateAddons([«github:davidhalter/jedi-vim»])

    Это реально няшка! Работает очень шустро, и очень удобно.
    Первый автокомплит в виме, который может остаться жить.

    Эрланговский тормозит…
    • 0
      Эрланговский тормозит…
      edts или distel?
      • 0
        vim-erlang который
  • 0
    Плагин для Sublime! О да!
  • 0
    Что-то не работает у меня. Работают всякие переходы, а вот автодополнение не фурычит.
  • 0
    Для vim/emacs есть rope, который не только автодополнение умеет, но и полноценный рефакторинг. Есть что-то в jedi, что нет в rope?
  • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      Спасибо, добавил.
  • 0
    в emacs jedi находится в marmalade каталоге.
  • 0
    Громадное спасибо! Это то, что я так давно искал для emacs.
  • 0
    Использую с Emacs уже месяца 3, до этого использовал Pymacs + ropemacs. Полёт отличный, не нарадуюсь.

    Единственный момент — пару раз Emacs выпадал в сегфолт в момент раскрытия auto-completion с jedi. Но это сверхредкая ситуация какая-то.
    • 0
      А подскажите, в статье написано «имеет поддержку переименования», для модуля emacs это реализовано? В документации не нашёл почему-то.
      • 0
        Не знаю. Я пользуюсь только auto-complete-mode и «найди определение переменной/функции».
  • 0
    Оно умеет парсить докстринги и вытаскивать информацию о типов из них?

    (по факту необходимо для вменяемых завершений для нативных модулей, типа numpy или PyQt)
    • 0
      Умеет вытаскивать докстринги из pyd-модулей и добавляет информацию об аргументах в список автодополнения.

      Скриншот из SublimeText
  • 0
    хм, пользуюсь ipython и там автодополнение есть.
    • 0
      IPython всё же для интерактивной работы, а Jedi — это библиотека для продвинутого автодополнения, которая используется в основном в редакторах кода. IPython использует форкнутый стандартный rlcompleter.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.