aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDanielGavin <danielgavin5@hotmail.com>2021-03-25 22:47:50 +0100
committerDanielGavin <danielgavin5@hotmail.com>2021-03-25 22:47:50 +0100
commit382d91e3602bc43a488476f3068ffb5474bcc074 (patch)
tree751f1dbdae313ff9387b1436813d79f2b50cd2c1 /src
parentfdb0ab16e6d1cebb9d4953ceb686e93d3179ff36 (diff)
fix hover and completion on keywords
Diffstat (limited to 'src')
-rw-r--r--src/server/analysis.odin8
-rw-r--r--src/server/completion.odin8
2 files changed, 8 insertions, 8 deletions
diff --git a/src/server/analysis.odin b/src/server/analysis.odin
index 6141166..7b7fe81 100644
--- a/src/server/analysis.odin
+++ b/src/server/analysis.odin
@@ -1736,7 +1736,7 @@ clear_locals :: proc(ast_context: ^AstContext) {
clear(&ast_context.usings);
}
-concatenate_symbols_information :: proc(ast_context: ^AstContext, symbol: index.Symbol) -> string {
+concatenate_symbols_information :: proc(ast_context: ^AstContext, symbol: index.Symbol, is_completion: bool) -> string {
pkg := path.base(symbol.pkg, false, context.temp_allocator);
@@ -1749,7 +1749,7 @@ concatenate_symbols_information :: proc(ast_context: ^AstContext, symbol: index.
}
} else if symbol.type == .Package {
return symbol.name;
- } else if symbol.type == .Keyword {
+ } else if symbol.type == .Keyword && is_completion {
return symbol.name;
} else {
if symbol.signature != "" {
@@ -1878,7 +1878,7 @@ get_definition_location :: proc(document: ^Document, position: common.Position)
write_hover_content :: proc(ast_context: ^AstContext, symbol: index.Symbol) -> MarkupContent {
content: MarkupContent;
- cat := concatenate_symbols_information(ast_context, symbol);
+ cat := concatenate_symbols_information(ast_context, symbol, false);
if cat != "" {
content.kind = "markdown";
@@ -1961,7 +1961,7 @@ get_signature_information :: proc(document: ^Document, position: common.Position
signature_information := make([]SignatureInformation, 1, context.temp_allocator);
- signature_information[0].label = concatenate_symbols_information(&ast_context, call);
+ signature_information[0].label = concatenate_symbols_information(&ast_context, call, false);
signature_information[0].documentation = call.doc;
signature_help.signatures = signature_information;
diff --git a/src/server/completion.odin b/src/server/completion.odin
index b5fa70d..b68bc77 100644
--- a/src/server/completion.odin
+++ b/src/server/completion.odin
@@ -219,7 +219,7 @@ get_comp_lit_completion :: proc(ast_context: ^AstContext, position_context: ^Doc
item := CompletionItem {
label = resolved.name,
kind = cast(CompletionItemKind)resolved.type,
- detail = concatenate_symbols_information(ast_context, resolved),
+ detail = concatenate_symbols_information(ast_context, resolved, true),
documentation = resolved.doc,
};
@@ -373,7 +373,7 @@ get_selector_completion :: proc(ast_context: ^AstContext, position_context: ^Doc
item := CompletionItem {
label = symbol.name,
kind = cast(CompletionItemKind)symbol.type,
- detail = concatenate_symbols_information(ast_context, symbol),
+ detail = concatenate_symbols_information(ast_context, symbol, true),
documentation = symbol.doc,
};
@@ -863,7 +863,7 @@ get_identifier_completion :: proc(ast_context: ^AstContext, position_context: ^D
}
}
-
+
for keyword, _ in common.keyword_map {
symbol := index.Symbol {
@@ -885,7 +885,7 @@ get_identifier_completion :: proc(ast_context: ^AstContext, position_context: ^D
item := CompletionItem {
label = result.symbol.name,
- detail = concatenate_symbols_information(ast_context, result.symbol),
+ detail = concatenate_symbols_information(ast_context, result.symbol, true),
};
if result.variable != nil {