vfmt: fix indent level of commented match branches
parent
b7175b54eb
commit
df2749dd50
|
@ -17,6 +17,11 @@ const (
|
||||||
max_len = [0, 35, 85, 93, 100]
|
max_len = [0, 35, 85, 93, 100]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
enum CommentsLevel {
|
||||||
|
keep
|
||||||
|
indent
|
||||||
|
}
|
||||||
|
|
||||||
pub struct Fmt {
|
pub struct Fmt {
|
||||||
pub:
|
pub:
|
||||||
table &table.Table
|
table &table.Table
|
||||||
|
@ -316,14 +321,14 @@ pub fn (mut f Fmt) stmt(node ast.Stmt) {
|
||||||
}
|
}
|
||||||
name := it.name.after('.')
|
name := it.name.after('.')
|
||||||
f.writeln('enum $name {')
|
f.writeln('enum $name {')
|
||||||
f.comments(it.comments, false)
|
f.comments(it.comments, false, .indent)
|
||||||
for field in it.fields {
|
for field in it.fields {
|
||||||
f.write('\t$field.name')
|
f.write('\t$field.name')
|
||||||
if field.has_expr {
|
if field.has_expr {
|
||||||
f.write(' = ')
|
f.write(' = ')
|
||||||
f.expr(field.expr)
|
f.expr(field.expr)
|
||||||
}
|
}
|
||||||
f.comments(field.comments, true)
|
f.comments(field.comments, true, .indent)
|
||||||
f.writeln('')
|
f.writeln('')
|
||||||
}
|
}
|
||||||
f.writeln('}\n')
|
f.writeln('}\n')
|
||||||
|
@ -1101,14 +1106,18 @@ pub fn (mut f Fmt) comment(node ast.Comment) {
|
||||||
f.writeln('*/')
|
f.writeln('*/')
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn (mut f Fmt) comments(some_comments []ast.Comment, remove_last_new_line bool) {
|
pub fn (mut f Fmt) comments(some_comments []ast.Comment, remove_last_new_line bool, level CommentsLevel) {
|
||||||
for c in some_comments {
|
for c in some_comments {
|
||||||
if !f.out.last_n(1)[0].is_space() {
|
if !f.out.last_n(1)[0].is_space() {
|
||||||
f.write('\t')
|
f.write('\t')
|
||||||
}
|
}
|
||||||
f.indent++
|
if level == .indent {
|
||||||
|
f.indent++
|
||||||
|
}
|
||||||
f.comment(c)
|
f.comment(c)
|
||||||
f.indent--
|
if level == .indent {
|
||||||
|
f.indent--
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if remove_last_new_line {
|
if remove_last_new_line {
|
||||||
f.remove_new_line()
|
f.remove_new_line()
|
||||||
|
@ -1334,7 +1343,9 @@ pub fn (mut f Fmt) match_expr(it ast.MatchExpr) {
|
||||||
f.writeln('}')
|
f.writeln('}')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
f.comments(branch.post_comments, false)
|
if branch.post_comments.len > 0 {
|
||||||
|
f.comments(branch.post_comments, false, .keep)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
f.indent--
|
f.indent--
|
||||||
f.write('}')
|
f.write('}')
|
||||||
|
|
|
@ -0,0 +1,58 @@
|
||||||
|
module ast
|
||||||
|
|
||||||
|
pub fn (stmt Stmt) position() Position {
|
||||||
|
match stmt {
|
||||||
|
AssertStmt { return stmt.pos }
|
||||||
|
AssignStmt { return stmt.pos }
|
||||||
|
/*
|
||||||
|
// Attr {
|
||||||
|
// }
|
||||||
|
// Block {
|
||||||
|
// }
|
||||||
|
// BranchStmt {
|
||||||
|
// }
|
||||||
|
*/
|
||||||
|
Comment { return stmt.pos }
|
||||||
|
CompIf { return stmt.pos }
|
||||||
|
ConstDecl { return stmt.pos }
|
||||||
|
/*
|
||||||
|
// DeferStmt {
|
||||||
|
// }
|
||||||
|
*/
|
||||||
|
EnumDecl { return stmt.pos }
|
||||||
|
ExprStmt { return stmt.pos }
|
||||||
|
FnDecl { return stmt.pos }
|
||||||
|
ForCStmt { return stmt.pos }
|
||||||
|
ForInStmt { return stmt.pos }
|
||||||
|
ForStmt { return stmt.pos }
|
||||||
|
/*
|
||||||
|
// GlobalDecl {
|
||||||
|
// }
|
||||||
|
// GoStmt {
|
||||||
|
// }
|
||||||
|
// GotoLabel {
|
||||||
|
// }
|
||||||
|
// GotoStmt {
|
||||||
|
// }
|
||||||
|
// HashStmt {
|
||||||
|
// }
|
||||||
|
*/
|
||||||
|
Import { return stmt.pos }
|
||||||
|
/*
|
||||||
|
// InterfaceDecl {
|
||||||
|
// }
|
||||||
|
// Module {
|
||||||
|
// }
|
||||||
|
*/
|
||||||
|
Return { return stmt.pos }
|
||||||
|
StructDecl { return stmt.pos }
|
||||||
|
/*
|
||||||
|
// TypeDecl {
|
||||||
|
// }
|
||||||
|
// UnsafeStmt {
|
||||||
|
// }
|
||||||
|
*/
|
||||||
|
//
|
||||||
|
else { return Position{} }
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue