aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDanielGavin <danielgavin5@hotmail.com>2020-12-25 14:07:04 +0100
committerDanielGavin <danielgavin5@hotmail.com>2020-12-25 14:07:04 +0100
commitf4aea6aca5eaa8d4cad2f6e605d1c392dba9ab6e (patch)
tree81ad9d450188b2009887b3de9c6250e3bf7ea3cd /src
parentcee93b98af7d2d8fec2479e1f42bbfb269e5a8f3 (diff)
always set the hover type to plaintext by default.
Diffstat (limited to 'src')
-rw-r--r--src/server/analysis.odin14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/server/analysis.odin b/src/server/analysis.odin
index 2096fd4..358653d 100644
--- a/src/server/analysis.odin
+++ b/src/server/analysis.odin
@@ -1818,7 +1818,11 @@ get_signature :: proc(ast_context: ^AstContext, ident: ast.Ident, symbol: index.
get_hover_information :: proc(document: ^Document, position: common.Position) -> (Hover, bool) {
- hover: Hover;
+ hover := Hover {
+ contents = {
+ kind = "plaintext",
+ }
+ };
ast_context := make_ast_context(document.ast, document.imports, document.package_name);
@@ -1842,6 +1846,8 @@ get_hover_information :: proc(document: ^Document, position: common.Position) ->
if position_context.selector != nil && position_context.identifier != nil {
+ hover.range = common.get_token_range(position_context.identifier^, ast_context.file.src);
+
//if the base selector is the client wants to go to.
if base, ok := position_context.selector.derived.(ast.Ident); ok && position_context.identifier != nil {
@@ -1857,7 +1863,6 @@ get_hover_information :: proc(document: ^Document, position: common.Position) ->
resolved.pkg = ast_context.document_package;
}
- hover.range = common.get_token_range(position_context.identifier^, document.ast.src);
hover.contents = write_hover_content(&ast_context, resolved);
return hover, true;
}
@@ -1917,6 +1922,8 @@ get_hover_information :: proc(document: ^Document, position: common.Position) ->
ident := position_context.identifier.derived.(ast.Ident);
+ hover.range = common.get_token_range(position_context.identifier^, document.ast.src);
+
if resolved, ok := resolve_type_identifier(&ast_context, ident); ok {
resolved.name = ident.name;
resolved.signature = get_signature(&ast_context, ident, resolved);
@@ -1925,14 +1932,13 @@ get_hover_information :: proc(document: ^Document, position: common.Position) ->
resolved.pkg = ast_context.document_package;
}
- hover.range = common.get_token_range(position_context.identifier^, document.ast.src);
hover.contents = write_hover_content(&ast_context, resolved);
return hover, true;
}
}
- return {}, true;
+ return hover, true;
}
get_completion_list :: proc(document: ^Document, position: common.Position) -> (CompletionList, bool) {