aboutsummaryrefslogtreecommitdiff
path: root/src/server/documentation.odin
diff options
context:
space:
mode:
authorBrad Lewis <22850972+BradLewis@users.noreply.github.com>2025-08-05 20:34:46 -0400
committerBrad Lewis <22850972+BradLewis@users.noreply.github.com>2025-08-09 13:28:11 -0400
commit96c2fad666f5820db1455e15059959296392e97e (patch)
treea8644282db84c46a9c818cd55dc68fc9915e8b90 /src/server/documentation.odin
parent2c2c3052607fce94dce400eb47c60a05c7cc1048 (diff)
Add union align and kind to hover information
Diffstat (limited to 'src/server/documentation.odin')
-rw-r--r--src/server/documentation.odin18
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,