diff options
Diffstat (limited to 'polyglot.vim')
-rw-r--r-- | polyglot.vim | 34 |
1 files changed, 11 insertions, 23 deletions
diff --git a/polyglot.vim b/polyglot.vim index e86e62ef..7c922d09 100644 --- a/polyglot.vim +++ b/polyglot.vim @@ -1,15 +1,9 @@ -""" autoload/polyglot.vim +""" autoload/polyglot/shebang.vim -" Line continuation is used here, remove 'C' from 'cpoptions' -let s:cpo_save = &cpo -set cpo&vim - -func! polyglot#Shebang() - if getline(1) =~# "^#!" - let ft = polyglot#ShebangFiletype() - if ft != "" - let &ft = ft - endif +func! polyglot#shebang#Detect() + let ft = s:Filetype() + if ft != "" + let &ft = ft endif if &ft == "" @@ -23,7 +17,7 @@ let s:r_hashbang = '^#!\s*\(\S\+\)\s*\(.*\)\s*' let s:r_envflag = '%(\S\+=\S\+\|-[iS]\|--ignore-environment\|--split-string\)' let s:r_env = '^\%(\' . s:r_envflag . '\s\+\)*\(\S\+\)' -func! polyglot#ShebangFiletype() +func! s:Filetype() let l:line1 = getline(1) if l:line1 !~# "^#!" @@ -60,12 +54,6 @@ func! polyglot#ShebangFiletype() endfor endfunc -" scripts/build generates heuristics functions here - -" Restore 'cpoptions' -let &cpo = s:cpo_save -unlet s:cpo_save - """ ftdetect/polyglot.vim " don't spam the user when Vim is started in Vi compatibility mode @@ -167,11 +155,11 @@ augroup filetypedetect " scripts/build inserts here filetype detection autocommands -au! BufNewFile,BufRead,StdinReadPost * if expand("<afile>") !~ g:ft_ignore_pat | - \ call polyglot#Shebang() | endif +au! BufNewFile,BufRead,StdinReadPost * if expand("<afile>:e") == "" | + \ call polyglot#shebang#Detect() | endif -au BufEnter * if &ft == "" && expand("<afile>") !~ g:ft_ignore_pat | - \ call s:Observe('Shebang') | endif +au BufEnter * if &ft == "" && expand("<afile>:e") == "" | + \ call s:Observe('shebang#Detect') | endif augroup END @@ -298,7 +286,7 @@ if !has_key(s:disabled_packages, 'autoindent') if s:guess(getline(1, 32)) return endif - let pattern = sleuth#GlobForFiletype(&filetype) + let pattern = polyglot#sleuth#GlobForFiletype(&filetype) if len(pattern) == 0 return endif |