"Fossies" - the Fresh Open Source Software Archive

Member "vim-8.2.1354/runtime/indent/tcsh.vim" (2 Aug 2020, 1270 Bytes) of package /linux/misc/vim-8.2.1354.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) vimscript source code syntax highlighting (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

    1 " Vim indent file
    2 " Language:     C-shell (tcsh)
    3 " Maintainer:       GI <a@b.c>, where a='gi1242+vim', b='gmail', c='com'
    4 " Last Modified:    Sat 10 Dec 2011 09:23:00 AM EST
    5 
    6 " Only load this indent file when no other was loaded.
    7 if exists("b:did_indent")
    8     finish
    9 endif
   10 
   11 let b:did_indent = 1
   12 
   13 setlocal indentexpr=TcshGetIndent()
   14 setlocal indentkeys+=e,0=end,0=endsw indentkeys-=0{,0},0),:,0#
   15 
   16 " Only define the function once.
   17 if exists("*TcshGetIndent")
   18     finish
   19 endif
   20 
   21 function TcshGetIndent()
   22     " Find a non-blank line above the current line.
   23     let lnum = prevnonblank(v:lnum - 1)
   24 
   25     " Hit the start of the file, use zero indent.
   26     if lnum == 0
   27     return 0
   28     endif
   29 
   30     " Add indent if previous line begins with while or foreach
   31     " OR line ends with case <str>:, default:, else, then or \
   32     let ind = indent(lnum)
   33     let line = getline(lnum)
   34     if line =~ '\v^\s*%(while|foreach)>|^\s*%(case\s.*:|default:|else)\s*$|%(<then|\\)$'
   35     let ind = ind + shiftwidth()
   36     endif
   37 
   38     if line =~ '\v^\s*breaksw>'
   39     let ind = ind - shiftwidth()
   40     endif
   41 
   42     " Subtract indent if current line has on end, endif, case commands
   43     let line = getline(v:lnum)
   44     if line =~ '\v^\s*%(else|end|endif)\s*$'
   45     let ind = ind - shiftwidth()
   46     endif
   47 
   48     return ind
   49 endfunction