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 split
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 ]

# multi line expression
is_foo = (true and false and true and false and true and false and true and false and true and false)

# 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'
'''This isn't convertible'''

# 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',
]

# issue #15032
if true
  if true
    if (
      true
      and true
      and false
    )
      message('Hello, world!')
    endif
  endif
endif

# issue #15019
if get_option('client')
  sources += files(
    'pypaste/client/plugins/pgz/__init__.py',
    'pypaste/client/plugins/zen/__init__.py',
    'pypaste/client/plugins/__init__.py',
    'pypaste/client/__init__.py',
    'pypaste/client/__main__.py',
  )

  dependencies += [ 'requests' ]
endif

# no final endline