vim-patch:8.1.0771: some shell filetype patterns end in a star

Problem:    Some shell filetype patterns end in a star.
Solution:   Make sure that patterns not ending in a star are preferred.
147e7d0cab
This commit is contained in:
Jan Edmund Lazo 2019-03-17 20:37:45 -04:00
parent 8394bf676b
commit fb95bb38b5
2 changed files with 35 additions and 7 deletions

View File

@ -1,7 +1,7 @@
" Vim functions for file type detection " Vim functions for file type detection
" "
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2017 Dec 05 " Last Change: 2019 Jan 18
" These functions are moved here from runtime/filetype.vim to make startup " These functions are moved here from runtime/filetype.vim to make startup
" faster. " faster.
@ -484,6 +484,10 @@ endfunc
" Called from filetype.vim and scripts.vim. " Called from filetype.vim and scripts.vim.
func dist#ft#SetFileTypeSH(name) func dist#ft#SetFileTypeSH(name)
if did_filetype()
" Filetype was already detected
return
endif
if expand("<amatch>") =~ g:ft_ignore_pat if expand("<amatch>") =~ g:ft_ignore_pat
return return
endif endif
@ -531,6 +535,10 @@ endfunc
" as used for Tcl. " as used for Tcl.
" Also called from scripts.vim, thus can't be local to this script. " Also called from scripts.vim, thus can't be local to this script.
func dist#ft#SetFileTypeShell(name) func dist#ft#SetFileTypeShell(name)
if did_filetype()
" Filetype was already detected
return
endif
if expand("<amatch>") =~ g:ft_ignore_pat if expand("<amatch>") =~ g:ft_ignore_pat
return return
endif endif
@ -551,6 +559,10 @@ func dist#ft#SetFileTypeShell(name)
endfunc endfunc
func dist#ft#CSH() func dist#ft#CSH()
if did_filetype()
" Filetype was already detected
return
endif
if exists("g:filetype_csh") if exists("g:filetype_csh")
call dist#ft#SetFileTypeShell(g:filetype_csh) call dist#ft#SetFileTypeShell(g:filetype_csh)
elseif &shell =~ "tcsh" elseif &shell =~ "tcsh"

View File

@ -1458,9 +1458,11 @@ au BufNewFile,BufRead sgml.catalog* call s:StarSetf('catalog')
" Shell scripts (sh, ksh, bash, bash2, csh); Allow .profile_foo etc. " Shell scripts (sh, ksh, bash, bash2, csh); Allow .profile_foo etc.
" Gentoo ebuilds and Arch Linux PKGBUILDs are actually bash scripts " Gentoo ebuilds and Arch Linux PKGBUILDs are actually bash scripts
au BufNewFile,BufRead .bashrc*,bashrc,bash.bashrc,.bash[_-]profile*,.bash[_-]logout*,.bash[_-]aliases*,bash-fc[-.]*,*.bash,*/{,.}bash[_-]completion{,.d,.sh}{,/*},*.ebuild,*.eclass,PKGBUILD* call dist#ft#SetFileTypeSH("bash") " NOTE: Patterns ending in a star are further down, these have lower priority.
au BufNewFile,BufRead .kshrc*,*.ksh call dist#ft#SetFileTypeSH("ksh") au BufNewFile,BufRead .bashrc,bashrc,bash.bashrc,.bash[_-]profile,.bash[_-]logout,.bash[_-]aliases,bash-fc[-.],*.bash,*/{,.}bash[_-]completion{,.d,.sh}{,/*},*.ebuild,*.eclass,PKGBUILD call dist#ft#SetFileTypeSH("bash")
au BufNewFile,BufRead */etc/profile,.profile*,*.sh,*.env call dist#ft#SetFileTypeSH(getline(1)) au BufNewFile,BufRead .kshrc,*.ksh call dist#ft#SetFileTypeSH("ksh")
au BufNewFile,BufRead */etc/profile,.profile,*.sh,*.env call dist#ft#SetFileTypeSH(getline(1))
" Shell script (Arch Linux) or PHP file (Drupal) " Shell script (Arch Linux) or PHP file (Drupal)
au BufNewFile,BufRead *.install au BufNewFile,BufRead *.install
@ -1471,14 +1473,14 @@ au BufNewFile,BufRead *.install
\ endif \ endif
" tcsh scripts " tcsh scripts
au BufNewFile,BufRead .tcshrc*,*.tcsh,tcsh.tcshrc,tcsh.login call dist#ft#SetFileTypeShell("tcsh") au BufNewFile,BufRead .tcshrc,*.tcsh,tcsh.tcshrc,tcsh.login call dist#ft#SetFileTypeShell("tcsh")
" csh scripts, but might also be tcsh scripts (on some systems csh is tcsh) " csh scripts, but might also be tcsh scripts (on some systems csh is tcsh)
au BufNewFile,BufRead .login*,.cshrc*,csh.cshrc,csh.login,csh.logout,*.csh,.alias call dist#ft#CSH() au BufNewFile,BufRead .login,.cshrc,csh.cshrc,csh.login,csh.logout,*.csh,.alias call dist#ft#CSH()
" Z-Shell script " Z-Shell script
au BufNewFile,BufRead .zprofile,*/etc/zprofile,.zfbfmarks setf zsh au BufNewFile,BufRead .zprofile,*/etc/zprofile,.zfbfmarks setf zsh
au BufNewFile,BufRead .zsh*,.zlog*,.zcompdump* call s:StarSetf('zsh') au BufNewFile,BufRead .zsh,.zlog,.zcompdump call s:StarSetf('zsh')
au BufNewFile,BufRead *.zsh setf zsh au BufNewFile,BufRead *.zsh setf zsh
" Scheme " Scheme
@ -2073,6 +2075,20 @@ au BufRead,BufNewFile *.rdf call dist#ft#Redif()
" Remind " Remind
au BufNewFile,BufRead .reminders* call s:StarSetf('remind') au BufNewFile,BufRead .reminders* call s:StarSetf('remind')
" Shell scripts ending in a star
au BufNewFile,BufRead .bashrc*,.bash[_-]profile*,.bash[_-]logout*,.bash[_-]aliases*,bash-fc[-.]*,,PKGBUILD* call dist#ft#SetFileTypeSH("bash")
au BufNewFile,BufRead .kshrc* call dist#ft#SetFileTypeSH("ksh")
au BufNewFile,BufRead .profile* call dist#ft#SetFileTypeSH(getline(1))
" tcsh scripts ending in a star
au BufNewFile,BufRead .tcshrc* call dist#ft#SetFileTypeShell("tcsh")
" csh scripts ending in a star
au BufNewFile,BufRead .login*,.cshrc* call dist#ft#CSH()
" Z-Shell script ending in a star
au BufNewFile,BufRead .zsh*,.zlog*,.zcompdump* call s:StarSetf('zsh')
" Vim script " Vim script
au BufNewFile,BufRead *vimrc* call s:StarSetf('vim') au BufNewFile,BufRead *vimrc* call s:StarSetf('vim')