summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Pope <code@tpope.net>2023-12-28 12:49:07 -0500
committerChristian Brabandt <cb@256bit.org>2023-12-28 23:17:54 +0100
commita907c91992167e41da41008d4370e434e324cbf2 (patch)
tree40579359e73cbad4efa74dff96a3adbaab2ab6ef
parentfda02d03c0cfe017e465c58b3baf8b3106287578 (diff)
runtime(sass): Provide sass_recommended_style option
-rw-r--r--runtime/ftplugin/sass.vim7
-rw-r--r--runtime/indent/sass.vim6
2 files changed, 8 insertions, 5 deletions
diff --git a/runtime/ftplugin/sass.vim b/runtime/ftplugin/sass.vim
index 9ce446137a..e650be9312 100644
--- a/runtime/ftplugin/sass.vim
+++ b/runtime/ftplugin/sass.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin
" Language: Sass
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
-" Last Change: 2019 Dec 05
+" Last Change: 2023 Dec 28
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@@ -23,6 +23,11 @@ if &filetype =~# '\<s[ac]ss]\>'
let b:undo_ftplugin .= ' isk<'
endif
+if get(g:, 'sass_recommended_style', 1)
+ setlocal shiftwidth=2 softtabstop=2 expandtab
+ let b:undo_ftplugin .= ' sw< sts< et<'
+endif
+
let &l:define = '^\C\v\s*%(\@function|\@mixin|\=)|^\s*%(\$[[:alnum:]-]+:|[%.][:alnum:]-]+\s*%(\{|$))@='
let &l:include = '^\s*@import\s\+\%(url(\)\=["'']\='
diff --git a/runtime/indent/sass.vim b/runtime/indent/sass.vim
index 8c0ecd0746..45dc869a55 100644
--- a/runtime/indent/sass.vim
+++ b/runtime/indent/sass.vim
@@ -1,14 +1,14 @@
" Vim indent file
" Language: Sass
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
-" Last Change: 2022 Mar 15
+" Last Change: 2023 Dec 28
if exists("b:did_indent")
finish
endif
let b:did_indent = 1
-setlocal autoindent sw=2 et
+setlocal autoindent
setlocal indentexpr=GetSassIndent()
setlocal indentkeys=o,O,*<Return>,<:>,!^F
@@ -26,10 +26,8 @@ function! GetSassIndent()
let lnum = prevnonblank(v:lnum-1)
let line = substitute(getline(lnum),'\s\+$','','')
let cline = substitute(substitute(getline(v:lnum),'\s\+$','',''),'^\s\+','','')
- let lastcol = strlen(line)
let line = substitute(line,'^\s\+','','')
let indent = indent(lnum)
- let cindent = indent(v:lnum)
if line !~ s:property && line !~ s:extend && cline =~ s:property
return indent + shiftwidth()
else