blob: 0ab0f822c3170e18e978b65330e944d8a097663f [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim indent file
Bram Moolenaar6e649222021-10-04 21:32:54 +01002" Language: readline configuration file
3" Maintainer: Doug Kearns <dougkearns@gmail.com>
4" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
5" Last Change: 24 Sep 2021
Bram Moolenaar071d4272004-06-13 20:20:40 +00006
Bram Moolenaar071d4272004-06-13 20:20:40 +00007if exists("b:did_indent")
8 finish
9endif
Bram Moolenaar071d4272004-06-13 20:20:40 +000010let b:did_indent = 1
11
12setlocal indentexpr=GetReadlineIndent()
13setlocal indentkeys=!^F,o,O,=$else,=$endif
Bram Moolenaarbae0c162007-05-10 19:30:25 +000014setlocal nosmartindent
Bram Moolenaar071d4272004-06-13 20:20:40 +000015
Bram Moolenaar6e649222021-10-04 21:32:54 +010016let b:undo_indent = "setl inde< indk< si<"
17
Bram Moolenaar071d4272004-06-13 20:20:40 +000018if exists("*GetReadlineIndent")
19 finish
20endif
21
22function GetReadlineIndent()
23 let lnum = prevnonblank(v:lnum - 1)
Bram Moolenaar071d4272004-06-13 20:20:40 +000024 if lnum == 0
25 return 0
26 endif
27
Bram Moolenaar071d4272004-06-13 20:20:40 +000028 let ind = indent(lnum)
29
Bram Moolenaar42eeac32005-06-29 22:40:58 +000030 if getline(lnum) =~ '^\s*$\(if\|else\)\>'
Bram Moolenaar036986f2017-03-16 17:41:02 +010031 let ind = ind + shiftwidth()
Bram Moolenaar071d4272004-06-13 20:20:40 +000032 endif
33
Bram Moolenaar42eeac32005-06-29 22:40:58 +000034 if getline(v:lnum) =~ '^\s*$\(else\|endif\)\>'
Bram Moolenaar036986f2017-03-16 17:41:02 +010035 let ind = ind - shiftwidth()
Bram Moolenaar071d4272004-06-13 20:20:40 +000036 endif
37
38 return ind
39endfunction