summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorw0rp <devw0rp@gmail.com>2017-08-30 21:27:34 +0100
committerw0rp <devw0rp@gmail.com>2017-08-30 21:27:34 +0100
commit3bde390c586a88457ae46a3de58a0ce48a7f2613 (patch)
tree8209f9ef1afa8f2493c1bad1d2e1f1cadd4bda34
parentb8f5a4923c774e1e426d30d29834393c2636a653 (diff)
parent0cdb653c9c5384f2570739f852db0df7e404d285 (diff)
downloadale-3bde390c586a88457ae46a3de58a0ce48a7f2613.zip
Merge branch 'tslint-rules'
-rw-r--r--ale_linters/typescript/tslint.vim10
-rw-r--r--doc/ale-typescript.txt8
-rw-r--r--test/command_callback/test_tslint_command_callback.vader26
3 files changed, 36 insertions, 8 deletions
diff --git a/ale_linters/typescript/tslint.vim b/ale_linters/typescript/tslint.vim
index 26d26c8c..18f9e08c 100644
--- a/ale_linters/typescript/tslint.vim
+++ b/ale_linters/typescript/tslint.vim
@@ -1,8 +1,9 @@
-" Author: Prashanth Chandra https://github.com/prashcr
+" Author: Prashanth Chandra <https://github.com/prashcr>, Jonathan Clem <https://jclem.net>
" Description: tslint for TypeScript files
call ale#Set('typescript_tslint_executable', 'tslint')
call ale#Set('typescript_tslint_config_path', '')
+call ale#Set('typescript_tslint_rules_dir', '')
call ale#Set('typescript_tslint_use_global', 0)
function! ale_linters#typescript#tslint#GetExecutable(buffer) abort
@@ -38,15 +39,20 @@ function! ale_linters#typescript#tslint#GetCommand(buffer) abort
\ 'tslint.json',
\ ale#Var(a:buffer, 'typescript_tslint_config_path')
\)
-
let l:tslint_config_option = !empty(l:tslint_config_path)
\ ? ' -c ' . ale#Escape(l:tslint_config_path)
\ : ''
+ let l:tslint_rules_dir = ale#Var(a:buffer, 'typescript_tslint_rules_dir')
+ let l:tslint_rules_option = !empty(l:tslint_rules_dir)
+ \ ? ' -r ' . ale#Escape(l:tslint_rules_dir)
+ \ : ''
+
return ale#path#BufferCdString(a:buffer)
\ . ale_linters#typescript#tslint#GetExecutable(a:buffer)
\ . ' --format json'
\ . l:tslint_config_option
+ \ . l:tslint_rules_option
\ . ' %t'
endfunction
diff --git a/doc/ale-typescript.txt b/doc/ale-typescript.txt
index df479c5a..e20d058e 100644
--- a/doc/ale-typescript.txt
+++ b/doc/ale-typescript.txt
@@ -30,6 +30,14 @@ g:ale_typescript_tslint_config_path *g:ale_typescript_tslint_config_path*
such path exists, this variable will be used instead.
+g:ale_typescript_tslint_rules_dir *g:ale_typescript_tslint_rules_dir*
+ *b:ale_typescript_tslint_rules_dir*
+ Type: |String|
+ Default: `''`
+
+ If this variable is set, ALE will use it as the rules directory for tslint.
+
+
g:ale_typescript_tslint_use_global *g:ale_typescript_tslint_use_global*
*b:ale_typescript_tslint_use_global*
Type: |Number|
diff --git a/test/command_callback/test_tslint_command_callback.vader b/test/command_callback/test_tslint_command_callback.vader
index 694d36d6..51567951 100644
--- a/test/command_callback/test_tslint_command_callback.vader
+++ b/test/command_callback/test_tslint_command_callback.vader
@@ -1,11 +1,13 @@
Before:
- Save g:typescript_tslint_executable
- Save g:typescript_tslint_config_path
- Save g:typescript_tslint_use_global
+ Save g:ale_typescript_tslint_executable
+ Save g:ale_typescript_tslint_config_path
+ Save g:ale_typescript_tslint_rules_dir
+ Save g:ale_typescript_tslint_use_global
- unlet! g:typescript_tslint_executable
- unlet! g:typescript_tslint_config_path
- unlet! g:typescript_tslint_use_global
+ unlet! g:ale_typescript_tslint_executable
+ unlet! g:ale_typescript_tslint_config_path
+ unlet! g:ale_typescript_tslint_rules_dir
+ unlet! g:ale_typescript_tslint_use_global
runtime ale_linters/typescript/tslint.vim
@@ -14,6 +16,8 @@ Before:
After:
Restore
+ unlet! b:ale_typescript_tslint_rules_dir
+
call ale#test#RestoreDirectory()
call ale#linter#Reset()
@@ -22,3 +26,13 @@ Execute(The default tslint command should be correct):
\ 'cd ''' . expand('%:p:h') . ''' && '
\ . 'tslint --format json %t',
\ ale_linters#typescript#tslint#GetCommand(bufnr(''))
+
+Execute(The rules directory option should be included if set):
+ let b:ale_typescript_tslint_rules_dir = '/foo/bar'
+
+ AssertEqual
+ \ 'cd ''' . expand('%:p:h') . ''' && '
+ \ . 'tslint --format json'
+ \ . ' -r ' . ale#Escape('/foo/bar')
+ \ . ' %t',
+ \ ale_linters#typescript#tslint#GetCommand(bufnr(''))