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