194 lines
8.5 KiB
VimL
194 lines
8.5 KiB
VimL
au BufRead,BufNewFile *.ino,*.pde set filetype=arduino
|
|
autocmd BufRead,BufNewFile *.blade.php set filetype=blade
|
|
autocmd BufNewFile,BufRead *.clj,*.cljs,*.edn setlocal filetype=clojure
|
|
autocmd BufNewFile,BufRead *.coffee set filetype=coffee
|
|
autocmd BufNewFile,BufRead *Cakefile set filetype=coffee
|
|
autocmd BufNewFile,BufRead *.coffeekup,*.ck set filetype=coffee
|
|
autocmd BufNewFile,BufRead *._coffee set filetype=coffee
|
|
function! s:DetectCoffee()
|
|
if getline(1) =~ '^#!.*\<coffee\>'
|
|
set filetype=coffee
|
|
endif
|
|
endfunction
|
|
autocmd BufNewFile,BufRead * call s:DetectCoffee()
|
|
au BufRead,BufNewFile *.csv,*.dat,*.tsv,*.tab set filetype=csv
|
|
autocmd BufNewFile,BufReadPost *.feature,*.story set filetype=cucumber
|
|
au BufNewFile,BufRead Dockerfile set filetype=dockerfile
|
|
au BufRead,BufNewFile *.ex,*.exs set filetype=elixir
|
|
au FileType elixir setl sw=2 sts=2 et iskeyword+=!,?
|
|
autocmd BufNewFile,BufRead *.em set filetype=ember-script
|
|
autocmd FileType ember-script set tabstop=2|set shiftwidth=2|set expandtab
|
|
autocmd BufNewFile,BufRead *.emblem set filetype=emblem
|
|
autocmd FileType emblem set tabstop=2|set shiftwidth=2|set expandtab
|
|
autocmd BufNewFile,BufRead *.git/{,modules/**/}{COMMIT_EDIT,TAG_EDIT,MERGE_,}MSG set ft=gitcommit
|
|
autocmd BufNewFile,BufRead *.git/config,.gitconfig,.gitmodules set ft=gitconfig
|
|
autocmd BufNewFile,BufRead */.config/git/config set ft=gitconfig
|
|
autocmd BufNewFile,BufRead *.git/modules/**/config set ft=gitconfig
|
|
autocmd BufNewFile,BufRead git-rebase-todo set ft=gitrebase
|
|
autocmd BufNewFile,BufRead .gitsendemail.* set ft=gitsendemail
|
|
autocmd BufNewFile,BufRead *.git/**
|
|
\ if getline(1) =~ '^\x\{40\}\>\|^ref: ' |
|
|
\ set ft=git |
|
|
\ endif
|
|
autocmd BufNewFile,BufRead,StdinReadPost *
|
|
\ if getline(1) =~ '^\(commit\|tree\|object\) \x\{40\}\>\|^tag \S\+$' |
|
|
\ set ft=git |
|
|
\ endif
|
|
autocmd BufNewFile,BufRead *
|
|
\ if getline(1) =~ '^From \x\{40\} Mon Sep 17 00:00:00 2001$' |
|
|
\ set filetype=gitsendemail |
|
|
\ endif
|
|
let s:current_fileformats = ''
|
|
let s:current_fileencodings = ''
|
|
function! s:gofiletype_pre()
|
|
let s:current_fileformats = &g:fileformats
|
|
let s:current_fileencodings = &g:fileencodings
|
|
set fileencodings=utf-8 fileformats=unix
|
|
setlocal filetype=go
|
|
endfunction
|
|
function! s:gofiletype_post()
|
|
let &g:fileformats = s:current_fileformats
|
|
let &g:fileencodings = s:current_fileencodings
|
|
endfunction
|
|
au BufNewFile *.go setlocal filetype=go fileencoding=utf-8 fileformat=unix
|
|
au BufRead *.go call s:gofiletype_pre()
|
|
au BufReadPost *.go call s:gofiletype_post()
|
|
autocmd BufNewFile,BufRead *.haml,*.hamlbars,*.hamlc setf haml
|
|
autocmd BufNewFile,BufRead *.sass setf sass
|
|
autocmd BufNewFile,BufRead *.scss setf scss
|
|
autocmd BufNewFile,BufRead *.hx setf haxe
|
|
autocmd BufNewFile,BufReadPost *.jade set filetype=jade
|
|
autocmd BufNewFile,BufRead *Spec.js,*_spec.js set filetype=jasmine.javascript syntax=jasmine
|
|
au BufNewFile,BufRead *.js setf javascript
|
|
au BufNewFile,BufRead *.jsm setf javascript
|
|
au BufNewFile,BufRead Jakefile setf javascript
|
|
fun! s:SelectJavascript()
|
|
if getline(1) =~# '^#!.*/bin/env\s\+node\>'
|
|
set ft=javascript
|
|
endif
|
|
endfun
|
|
au BufNewFile,BufRead * call s:SelectJavascript()
|
|
autocmd BufNewFile,BufRead *.json set filetype=json
|
|
augroup json_autocmd
|
|
autocmd!
|
|
autocmd FileType json setlocal autoindent
|
|
autocmd FileType json setlocal formatoptions=tcq2l
|
|
autocmd FileType json setlocal foldmethod=syntax
|
|
augroup END
|
|
au BufNewFile,BufRead *.ejs set filetype=jst
|
|
au BufNewFile,BufRead *.jst set filetype=jst
|
|
au BufNewFile,BufRead *.hamljs set filetype=jst
|
|
autocmd BufNewFile,BufRead *.less setf less
|
|
au BufNewFile,BufRead *.liquid set ft=liquid
|
|
au BufNewFile,BufRead */_layouts/*.html,*/_includes/*.html set ft=liquid
|
|
au BufNewFile,BufRead *.html,*.xml,*.textile
|
|
\ if getline(1) == '---' | set ft=liquid | endif
|
|
au BufNewFile,BufRead *.markdown,*.mkd,*.mkdn,*.md
|
|
\ if getline(1) == '---' |
|
|
\ let b:liquid_subtype = 'markdown' |
|
|
\ set ft=liquid |
|
|
\ endif
|
|
au BufNewFile,BufRead */templates/**.liquid,*/layout/**.liquid,*/snippets/**.liquid
|
|
\ let b:liquid_subtype = 'html' |
|
|
\ set ft=liquid |
|
|
autocmd BufNewFile,BufRead *.markdown,*.md,*.mdown,*.mkd,*.mkdn
|
|
\ if &ft =~# '^\%(conf\|modula2\)$' |
|
|
\ set ft=markdown |
|
|
\ else |
|
|
\ setf markdown |
|
|
\ endif
|
|
autocmd BufRead *.html
|
|
\ if getline(1) =~ '^\(%\|<[%&].*>\)' |
|
|
\ set filetype=mason |
|
|
\ endif
|
|
if has("autocmd")
|
|
au BufNewFile,BufRead *.mustache,*.handlebars,*.hbs,*.hogan,*.hulk,*.hjs set filetype=html syntax=mustache | runtime! ftplugin/mustache.vim ftplugin/mustache*.vim ftplugin/mustache/*.vim
|
|
endif
|
|
au BufRead,BufNewFile /etc/nginx/*,/usr/local/nginx/*,*/nginx/vhosts.d/*,nginx.conf if &ft == '' | setfiletype nginx | endif
|
|
au BufRead,BufNewFile *.cl set filetype=opencl
|
|
function! s:DetectPerl6()
|
|
let line_no = 1
|
|
let eof = line('$')
|
|
let in_pod = 0
|
|
while line_no <= eof
|
|
let line = getline(line_no)
|
|
let line_no = line_no + 1
|
|
if line =~ '^=\w'
|
|
let in_pod = 1
|
|
elseif line =~ '^=\%(end\|cut\)'
|
|
let in_pod = 0
|
|
elseif !in_pod
|
|
let line = substitute(line, '#.*', '', '')
|
|
if line =~ '^\s*$'
|
|
continue
|
|
endif
|
|
if line =~ '^\s*\%(use\s\+\)\=v6\%(\.\d\%(\.\d\)\=\)\=;'
|
|
set filetype=perl6 " we matched a 'use v6' declaration
|
|
elseif line =~ '^\s*\%(\%(my\|our\)\s\+\)\=\(module\|class\|role\|enum\|grammar\)'
|
|
set filetype=perl6 " we found a class, role, module, enum, or grammar declaration
|
|
endif
|
|
break " we either found what we needed, or we found a non-POD, non-comment,
|
|
" non-Perl 6 indicating line, so bail out
|
|
endif
|
|
endwhile
|
|
endfunction
|
|
autocmd BufReadPost *.pl,*.pm,*.t call s:DetectPerl6()
|
|
autocmd BufNew,BufRead *.nqp setf perl6
|
|
autocmd BufNewFile,BufRead *.proto setfiletype proto
|
|
au! BufRead,BufNewFile *.pp setfiletype puppet
|
|
au! BufRead,BufNewFile Puppetfile setfiletype ruby
|
|
function! s:setf(filetype) abort
|
|
if &filetype !=# a:filetype
|
|
let &filetype = a:filetype
|
|
endif
|
|
endfunction
|
|
au BufNewFile,BufRead *.rb,*.rbw,*.gemspec call s:setf('ruby')
|
|
au BufNewFile,BufRead *.builder,*.rxml,*.rjs,*.ruby call s:setf('ruby')
|
|
au BufNewFile,BufRead [rR]akefile,*.rake call s:setf('ruby')
|
|
au BufNewFile,BufRead [rR]antfile,*.rant call s:setf('ruby')
|
|
au BufNewFile,BufRead .irbrc,irbrc call s:setf('ruby')
|
|
au BufNewFile,BufRead .pryrc call s:setf('ruby')
|
|
au BufNewFile,BufRead *.ru call s:setf('ruby')
|
|
au BufNewFile,BufRead Capfile,*.cap call s:setf('ruby')
|
|
au BufNewFile,BufRead Gemfile call s:setf('ruby')
|
|
au BufNewFile,BufRead Guardfile,.Guardfile call s:setf('ruby')
|
|
au BufNewFile,BufRead Cheffile call s:setf('ruby')
|
|
au BufNewFile,BufRead Berksfile call s:setf('ruby')
|
|
au BufNewFile,BufRead [vV]agrantfile call s:setf('ruby')
|
|
au BufNewFile,BufRead .autotest call s:setf('ruby')
|
|
au BufNewFile,BufRead *.erb,*.rhtml call s:setf('eruby')
|
|
au BufNewFile,BufRead [tT]horfile,*.thor call s:setf('ruby')
|
|
au BufNewFile,BufRead *.rabl call s:setf('ruby')
|
|
au BufNewFile,BufRead *.jbuilder call s:setf('ruby')
|
|
au BufNewFile,BufRead Puppetfile call s:setf('ruby')
|
|
au BufNewFile,BufRead [Bb]uildfile call s:setf('ruby')
|
|
au BufNewFile,BufRead Appraisals call s:setf('ruby')
|
|
au BufNewFile,BufRead Podfile,*.podspec call s:setf('ruby')
|
|
au BufRead,BufNewFile *.rs set filetype=rust
|
|
au BufRead,BufNewFile *.sbt set filetype=sbt
|
|
fun! s:DetectScala()
|
|
if getline(1) == '#!/usr/bin/env scala'
|
|
set filetype=scala
|
|
endif
|
|
endfun
|
|
au BufRead,BufNewFile *.scala,*.sbt set filetype=scala
|
|
au BufRead,BufNewFile * call s:DetectScala()
|
|
autocmd BufNewFile,BufRead *.slim set filetype=slim
|
|
autocmd BufNewFile,BufReadPost *.styl set filetype=stylus
|
|
autocmd BufNewFile,BufReadPost *.stylus set filetype=stylus
|
|
autocmd BufNewFile,BufRead *.swift set filetype=swift
|
|
au BufNewFile,BufRead *.automount set filetype=systemd
|
|
au BufNewFile,BufRead *.mount set filetype=systemd
|
|
au BufNewFile,BufRead *.path set filetype=systemd
|
|
au BufNewFile,BufRead *.service set filetype=systemd
|
|
au BufNewFile,BufRead *.socket set filetype=systemd
|
|
au BufNewFile,BufRead *.swap set filetype=systemd
|
|
au BufNewFile,BufRead *.target set filetype=systemd
|
|
au BufNewFile,BufRead *.timer set filetype=systemd
|
|
au BufRead,BufNewFile *.textile set filetype=textile
|
|
autocmd BufNewFile,BufRead .tmux.conf*,tmux.conf* setf tmux
|
|
autocmd BufNewFile,BufRead *.toml set filetype=toml
|
|
autocmd BufNewFile,BufRead *.twig set filetype=twig
|
|
autocmd BufNewFile,BufRead *.html.twig set filetype=html.twig
|
|
autocmd BufNewFile,BufRead *.ts setlocal filetype=typescript
|