diff options
author | w0rp <devw0rp@gmail.com> | 2017-06-28 16:20:01 +0100 |
---|---|---|
committer | w0rp <devw0rp@gmail.com> | 2017-06-28 16:20:05 +0100 |
commit | 8846a8860f39027c0c2a7aba9e49ad2fdacd5428 (patch) | |
tree | 85340d62b2fdb0d68e4d76694f47bd00165ba3c1 /autoload | |
parent | f883d4d4fd20a928f2d224f342d5751ff3fd1a18 (diff) | |
download | ale-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.vim | 60 |
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 |