aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Gavin <danielgavin5@hotmail.com>2021-04-22 00:55:25 +0200
committerDaniel Gavin <danielgavin5@hotmail.com>2021-04-22 00:55:25 +0200
commitab53900c95cb68dd4579dc1dca3926eb50340f9d (patch)
tree8a7e65fe7d08fb518531c9ec9052e986cbe85637
parent43589a56b7300c83bc206bff8ff8e35ed2365499 (diff)
check comma count in enum instead
-rw-r--r--core/odin/printer/printer.odin18
-rw-r--r--core/odin/printer/visit.odin2
2 files changed, 12 insertions, 8 deletions
diff --git a/core/odin/printer/printer.odin b/core/odin/printer/printer.odin
index ba031f2b1..1515ae4e2 100644
--- a/core/odin/printer/printer.odin
+++ b/core/odin/printer/printer.odin
@@ -486,13 +486,15 @@ align_var_decls :: proc(p: ^Printer) {
if tokenizer.Token_Kind.B_Keyword_Begin <= line.format_tokens[i].kind && line.format_tokens[i].kind <= tokenizer.Token_Kind.B_Keyword_End {
continue_flag = true;
}
-
}
if continue_flag {
continue;
}
+ fmt.println(line);
+ fmt.println(largest_rhs);
+
if line_index != current_line + 1 || typed != current_typed || not_mutable != current_not_mutable {
if p.config.align_style == .Align_On_Colon_And_Equals || !current_typed || current_not_mutable {
@@ -705,7 +707,7 @@ align_enum :: proc(p: ^Printer, index: int) {
}
largest := 0;
- eq_count := 0;
+ comma_count := 0;
for line, line_index in p.lines[brace_line + 1:] {
length := 0;
@@ -716,20 +718,21 @@ align_enum :: proc(p: ^Printer, index: int) {
}
if format_token.kind == .Eq {
- eq_count += 1;
largest = max(length, largest);
break;
+ } else if format_token.kind == .Comma {
+ comma_count += 1;
}
length += len(format_token.text) + format_token.spaces_before;
}
- if eq_count >= brace_token.parameter_count {
+ if comma_count >= brace_token.parameter_count {
break;
}
}
- eq_count = 0;
+ comma_count = 0;
for line, line_index in p.lines[brace_line + 1:] {
length := 0;
@@ -740,15 +743,16 @@ align_enum :: proc(p: ^Printer, index: int) {
}
if format_token.kind == .Eq {
- eq_count += 1;
line.format_tokens[i].spaces_before = largest - length + 1;
break;
+ } else if format_token.kind == .Comma {
+ comma_count += 1;
}
length += len(format_token.text) + format_token.spaces_before;
}
- if eq_count >= brace_token.parameter_count {
+ if comma_count >= brace_token.parameter_count {
break;
}
}
diff --git a/core/odin/printer/visit.odin b/core/odin/printer/visit.odin
index b07a75e06..4fcd4d76e 100644
--- a/core/odin/printer/visit.odin
+++ b/core/odin/printer/visit.odin
@@ -31,7 +31,7 @@ sort_attribute :: proc(s: ^[dynamic]^ast.Attribute) -> sort.Interface {
@(private)
comment_before_position :: proc(p: ^Printer, pos: tokenizer.Pos) -> bool {
-
+
if len(p.comments) <= p.latest_comment_index {
return false;
}