mirror of
https://github.com/neovim/neovim.git
synced 2026-01-02 17:36:56 +10:00
This reverts commits:
- 6b652a785033fd4164e049492a7327c1ed7c3e5f
- 2f689d5abde0ccddca9e20d8c93a0299bd054e32
- a025a46d4169587145fb54f04af349cd05cb6122
Several email addresses that are known to be valid caused bounces
due to an issue with my email setup. The previous commits incorrectly
marked these addresses as invalid. So revert the whole thing again.
62d8f3dab5
N/A patch:
vim-patch:2f689d5: runtime: mark more invalid email addresses
Co-authored-by: Christian Brabandt <cb@256bit.org>
96 lines
2.8 KiB
VimL
96 lines
2.8 KiB
VimL
" Vim indent file
|
|
" Language: SDL
|
|
" Maintainer: Michael Piefel <entwurf@piefel.de>
|
|
" Last Change: 2021 Oct 03
|
|
|
|
" Shamelessly stolen from the Vim-Script indent file
|
|
|
|
" Only load this indent file when no other was loaded.
|
|
if exists("b:did_indent")
|
|
finish
|
|
endif
|
|
let b:did_indent = 1
|
|
|
|
setlocal indentexpr=GetSDLIndent()
|
|
setlocal indentkeys+==~end,=~state,*<Return>
|
|
|
|
let b:undo_indent = "setl inde< indk<"
|
|
|
|
" Only define the function once.
|
|
if exists("*GetSDLIndent")
|
|
" finish
|
|
endif
|
|
|
|
let s:cpo_save = &cpo
|
|
set cpo&vim
|
|
|
|
function! GetSDLIndent()
|
|
" Find a non-blank line above the current line.
|
|
let lnum = prevnonblank(v:lnum - 1)
|
|
|
|
" At the start of the file use zero indent.
|
|
if lnum == 0
|
|
return 0
|
|
endif
|
|
|
|
let ind = indent(lnum)
|
|
let virtuality = '^\s*\(\(virtual\|redefined\|finalized\)\s\+\)\=\s*'
|
|
|
|
" Add a single space to comments which use asterisks
|
|
if getline(lnum) =~ '^\s*\*'
|
|
let ind = ind - 1
|
|
endif
|
|
if getline(v:lnum) =~ '^\s*\*'
|
|
let ind = ind + 1
|
|
endif
|
|
|
|
" Add a 'shiftwidth' after states, different blocks, decision (and alternatives), inputs
|
|
if (getline(lnum) =~? '^\s*\(start\|state\|system\|package\|connection\|channel\|alternative\|macro\|operator\|newtype\|select\|substructure\|decision\|generator\|refinement\|service\|method\|exceptionhandler\|asntype\|syntype\|value\|(.*):\|\(priority\s\+\)\=input\|provided\)'
|
|
\ || getline(lnum) =~? virtuality . '\(process\|procedure\|block\|object\)')
|
|
\ && getline(lnum) !~? 'end[[:alpha:]]\+;$'
|
|
let ind = ind + shiftwidth()
|
|
endif
|
|
|
|
" Subtract a 'shiftwidth' after states
|
|
if getline(lnum) =~? '^\s*\(stop\|return\>\|nextstate\)'
|
|
let ind = ind - shiftwidth()
|
|
endif
|
|
|
|
" Subtract a 'shiftwidth' on on end (uncompleted line)
|
|
if getline(v:lnum) =~? '^\s*end\>'
|
|
let ind = ind - shiftwidth()
|
|
endif
|
|
|
|
" Put each alternatives where the corresponding decision was
|
|
if getline(v:lnum) =~? '^\s*\((.*)\|else\):'
|
|
normal k
|
|
let ind = indent(searchpair('^\s*decision', '', '^\s*enddecision', 'bW',
|
|
\ 'synIDattr(synID(line("."), col("."), 0), "name") =~? "sdlString"'))
|
|
endif
|
|
|
|
" Put each state where the preceding state was
|
|
if getline(v:lnum) =~? '^\s*state\>'
|
|
let ind = indent(search('^\s*start', 'bW'))
|
|
endif
|
|
|
|
" Systems and packages are always in column 0
|
|
if getline(v:lnum) =~? '^\s*\(\(end\)\=system\|\(end\)\=package\)'
|
|
return 0
|
|
endif
|
|
|
|
" Put each end* where the corresponding begin was
|
|
if getline(v:lnum) =~? '^\s*end[[:alpha:]]'
|
|
normal k
|
|
let partner=matchstr(getline(v:lnum), '\(' . virtuality . 'end\)\@<=[[:alpha:]]\+')
|
|
let ind = indent(searchpair(virtuality . partner, '', '^\s*end' . partner, 'bW',
|
|
\ 'synIDattr(synID(line("."), col("."), 0), "name") =~? "sdlString"'))
|
|
endif
|
|
|
|
return ind
|
|
endfunction
|
|
|
|
let &cpo = s:cpo_save
|
|
unlet s:cpo_save
|
|
|
|
" vim:sw=2
|