diff options
author | Adam Stankiewicz <sheerun@sher.pl> | 2020-08-18 15:53:18 +0200 |
---|---|---|
committer | Adam Stankiewicz <sheerun@sher.pl> | 2020-08-18 15:53:18 +0200 |
commit | 00015bd10507181797dd74cbba375f9e88c61e51 (patch) | |
tree | e594b99f168aacf6cba65e53b6410caeed3bbab9 /indent/handlebars.vim | |
parent | d821de3142fc67592686cba3f09ce91eac7cee0d (diff) | |
download | vim-polyglot-00015bd10507181797dd74cbba375f9e88c61e51.tar.gz vim-polyglot-00015bd10507181797dd74cbba375f9e88c61e51.zip |
Migrate all ftdetect to linguist
Diffstat (limited to 'indent/handlebars.vim')
-rw-r--r-- | indent/handlebars.vim | 129 |
1 files changed, 0 insertions, 129 deletions
diff --git a/indent/handlebars.vim b/indent/handlebars.vim deleted file mode 100644 index fbff2fa0..00000000 --- a/indent/handlebars.vim +++ /dev/null @@ -1,129 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'handlebars') == -1 - -" Mustache & Handlebars syntax -" Language: Mustache, Handlebars -" Maintainer: Juvenn Woo <machese@gmail.com> -" Screenshot: http://imgur.com/6F408 -" Version: 3 -" Last Change: 26 Nov 2018 -" Remarks: based on eruby indent plugin by tpope -" References: -" [Mustache](http://github.com/defunkt/mustache) -" [Handlebars](https://github.com/wycats/handlebars.js) -" [ctemplate](http://code.google.com/p/google-ctemplate/) -" [ctemplate doc](http://google-ctemplate.googlecode.com/svn/trunk/doc/howto.html) -" [et](http://www.ivan.fomichev.name/2008/05/erlang-template-engine-prototype.html) - -if exists("b:did_indent_hbs") - finish -endif - -unlet! b:did_indent -setlocal indentexpr= - -runtime! indent/html.vim -unlet! b:did_indent - -" Force HTML indent to not keep state. -let b:html_indent_usestate = 0 - -if &l:indentexpr == '' - if &l:cindent - let &l:indentexpr = 'cindent(v:lnum)' - else - let &l:indentexpr = 'indent(prevnonblank(v:lnum-1))' - endif -endif -let b:handlebars_subtype_indentexpr = &l:indentexpr - -let b:did_indent = 1 -let b:did_indent_hbs = 1 - -setlocal indentexpr=GetHandlebarsIndent() -setlocal indentkeys=o,O,*<Return>,<>>,{,},0),0],o,O,!^F,=end,=else,=elsif,=rescue,=ensure,=when - -" Only define the function once. -if exists("*GetHandlebarsIndent") - finish -endif - -function! GetHandlebarsIndent(...) - " The value of a single shift-width - if exists('*shiftwidth') - let sw = shiftwidth() - else - let sw = &sw - endif - - if a:0 && a:1 == '.' - let v:lnum = line('.') - elseif a:0 && a:1 =~ '^\d' - let v:lnum = a:1 - endif - let vcol = col('.') - call cursor(v:lnum,1) - call cursor(v:lnum,vcol) - exe "let ind = ".b:handlebars_subtype_indentexpr - - " Workaround for Andy Wokula's HTML indent. This should be removed after - " some time, since the newest version is fixed in a different way. - if b:handlebars_subtype_indentexpr =~# '^HtmlIndent(' - \ && exists('b:indent') - \ && type(b:indent) == type({}) - \ && has_key(b:indent, 'lnum') - " Force HTML indent to not keep state - let b:indent.lnum = -1 - endif - let lnum = prevnonblank(v:lnum-1) - let prevLine = getline(lnum) - let currentLine = getline(v:lnum) - - " all indent rules only apply if the block opening/closing - " tag is on a separate line - - " indent after block {{#block - if prevLine =~# '\v\s*\{\{[#^].*\s*' - let ind = ind + sw - endif - " but not if the block ends on the same line - if prevLine =~# '\v\s*\{\{\#(.+)(\s+|\}\}).*\{\{\/\1' - let ind = ind - sw - endif - " unindent after block close {{/block}} - if currentLine =~# '\v^\s*\{\{\/\S*\}\}\s*' - let ind = ind - sw - endif - " indent after component block {{a-component - if prevLine =~# '\v\s*\{\{\w' - let ind = ind + sw - endif - " but not if the component block ends on the same line - if prevLine =~# '\v\s*\{\{\w(.+)\}\}' - let ind = ind - sw - endif - " unindent }} lines, and following lines if not inside a block expression - let savedPos = getpos('.') - if currentLine =~# '\v^\s*\}\}\s*$' || (currentLine !~# '\v^\s*\{\{\/' && prevLine =~# '\v^\s*[^\{\} \t]+\}\}\s*$') - let closingLnum = search('}}\s*$', 'Wbc', lnum) - let [openingLnum, col] = searchpairpos('{{', '', '}}', 'Wb') - if openingLnum > 0 && closingLnum > 0 - if strpart(getline(openingLnum), col - 1, 3) !~ '{{[#^]' - let ind = ind - sw - endif - else - call setpos('.', savedPos) - endif - endif - " unindent {{else}} - if currentLine =~# '\v^\s*\{\{else.*\}\}\s*$' - let ind = ind - sw - endif - " indent again after {{else}} - if prevLine =~# '\v^\s*\{\{else.*\}\}\s*$' - let ind = ind + sw - endif - - return ind -endfunction - -endif |