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