aboutsummaryrefslogtreecommitdiff
path: root/vim/filetype.vim
diff options
context:
space:
mode:
authorTom Ryder <tom@sanctum.geek.nz>2018-07-09 15:47:14 +1200
committerTom Ryder <tom@sanctum.geek.nz>2018-07-09 15:47:14 +1200
commitb4a2c25d7e81c88077c408e7189fbc23e771fb36 (patch)
tree9eba14fcffd5084c8a1d1d08e4f37b80b0f30a46 /vim/filetype.vim
parentMerge branch 'release/v1.24.0' (diff)
parentBump VERSION (diff)
downloaddotfiles-b4a2c25d7e81c88077c408e7189fbc23e771fb36.tar.gz
dotfiles-b4a2c25d7e81c88077c408e7189fbc23e771fb36.zip
Merge branch 'release/v1.25.0'v1.25.0
* release/v1.25.0: Add extra Perl file detection rules Adjust comment on scripts.vim load Don't defer package load for matchit Clear b:current_compiler on unload Adjust comments in filetype.vim Specify which Vim to run in Makefile Tweak HTML indenting to indent after <p> Use !=# for &filetype match Revert :setglobal changes Overhaul ftplugin check, lint, tidy Change local leader back to comma Overhaul base after-ftplugins Remove Perl indent string again Tidy space and backspace mappings Upgrade and adjust config for diff_prune.vim Highlight overly long Git commit subjects as error Test 'modifiable' for spellchecking text/markdown Disable concealing when editing Vim help Add patterns for Vim help file detection Move shebang updating into filetype.vim Use stridx() for shebang check Correct filetype reset; blank, not NONE Correct a comment on shebang_update.vim
Diffstat (limited to 'vim/filetype.vim')
-rw-r--r--vim/filetype.vim23
1 files changed, 20 insertions, 3 deletions
diff --git a/vim/filetype.vim b/vim/filetype.vim
index ad2545a0..6bb52b96 100644
--- a/vim/filetype.vim
+++ b/vim/filetype.vim
@@ -42,6 +42,14 @@ function! s:StripRepeat()
endfunction
+" Check whether the first line was changed and looks like a shebang, and if
+" so, re-run filetype detection
+function! s:CheckShebang()
+ if line('''[') == 1 && stridx(getline(1), '#!') == 0
+ doautocmd filetypedetect BufRead
+ endif
+endfunction
+
" Use our own filetype detection rules
augroup filetypedetect
autocmd!
@@ -165,6 +173,8 @@ augroup filetypedetect
" Vim help files
autocmd BufNewFile,BufRead
\ ~/.vim/doc/?*.txt
+ \,*/vim-*/doc/?*.txt
+ \,*/*.vim/doc/?*.txt
\,$VIMRUNTIME/doc/?*.txt
\ setfiletype help
" HTML files
@@ -499,13 +509,20 @@ augroup filetypedetect
\| call s:StripRepeat()
\|endif
- " If we *still* don't have a filetype, run the scripts.vim file that will
- " examine actual file contents--but only the first one; don't load the
- " system one at all
+ " If we still don't have a filetype, run the scripts.vim file that performs
+ " cleverer checks including looking at actual file contents--but only my
+ " custom one; don't load the system one at all.
autocmd BufNewFile,BufRead,StdinReadPost
\ *
\ if !did_filetype()
\| runtime scripts.vim
\|endif
+ " If supported, on leaving insert mode, check whether the first line was
+ " changed and looks like a shebang format, and if so, re-run filetype
+ " detection
+ if v:version > 700
+ autocmd InsertLeave * call s:CheckShebang()
+ endif
+
augroup END