diff options
| author | DanielGavin <danielgavin5@hotmail.com> | 2021-03-22 22:41:23 +0100 |
|---|---|---|
| committer | DanielGavin <danielgavin5@hotmail.com> | 2021-03-22 22:41:23 +0100 |
| commit | 8b7fa052b40149d6023f4f23b07116a4f3813ebc (patch) | |
| tree | 6c8cb86764140ace2b2a1d8a032f15b801d90708 /src/server/completion.odin | |
| parent | aab3b14f72276182412c070950dd5c6488177d21 (diff) | |
add directive completion(not context aware atm)
Diffstat (limited to 'src/server/completion.odin')
| -rw-r--r-- | src/server/completion.odin | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/server/completion.odin b/src/server/completion.odin index bd0e1f5..1c49fd4 100644 --- a/src/server/completion.odin +++ b/src/server/completion.odin @@ -22,6 +22,7 @@ Completion_Type :: enum { Switch_Type, Identifier, Comp_Lit, + Directive, } get_completion_list :: proc(document: ^Document, position: common.Position) -> (CompletionList, bool) { @@ -55,6 +56,10 @@ get_completion_list :: proc(document: ^Document, position: common.Position) -> ( completion_type = .Selector; } + if position_context.tag != nil { + completion_type = .Directive; + } + if position_context.switch_type_stmt != nil && position_context.case_clause != nil { if assign, ok := position_context.switch_type_stmt.tag.derived.(ast.Assign_Stmt); ok && assign.rhs != nil && len(assign.rhs) == 1 { @@ -79,6 +84,8 @@ get_completion_list :: proc(document: ^Document, position: common.Position) -> ( get_selector_completion(&ast_context, &position_context, &list); case .Switch_Type: get_type_switch_Completion(&ast_context, &position_context, &list); + case .Directive: + get_directive_completion(&ast_context, &position_context, &list); } return list, true; |