awesome Python autocompletion with SublimeText

Overview

SublimeJEDI

Build Status Gitter

SublimeJEDI is a Sublime Text 3 and Sublime Text 2 and plugin to the awesome autocomplete library Jedi

Python Version Support

Sublime Jedi Plugin Branch Jedi version Python 2.6.x Python 2.7.x Python >3.3 Python 3.3 Sublime Text 2 Sublime Text 3
>= 0.14.0 master >=0.13.2
>= 0.12.0 master >=0.12.0
< 0.12.0 st2 0.11.1

Please note Jedi does not support Python 3.3 any more.

Installation

with Git

cd ~/.config/sublime-text-2/Packages/
git clone https://github.com/srusskih/SublimeJEDI.git "Jedi - Python autocompletion"

with Sublime Package Control

  1. Open command pallet (default: ctrl+shift+p)
  2. Type package control install and select command Package Control: Install Package
  3. Type Jedi and select Jedi - Python autocompletion

Additional info about to use Sublime Package Control you can find here: http://wbond.net/sublime_packages/package_control/usage.

Settings

Python interpreter settings

By default SublimeJEDI will use default Python interpreter from the PATH. Also you can set different interpreter for each Sublime Project.

To set project related Python interpreter you have to edit yours project's settings file. By default file name look like <project name>.sublime-project

You can set Python interpreter, and additional python package directories, using for example the following:

# <project name>.sublime-project
{
    // ...

    "settings": {
        // ...
        "python_virtualenv": "$project_path/../../virtual/",
        "python_interpreter": "$project_path/../../virtual/bin/python",

        "python_package_paths": [
            "$home/.buildout/eggs",
            "$project_path/addons"
        ]
    }
}

NOTE: You can configure python_interpreter and python_virtualen at the same time, no problem with that. If you configure python_interpreter alone, the python_virtualen will be inferred so it will be 2 directories above python_interpreter. If you configure python_virtualen alone, the python_interpreter will be always where ever python_virtualen plus 'bin/python'. If you don't configure any of this then the default Python environment of your system will be used.

NOTE: Please note that Python will goes through the directories from "python_package_paths" to search for modules and files. In other words, each item in "python_package_paths" list is a directory with extra packages and modules, not a direct path to package or module.

When setting paths, Sublime Text Build System Variables and OS environment variables are automatically expanded. Note that using placeholders and substitutions, like in regular Sublime Text Build System paths is not supported.

SublimeREPL integration

By default completion for SublimeREPL turned off. If you want use autocompletion feature of SublimeJEDI in a repl, please set enable_in_sublime_repl: true in User/sublime_jedi.sublime-setting or in your project setting.

Autocomplete on DOT

If you want auto-completion on dot, you can define a trigger in the Sublime User or Python preferences:

# User/Preferences.sublime-settings or User/Python.sublime-settings
{
    // ...
    "auto_complete_triggers": [{"selector": "source.python", "characters": "."}],
}

If you want auto-completion ONLY on dot and not while typing, you can set (additionally to the trigger above):

# User/Preferences.sublime-settings or User/Python.sublime-settings
{
    // ...
    "auto_complete_selector": "-",
}

Autocomplete after only certain characters

If you want Jedi auto-completion only after certain characters, you can use the only_complete_after_regex setting.

For example, if you want Jedi auto-completion only after the . character but don't want to affect auto-completion from other packages, insert the following into User/sublime_jedi.sublime-settings:

{
  "only_complete_after_regex": "\\.",
}

Using this setting in this way means you can remove "auto_complete_selector": "-", from User/Python.sublime-settings, so that the rest of your packages still trigger auto-completion after every keystroke.

Goto / Go Definition

Find function / variable / class definition

Shortcuts: CTRL+SHIFT+G

Mouse binding, was disabled, becase it's hard to keep ST default behavior. Now you can bind CTRL + LeftMouseButton by themself in this way:

# User/Default.sublime-mousemap
[{
    "modifiers": ["ctrl"], "button": "button1",
    "command": "sublime_jedi_goto",
    "press_command": "drag_select"
}]

NOTE: You can configure the behavior of this command by changing the setting follow_imports. If this setting is True (default behavior) you will travel directly to where the term was defined or declared. If you want to travel back step by step the import path of the term then set this to False.

Find Related Names ("Find Usages")

Find function / method / variable / class usage, definition.

Shortcut: ALT+SHIFT+F.

There are two settings related to finding usages:

  • highlight_usages_on_select: highlights usages of symbol in file when symbol is selected (default false)
  • highlight_usages_color: color for highlighted symbols (default "region.bluish")
    • other available options are "region.redish", "region.orangish", "region.yellowish", "region.greenish", "region.bluish", "region.purplish", "region.pinkish", "region.blackish"
    • these colors are actually scopes that were added to Sublime Text around build 3148; these scopes aren't documented, but the BracketHighlighter plugin has an excellent explanation here

Show Python Docstring

Show docstring as tooltip.

For ST2: Show docstring in output panel.

Shortcut: CTRL+ALT+D.

Styling Python Docstring

If available mdpopups is used to display the docstring tooltips. To modify the style please follow mdpopups' styling guide.

Basically a Packages/User/mdpopups.css is required to define your own style.

To specify rules which apply to Jedi tooltips only, use .jedi selector as displayed in the following example.

/* JEDI's python function signature */
.jedi .highlight {
    font-size: 1.1rem;
}

/* JEDI's docstring titles
  
  h6 is used to highlight special keywords in the docstring such as

  Args:
  Return:
*/
.jedi h6 {
    font-weight: bold;
}

mdpopups provides a default.css which might be used as cheat sheet to learn about the available styles.

Jedi Show Calltip

Show calltip in status bar.

Exposed command is sublime_jedi_signature.

Function args fill up on completion

SublimeJEDI allow fill up function parameters by default. Thanks to @krya, now you can turn it off.

Function parameters completion has 3 different behaviors:

  • insert all function arguments on autocomplete

    # complete result
    func(a, b, c, d=True, e=1, f=None)
    
    # sublime_jedi.sublime-settings
    {
        "auto_complete_function_params": "all"
    }
    
  • insert only required arguments that don't have default value (default behavior)

    # complete result
    func(a, b, c)
    
    # sublime_jedi.sublime-settings
    {
        "auto_complete_function_params": "required"
    }
    
  • do not insert any arguments

    # complete result
    func()
    
    # sublime_jedi.sublime-settings
    {
        "auto_complete_function_params": ""
    }
    

More info about auto_complete_function_params

Completion visibility

Sublime Text has a bit strange completion behavior and some times does not adds it's own completion suggestions. Enabling this option to try to bring more comfortable workflow.

  • Suggest only Jedi completion

     # sublime_jedi.sublime-settings
     {
         "sublime_completions_visibility": "jedi"
     }
    

    or

     # sublime_jedi.sublime-settings
     {
         "sublime_completions_visibility": "default"
     }
    
  • Suggest Jedi completion and Sublime completion in the end of the list

     # sublime_jedi.sublime-settings
     {
         "sublime_completions_visibility": "list"
     }
    

Please note, if you are using SublimeAllAutocomplete - you should not care about this option.

Logging

Plugin uses Python logging lib to log everything. It allow collect propper information in right order rather then print()-ing to sublime console. To make logging more usefull I'd suggest ST Plugin Logging Control, it allows stream logs into file/console/etc. On github page you can find great documenation how you can use it.

Here is quickstart config that I'm using for DEBUG purposes:

{
    "logging_enable_on_startup": false,
    "logging_use_basicConfig": false,
    "logging_root_level": "DEBUG",
    "logging_console_enabled": true,
    "logging_console_level": "INFO",     // Only print warning log messages in the console.
    "logging_file_enabled": true,
    "logging_file_level": "DEBUG",
    "logging_file_datefmt": null,
    "logging_file_fmt": "%(asctime)s %(levelname)-6s - %(name)s:%(lineno)s - %(funcName)s() - %(message)s",
    "logging_file_path": "/tmp/sublime_output.log",
    "logging_file_rotating": false,
    "logging_file_clear_on_reset": false
}

By default, detailed (debug) loggin turned off and you would not see any messages in ST console, only exceptions.

If you need get more information about the issue with the plugin:

  1. Install Logging Control
  2. Use quickstart config that was provided above.
  3. Enable logging. Ivoke "Command Pannel" (CMD+SHIFT+P for mac) and start typing “Logging”. Select the "Logging: Enable logging" command to enable logging.
  4. Reproduce the issue.
  5. Check the log file!

Troubleshooting

Auto-complete for import XXXX does not works.

It's a common issue for ST3. All language related settings are stored in Python Package. There is a Completion Rules.tmPreferences file where defined that completion should be cancelled after a keyword (def, class, import & etc.).

To solve this issue Sublime Jedi plugin already has a proper Completion Rules.tmPreferences file for ST2, but ST3 ignores it.

Some workarounds how to update completion rules and fix the issue:

Copy-Paste
  1. Delete your Sublime Text Cache file Cache/Python/Completion Rules.tmPreferences.cache
  2. Download Completion Rules.tmPreferences.cache to User/Packages/Python/
There is package for this...
  1. install Package https://packagecontrol.io/packages/PackageResourceViewer
  2. cmd+shift+p (Command Panel)
  3. type PackageResourceViewer: Open Resource
  4. type python and select Python package
  5. type Completion Rules.tmPreferences
  6. remove import from the regexp.
  7. save

License

MIT

Comments
  • Jedi freezes ST and causes very high RAM usage.

    Jedi freezes ST and causes very high RAM usage.

    Description

    1. An python file of a Sublime Text package is open.
    2. Enter from collections import S into the first line.

    ST suddenly freezes. After a while the console shows some output error. The CPU usage of the plugin_host.exe increases to 100% for one core. The RAM usage increases up to 1.2GB.

    I was faced to that issue several times. Sometimes RAM usage even increases and stays at 2.5GB!

    Console Output

    Traceback (most recent call last):
      File "C:\Apps\Sublime Text 3\sublime_plugin.py", line 685, in on_query_completions
        res = vel.on_query_completions(prefix, locations)
      File "C:\Apps\Sublime Text 3\Data\Packages\Jedi - Python autocompletion\sublime_jedi\completion.py", line 154, in on_query_completions
        location=locations[0]
      File "C:\Apps\Sublime Text 3\Data\Packages\Jedi - Python autocompletion\sublime_jedi\daemon.py", line 83, in ask_daemon_with_timeout
        return request.result(timeout=timeout)
      File "./python3.3/concurrent/futures/_base.py", line 403, in result
    concurrent.futures._base.TimeoutError
    

    TaskManager

    screenshot

    Infos

    • Win10 Pro 1803 x64
    • ST 3176 x64
    • Jedi v0.13.4
    • Running python 3.7
    • jedi-0.12.1
    • parso-0.3.1
    'PYTHONPATH': ';C:\\Apps\\Sublime Text 3\\Data\\Lib\\python3.3;C:\\Apps\\Sublime Text 3\\Data\\Packages\\wcwidth\\all;C:\\Apps\\Sublime Text 3\\Data\\Packages\\sublime_lib\\st3;C:\\Apps\\Sublime Text 3\\Data\\Packages\\tabulate\\all;C:\\Apps\\Sublime Text 3\\Data\\Packages\\PYTHON~1\\st3;C:\\Apps\\Sublime Text 3\\Data\\Packages\\pyyaml\\st3;C:\\Apps\\Sublime Text 3\\Data\\Packages\\dateutil\\all;C:\\Apps\\Sublime Text 3;C:\\Apps\\Sublime Text 3\\Data\\Packages\\pygments\\all;C:\\Apps\\Sublime Text 3\\Data\\Packages\\jsonschema\\all;C:\\Apps\\Sublime Text 3\\python3.3.zip;C:\\Apps\\Sublime Text 3\\Data\\Packages\\pyte\\all;C:\\Apps\\Sublime Text 3\\Data\\Packages\\python-jinja2\\all;C:\\Apps\\Sublime Text 3\\Data\\Packages\\MARKUP~1\\all;C:\\Apps\\Sublime Text 3\\Data\\Packages\\backrefs\\st3;C:\\Apps\\Sublime Text 3\\Data\\Packages\\mdpopups\\st3;C:\\Apps\\Sublime Text 3\\Data\\Packages\\lxml\\st3_windows_x64;C:\\Apps\\Sublime Text 3\\Data\\Packages\\Jedi - Python autocompletion\\dependencies;C:\\Apps\\Sublime Text 3\\Data\\Packages;C:\\Apps\\Sublime Text 3\\Data\\Packages\\pymdownx\\st3;C:\\Apps\\Sublime Text 3\\Data\\Packages\\ruamel-yaml\\st3;C:\\Apps\\Sublime Text 3\\Data\\Packages\\coverage\\st3_windows_x64;C:\\Apps\\Sublime Text 3\\Data\\Packages\\pathtools\\all;C:\\Apps\\Sublime Text 3\\Data\\Packages\\pywinpty\\st3_windows_x64;C:\\Apps\\Sublime Text 3\\Data\\Packages\\regex\\st3_windows_x64;C:\\Apps\\Sublime Text 3\\Data\\Packages\\yaml_macros_engine\\st3;C:\\Apps\\Sublime Text 3\\Data\\Packages\\watchdog\\all',
    
    opened by deathaxe 27
  • Update jedi to v0.13.1

    Update jedi to v0.13.1

    Change to update Jedi package to v0.13.1.

    Note: this does cause an issue, where Jedi has now dropped support for Python 3.3 - so had to patch access.py here and here.

    • Can only assume that SublimeText 3 comes packaged with an earlier point release of Python 3?
    • Technically this does also mean the Makefile won't work as is without patching of the jedi package.

    Otherwise, all good.

    opened by magnetikonline 20
  • Python auto completion doesn't work with $project_path config

    Python auto completion doesn't work with $project_path config

    I've set this config in my jedi-user config:

    {
        "python_interpreter": "$project_path/venv/bin/python"
    }
    

    But it can't find installed packages on project venv, so auto completion doesn't work. Note: each project has its own venv directory. for example:

    Workspace/project1/venv
    Workspace/projectN/venv
    

    Thanks in advanced.

    opened by mortymacs 17
  • Sublime text 3

    Sublime text 3

    This PR contains updates to have SublimeJEDI working on Sublime 3. Don't merge with master please as it will break Sublime Text 2 at this moment, I'm working on making it backward compatible.

    There are lots of changes in jedi since I updated the library, probably it could be better find a way to link to their code without keeping it under versioning (maybe as a submodule).

    I also changed sublime_jedy.py to cope with the subtle v3 api changes and python 3.3 and I had to add some fix in imports.py in jedi which I'm going to discuss with jedi's maintainers; most notably I had to migrate it from the imp module to the importlib one since imp was showing different behaviors in python 2.6 and in python 3.3, giving different information for the "posix" module (and I suspect for similar cases in other OSs).

    Can you please create a branch for this so that other people could contribute?

    Thank you!

    opened by Astrac 16
  • Nothing happen and no error reported

    Nothing happen and no error reported

    Hello,

    I installed SublimeJedi through Package Control but it seems like the plugin is doing nothing.

    No matter what I try to set in the settings, the plugin simply stay silent, don't work and don't report errors either...

    Is there something I can do to at least get some logs or error and trying to understand what is going wrong?

    I'm a windows 7 and I trying to autocomplete with python2.6

    opened by daniele-niero 14
  • autocompletion on subpackages not working

    autocompletion on subpackages not working

    Hi, I cannot get autocompletion to work on some custom python packages. I have added my custom package path in user sublime settings as:

    "python_package_paths": [
         // path for package
        "/home/ilias/modules/lib/python2.7/site-packages/moduleA",
        ],
    

    Autocompletion works fine for the functions declared in the __init__.py file of moduleA by writing:

    import ModuleA as MA
    MA.read_files()
    

    In the same directory however, I also have some other .py subpackages (e.g. mergefunct.py) which include additional functions. In my main code, I can normally import and call these as:

    import ModuleA.mergefunct as mergefunct
    mergefunct.perform_merging()
    

    Autocomplete locates the package mergefunct under ModuleA, but as soon as I press 'dot' to use the functions inside it, it doesn't detect the functions at all. Furthermore, after this autocompletion no longer works even for normal python functions as math or numpy etc. and I need to restart sublime to get it working again.

    opened by iliasptr 12
  • v0.10.0 installs additional packages into ST3/Packages directory

    v0.10.0 installs additional packages into ST3/Packages directory

    After the (automatic) update to SublimeJedi 0.10.0 there are the following additional packages installed into Sublime Text 3\Packages:

    • markupsafe
    • mdpopups
    • pygments
    • python-jinja2
    • python-markdown

    Is this necessary? Before, sublimeJedi (or Jedi itself) seemed to work fine without them.

    opened by pe224 11
  • Allow delaying param completion to when parenthesis is opened

    Allow delaying param completion to when parenthesis is opened

    Currently auto-completion kicks in as soon as you select a method name. It's somewhat inconvenient if you pass functions as parameters and will be even more inconvenient if classes start auto-completing their __init__ params.

    opened by patrys 11
  • [WIP] Async TCP daemon

    [WIP] Async TCP daemon

    TODO

    • [x] make it runnable within Sublime (currently it runs only if daemon started outside of ST)
    • [ ] daemon/client per project
    • [ ] stream might not be connected
    • [ ] reconnect on socket close
    • [ ] connect default logging with typhoon logging
    • [ ] fix run_in_active_view
    • [ ] remove debug stdout server logging (or add debug flag)
    • [ ] find sane solution to clean up on ST2 (on ST3 atexit didn't work, but we can try it on ST2)

    Status

    Ready to try on ST3

    Should work out of the box on ST3. Jedi server is started with python command, so it has to be available.

    opened by schlamar 10
  • Fixed imports on ST3.

    Fixed imports on ST3.

    I tried the latest daemon changes on ST3, but I got: ImportError: No module named 'jedi'. The reason is that jedi_daemon is imported before sublime_jedi (which patches sys.path to make imports work).

    opened by schlamar 10
  • AttributeErrors since 0.13 update

    AttributeErrors since 0.13 update

    Hey there, I recently updated to the new version and got the following error everytime I type anything:

    Traceback (most recent call last):
      File "/opt/sublime_text/sublime_plugin.py", line 685, in on_query_completions
        res = vel.on_query_completions(prefix, locations)
      File "/home/richman/.config/sublime-text-3/Packages/Jedi - Python autocompletion/sublime_jedi/completion.py", line 158, in on_query_completions
        cplns = [tuple(x) for x in self._sort_completions(cplns)]
      File "/home/richman/.config/sublime-text-3/Packages/Jedi - Python autocompletion/sublime_jedi/completion.py", line 174, in _sort_completions
        key=lambda x: (
    TypeError: 'NoneType' object is not iterable
    Jedi - Python autocompletion.sublime_jedi.facade: `JediFacade.get_autocomplete` failed
    Traceback (most recent call last):
      File "/home/richman/.config/sublime-text-3/Packages/Jedi - Python autocompletion/sublime_jedi/facade.py", line 110, in get
        return getattr(self, 'get_' + _action)(*args, **kwargs)
      File "/home/richman/.config/sublime-text-3/Packages/Jedi - Python autocompletion/sublime_jedi/facade.py", line 139, in get_autocomplete
        filter(lambda c: not c[0].endswith('\tparam'), completion))
      File "/home/richman/.config/sublime-text-3/Packages/Jedi - Python autocompletion/sublime_jedi/facade.py", line 168, in _completion
        completions = self.script.completions()
      File "/home/richman/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/api/__init__.py", line 174, in completions
        completions = completion.completions()
      File "/home/richman/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/api/completion.py", line 98, in completions
        completion_names = self._get_context_completions()
      File "/home/richman/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/api/completion.py", line 173, in _get_context_completions
        completion_names = list(self._get_keyword_completion_names(allowed_transitions))
      File "/home/richman/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/api/completion.py", line 212, in _get_keyword_completion_names
        yield keywords.KeywordName(self._evaluator, k)
      File "/home/richman/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/api/keywords.py", line 28, in __init__
        self.parent_context = evaluator.builtins_module
      File "/home/richman/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/evaluate/cache.py", line 40, in wrapper
        rv = function(obj, *args, **kwargs)
      File "/home/richman/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/evaluate/__init__.py", line 115, in builtins_module
        return compiled.get_special_object(self, u'BUILTINS')
      File "/home/richman/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/evaluate/compiled/__init__.py", line 27, in get_special_object
        evaluator.compiled_subprocess.get_special_object(identifier)
      File "/home/richman/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/evaluate/compiled/context.py", line 460, in create_from_access_path
        for name, access in access_path.accesses:
    AttributeError: 'tuple' object has no attribute 'accesses'
    

    Any hits how to avoid that?

    bug 
    opened by RicherMans 9
  • Is the project still alive?

    Is the project still alive?

    I see that the last submission was almost a year ago. In the meantime, Sublime Text 4 has been released... I'm having trouble to use this plugin with Sublime version 4, hence the question in the title.

    opened by daniele-niero 3
  • Inconsistent completed parentheses depending on auto_match_enabled

    Inconsistent completed parentheses depending on auto_match_enabled

    (1) Usually the completion fills just the object name, but for functions the behavior is somewhat "stochastic": sometimes the completion include the ( and the positional parameter names, but not the ); sometimes the completion is just of the function name. That can be slightly addressed with a new configuration (besides auto_complete_function_params) to choose whether to add parameters+parentheses when the function name gets completed or to just complete the name (hence to add the parameters+parentheses a new completion would need to be "requested" after the name completion).

    (2) The inconsistency is that the missing ) appears when auto_match_enabled is set as true, but not when set as false (here it's false, and that's how it should be kept, because it applies to several scenarios, not just the Jedi completion). That's a dependency on an external configuration. If the completion opened the parentheses, it should close it as well, no matter the auto_match_enabled value (like in emmet). The goal of setting auto_match_enabled as false is to require all typed parentheses to be manually paired, so that for every ( typed, a ) should be typed as well. Partial completion frustrate this "mental stack" of parentheses on typing, so I would presume that probably no one with auto_match_enabled set as false desires partial completion of not-typed parentheses (unmatched parenthesis completion).

    I see no use in unmatched parenthesis completion (the default when auto_match_enabled is false) since it's simply annoying (the completion is either incomplete or [partially] undesired, the user will obviously need to type or erase something, that's like a snippet that generates invalid code due to the lack of the ending symbol), but that could be another configuration.

    opened by danilobellini 0
  • Lookup Error, Could not get version information for 'python'

    Lookup Error, Could not get version information for 'python'

    Hi All,

    I am still a beginner, so bear with me. My immediate problem is that am having trouble getting Jedi to autocomplete for python 2.7.16, but the ultimate goal is to set up Sublime Text to develop IronPython code that will ultimately be run in Rhino.

    I have just done a clean install of Sublime Text 4 and Jedi v0.18.0, as well as a clean install of Python 2.7.16. Here is a complete print-out from the console that I receive when I try to test Jedi autocomplete:

    DPI mode: per-monitor v2
    startup, version: 4107 windows x64 channel: stable
    executable: /C/Program Files/Sublime Text/sublime_text.exe
    application: /C/Program Files/Sublime Text
    working dir: /C/Program Files/Sublime Text
    packages path: /C/Users/Alexanderj/AppData/Roaming/Sublime Text/Packages
    state path: /C/Users/Alexanderj/AppData/Roaming/Sublime Text/Local
    zip path: /C/Program Files/Sublime Text/Packages
    zip path: /C/Users/Alexanderj/AppData/Roaming/Sublime Text/Installed Packages
    ignored_packages: ["Vintage"]
    scan: /C/Users/Alexanderj/AppData/Roaming/Sublime Text/Packages/Jedi - Python autocompletion/dependencies/jedi/third_party/django-stubs/django-stubs/contrib/sessions/management has been seen before, skipping (using content fingerprint) previous path: /C/Users/Alexanderj/AppData/Roaming/Sublime Text/Packages/Jedi - Python autocompletion/dependencies/jedi/third_party/django-stubs/django-stubs/contrib/sitemaps/management fingerprint: 2844445528725461925
    pre session restore time: 0.187352
    startup time: 0.258352
    first paint time: 0.260352
    reloading python 3.3 plugin 0_package_control_loader.00-package_control
    reloading python 3.3 plugin 0_package_control_loader.01-pygments
    reloading python 3.3 plugin 0_package_control_loader.50-markupsafe
    reloading python 3.3 plugin 0_package_control_loader.50-python-markdown
    reloading python 3.3 plugin 0_package_control_loader.51-python-jinja2
    reloading python 3.3 plugin 0_package_control_loader.55-mdpopups
    reloading python 3.3 plugin Package Control.1_reloader
    reloading python 3.3 plugin Package Control.2_bootstrap
    reloading plugin Default.arithmetic
    reloading plugin Default.auto_indent_tag
    reloading plugin Default.block
    reloading plugin Default.colors
    reloading plugin Default.comment
    reloading plugin Default.convert_color_scheme
    reloading plugin Default.convert_syntax
    reloading plugin Default.copy_path
    reloading plugin Default.echo
    reloading plugin Default.exec
    reloading plugin Default.fold
    reloading plugin Default.font
    reloading plugin Default.goto_line
    reloading plugin Default.history_list
    reloading plugin Default.html_print
    reloading plugin Default.indentation
    reloading plugin Default.install_package_control
    reloading plugin Default.keymap
    reloading plugin Default.kill_ring
    reloading plugin Default.mark
    reloading plugin Default.new_templates
    reloading plugin Default.open_context_url
    reloading plugin Default.open_in_browser
    reloading plugin Default.pane
    reloading plugin Default.paragraph
    reloading plugin Default.paste_from_history
    reloading plugin Default.profile
    reloading plugin Default.quick_panel
    reloading plugin Default.rename
    reloading plugin Default.run_syntax_tests
    reloading plugin Default.save_on_focus_lost
    reloading plugin Default.scroll
    reloading plugin Default.set_unsaved_view_name
    reloading plugin Default.settings
    reloading plugin Default.show_scope_name
    reloading plugin Default.side_bar
    reloading plugin Default.sort
    reloading plugin Default.switch_file
    reloading plugin Default.symbol
    reloading plugin Default.transform
    reloading plugin Default.transpose
    reloading plugin Default.ui
    reloading plugin CSS.css_completions
    reloading plugin Diff.diff
    reloading plugin HTML.encode_html_entities
    reloading plugin HTML.html_completions
    reloading plugin ShellScript.ShellScript
    reloading python 3.3 plugin Package Control.Package Control
    reloading python 3.3 plugin Jedi - Python autocompletion.__init__
    plugins loaded
    reloading settings Packages/User/Package Control.sublime-settings
    Package Control: No updated packages
    Traceback (most recent call last):
      File "C:\Users\Alexanderj\AppData\Roaming\Sublime Text\Packages\Jedi - Python autocompletion\dependencies\jedi\api\environment.py", line 75, in _get_subprocess
        info = self._subprocess._send(None, _get_info)
      File "C:\Users\Alexanderj\AppData\Roaming\Sublime Text\Packages\Jedi - Python autocompletion\dependencies\jedi\inference\compiled\subprocess\__init__.py", line 311, in _send
        is_exception, traceback, result = pickle_load(self._get_process().stdout)
      File "C:\Users\Alexanderj\AppData\Roaming\Sublime Text\Packages\Jedi - Python autocompletion\dependencies\jedi\_compatibility.py", line 396, in pickle_load
        return pickle.load(file, encoding='bytes')
    LookupError: unknown encoding: bytes
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "C:\Users\Alexanderj\AppData\Roaming\Sublime Text\Packages\Jedi - Python autocompletion\sublime_jedi\daemon.py", line 69, in _async_summon
        answer = ask_daemon_sync(view, ask_type, ask_kwargs, location)
      File "C:\Users\Alexanderj\AppData\Roaming\Sublime Text\Packages\Jedi - Python autocompletion\sublime_jedi\daemon.py", line 53, in ask_daemon_sync
        *_prepare_request_data(view, location)
      File "C:\Users\Alexanderj\AppData\Roaming\Sublime Text\Packages\Jedi - Python autocompletion\sublime_jedi\daemon.py", line 146, in request
        filename=filename,
      File "C:\Users\Alexanderj\AppData\Roaming\Sublime Text\Packages\Jedi - Python autocompletion\sublime_jedi\facade.py", line 42, in __init__
        project=project,
      File "C:\Users\Alexanderj\AppData\Roaming\Sublime Text\Packages\Jedi - Python autocompletion\dependencies\jedi\api\__init__.py", line 185, in __init__
        project, environment=environment, script_path=self.path
      File "C:\Users\Alexanderj\AppData\Roaming\Sublime Text\Packages\Jedi - Python autocompletion\dependencies\jedi\inference\__init__.py", line 90, in __init__
        self.compiled_subprocess = environment.get_inference_state_subprocess(self)
      File "C:\Users\Alexanderj\AppData\Roaming\Sublime Text\Packages\Jedi - Python autocompletion\dependencies\jedi\api\environment.py", line 114, in get_inference_state_subprocess
        return InferenceStateSubprocess(inference_state, self._get_subprocess())
      File "C:\Users\Alexanderj\AppData\Roaming\Sublime Text\Packages\Jedi - Python autocompletion\dependencies\jedi\api\environment.py", line 80, in _get_subprocess
        exc))
    jedi.api.environment.InvalidPythonEnvironment: Could not get version information for 'python': LookupError('unknown encoding: bytes',)
    

    Here is a screenshot of Sublime Text 4, so you can see what I see: image

    And here is a link to the stubs that I am ultimately trying to use. It seems like I need to get Jedi working on standard python autocomplete before attempting to get the stubs to work though.... More info here

    opened by alexandermatthias 0
  • Autocomplete with version 0.18.0 is slower than previous version

    Autocomplete with version 0.18.0 is slower than previous version

    I have been using Jedi with Sublime Text 3 for a few months now. And I really like it. My system is Linux Mint. I use large packages like Pytorch and Numpy on a regular basis.

    The autocomplete dropdown list always takes a while the first time it is called. But there after, it is much faster -- for e.g. with the previous version of Jedi it used to be ~0.5 second but with version 0.18.0, I have noticed about a 1-2 second delay.

    Is this behavior expected? And can it be fixed?

    Thanks!

    opened by amitp-ai 0
Releases(v0.20.0)
  • v0.20.0(Aug 30, 2022)

  • v0.19.0(Jul 15, 2022)

  • 0.17.0(Mar 6, 2020)

    7a8538c Upgrade to jedi 0.16.0 a6cabbc Improvement when completing kwargs of a function: selection should be on the value not on the argument name. c154a8e Fix condition and bring comment back 5901c58 Revert to old sorting 73eb194 Remove unused function 26a366e Redo the sorting of completions using line proximity 944fc18 Show completions if there is any at all 02bc918 Tiny optimization ce02153 Prevent flickering of autocompletion 694b8e7 Make the auto-completion asynchronous

    Source code(tar.gz)
    Source code(zip)
  • 0.16.0(Aug 9, 2019)

    Sublime Jedi v0.16.0

    • New Features: Rename all occurrences of symbol, and automatically highlight all occurrences of symbol
    • Upgrade jedi 0.14.1
    Source code(tar.gz)
    Source code(zip)
  • 0.15.0(Jun 12, 2019)

  • 0.14.0(Dec 27, 2018)

  • 0.13.4(Aug 21, 2018)

  • 0.13.3(Aug 13, 2018)

  • 0.13.0(Jul 12, 2018)

    Sublime Jedi v0.13.0

    Changes

    • Upgrade parso to v0.3.1 (#258)
    • Upgrade to jedi==0.12.1 (#256)
    • Update completion behavior. No more blinking on completion. You can turn on/off completion in you SublimeREPL. Argument completion improvements.(#244)
    • Add follow_imports option. When "go to definition" called, you can go to import point or go to definition point, this option is configurable. Check documentation for more info.(#246)
    Source code(tar.gz)
    Source code(zip)
  • 0.12.1(May 24, 2018)

  • 0.12.0(May 16, 2018)

    Sublime Jedi v0.12.0

    !!! WARNING !!!

    v0.11.1 is the last version that support Python 2.6.x v0.11.2 is the last version that support ST2

    Changes

    • Upgraded Jedi to 0.12.0 (#240)
    • Added support of virtualenv. See README for details.
    • Added sublime repl intergation. Now you can enable or disable completion with the plugin in SublimeREPL. See README for details.(#83)
    • Fixed completion when file are not saved
    Source code(tar.gz)
    Source code(zip)
  • st2-0.11.2(May 5, 2018)

  • 0.11.1(Apr 23, 2018)

    c9beefb Strip out leading spaces when autocompleting default arguments (#236) f5e4c01 Added support for hanging indentation of args in the signature popup (#235) 2ad8124 Upgrade Jedi to v0.11.1 (#233) 721526d Detect optional arguments by the presence of '...' or '*'

    Source code(tar.gz)
    Source code(zip)
  • 0.11.0(Apr 23, 2018)

    c9beefb Strip out leading spaces when autocompleting default arguments (#236) f5e4c01 Added support for hanging indentation of args in the signature popup (#235) 2ad8124 Upgrade Jedi to v0.11.1 (#233) 721526d Detect optional arguments by the presence of '...' or '*'

    Source code(tar.gz)
    Source code(zip)
  • 0.10.1(Sep 14, 2017)

    Sublime Jedi v0.10.1

    • Fix startup for ST2
    • Fix arguments completion for python3
    • Added aditional notes about extra packages
    • Increase docstring signature font-size and add tooltip styling guide
    Source code(tar.gz)
    Source code(zip)
  • 0.10.0(Aug 7, 2017)

    Sublime Jedi v0.10.0

    • Improve order of suggestions in autocompletion by taking into account the current file.
    • Update README.md
    • Improve doc-string's tooltips.
    • Update jedi to 0.10.2
    Source code(tar.gz)
    Source code(zip)
  • 0.9.0(Jan 16, 2017)

    • Added Jedi commands to Sublime Text Context menu.
    • Added option to show "Go To Definitions" in a split view.
    • Documentation (docstrings) appears in pop-up for ST3.
    • Updated behaviour for TAB completion for ST3. Now it can insert best completion on TAB.
    • Added Troubleshooting section to Readme.
    • Documentation command unavailable in non-python scope
    • Go to command unavailable in non-python scopes
    • Fixed find usages command: cant show file's content on another panel in transient mode
    • Fixed find usages command: don't move the view to second panel if its focused
    Source code(tar.gz)
    Source code(zip)
  • 0.8.3(Sep 2, 2015)

    37cf6fa Merge pull request #186 from kkujawinski/jedi-version-upgrade be1c89c Removing debug code b2f2a85 Upgrading Jedi to 0.9.0 cc23f2a Merge pull request #184 from eddiejessup/master 49678be Improve clarity of comments on default settings.

    Source code(tar.gz)
    Source code(zip)
  • 0.8.2(Jul 23, 2015)

    254625a fix issue #179. fix broken call signature processing 1758f7f fix issue #180. strip ',' (comma) in the end of parameter name on complete ed4d273 fix #178. add ST2 backward capability in vars extendings

    Source code(tar.gz)
    Source code(zip)
  • 0.7.0(May 5, 2014)

    b71eb01f6b4b984956013936fee33c15670e0bab update Jedi to 0.8.0 caeb9d721f1dd87e4b0ed53bacef8b0b852b99dd Update CONTRIBUTORS.txt a7b42b4de75f687c483bac72e66ff5fa84a01aae Merge pull request #127 from beards/master d0c874f1744294777ff2f9397ff7796b1756ca1f fix #120 & Jedi update

    Source code(tar.gz)
    Source code(zip)
  • 0.6.10(Feb 3, 2014)

    cab592d update Jedi to 0.7.1.alpha1 d8f95fe Merge pull request #116 from Shura1oplot/insert-function-args-only-if-se f7eb660 fix issue #89. Allow completion after "import" 4aa85e0 Merge pull request #114 from Shura1oplot/fix-find-usage 49508ee add regression test for loggin in daemon 7cefdd5 return coordinate of the column, not offset 62c1c9b insert function args only if text following a cursor is space or EOL d37490a insert function args only if selection is empty 59d5086 fix logging when jedi in daemon.py crashes

    Source code(tar.gz)
    Source code(zip)
  • 0.6.9(Jan 20, 2014)

    Fixes:

    • #106 auto_complete_function_params doesn't seem to work

    Changes:

    • #103 add option to hide sublime's completions
    • #100 replace python_interpreter_path with python_interpreter
    Source code(tar.gz)
    Source code(zip)
  • 0.6.8(Nov 29, 2013)

    Changes in 0.6.8

    • fixed logger (#95)
    • fixed adding "self" after calling completion after "dot" (#87)
    • fixed settings example (#94)
    • fixed messages.json (#96)
    Source code(tar.gz)
    Source code(zip)
  • 0.6.7(Oct 27, 2013)

  • 0.6.6(Sep 7, 2013)

    Changes in 0.6.6

    • License changed on MIT (issue #78)
    • Fixed paths to configuration files in Sublime menu (issue #80)
    • Paths in "Find Usages" and "Go to Definitions" are (issue #81) project root relative
    Source code(tar.gz)
    Source code(zip)
Owner
Serhii Ruskykh
Serhii Ruskykh
A code-completion engine for Vim

YouCompleteMe: a code-completion engine for Vim NOTE: Minimum Requirements Have Changed Our policy is to support the Vim version that's in the latest

24.5k Dec 30, 2022
Leo is an Outliner, Editor, IDE and PIM written in 100% Python.

Leo 6.3, http://leoeditor.com, is now available on GitHub. Leo is an IDE, outliner and PIM. The highlights of Leo 6.3 leoAst.py: The unification of Py

Leo Editor 1.4k Dec 27, 2022
cross-editor syntax highlighter for Lua, showing some merit of Typed BNF

Cross-editor contextual syntax highlighter via Typed BNF Do you like "one grammar, syntax highlighters everywhere?" 喜欢我一个文法,到处高亮吗? PS: NOTE that paren

Taine Zhao 14 Feb 09, 2022
PlugNik is a simple implementation of plugin repository for JetBrains Application.

PlugNik is a simple implementation of plugin repository for JetBrains Application.

roy reznik 11 Jun 30, 2022
A simple Notepad-like editor written in Python

monkepad A simple Notepad-like editor written in Python Since MonkePad is written in one file, all your customization can be done without much trouble

5 Dec 28, 2021
A powerful text editor for MATE

Pluma - The MATE text editor General Information Pluma (pluma) is a small and lightweight UTF-8 text editor for the MATE environment. It started as a

MATE Desktop 134 Dec 31, 2022
A very simple Editor.js parser written in pure Python

pyEditor.js A very simple Editor.js parser written in pure Python. Soon-to-be published on PyPI. Features: Automatically convert Editor.js's JSON outp

Kevo 7 Nov 01, 2022
Official repository for Spyder - The Scientific Python Development Environment

Copyright © 2009–2021 Spyder Project Contributors Some source files and icons may be under other authorship/licenses; see NOTICE.txt. Project status B

Spyder IDE 7.3k Dec 31, 2022
ReText: Simple but powerful editor for Markdown and reStructuredText

Welcome to ReText! ReText is a simple but powerful editor for Markdown and reStructuredText markup languages. One can also add support for custom mark

ReText 1.6k Dec 23, 2022
Write maintainable, production-ready pipelines using Jupyter or your favorite text editor. Develop locally, deploy to the cloud. ☁️

Write maintainable, production-ready pipelines using Jupyter or your favorite text editor. Develop locally, deploy to the cloud. ☁️

Ploomber 2.9k Jan 06, 2023
Emacs Python Development Environment

Elpy, the Emacs Python IDE Elpy is an Emacs package to bring powerful Python editing to Emacs. It combines and configures a number of other packages,

Jorgen Schäfer 1.8k Jan 02, 2023
Using the jedi autocompletion library for VIM.

jedi-vim - awesome Python autocompletion with VIM jedi-vim is a VIM binding to the autocompletion library Jedi. Here are some pictures: Completion for

Dave Halter 5.1k Dec 31, 2022
openBrowsser is a Sublime Text plug-in, which allows you to add a keyboard shortcut, to directly access a website from a selection.

openBrowsser is a Sublime Text plug-in, which allows you to add a keyboard shortcut, to directly access a website from a selection. Instal

Florian COLLIN 1 Dec 14, 2021
Encriptificator is a text editor app developed by me as a personal project.

Encriptificator is a text editor app developed by me as a personal project. It provides all basic features of a text editor with the additional feature of encrypting your files. To know more about ho

1 May 09, 2022
A basic Python IDE made by Anh Đức

Python IDE by Anh Đức A basic Python IDE made with python module tkinter. Hope you enjoy this IDE! V 1.3 "Open Terminal from IDE" feature V 1.2 Now yo

1 May 30, 2022
Vim python-mode. PyLint, Rope, Pydoc, breakpoints from box.

Python-mode, a Python IDE for Vim This project needs contributors. Documentation: :help pymode https://github.com/python-mode/python-mode/wiki Importa

The Python-Mode 5.4k Jan 01, 2023
Cameray is a lens editor and simulator for fun.

Cameray is a lens editor and simulator for fun. It's could be used for studying an optics system of DSLR in an interactive way. But the project is in a very early version. The program is still crash-

Shuoliu Yang 59 Dec 10, 2022
Vim plugin for executing Python's optional static type checker MyPy

Vim plugin for executing Python's optional static type checker MyPy

Mark McDonnell 91 Dec 04, 2022
Frappe tinymce - Frappe app to replace default text editor with tinymce

Frappe tinyMCE tinyMCE Text Editor for frappe apps Replace frappe's Quill Text E

Shridhar Patil 23 Nov 16, 2022
JupyterLite is a JupyterLab distribution that runs entirely in the browser power by wasm

JupyterLite is a JupyterLab distribution that runs entirely in the browser built from the ground-up using JupyterLab components and extensions.

Jeremy Tuloup 76 Dec 13, 2022