diff options
author | Joakim Koljonen <koljonen@Joakims-MacBook-Pro-2.local> | 2016-07-08 16:51:55 +0200 |
---|---|---|
committer | Joakim Koljonen <koljonen@Joakims-MacBook-Pro-2.local> | 2016-07-08 16:51:55 +0200 |
commit | f94bd6882d4e8eff4c53039b8612b557b80b2094 (patch) | |
tree | 98c74ca449f7166fea0c6b03aea80552be522427 | |
parent | 6894c8ecaac64f4b5baaa383ea689e658782d05e (diff) |
Some changes to sorting of suggestions
-rw-r--r-- | pgcli/pgcompleter.py | 16 | ||||
-rw-r--r-- | tests/test_smart_completion_public_schema_only.py | 12 |
2 files changed, 16 insertions, 12 deletions
diff --git a/pgcli/pgcompleter.py b/pgcli/pgcompleter.py index 5bfbb691..087aa051 100644 --- a/pgcli/pgcompleter.py +++ b/pgcli/pgcompleter.py @@ -319,7 +319,7 @@ class PGCompleter(Completer): + tuple(c for c in item)) item = self.case(item) - priority = type_priority, prio, sort_key, priority_func(item), lexical_priority + priority = sort_key, type_priority, prio, priority_func(item), lexical_priority matches.append(Match( completion=Completion(item, -text_len, display_meta=meta), @@ -399,7 +399,8 @@ class PGCompleter(Completer): return [Match(completion=Completion(collist, -1, display_meta='columns', display='*'), priority=(1,1,1))] - return self.find_matches(word_before_cursor, flat_cols, meta='column') + return self.find_matches(word_before_cursor, flat_cols, + meta='column', type_priority=90) def alias(self, tbl, tbls): """ Generate a unique table alias @@ -552,7 +553,8 @@ class PGCompleter(Completer): if not word_before_cursor.startswith('pg_'): schema_names = [s for s in schema_names if not s.startswith('pg_')] - return self.find_matches(word_before_cursor, schema_names, meta='schema') + return self.find_matches(word_before_cursor, schema_names, + meta='schema', type_priority=50) def get_from_clause_item_matches(self, suggestion, word_before_cursor): alias = self.generate_aliases @@ -574,7 +576,8 @@ class PGCompleter(Completer): if alias: tables = [self.case(t) + ' ' + self.alias(t, suggestion.tables) for t in tables] - return self.find_matches(word_before_cursor, tables, meta='table') + return self.find_matches(word_before_cursor, tables, + meta='table', type_priority=40) def get_view_matches(self, suggestion, word_before_cursor, alias=False): @@ -586,7 +589,8 @@ class PGCompleter(Completer): if alias: views = [self.case(v) + ' ' + self.alias(v, suggestion.tables) for v in views] - return self.find_matches(word_before_cursor, views, meta='view') + return self.find_matches(word_before_cursor, views, + meta='view', type_priority=30) def get_alias_matches(self, suggestion, word_before_cursor): aliases = suggestion.aliases @@ -595,7 +599,7 @@ class PGCompleter(Completer): def get_database_matches(self, _, word_before_cursor): return self.find_matches(word_before_cursor, self.databases, - meta='database') + meta='database', type_priority=45) def get_keyword_matches(self, _, word_before_cursor): return self.find_matches(word_before_cursor, self.keywords, diff --git a/tests/test_smart_completion_public_schema_only.py b/tests/test_smart_completion_public_schema_only.py index df73d51b..4802db45 100644 --- a/tests/test_smart_completion_public_schema_only.py +++ b/tests/test_smart_completion_public_schema_only.py @@ -561,17 +561,17 @@ def test_table_names_after_from(completer, complete_event, text): assert set(result) == set(testdata.schemas() + testdata.tables() + testdata.views() + testdata.functions()) assert [c.text for c in result] == [ + 'public', + 'orders', + '"select"', + 'users', + '"Users"', + 'user_emails', '_custom_fun()', 'custom_fun()', 'custom_func1()', 'custom_func2()', - 'orders', - 'public', - '"select"', 'set_returning_func()', - 'user_emails', - 'users', - '"Users"', ] def test_auto_escaped_col_names(completer, complete_event): |