summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--autoload/ale/fix.vim8
-rw-r--r--test/test_ale_fix.vader9
2 files changed, 16 insertions, 1 deletions
diff --git a/autoload/ale/fix.vim b/autoload/ale/fix.vim
index 6ed750ce..70a36edc 100644
--- a/autoload/ale/fix.vim
+++ b/autoload/ale/fix.vim
@@ -225,7 +225,13 @@ function! ale#fix#Fix() abort
let l:callback_list = []
for l:sub_type in split(&filetype, '\.')
- call extend(l:callback_list, get(g:ale_fixers, l:sub_type, []))
+ let l:sub_type_callacks = get(g:ale_fixers, l:sub_type, [])
+
+ if type(l:sub_type_callacks) == type('')
+ call add(l:callback_list, l:sub_type_callacks)
+ else
+ call extend(l:callback_list, l:sub_type_callacks)
+ endif
endfor
if empty(l:callback_list)
diff --git a/test/test_ale_fix.vader b/test/test_ale_fix.vader
index 50e0e065..95a37c6b 100644
--- a/test/test_ale_fix.vader
+++ b/test/test_ale_fix.vader
@@ -107,3 +107,12 @@ Expect(Only the second function should be applied):
$a
$b
$c
+
+Execute(ALEFix should handle strings for selecting a single function):
+ let g:ale_fixers.testft = 'AddCarets'
+ ALEFix
+
+Expect(The first function should be used):
+ ^a
+ ^b
+ ^c