From a6b0efd5301406adb44dfb12bfc73cf40f28b55b Mon Sep 17 00:00:00 2001 From: Adam Stankiewicz Date: Sat, 10 Oct 2015 17:15:29 +0200 Subject: Add glsl and kotlin languages, fixes #72, #71 --- indent/glsl.vim | 14 ++++++++++++++ indent/kotlin.vim | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 indent/glsl.vim create mode 100644 indent/kotlin.vim (limited to 'indent') 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 + +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, +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 -- cgit v1.2.3