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.2%Да265
    • 12.2%Нет45
    • 15.5%Под настроение57
    Поделиться публикацией
    Комментарии 19
      0
      Давно пользуюсь этой библиотекой/плагином в SublimeText. Работает хорошо. Есть ещё rope (SublimeRope) для рефакторинга, но почему-то вместе как плагины в SublimeText они не работают должным образом — конфликтуют.
        +1
        Поставил через
        call vam#ActivateAddons([«github:davidhalter/jedi-vim»])

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

        Эрланговский тормозит…
          0
          Эрланговский тормозит…
          edts или distel?
        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.

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

                      Самое читаемое