From 4ea427077bec222a0ac335e1383db87c7764d835 Mon Sep 17 00:00:00 2001 From: Denis K Date: Sat, 14 Dec 2013 14:48:14 +0200 Subject: [PATCH] add cplns visibility option --- sublime_jedi.sublime-settings | 12 +++++++++--- sublime_jedi/completion.py | 20 ++++++++++++++++++-- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/sublime_jedi.sublime-settings b/sublime_jedi.sublime-settings index 370512f..90cd36f 100644 --- a/sublime_jedi.sublime-settings +++ b/sublime_jedi.sublime-settings @@ -10,7 +10,13 @@ // "required" - insert arguments that dont have default value (e.g. required) // "" - dont insert any arguments "auto_complete_function_params": "required", - - // "debug", "error", "info" - "logging_level": "debug" + + // "debug", "error", "info" + "logging_level": "debug", + + // what to show in completion list + // all - show all completions ( both jedi's and sublime's ) + // jedi - only jedi's + // default - only jedi's in case it has something to show else sublime's + "sublime_completions_visibility": "default" } diff --git a/sublime_jedi/completion.py b/sublime_jedi/completion.py index 53099cf..8a2376b 100644 --- a/sublime_jedi/completion.py +++ b/sublime_jedi/completion.py @@ -6,6 +6,7 @@ from .utils import is_python_scope, ask_daemon from .console_logging import getLogger +from .settings import get_settings_param logger = getLogger(__name__) FOLLOWING_CHARS = set(["\r", "\n", "\t", " ", ")", "]", ";", "}", "\x00"]) @@ -46,7 +47,7 @@ def _insert_characters(self, edit, open_pair, close_pair): If sublime option `auto_match_enabled` turned on, next behavior have to be: - when none selection + when none selection `( => ()` `1 => ( => (1` @@ -57,7 +58,7 @@ def _insert_characters(self, edit, open_pair, close_pair): In other case: - when none selection + when none selection `( => (` @@ -109,6 +110,14 @@ class Autocomplete(sublime_plugin.EventListener): completions = [] cplns_ready = None + cplns_mode = None + + def on_load(self, view): + self.cplns_mode = get_settings_param( + view, + 'sublime_completions_visibility', + default='default' + ) def on_query_completions(self, view, prefix, locations): """ Sublime autocomplete event handler @@ -137,6 +146,11 @@ def on_query_completions(self, view, prefix, locations): self.cplns_ready = None if self.completions: cplns, self.completions = self.completions, [] + if self.cplns_mode in ('default', 'jedi'): + return ( + [tuple(i) for i in cplns], + sublime.INHIBIT_WORD_COMPLETIONS | sublime.INHIBIT_EXPLICIT_COMPLETIONS + ) return [tuple(i) for i in cplns] return @@ -153,6 +167,8 @@ def on_query_completions(self, view, prefix, locations): if self.cplns_ready is None: ask_daemon(view, self.show_completions, 'autocomplete', locations[0]) self.cplns_ready = False + if self.cplns_mode == 'jedi': + view.run_command("hide_auto_complete") return def show_completions(self, view, completions):