diff options
| author | DanielGavin <danielgavin5@hotmail.com> | 2021-03-25 22:47:50 +0100 |
|---|---|---|
| committer | DanielGavin <danielgavin5@hotmail.com> | 2021-03-25 22:47:50 +0100 |
| commit | 382d91e3602bc43a488476f3068ffb5474bcc074 (patch) | |
| tree | 751f1dbdae313ff9387b1436813d79f2b50cd2c1 /src/server | |
| parent | fdb0ab16e6d1cebb9d4953ceb686e93d3179ff36 (diff) | |
fix hover and completion on keywords
Diffstat (limited to 'src/server')
| -rw-r--r-- | src/server/analysis.odin | 8 | ||||
| -rw-r--r-- | src/server/completion.odin | 8 |
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 { |