blob: b1b004d0a2d71e0fac492b22ba0af31dbfd9d70e [file] [log] [blame]
inzuo Jiang2d882102024-06-10 21:13:56 +02001" Vim indent file
2" Language: KDL
3" Author: Aram Drevekenin <aram@poor.dev>
4" Maintainer: Yinzuo Jiang <jiangyinzuo@foxmail.com>
Yinzuo Jiang2e3b2a82024-06-11 19:06:02 +02005" Last Change: 2024-06-11
inzuo Jiang2d882102024-06-10 21:13:56 +02006
7" Only load this indent file when no other was loaded.
8if exists("b:did_indent")
9 finish
10endif
11let b:did_indent = 1
12
13setlocal indentexpr=KdlIndent()
14let b:undo_indent = "setlocal indentexpr<"
15
16function! KdlIndent(...)
17 let line = getline(v:lnum)
18 let previousNum = prevnonblank(v:lnum - 1)
19 let previous = getline(previousNum)
20
21 if previous =~ "{" && previous !~ "}" && line !~ "}" && line !~ ":$"
Yinzuo Jiang2e3b2a82024-06-11 19:06:02 +020022 return indent(previousNum) + shiftwidth()
inzuo Jiang2d882102024-06-10 21:13:56 +020023 else
24 return indent(previousNum)
25 endif
26endfunction