neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

chatito.vim (731B)


      1 " Vim indent file
      2 " Language:	Chatito
      3 " Maintainer:	ObserverOfTime <chronobserver@disroot.org>
      4 " Last Change:	2022 Sep 20
      5 
      6 if exists('b:did_indent')
      7    finish
      8 endif
      9 let b:did_indent = 1
     10 
     11 setlocal indentexpr=GetChatitoIndent()
     12 setlocal indentkeys=o,O,*<Return>,0#,!^F
     13 
     14 let b:undo_indent = 'setl inde< indk<'
     15 
     16 if exists('*GetChatitoIndent')
     17    finish
     18 endif
     19 
     20 function GetChatitoIndent()
     21    let l:prev = v:lnum - 1
     22    if getline(prevnonblank(l:prev)) =~# '^[~%@]\['
     23        " shift indent after definitions
     24        return shiftwidth()
     25    elseif getline(l:prev) !~# '^\s*$'
     26        " maintain indent in sentences
     27        return indent(l:prev)
     28    else
     29        " reset indent after a blank line
     30        return 0
     31    end
     32 endfunction