2019-03-04 03:28:35 -05:00
|
|
|
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'coffee-script') != -1
|
|
|
|
finish
|
|
|
|
endif
|
|
|
|
|
Add support for basic languages
coffee, cucumbeer, eruby, haml, haskell, javascript,
json, less, nginx, ocaml, ruby, sass, scss, slim,
stylus, textile, tmux
2013-09-12 10:17:03 -04:00
|
|
|
" Language: CoffeeScript
|
2014-11-10 20:37:21 -05:00
|
|
|
" Maintainer: Mick Koch <mick@kochm.co>
|
Add support for basic languages
coffee, cucumbeer, eruby, haml, haskell, javascript,
json, less, nginx, ocaml, ruby, sass, scss, slim,
stylus, textile, tmux
2013-09-12 10:17:03 -04:00
|
|
|
" URL: http://github.com/kchmck/vim-coffee-script
|
|
|
|
" License: WTFPL
|
|
|
|
|
|
|
|
" Load the coffee and html indent functions.
|
2013-11-02 18:27:57 -04:00
|
|
|
silent! unlet b:did_indent
|
Add support for basic languages
coffee, cucumbeer, eruby, haml, haskell, javascript,
json, less, nginx, ocaml, ruby, sass, scss, slim,
stylus, textile, tmux
2013-09-12 10:17:03 -04:00
|
|
|
runtime indent/coffee.vim
|
|
|
|
let s:coffeeIndentExpr = &l:indentexpr
|
|
|
|
|
|
|
|
" Load html last so it can overwrite coffee settings.
|
2013-11-02 18:27:57 -04:00
|
|
|
silent! unlet b:did_indent
|
Add support for basic languages
coffee, cucumbeer, eruby, haml, haskell, javascript,
json, less, nginx, ocaml, ruby, sass, scss, slim,
stylus, textile, tmux
2013-09-12 10:17:03 -04:00
|
|
|
runtime indent/html.vim
|
|
|
|
let s:htmlIndentExpr = &l:indentexpr
|
|
|
|
|
|
|
|
" Inject our wrapper indent function.
|
|
|
|
setlocal indentexpr=GetCoffeeHtmlIndent(v:lnum)
|
|
|
|
|
|
|
|
function! GetCoffeeHtmlIndent(curlinenum)
|
|
|
|
" See if we're inside a coffeescript block.
|
2017-02-02 15:16:29 -05:00
|
|
|
let scriptlnum = searchpair('<script [^>]*type=[''"]\?text/coffeescript[''"]\?[^>]*>', '',
|
Add support for basic languages
coffee, cucumbeer, eruby, haml, haskell, javascript,
json, less, nginx, ocaml, ruby, sass, scss, slim,
stylus, textile, tmux
2013-09-12 10:17:03 -04:00
|
|
|
\ '</script>', 'bWn')
|
|
|
|
let prevlnum = prevnonblank(a:curlinenum)
|
|
|
|
|
|
|
|
" If we're in the script block and the previous line isn't the script tag
|
|
|
|
" itself, use coffee indenting.
|
|
|
|
if scriptlnum && scriptlnum != prevlnum
|
|
|
|
exec 'return ' s:coffeeIndentExpr
|
|
|
|
endif
|
|
|
|
|
|
|
|
" Otherwise use html indenting.
|
|
|
|
exec 'return ' s:htmlIndentExpr
|
|
|
|
endfunction
|