summaryrefslogtreecommitdiff
path: root/autoload
diff options
context:
space:
mode:
authorJeff Willette <jrwillette88@gmail.com>2017-12-05 00:29:44 +0900
committerJeff Willette <jrwillette88@gmail.com>2017-12-05 00:37:31 +0900
commitfba3c57872de0ebf77586399405a25552298ad1b (patch)
treed2d70c10931d96631fdb1c1bba3559e644293dca /autoload
parent2f9869de44cf4b9542fc79a4c4566aa268910b23 (diff)
downloadale-fba3c57872de0ebf77586399405a25552298ad1b.zip
added importjs fixer
- added tests for fixer functions - added docs
Diffstat (limited to 'autoload')
-rw-r--r--autoload/ale/fix/registry.vim5
-rw-r--r--autoload/ale/fixers/importjs.vim24
2 files changed, 29 insertions, 0 deletions
diff --git a/autoload/ale/fix/registry.vim b/autoload/ale/fix/registry.vim
index 4fb229bd..5c09e785 100644
--- a/autoload/ale/fix/registry.vim
+++ b/autoload/ale/fix/registry.vim
@@ -54,6 +54,11 @@ let s:default_registry = {
\ 'description': 'Apply prettier-eslint to a file.',
\ 'aliases': ['prettier-eslint'],
\ },
+\ 'importjs': {
+\ 'function': 'ale#fixers#importjs#Fix',
+\ 'suggested_filetypes': ['javascript'],
+\ 'description': 'automatic imports for javascript',
+\ },
\ 'puppetlint': {
\ 'function': 'ale#fixers#puppetlint#Fix',
\ 'suggested_filetypes': ['puppet'],
diff --git a/autoload/ale/fixers/importjs.vim b/autoload/ale/fixers/importjs.vim
new file mode 100644
index 00000000..e8eedb12
--- /dev/null
+++ b/autoload/ale/fixers/importjs.vim
@@ -0,0 +1,24 @@
+" Author: Jeff Willette <jrwillette88@gmail.com>
+" Description: Integration of importjs with ALE.
+
+call ale#Set('js_importjs_executable', 'importjs')
+
+function! ale#fixers#importjs#ProcessOutput(buffer, output) abort
+ let l:result = ale#util#FuzzyJSONDecode(a:output, [])
+ return split(get(l:result, 'fileContent', ''), "\n")
+endfunction
+
+function! ale#fixers#importjs#Fix(buffer) abort
+ let l:executable = ale#Var(a:buffer, 'js_importjs_executable')
+
+ if !executable(l:executable)
+ return 0
+ endif
+
+ return {
+ \ 'command': ale#Escape(l:executable)
+ \ . ' fix'
+ \ . ' %s',
+ \ 'process_with': 'ale#fixers#importjs#ProcessOutput',
+ \}
+endfunction