aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDanielGavin <danielgavin5@hotmail.com>2020-11-10 02:21:34 +0100
committerDanielGavin <danielgavin5@hotmail.com>2020-11-10 02:21:34 +0100
commitdbd542edb44c984c0c7f2ea721634e1cb431b5b9 (patch)
tree500678cf5cf51572f2bdb1552999b69150bec513 /src
parentb08dcc40c81212755f6143ab47c7bc3dd746417d (diff)
sublime error fixed
Diffstat (limited to 'src')
-rw-r--r--src/server/analysis.odin14
-rw-r--r--src/server/documents.odin1
-rw-r--r--src/server/requests.odin5
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;
}