xref: /vim-8.2.3635/runtime/indent/eterm.vim (revision 6e649224)
1071d4279SBram Moolenaar" Vim indent file
2071d4279SBram Moolenaar" Language:		Eterm configuration file
3*6e649224SBram Moolenaar" Maintainer:		Doug Kearns <[email protected]>
4214641f7SBram Moolenaar" Previous Maintainer:	Nikolai Weibull <[email protected]>
5*6e649224SBram Moolenaar" Last Change:		24 Sep 2021
6071d4279SBram Moolenaar
7071d4279SBram Moolenaarif exists("b:did_indent")
8071d4279SBram Moolenaar  finish
9071d4279SBram Moolenaarendif
10071d4279SBram Moolenaarlet b:did_indent = 1
11071d4279SBram Moolenaar
12071d4279SBram Moolenaarsetlocal indentexpr=GetEtermIndent()
13071d4279SBram Moolenaarsetlocal indentkeys=!^F,o,O,=end
14933eb39dSBram Moolenaarsetlocal nosmartindent
15071d4279SBram Moolenaar
16*6e649224SBram Moolenaarlet b:undo_indent = "setl inde< indk< si<"
17*6e649224SBram Moolenaar
18071d4279SBram Moolenaarif exists("*GetEtermIndent")
19071d4279SBram Moolenaar  finish
20071d4279SBram Moolenaarendif
21071d4279SBram Moolenaar
22071d4279SBram Moolenaarfunction GetEtermIndent()
23071d4279SBram Moolenaar  let lnum = prevnonblank(v:lnum - 1)
24071d4279SBram Moolenaar  if lnum == 0
25071d4279SBram Moolenaar    return 0
26071d4279SBram Moolenaar  endif
27071d4279SBram Moolenaar
28071d4279SBram Moolenaar  let ind = indent(lnum)
29071d4279SBram Moolenaar
3042eeac35SBram Moolenaar  if getline(lnum) =~ '^\s*begin\>'
31036986f1SBram Moolenaar    let ind = ind + shiftwidth()
32071d4279SBram Moolenaar  endif
33071d4279SBram Moolenaar
3442eeac35SBram Moolenaar  if getline(v:lnum) =~ '^\s*end\>'
35036986f1SBram Moolenaar    let ind = ind - shiftwidth()
36071d4279SBram Moolenaar  endif
37071d4279SBram Moolenaar
38071d4279SBram Moolenaar  return ind
39071d4279SBram Moolenaarendfunction
40