diff options
| author | Adam Stankiewicz <sheerun@sher.pl> | 2015-10-10 17:15:29 +0200 | 
|---|---|---|
| committer | Adam Stankiewicz <sheerun@sher.pl> | 2015-10-10 17:15:29 +0200 | 
| commit | a6b0efd5301406adb44dfb12bfc73cf40f28b55b (patch) | |
| tree | ff6ef884650dd709860cbcce29b44ec2cd1ffd9a /indent | |
| parent | 0de043adbc144510635702dadedc946e3c69f64e (diff) | |
| download | vim-polyglot-a6b0efd5301406adb44dfb12bfc73cf40f28b55b.tar.gz vim-polyglot-a6b0efd5301406adb44dfb12bfc73cf40f28b55b.zip | |
Add glsl and kotlin languages, fixes #72, #71
Diffstat (limited to 'indent')
| -rw-r--r-- | indent/glsl.vim | 14 | ||||
| -rw-r--r-- | indent/kotlin.vim | 54 | 
2 files changed, 68 insertions, 0 deletions
| diff --git a/indent/glsl.vim b/indent/glsl.vim new file mode 100644 index 00000000..b959da00 --- /dev/null +++ b/indent/glsl.vim @@ -0,0 +1,14 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'glsl') == -1 +   +" Language: OpenGL Shading Language +" Maintainer: Sergey Tikhomirov <sergey@tikhomirov.io> + +if exists("b:did_indent") +  finish +endif + +setlocal autoindent cindent + +" vim:set sts=2 sw=2 : + +endif diff --git a/indent/kotlin.vim b/indent/kotlin.vim new file mode 100644 index 00000000..20bc1ee9 --- /dev/null +++ b/indent/kotlin.vim @@ -0,0 +1,54 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'kotlin') == -1 +   +" Vim indent file +" Language: Kotlin +" Maintainer: Alexander Udalov +" Latest Revision: 27 June 2015 + +if exists("b:did_indent") +    finish +endif +let b:did_indent = 1 + +setlocal indentexpr=GetKotlinIndent() +setlocal indentkeys=0},0),!^F,o,O,e,<CR> +setlocal autoindent " TODO ? + +" TODO teach it to count bracket balance, etc. +function! GetKotlinIndent() +    if v:lnum == 0 +        return 0 +    endif + +    let prev_num = prevnonblank(v:lnum - 1) +    let prev = getline(prev_num) +    let prev_indent = indent(prev_num) +    let cur = getline(v:lnum) + +    let prev_open_paren = prev =~ '^.*(\s*$' +    let cur_close_paren = cur =~ '^\s*).*$' + +    if prev_open_paren && !cur_close_paren +        return prev_indent + 2 * &shiftwidth +    endif + +    if cur_close_paren && !prev_open_paren +        return prev_indent - 2 * &shiftwidth +    endif + + +    let prev_open_brace = prev =~ '^.*\({\|->\)\s*$' +    let cur_close_brace = cur =~ '^\s*}.*$' + +    if prev_open_brace && !cur_close_brace +        return prev_indent + &shiftwidth +    endif + +    if cur_close_brace && !prev_open_brace +        return prev_indent - &shiftwidth +    endif + +    return prev_indent +endfunction + +endif | 
