summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ale_linters/graphql/gqlint.vim8
-rw-r--r--test/command_callback/test_graphql_gqlint_command_callbacks.vader11
2 files changed, 18 insertions, 1 deletions
diff --git a/ale_linters/graphql/gqlint.vim b/ale_linters/graphql/gqlint.vim
index 882cc697..e45bf4c8 100644
--- a/ale_linters/graphql/gqlint.vim
+++ b/ale_linters/graphql/gqlint.vim
@@ -1,9 +1,15 @@
" Author: Michiel Westerbeek <happylinks@gmail.com>
" Description: Linter for GraphQL Schemas
+function! ale_linters#graphql#gqlint#GetCommand(buffer) abort
+ return ale#path#BufferCdString(a:buffer)
+ \ . 'gqlint'
+ \ . ' --reporter=simple %t'
+endfunction
+
call ale#linter#Define('graphql', {
\ 'name': 'gqlint',
\ 'executable': 'gqlint',
-\ 'command': 'gqlint --reporter=simple %t',
+\ 'command_callback': 'ale_linters#graphql#gqlint#GetCommand',
\ 'callback': 'ale#handlers#unix#HandleAsWarning',
\})
diff --git a/test/command_callback/test_graphql_gqlint_command_callbacks.vader b/test/command_callback/test_graphql_gqlint_command_callbacks.vader
new file mode 100644
index 00000000..0f4e9770
--- /dev/null
+++ b/test/command_callback/test_graphql_gqlint_command_callbacks.vader
@@ -0,0 +1,11 @@
+Before:
+ call ale#assert#SetUpLinterTest('graphql', 'gqlint')
+
+After:
+ call ale#assert#TearDownLinterTest()
+
+Execute(The linter should run from the directory of the file in the buffer):
+ AssertLinter 'gqlint',
+ \ ale#path#CdString(expand('%:p:h'))
+ \ . 'gqlint --reporter=simple'
+ \ . ' %t'