diff options
| author | zeertzjq <zeertzjq@outlook.com> | 2025-12-24 08:45:02 +0800 |
|---|---|---|
| committer | zeertzjq <zeertzjq@outlook.com> | 2025-12-24 08:45:05 +0800 |
| commit | 081feae3a31f2165322d03eb4842a0f0dec90aec (patch) | |
| tree | 535e6b4639afedefbd74c342f5f660b772f5e569 /runtime/lua/vim/_core/stringbuffer.lua | |
| parent | dfcf03b1baf801460a35f40168889de67822f81f (diff) | |
vim-patch:aded554: runtime(make): Move target greedy match after $() to avoid region matching overflow
Partially revert 2a33b499a3d7f46dc307234847a6562cef6cf1d8, where all
syn match makeIdent are moved before syn region makeIdent to match $()
(reason: see https://github.com/vim/vim/pull/18403#issuecomment-3341161566)
However this results in https://github.com/vim/vim/issues/18890 ,
because lines like
`$(a) =`
will first start a region search beginning with `$(`
but then the whole target including `)` will be matched by
`syn match makeIdent "^ *[^:#= \t]*\s*="me=e-1`
which leaves the region search for the never-found `)` and let the
region matching overflow.
Same for
`$(a) ::`
`$(a) +=`
The solution is to move those greedy target match back, so they take
priority and prevents region match from happening.
fixes: vim/vim#18890
closes: vim/vim#18938
https://github.com/vim/vim/commit/aded55463a150bc9c77852f8e2c931535bedad3e
Co-authored-by: Yiyang Wu <xgreenlandforwyy@gmail.com>
Diffstat (limited to 'runtime/lua/vim/_core/stringbuffer.lua')
0 files changed, 0 insertions, 0 deletions
