/autocomplete-python

Jedi based Python autocomplete for Atom

Primary LanguageCoffeeScriptGNU General Public License v2.0GPL-2.0

Python Autocomplete Package Build Status

Python packages, variables, methods and functions with their arguments autocompletion in Atom powered by your choice of Jedi or Kite.

Please note that this package is sponsored by Kite. More info is provided during the install screens of autocomplete-python.

See releases for release notes.

Jedi-driven release notes follow. For more about using the Kite completions engine see kite.com.

The package requires a recent version of jedi:

pip install jedi

Demo

Demo

Features

  • Works with 🍎 Mac OSX, 🐧 Linux and 🏁 Windows.

  • Works with both 🐍 Python 2 and 3.

  • Automatic lookup of virtual environments inside of your projects.

  • Configurable additional packages to include for completions.

  • Prints first N characters of statement value while completing variables.

  • Prints function arguments while completing functions.

  • Go-to-definition functionality, by default on Alt+Cmd+G/Ctrl+Alt+G. Thanks to @patrys for idea and implementation.

  • Method override functionality. Available as override-method command. Thanks to @pchomik for idea and help.

  • If you have Hyperclick installed – you can click on anything to go-to-definition sample

  • Show usages of selected object sample

  • Rename across multiple files. It will not touch files outside of your project, but it will change VCS ignored files. I'm not responsible for any broken projects without VCS because of this. sample

Configuration

  • If using a virtualenv with third-party packages, everything should "just work", but if it's not – use the Python Executable Paths and/or Extra Paths For Packages configuration options to specify the virtualenv's site-packages. Or launch Atom from the activated virtualenv to get completion for your third-party packages

  • Be sure to check package settings and adjust them. Please read them carefully before creating any new issues

    • Set path to python executable if package cannot find it automatically
    • Set extra path if package cannot autocomplete external python libraries
    • Select one of autocomplete function parameters if you want function arguments to be completed

    image

Common problems

  • "Error: spawn UNKNOWN" on Windows
    • Solution: Find your python executable and uncheck the "Run this program as an administrator". See issue #22
  • You have a separated folder for virtualenvs (e.g. by using virtualenvwrapper) and all your virtualenvs are stored in e.g. ~/.virtualenvs/
    • Create symlink to venv from your project root
      • OR
    • Add virtualenv folder as additional project root
      • OR
    • Use a virtualenv with the same name as the folder name of your project and use $PROJECT_NAME variable to set path to python executable. You can use same variable to set extra paths as well. For example:
    /Users/name/.virtualenvs/$PROJECT_NAME/bin/python3.4
    
  • No argument completion after I type left parenthesis character
    • Likely this is because you have non standard keyboard layout. Try to install the keyboard-localization package from: https://atom.io/packages/keyboard-localization and use keymap generator to check what unicode character being generated after you type (. Currently we trigger argument completion only on U+0028, U+0038 and U+0039.