project('a')  # should be on one line


# List should be removed, and should be on one line
options_ini = 'options.ini'
f = files(options_ini, 'expected.meson', 'source.meson')

# This array should fit on one line
a1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]

# This array is too long and should be splitted
a2 = [
    2,
    3,
    4,
    5,
    6,
    7,
    8,
    9,
    10,
    11,
    12,
    13,
    14,
    15,
    16,
    17,
    18,
    19,
    20,
    21,
    22,
]

# space array
a3 = [1, 2, 3]

# no single comma function
fct = files(
    'meson.build',  # force multiline
)

# wide colon
d = {'a': 1, 'b': 2, 'c': 3}

# string conversion
'This is not a multiline'
'This is not a fstring'

# group arg value
arguments = [
    'a',
    '--opt_a',
    'opt_a_value',
    'b',
    'c',
    '--opt_d',
    '--opt_e',
    'opt_e_value',
    '--opt_f',
    '--opt_g',
    'opt_g_value',
    'other_value',
    'again',
    '--x',
]

# no final endline
