vfmt: fix compilation; handle the case when fmt.tabs is not enough
parent
eb9448e59e
commit
8ea087f957
|
@ -141,8 +141,8 @@ fn main() {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn (foptions &FormatOptions) format_file(file string) {
|
fn (foptions &FormatOptions) format_file(file string) {
|
||||||
prefs := pref.new_preferences()
|
mut prefs := pref.new_preferences()
|
||||||
prefs.is_fmt = util.is_fmt()
|
prefs.is_fmt = util.is_fmt()
|
||||||
if foptions.is_verbose {
|
if foptions.is_verbose {
|
||||||
eprintln('vfmt2 running fmt.fmt over file: $file')
|
eprintln('vfmt2 running fmt.fmt over file: $file')
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,7 +39,7 @@ pub fn fmt(file ast.File, table &table.Table) string {
|
||||||
file: file
|
file: file
|
||||||
}
|
}
|
||||||
f.cur_mod = 'main'
|
f.cur_mod = 'main'
|
||||||
for i, stmt in file.stmts {
|
for stmt in file.stmts {
|
||||||
// TODO `if stmt is ast.Import`
|
// TODO `if stmt is ast.Import`
|
||||||
match stmt {
|
match stmt {
|
||||||
ast.Import {
|
ast.Import {
|
||||||
|
@ -69,7 +69,14 @@ fn (f mut Fmt) find_comment(line_nr int) {
|
||||||
*/
|
*/
|
||||||
pub fn (mut f Fmt) write(s string) {
|
pub fn (mut f Fmt) write(s string) {
|
||||||
if f.indent > 0 && f.empty_line {
|
if f.indent > 0 && f.empty_line {
|
||||||
f.out.write(tabs[f.indent])
|
if f.indent < tabs.len {
|
||||||
|
f.out.write(tabs[f.indent])
|
||||||
|
} else {
|
||||||
|
// too many indents, do it the slow way:
|
||||||
|
for i in 0 .. f.indent {
|
||||||
|
f.out.write('\t')
|
||||||
|
}
|
||||||
|
}
|
||||||
f.line_len += f.indent * 4
|
f.line_len += f.indent * 4
|
||||||
}
|
}
|
||||||
f.out.write(s)
|
f.out.write(s)
|
||||||
|
@ -208,7 +215,7 @@ fn (mut f Fmt) stmt(node ast.Stmt) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
f.indent++
|
f.indent++
|
||||||
for i, field in it.fields {
|
for field in it.fields {
|
||||||
name := field.name.after('.')
|
name := field.name.after('.')
|
||||||
f.write('$name ')
|
f.write('$name ')
|
||||||
f.write(strings.repeat(` `, max - field.name.len))
|
f.write(strings.repeat(` `, max - field.name.len))
|
||||||
|
@ -694,7 +701,7 @@ fn (mut f Fmt) expr(node ast.Expr) {
|
||||||
} else {
|
} else {
|
||||||
f.writeln('$name{')
|
f.writeln('$name{')
|
||||||
f.indent++
|
f.indent++
|
||||||
for i, field in it.fields {
|
for field in it.fields {
|
||||||
f.write('$field.name: ')
|
f.write('$field.name: ')
|
||||||
f.expr(field.expr)
|
f.expr(field.expr)
|
||||||
f.writeln('')
|
f.writeln('')
|
||||||
|
@ -886,7 +893,7 @@ fn (mut f Fmt) match_expr(it ast.MatchExpr) {
|
||||||
f.writeln(' {')
|
f.writeln(' {')
|
||||||
f.indent++
|
f.indent++
|
||||||
mut single_line := true
|
mut single_line := true
|
||||||
for i, branch in it.branches {
|
for branch in it.branches {
|
||||||
if branch.stmts.len > 1 {
|
if branch.stmts.len > 1 {
|
||||||
single_line = false
|
single_line = false
|
||||||
break
|
break
|
||||||
|
@ -907,7 +914,7 @@ fn (mut f Fmt) match_expr(it ast.MatchExpr) {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for i, branch in it.branches {
|
for branch in it.branches {
|
||||||
if branch.comment.text != '' {
|
if branch.comment.text != '' {
|
||||||
f.comment(branch.comment)
|
f.comment(branch.comment)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue