fmt: struct field comments on the same line
parent
0869b230fb
commit
de701ccfac
|
@ -675,6 +675,7 @@ pub:
|
|||
text string
|
||||
is_multi bool
|
||||
line_nr int
|
||||
pos token.Position
|
||||
}
|
||||
|
||||
pub struct ConcatExpr {
|
||||
|
|
|
@ -341,13 +341,25 @@ fn (f mut Fmt) struct_decl(node ast.StructDecl) {
|
|||
else if i == node.pub_mut_pos {
|
||||
f.writeln('pub mut:')
|
||||
}
|
||||
if field.comment.text != '' {
|
||||
if field.comment.text != '' && field.comment.pos.line_nr < field.pos.line_nr {
|
||||
// Comment on the previous line
|
||||
f.write('\t')
|
||||
f.comment(field.comment)
|
||||
}
|
||||
f.write('\t$field.name ')
|
||||
f.write(strings.repeat(` `, max - field.name.len))
|
||||
f.writeln(f.type_to_str(field.typ))
|
||||
f.write(f.type_to_str(field.typ))
|
||||
//f.write('// $field.pos.line_nr')
|
||||
if field.comment.text != '' && field.comment.pos.line_nr == field.pos.line_nr {
|
||||
// Same line comment
|
||||
f.write(' ')
|
||||
f.comment(field.comment)
|
||||
} else {
|
||||
//if field.comment.text != '' {
|
||||
//f.write (' // com linenr=$field.comment.pos.line_nr')
|
||||
//}
|
||||
f.writeln('')
|
||||
}
|
||||
}
|
||||
f.writeln('}\n')
|
||||
}
|
||||
|
@ -669,7 +681,7 @@ fn (f mut Fmt) or_expr(or_block ast.OrExpr) {
|
|||
|
||||
fn (f mut Fmt) comment(node ast.Comment) {
|
||||
if !node.text.contains('\n') {
|
||||
f.writeln('// $node.text')
|
||||
f.writeln('// $node.text')// $node.pos.line_nr')
|
||||
return
|
||||
}
|
||||
lines := node.text.split_into_lines()
|
||||
|
|
|
@ -341,11 +341,13 @@ pub fn (p mut Parser) check_comment() ast.Comment {
|
|||
}
|
||||
|
||||
pub fn (p mut Parser) comment() ast.Comment {
|
||||
pos := p.tok.position()
|
||||
text := p.tok.lit
|
||||
p.next()
|
||||
//p.next_with_comment()
|
||||
return ast.Comment{
|
||||
text: text
|
||||
pos: pos
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -559,9 +561,7 @@ fn (p mut Parser) struct_init(short_syntax bool) ast.StructInit {
|
|||
is_short_syntax := !(p.peek_tok.kind == .colon || p.tok.kind == .rcbr) // `Vec{a,b,c}`
|
||||
// p.warn(is_short_syntax.str())
|
||||
for p.tok.kind != .rcbr {
|
||||
if p.tok.kind == .comment {
|
||||
p.comment()
|
||||
}
|
||||
p.check_comment()
|
||||
mut field_name := ''
|
||||
if is_short_syntax {
|
||||
expr := p.expr(0)
|
||||
|
@ -580,9 +580,7 @@ fn (p mut Parser) struct_init(short_syntax bool) ast.StructInit {
|
|||
if p.tok.kind == .comma {
|
||||
p.check(.comma)
|
||||
}
|
||||
if p.tok.kind == .comment {
|
||||
p.comment()
|
||||
}
|
||||
p.check_comment()
|
||||
}
|
||||
node := ast.StructInit{
|
||||
typ: typ
|
||||
|
@ -1329,9 +1327,7 @@ fn (p mut Parser) array_init() ast.ArrayInit {
|
|||
if p.tok.kind == .comma {
|
||||
p.check(.comma)
|
||||
}
|
||||
if p.tok.kind == .comment {
|
||||
p.comment()
|
||||
}
|
||||
//p.check_comment()
|
||||
}
|
||||
line_nr := p.tok.line_nr
|
||||
p.check(.rsbr)
|
||||
|
|
Loading…
Reference in New Issue