diff options
| author | Brad Lewis <22850972+BradLewis@users.noreply.github.com> | 2025-06-10 21:53:15 -0400 |
|---|---|---|
| committer | Brad Lewis <22850972+BradLewis@users.noreply.github.com> | 2025-06-10 22:20:36 -0400 |
| commit | 2a284808585aa062932e5bf162e4facfd5b8cee2 (patch) | |
| tree | c7bcd770f31d0c95da94b52a2c7587a5524ece98 /src/server/hover.odin | |
| parent | 3f089f4d757e2a705056eb331c74442ab48862aa (diff) | |
Add struct field type to hover information
Diffstat (limited to 'src/server/hover.odin')
| -rw-r--r-- | src/server/hover.odin | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/server/hover.odin b/src/server/hover.odin index 3c602c1..89b75eb 100644 --- a/src/server/hover.odin +++ b/src/server/hover.odin @@ -125,9 +125,11 @@ get_hover_information :: proc(document: ^Document, position: common.Position) -> &ast_context, position_context.value_decl.names[0], ); ok { + symbol.type_name = symbol.name + symbol.type_pkg = symbol.pkg symbol.pkg = struct_symbol.name symbol.name = identifier.name - symbol.signature = get_signature(&ast_context, field.type.derived, symbol) + symbol.signature = get_signature(&ast_context, symbol) hover.contents = write_hover_content(&ast_context, symbol) return hover, true, true } @@ -188,7 +190,7 @@ get_hover_information :: proc(document: ^Document, position: common.Position) -> if position_in_node(base, position_context.position) { if resolved, ok := resolve_type_identifier(&ast_context, ident); ok { - resolved.signature = get_signature(&ast_context, &ident, resolved) + resolved.signature = get_signature(&ast_context, resolved) resolved.name = ident.name if resolved.type == .Variable { @@ -237,9 +239,11 @@ get_hover_information :: proc(document: ^Document, position: common.Position) -> for name, i in v.names { if name == field { if symbol, ok := resolve_type_expression(&ast_context, v.types[i]); ok { + symbol.type_name = symbol.name + symbol.type_pkg = symbol.pkg symbol.name = name symbol.pkg = selector.name - symbol.signature = get_signature(&ast_context, v.types[i].derived, symbol) + symbol.signature = get_signature(&ast_context, symbol) hover.contents = write_hover_content(&ast_context, symbol) return hover, true, true } @@ -269,7 +273,7 @@ get_hover_information :: proc(document: ^Document, position: common.Position) -> } } if resolved, ok := resolve_type_identifier(&ast_context, ident^); ok { - resolved.signature = get_signature(&ast_context, ident, resolved) + resolved.signature = get_signature(&ast_context, resolved) resolved.name = ident.name if resolved.type == .Variable { @@ -331,7 +335,7 @@ get_hover_information :: proc(document: ^Document, position: common.Position) -> } if resolved, ok := resolve_type_identifier(&ast_context, ident); ok { - resolved.signature = get_signature(&ast_context, &ident, resolved) + resolved.signature = get_signature(&ast_context, resolved) resolved.name = ident.name if resolved.type == .Variable { |