diff options
| author | DanielGavin <danielgavin5@hotmail.com> | 2020-11-10 02:21:34 +0100 |
|---|---|---|
| committer | DanielGavin <danielgavin5@hotmail.com> | 2020-11-10 02:21:34 +0100 |
| commit | dbd542edb44c984c0c7f2ea721634e1cb431b5b9 (patch) | |
| tree | 500678cf5cf51572f2bdb1552999b69150bec513 /src | |
| parent | b08dcc40c81212755f6143ab47c7bc3dd746417d (diff) | |
sublime error fixed
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/analysis.odin | 14 | ||||
| -rw-r--r-- | src/server/documents.odin | 1 | ||||
| -rw-r--r-- | src/server/requests.odin | 5 |
3 files changed, 11 insertions, 9 deletions
diff --git a/src/server/analysis.odin b/src/server/analysis.odin index 98639c2..fc62aab 100644 --- a/src/server/analysis.odin +++ b/src/server/analysis.odin @@ -145,7 +145,7 @@ get_completion_list :: proc(document: ^Document, position: common.Position) -> ( } else { - return list, false; + return list, true; } @@ -231,7 +231,7 @@ get_document_position_node :: proc(node: ^ast.Node, position_context: ^DocumentP return; } - if !(node.pos.offset <= position_context.position && position_context.position <= node.end.offset) { + if !position_in_node(node, position_context.position) { return; } @@ -251,9 +251,7 @@ get_document_position_node :: proc(node: ^ast.Node, position_context: ^DocumentP if position_in_node(n.body, position_context.position) { position_context.function = node; get_document_position(n.body, position_context); - return; } - case Comp_Lit: get_document_position(n.type, position_context); get_document_position(n.elems, position_context); @@ -270,14 +268,14 @@ get_document_position_node :: proc(node: ^ast.Node, position_context: ^DocumentP get_document_position(n.expr, position_context); get_document_position(n.args, position_context); case Selector_Expr: - get_document_position(n.expr, position_context); - if position_in_node(n.field, position_context.position) { + if position_context.hint == .Completion { position_context.selector = n.expr; position_context.field = n.field; + } + else { + get_document_position(n.expr, position_context); get_document_position(n.field, position_context); - return; } - case Index_Expr: get_document_position(n.expr, position_context); get_document_position(n.index, position_context); diff --git a/src/server/documents.odin b/src/server/documents.odin index d349eba..4c35641 100644 --- a/src/server/documents.odin +++ b/src/server/documents.odin @@ -235,7 +235,6 @@ document_apply_changes :: proc(uri_string: string, changes: [dynamic] TextDocume } - return document_refresh(document, config, writer, true); } diff --git a/src/server/requests.odin b/src/server/requests.odin index bc7c193..8775bd2 100644 --- a/src/server/requests.odin +++ b/src/server/requests.odin @@ -325,6 +325,7 @@ request_completion :: proc(params: json.Value, id: RequestId, config: ^common.Co completition_params: CompletionParams; if unmarshal(params, completition_params, context.temp_allocator) != .None { + log.error("Failed to unmarshal completion request"); return .ParseError; } @@ -338,6 +339,10 @@ request_completion :: proc(params: json.Value, id: RequestId, config: ^common.Co list: CompletionList; list, ok = get_completion_list(document, completition_params.position); + list.isIncomplete = true; + + + if !ok { return .InternalError; } |