aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
Diffstat (limited to 'src/server')
-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")
}