From 9e37eb68998c99fafe18c591c599bc8a5cca6dee Mon Sep 17 00:00:00 2001 From: DanielGavin Date: Sat, 7 Nov 2020 21:40:48 +0100 Subject: fixed json bug that showed up with sublime --- src/server/analysis.odin | 10 ++-------- src/server/documents.odin | 2 ++ src/server/unmarshal.odin | 4 ++++ 3 files changed, 8 insertions(+), 8 deletions(-) (limited to 'src/server') diff --git a/src/server/analysis.odin b/src/server/analysis.odin index 8027e6d..7c1977c 100644 --- a/src/server/analysis.odin +++ b/src/server/analysis.odin @@ -183,19 +183,13 @@ get_completion_list :: proc(document: ^Document, position: common.Position) -> ( position_context, ok := get_document_position_context(document, position); symbols: [] index.Symbol; - empty_dot := false; #partial switch v in position_context.value { case DocumentPositionContextVariableDotVariableValue: symbols, ok = index.fuzzy_search(v.postfix, {v.prefix}); case DocumentPositionContextVariableDotValue: - empty_dot = true; - } - - if empty_dot { - list.isIncomplete = true; - return list, true; + symbols, ok = index.fuzzy_search("", {v.prefix}); } if !ok { @@ -206,7 +200,7 @@ get_completion_list :: proc(document: ^Document, position: common.Position) -> ( for symbol, i in symbols { list.items[i].label = symbol.name; - list.items[i].kind = .Function; + list.items[i].kind = cast(CompletionItemKind) symbol.type; } return list, true; diff --git a/src/server/documents.odin b/src/server/documents.odin index 59eeadd..7765190 100644 --- a/src/server/documents.odin +++ b/src/server/documents.odin @@ -232,6 +232,8 @@ document_close :: proc(uri_string: string) -> common.Error { document.client_owned = false; + delete(document.text); + return .None; } diff --git a/src/server/unmarshal.odin b/src/server/unmarshal.odin index e5ca619..c658848 100644 --- a/src/server/unmarshal.odin +++ b/src/server/unmarshal.odin @@ -16,6 +16,10 @@ unmarshal :: proc(json_value: json.Value, v: any, allocator := context.allocator return .None; } + if json_value.value == nil { + return .None; + } + type_info := type_info_base(type_info_of(v.id)); #partial -- cgit v1.2.3