diff options
| author | DanielGavin <danielgavin5@hotmail.com> | 2021-03-22 22:52:19 +0100 |
|---|---|---|
| committer | DanielGavin <danielgavin5@hotmail.com> | 2021-03-22 22:52:19 +0100 |
| commit | 7754c4ce36be910c83fda17a854407c86bd53de0 (patch) | |
| tree | d9e71d0c8c34e7009bf09c6f4e692ee5f5a28898 /src | |
| parent | 8b7fa052b40149d6023f4f23b07116a4f3813ebc (diff) | |
make sure to abort completion if '>' is used alone
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/analysis.odin | 3 | ||||
| -rw-r--r-- | src/server/completion.odin | 4 |
2 files changed, 7 insertions, 0 deletions
diff --git a/src/server/analysis.odin b/src/server/analysis.odin index 62ab37c..b7dd0f9 100644 --- a/src/server/analysis.odin +++ b/src/server/analysis.odin @@ -56,6 +56,7 @@ DocumentPositionContext :: struct { switch_type_stmt: ^ast.Type_Switch_Stmt, //used for completion case_clause: ^ast.Case_Clause, //used for completion value_decl: ^ast.Value_Decl, //used for completion + abort_completion: bool, hint: DocumentPositionContextHint, } @@ -2216,8 +2217,10 @@ fallback_position_context_completion :: proc(document: ^Document, position: comm e := parser.parse_expr(&p, true); if e == nil { + position_context.abort_completion = true; return; } else if e, ok := e.derived.(ast.Bad_Expr); ok { + position_context.abort_completion = true; return; } diff --git a/src/server/completion.odin b/src/server/completion.odin index 1c49fd4..aafbc36 100644 --- a/src/server/completion.odin +++ b/src/server/completion.odin @@ -31,6 +31,10 @@ get_completion_list :: proc(document: ^Document, position: common.Position) -> ( position_context, ok := get_document_position_context(document, position, .Completion); + if !ok || position_context.abort_completion { + return list, true; + } + ast_context := make_ast_context(document.ast, document.imports, document.package_name); get_globals(document.ast, &ast_context); |