Skip to content

Commit c69dfef

Browse files
authored
fmt: cleanup fields comments alignment and add ignore_newline config (#22027)
1 parent ac3045b commit c69dfef

File tree

11 files changed

+130
-102
lines changed

11 files changed

+130
-102
lines changed

examples/gg/path_finding_algorithm_visualizer/aStar.v

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -76,15 +76,15 @@ fn main() {
7676

7777
// setting values of app
7878
app.gg = gg.new_context(
79-
bg_color: gx.black // background color
80-
width: window_width // window width
79+
bg_color: gx.black // background color
80+
width: window_width // window width
8181
height: window_height // window height
82-
create_window: true // this will create a different window
82+
create_window: true // this will create a different window
8383
window_title: 'A* Path finding algorithm visusalizer' // title of the window
84-
frame_fn: frame // this is frame function update the frame
85-
event_fn: on_event // it calls on every event
84+
frame_fn: frame // this is frame function update the frame
85+
event_fn: on_event // it calls on every event
8686
init_fn: init_images // run at start of application
87-
user_data: app // store user data
87+
user_data: app // store user data
8888
)
8989
mut grid := initialise_grid() // initialize the grid variable and populate the matrix with each cell as empty
9090
app.grid = grid // set grid to app attribute so you can access it by just passing app variable or with method of app

vlib/builtin/string_interpolation.v

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -190,12 +190,12 @@ fn (data &StrIntpData) process_str_intp_data(mut sb strings.Builder) {
190190
sign_set := sign == 1
191191

192192
mut bf := strconv.BF_param{
193-
pad_ch: pad_ch // padding char
194-
len0: len0_set // default len for whole the number or string
195-
len1: len1_set // number of decimal digits, if needed
196-
positive: true // mandatory: the sign of the number passed
197-
sign_flag: sign_set // flag for print sign as prefix in padding
198-
align: .left // alignment of the string
193+
pad_ch: pad_ch // padding char
194+
len0: len0_set // default len for whole the number or string
195+
len1: len1_set // number of decimal digits, if needed
196+
positive: true // mandatory: the sign of the number passed
197+
sign_flag: sign_set // flag for print sign as prefix in padding
198+
align: .left // alignment of the string
199199
rm_tail_zero: tail_zeros // false // remove the tail zeros from floats
200200
}
201201

vlib/encoding/csv/README_csv_reader.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -259,8 +259,8 @@ import encoding.csv
259259
fn main() {
260260
file_path := 'big2.csv'
261261
mut csvr := csv.csv_reader(
262-
file_path: file_path // path to the file CSV
263-
mem_buf_size: 1024 * 1024 * 64 // we set 64MByte of buffer for this file
262+
file_path: file_path // path to the file CSV
263+
mem_buf_size: 1024 * 1024 * 64 // we set 64MByte of buffer for this file
264264
end_line_len: csv.endline_crlf_len // we are using a windows text file
265265
)!
266266
// The data will be saved in this array
@@ -330,9 +330,9 @@ fn main() {
330330
mut csvr := csv.csv_reader(
331331
scr_buf: txt.str // string pointer
332332
scr_buf_len: txt.len // string length
333-
comment: `#` // line starting with # will be ignored
334-
quote: `'` // char used for quotes
335-
quote_remove: true // remove quotes from the cells
333+
comment: `#` // line starting with # will be ignored
334+
quote: `'` // char used for quotes
335+
quote_remove: true // remove quotes from the cells
336336
)!
337337
338338
// scan all rows, csvr.csv_map.len contain the valid

vlib/v/ast/ast.v

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -455,10 +455,11 @@ pub mut:
455455
// `field1: val1`
456456
pub struct StructInitField {
457457
pub:
458-
pos token.Pos
459-
name_pos token.Pos
460-
comments []Comment
461-
next_comments []Comment
458+
pos token.Pos
459+
name_pos token.Pos
460+
comments []Comment
461+
next_comments []Comment
462+
has_prev_newline bool
462463
pub mut:
463464
expr Expr // `val1`
464465
name string // 'field1'

vlib/v/fmt/align.v

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,26 @@ mut:
1010
}
1111

1212
@[params]
13-
struct AddInfoConfig {
13+
struct AlignConfig {
1414
pub:
15-
use_threshold bool
16-
threshold int = 25
15+
ignore_newline bool // ignore newline or comment
16+
use_threshold bool
17+
threshold int = 25
1718
}
1819

1920
struct FieldAlign {
21+
cfg AlignConfig
2022
mut:
2123
infos []AlignInfo
2224
cur_idx int
2325
}
2426

27+
fn new_field_align(cfg AlignConfig) FieldAlign {
28+
return FieldAlign{
29+
cfg: cfg
30+
}
31+
}
32+
2533
fn (mut fa FieldAlign) add_new_info(len int, line int) {
2634
fa.infos << AlignInfo{
2735
line_nr: line
@@ -30,24 +38,24 @@ fn (mut fa FieldAlign) add_new_info(len int, line int) {
3038
}
3139

3240
@[direct_array_access]
33-
fn (mut fa FieldAlign) add_info(len int, line int, cfg AddInfoConfig) {
41+
fn (mut fa FieldAlign) add_info(len int, line int) {
3442
if fa.infos.len == 0 {
3543
fa.add_new_info(len, line)
3644
return
3745
}
3846
i := fa.infos.len - 1
39-
if line - fa.infos[i].line_nr > 1 {
47+
if !fa.cfg.ignore_newline && line - fa.infos[i].line_nr > 1 {
4048
fa.add_new_info(len, line)
4149
return
4250
}
43-
if cfg.use_threshold {
51+
if fa.cfg.use_threshold {
4452
len_diff := if fa.infos[i].max_len >= len {
4553
fa.infos[i].max_len - len
4654
} else {
4755
len - fa.infos[i].max_len
4856
}
4957

50-
if len_diff >= cfg.threshold {
58+
if len_diff >= fa.cfg.threshold {
5159
fa.add_new_info(len, line)
5260
return
5361
}
@@ -64,7 +72,6 @@ fn (mut fa FieldAlign) max_len(line_nr int) int {
6472
}
6573
if fa.cur_idx < fa.infos.len {
6674
return fa.infos[fa.cur_idx].max_len
67-
} else {
68-
return 0
6975
}
76+
return 0
7077
}

vlib/v/fmt/fmt.v

Lines changed: 34 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1039,28 +1039,28 @@ pub fn (mut f Fmt) enum_decl(node ast.EnumDecl) {
10391039
f.writeln('enum ${name} {')
10401040
f.comments(node.comments, same_line: true, level: .indent)
10411041

1042-
mut value_aligns := FieldAlign{}
1043-
mut attr_aligns := FieldAlign{}
1044-
mut comment_aligns := FieldAlign{}
1042+
mut value_align := new_field_align()
1043+
mut attr_align := new_field_align()
1044+
mut comment_align := new_field_align()
10451045
for field in node.fields {
10461046
if field.has_expr {
1047-
value_aligns.add_info(field.name.len, field.pos.line_nr)
1047+
value_align.add_info(field.name.len, field.pos.line_nr)
10481048
}
10491049
attrs_len := inline_attrs_len(field.attrs)
10501050
if field.attrs.len > 0 {
10511051
if field.has_expr {
1052-
attr_aligns.add_info(field.expr.str().len + 2, field.pos.line_nr)
1052+
attr_align.add_info(field.expr.str().len + 2, field.pos.line_nr)
10531053
} else {
1054-
attr_aligns.add_info(field.name.len, field.pos.line_nr)
1054+
attr_align.add_info(field.name.len, field.pos.line_nr)
10551055
}
10561056
}
10571057
if field.comments.len > 0 {
10581058
if field.attrs.len > 0 {
1059-
comment_aligns.add_info(attrs_len, field.pos.line_nr)
1059+
comment_align.add_info(attrs_len, field.pos.line_nr)
10601060
} else if field.has_expr {
1061-
comment_aligns.add_info(field.expr.str().len + 2, field.pos.line_nr)
1061+
comment_align.add_info(field.expr.str().len + 2, field.pos.line_nr)
10621062
} else {
1063-
comment_aligns.add_info(field.name.len, field.pos.line_nr)
1063+
comment_align.add_info(field.name.len, field.pos.line_nr)
10641064
}
10651065
}
10661066
}
@@ -1071,28 +1071,28 @@ pub fn (mut f Fmt) enum_decl(node ast.EnumDecl) {
10711071
}
10721072
f.write('\t${field.name}')
10731073
if field.has_expr {
1074-
f.write(strings.repeat(` `, value_aligns.max_len(field.pos.line_nr) - field.name.len))
1074+
f.write(strings.repeat(` `, value_align.max_len(field.pos.line_nr) - field.name.len))
10751075
f.write(' = ')
10761076
f.expr(field.expr)
10771077
}
10781078
attrs_len := inline_attrs_len(field.attrs)
10791079
if field.attrs.len > 0 {
10801080
if field.has_expr {
1081-
f.write(strings.repeat(` `, attr_aligns.max_len(field.pos.line_nr) - field.expr.str().len - 2))
1081+
f.write(strings.repeat(` `, attr_align.max_len(field.pos.line_nr) - field.expr.str().len - 2))
10821082
} else {
1083-
f.write(strings.repeat(` `, attr_aligns.max_len(field.pos.line_nr) - field.name.len))
1083+
f.write(strings.repeat(` `, attr_align.max_len(field.pos.line_nr) - field.name.len))
10841084
}
10851085
f.write(' ')
10861086
f.single_line_attrs(field.attrs, same_line: true)
10871087
}
10881088
// f.comments(field.comments, same_line: true, has_nl: false, level: .indent)
10891089
if field.comments.len > 0 {
10901090
if field.attrs.len > 0 {
1091-
f.write(strings.repeat(` `, comment_aligns.max_len(field.pos.line_nr) - attrs_len))
1091+
f.write(strings.repeat(` `, comment_align.max_len(field.pos.line_nr) - attrs_len))
10921092
} else if field.has_expr {
1093-
f.write(strings.repeat(` `, comment_aligns.max_len(field.pos.line_nr) - field.expr.str().len - 2))
1093+
f.write(strings.repeat(` `, comment_align.max_len(field.pos.line_nr) - field.expr.str().len - 2))
10941094
} else {
1095-
f.write(strings.repeat(` `, comment_aligns.max_len(field.pos.line_nr) - field.name.len))
1095+
f.write(strings.repeat(` `, comment_align.max_len(field.pos.line_nr) - field.name.len))
10961096
}
10971097
f.write(' ')
10981098
f.comments(field.comments, same_line: true, has_nl: false)
@@ -1396,27 +1396,27 @@ pub fn (mut f Fmt) interface_decl(node ast.InterfaceDecl) {
13961396
}
13971397
}
13981398

1399-
mut type_aligns := FieldAlign{}
1400-
mut comment_aligns := FieldAlign{}
1401-
mut default_expr_aligns := FieldAlign{}
1402-
mut attr_aligns := FieldAlign{}
1399+
mut type_align := new_field_align()
1400+
mut comment_align := new_field_align()
1401+
mut default_expr_align := new_field_align()
1402+
mut attr_align := new_field_align()
14031403
mut field_types := []string{cap: node.fields.len}
14041404

14051405
// Calculate the alignments first
1406-
f.calculate_alignment(node.fields, mut type_aligns, mut comment_aligns, mut default_expr_aligns, mut
1407-
attr_aligns, mut field_types)
1406+
f.calculate_alignment(node.fields, mut type_align, mut comment_align, mut default_expr_align, mut
1407+
attr_align, mut field_types)
14081408

14091409
// TODO: alignment, comments, etc.
14101410
for field in immut_fields {
1411-
f.interface_field(field, type_aligns.max_len(field.pos.line_nr))
1411+
f.interface_field(field, type_align.max_len(field.pos.line_nr))
14121412
}
14131413
for method in immut_methods {
14141414
f.interface_method(method)
14151415
}
14161416
if mut_fields.len + mut_methods.len > 0 {
14171417
f.writeln('mut:')
14181418
for field in mut_fields {
1419-
f.interface_field(field, type_aligns.max_len(field.pos.line_nr))
1419+
f.interface_field(field, type_align.max_len(field.pos.line_nr))
14201420
}
14211421
for method in mut_methods {
14221422
f.interface_method(method)
@@ -1432,8 +1432,8 @@ enum AlignState {
14321432
has_everything
14331433
}
14341434

1435-
pub fn (mut f Fmt) calculate_alignment(fields []ast.StructField, mut type_aligns FieldAlign, mut comment_aligns FieldAlign,
1436-
mut default_expr_aligns FieldAlign, mut attr_aligns FieldAlign, mut field_types []string) {
1435+
pub fn (mut f Fmt) calculate_alignment(fields []ast.StructField, mut type_align FieldAlign, mut comment_align FieldAlign,
1436+
mut default_expr_align FieldAlign, mut attr_align FieldAlign, mut field_types []string) {
14371437
// Calculate the alignments first
14381438
mut prev_state := AlignState.plain
14391439
for field in fields {
@@ -1442,45 +1442,36 @@ pub fn (mut f Fmt) calculate_alignment(fields []ast.StructField, mut type_aligns
14421442
field_types << ft
14431443
attrs_len := inline_attrs_len(field.attrs)
14441444
end_pos := field.pos.pos + field.pos.len
1445-
type_aligns.add_info(field.name.len, field.pos.line_nr)
1445+
type_align.add_info(field.name.len, field.pos.line_nr)
14461446
if field.has_default_expr {
1447-
default_expr_aligns.add_info(ft.len, field.pos.line_nr,
1448-
use_threshold: true
1449-
)
1447+
default_expr_align.add_info(ft.len, field.pos.line_nr)
14501448
}
14511449
if field.attrs.len > 0 {
1452-
attr_aligns.add_info(ft.len, field.pos.line_nr, use_threshold: true)
1450+
attr_align.add_info(ft.len, field.pos.line_nr)
14531451
}
14541452
for comment in field.comments {
14551453
if comment.pos.pos >= end_pos {
14561454
if comment.pos.line_nr == field.pos.line_nr {
14571455
if field.attrs.len > 0 {
14581456
if prev_state != AlignState.has_attributes {
1459-
comment_aligns.add_new_info(attrs_len, comment.pos.line_nr)
1457+
comment_align.add_new_info(attrs_len, comment.pos.line_nr)
14601458
} else {
1461-
comment_aligns.add_info(attrs_len, comment.pos.line_nr,
1462-
use_threshold: true
1463-
)
1459+
comment_align.add_info(attrs_len, comment.pos.line_nr)
14641460
}
14651461
prev_state = AlignState.has_attributes
14661462
} else if field.has_default_expr {
14671463
if prev_state != AlignState.has_default_expression {
1468-
comment_aligns.add_new_info(field.default_expr.str().len + 2,
1464+
comment_align.add_new_info(field.default_expr.str().len + 2,
14691465
comment.pos.line_nr)
14701466
} else {
1471-
comment_aligns.add_info(field.default_expr.str().len + 2,
1472-
comment.pos.line_nr,
1473-
use_threshold: true
1474-
)
1467+
comment_align.add_info(field.default_expr.str().len + 2, comment.pos.line_nr)
14751468
}
14761469
prev_state = AlignState.has_default_expression
14771470
} else {
14781471
if prev_state != AlignState.has_everything {
1479-
comment_aligns.add_new_info(ft.len, comment.pos.line_nr)
1472+
comment_align.add_new_info(ft.len, comment.pos.line_nr)
14801473
} else {
1481-
comment_aligns.add_info(ft.len, comment.pos.line_nr,
1482-
use_threshold: true
1483-
)
1474+
comment_align.add_info(ft.len, comment.pos.line_nr)
14841475
}
14851476
prev_state = AlignState.has_everything
14861477
}

0 commit comments

Comments
 (0)