summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ale_linters/ansible/ansible-lint.vim6
-rw-r--r--ale_linters/c/cppcheck.vim6
-rw-r--r--ale_linters/c/gcc.vim6
-rw-r--r--ale_linters/coffee/coffee.vim7
-rw-r--r--ale_linters/coffee/coffeelint.vim6
-rw-r--r--ale_linters/cpp/cppcheck.vim6
-rw-r--r--ale_linters/cpp/gcc.vim6
-rw-r--r--ale_linters/css/csslint.vim6
-rw-r--r--ale_linters/d/dmd.vim6
-rw-r--r--ale_linters/elixir/credo.vim6
-rw-r--r--ale_linters/fortran/gcc.vim6
-rw-r--r--ale_linters/go/gofmt.vim7
-rw-r--r--ale_linters/go/golint.vim6
-rw-r--r--ale_linters/go/govet.vim7
-rw-r--r--ale_linters/haskell/ghc.vim6
-rw-r--r--ale_linters/haskell/hlint.vim6
-rw-r--r--ale_linters/html/htmlhint.vim6
-rw-r--r--ale_linters/html/tidy.vim6
-rw-r--r--ale_linters/javascript/eslint.vim6
-rw-r--r--ale_linters/javascript/jscs.vim6
-rw-r--r--ale_linters/javascript/jshint.vim6
-rw-r--r--ale_linters/json/jsonlint.vim6
-rw-r--r--ale_linters/lua/luacheck.vim6
-rw-r--r--ale_linters/perl/perl.vim5
-rw-r--r--ale_linters/perl/perlcritic.vim5
-rw-r--r--ale_linters/php/php.vim6
-rw-r--r--ale_linters/php/phpcs.vim6
-rw-r--r--ale_linters/pug/puglint.vim6
-rw-r--r--ale_linters/python/flake8.vim6
-rw-r--r--ale_linters/ruby/rubocop.vim6
-rw-r--r--ale_linters/sass/sasslint.vim6
-rw-r--r--ale_linters/scala/scalac.vim6
-rw-r--r--ale_linters/scss/sasslint.vim6
-rw-r--r--ale_linters/scss/scsslint.vim6
-rw-r--r--ale_linters/sh/shell.vim6
-rw-r--r--ale_linters/sh/shellcheck.vim6
-rw-r--r--ale_linters/testft/testlinter.vim10
-rw-r--r--ale_linters/typescript/tslint.vim6
-rw-r--r--ale_linters/verilog/iverilog.vim6
-rw-r--r--ale_linters/verilog/verilator.vim6
-rw-r--r--ale_linters/vim/vint.vim6
-rw-r--r--ale_linters/yaml/yamllint.vim6
-rw-r--r--autoload/ale/linter.vim87
-rw-r--r--test/test_ale_linter_get.vader48
-rw-r--r--test/test_ale_statusline.vader2
45 files changed, 96 insertions, 298 deletions
diff --git a/ale_linters/ansible/ansible-lint.vim b/ale_linters/ansible/ansible-lint.vim
index a947d9e7..af1e28b2 100644
--- a/ale_linters/ansible/ansible-lint.vim
+++ b/ale_linters/ansible/ansible-lint.vim
@@ -1,12 +1,6 @@
" Author: Bjorn Neergaard <bjorn@neersighted.com>
" Description: ansible-lint for ansible-yaml files
-if exists('g:loaded_ale_linters_ansible_ansiblelint')
- finish
-endif
-
-let g:loaded_ale_linters_ansible_ansiblelint = 1
-
call ale#linter#Define('ansible', {
\ 'name': 'ansible',
\ 'executable': 'ansible',
diff --git a/ale_linters/c/cppcheck.vim b/ale_linters/c/cppcheck.vim
index 891b4ffb..d4362cc0 100644
--- a/ale_linters/c/cppcheck.vim
+++ b/ale_linters/c/cppcheck.vim
@@ -1,12 +1,6 @@
" Author: Bart Libert <bart.libert@gmail.com>
" Description: cppcheck linter for c files
-if exists('g:loaded_ale_linters_c_cppcheck')
- finish
-endif
-
-let g:loaded_ale_linters_c_cppcheck = 1
-
" Set this option to change the cppcheck options
if !exists('g:ale_c_cppcheck_options')
let g:ale_c_cppcheck_options = '--enable=style'
diff --git a/ale_linters/c/gcc.vim b/ale_linters/c/gcc.vim
index 06bcff22..3c18964a 100644
--- a/ale_linters/c/gcc.vim
+++ b/ale_linters/c/gcc.vim
@@ -1,12 +1,6 @@
" Author: w0rp <devw0rp@gmail.com>
" Description: gcc linter for c files
-if exists('g:loaded_ale_linters_c_gcc')
- finish
-endif
-
-let g:loaded_ale_linters_c_gcc = 1
-
" Set this option to change the GCC options for warnings for C.
if !exists('g:ale_c_gcc_options')
" let g:ale_c_gcc_options = '-Wall'
diff --git a/ale_linters/coffee/coffee.vim b/ale_linters/coffee/coffee.vim
index b2ad32b1..243fec6b 100644
--- a/ale_linters/coffee/coffee.vim
+++ b/ale_linters/coffee/coffee.vim
@@ -1,12 +1,6 @@
" Author: KabbAmine - https://github.com/KabbAmine
" Description: Coffee for checking coffee files
-if exists('g:loaded_ale_linters_coffee_coffee')
- finish
-endif
-
-let g:loaded_ale_linters_coffee_coffee = 1
-
call ale#linter#Define('coffee', {
\ 'name': 'coffee',
\ 'executable': 'coffee',
@@ -14,4 +8,3 @@ call ale#linter#Define('coffee', {
\ 'output_stream': 'stderr',
\ 'callback': 'ale#handlers#HandleGCCFormat',
\})
-
diff --git a/ale_linters/coffee/coffeelint.vim b/ale_linters/coffee/coffeelint.vim
index 83053be7..e1215132 100644
--- a/ale_linters/coffee/coffeelint.vim
+++ b/ale_linters/coffee/coffeelint.vim
@@ -1,12 +1,6 @@
" Author: Prashanth Chandra https://github.com/prashcr
" Description: coffeelint linter for coffeescript files
-if exists('g:loaded_ale_linters_coffee_coffeelint')
- finish
-endif
-
-let g:loaded_ale_linters_coffee_coffeelint = 1
-
function! ale_linters#coffee#coffeelint#Handle(buffer, lines)
" Matches patterns like the following:
"
diff --git a/ale_linters/cpp/cppcheck.vim b/ale_linters/cpp/cppcheck.vim
index d8057901..9576b092 100644
--- a/ale_linters/cpp/cppcheck.vim
+++ b/ale_linters/cpp/cppcheck.vim
@@ -1,12 +1,6 @@
" Author: Bart Libert <bart.libert@gmail.com>
" Description: cppcheck linter for cpp files
-if exists('g:loaded_ale_linters_cpp_cppcheck')
- finish
-endif
-
-let g:loaded_ale_linters_cpp_cppcheck = 1
-
" Set this option to change the cppcheck options
if !exists('g:ale_cpp_cppcheck_options')
let g:ale_cpp_cppcheck_options = '--enable=style'
diff --git a/ale_linters/cpp/gcc.vim b/ale_linters/cpp/gcc.vim
index b868828a..084c0602 100644
--- a/ale_linters/cpp/gcc.vim
+++ b/ale_linters/cpp/gcc.vim
@@ -1,12 +1,6 @@
" Author: geam <mdelage@student.42.fr>
" Description: gcc linter for cpp files
-if exists('g:loaded_ale_linters_cpp_gcc')
- finish
-endif
-
-let g:loaded_ale_linters_cpp_gcc = 1
-
" Set this option to change the GCC options for warnings for C.
if !exists('g:ale_cpp_gcc_options')
" added c++14 standard support
diff --git a/ale_linters/css/csslint.vim b/ale_linters/css/csslint.vim
index dbaed15b..d967f83b 100644
--- a/ale_linters/css/csslint.vim
+++ b/ale_linters/css/csslint.vim
@@ -1,12 +1,6 @@
" Author: w0rp <devw0rp@gmail.com>
" Description: This file adds support for checking CSS code with csslint.
-if exists('g:loaded_ale_linters_css_csslint')
- finish
-endif
-
-let g:loaded_ale_linters_css_csslint = 1
-
call ale#linter#Define('css', {
\ 'name': 'csslint',
\ 'executable': 'csslint',
diff --git a/ale_linters/d/dmd.vim b/ale_linters/d/dmd.vim
index a0cbeb49..8619eba2 100644
--- a/ale_linters/d/dmd.vim
+++ b/ale_linters/d/dmd.vim
@@ -1,12 +1,6 @@
" Author: w0rp <devw0rp@gmail.com>
" Description: "dmd for D files"
-if exists('g:loaded_ale_linters_d_dmd')
- finish
-endif
-
-let g:loaded_ale_linters_d_dmd = 1
-
" A function for finding the dmd-wrapper script in the Vim runtime paths
function! s:FindWrapperScript()
for l:parent in split(&runtimepath, ',')
diff --git a/ale_linters/elixir/credo.vim b/ale_linters/elixir/credo.vim
index 0d84fcd9..fe34abc6 100644
--- a/ale_linters/elixir/credo.vim
+++ b/ale_linters/elixir/credo.vim
@@ -1,11 +1,5 @@
" Author: hauleth - https://github.com/haulethe
-if exists('g:loaded_ale_linters_elixir_credo')
- finish
-endif
-
-let g:loaded_ale_linters_elixir_credo = 1
-
function! ale_linters#elixir#credo#Handle(buffer, lines)
" Matches patterns line the following:
"
diff --git a/ale_linters/fortran/gcc.vim b/ale_linters/fortran/gcc.vim
index c0a8974a..4129eca8 100644
--- a/ale_linters/fortran/gcc.vim
+++ b/ale_linters/fortran/gcc.vim
@@ -1,12 +1,6 @@
" Author: w0rp <devw0rp@gmail.com>
" Description: gcc for Fortran files
-if exists('g:loaded_ale_linters_fortran_gcc')
- finish
-endif
-
-let g:loaded_ale_linters_fortran_gcc = 1
-
" Set this option to change the GCC options for warnings for Fortran.
if !exists('g:ale_fortran_gcc_options')
let g:ale_fortran_gcc_options = '-Wall'
diff --git a/ale_linters/go/gofmt.vim b/ale_linters/go/gofmt.vim
index 83c4d811..50d25086 100644
--- a/ale_linters/go/gofmt.vim
+++ b/ale_linters/go/gofmt.vim
@@ -1,12 +1,6 @@
" Author: neersighted <bjorn@neersighted.com>
" Description: gofmt for Go files
-if exists('g:loaded_ale_linters_go_gofmt')
- finish
-endif
-
-let g:loaded_ale_linters_go_gofmt = 1
-
call ale#linter#Define('go', {
\ 'name': 'gofmt',
\ 'output_stream': 'stderr',
@@ -14,4 +8,3 @@ call ale#linter#Define('go', {
\ 'command': g:ale#util#stdin_wrapper . ' .go gofmt -e',
\ 'callback': 'ale#handlers#HandleUnixFormatAsError',
\})
-
diff --git a/ale_linters/go/golint.vim b/ale_linters/go/golint.vim
index 25787e0e..5329e334 100644
--- a/ale_linters/go/golint.vim
+++ b/ale_linters/go/golint.vim
@@ -1,12 +1,6 @@
" Author: neersighted <bjorn@neersighted.com>
" Description: golint for Go files
-if exists('g:loaded_ale_linters_go_golint')
- finish
-endif
-
-let g:loaded_ale_linters_go_golint = 1
-
call ale#linter#Define('go', {
\ 'name': 'golint',
\ 'executable': 'golint',
diff --git a/ale_linters/go/govet.vim b/ale_linters/go/govet.vim
index 9db39ead..6153caa8 100644
--- a/ale_linters/go/govet.vim
+++ b/ale_linters/go/govet.vim
@@ -1,12 +1,6 @@
" Author: neersighted <bjorn@neersighted.com>
" Description: go vet for Go files
-if exists('g:loaded_ale_linters_go_govet')
- finish
-endif
-
-let g:loaded_ale_linters_go_govet = 1
-
call ale#linter#Define('go', {
\ 'name': 'go vet',
\ 'output_stream': 'stderr',
@@ -14,4 +8,3 @@ call ale#linter#Define('go', {
\ 'command': g:ale#util#stdin_wrapper . ' .go go vet',
\ 'callback': 'ale#handlers#HandleUnixFormatAsError',
\})
-
diff --git a/ale_linters/haskell/ghc.vim b/ale_linters/haskell/ghc.vim
index 29aef123..82bf061b 100644
--- a/ale_linters/haskell/ghc.vim
+++ b/ale_linters/haskell/ghc.vim
@@ -1,12 +1,6 @@
" Author: w0rp <devw0rp@gmail.com>
" Description: ghc for Haskell files
-if exists('g:loaded_ale_linters_haskell_ghc')
- finish
-endif
-
-let g:loaded_ale_linters_haskell_ghc = 1
-
call ale#linter#Define('haskell', {
\ 'name': 'ghc',
\ 'output_stream': 'stderr',
diff --git a/ale_linters/haskell/hlint.vim b/ale_linters/haskell/hlint.vim
index a12f75f1..f698d5b4 100644
--- a/ale_linters/haskell/hlint.vim
+++ b/ale_linters/haskell/hlint.vim
@@ -1,12 +1,6 @@
" Author: jparoz <jesse.paroz@gmail.com>
" Description: hlint for Haskell files
-if exists('g:loaded_ale_linters_haskell_hlint')
- finish
-endif
-
-let g:loaded_ale_linters_haskell_hlint = 1
-
function! ale_linters#haskell#hlint#Handle(buffer, lines)
let l:errors = json_decode(join(a:lines, ''))
diff --git a/ale_linters/html/htmlhint.vim b/ale_linters/html/htmlhint.vim
index dedf606e..649c523a 100644
--- a/ale_linters/html/htmlhint.vim
+++ b/ale_linters/html/htmlhint.vim
@@ -1,12 +1,6 @@
" Author: KabbAmine <amine.kabb@gmail.com>
" Description: HTMLHint for checking html files
-if exists('g:loaded_ale_linters_html_htmlhint')
- finish
-endif
-
-let g:loaded_ale_linters_html_htmlhint = 1
-
call ale#linter#Define('html', {
\ 'name': 'htmlhint',
\ 'executable': 'htmlhint',
diff --git a/ale_linters/html/tidy.vim b/ale_linters/html/tidy.vim
index a4e12aec..53520347 100644
--- a/ale_linters/html/tidy.vim
+++ b/ale_linters/html/tidy.vim
@@ -1,12 +1,6 @@
" Author: KabbAmine <amine.kabb@gmail.com>
" Description: This file adds support for checking HTML code with tidy.
-if exists('g:loaded_ale_linters_html_tidy')
- finish
-endif
-
-let g:loaded_ale_linters_html_tidy = 1
-
" CLI options
let g:ale_html_tidy_executable = get(g:, 'ale_html_tidy_executable', 'tidy')
let g:ale_html_tidy_args = get(g:, 'ale_html_tidy_args', '-q -e -language en')
diff --git a/ale_linters/javascript/eslint.vim b/ale_linters/javascript/eslint.vim
index d57b84ad..e93113d4 100644
--- a/ale_linters/javascript/eslint.vim
+++ b/ale_linters/javascript/eslint.vim
@@ -1,12 +1,6 @@
" Author: w0rp <devw0rp@gmail.com>
" Description: eslint for JavaScript files
-if exists('g:loaded_ale_linters_javascript_eslint')
- finish
-endif
-
-let g:loaded_ale_linters_javascript_eslint = 1
-
let g:ale_javascript_eslint_executable =
\ get(g:, 'ale_javascript_eslint_executable', 'eslint')
diff --git a/ale_linters/javascript/jscs.vim b/ale_linters/javascript/jscs.vim
index bddee240..52710bac 100644
--- a/ale_linters/javascript/jscs.vim
+++ b/ale_linters/javascript/jscs.vim
@@ -1,12 +1,6 @@
" Author: Chris Kyrouac - https://github.com/fijshion
" Description: jscs for JavaScript files
-if exists('g:loaded_ale_linters_javascript_jscs')
- finish
-endif
-
-let g:loaded_ale_linters_javascript_jscs = 1
-
call ale#linter#Define('javascript', {
\ 'name': 'jscs',
\ 'executable': 'jscs',
diff --git a/ale_linters/javascript/jshint.vim b/ale_linters/javascript/jshint.vim
index a2ef5ae2..327158a8 100644
--- a/ale_linters/javascript/jshint.vim
+++ b/ale_linters/javascript/jshint.vim
@@ -1,12 +1,6 @@
" Author: Chris Kyrouac - https://github.com/fijshion
" Description: JSHint for Javascript files
-if exists('g:loaded_ale_linters_javascript_jshint')
- finish
-endif
-
-let g:loaded_ale_linters_javascript_jshint = 1
-
let g:ale_javascript_jshint_executable =
\ get(g:, 'ale_javascript_jshint_executable', 'jshint')
diff --git a/ale_linters/json/jsonlint.vim b/ale_linters/json/jsonlint.vim
index cfbe9c7d..ca9a06c4 100644
--- a/ale_linters/json/jsonlint.vim
+++ b/ale_linters/json/jsonlint.vim
@@ -1,11 +1,5 @@
" Author: KabbAmine <amine.kabb@gmail.com>
-if exists('g:loaded_ale_linters_json_jsonlint')
- finish
-endif
-
-let g:loaded_ale_linters_json_jsonlint = 1
-
function! ale_linters#json#jsonlint#Handle(buffer, lines)
" Matches patterns like the following:
" line 2, col 15, found: 'STRING' - expected: 'EOF', '}', ',', ']'.
diff --git a/ale_linters/lua/luacheck.vim b/ale_linters/lua/luacheck.vim
index 11638ad3..9036c317 100644
--- a/ale_linters/lua/luacheck.vim
+++ b/ale_linters/lua/luacheck.vim
@@ -1,12 +1,6 @@
" Author: Sol Bekic https://github.com/s-ol
" Description: luacheck linter for lua files
-if exists('g:loaded_ale_linters_lua_luacheck')
- finish
-endif
-
-let g:loaded_ale_linters_lua_luacheck = 1
-
let g:ale_lua_luacheck_executable =
\ get(g:, 'ale_lua_luacheck_executable', 'luacheck')
diff --git a/ale_linters/perl/perl.vim b/ale_linters/perl/perl.vim
index 5b35803c..28cf787e 100644
--- a/ale_linters/perl/perl.vim
+++ b/ale_linters/perl/perl.vim
@@ -1,11 +1,6 @@
" Author: Vincent Lequertier <https://github.com/SkySymbol>
" Description: This file adds support for checking perl syntax
-if exists('g:loaded_ale_linters_perl_perlcritic')
- finish
-endif
-
-let g:loaded_ale_linters_perl_perl = 1
function! ale_linters#perl#perl#Handle(buffer, lines)
let l:pattern = '\(.\+\) at \(.\+\) line \(\d\+\)'
let l:output = []
diff --git a/ale_linters/perl/perlcritic.vim b/ale_linters/perl/perlcritic.vim
index 8e29a574..eae8b14d 100644
--- a/ale_linters/perl/perlcritic.vim
+++ b/ale_linters/perl/perlcritic.vim
@@ -1,11 +1,6 @@
" Author: Vincent Lequertier <https://github.com/SkySymbol>
" Description: This file adds support for checking perl with perl critic
-if exists('g:loaded_ale_linters_perl_perlcritic')
- finish
-endif
-
-let g:loaded_ale_linters_perl_perlcritic = 1
function! ale_linters#perl#perlcritic#Handle(buffer, lines)
let l:pattern = '\(.\+\) at \(.\+\) line \(\d\+\)'
let l:output = []
diff --git a/ale_linters/php/php.vim b/ale_linters/php/php.vim
index 21288428..cbbd088d 100644
--- a/ale_linters/php/php.vim
+++ b/ale_linters/php/php.vim
@@ -1,12 +1,6 @@
" Author: Spencer Wood <https://github.com/scwood>
" Description: This file adds support for checking PHP with php-cli
-if exists('g:loaded_ale_linters_php_php')
- finish
-endif
-
-let g:loaded_ale_linters_php_php = 1
-
function! ale_linters#php#php#Handle(buffer, lines)
" Matches patterns like the following:
"
diff --git a/ale_linters/php/phpcs.vim b/ale_linters/php/phpcs.vim
index a028964d..6e64d30e 100644
--- a/ale_linters/php/phpcs.vim
+++ b/ale_linters/php/phpcs.vim
@@ -1,12 +1,6 @@
" Author: jwilliams108 <https://github.com/jwilliams108>
" Description: phpcs for PHP files
-if exists('g:loaded_ale_linters_php_phpcs')
- finish
-endif
-
-let g:loaded_ale_linters_php_phpcs = 1
-
function! ale_linters#php#phpcs#GetCommand(buffer)
let l:command = 'phpcs -s --report=emacs --stdin-path=%s'
diff --git a/ale_linters/pug/puglint.vim b/ale_linters/pug/puglint.vim
index be1be190..338cb05f 100644
--- a/ale_linters/pug/puglint.vim
+++ b/ale_linters/pug/puglint.vim
@@ -1,12 +1,6 @@
" Author: w0rp - <devw0rp@gmail.com>
" Description: pug-lint for checking Pug/Jade files.
-if exists('g:loaded_ale_linters_pug_puglint')
- finish
-endif
-
-let g:loaded_ale_linters_pug_puglint = 1
-
call ale#linter#Define('pug', {
\ 'name': 'puglint',
\ 'executable': 'pug-lint',
diff --git a/ale_linters/python/flake8.vim b/ale_linters/python/flake8.vim
index bf7c1a16..abee9691 100644
--- a/ale_linters/python/flake8.vim
+++ b/ale_linters/python/flake8.vim
@@ -1,12 +1,6 @@
" Author: w0rp <devw0rp@gmail.com>
" Description: flake8 for python files
-if exists('g:loaded_ale_linters_python_flake8')
- finish
-endif
-
-let g:loaded_ale_linters_python_flake8 = 1
-
call ale#linter#Define('python', {
\ 'name': 'flake8',
\ 'executable': 'flake8',
diff --git a/ale_linters/ruby/rubocop.vim b/ale_linters/ruby/rubocop.vim
index 7c90cdf5..fcc6f8bd 100644
--- a/ale_linters/ruby/rubocop.vim
+++ b/ale_linters/ruby/rubocop.vim
@@ -1,12 +1,6 @@
" Author: ynonp - https://github.com/ynonp
" Description: rubocop for Ruby files
-if exists('g:loaded_ale_linters_ruby_rubocop')
- finish
-endif
-
-let g:loaded_ale_linters_ruby_rubocop = 1
-
function! ale_linters#ruby#rubocop#Handle(buffer, lines)
" Matches patterns line the following:
"
diff --git a/ale_linters/sass/sasslint.vim b/ale_linters/sass/sasslint.vim
index eb14ba9c..8c497edf 100644
--- a/ale_linters/sass/sasslint.vim
+++ b/ale_linters/sass/sasslint.vim
@@ -1,11 +1,5 @@
" Author: KabbAmine - https://github.com/KabbAmine
-if exists('g:loaded_ale_linters_sass_sasslint')
- finish
-endif
-
-let g:loaded_ale_linters_sass_sasslint = 1
-
call ale#linter#Define('sass', {
\ 'name': 'sasslint',
\ 'executable': 'sass-lint',
diff --git a/ale_linters/scala/scalac.vim b/ale_linters/scala/scalac.vim
index 648e3460..ea13bbd6 100644
--- a/ale_linters/scala/scalac.vim
+++ b/ale_linters/scala/scalac.vim
@@ -2,12 +2,6 @@
" Author: Zoltan Kalmar - https://github.com/kalmiz
" Description: Basic scala support using scalac
-if exists('g:loaded_ale_linters_scala_scalac')
- finish
-endif
-
-let g:loaded_ale_linters_scala_scalac = 1
-
function! ale_linters#scala#scalac#Handle(buffer, lines)
" Matches patterns line the following:
"
diff --git a/ale_linters/scss/sasslint.vim b/ale_linters/scss/sasslint.vim
index c0dd09c8..0b78f3b0 100644
--- a/ale_linters/scss/sasslint.vim
+++ b/ale_linters/scss/sasslint.vim
@@ -1,11 +1,5 @@
" Author: KabbAmine - https://github.com/KabbAmine
-if exists('g:loaded_ale_linters_scss_sasslint')
- finish
-endif
-
-let g:loaded_ale_linters_scss_sasslint = 1
-
call ale#linter#Define('scss', {
\ 'name': 'sasslint',
\ 'executable': 'sass-lint',
diff --git a/ale_linters/scss/scsslint.vim b/ale_linters/scss/scsslint.vim
index e7541bb2..399082fa 100644
--- a/ale_linters/scss/scsslint.vim
+++ b/ale_linters/scss/scsslint.vim
@@ -1,12 +1,6 @@
" Author: w0rp <devw0rp@gmail.com>
" Description: This file add scsslint support for SCSS support
-if exists('g:loaded_ale_linters_scss_scsslint')
- finish
-endif
-
-let g:loaded_ale_linters_scss_scsslint = 1
-
function! ale_linters#scss#scsslint#Handle(buffer, lines)
" Matches patterns like the following:
"
diff --git a/ale_linters/sh/shell.vim b/ale_linters/sh/shell.vim
index 9866309e..f996f7e1 100644
--- a/ale_linters/sh/shell.vim
+++ b/ale_linters/sh/shell.vim
@@ -1,12 +1,6 @@
" Author: w0rp <devw0rp@gmail.com>
" Description: Lints sh files using bash -n
-if exists('g:loaded_ale_linters_sh_shell')
- finish
-endif
-
-let g:loaded_ale_linters_sh_shell = 1
-
" This option can be changed to change the default shell when the shell
" cannot be taken from the hashbang line.
if !exists('g:ale_linters_sh_shell_default_shell')
diff --git a/ale_linters/sh/shellcheck.vim b/ale_linters/sh/shellcheck.vim
index 82ca5947..3fdad5f2 100644
--- a/ale_linters/sh/shellcheck.vim
+++ b/ale_linters/sh/shellcheck.vim
@@ -2,12 +2,6 @@
" Description: This file adds support for using the shellcheck linter with
" shell scripts.
-if exists('g:loaded_ale_linters_sh_shellcheck')
- finish
-endif
-
-let g:loaded_ale_linters_sh_shellcheck = 1
-
" This global variable can be set with a string of comma-seperated error
" codes to exclude from shellcheck. For example:
"
diff --git a/ale_linters/testft/testlinter.vim b/ale_linters/testft/testlinter.vim
new file mode 100644
index 00000000..65e0b205
--- /dev/null
+++ b/ale_linters/testft/testlinter.vim
@@ -0,0 +1,10 @@
+" Author: neersighted <bjorn@neersighted.com>
+" Description: dummy linter to use in tests
+
+call ale#linter#Define('testft', {
+\ 'name': 'testlinter',
+\ 'output_stream': 'stdout',
+\ 'executable': 'testlinter',
+\ 'command': 'testlinter',
+\ 'callback': 'testCB',
+\})
diff --git a/ale_linters/typescript/tslint.vim b/ale_linters/typescript/tslint.vim
index d0e5ee0b..04863e20 100644
--- a/ale_linters/typescript/tslint.vim
+++ b/ale_linters/typescript/tslint.vim
@@ -1,12 +1,6 @@
" Author: Prashanth Chandra https://github.com/prashcr
" Description: tslint for TypeScript files
-if exists('g:loaded_ale_linters_typescript_tslint')
- finish
-endif
-
-let g:loaded_ale_linters_typescript_tslint = 1
-
function! ale_linters#typescript#tslint#Handle(buffer, lines)
" Matches patterns like the following:
"
diff --git a/ale_linters/verilog/iverilog.vim b/ale_linters/verilog/iverilog.vim
index ec37df14..97d4a1f1 100644
--- a/ale_linters/verilog/iverilog.vim
+++ b/ale_linters/verilog/iverilog.vim
@@ -1,12 +1,6 @@
" Author: Masahiro H https://github.com/mshr-h
" Description: iverilog for verilog files
-if exists('g:loaded_ale_linters_verilog_iverilog')
- finish
-endif
-
-let g:loaded_ale_linters_verilog_iverilog = 1
-
function! ale_linters#verilog#iverilog#Handle(buffer, lines)
" Look for lines like the following.
"
diff --git a/ale_linters/verilog/verilator.vim b/ale_linters/verilog/verilator.vim
index 4fd0a295..440edeca 100644
--- a/ale_linters/verilog/verilator.vim
+++ b/ale_linters/verilog/verilator.vim
@@ -1,12 +1,6 @@
" Author: Masahiro H https://github.com/mshr-h
" Description: verilator for verilog files
-if exists('g:loaded_ale_linters_verilog_verilator')
- finish
-endif
-
-let g:loaded_ale_linters_verilog_verilator = 1
-
function! ale_linters#verilog#verilator#Handle(buffer, lines)
" Look for lines like the following.
"
diff --git a/ale_linters/vim/vint.vim b/ale_linters/vim/vint.vim
index c23574ac..c25d899c 100644
--- a/ale_linters/vim/vint.vim
+++ b/ale_linters/vim/vint.vim
@@ -1,12 +1,6 @@
" Author: w0rp <devw0rp@gmail.com>, KabbAmine <amine.kabb@gmail.com>
" Description: This file adds support for checking Vim code with Vint.
-if exists('g:loaded_ale_linters_vim_vint')
- finish
-endif
-
-let g:loaded_ale_linters_vim_vint = 1
-
" This flag can be used to change enable/disable style issues.
let g:ale_vim_vint_show_style_issues =
\ get(g:, 'ale_vim_vint_show_style_issues', 1)
diff --git a/ale_linters/yaml/yamllint.vim b/ale_linters/yaml/yamllint.vim
index 694d5115..a541a83d 100644
--- a/ale_linters/yaml/yamllint.vim
+++ b/ale_linters/yaml/yamllint.vim
@@ -1,11 +1,5 @@
" Author: KabbAmine <amine.kabb@gmail.com>
-if exists('g:loaded_ale_linters_yaml_yamllint')
- finish
-endif
-
-let g:loaded_ale_linters_yaml_yamllint = 1
-
function! ale_linters#yaml#yamllint#Handle(buffer, lines)
" Matches patterns line the following:
" something.yaml:1:1: [warning] missing document start "---" (document-start)
diff --git a/autoload/ale/linter.vim b/autoload/ale/linter.vim
index e6dc9b16..9f4eb798 100644
--- a/autoload/ale/linter.vim
+++ b/autoload/ale/linter.vim
@@ -7,7 +7,6 @@ let s:linters = {}
" Default filetype aliaes.
" The user defined aliases will be merged with this Dictionary.
let s:default_ale_linter_aliases = {
-\ 'javascript.jsx': 'javascript',
\ 'zsh': 'sh',
\ 'csh': 'sh',
\}
@@ -19,6 +18,11 @@ let s:default_ale_linters = {
\ 'csh': ['shell'],
\}
+" Testing/debugging helper to unload all linters.
+function! ale#linter#Reset() abort
+ let s:linters = {}
+endfunction
+
function! ale#linter#Define(filetype, linter) abort
if !has_key(s:linters, a:filetype)
let s:linters[a:filetype] = []
@@ -74,45 +78,52 @@ function! s:LoadLinters(filetype) abort
return s:linters[a:filetype]
endfunction
-function! ale#linter#Get(original_filetype) abort
- " Try and get an aliased file type either from the user's Dictionary, or
- " our default Dictionary, otherwise use the filetype as-is.
- let l:filetype = get(
- \ g:ale_linter_aliases,
- \ a:original_filetype,
- \ get(
- \ s:default_ale_linter_aliases,
- \ a:original_filetype,
- \ a:original_filetype
- \ )
- \)
-
- " Try and get a list of linters to run, using the original file type,
- " not the aliased filetype. We have some linters to limit by default,
- " and users may define their own list of linters to run.
- let l:linter_names = get(
- \ g:ale_linters,
- \ a:original_filetype,
- \ get(
- \ s:default_ale_linters,
- \ a:original_filetype,
- \ 'all'
- \ )
- \)
-
- let l:all_linters = s:LoadLinters(l:filetype)
+function! ale#linter#Get(original_filetypes) abort
let l:combined_linters = []
- if type(l:linter_names) == type('') && l:linter_names ==# 'all'
- let l:combined_linters = l:all_linters
- elseif type(l:linter_names) == type([])
- " Select only the linters we or the user has specified.
- for l:linter in l:all_linters
- if index(l:linter_names, l:linter.name) >= 0
- call add(l:combined_linters, l:linter)
- endif
- endfor
- endif
+ " Handle dot-seperated filetypes.
+ for l:original_filetype in split(a:original_filetypes, '\.')
+ " Try and get an aliased file type either from the user's Dictionary, or
+ " our default Dictionary, otherwise use the filetype as-is.
+ let l:filetype = get(
+ \ g:ale_linter_aliases,
+ \ l:original_filetype,
+ \ get(
+ \ s:default_ale_linter_aliases,
+ \ l:original_filetype,
+ \ l:original_filetype
+ \ )
+ \)
+
+ " Try and get a list of linters to run, using the original file type,
+ " not the aliased filetype. We have some linters to limit by default,
+ " and users may define their own list of linters to run.
+ let l:linter_names = get(
+ \ g:ale_linters,
+ \ l:original_filetype,
+ \ get(
+ \ s:default_ale_linters,
+ \ l:original_filetype,
+ \ 'all'
+ \ )
+ \)
+
+ let l:all_linters = s:LoadLinters(l:filetype)
+ let l:filetype_linters = []
+
+ if type(l:linter_names) == type('') && l:linter_names ==# 'all'
+ let l:filetype_linters = l:all_linters
+ elseif type(l:linter_names) == type([])
+ " Select only the linters we or the user has specified.
+ for l:linter in l:all_linters
+ if index(l:linter_names, l:linter.name) >= 0
+ call add(l:filetype_linters, l:linter)
+ endif
+ endfor
+ endif
+
+ call extend(l:combined_linters, l:filetype_linters)
+ endfor
return l:combined_linters
endfunction
diff --git a/test/test_ale_linter_get.vader b/test/test_ale_linter_get.vader
index a6207c01..c8f67cb8 100644
--- a/test/test_ale_linter_get.vader
+++ b/test/test_ale_linter_get.vader
@@ -1,19 +1,43 @@
Before:
- let g:ale_linters = {}
- let g:ale_linter_aliases = {}
+ let g:testlinter1 = {'name': 'testlinter1', 'executable': 'testlinter1', 'command': 'testlinter1', 'callback': 'testCB1', 'output_stream': 'stdout'}
+ let g:testlinter2 = {'name': 'testlinter2', 'executable': 'testlinter2', 'command': 'testlinter2', 'callback': 'testCB2', 'output_stream': 'stdout'}
-After:
+ call ale#linter#Reset()
let g:ale_linters = {}
let g:ale_linter_aliases = {}
-Execute (Defaults should be correct):
- AssertEqual [{'output_stream': 'stdout', 'name': 'eslint', 'executable': 'eslint', 'command': 'eslint -f unix --stdin --stdin-filename %s', 'callback': 'ale_linters#javascript#eslint#Handle'}, {'output_stream': 'stdout', 'name': 'jscs', 'executable': 'jscs', 'command': 'jscs -r unix -n -', 'callback': 'ale#handlers#HandleUnixFormatAsError'}, {'output_stream': 'stdout', 'name': 'jshint', 'executable': 'jshint', 'command_callback': 'ale_linters#javascript#jshint#GetCommand', 'callback': 'ale#handlers#HandleUnixFormatAsError'}], ale#linter#Get('javascript')
+Execute (Define a linter):
+ call ale#linter#Define('testft', g:testlinter1)
+Then (Get the defined linter):
+ AssertEqual [g:testlinter1], ale#linter#Get('testft')
+
+Execute (Define a couple linters, filtering one.):
+ call ale#linter#Define('testft', g:testlinter1)
+ call ale#linter#Define('testft', g:testlinter2)
+ let g:ale_linters = {'testft': ['testlinter1']}
+Then (Only the configured linter should be returned):
+ AssertEqual [g:testlinter1], ale#linter#Get('testft')
+
+Execute (Define a linter for a filetype, and create a filetype alias):
+ call ale#linter#Define('testft1', g:testlinter1)
+ let g:ale_linter_aliases = {'testft2': 'testft1'}
+Then (Linters should be transparently aliased):
+ AssertEqual [g:testlinter1], ale#linter#Get('testft2')
+
+Execute (Define multiple linters, with filters and aliases):
+ call ale#linter#Define('testft1', g:testlinter1)
+ call ale#linter#Define('testft1', g:testlinter2)
+ let g:ale_linters = {'testft1': ['testlinter1'], 'testft2': ['testlinter2']}
+ let g:ale_linter_aliases = {'testft2': 'testft1'}
+Then (Linters should be transparently filtered and aliased):
+ AssertEqual [g:testlinter1], ale#linter#Get('testft1')
+ AssertEqual [g:testlinter2], ale#linter#Get('testft2')
-Execute (You should be able to select only a few linters):
- let g:ale_linters = {'javascript': ['eslint']}
- AssertEqual [{'output_stream': 'stdout', 'name': 'eslint', 'executable': 'eslint', 'command': 'eslint -f unix --stdin --stdin-filename %s', 'callback': 'ale_linters#javascript#eslint#Handle'}], ale#linter#Get('javascript')
+Execute (Define multiple linters for different filetypes):
+ call ale#linter#Define('testft1', g:testlinter1)
+ call ale#linter#Define('testft2', g:testlinter2)
+Then (Linters for dot-seperated filetypes should be properly handled):
+ AssertEqual [g:testlinter1, g:testlinter2], ale#linter#Get('testft1.testft2')
-Execute (You should be able to alias filetypes and select different linters):
- let g:ale_linter_aliases = {'foobar': 'javascript'}
- let g:ale_linters = {'javascript': ['eslint'], 'foobar': ['jshint']}
- AssertEqual [{'output_stream': 'stdout', 'name': 'jshint', 'executable': 'jshint', 'command_callback': 'ale_linters#javascript#jshint#GetCommand', 'callback': 'ale#handlers#HandleUnixFormatAsError'}], ale#linter#Get('foobar')
+Execute (Try to load a linter from disk):
+ AssertEqual [{'name': 'testlinter', 'output_stream': 'stdout', 'executable': 'testlinter', 'command': 'testlinter', 'callback': 'testCB'}], ale#linter#Get('testft')
diff --git a/test/test_ale_statusline.vader b/test/test_ale_statusline.vader
index 9866a75a..8fa8aaab 100644
--- a/test/test_ale_statusline.vader
+++ b/test/test_ale_statusline.vader
@@ -52,7 +52,7 @@ Execute (Given some warnings):
Then (Statusline is formatted to the users preference):
AssertEqual '3W', ale#statusline#Status()
-Execute (Given some warnings, and errors.):
+Execute (Given some warnings, and errors):
call ale#statusline#Update(bufnr('%'), [{'type': 'E'}, {'type': 'W'}, {'type': 'W'}])
Then (Statusline is formatted to the users preference):