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

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

    Метки:
    Поделиться публикацией
    Похожие публикации
    Реклама помогает поддерживать и развивать наши сервисы

    Подробнее
    Реклама
    Комментарии 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
            в 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.

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