diff options
| author | Brad Lewis <22850972+BradLewis@users.noreply.github.com> | 2025-08-05 20:34:46 -0400 |
|---|---|---|
| committer | Brad Lewis <22850972+BradLewis@users.noreply.github.com> | 2025-08-09 13:28:11 -0400 |
| commit | 96c2fad666f5820db1455e15059959296392e97e (patch) | |
| tree | a8644282db84c46a9c818cd55dc68fc9915e8b90 /src/server/documentation.odin | |
| parent | 2c2c3052607fce94dce400eb47c60a05c7cc1048 (diff) | |
Add union align and kind to hover information
Diffstat (limited to 'src/server/documentation.odin')
| -rw-r--r-- | src/server/documentation.odin | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/server/documentation.odin b/src/server/documentation.odin index d7c3295..c572e79 100644 --- a/src/server/documentation.odin +++ b/src/server/documentation.odin @@ -210,6 +210,13 @@ get_signature :: proc(ast_context: ^AstContext, symbol: Symbol) -> string { } strings.write_string(&sb, "union") write_poly_list(&sb, v.poly, v.poly_names) + if v.kind != .Normal { + write_union_kind(&sb, v.kind) + } + if v.align != nil { + strings.write_string(&sb, " #align") + build_string_node(v.align, &sb, false) + } if len(v.types) == 0 { strings.write_string(&sb, " {}") return strings.to_string(sb) @@ -631,6 +638,17 @@ write_poly_list :: proc(sb: ^strings.Builder, poly: ^ast.Field_List, poly_names: } } +write_union_kind :: proc(sb: ^strings.Builder, kind: ast.Union_Type_Kind) { + #partial switch kind { + case .maybe: + strings.write_string(sb, " #maybe") + case .no_nil: + strings.write_string(sb, " #no_nil") + case .shared_nil: + strings.write_string(sb, " #shared_nil") + } +} + append_type_information :: proc( sb: ^strings.Builder, ast_context: ^AstContext, |