mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
The end marker must appear on line of its own without any trailing whitespace. Whitespace is incorrectly allowed before all end markers. Limiting this only to heredocs where "trim" was specified, and with the correct indent, is currently an intractable problem given that contained syntax groups (in this case :let) cannot be limited to start patterns. Highlight interpolated expressions when "eval" is specified. cloess: #15511 Signed-off-by: Doug Kearns <dougkearns@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
117 lines
1.3 KiB
VimL
117 lines
1.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
|
|
|
|
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
|
|
|