summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Falconer <ben@falconers.me.uk>2018-05-11 10:45:41 +0100
committerBen Falconer <ben@falconers.me.uk>2018-05-15 14:36:31 +0100
commit8a1099bb59696185a77422ae12e3e384b0eeb81b (patch)
treeb99b72dc018fe91e6e5caf62bb6ecf2547994805
parent38c66d33fe8022803497c49239b06112ccbd0a83 (diff)
downloadale-8a1099bb59696185a77422ae12e3e384b0eeb81b.zip
Run sass-lint from the target's directory
-rw-r--r--ale_linters/sass/sasslint.vim14
-rw-r--r--ale_linters/scss/sasslint.vim14
-rw-r--r--test/command_callback/test_sasslint_command_callback.vader17
3 files changed, 41 insertions, 4 deletions
diff --git a/ale_linters/sass/sasslint.vim b/ale_linters/sass/sasslint.vim
index bbe71255..aaaa3d2d 100644
--- a/ale_linters/sass/sasslint.vim
+++ b/ale_linters/sass/sasslint.vim
@@ -1,8 +1,18 @@
-" Author: KabbAmine - https://github.com/KabbAmine
+" Author: KabbAmine - https://github.com/KabbAmine, Ben Falconer
+" <ben@falconers.me.uk>
+
+function! ale_linters#sass#sasslint#GetCommand(buffer) abort
+ return ale#path#BufferCdString(a:buffer)
+ \ . ale#Escape('sass-lint')
+ \ . ' -v'
+ \ . ' -q'
+ \ . ' -f compact'
+ \ . ' %t'
+endfunction
call ale#linter#Define('sass', {
\ 'name': 'sasslint',
\ 'executable': 'sass-lint',
-\ 'command': 'sass-lint -v -q -f compact %t',
+\ 'command_callback': 'ale_linters#sass#sasslint#GetCommand',
\ 'callback': 'ale#handlers#css#HandleCSSLintFormat',
\})
diff --git a/ale_linters/scss/sasslint.vim b/ale_linters/scss/sasslint.vim
index bd016465..f6075001 100644
--- a/ale_linters/scss/sasslint.vim
+++ b/ale_linters/scss/sasslint.vim
@@ -1,8 +1,18 @@
-" Author: KabbAmine - https://github.com/KabbAmine
+" Author: KabbAmine - https://github.com/KabbAmine, Ben Falconer
+" <ben@falconers.me.uk>
+
+function! ale_linters#scss#sasslint#GetCommand(buffer) abort
+ return ale#path#BufferCdString(a:buffer)
+ \ . ale#Escape('sass-lint')
+ \ . ' -v'
+ \ . ' -q'
+ \ . ' -f compact'
+ \ . ' %t'
+endfunction
call ale#linter#Define('scss', {
\ 'name': 'sasslint',
\ 'executable': 'sass-lint',
-\ 'command': 'sass-lint -v -q -f compact %t',
+\ 'command_callback': 'ale_linters#scss#sasslint#GetCommand',
\ 'callback': 'ale#handlers#css#HandleCSSLintFormat',
\})
diff --git a/test/command_callback/test_sasslint_command_callback.vader b/test/command_callback/test_sasslint_command_callback.vader
new file mode 100644
index 00000000..81ce893b
--- /dev/null
+++ b/test/command_callback/test_sasslint_command_callback.vader
@@ -0,0 +1,17 @@
+Before:
+ runtime ale_linters/sass/sasslint.vim
+
+ call ale#test#SetDirectory('/testplugin/test/command_callback')
+ call ale#test#SetFilename('test.sass')
+
+After:
+ Restore
+
+ call ale#test#RestoreDirectory()
+ call ale#linter#Reset()
+
+Execute(The default sasslint command should be correct):
+ AssertEqual
+ \ 'cd ' . ale#Escape(expand('%:p:h')) . ' && '
+ \ . ale#Escape('sass-lint') . ' -v -q -f compact %t',
+ \ ale_linters#sass#sasslint#GetCommand(bufnr(''))