0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00
vim/runtime/syntax/testdir/input/vim9_ex_let_heredoc.vim
Doug Kearns 274efcc7e6
runtime(vim): Update base-syntax, contain let-heredocs
Limit heredoc matches to assignment statements.  Matching these at the
top level is very slow.

closes: #17473

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-06-10 21:02:43 +02:00

299 lines
3.0 KiB
VimL

vim9script
# VIM_TEST_SETUP let g:vimsyn_folding = "h"
# VIM_TEST_SETUP setl fdc=2 fdl=99 fdm=syntax
var foo =<< END
line1
line2
END
var foo =<< END
line1
line2
END
var [foo, bar] =<< EOS
line1
line2
EOS
var [foo, bar] =<< EOS
line1
line2
EOS
var [foo,
\ bar] =<< EOS
line1
line2
EOS
var [foo,
\ bar] =<< EOS
line1
line2
EOS
# assignment
foo =<< END
line1
line2
END
foo =<< END
line1
line2
END
g:foo =<< END
line1
line2
END
g:foo =<< END
line1
line2
END
[foo, bar] =<< EOS
line1
line2
EOS
[foo, bar] =<< EOS
line1
line2
EOS
[foo,
\ bar] =<< EOS
line1
line2
EOS
[foo,
\ bar] =<< EOS
line1
line2
EOS
[g:foo, g:bar] =<< EOS
line1
line2
EOS
[g:foo, g:bar] =<< EOS
line1
line2
EOS
[g:foo,
\ g:bar] =<< EOS
line1
line2
EOS
[g:foo,
\ g:bar] =<< EOS
line1
line2
EOS
# typed
var foo: list<string> =<< END
line1
line2
END
var [foo: string, bar: string] =<< END
line1
line2
END
# assignment
# trim
var foo =<< trim END
line1
line2
END
var foo =<< trim END
line1
line2
END
# interpolation
var foo =<< eval END
line{1 + 0}
line{1 + 1}
END
var foo =<< eval END
line{1 + 0}
line{1 + 1}
END
var foo =<< trim eval END
line{1 + 0}
line{1 + 1}
END
var foo =<< trim eval END
line{1 + 0}
line{1 + 1}
END
# no interpolation (escaped { and })
var foo =<< eval END
line{{1 + 0}}
line{{1 + 1}}
END
var foo =<< eval END
line{{1 + 0}}
line{{1 + 1}}
END
var foo =<< trim eval END
line{{1 + 0}}
line{{1 + 1}}
END
var foo =<< trim eval END
line{{1 + 0}}
line{{1 + 1}}
END
# no interpolation
var foo =<< END
line{1 + 0}
line{1 + 1}
END
var foo =<< END
line{1 + 0}
line{1 + 1}
END
var foo =<< trim END
line{1 + 0}
line{1 + 1}
END
var foo =<< trim END
line{1 + 0}
line{1 + 1}
END
# end marker must not be followed by whitespace
# assert_equal(foo, ["END "])
var foo =<< END
END
END
# assert_equal(foo, [" END "])
var foo =<< END
END
END
# assert_equal(foo, ["END "])
var foo =<< trim END
END
END
# assert_equal(foo, ["END "])
var foo =<< trim END
END
END
# end marker must be vertically aligned with :var (if preceded by whitespace)
# assert_equal(foo, ["END"])
var foo =<< trim END
END
END
# assert_equal(foo, ["END"])
var foo =<< trim END
END
END
# assert_equal(foo, ["END "])
var foo =<< trim END
END
END
# assert_equal(foo, ["END"])
var foo =<< trim END
END
END
# assert_equal(foo, ["END "])
var foo =<< trim END
END
END
# assert_equal(foo, ["END"])
var foo =<< trim END
END
END
# assert_equal(foo, ["END "])
var foo =<< trim END
END
END
# assert_equal(foo, ["END "])
var foo =<< trim END
END
END
# assert_equal(foo, ["END"])
var foo =<< trim END
END
END
# assert_equal(foo, ["END"])
var foo =<< trim END
END
END
# end markers
var foo =<< !@#$%^&*()_+
line1
line2
!@#$%^&*()_+
var foo =<< 0!@#$%^&*()_+
line1
line2
0!@#$%^&*()_+
var foo =<< A!@#$%^&*()_+
line1
line2
A!@#$%^&*()_+
# error - leading lowercase character
var foo =<< a!@#$%^&*()_+
line1
line2
a!@#$%^&*()_+