diff options
| author | Adam Stankiewicz <sheerun@sher.pl> | 2015-10-10 17:25:38 +0200 | 
|---|---|---|
| committer | Adam Stankiewicz <sheerun@sher.pl> | 2015-10-10 17:25:38 +0200 | 
| commit | a0c79360edaad50966bdc1ac537d0b7ee048a515 (patch) | |
| tree | 295c1af426f8056da56373844ef1cf8ddd9e2211 /indent | |
| parent | 2d3b20bc68d43d23c7c66d56c84b509ad2fcd7ee (diff) | |
| download | vim-polyglot-a0c79360edaad50966bdc1ac537d0b7ee048a515.tar.gz vim-polyglot-a0c79360edaad50966bdc1ac537d0b7ee048a515.zip | |
Add qml support, closes #69
Diffstat (limited to 'indent')
| -rw-r--r-- | indent/qml.vim | 63 | 
1 files changed, 63 insertions, 0 deletions
| diff --git a/indent/qml.vim b/indent/qml.vim new file mode 100644 index 00000000..ea083707 --- /dev/null +++ b/indent/qml.vim @@ -0,0 +1,63 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'qml') == -1 +   +" Vim indent file +" Language:     QML +" Author:       Robert Kieffer +" URL: +" Last Change:  2010-03-27 (Happy Birthday, Dash!) +" +" Improved JavaScript indent script. + +" Indent script in place for this already? +if exists("b:did_indent") +  finish +endif +let b:did_indent = 1 + +setlocal indentexpr=GetJsIndent() +setlocal indentkeys=0{,0},0),0],:,!^F,o,O,e,*<Return>,=*/ + +" Only define functions once per session +if exists("*GetJsIndent") +  finish +endif + +" Clean up a line of code by removing trailing '//' comments, and trimming +" whitespace +function! Trim(line) +  return substitute(substitute(a:line, '// .*', '', ''), '^\s*\|\s*$', '', 'g') +endfunction + +function! GetJsIndent() +  let num = v:lnum +  let line = Trim(getline(num)) + +  let pnum = prevnonblank(num - 1) +  if pnum == 0 +    return 0 +  endif +  let pline = Trim(getline(pnum)) + +  let ind = indent(pnum) + +  " bracket/brace/paren blocks +  if pline =~ '[{[(]$' +    let ind += &sw +  endif +  if line =~ '^[}\])]' +    let ind -= &sw +  endif + +  " '/*' comments +  if pline =~ '^/\*.*\*/' +    " no indent for single-line form +  elseif pline =~ '^/\*' +    let ind += 1 +  elseif pline =~ '^\*/' +    let ind -= 1 +  endif + +  return ind +endfunction + +endif | 
