aboutsummaryrefslogtreecommitdiff
path: root/vim/filetype.vim
diff options
context:
space:
mode:
authorTom Ryder <tom@sanctum.geek.nz>2018-06-06 18:04:42 +1200
committerTom Ryder <tom@sanctum.geek.nz>2018-06-06 18:04:42 +1200
commit01fd7b30cfcf77982c1b6fa9ba030424173dd744 (patch)
treebb70b743e029fa151247bf677510665998dfecf5 /vim/filetype.vim
parentMerge branch 'hotfix/v0.47.3' (diff)
parentRebuild dotfiles(7) manual page (diff)
downloaddotfiles-01fd7b30cfcf77982c1b6fa9ba030424173dd744.tar.gz
dotfiles-01fd7b30cfcf77982c1b6fa9ba030424173dd744.zip
Merge branch 'release/v0.48.0'v0.48.0
* release/v0.48.0: Rebuild dotfiles(7) manual page Bump VERSION Update README.md's Vim section Add custom scripts.vim Factor out password redaction into new plugin Spacing adjustments Abbreviate and invert j/gj,k/gk mappings Refactor vim/vimrc Consolidate .vimrc and .vim/filetype.vim Update markdown/autoformat.vim Correct a path in a VimL comment
Diffstat (limited to 'vim/filetype.vim')
-rw-r--r--vim/filetype.vim209
1 files changed, 208 insertions, 1 deletions
diff --git a/vim/filetype.vim b/vim/filetype.vim
index 2abe7831..a76321a2 100644
--- a/vim/filetype.vim
+++ b/vim/filetype.vim
@@ -4,8 +4,215 @@ if exists('g:did_load_filetypes')
endif
let g:did_load_filetypes = 1
-" Use only the rules in ftdetect
+" Use our own filetype detection rules
augroup filetypedetect
autocmd!
+
+ " AWK files
+ autocmd BufNewFile,BufRead
+ \ *.awk
+ \ setfiletype awk
+ " C files
+ autocmd BufNewFile,BufRead
+ \ *.c,*.h
+ \ setfiletype c
+ " C++ files
+ autocmd BufNewFile,BufRead
+ \ *.c++,*.cpp,*.cxx,*.hh
+ \ setfiletype cpp
+ " CSS files
+ autocmd BufNewFile,BufRead
+ \ *.css
+ \ setfiletype css
+ " CSV files
+ autocmd BufNewFile,BufRead
+ \ *.csv
+ \ setfiletype csv
+ " Diff and patch files
+ autocmd BufNewFile,BufRead
+ \ *.diff,*.patch,*.rej
+ \ setfiletype diff
+ " Git commit messages
+ autocmd BufNewFile,BufRead
+ \ COMMIT_EDITMSG,MERGE_MSG,TAG_EDITMSG
+ \ setfiletype gitcommit
+ " Git config files
+ autocmd BufNewFile,BufRead
+ \ *.git*/config,.gitconfig,.gitmodules
+ \ setfiletype gitconfig
+ " GnuPG configuration files
+ autocmd BufNewFile,BufRead
+ \ *gnupg/options,*gnupg/gpg.conf
+ \ setfiletype gpg
+ " HTML files
+ autocmd BufNewFile,BufRead
+ \ *.html,*.htm
+ \ setfiletype html
+ " Java files
+ autocmd BufNewFile,BufRead
+ \ *.java,*.jav
+ \ setfiletype java
+ " JSON files
+ autocmd BufNewFile,BufRead
+ \ *.js
+ \ setfiletype javascript
+ " JSON files
+ autocmd BufNewFile,BufRead
+ \ *.json
+ \ setfiletype json
+ " Lex files
+ autocmd BufNewFile,BufRead
+ \ *.l,*.lex
+ \ setfiletype lex
+ " Lua files
+ autocmd BufNewFile,BufRead
+ \ *.lua
+ \ setfiletype lua
+ " m4 files
+ autocmd BufNewFile,BufRead
+ \ *.m4
+ \ setfiletype m4
+ " Mail messages
+ autocmd BufNewFile,BufRead
+ \ *.msg,mutt-*-*-*
+ \ setfiletype mail
+ " Makefiles
+ autocmd BufNewFile,BufRead
+ \ Makefile,makefile
+ \ setfiletype make
+ " Markdown files
+ autocmd BufNewFile,BufRead
+ \ *.markdown,*.md
+ \ setfiletype markdown
+ " Add automatic commands to detect .muttrc files
+ autocmd BufNewFile,BufRead
+ \ Muttrc,.muttrc,*muttrc.d/*.rc
+ \ setfiletype muttrc
+ " Perl 5 files
+ autocmd BufNewFile,BufRead
+ \ *.pl,*.pm,*.t,Makefile.PL
+ \ setfiletype perl
+ " Perl 6 files
+ autocmd BufNewFile,BufRead
+ \ *.p6,*.pl6,*.pm6
+ \ setfiletype perl6
+ " PHP files
+ autocmd BufNewFile,BufRead
+ \ *.php
+ \ setfiletype php
+ " Perl 5 POD files
+ autocmd BufNewFile,BufRead
+ \ *.pod
+ \ setfiletype pod
+ " Perl 6 POD files
+ autocmd BufNewFile,BufRead
+ \ *.pod6
+ \ setfiletype pod6
+ " Python files
+ autocmd BufNewFile,BufRead
+ \ *.py
+ \ setfiletype python
+ " Readline configuration file
+ autocmd BufNewFile,BufRead
+ \ .inputrc,inputrc
+ \ setfiletype readline
+ " Remind files
+ autocmd BufNewFile,BufRead
+ \ *.rem,*.remind,.reminders
+ \ setfiletype remind
+ " Bash shell
+ autocmd BufNewFile,BufRead
+ \ *.bash,
+ \.bash_aliases,
+ \.bash_logout,
+ \.bash_profile,
+ \.bashrc,
+ \bash-fc-*,
+ \bash_profile,
+ \bashrc
+ \ let b:is_bash = 1
+ \ | setfiletype sh
+ " Korn shell
+ autocmd BufNewFile,BufRead
+ \ *.ksh,
+ \.kshrc,
+ \kshrc
+ \ let b:is_kornshell = 1
+ \ | setfiletype sh
+ " POSIX/Bourne shell
+ autocmd BufNewFile,BufRead
+ \ *.sh,
+ \.profile,
+ \.shinit,
+ \.shrc,
+ \.xinitrc,
+ \/etc/default/*,
+ \configure,
+ \profile,
+ \shinit,
+ \shrc,
+ \xinitrc
+ \ let b:is_posix = 1
+ \ | setfiletype sh
+ " sed files
+ autocmd BufNewFile,BufRead
+ \ *.sed
+ \ setfiletype sed
+ " tmux configuration files
+ autocmd BufNewFile,BufRead
+ \ .tmux.conf,tmux.conf
+ \ setfiletype tmux
+ " roff files
+ autocmd BufNewFile,BufRead
+ \ *.[1-9],*.[1-9]df
+ \ setfiletype nroff
+ " Tab-separated (TSV) files
+ autocmd BufNewFile,BufRead
+ \ *.tsv
+ \ setfiletype tsv
+ " VimL files
+ autocmd BufNewFile,BufRead
+ \ *.vim,vimrc,*[._]vimrc,exrc,*[._]exrc
+ \ setfiletype vim
+ " .viminfo files
+ autocmd BufNewFile,BufRead
+ \ .viminfo
+ \ setfiletype viminfo
+ " Add automatic commands to find Xresources subfiles
+ autocmd BufNewFile,BufRead
+ \ .Xresources,*/.Xresources.d/*
+ \ setfiletype xdefaults
+ " XHTML files
+ autocmd BufNewFile,BufRead
+ \ *.xhtml,*.xht
+ \ setfiletype xhtml
+ " XML files
+ autocmd BufNewFile,BufRead
+ \ *.xml
+ \ setfiletype xml
+ " Yacc files
+ autocmd BufNewFile,BufRead
+ \ *.y,*.yy
+ \ setfiletype yacc
+ " YAML files
+ autocmd BufNewFile,BufRead
+ \ *.yaml
+ \ setfiletype yaml
+ " Z shell files
+ autocmd BufNewFile,BufRead
+ \ *.zsh,.zprofile,zprofile,.zshrc,zshrc
+ \ setfiletype zsh
+
+ " Load any extra rules in ftdetect directories
runtime! ftdetect/*.vim
+
+ " 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
+ autocmd BufNewFile,BufRead,StdinReadPost
+ \ *
+ \ if !did_filetype()
+ \ | runtime scripts.vim
+ \ | endif
+
augroup END