Mercurial > vim
view runtime/indent/kotlin.vim @ 34264:cce6b834635c v9.1.0071
patch 9.1.0071: Need a diff() Vim script function
Commit: https://github.com/vim/vim/commit/fa37835b8c0ed0f83952978fca4c332335ca7c46
Author: Yegappan Lakshmanan <yegappan@yahoo.com>
Date: Thu Feb 1 22:05:27 2024 +0100
patch 9.1.0071: Need a diff() Vim script function
Problem: Need a diff() Vim script function
Solution: Add the diff() Vim script function using the
xdiff internal diff library, add support for
"unified" and "indices" mode.
(Yegappan Lakshmanan)
fixes: #4241
closes: #12321
Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 01 Feb 2024 22:30:03 +0100 |
parents | c9c720360002 |
children |
line wrap: on
line source
" Vim indent file " Language: Kotlin " Maintainer: Alexander Udalov " URL: https://github.com/udalov/kotlin-vim " Last Change: 7 November 2021 " 2023 Sep 17 by Vim Project (undo_indent) if exists('b:did_indent') finish endif let b:did_indent = 1 setlocal cinoptions& cinoptions+=j1,L0 setlocal indentexpr=GetKotlinIndent() setlocal indentkeys=0},0),!^F,o,O,e,<CR> setlocal autoindent " TODO ? let b:undo_indent = "setlocal autoindent< cinoptions< indentexpr< indentkeys<" " 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) if cur =~ '^\s*\*' return cindent(v:lnum) endif if prev =~ '^\s*\*/' let st = prev while st > 1 if getline(st) =~ '^\s*/\*' break endif let st = st - 1 endwhile return indent(st) endif let prev_open_paren = prev =~ '^.*(\s*$' let cur_close_paren = cur =~ '^\s*).*$' let prev_open_brace = prev =~ '^.*\({\|->\)\s*$' let cur_close_brace = cur =~ '^\s*}.*$' if prev_open_paren && !cur_close_paren || prev_open_brace && !cur_close_brace return prev_indent + shiftwidth() endif if cur_close_paren && !prev_open_paren || cur_close_brace && !prev_open_brace return prev_indent - shiftwidth() endif return prev_indent endfunction