mirror of
https://github.com/vim/vim
synced 2025-05-02 22:37:47 +02:00
The end marker is not required to match the indent of :let when "trim" is specified, it may also appear without leading whitespace as normal. closes: #15564 Signed-off-by: Doug Kearns <dougkearns@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
196 lines
2.3 KiB
VimL
196 lines
2.3 KiB
VimL
" Vim :let heredoc command
|
|
" VIM_TEST_SETUP let g:vimsyn_folding = "h"
|
|
" VIM_TEST_SETUP setl fdc=2 fdl=99 fdm=syntax
|
|
|
|
|
|
let foo =<< END
|
|
line1
|
|
line2
|
|
END
|
|
|
|
let foo =<< END
|
|
line1
|
|
line2
|
|
END
|
|
|
|
|
|
" trim
|
|
|
|
let foo =<< trim END
|
|
line1
|
|
line2
|
|
END
|
|
|
|
let foo =<< trim END
|
|
line1
|
|
line2
|
|
END
|
|
|
|
|
|
" interpolation
|
|
|
|
let foo =<< eval END
|
|
line{1 + 0}
|
|
line{1 + 1}
|
|
END
|
|
|
|
let foo =<< eval END
|
|
line{1 + 0}
|
|
line{1 + 1}
|
|
END
|
|
|
|
let foo =<< trim eval END
|
|
line{1 + 0}
|
|
line{1 + 1}
|
|
END
|
|
|
|
let foo =<< trim eval END
|
|
line{1 + 0}
|
|
line{1 + 1}
|
|
END
|
|
|
|
" no interpolation (escaped { and })
|
|
|
|
let foo =<< eval END
|
|
line{{1 + 0}}
|
|
line{{1 + 1}}
|
|
END
|
|
|
|
let foo =<< eval END
|
|
line{{1 + 0}}
|
|
line{{1 + 1}}
|
|
END
|
|
|
|
let foo =<< trim eval END
|
|
line{{1 + 0}}
|
|
line{{1 + 1}}
|
|
END
|
|
|
|
let foo =<< trim eval END
|
|
line{{1 + 0}}
|
|
line{{1 + 1}}
|
|
END
|
|
|
|
|
|
" no interpolation
|
|
|
|
let foo =<< END
|
|
line{1 + 0}
|
|
line{1 + 1}
|
|
END
|
|
|
|
let foo =<< END
|
|
line{1 + 0}
|
|
line{1 + 1}
|
|
END
|
|
|
|
let foo =<< trim END
|
|
line{1 + 0}
|
|
line{1 + 1}
|
|
END
|
|
|
|
let foo =<< trim END
|
|
line{1 + 0}
|
|
line{1 + 1}
|
|
END
|
|
|
|
|
|
" end marker must not be followed by whitespace
|
|
|
|
" assert_equal(foo, ["END "])
|
|
let foo =<< END
|
|
END
|
|
END
|
|
|
|
" assert_equal(foo, [" END "])
|
|
let foo =<< END
|
|
END
|
|
END
|
|
|
|
" assert_equal(foo, ["END "])
|
|
let foo =<< trim END
|
|
END
|
|
END
|
|
|
|
" assert_equal(foo, ["END "])
|
|
let foo =<< trim END
|
|
END
|
|
END
|
|
|
|
|
|
" end marker must be vertically aligned with :let (if preceded by whitespace)
|
|
|
|
" assert_equal(foo, ["END"])
|
|
let foo =<< trim END
|
|
END
|
|
END
|
|
|
|
" assert_equal(foo, ["END"])
|
|
let foo =<< trim END
|
|
END
|
|
END
|
|
|
|
" assert_equal(foo, ["END "])
|
|
let foo =<< trim END
|
|
END
|
|
END
|
|
|
|
" assert_equal(foo, ["END"])
|
|
let foo =<< trim END
|
|
END
|
|
END
|
|
|
|
" assert_equal(foo, ["END "])
|
|
let foo =<< trim END
|
|
END
|
|
END
|
|
|
|
" assert_equal(foo, ["END"])
|
|
let foo =<< trim END
|
|
END
|
|
END
|
|
|
|
" assert_equal(foo, ["END "])
|
|
let foo =<< trim END
|
|
END
|
|
END
|
|
|
|
" assert_equal(foo, ["END "])
|
|
let foo =<< trim END
|
|
END
|
|
END
|
|
|
|
" assert_equal(foo, ["END"])
|
|
let foo =<< trim END
|
|
END
|
|
END
|
|
|
|
" assert_equal(foo, ["END"])
|
|
let foo =<< trim END
|
|
END
|
|
END
|
|
|
|
|
|
" end markers
|
|
|
|
let foo =<< !@#$%^&*()_+
|
|
line1
|
|
line2
|
|
!@#$%^&*()_+
|
|
|
|
let foo =<< 0!@#$%^&*()_+
|
|
line1
|
|
line2
|
|
0!@#$%^&*()_+
|
|
|
|
let foo =<< A!@#$%^&*()_+
|
|
line1
|
|
line2
|
|
A!@#$%^&*()_+
|
|
|
|
" error - leading lowercase character
|
|
let foo =<< a!@#$%^&*()_+
|
|
line1
|
|
line2
|
|
a!@#$%^&*()_+
|
|
|