From cddb26558f1c8553a07f855bffdc7cbdc1230f7f Mon Sep 17 00:00:00 2001 From: Jonathan Clem Date: Fri, 21 Jul 2017 15:52:51 -0400 Subject: [PATCH 1/6] Add tslint support for rules directory option --- ale_linters/typescript/tslint.vim | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ale_linters/typescript/tslint.vim b/ale_linters/typescript/tslint.vim index e9b3164..a637697 100644 --- a/ale_linters/typescript/tslint.vim +++ b/ale_linters/typescript/tslint.vim @@ -3,6 +3,7 @@ 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 @@ -44,6 +45,12 @@ function! ale_linters#typescript#tslint#BuildLintCommand(buffer) abort 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_linters#typescript#tslint#GetExecutable(a:buffer) \ . ' --format json' From 8ea9044667c184d7b2ee408480482a134d836ce3 Mon Sep 17 00:00:00 2001 From: Jonathan Clem Date: Fri, 21 Jul 2017 15:54:28 -0400 Subject: [PATCH 2/6] Add myself to authors for tslint.vim --- ale_linters/typescript/tslint.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ale_linters/typescript/tslint.vim b/ale_linters/typescript/tslint.vim index a637697..ab3c1f4 100644 --- a/ale_linters/typescript/tslint.vim +++ b/ale_linters/typescript/tslint.vim @@ -1,4 +1,4 @@ -" Author: Prashanth Chandra https://github.com/prashcr +" Author: Prashanth Chandra , Jonathan Clem " Description: tslint for TypeScript files call ale#Set('typescript_tslint_executable', 'tslint') From 3bb75a6fdee308f764bc661b7f2f9652c371c572 Mon Sep 17 00:00:00 2001 From: Jonathan Clem Date: Fri, 21 Jul 2017 15:55:55 -0400 Subject: [PATCH 3/6] Document g:ale_typescript_tslint_rules_dir --- doc/ale-typescript.txt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/doc/ale-typescript.txt b/doc/ale-typescript.txt index df479c5..58789cd 100644 --- a/doc/ale-typescript.txt +++ b/doc/ale-typescript.txt @@ -28,6 +28,14 @@ g:ale_typescript_tslint_config_path *g:ale_typescript_tslint_config_path* ALE will first discover the tslint.json path in an ancestor directory. If no 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* From 710c3ee3d29b2a865a040b0b776e8f79db449df0 Mon Sep 17 00:00:00 2001 From: Jonathan Clem Date: Fri, 21 Jul 2017 15:59:16 -0400 Subject: [PATCH 4/6] Use the tslint_rules_option variable --- ale_linters/typescript/tslint.vim | 1 + 1 file changed, 1 insertion(+) diff --git a/ale_linters/typescript/tslint.vim b/ale_linters/typescript/tslint.vim index ab3c1f4..fe56d33 100644 --- a/ale_linters/typescript/tslint.vim +++ b/ale_linters/typescript/tslint.vim @@ -55,6 +55,7 @@ function! ale_linters#typescript#tslint#BuildLintCommand(buffer) abort return ale_linters#typescript#tslint#GetExecutable(a:buffer) \ . ' --format json' \ . l:tslint_config_option + \ . l:tslint_rules_option \ . ' %t' endfunction From 6d732b9fb483241c1fcf70e211255a12c0f19100 Mon Sep 17 00:00:00 2001 From: Jonathan Clem Date: Fri, 21 Jul 2017 16:09:45 -0400 Subject: [PATCH 5/6] Remove trailing whitespace in tslint.vim --- ale_linters/typescript/tslint.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ale_linters/typescript/tslint.vim b/ale_linters/typescript/tslint.vim index fe56d33..80b420d 100644 --- a/ale_linters/typescript/tslint.vim +++ b/ale_linters/typescript/tslint.vim @@ -45,7 +45,7 @@ function! ale_linters#typescript#tslint#BuildLintCommand(buffer) abort 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) From 0cdb653c9c5384f2570739f852db0df7e404d285 Mon Sep 17 00:00:00 2001 From: w0rp Date: Wed, 30 Aug 2017 21:27:28 +0100 Subject: [PATCH 6/6] Cover the tslint rules option with a test --- .../test_tslint_command_callback.vader | 26 ++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/test/command_callback/test_tslint_command_callback.vader b/test/command_callback/test_tslint_command_callback.vader index 694d36d..5156795 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(''))