summaryrefslogtreecommitdiff
path: root/autoload
diff options
context:
space:
mode:
authorw0rp <devw0rp@gmail.com>2017-06-28 16:20:01 +0100
committerw0rp <devw0rp@gmail.com>2017-06-28 16:20:05 +0100
commit8846a8860f39027c0c2a7aba9e49ad2fdacd5428 (patch)
tree85340d62b2fdb0d68e4d76694f47bd00165ba3c1 /autoload
parentf883d4d4fd20a928f2d224f342d5751ff3fd1a18 (diff)
downloadale-8846a8860f39027c0c2a7aba9e49ad2fdacd5428.zip
Use a new window for the ALEFixSuggest command, and document it better
Diffstat (limited to 'autoload')
-rw-r--r--autoload/ale/fix/registry.vim60
1 files changed, 36 insertions, 24 deletions
diff --git a/autoload/ale/fix/registry.vim b/autoload/ale/fix/registry.vim
index 7219410d..0dbbc0c5 100644
--- a/autoload/ale/fix/registry.vim
+++ b/autoload/ale/fix/registry.vim
@@ -116,44 +116,56 @@ endfunction
" Suggest functions to use from the registry.
function! ale#fix#registry#Suggest(filetype) abort
let l:type_list = split(a:filetype, '\.')
- let l:first_for_filetype = 1
- let l:first_generic = 1
+ let l:filetype_fixer_list = []
for l:key in sort(keys(s:entries))
let l:suggested_filetypes = s:entries[l:key].suggested_filetypes
if s:ShouldSuggestForType(l:suggested_filetypes, l:type_list)
- if l:first_for_filetype
- let l:first_for_filetype = 0
- echom 'Try the following fixers appropriate for the filetype:'
- echom ''
- endif
-
- echom printf('%s - %s', string(l:key), s:entries[l:key].description)
+ call add(
+ \ l:filetype_fixer_list,
+ \ printf('%s - %s', string(l:key), s:entries[l:key].description),
+ \)
endif
endfor
+ let l:generic_fixer_list = []
for l:key in sort(keys(s:entries))
if empty(s:entries[l:key].suggested_filetypes)
- if l:first_generic
- if !l:first_for_filetype
- echom ''
- endif
-
- let l:first_generic = 0
- echom 'Try the following generic fixers:'
- echom ''
- endif
-
- echom printf('%s - %s', string(l:key), s:entries[l:key].description)
+ call add(
+ \ l:generic_fixer_list,
+ \ printf('%s - %s', string(l:key), s:entries[l:key].description),
+ \)
endif
endfor
- if l:first_for_filetype && l:first_generic
- echom 'There is nothing in the registry to suggest.'
+ let l:filetype_fixer_header = !empty(l:filetype_fixer_list)
+ \ ? ['Try the following fixers appropriate for the filetype:', '']
+ \ : []
+ let l:generic_fixer_header = !empty(l:generic_fixer_list)
+ \ ? ['Try the following generic fixers:', '']
+ \ : []
+
+ let l:has_both_lists = !empty(l:filetype_fixer_list) && !empty(l:generic_fixer_list)
+
+ let l:lines =
+ \ l:filetype_fixer_header
+ \ + l:filetype_fixer_list
+ \ + (l:has_both_lists ? [''] : [])
+ \ + l:generic_fixer_header
+ \ + l:generic_fixer_list
+
+ if empty(l:lines)
+ let l:lines = ['There is nothing in the registry to suggest.']
else
- echom ''
- echom 'See :help ale-fix-configuration'
+ let l:lines += ['', 'See :help ale-fix-configuration']
endif
+
+ let l:lines += ['', 'Press q to close this window']
+
+ new +set\ filetype=ale-fix-suggest
+ call setline(1, l:lines)
+ setlocal nomodified
+ setlocal nomodifiable
endfunction