aboutsummaryrefslogtreecommitdiff
path: root/src/server/analysis.odin
diff options
context:
space:
mode:
authorBrad Lewis <22850972+BradLewis@users.noreply.github.com>2025-06-07 12:32:01 -0400
committerBrad Lewis <22850972+BradLewis@users.noreply.github.com>2025-06-07 20:53:26 -0400
commitd150a6be3806f5d21fbfaa4ebf3c889cbc974574 (patch)
treea8f4e9894800055b6578a4b26ff679a6c2c6b99f /src/server/analysis.odin
parent35cf5697e1420456d17e67749e96e7f82c164a3b (diff)
Align types in the hover text
Diffstat (limited to 'src/server/analysis.odin')
-rw-r--r--src/server/analysis.odin8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/server/analysis.odin b/src/server/analysis.odin
index d1ce01e..0ef14e7 100644
--- a/src/server/analysis.odin
+++ b/src/server/analysis.odin
@@ -3805,12 +3805,18 @@ get_signature :: proc(ast_context: ^AstContext, ident: ast.Ident, symbol: Symbol
if is_variable {
return strings.concatenate({pointer_prefix, symbol.name}, ast_context.allocator)
} else {
+ longestNameLen := 0
+ for name in v.names {
+ if len(name) > longestNameLen {
+ longestNameLen = len(name)
+ }
+ }
builder := strings.builder_make(ast_context.allocator)
strings.write_string(&builder, "struct {\n")
for i in 0..<len(v.names) {
strings.write_string(&builder, "\t")
strings.write_string(&builder, v.names[i])
- strings.write_string(&builder, ": ")
+ fmt.sbprintf(&builder, ":%*s", longestNameLen - len(v.names[i]) + 1, "")
common.build_string_node(v.types[i], &builder, false)
strings.write_string(&builder, ",\n")
}