aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBrad Lewis <22850972+BradLewis@users.noreply.github.com>2025-08-17 12:57:30 -0400
committerBrad Lewis <22850972+BradLewis@users.noreply.github.com>2025-08-17 12:57:30 -0400
commit0eea8cc8a45a23e4645e11849f4726253a6d2905 (patch)
treee0395fedfeec8428f976b66ce6460166fb38baee /src
parent6e0968d764f4913521c6ceaa23d95ea64e18bf04 (diff)
Add distinct to hover info for distinct struct, enums, unions and bitfields
Diffstat (limited to 'src')
-rw-r--r--src/server/documentation.odin12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/server/documentation.odin b/src/server/documentation.odin
index 081ccf3..c7b9f0c 100644
--- a/src/server/documentation.odin
+++ b/src/server/documentation.odin
@@ -152,6 +152,9 @@ write_signature :: proc(sb: ^strings.Builder, ast_context: ^AstContext, symbol:
#partial switch v in symbol.value {
case SymbolEnumValue:
+ if .Distinct in symbol.flags {
+ strings.write_string(sb, "distinct ")
+ }
if len(v.names) == 0 {
write_indent(sb, depth)
strings.write_string(sb, "enum {}")
@@ -189,6 +192,9 @@ write_signature :: proc(sb: ^strings.Builder, ast_context: ^AstContext, symbol:
strings.write_string(sb, "}")
return
case SymbolStructValue:
+ if .Distinct in symbol.flags {
+ strings.write_string(sb, "distinct ")
+ }
if len(v.names) == 0 {
strings.write_string(sb, "struct {}")
if symbol.comment != "" {
@@ -199,6 +205,9 @@ write_signature :: proc(sb: ^strings.Builder, ast_context: ^AstContext, symbol:
write_struct_hover(sb, ast_context, v, depth)
return
case SymbolUnionValue:
+ if .Distinct in symbol.flags {
+ strings.write_string(sb, "distinct ")
+ }
strings.write_string(sb, "union")
write_poly_list(sb, v.poly, v.poly_names)
if v.kind != .Normal {
@@ -241,6 +250,9 @@ write_signature :: proc(sb: ^strings.Builder, ast_context: ^AstContext, symbol:
write_procedure_symbol_signature(sb, v, detailed_signature = true)
return
case SymbolBitFieldValue:
+ if .Distinct in symbol.flags {
+ strings.write_string(sb, "distinct ")
+ }
strings.write_string(sb, "bit_field ")
build_string_node(v.backing_type, sb, false)
if len(v.names) == 0 {