diff options
author | Christian Clason <c.clason@uni-graz.at> | 2023-04-19 09:41:26 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-19 09:41:26 +0200 |
commit | 6d9f5b6bf0fc324b33ce01f74a6030c9271b1a01 (patch) | |
tree | d942589576d670c851119f7f90ad720f07d311a1 /runtime/lua/vim | |
parent | 95c6e1b7418e37530352418e93a18366acef6242 (diff) | |
download | rneovim-6d9f5b6bf0fc324b33ce01f74a6030c9271b1a01.tar.gz rneovim-6d9f5b6bf0fc324b33ce01f74a6030c9271b1a01.tar.bz2 rneovim-6d9f5b6bf0fc324b33ce01f74a6030c9271b1a01.zip |
vim-patch:9.0.1464: strace filetype detection is expensive (#23175)
Problem: Strace filetype detection is expensive.
Solution: Match with a cheap pattern first. (Federico Mengozzi,
closes vim/vim#12220)
https://github.com/vim/vim/commit/6e5a9f948221b52caaaf106079cb3430c4dd7c77
Co-authored-by: Federico Mengozzi <19249682+fedemengo@users.noreply.github.com>
Diffstat (limited to 'runtime/lua/vim')
-rw-r--r-- | runtime/lua/vim/filetype/detect.lua | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/runtime/lua/vim/filetype/detect.lua b/runtime/lua/vim/filetype/detect.lua index d1eabadc4a..94114ae7c3 100644 --- a/runtime/lua/vim/filetype/detect.lua +++ b/runtime/lua/vim/filetype/detect.lua @@ -1550,8 +1550,15 @@ local patterns_text = { ['^SNNS pattern definition file'] = 'snnspat', ['^SNNS result file'] = 'snnsres', ['^%%.-[Vv]irata'] = { 'virata', { start_lnum = 1, end_lnum = 5 } }, - ['[0-9:%.]* *execve%('] = 'strace', - ['^__libc_start_main'] = 'strace', + function(lines) + if + -- inaccurate fast match first, then use accurate slow match + (lines[1]:find('execve%(') and lines[1]:find('^[0-9:%.]* *execve%(')) + or lines[1]:find('^__libc_start_main') + then + return 'strace' + end + end, -- VSE JCL ['^\\* $$ JOB\\>'] = { 'vsejcl', { vim_regex = true } }, ['^// *JOB\\>'] = { 'vsejcl', { vim_regex = true } }, |