sass.vim (926B)
1 " Vim indent file 2 " Language: Sass 3 " Maintainer: Tim Pope <vimNOSPAM@tpope.org> 4 " Last Change: 2023 Dec 28 5 6 if exists("b:did_indent") 7 finish 8 endif 9 let b:did_indent = 1 10 11 setlocal autoindent 12 setlocal indentexpr=GetSassIndent() 13 setlocal indentkeys=o,O,*<Return>,<:>,!^F 14 15 let b:undo_indent = "setl ai< inde< indk<" 16 17 " Only define the function once. 18 if exists("*GetSassIndent") 19 finish 20 endif 21 22 let s:property = '^\s*:\|^\s*[[:alnum:]#{}-]\+\%(:\|\s*=\)' 23 let s:extend = '^\s*\%(@extend\|@include\|+\)' 24 25 function! GetSassIndent() 26 let lnum = prevnonblank(v:lnum-1) 27 let line = substitute(getline(lnum),'\s\+$','','') 28 let cline = substitute(substitute(getline(v:lnum),'\s\+$','',''),'^\s\+','','') 29 let line = substitute(line,'^\s\+','','') 30 let indent = indent(lnum) 31 if line !~ s:property && line !~ s:extend && cline =~ s:property 32 return indent + shiftwidth() 33 else 34 return -1 35 endif 36 endfunction 37 38 " vim:set sw=2: