diff options
-rw-r--r-- | pgcli/packages/parseutils.py | 2 | ||||
-rw-r--r-- | pgcli/packages/sqlcompletion.py | 14 | ||||
-rw-r--r-- | setup.py | 2 |
3 files changed, 9 insertions, 9 deletions
diff --git a/pgcli/packages/parseutils.py b/pgcli/packages/parseutils.py index cbdd1e3e..4a5b47c2 100644 --- a/pgcli/packages/parseutils.py +++ b/pgcli/packages/parseutils.py @@ -296,7 +296,7 @@ def parse_partial_identifier(word): n_tok = len(p.tokens) if n_tok == 1 and isinstance(p.tokens[0], Identifier): return p.tokens[0] - elif p.token_next_match(0, Error, '"'): + elif p.token_next_by(m=(Error, '"'))[1]: # An unmatched double quote, e.g. '"foo', 'foo."', or 'foo."bar' # Close the double quote, then reparse return parse_partial_identifier(word + '"') diff --git a/pgcli/packages/sqlcompletion.py b/pgcli/packages/sqlcompletion.py index 54a0ec5e..e339e2b4 100644 --- a/pgcli/packages/sqlcompletion.py +++ b/pgcli/packages/sqlcompletion.py @@ -81,7 +81,7 @@ class SqlStatement(object): self.text_before_cursor = text_before_cursor self.parsed = parsed - self.last_token = parsed and parsed.token_prev(len(parsed.tokens)) or '' + self.last_token = parsed and parsed.token_prev(len(parsed.tokens))[1] or '' def is_insert(self): return self.parsed.token_first().value.lower() == 'insert' @@ -164,7 +164,7 @@ def _split_multiple_statements(full_text, text_before_cursor, parsed): stmt_start, stmt_end = 0, 0 for statement in parsed: - stmt_len = len(statement.to_unicode()) + stmt_len = len(str(statement)) stmt_start, stmt_end = stmt_end, stmt_end + stmt_len if stmt_end >= current_pos: @@ -292,7 +292,7 @@ def suggest_based_on_last_token(token, stmt): # Check for a subquery expression (cases 3 & 4) where = p.tokens[-1] - prev_tok = where.token_prev(len(where.tokens) - 1) + prev_tok = where.token_prev(len(where.tokens) - 1)[1] if isinstance(prev_tok, Comparison): # e.g. "SELECT foo FROM bar WHERE foo = ANY(" @@ -305,7 +305,7 @@ def suggest_based_on_last_token(token, stmt): return column_suggestions # Get the token before the parens - prev_tok = p.token_prev(len(p.tokens) - 1) + prev_tok = p.token_prev(len(p.tokens) - 1)[1] if (prev_tok and prev_tok.value and prev_tok.value.lower().split(' ')[-1] == 'using'): @@ -321,7 +321,7 @@ def suggest_based_on_last_token(token, stmt): if last_word(stmt.text_before_cursor, 'all_punctuations').startswith('('): return (Keyword(),) - prev_prev_tok = p.token_prev(p.token_index(prev_tok)) + prev_prev_tok = p.token_prev(p.token_index(prev_tok))[1] if prev_prev_tok and prev_prev_tok.normalized == 'INTO': return (Column(tables=stmt.get_tables('insert')),) # We're probably in a function argument list @@ -461,7 +461,7 @@ def _allow_join_condition(statement): if not statement or not statement.tokens: return False - last_tok = statement.token_prev(len(statement.tokens)) + last_tok = statement.token_prev(len(statement.tokens))[1] return last_tok.value.lower() in ('on', 'and', 'or') @@ -480,6 +480,6 @@ def _allow_join(statement): if not statement or not statement.tokens: return False - last_tok = statement.token_prev(len(statement.tokens)) + last_tok = statement.token_prev(len(statement.tokens))[1] return (last_tok.value.lower().endswith('join') and last_tok.value.lower() not in('cross join', 'natural join')) @@ -17,7 +17,7 @@ install_requirements = [ 'Pygments >= 2.0', # Pygments has to be Capitalcased. WTF? 'prompt_toolkit>=1.0.0,<1.1.0', 'psycopg2 >= 2.5.4', - 'sqlparse == 0.1.19', + 'sqlparse == 0.2.0', 'configobj >= 5.0.6', 'humanize >= 0.5.1', 'wcwidth >= 0.1.6', |