fmt: combine simple attributes into a single line (#9120)
parent
208cabc994
commit
80356edd8c
|
@ -211,8 +211,7 @@ pub fn (mut a array) trim(index int) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// we manually inline this for single operations for performance without -prod
|
// we manually inline this for single operations for performance without -prod
|
||||||
[inline]
|
[inline; unsafe]
|
||||||
[unsafe]
|
|
||||||
fn (a array) get_unsafe(i int) voidptr {
|
fn (a array) get_unsafe(i int) voidptr {
|
||||||
unsafe {
|
unsafe {
|
||||||
return byteptr(a.data) + i * a.element_size
|
return byteptr(a.data) + i * a.element_size
|
||||||
|
@ -398,8 +397,7 @@ fn (a &array) slice_clone(start int, _end int) array {
|
||||||
}
|
}
|
||||||
|
|
||||||
// we manually inline this for single operations for performance without -prod
|
// we manually inline this for single operations for performance without -prod
|
||||||
[inline]
|
[inline; unsafe]
|
||||||
[unsafe]
|
|
||||||
fn (mut a array) set_unsafe(i int, val voidptr) {
|
fn (mut a array) set_unsafe(i int, val voidptr) {
|
||||||
unsafe { C.memcpy(byteptr(a.data) + a.element_size * i, val, a.element_size) }
|
unsafe { C.memcpy(byteptr(a.data) + a.element_size * i, val, a.element_size) }
|
||||||
}
|
}
|
||||||
|
|
|
@ -761,7 +761,7 @@ pub fn (mut f Fmt) struct_decl(node ast.StructDecl) {
|
||||||
has_attrs := field.attrs.len > 0
|
has_attrs := field.attrs.len > 0
|
||||||
if has_attrs {
|
if has_attrs {
|
||||||
f.write(strings.repeat(` `, field_align.max_type_len - field_types[i].len))
|
f.write(strings.repeat(` `, field_align.max_type_len - field_types[i].len))
|
||||||
f.inline_attrs(field.attrs)
|
f.single_line_attrs(field.attrs, inline: true)
|
||||||
}
|
}
|
||||||
if field.has_default_expr {
|
if field.has_default_expr {
|
||||||
mut align := default_expr_aligns[default_expr_align_i]
|
mut align := default_expr_aligns[default_expr_align_i]
|
||||||
|
@ -1098,24 +1098,43 @@ pub fn (mut f Fmt) or_expr(node ast.OrExpr) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn (mut f Fmt) attrs(attrs []table.Attr) {
|
pub fn (mut f Fmt) attrs(attrs []table.Attr) {
|
||||||
for attr in attrs {
|
mut sorted_attrs := attrs.clone()
|
||||||
|
// Sort the attributes. The ones with arguments come first.
|
||||||
|
sorted_attrs.sort(a.arg.len > b.arg.len)
|
||||||
|
for i, attr in sorted_attrs {
|
||||||
|
if attr.arg.len == 0 {
|
||||||
|
f.single_line_attrs(sorted_attrs[i..], {})
|
||||||
|
break
|
||||||
|
}
|
||||||
f.writeln('[$attr]')
|
f.writeln('[$attr]')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn (mut f Fmt) inline_attrs(attrs []table.Attr) {
|
pub struct AttrsOptions {
|
||||||
|
inline bool
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn (mut f Fmt) single_line_attrs(attrs []table.Attr, options AttrsOptions) {
|
||||||
if attrs.len == 0 {
|
if attrs.len == 0 {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
f.write(' [')
|
mut sorted_attrs := attrs.clone()
|
||||||
for i, attr in attrs {
|
sorted_attrs.sort(a.name < b.name)
|
||||||
|
if options.inline {
|
||||||
|
f.write(' ')
|
||||||
|
}
|
||||||
|
f.write('[')
|
||||||
|
for i, attr in sorted_attrs {
|
||||||
if i > 0 {
|
if i > 0 {
|
||||||
f.write('; ')
|
f.write('; ')
|
||||||
}
|
}
|
||||||
f.write('$attr')
|
f.write('$attr')
|
||||||
}
|
}
|
||||||
f.write(']')
|
f.write(']')
|
||||||
|
if !options.inline {
|
||||||
|
f.writeln('')
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn inline_attrs_len(attrs []table.Attr) int {
|
fn inline_attrs_len(attrs []table.Attr) int {
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[export: 'JNICALL Java_io_vlang_V_callStaticMethods']
|
||||||
|
[tom: 'jerry']
|
||||||
|
[direct_array_access; inline; unsafe]
|
||||||
|
fn heavily_tagged() {}
|
|
@ -0,0 +1,6 @@
|
||||||
|
[inline]
|
||||||
|
[export: 'JNICALL Java_io_vlang_V_callStaticMethods']
|
||||||
|
[direct_array_access]
|
||||||
|
[unsafe]
|
||||||
|
[tom: 'jerry']
|
||||||
|
fn heavily_tagged() {}
|
|
@ -1,18 +1,23 @@
|
||||||
[inline]
|
|
||||||
[if debug]
|
|
||||||
[foo: bar]
|
|
||||||
[deprecated: 'use bar() instead']
|
[deprecated: 'use bar() instead']
|
||||||
|
[foo: bar]
|
||||||
|
[if debug; inline]
|
||||||
fn keep_attributes() {
|
fn keep_attributes() {
|
||||||
println('hi !')
|
println('hi !')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[bar: 'foo']
|
||||||
|
fn attr_with_arg() {}
|
||||||
|
|
||||||
|
['a_string_name']
|
||||||
|
fn name_only_attr() {}
|
||||||
|
|
||||||
struct User {
|
struct User {
|
||||||
age int
|
age int
|
||||||
nums []int
|
nums []int
|
||||||
last_name string [json: lastName]
|
last_name string [json: lastName]
|
||||||
is_registered bool [json: IsRegistered]
|
is_registered bool [json: IsRegistered]
|
||||||
typ int [json: 'type']
|
typ int [json: 'type']
|
||||||
pets string [raw; json: 'pet_animals']
|
pets string [json: 'pet_animals'; raw]
|
||||||
}
|
}
|
||||||
|
|
||||||
[_allow_multiple_values]
|
[_allow_multiple_values]
|
||||||
|
|
|
@ -78,8 +78,7 @@ pub fn (mut app App) user_repo_settings(username string, repository string) vweb
|
||||||
return app.html('username: $username | repository: $repository')
|
return app.html('username: $username | repository: $repository')
|
||||||
}
|
}
|
||||||
|
|
||||||
[post]
|
['/json_echo'; post]
|
||||||
['/json_echo']
|
|
||||||
pub fn (mut app App) json_echo() vweb.Result {
|
pub fn (mut app App) json_echo() vweb.Result {
|
||||||
// eprintln('>>>>> received http request at /json_echo is: $app.req')
|
// eprintln('>>>>> received http request at /json_echo is: $app.req')
|
||||||
app.set_content_type(app.req.headers['Content-Type'])
|
app.set_content_type(app.req.headers['Content-Type'])
|
||||||
|
|
Loading…
Reference in New Issue