summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmjith Ramanujam <amjith@newrelic.com>2015-01-04 16:46:58 -0800
committerAmjith Ramanujam <amjith@newrelic.com>2015-01-04 16:46:58 -0800
commite5024c8869c7734837f3f7c0ee8552f8e5cfaa4e (patch)
tree8c4e7629120b45a1ec8dbe9637252f447ae6b702
parentbc7884a0087adf1b3eb86ea6e2258fe8898def98 (diff)
Refactor pgcompleter.
-rw-r--r--pgcli/key_bindings.py9
-rw-r--r--pgcli/pgcompleter.py15
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