patch 9.1.1342: Shebang filetype detection can be improved
Problem: Shebang filetype detection can be improved Solution: Improve detection logic (Eisuke Kawashima) Vim does not correctly detect filetype from - `#!/usr/bin/env --split-string=awk -f` - `#!/usr/bin/env -S -i awk -f` - `#!/usr/bin/env -S VAR= awk -f` So update the current detection logic to detect those cases. closes: #17199 Signed-off-by: Eisuke Kawashima <e-kwsm@users.noreply.github.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
bcd5995b40
commit
f102f4c2e8
7
runtime/autoload/dist/script.vim
vendored
7
runtime/autoload/dist/script.vim
vendored
@ -4,7 +4,7 @@ vim9script
|
||||
# Invoked from "scripts.vim" in 'runtimepath'
|
||||
#
|
||||
# Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
# Last Change: 2025 Jan 20
|
||||
# Last Change: 2025 Apr 24
|
||||
# Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
export def DetectFiletype()
|
||||
@ -26,8 +26,9 @@ def DetectFromHashBang(firstline: string)
|
||||
# "#!/usr/bin/bash" to make matching easier.
|
||||
# Recognize only a few {options} that are commonly used.
|
||||
if line1 =~ '^#!\s*\S*\<env\s'
|
||||
line1 = substitute(line1, '\S\+=\S\+', '', 'g')
|
||||
line1 = substitute(line1, '\(-[iS]\|--ignore-environment\|--split-string\)', '', '')
|
||||
line1 = substitute(line1, '\s\zs--split-string[ \t=]', '', '')
|
||||
line1 = substitute(line1, '\s\zs[A-Za-z0-9_]\+=\S*\ze\s', '', 'g')
|
||||
line1 = substitute(line1, '\s\zs\%(-[iS]\+\|--ignore-environment\)\ze\s', '', 'g')
|
||||
line1 = substitute(line1, '\<env\s\+', '', '')
|
||||
endif
|
||||
|
||||
|
Reference in New Issue
Block a user