blob: 3accf9bff11fcf72a67fa462924de4177ef880b0 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim indent file
Bram Moolenaar6e649222021-10-04 21:32:54 +01002" Language: Eterm 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=GetEtermIndent()
13setlocal indentkeys=!^F,o,O,=end
Bram Moolenaar933eb392007-05-10 17:52:45 +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("*GetEtermIndent")
19 finish
20endif
21
22function GetEtermIndent()
Bram Moolenaar071d4272004-06-13 20:20:40 +000023 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*begin\>'
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*end\>'
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