mirror of
https://gitlab.gnome.org/jwestman/blueprint-compiler.git
synced 2025-05-04 15:59:08 -04:00
Improve completions
If the completion cursor is in the middle of an identifier, start the completion matching before that token. GNOME Builder does this before sending us a cursor position, but VS Code does not.
This commit is contained in:
parent
54237d7976
commit
b2b50c6288
2 changed files with 6 additions and 3 deletions
|
@ -41,6 +41,10 @@ def complete(ast_node: ast.AstNode, tokens: T.List[Token], idx: int) -> T.Iterat
|
|||
if token.start < idx <= token.end:
|
||||
token_idx = i
|
||||
|
||||
# if the current token is an identifier, move to the token before it
|
||||
if tokens[token_idx].type == TokenType.IDENT:
|
||||
token_idx -= 1
|
||||
|
||||
# collect the 5 previous non-skipped tokens
|
||||
while len(prev_tokens) < 5 and token_idx >= 0:
|
||||
token = tokens[token_idx]
|
||||
|
@ -80,8 +84,6 @@ class Completer:
|
|||
if not any_match:
|
||||
return
|
||||
|
||||
print("completions", match_variables, self.func)
|
||||
|
||||
if self.ast_type is not None:
|
||||
while ast_node is not None and not isinstance(ast_node, self.ast_type):
|
||||
ast_node = ast_node.parent
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue