diff options
author | Amjith Ramanujam <amjith@newrelic.com> | 2015-01-04 16:46:58 -0800 |
---|---|---|
committer | Amjith Ramanujam <amjith@newrelic.com> | 2015-01-04 16:46:58 -0800 |
commit | e5024c8869c7734837f3f7c0ee8552f8e5cfaa4e (patch) | |
tree | 8c4e7629120b45a1ec8dbe9637252f447ae6b702 | |
parent | bc7884a0087adf1b3eb86ea6e2258fe8898def98 (diff) |
Refactor pgcompleter.
-rw-r--r-- | pgcli/key_bindings.py | 9 | ||||
-rw-r--r-- | pgcli/pgcompleter.py | 15 |
2 files changed, 16 insertions, 8 deletions
diff --git a/pgcli/key_bindings.py b/pgcli/key_bindings.py index 72511cb5..38fa3290 100644 --- a/pgcli/key_bindings.py +++ b/pgcli/key_bindings.py @@ -1,6 +1,9 @@ +import logging from prompt_toolkit.keys import Keys from prompt_toolkit.enums import InputMode +_logger = logging.getLogger(__name__) + def pgcli_bindings(registry, cli_ref): """ Custom key bindings for pgcli. @@ -13,6 +16,7 @@ def pgcli_bindings(registry, cli_ref): """ Enable/Disable SmartCompletion Mode. """ + _logger.debug('Detected F2 key.') line.completer.smart_completion = not line.completer.smart_completion @handle(Keys.F3) @@ -20,12 +24,13 @@ def pgcli_bindings(registry, cli_ref): """ Enable/Disable Multiline Mode. """ - #import pdb; pdb.set_trace() + _logger.debug('Detected F3 key.') line.always_multiline = not line.always_multiline @handle(Keys.ControlSpace, in_mode=InputMode.INSERT) def _(event): """ - Force autocompletion at cursor + Force autocompletion at cursor. """ + _logger.debug('Detected <C-Space> key.') line.complete_next() diff --git a/pgcli/pgcompleter.py b/pgcli/pgcompleter.py index bf8bc718..fad82a09 100644 --- a/pgcli/pgcompleter.py +++ b/pgcli/pgcompleter.py @@ -89,14 +89,10 @@ class PGCompleter(Completer): document.text_before_cursor) if category == 'columns': - scoped_cols = [] - for table in scope: - scoped_cols.extend(self.columns[table]) + scoped_cols = self.populate_scoped_cols(scope) return self.find_matches(word_before_cursor, scoped_cols) elif category == 'columns-and-functions': - scoped_cols = [] - for table in scope: - scoped_cols.extend(self.columns[table]) + scoped_cols = self.populate_scoped_cols(scope) return self.find_matches(word_before_cursor, scoped_cols + self.functions) elif category == 'tables': @@ -106,3 +102,10 @@ class PGCompleter(Completer): elif category == 'keywords': return self.find_matches(word_before_cursor, self.keywords + self.special_commands) + + def populate_scoped_cols(self, tables): + scoped_cols = [] + for table in tables: + scoped_cols.extend(self.columns[table]) + + return scoped_cols |