diff options
| author | Yaroslav <contact@yaroslavps.com> | 2020-02-25 14:47:03 +0300 | 
|---|---|---|
| committer | Yaroslav <contact@yaroslavps.com> | 2020-02-25 14:47:03 +0300 | 
| commit | d16e82d468eb0d5bb1e662ac4812c0ca6fc0fc64 (patch) | |
| tree | 6575864b75dc0c9de61b5d523e77dbcff785c998 /.vim/autoload/neomake | |
| parent | 69d47128244a06ee28e4b43191ef9216b04bce13 (diff) | |
| download | vimrice-d16e82d468eb0d5bb1e662ac4812c0ca6fc0fc64.tar.gz vimrice-d16e82d468eb0d5bb1e662ac4812c0ca6fc0fc64.zip | |
reorganized repo to be easier to use with GNU stow; added script to stow
Diffstat (limited to '.vim/autoload/neomake')
118 files changed, 0 insertions, 9878 deletions
| diff --git a/.vim/autoload/neomake/action_queue.vim b/.vim/autoload/neomake/action_queue.vim deleted file mode 100644 index 4fc3fc1..0000000 --- a/.vim/autoload/neomake/action_queue.vim +++ /dev/null @@ -1,307 +0,0 @@ -if !exists('s:action_queue') -    let s:action_queue = [] -endif -if !exists('s:action_queue_registered_events') -    let s:action_queue_registered_events = [] -endif -let s:action_queue_timer_timeouts = get(g:, 'neomake_action_queue_timeouts', {1: 100, 2: 200, 3: 500}) - -let g:neomake#action_queue#processed = {} -let g:neomake#action_queue#not_processed = {} -let g:neomake#action_queue#any_event = [] - -let g:neomake#action_queue#_s = s: - -function! s:actionname(funcref) abort -    let s = string(a:funcref) -    let r = matchstr(s, '\v^^function\(''\zs.*\ze''\)$') -    if empty(r) -        return s -    endif -    return substitute(r, '\v^(\<SNR\>\d+_|s:)', '', '') -endfunction - -" Queue an action to be processed later for autocmd a:event or through a timer -" for a:event=Timer. -" It will call a:data[0], with a:data[1] as args (where the first should be -" a jobinfo object).  The callback should return 1 if it was successful, -" with 0 it will be re-queued. -" When called recursively (queuing the same event/data again, it will be -" re-queued also). -function! neomake#action_queue#add(events, data) abort -    let job_or_make_info = a:data[1][0] -    if a:events is# g:neomake#action_queue#any_event -        call neomake#log#debug(printf('Queuing action %s for any event.', -                    \ s:actionname(a:data[0])), job_or_make_info) -    else -        call neomake#log#debug(printf('Queuing action %s for %s.', -                    \ s:actionname(a:data[0]), join(a:events, ', ')), job_or_make_info) -    endif - -    for event in a:events -        if event ==# 'Timer' -            if !has_key(job_or_make_info, 'action_queue_timer_tries') -                let job_or_make_info.action_queue_timer_tries = {'count': 1, 'data': a:data[0]} -            else -                let job_or_make_info.action_queue_timer_tries.count += 1 -            endif -            if has_key(s:action_queue_timer_timeouts, job_or_make_info.action_queue_timer_tries.count) -                let timeout = s:action_queue_timer_timeouts[job_or_make_info.action_queue_timer_tries.count] -            else -                throw printf('Neomake: Giving up handling Timer callbacks after %d attempts. Please report this. See :messages for more information.', len(s:action_queue_timer_timeouts)) -            endif -            if has('timers') -                if exists('s:action_queue_timer') -                    call timer_stop(s:action_queue_timer) -                endif -                let s:action_queue_timer = timer_start(timeout, function('s:process_action_queue_timer_cb')) -                call neomake#log#debug(printf( -                            \ 'Retrying Timer event in %dms (timer %d).', -                            \ timeout, s:action_queue_timer), job_or_make_info) -            else -                call neomake#log#debug('Retrying Timer event on CursorHold(I).', job_or_make_info) -                if !exists('#neomake_event_queue#CursorHold') -                    let s:action_queue_registered_events += ['CursorHold', 'CursorHoldI'] -                    augroup neomake_event_queue -                        exe 'autocmd CursorHold,CursorHoldI * call s:process_action_queue('''.event.''')' -                    augroup END -                endif -            endif -        else -            if !exists('#neomake_event_queue#'.event) -                let s:action_queue_registered_events += [event] -                augroup neomake_event_queue -                    exe 'autocmd '.event.' * call s:process_action_queue('''.event.''')' -                augroup END -            endif -        endif -    endfor -    call add(s:action_queue, [a:events, a:data]) -    return g:neomake#action_queue#not_processed -endfunction - -" Remove any queued actions for a jobinfo or make_info object. -function! neomake#action_queue#clean(job_or_make_info) abort -    let len_before = len(s:action_queue) -    call filter(s:action_queue, 'v:val[1][1][0] != a:job_or_make_info') -    let removed = len_before - len(s:action_queue) -    if removed -        call s:clean_action_queue_events() -        call neomake#log#debug(printf( -                    \ 'Removed %d action queue entries.', -                    \ removed), a:job_or_make_info) -    endif -endfunction - -" Remove given action for a jobinfo or make_info object. -function! neomake#action_queue#remove(job_or_make_info, action) abort -    let len_before = len(s:action_queue) -    call filter(s:action_queue, 'v:val[1][1][0] != a:job_or_make_info || v:val[1][0] != a:action') -    let removed = len_before - len(s:action_queue) -    if removed -        call s:clean_action_queue_events() -        call neomake#log#debug(printf( -                    \ 'Removed %d action queue entries for %s.', -                    \ removed, s:actionname(a:action)), a:job_or_make_info) -    endif -endfunction - -function! s:process_action_queue_timer_cb(...) abort -    call neomake#log#debug(printf( -                \ 'action queue: callback for Timer queue (%d).', s:action_queue_timer)) -    unlet s:action_queue_timer -    call s:process_action_queue('Timer') -endfunction - -function! s:process_action_queue(event) abort -    let queue = s:action_queue -    let q_for_this_event = [] -    let i = 0 -    if g:neomake#core#_ignore_autocommands -        call neomake#log#debug(printf('action queue: skip processing for %s (ignore_autocommands=%d).', -                    \ a:event, g:neomake#core#_ignore_autocommands), -                    \ {'bufnr': bufnr('%'), 'winnr': winnr()}) -        return -    endif -    for [events, v] in queue -        if index(events, a:event) != -1 || events is# g:neomake#action_queue#any_event -            call add(q_for_this_event, [i, v]) -        endif -        let i += 1 -    endfor -    call neomake#log#debug(printf('action queue: processing for %s (%d items).', -                \ a:event, len(q_for_this_event)), {'bufnr': bufnr('%'), 'winnr': winnr()}) - -    let processed = [] -    let removed = 0 -    let stop_processing = {'make_id': [], 'job_id': []} -    for [idx_q_for_this_event, data] in q_for_this_event -        let job_or_make_info = data[1][0] -        let current_event = remove(queue, idx_q_for_this_event - removed) -        let removed += 1 - -        let make_id_job_id = {}  " make_id/job_id relevant to re-queue following. -        if has_key(job_or_make_info, 'make_id') -            if has_key(job_or_make_info, 'options') -                let make_id_job_id = { -                            \ 'make_id': job_or_make_info.make_id, -                            \ } -            else -                let make_id_job_id = { -                            \ 'make_id': job_or_make_info.make_id, -                            \ 'job_id': job_or_make_info.id, -                            \ } -            endif -        endif - -        " Skip/re-queue entries for same make/job. -        let skip = 0 -        for [prop_name, prop_value] in items(make_id_job_id) -            if index(stop_processing[prop_name], prop_value) != -1 -                call neomake#log#debug(printf('action queue: skipping %s for not processed %s.', -                            \ s:actionname(data[0]), prop_name), job_or_make_info) -                call add(queue, current_event) -                let skip = 1 -                break -            endif -        endfor -        if skip -            continue -        endif - -        call neomake#log#debug(printf('action queue: calling %s.', -                    \ s:actionname(data[0])), job_or_make_info) -        let queue_before_call = copy(queue) -        try -            " Call the queued action.  On failure they should have requeued -            " themselves already. -            let rv = call(data[0], data[1]) -        catch -            if v:exception =~# '^Neomake: ' -                let error = substitute(v:exception, '^Neomake: ', '', '') -            else -                let error = printf('Error during action queue processing: %s.', -                      \ v:exception) -            endif -            call neomake#log#exception(error, job_or_make_info) - -            " Cancel job in case its action failed to get re-queued after X -            " attempts. -            if has_key(job_or_make_info, 'id') -                call neomake#CancelJob(job_or_make_info.id) -            endif -            continue -        endtry -        if rv is# g:neomake#action_queue#processed -            let processed += [data] -            continue -        endif - -        if rv is# g:neomake#action_queue#not_processed -            if a:event !=# 'Timer' && has_key(job_or_make_info, 'action_queue_timer_tries') -                call neomake#log#debug('s:process_action_queue: decrementing timer tries for non-Timer event.', job_or_make_info) -                let job_or_make_info.action_queue_timer_tries.count -= 1 -            endif - -            " Requeue any entries for the same job. -            let i = 0 -            for q in queue_before_call -                for [prop_name, prop_value] in items(make_id_job_id) -                    " Assert current_event != q -                    if get(q[1][1][0], prop_name) == prop_value -                        call neomake#log#debug(printf('action queue: re-queuing %s for not processed %s.', -                                    \ s:actionname(q[1][0]), prop_name), job_or_make_info) -                        call add(queue, remove(queue, i)) -                        let i -= 1 -                        break -                    endif -                endfor -                let i += 1 -            endfor -            for [prop_name, prop_value] in items(make_id_job_id) -                call add(stop_processing[prop_name], prop_value) -            endfor -        else -            let args_str = neomake#utils#Stringify(data[1]) -            throw printf('Internal Neomake error: hook function %s(%s) returned unexpected value (%s)', data[0], args_str, rv) -        endif -    endfor -    call neomake#log#debug(printf('action queue: processed %d items.', -                \ len(processed)), {'bufnr': bufnr('%')}) - -    call s:clean_action_queue_events() -endfunction - -if has('timers') -    function! s:get_left_events() abort -        let r = {} -        for [events, _] in s:action_queue -            for event in events -                let r[event] = 1 -            endfor -        endfor -        return keys(r) -    endfunction -else -    function! s:get_left_events() abort -        let r = {} -        for [events, _] in s:action_queue -            for event in events -                if event ==# 'Timer' -                    let r['CursorHold'] = 1 -                    let r['CursorHoldI'] = 1 -                else -                    let r[event] = 1 -                endif -            endfor -        endfor -        return keys(r) -    endfunction -endif - -function! neomake#action_queue#get_queued_actions(jobinfo) abort -    " Check if there are any queued actions for this job. -    let queued_actions = [] -    for [events, v] in s:action_queue -        if v[1][0] == a:jobinfo -            let queued_actions += [[s:actionname(v[0]), events]] -        endif -    endfor -    return queued_actions -endfunction - -function! s:clean_action_queue_events() abort -    let left_events = s:get_left_events() - -    if empty(left_events) -        if exists('#neomake_event_queue') -            autocmd! neomake_event_queue -            augroup! neomake_event_queue -        endif -    else -        let clean_events = [] -        for event in s:action_queue_registered_events -            if index(left_events, event) == -1 -                let clean_events += [event] -            endif -        endfor -        if !empty(clean_events) -            augroup neomake_event_queue -            for event in clean_events -                if exists('#neomake_event_queue#'.event) -                    exe 'au! '.event -                endif -            endfor -            augroup END -        endif -    endif -    let s:action_queue_registered_events = left_events - -    if index(left_events, 'Timer') == -1 -        if exists('s:action_queue_timer') -            call timer_stop(s:action_queue_timer) -            unlet s:action_queue_timer -        endif -    endif -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/cmd.vim b/.vim/autoload/neomake/cmd.vim deleted file mode 100644 index 35806dc..0000000 --- a/.vim/autoload/neomake/cmd.vim +++ /dev/null @@ -1,192 +0,0 @@ -scriptencoding utf8 - -let s:last_completion = [] -function! neomake#cmd#complete_makers(ArgLead, CmdLine, ...) abort -    if a:CmdLine !~# '\s' -        " Just 'Neomake!' without following space. -        return [' '] -    endif - -    " Filter only by name before non-breaking space. -    let filter_name = split(a:ArgLead, ' ', 1)[0] - -    let file_mode = a:CmdLine =~# '\v^(Neomake|NeomakeFile)\s' - -    let compl_info = [bufnr('%'), &filetype, a:CmdLine] -    if empty(&filetype) -        let maker_names = neomake#GetProjectMakers() -    else -        let maker_names = neomake#GetMakers(&filetype) - -        " Prefer (only) makers for the current filetype. -        if file_mode -            if !empty(filter_name) -                call filter(maker_names, 'v:val[:len(filter_name)-1] ==# filter_name') -            endif -            if empty(maker_names) || s:last_completion == compl_info -                call extend(maker_names, neomake#GetProjectMakers()) -            endif -        else -            call extend(maker_names, neomake#GetProjectMakers()) -        endif -    endif - -    " Only display executable makers. -    let makers = [] -    for maker_name in maker_names -        try -            let maker = neomake#GetMaker(maker_name) -        catch /^Neomake: / -            let error = substitute(v:exception, '^Neomake: ', '', '').'.' -            call neomake#log#debug(printf('Could not get maker %s: %s', -                  \ maker_name, error)) -            continue -        endtry -        if type(get(maker, 'exe', 0)) != type('') || executable(maker.exe) -            let makers += [[maker_name, maker]] -        endif -    endfor - -    " Append maker.name if it differs, uses non-breaking-space. -    let r = [] -    for [maker_name, maker] in makers -        if maker.name !=# maker_name -                    \ && (empty(a:ArgLead) || stridx(maker_name, a:ArgLead) != 0) -            let r += [printf('%s (%s)', maker_name, maker.name)] -        else -            let r += [maker_name] -        endif -    endfor - -    let s:last_completion = compl_info -    if !empty(filter_name) -        call filter(r, 'v:val[:len(filter_name)-1] ==# filter_name') -    endif -    return r -endfunction - -function! neomake#cmd#complete_jobs(...) abort -    return join(map(neomake#GetJobs(), "v:val.id.': '.v:val.maker.name"), "\n") -endfunction - -function! s:is_neomake_list(list) abort -    if empty(a:list) -        return 0 -    endif -    return a:list[0].text =~# ' nmcfg:{.\{-}}$' -endfunction - -function! neomake#cmd#clean(file_mode) abort -    let buf = bufnr('%') -    call neomake#_clean_errors({ -          \ 'file_mode': a:file_mode, -          \ 'bufnr': buf, -          \ }) -    if a:file_mode -        if s:is_neomake_list(getloclist(0)) -            call setloclist(0, [], 'r') -            lclose -        endif -        call neomake#signs#ResetFile(buf) -        call neomake#statusline#ResetCountsForBuf(buf) -    else -        if s:is_neomake_list(getqflist()) -            call setqflist([], 'r') -            cclose -        endif -        call neomake#signs#ResetProject() -        call neomake#statusline#ResetCountsForProject() -    endif -    call neomake#EchoCurrentError(1) -endfunction - -" Enable/disable/toggle commands.  {{{ -function! s:handle_disabled_status(scope, disabled) abort -    if a:scope is# g: -        if a:disabled -            if exists('#neomake') -                autocmd! neomake -                augroup! neomake -            endif -            call neomake#configure#disable_automake() -        else -            call neomake#setup#setup_autocmds() -        endif -    elseif a:scope is# t: -        let buffers = neomake#compat#uniq(sort(tabpagebuflist())) -        if a:disabled -            for b in buffers -                call neomake#configure#disable_automake_for_buffer(b) -            endfor -        else -            for b in buffers -                call neomake#configure#enable_automake_for_buffer(b) -            endfor -        endif -    elseif a:scope is# b: -        let bufnr = bufnr('%') -        if a:disabled -            call neomake#configure#disable_automake_for_buffer(bufnr) -        else -            call neomake#configure#enable_automake_for_buffer(bufnr) -        endif -    endif -    call neomake#cmd#display_status() -    call neomake#configure#automake() -    call neomake#statusline#clear_cache() -endfunction - -function! neomake#cmd#disable(scope) abort -    let old = get(get(a:scope, 'neomake', {}), 'disabled', -1) -    if old ==# 1 -        return -    endif -    call neomake#config#set_dict(a:scope, 'neomake.disabled', 1) -    call s:handle_disabled_status(a:scope, 1) -endfunction - -function! neomake#cmd#enable(scope) abort -    let old = get(get(a:scope, 'neomake', {}), 'disabled', -1) -    if old != 1 -        return -    endif -    call neomake#config#set_dict(a:scope, 'neomake.disabled', 0) -    call s:handle_disabled_status(a:scope, 0) -endfunction - -function! neomake#cmd#toggle(scope) abort -    let new = !get(get(a:scope, 'neomake', {}), 'disabled', 0) -    if new -        call neomake#config#set_dict(a:scope, 'neomake.disabled', 1) -        call s:handle_disabled_status(a:scope, 1) -    else -        call neomake#config#unset_dict(a:scope, 'neomake.disabled') -        call s:handle_disabled_status(a:scope, 0) -    endif -endfunction - -function! neomake#cmd#display_status() abort -    let [disabled, source] = neomake#config#get_with_source('disabled', 0) -    let msg = 'Neomake is ' . (disabled ? 'disabled' : 'enabled') -    if source !=# 'default' -        let msg .= ' ('.source.')' -    endif - -    " Add information from different scopes (if explicitly configured there). -    for [scope_name, scope] in [['buffer', b:], ['tab', t:], ['global', g:]] -        if scope_name ==# source -            continue -        endif -        let disabled = get(get(scope, 'neomake', {}), 'disabled', -1) -        if disabled != -1 -            let msg .= printf(' [%s: %s]', scope_name, disabled ? 'disabled' : 'enabled') -        endif -    endfor -    let msg .= '.' - -    echom msg -    call neomake#log#debug(msg) -endfunction -" }}} - -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/compat.vim b/.vim/autoload/neomake/compat.vim deleted file mode 100644 index d558bf7..0000000 --- a/.vim/autoload/neomake/compat.vim +++ /dev/null @@ -1,322 +0,0 @@ -" Compatibility wrappers for different (Neo)Vim versions and platforms. - -if neomake#utils#IsRunningWindows() -    let g:neomake#compat#dev_null = 'NUL' -else -    let g:neomake#compat#dev_null = '/dev/null' -endif - -if v:version >= 704 -    function! neomake#compat#getbufvar(buf, key, def) abort -        return getbufvar(a:buf, a:key, a:def) -    endfunction -    function! neomake#compat#getwinvar(win, key, def) abort -        return getwinvar(a:win, a:key, a:def) -    endfunction -else -    function! neomake#compat#getbufvar(buf, key, def) abort -        return get(getbufvar(a:buf, ''), a:key, a:def) -    endfunction -    function! neomake#compat#getwinvar(win, key, def) abort -        return get(getwinvar(a:win, ''), a:key, a:def) -    endfunction -endif - -unlockvar neomake#compat#json_true -unlockvar neomake#compat#json_false -unlockvar neomake#compat#json_null -unlockvar neomake#compat#json_none - -if exists('v:none') -    let neomake#compat#json_none = v:none -else -    let neomake#compat#json_none = [] -endif - -if exists('*json_decode') -    let neomake#compat#json_true = v:true -    let neomake#compat#json_false = v:false -    let neomake#compat#json_null = v:null - -    if has('nvim') -        function! neomake#compat#json_decode(json) abort -            if a:json is# '' -                " Prevent Neovim from throwing E474: Attempt to decode a blank string. -                return g:neomake#compat#json_none -            endif -            return json_decode(a:json) -        endfunction -    else -        function! neomake#compat#json_decode(json) abort -            return json_decode(a:json) -        endfunction -    endif -else -    let neomake#compat#json_true = 1 -    let neomake#compat#json_false = 0 -    function! s:json_null() abort -    endfunction -    let neomake#compat#json_null = [function('s:json_null')] - -    " Via Syntastic (https://github.com/vim-syntastic/syntastic/blob/6fb14d624b6081459360fdbba743f82cf84c8f92/autoload/syntastic/preprocess.vim#L576-L607), -    " based on https://github.com/MarcWeber/vim-addon-json-encoding/blob/master/autoload/json_encoding.vim. -    " @vimlint(EVL102, 1, l:true) -    " @vimlint(EVL102, 1, l:false) -    " @vimlint(EVL102, 1, l:null) -    function! neomake#compat#json_decode(json) abort " {{{2 -        if a:json ==# '' -            return g:neomake#compat#json_none -        endif - -        " The following is inspired by https://github.com/MarcWeber/vim-addon-manager and -        " http://stackoverflow.com/questions/17751186/iterating-over-a-string-in-vimscript-or-parse-a-json-file/19105763#19105763 -        " A hat tip to Marc Weber for this trick -        " Replace newlines, which eval() does not like. -        let json = substitute(a:json, "\n", '', 'g') -        if substitute(json, '\v\"%(\\.|[^"\\])*\"|true|false|null|[+-]?\d+%(\.\d+%([Ee][+-]?\d+)?)?', '', 'g') !~# "[^,:{}[\\] \t]" -            " JSON artifacts -            let true = g:neomake#compat#json_true -            let false = g:neomake#compat#json_false -            let null = g:neomake#compat#json_null - -            try -                let object = eval(json) -            catch -                throw 'Neomake: Failed to parse JSON input: '.v:exception -            endtry -        else -            throw 'Neomake: Failed to parse JSON input: invalid input' -        endif - -        return object -    endfunction " }}}2 -    " @vimlint(EVL102, 0, l:true) -    " @vimlint(EVL102, 0, l:false) -    " @vimlint(EVL102, 0, l:null) -endif - -lockvar neomake#compat#json_true -lockvar neomake#compat#json_false -lockvar neomake#compat#json_null - -if exists('*uniq') -    function! neomake#compat#uniq(l) abort -        return uniq(a:l) -    endfunction -else -    function! neomake#compat#uniq(l) abort -        let n = len(a:l) -        if n < 2 -            return a:l -        endif -        let prev = a:l[0] -        let idx = 1 -        while idx < n -            if a:l[idx] ==# prev && type(a:l[idx]) == type(prev) -                call remove(a:l, idx) -                let n -= 1 -            else -                let prev = a:l[idx] -                let idx += 1 -            endif -        endwhile -        return a:l -    endfunction -endif - -if exists('*reltimefloat') -    function! neomake#compat#reltimefloat() abort -        return reltimefloat(reltime()) -    endfunction -else -    function! neomake#compat#reltimefloat() abort -        let t = split(reltimestr(reltime()), '\V.') -        return str2float(t[0] . '.' . t[1]) -    endfunction -endif - -" Wrapper around systemlist() that supports a list for a:cmd. -" It returns an empty string on error. -" NOTE: Neovim before 0.2.0 would throw an error (which is caught), but it -" does not set v:shell_error! -function! neomake#compat#systemlist(cmd) abort -    if empty(a:cmd) -        return [] -    endif -    if has('nvim') && exists('*systemlist') -        " @vimlint(EVL108, 1) -        if !has('nvim-0.2.0') -            try -                return systemlist(a:cmd) -            catch /^Vim\%((\a\+)\)\=:E902/ -                return '' -            endtry -        endif -        " @vimlint(EVL108, 0) -        return systemlist(a:cmd) -    endif - -    if type(a:cmd) == type([]) -        let cmd = join(map(a:cmd, 'neomake#utils#shellescape(v:val)')) -    else -        let cmd = a:cmd -    endif -    if exists('*systemlist') -        return systemlist(cmd) -    endif -    return split(system(cmd), '\n') -endfunction - -function! neomake#compat#globpath_list(path, pattern, suf) abort -    if v:version >= 705 || (v:version == 704 && has('patch279')) -        return globpath(a:path, a:pattern, a:suf, 1) -    endif -    return split(globpath(a:path, a:pattern, a:suf), '\n') -endfunction - -function! neomake#compat#glob_list(pattern) abort -    if v:version <= 703 -        return split(glob(a:pattern, 1), '\n') -    endif -    return glob(a:pattern, 1, 1) -endfunction - -if neomake#utils#IsRunningWindows() -    " Windows needs a shell to handle PATH/%PATHEXT% etc. -    function! neomake#compat#get_argv(exe, args, args_is_list) abort -        let prefix = &shell.' '.&shellcmdflag.' ' -        if a:args_is_list -            if a:exe ==# &shell && get(a:args, 0) ==# &shellcmdflag -                " Remove already existing &shell/&shellcmdflag from e.g. NeomakeSh. -                let argv = join(a:args[1:]) -            else -                let argv = join(map(copy([a:exe] + a:args), 'neomake#utils#shellescape(v:val)')) -            endif -        else -            let argv = a:exe . (empty(a:args) ? '' : ' '.a:args) -            if argv[0:len(prefix)-1] ==# prefix -                return argv -            endif -        endif -        return prefix.argv -    endfunction -elseif has('nvim') -    function! neomake#compat#get_argv(exe, args, args_is_list) abort -        if a:args_is_list -            return [a:exe] + a:args -        endif -        return a:exe . (empty(a:args) ? '' : ' '.a:args) -    endfunction -elseif neomake#has_async_support()  " Vim-async. -    function! neomake#compat#get_argv(exe, args, args_is_list) abort -        if a:args_is_list -            return [a:exe] + a:args -        endif -        " Use a shell to handle argv properly (Vim splits at spaces). -        let argv = a:exe . (empty(a:args) ? '' : ' '.a:args) -        return [&shell, &shellcmdflag, argv] -    endfunction -else -    " Vim (synchronously), via system(). -    function! neomake#compat#get_argv(exe, args, args_is_list) abort -        if a:args_is_list -            return join(map(copy([a:exe] + a:args), 'neomake#utils#shellescape(v:val)')) -        endif -        return a:exe . (empty(a:args) ? '' : ' '.a:args) -    endfunction -endif - -if v:version >= 704 || (v:version == 703 && has('patch831')) -    function! neomake#compat#gettabwinvar(t, w, v, d) abort -        return gettabwinvar(a:t, a:w, a:v, a:d) -    endfunction -else -    " Wrapper around gettabwinvar that has no default (older Vims). -    function! neomake#compat#gettabwinvar(t, w, v, d) abort -        let r = gettabwinvar(a:t, a:w, a:v) -        if r is# '' -            unlet r -            let r = a:d -        endif -        return r -    endfunction -endif - -" Not really necessary for now, but allows to overwriting and extending. -if exists('*nvim_get_mode') -    function! neomake#compat#get_mode() abort -        let mode = nvim_get_mode() -        return mode.mode -    endfunction -else -    function! neomake#compat#get_mode() abort -        return mode(1) -    endfunction -endif - -function! neomake#compat#in_completion() abort -    if pumvisible() -        return 1 -    endif -    if has('patch-8.0.0283') -        let mode = mode(1) -        if mode[1] ==# 'c' || mode[1] ==# 'x' -            return 1 -        endif -    endif -    return 0 -endfunction - -let s:prev_windows = [] -if exists('*win_getid') -    function! neomake#compat#save_prev_windows() abort -        call add(s:prev_windows, [win_getid(winnr('#')), win_getid(winnr())]) -    endfunction - -    function! neomake#compat#restore_prev_windows() abort -        " Go back, maintaining the '#' window (CTRL-W_p). -        let [aw_id, pw_id] = remove(s:prev_windows, 0) -        let pw = win_id2win(pw_id) -        if !pw -            call neomake#log#debug(printf( -                        \ 'Cannot restore previous windows (previous window with ID %d not found).', -                        \ pw_id)) -        elseif winnr() != pw -            let aw = win_id2win(aw_id) -            if aw -                exec aw . 'wincmd w' -            endif -            exec pw . 'wincmd w' -        endif -    endfunction -else -    function! neomake#compat#save_prev_windows() abort -        call add(s:prev_windows, [winnr('#'), winnr()]) -    endfunction - -    function! neomake#compat#restore_prev_windows() abort -        " Go back, maintaining the '#' window (CTRL-W_p). -        let [aw, pw] = remove(s:prev_windows, 0) -        if pw > winnr('$') -            call neomake#log#debug(printf( -                        \ 'Cannot restore previous windows (%d > %d).', -                        \ pw, winnr('$'))) -        elseif winnr() != pw -            if aw -                exec aw . 'wincmd w' -            endif -            exec pw . 'wincmd w' -        endif -    endfunction -endif - -if v:version >= 704 || (v:version == 703 && has('patch442')) -    function! neomake#compat#doautocmd(event) abort -        exec 'doautocmd <nomodeline> ' . a:event -    endfunction -else -    function! neomake#compat#doautocmd(event) abort -        exec 'doautocmd ' . a:event -    endfunction -endif -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/config.vim b/.vim/autoload/neomake/config.vim deleted file mode 100644 index 5f03cd1..0000000 --- a/.vim/autoload/neomake/config.vim +++ /dev/null @@ -1,192 +0,0 @@ -" Config API. - -let g:neomake#config#_defaults = { -            \ 'maker_defaults': { -            \   'buffer_output': 1, -            \   'output_stream': 'both', -            \   'remove_invalid_entries': 0, -            \ }} -lockvar g:neomake#config#_defaults - -let g:neomake#config#undefined = {} -lockvar! g:neomake#config#undefined - -" Resolve a:name (split on dots) and (optionally) init a:dict accordingly. -function! s:resolve_name(dict, name, init) abort -    let parts = type(a:name) == type([]) ? a:name : split(a:name, '\.') -    let c = a:dict -    for p in parts[0:-2] -        if !has_key(c, p) -            if !a:init -                return [g:neomake#config#undefined, ''] -            endif -            let c[p] = {} -        endif -        if type(c[p]) != type({}) -            return [g:neomake#config#undefined, ''] -        endif -        let c = c[p] -    endfor -    return [c, parts[-1]] -endfunction - -" Get a:name (list of keys) from a:dict, using a:prefixes. -function! s:get(dict, parts, prefixes) abort -    for prefix in a:prefixes -        let [c, k] = s:resolve_name(a:dict, prefix + a:parts[0:-1], 0) -        if has_key(c, k) -            return [prefix, get(c, k)] -        endif -    endfor -    return [[], g:neomake#config#undefined] -endfunction - -" Get a:name (string (split on dots), or list of keys) from config. -" See neomake#config#get_with_source for args. -function! neomake#config#get(name, ...) abort -    return call('neomake#config#get_with_source', [a:name] + a:000)[0] -endfunction - -" Get a:name (string (split on dots), or list of keys) from config, with -" information about the setting's source ('buffer', 'tab', 'global', 'maker', -" 'default'). -" Optional args: -"  - a:1: default value -"  - a:2: context: defaults to {'ft': &filetype} -"    - maker: a maker dict (where maker.name is used from for prefixes, and -"             as a lookup itself) -"    - ft: filetype string (use an empty string to ignore it) -"    - bufnr: buffer number (use an empty string to ignore it) -"    - maker_only: should settings get looked up only in the maker context? -"                  (i.e. with maker.name prefix in general and in context.maker) -"    - log_source: additional information to log. -function! neomake#config#get_with_source(name, ...) abort -    let context = a:0 > 1 ? a:2 : {'ft': &filetype, 'bufnr': bufnr('%')} -    let parts = type(a:name) == type([]) ? a:name : split(a:name, '\.') - -    let prefixes = [[]] -    if has_key(context, 'ft') && !empty(context.ft) -        for ft in neomake#utils#get_config_fts(context.ft, '.') -            call insert(prefixes, ['ft', ft], 0) -        endfor -    endif - -    let maker_name = get(get(context, 'maker', {}), 'name', '') -    let maker_only = get(context, 'maker_only', 0) -    if parts[0][0:1] ==# 'b:' -        if !has_key(context, 'bufnr') -            let context.bufnr = bufnr('%') -        endif -        let parts[0] = parts[0][2:-1] -        if context.bufnr is# '' -            let lookups = [] -        else -            let lookups = [['buffer', getbufvar(context.bufnr, 'neomake')]] -        endif -        call add(lookups, ['maker', get(context, 'maker', {})]) -    elseif empty(maker_name) && maker_only -        let lookups = [['maker', get(context, 'maker', {})]] -    else -        let lookups = (has_key(context, 'bufnr') && context.bufnr isnot# '' -                    \  ? [['buffer', getbufvar(context.bufnr, 'neomake')]] -                    \  : []) + [ -                    \ ['tab', get(t:, 'neomake', {})], -                    \ ['global', get(g:, 'neomake', {})], -                    \ ['maker', get(context, 'maker', {})]] -        if !empty(maker_name) -            if maker_only -                if parts[0] !=# maker_name -                    call map(prefixes, 'add(v:val, maker_name)') -                endif -            else -                for prefix in reverse(copy(prefixes)) -                    call insert(prefixes, prefix + [maker_name], 0) -                endfor -            endif -        endif -    endif - -    for [source, lookup] in lookups -        if !empty(lookup) -            if source ==# 'maker' -                let maker_prefixes = map(copy(prefixes), '!empty(v:val) && v:val[-1] ==# maker_name ? v:val[:-2] : v:val') -                let maker_setting_parts = parts[0] == maker_name ? parts[1:] : parts -                let [prefix, l:R] = s:get(lookup, maker_setting_parts, maker_prefixes) -            else -                let [prefix, l:R] = s:get(lookup, parts, prefixes) -            endif -            if R isnot# g:neomake#config#undefined -                let log_name = join(map(copy(parts), "substitute(v:val, '\\.', '|', '')"), '.') -                let log_source = get(context, 'log_source', '') -                call neomake#log#debug(printf( -                            \ "Using setting %s=%s from '%s'%s%s.", -                            \ log_name, string(R), source, -                            \   empty(prefix) ? '' : ' (prefix: '.string(prefix).')', -                            \   empty(log_source) ? '' : ' ('.log_source.')'), -                            \ context) -                return [R, source] -            endif -            unlet R  " for Vim without patch-7.4.1546 -        endif -        unlet lookup  " for Vim without patch-7.4.1546 -    endfor - -    " Return default. -    if a:0 -        return [a:1, 'default'] -    elseif has_key(g:neomake#config#_defaults, a:name) -        return [copy(g:neomake#config#_defaults[a:name]), 'default'] -    endif -    return [g:neomake#config#undefined, 'default'] -endfunction - - -" Set a:name in a:dict to a:value, after resolving it (split on dots). -function! s:set(dict, name, value) abort -    let [c, k] = s:resolve_name(a:dict, a:name, 1) -    let c[k] = a:value -    return c -endfunction - -" Set a:name (resolved on dots) to a:value in the config. -function! neomake#config#set(name, value) abort -    let parts = type(a:name) == type([]) ? a:name : split(a:name, '\.') -    if parts[0] =~# '^b:' -        let parts[0] = parts[0][2:-1] -        return neomake#config#set_buffer(bufnr('%'), parts, a:value) -    endif -    if !has_key(g:, 'neomake') -        let g:neomake = {} -    endif -    return s:set(g:neomake, parts, a:value) -endfunction - -" Set a:name (resolved on dots) to a:value for buffer a:bufnr. -function! neomake#config#set_buffer(bufnr, name, value) abort -    let bufnr = +a:bufnr -    let bneomake = getbufvar(bufnr, 'neomake') -    if bneomake is# '' -        unlet bneomake  " for Vim without patch-7.4.1546 -        let bneomake = {} -        call setbufvar(bufnr, 'neomake', bneomake) -    endif -    return s:set(bneomake, a:name, a:value) -endfunction - -" Set a:name (resolved on dots) to a:value in a:scope. -" This is meant for advanced usage, e.g.: -"   set_scope(t:, 'neomake.disabled', 1) -function! neomake#config#set_dict(dict, name, value) abort -    return s:set(a:dict, a:name, a:value) -endfunction - -" Unset a:name (resolved on dots). -" This is meant for advanced usage, e.g.: -"   unset_dict(t:, 'neomake.disabled', 1) -function! neomake#config#unset_dict(dict, name) abort -    let [c, k] = s:resolve_name(a:dict, a:name, 0) -    if has_key(c, k) -        unlet c[k] -    endif -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/configure.vim b/.vim/autoload/neomake/configure.vim deleted file mode 100644 index f802d7f..0000000 --- a/.vim/autoload/neomake/configure.vim +++ /dev/null @@ -1,785 +0,0 @@ -" Default settings, setup in global config dict. -let s:default_settings = { -            \ 'ignore_filetypes': ['startify'], -            \ } -let g:neomake = get(g:, 'neomake', {}) -let g:neomake.automake = get(g:neomake, 'automake', {}) -call extend(g:neomake.automake, s:default_settings, 'keep') - -if !exists('s:timer_info') -    let s:timer_info = {} -    let s:timer_by_bufnr = {} -endif - -let s:default_delay = has('timers') ? 500 : 0 - -" A mapping of configured buffers with cached settings (maker_jobs). -let s:configured_buffers = {} -" A list of configured/used autocommands. -let s:registered_events = [] - -" TextChanged gets triggered in this case when loading a buffer (Vim -" issue #2742). -let s:need_to_skip_first_textchanged = !has('nvim-0.3.2') && has('patch-8.0.1494') && !has('patch-8.0.1633') - - -" TODO: allow for namespaces, and prefer 'automake' here. -" TODO: handle bufnr!  (getbufvar) -function! s:get_setting(name, default) abort -    return get(get(b:, 'neomake', {}), a:name, -                \ get(get(t:, 'neomake', {}), a:name, -                \ get(get(g:, 'neomake', {}), a:name, a:default))) -endfunction - - -function! s:debug_log(msg, ...) abort -    let context = {'bufnr': bufnr('%')} -    if a:0 -        call extend(context, a:1) -    endif -    call neomake#log#debug(printf('automake: %s.', a:msg), context) -endfunction - -" Check if buffer's tick (or ft) changed. -function! s:tick_changed(context) abort -    let bufnr = +a:context.bufnr -    let ft = get(a:context, 'ft', getbufvar(bufnr, '&filetype')) -    let prev_tick = getbufvar(bufnr, '_neomake_automake_tick') -    let r = 1 -    if empty(prev_tick) -        call s:debug_log('tick changed (new)') -    else -        let cur_tick = [getbufvar(bufnr, 'changedtick'), ft] -        if cur_tick == prev_tick -            call s:debug_log('tick is unchanged') -            return 0 -        endif - -        " NOTE: every write (BufWritePost) increments b:changedtick. -        if a:context.event ==# 'BufWritePost' -            let adjusted_prev_tick = [prev_tick[0]+1, prev_tick[1]] -            if adjusted_prev_tick == cur_tick -                let r = 0 -                call setbufvar(bufnr, '_neomake_automake_tick', adjusted_prev_tick) -                call s:debug_log('tick is unchanged with BufWritePost adjustment') -            endif -        endif -    endif -    return r -endfunction - -function! neomake#configure#_update_automake_tick(bufnr, ft) abort -    if has_key(s:configured_buffers, a:bufnr) -        let tick = getbufvar(a:bufnr, 'changedtick') -        call s:debug_log('updating tick: '.tick) -        call setbufvar(a:bufnr, '_neomake_automake_tick', [tick, a:ft]) -    endif -endfunction - -function! neomake#configure#_reset_automake_cancelations(bufnr) abort -    if has_key(s:configured_buffers, a:bufnr) -        call setbufvar(a:bufnr, '_neomake_cancelations', [0, 0]) -    endif -endfunction - -function! s:update_cancel_rate(bufnr, via_timer) abort -    let canceled = getbufvar(a:bufnr, '_neomake_cancelations', [0, 0]) -    if a:via_timer -        let canceled[0] += 1 -    else -        let canceled[1] += 1 -    endif -    call setbufvar(a:bufnr, '_neomake_cancelations', canceled) -    return canceled -endfunction - -function! s:handle_changed_buffer(make_id, event) abort -    " Cleanup always. -    if exists('b:_neomake_automake_changed_context') -        let [make_id, prev_tick, changedtick, context] = b:_neomake_automake_changed_context - -        if s:need_to_skip_first_textchanged && a:event ==# 'TextChanged' -            if !get(b:, '_neomake_seen_TextChanged', 0) -                call s:debug_log('ignoring first TextChanged') -                let b:_neomake_seen_TextChanged = 1 -                return -            endif -        endif - -        if changedtick == b:changedtick -            call s:debug_log(printf('handle_changed_buffer: %s: tick was not changed', a:event)) -            return -        endif - -        unlet b:_neomake_automake_changed_context -        augroup neomake_automake_abort -            au! * <buffer> -        augroup END -    else -        return -    endif - -    if make_id != a:make_id -        call neomake#log#warning(printf('automake: handle_changed_buffer: mismatched make_id: %d != %d.', make_id, a:make_id)) -        return -    endif - -    let window_make_ids = get(w:, 'neomake_make_ids', []) -    if index(window_make_ids, a:make_id) == -1 -        return -    endif - -    call setbufvar(context.bufnr, '_neomake_automake_tick', prev_tick) -    call filter(b:_neomake_automake_make_ids, 'v:val != '.a:make_id) -    call s:update_cancel_rate(context.bufnr, 0) - -    call s:debug_log(printf('buffer was changed (%s), canceling make', a:event), {'make_id': a:make_id}) -    call neomake#CancelMake(a:make_id) - -    if a:event ==# 'TextChangedI' -        call s:debug_log('queueing make restart for InsertLeave', {'make_id': a:make_id}) -        let b:_neomake_postponed_automake_context = [1, context] -        augroup neomake_automake_retry -            au! * <buffer> -            autocmd InsertLeave <buffer> call s:do_postponed_automake(2) -        augroup END -    elseif context.delay -        call s:debug_log(printf('restarting timer for original event %s', context.event), {'make_id': a:make_id}) -        if has_key(context, '_via_timer_cb') -            unlet context._via_timer_cb -        endif -        if has_key(context, 'pos') -            unlet context.pos -        endif -        call s:neomake_do_automake(context) -    else -        call s:debug_log(printf('restarting for original event (%s) without delay', context.event)) -        call s:neomake_do_automake(context) -    endif -endfunction - -function! s:neomake_do_automake(context) abort -    let bufnr = +a:context.bufnr - -    if !get(a:context, '_via_timer_cb') && a:context.delay -        if exists('s:timer_by_bufnr[bufnr]') -            let timer = s:timer_by_bufnr[bufnr] -            call s:stop_timer(timer) -            call s:debug_log(printf('stopped existing timer: %d', timer), {'bufnr': bufnr}) -            call s:update_cancel_rate(bufnr, 1) -        endif -        if !s:tick_changed(a:context) -            call s:debug_log('buffer was not changed', {'bufnr': bufnr}) -            return -        endif - -        " Cancel any already running automake runs. -        let prev_make_ids = getbufvar(bufnr, '_neomake_automake_make_ids') -        if !empty(prev_make_ids) -            call s:debug_log(printf('stopping previous make runs: %s', join(prev_make_ids, ', '))) -            for prev_make_id in prev_make_ids -                call neomake#CancelMake(prev_make_id) -            endfor -            let canceled = s:update_cancel_rate(bufnr, 0) -        else -            let canceled = getbufvar(bufnr, '_neomake_cancelations', [0, 0]) -        endif - -        let delay = a:context.delay - -        " Increase delay for canceled/restarted timers, and canceled makes. -        " IDEA: take into account the mean duration of this make run. -        if canceled[0] || canceled[1] -            let [mult_timers, mult_makes, max_delay] = neomake#config#get('automake.cancelation_delay', [0.2, 0.5, 3000], {'bufnr': bufnr}) -            let cancel_rate = 1 + (canceled[0]*mult_timers + canceled[1]*mult_makes) -            let delay = min([max_delay, float2nr(ceil(delay * cancel_rate))]) -            call s:debug_log(printf('increasing delay (%d/%d canceled timers/makes, rate=%.2f): %d => %d/%d', canceled[0], canceled[1], cancel_rate, a:context.delay, delay, max_delay)) -        endif - -        let timer = timer_start(delay, function('s:automake_delayed_cb')) -        let s:timer_info[timer] = a:context -        if !has_key(a:context, 'pos') -            let s:timer_info[timer].pos = s:get_position_context() -        endif -        let s:timer_by_bufnr[bufnr] = timer -        call s:debug_log(printf('started timer (%dms): %d', delay, timer), -                    \ {'bufnr': a:context.bufnr}) -        return -    endif - -    let ft = getbufvar(bufnr, '&filetype') -    let event = a:context.event - -    call s:debug_log('neomake_do_automake: '.event, {'bufnr': bufnr}) -    if !s:tick_changed({'event': event, 'bufnr': bufnr, 'ft': ft}) -        call s:debug_log('buffer was not changed', {'bufnr': bufnr}) -        return -    endif -    let prev_tick = getbufvar(bufnr, '_neomake_automake_tick') - -    call s:debug_log(printf('enabled makers: %s', join(map(copy(a:context.maker_jobs), 'v:val.maker.name'), ', '))) -    let make_options = { -                \ 'file_mode': 1, -                \ 'jobs': deepcopy(a:context.maker_jobs), -                \ 'ft': ft, -                \ 'automake': 1} -    let jobinfos = neomake#Make(make_options) - -    let started_jobs = filter(copy(jobinfos), "!get(v:val, 'finished', 0)") -    call s:debug_log(printf('started jobs: %s', string(map(copy(started_jobs), 'v:val.id')))) -    if !empty(started_jobs) -        let make_id = jobinfos[0].make_id -        call setbufvar(bufnr, '_neomake_automake_make_ids', -                    \ neomake#compat#getbufvar(bufnr, '_neomake_automake_make_ids', []) + [make_id]) - -        " Setup buffer autocmd to cancel/restart make for changed buffer. -        let events = [] -        for event in ['TextChangedI', 'TextChanged'] -            if a:context.event !=# event -                call add(events, event) -            endif -        endfor -        call setbufvar(bufnr, '_neomake_automake_changed_context', [make_id, prev_tick, getbufvar(bufnr, 'changedtick'), a:context]) -        augroup neomake_automake_abort -            exe printf('au! * <buffer=%d>', bufnr) -            for event in events -                exe printf('autocmd %s <buffer=%d> call s:handle_changed_buffer(%s, %s)', -                            \ event, bufnr, string(make_id), string(event)) -            endfor -        augroup END -    endif -endfunction - -function! s:get_position_context() abort -    let w = exists('*win_getid') ? win_getid() : winnr() -    return [w, getpos('.'), neomake#compat#get_mode()] -endfunction - -function! s:automake_delayed_cb(timer) abort -    let timer_info = s:timer_info[a:timer] -    unlet s:timer_info[a:timer] -    unlet s:timer_by_bufnr[timer_info.bufnr] - -    if !bufexists(timer_info.bufnr) -        call s:debug_log(printf('buffer does not exist anymore for timer %d', a:timer), -                    \ {'bufnr': timer_info.bufnr}) -        return -    endif - -    call s:debug_log(printf('callback for timer %d (via %s)', string(a:timer), timer_info.event), -                \ {'bufnr': timer_info.bufnr}) - -    let bufnr = bufnr('%') -    if timer_info.bufnr != bufnr -        call s:debug_log(printf('buffer changed: %d => %d, queueing make restart for BufEnter,WinEnter', -                    \ timer_info.bufnr, bufnr)) -        let restart_context = copy(timer_info) -        call setbufvar(restart_context.bufnr, '_neomake_postponed_automake_context', [1, restart_context]) -        let b:_neomake_postponed_automake_context = [1, restart_context] -        augroup neomake_automake_retry -            exe 'au! * <buffer='.timer_info.bufnr.'>' -            exe 'autocmd BufEnter,WinEnter <buffer='.restart_context.bufnr.'> call s:do_postponed_automake(2)' -        augroup END -        return -    endif - -    if neomake#compat#in_completion() -        call s:debug_log('postponing automake during completion') -        if has_key(timer_info, 'pos') -            unlet timer_info.pos -        endif -        let b:_neomake_postponed_automake_context = [0, timer_info] - -        augroup neomake_automake_retry -            au! * <buffer> -            autocmd CompleteDone <buffer> call s:do_postponed_automake(1) -            autocmd InsertLeave <buffer> call s:do_postponed_automake(2) -        augroup END -        return -    endif - -    " Verify context/position is the same. -    " This is meant to give an additional delay after e.g. TextChanged. -    " Only events with delay are coming here, so this does not affect -    " BufWritePost etc typically. -    if !empty(timer_info.pos) -        let current_context = s:get_position_context() -        if current_context != timer_info.pos -            if current_context[2] != timer_info.pos[2] -                " Mode was changed. -                if current_context[2][0] ==# 'i' && timer_info.event !=# 'TextChangedI' -                    " Changed to insert mode, trigger on InsertLeave. -                    call s:debug_log(printf('context/position changed: %s => %s, restarting on InsertLeave', -                                \ string(timer_info.pos), string(current_context))) -                    let context = copy(timer_info) -                    let context.delay = 0 -                    unlet context.pos -                    call s:update_cancel_rate(bufnr, 1) -                    let b:_neomake_postponed_automake_context = [1, context] -                    augroup neomake_automake_retry -                        au! * <buffer> -                        autocmd InsertLeave <buffer> call s:do_postponed_automake(2) -                    augroup END -                    return -                endif -            endif -            call s:debug_log(printf('context/position changed: %s => %s, restarting', -                        \ string(timer_info.pos), string(current_context))) -            unlet timer_info.pos -            call s:update_cancel_rate(bufnr, 1) -            call s:neomake_do_automake(timer_info) -            return -        endif -    endif -    " endif - -    let context = copy(timer_info) -    let context._via_timer_cb = 1 -    call s:neomake_do_automake(context) -endfunction - -function! s:do_postponed_automake(step) abort -    if exists('b:_neomake_postponed_automake_context') -        let context = b:_neomake_postponed_automake_context - -        if context[0] == a:step - 1 -            if a:step == 2 -                call s:debug_log('re-starting postponed automake') -                let context[1].pos = s:get_position_context() -                call s:neomake_do_automake(context[1]) -            else -                let context[0] = a:step -                return -            endif -        else -            call s:debug_log('postponed automake: unexpected step '.a:step.', cleaning up') -        endif -        unlet b:_neomake_postponed_automake_context -    else -        call s:debug_log('missing context information for postponed automake') -    endif -    " Cleanup. -    augroup neomake_automake_retry -        autocmd! * <buffer> -    augroup END -endfunction - -" Parse/get events dict from args. -" a:config: config dict to write into. -" a:string_or_dict_config: a string or dict describing the config. -" a:1: default delay. -function! s:parse_events_from_args(config, string_or_dict_config, ...) abort -    " Get default delay from a:1. -    if a:0 -        if has('timers') -            let delay = a:1 -        else -            if a:1 != 0 -                call neomake#log#warning('automake: timer support is required for delayed events.') -            endif -            let delay = 0 -        endif -    else -        let delay = s:default_delay -    endif - -    if type(a:string_or_dict_config) == type({}) -        let events = copy(a:string_or_dict_config) - -        " Validate events. -        for [event, config] in items(events) -            if !exists('##'.event) -                call neomake#log#error(printf( -                            \ 'automake: event %s does not exist.', event)) -                unlet events[event] -                continue -            endif - -            if get(config, 'delay', 0) && !has('timers') -                call neomake#log#error(printf( -                            \ 'automake: timer support is required for automaking, removing event %s.', -                            \ event)) -                unlet events[event] -            endif -        endfor -        call neomake#config#set_dict(a:config, 'automake.events', events) -        if a:0 -            let a:config.automake_delay = a:1 -        endif -    else -        " Map string config to events dict. -        let modes = a:string_or_dict_config -        let events = {} -        let default_with_delay = {} - -        " Insert mode. -        if modes =~# 'i' -            if exists('##TextChangedI') && has('timers') -                let events['TextChangedI'] = default_with_delay -            else -                call s:debug_log('using CursorHoldI instead of TextChangedI') -                let events['CursorHoldI'] = (delay != 0 ? {'delay': 0} : {}) -            endif -        endif -        " Normal mode. -        if modes =~# 'n' -            if exists('##TextChanged') && has('timers') -                let events['TextChanged'] = default_with_delay -                if !has_key(events, 'TextChangedI') -                    " Run when leaving insert mode, since only TextChangedI would be triggered -                    " for `ciw` etc. -                    let events['InsertLeave'] = default_with_delay -                endif -            else -                call s:debug_log('using CursorHold instead of TextChanged') -                let events['CursorHold'] = (delay != 0 ? {'delay': 0} : {}) -                let events['InsertLeave'] = (delay != 0 ? {'delay': 0} : {}) -            endif -        endif -        " On writes. -        if modes =~# 'w' -            let events['BufWritePost'] = (delay != 0 ? {'delay': 0} : {}) -        endif -        " On reads. -        if modes =~# 'r' -            let events['BufWinEnter'] = {} -            let events['FileType'] = {} - -            " When a file was changed outside of Vim. -            " TODO: test -            let events['FileChangedShellPost'] = {} -            " XXX: FileType might work better, at least when wanting to skip filetypes. -            " let events['FileType'] = {'delay': a:0 > 1 ? delay : 0} -        endif -    endif - -    call neomake#config#set_dict(a:config, 'automake.events', events) -    if a:0 -        let a:config.automake_delay = delay -    endif -endfunction - -" Setup automake for buffer (current, or options.bufnr). -" a:1: delay -" a:2: options ('bufnr', 'makers') / or list of makers  TODO -function! neomake#configure#automake_for_buffer(string_or_dict_config, ...) abort -    let options = {} -    if a:0 -        let options.delay = a:1 -    endif -    let bufnr = bufnr('%') -    if a:0 > 1 -        if type(a:2) == type([]) -            let options.makers = a:2 -        else -            call extend(options, a:2) -            if has_key(options, 'bufnr') -                let bufnr = options.bufnr -                unlet options.bufnr -            endif -        endif -    endif -    return call('s:configure_buffer', [bufnr, a:string_or_dict_config, options]) -endfunction - -" Workaround for getbufvar not having support for defaults. -function! s:getbufvar(bufnr, name, default) abort -    let b_dict = getbufvar(+a:bufnr, '') -    if empty(b_dict) -        " NOTE: it is an empty string for non-existing buffers. -        return a:default -    endif -    return get(b_dict, a:name, a:default) -endfunction - -function! s:is_buffer_ignored(bufnr) abort -    " TODO: blacklist/whitelist. -    let bufnr = +a:bufnr -    let buftype = getbufvar(bufnr, '&buftype') -    if !empty(buftype) -        call s:debug_log(printf('ignoring buffer with buftype=%s', buftype), {'bufnr': bufnr}) -        return 1 -    endif - -    let ft = getbufvar(bufnr, '&filetype') -    if index(neomake#config#get('automake.ignore_filetypes', []), ft) != -1 -        call s:debug_log(printf('ignoring buffer with filetype=%s', ft), {'bufnr': bufnr}) -        return 1 -    endif -endfunction - -if exists('##OptionSet') -    function! s:update_buffer_options() abort -        let bufnr = bufnr('%') -        call s:maybe_reconfigure_buffer(bufnr) -    endfunction -    augroup neomake_automake_update -        au! -        au OptionSet buftype call s:update_buffer_options() -    augroup END -endif - -" a:1: string or dict describing the events -" a:2: options ('delay', 'makers') -function! s:configure_buffer(bufnr, ...) abort -    let bufnr = +a:bufnr -    let ft = getbufvar(bufnr, '&filetype') -    let config = s:getbufvar(bufnr, 'neomake', {}) -    let old_config = deepcopy(config) -    if a:0 -        let args = [config, a:1] -        if a:0 > 1 && has_key(a:2, 'delay') -            let args += [a:2.delay] -        endif -        call call('s:parse_events_from_args', args) -        call setbufvar(bufnr, 'neomake', config) - -        let implicit_config = {'custom': 1, 'ignore': 0} -    else -        let implicit_config = {'custom': 0, 'ignore': s:is_buffer_ignored(bufnr)} -    endif - -    " Register the buffer, and remember if it is custom. -    if has_key(s:configured_buffers, bufnr) -        let old_registration = copy(get(s:configured_buffers, bufnr, {})) -        call extend(s:configured_buffers[bufnr], implicit_config, 'force') -    else -        let s:configured_buffers[bufnr] = implicit_config - -        augroup neomake_automake_clean -            autocmd BufWipeout <buffer> call s:neomake_automake_clean(expand('<abuf>')) -        augroup END -    endif - -    if implicit_config.ignore -        return s:configured_buffers[bufnr] -    endif - -    let s:configured_buffers[bufnr].events_config = neomake#config#get('automake.events', {}) - -    " Create jobs. -    let options = a:0 > 1 ? a:2 : {} -    if has_key(options, 'makers') -        let makers = neomake#map_makers(options.makers, ft, 0) -        let source = 'options' -    else -        let [makers, source] = neomake#config#get_with_source('automake.enabled_makers') -        if makers is g:neomake#config#undefined -            unlet makers -            let makers = neomake#GetEnabledMakers(ft) -        else -            let makers = neomake#map_makers(makers, ft, 0) -        endif -    endif -    let options = {'file_mode': 1, 'ft': ft, 'bufnr': bufnr, 'automake': 1} -    let jobs = neomake#core#create_jobs(options, makers) -    let s:configured_buffers[bufnr].maker_jobs = jobs -    call s:debug_log(printf('configured buffer for ft=%s (%s)', -                \ ft, empty(jobs) ? 'no enabled makers' : join(map(copy(jobs), 'v:val.maker.name'), ', ').' ('.source.')'), {'bufnr': bufnr}) -    if old_config != config -        call s:debug_log('resetting tick because of config changes') -        call setbufvar(bufnr, '_neomake_automake_tick', []) -    elseif exists('old_registration') -        if old_registration != s:configured_buffers[bufnr] -            call s:debug_log('resetting tick because of registration changes') -            call setbufvar(bufnr, '_neomake_automake_tick', []) -        endif -    else -        call s:debug_log('setting tick for new buffer') -        call setbufvar(bufnr, '_neomake_automake_tick', []) -    endif - -    if a:0 -        " Setup autocommands etc (when called manually)?! -        call neomake#configure#automake() -    endif -    return config -endfunction - -function! s:maybe_reconfigure_buffer(bufnr) abort -    if has_key(s:configured_buffers, a:bufnr) && !s:configured_buffers[a:bufnr].custom -        call s:configure_buffer(a:bufnr) -    endif -endfunction - -" Called from autocommands. -function! s:neomake_automake(event, bufnr) abort -    let disabled = neomake#config#get_with_source('disabled', 0) -    if disabled[0] -        call s:debug_log(printf('disabled (%s)', disabled[1])) -        return -    endif -    let bufnr = +a:bufnr - -    if has_key(s:configured_buffers, bufnr) -        let buffer_config = s:configured_buffers[bufnr] -    else -        " Register the buffer, and remember that it's automatic. -        let buffer_config = s:configure_buffer(bufnr) -    endif -    if get(buffer_config, 'ignore', 0) -        " NOTE: might be too verbose. -        call s:debug_log('buffer is ignored') -        return -    endif - -    if s:need_to_skip_first_textchanged && a:event ==# 'TextChanged' -        if !getbufvar(bufnr, '_neomake_seen_TextChanged', 0) -            call s:debug_log('ignoring first TextChanged') -            call setbufvar(bufnr, '_neomake_seen_TextChanged', 1) -            return -        endif -    endif - -    call s:debug_log(printf('handling event %s', a:event), {'bufnr': bufnr}) - -    if empty(s:configured_buffers[bufnr].maker_jobs) -        call s:debug_log('no enabled makers', {'bufnr': bufnr}) -        return -    endif - -    call s:debug_log(printf('automake for event %s', a:event), {'bufnr': bufnr}) -    let config = s:configured_buffers[bufnr].events_config -    if !has_key(config, a:event) -        call s:debug_log('event is not registered', {'bufnr': bufnr}) -        return -    endif -    let config = config[a:event] - -    let event = a:event -    let bufnr = +a:bufnr -    " TODO: rename to neomake.automake.delay -    let delay = get(config, 'delay', s:get_setting('automake_delay', s:default_delay)) -    let context = { -                \ 'delay': delay, -                \ 'bufnr': bufnr, -                \ 'event': a:event, -                \ 'maker_jobs': s:configured_buffers[bufnr].maker_jobs, -                \ } -    if event ==# 'BufWinEnter' -        " Ignore context, so that e.g. with vim-stay restoring the view -        " (cursor position), it will still be triggered. -        let context.pos = [] -    endif -    call s:neomake_do_automake(context) -endfunction - -function! s:stop_timer(timer) abort -    let timer_info = s:timer_info[a:timer] -    unlet s:timer_info[a:timer] -    unlet s:timer_by_bufnr[timer_info.bufnr] -    call timer_stop(+a:timer) -endfunction - -function! s:stop_timers() abort -    let timers = keys(s:timer_info) -    if !empty(timers) -        call s:debug_log(printf('stopping timers: %s', join(timers, ', '))) -        for timer in timers -            call s:stop_timer(timer) -        endfor -    endif -endfunction - -function! neomake#configure#reset_automake() abort -    for bufnr in keys(s:configured_buffers) -        call s:neomake_automake_clean(bufnr) -    endfor -    let s:registered_events = [] -    call s:stop_timers() -    call neomake#configure#automake() -endfunction - -function! s:neomake_automake_clean(bufnr) abort -    if has_key(s:timer_by_bufnr, a:bufnr) -        let timer = s:timer_by_bufnr[a:bufnr] -        call s:stop_timer(timer) -        call s:debug_log('stopped timer for cleaned buffer: '.timer) -    endif -    if has_key(s:configured_buffers, a:bufnr) -        unlet s:configured_buffers[a:bufnr] -        augroup neomake_automake_clean -            exe printf('au! * <buffer=%d>', a:bufnr) -        augroup END -    endif -endfunction - -function! neomake#configure#disable_automake() abort -    call s:debug_log('disabling globally') -    call s:stop_timers() -endfunction - -function! neomake#configure#disable_automake_for_buffer(bufnr) abort -    call s:debug_log(printf('disabling buffer %d', a:bufnr)) -    if has_key(s:timer_by_bufnr, a:bufnr) -        let timer = s:timer_by_bufnr[a:bufnr] -        call s:stop_timer(timer) -        call s:debug_log('stopped timer for buffer: '.timer) -    endif -    if has_key(s:configured_buffers, a:bufnr) -        let s:configured_buffers[a:bufnr].disabled = 1 -    endif -endfunction - -function! neomake#configure#enable_automake_for_buffer(bufnr) abort -    if exists('s:configured_buffers[a:bufnr].disabled') -        call s:debug_log(printf('Re-enabled buffer %d', a:bufnr)) -        unlet s:configured_buffers[a:bufnr].disabled -    endif -endfunction - -function! neomake#configure#reset_automake_for_buffer(...) abort -    let bufnr = a:0 ? +a:1 : bufnr('%') -    call s:neomake_automake_clean(bufnr) -endfunction - -function! neomake#configure#automake(...) abort -    call s:debug_log(printf('configuring automake: %s', string(a:000))) -    if !exists('g:neomake') -        let g:neomake = {} -    endif -    if a:0 -        call call('s:parse_events_from_args', [g:neomake] + a:000) -    endif - -    let disabled_globally = get(get(g:, 'neomake', {}), 'disabled', 0) -    if disabled_globally -        let s:registered_events = [] -    else -        let s:registered_events = keys(get(get(g:neomake, 'automake', {}), 'events', {})) -    endif -    " Keep custom configured buffers. -    call filter(s:configured_buffers, 'v:val.custom') -    for b in keys(s:configured_buffers) -        if empty(s:configured_buffers[b].maker_jobs) -            continue -        endif -        if get(s:configured_buffers[b], 'disabled', 0) -            continue -        endif -        let b_cfg = neomake#config#get('b:automake.events', {}) -        for event_config in items(b_cfg) -            let event = event_config[0] -            if index(s:registered_events, event) == -1 -                call add(s:registered_events, event) -            endif -        endfor -    endfor -    call s:debug_log('registered events: '.join(s:registered_events, ', ')) - -    augroup neomake_automake -        au! -        for event in s:registered_events -            exe 'autocmd '.event." * call s:neomake_automake('".event."', expand('<abuf>'))" -        endfor -    augroup END -    if empty(s:registered_events) -        augroup! neomake_automake -    endif -endfunction - -augroup neomake_automake_base -    au! -    autocmd FileType * call s:maybe_reconfigure_buffer(expand('<abuf>')) -augroup END -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/core.vim b/.vim/autoload/neomake/core.vim deleted file mode 100644 index b61a351..0000000 --- a/.vim/autoload/neomake/core.vim +++ /dev/null @@ -1,120 +0,0 @@ -let g:neomake#core#valid_maker_name_pattern = '\v^\w+$' - -let g:neomake#core#_ignore_autocommands = 0 - -function! neomake#core#create_jobs(options, makers) abort -    let args = [a:options, a:makers] -    let jobs = call('s:bind_makers_for_job', args) -    return jobs -endfunction - -" Map/bind a:makers to a list of job options, using a:options. -function! s:bind_makers_for_job(options, makers) abort -    let r = [] -    for maker in a:makers -        let options = copy(a:options) -        try -            let maker = neomake#core#instantiate_maker(maker, options, 1) -        catch /^Neomake: skip_job: / -            let msg = substitute(v:exception, '^Neomake: skip_job: ', '', '') -            call neomake#log#debug(printf('%s: skipping job: %s.', -                        \ maker.name, msg), options) -            continue -        catch /^Neomake: / -            let error = substitute(v:exception, '^Neomake: ', '', '').'.' -            call neomake#log#error(error, options) -            continue -        endtry -        if !empty(maker) -            let options.maker = maker -            let r += [options] -        endif -    endfor -    return r -endfunction - -function! neomake#core#instantiate_maker(maker, options, check_exe) abort -    let maker = a:maker -    let options = a:options -    let ft = get(options, 'ft', '') -    let bufnr = get(options, 'bufnr', '') - -    " Call InitForJob function in maker object, if any. -    let l:Init = neomake#utils#GetSetting('InitForJob', maker, g:neomake#config#undefined, ft, bufnr) -    if empty(Init) -        " Deprecated: should use InitForJob instead. -        if has_key(maker, 'fn') -            unlet Init  " vim73 -            let l:Init = maker.fn -            call neomake#log#warn_once(printf("Please use 'InitForJob' instead of 'fn' for maker %s.", maker.name), -                        \ printf('deprecated-fn-%s', maker.name)) -        endif -    endif -    if !empty(Init) -        let returned_maker = call(Init, [options], maker) -        if returned_maker isnot# 0 -            " This conditional assignment allows to both return a copy -            " (factory), while also can be used as a init method. -            let maker = returned_maker -        endif -    endif - -    if has_key(maker, '_bind_args') -        call maker._bind_args() -        if type(maker.exe) != type('') -            let error = printf('Non-string given for executable of maker %s: type %s', -                        \ maker.name, type(maker.exe)) -            if !get(maker, 'auto_enabled', 0) -                throw 'Neomake: '.error -            endif -            call neomake#log#debug(error.'.', options) -            return {} -        endif -        if a:check_exe && !executable(maker.exe) -            if get(maker, 'auto_enabled', 0) -                call neomake#log#debug(printf( -                            \ 'Exe (%s) of auto-configured maker %s is not executable, skipping.', maker.exe, maker.name), options) -            else -                let error = printf('Exe (%s) of maker %s is not executable', maker.exe, maker.name) -                throw 'Neomake: '.error -            endif -            return {} -        endif -    endif -    return maker -endfunction - -" Base class for command makers. -let g:neomake#core#command_maker_base = {} - -function! g:neomake#core#command_maker_base._get_fname_for_args(jobinfo) abort dict -    " Append file?  (defaults to jobinfo.file_mode, project/global makers should set it to 0) -    let append_file = neomake#utils#GetSetting('append_file', self, a:jobinfo.file_mode, a:jobinfo.ft, a:jobinfo.bufnr) -    " Use/generate a filename?  (defaults to 1 if tempfile_name is set) -    let uses_filename = append_file || neomake#utils#GetSetting('uses_filename', self, has_key(self, 'tempfile_name'), a:jobinfo.ft, a:jobinfo.bufnr) -    if append_file || uses_filename -        let filename = self._get_fname_for_buffer(a:jobinfo) -        if append_file -            return filename -        endif -    endif -    return '' -endfunction - -function! g:neomake#core#command_maker_base._get_argv(_jobinfo) abort dict -    return neomake#compat#get_argv(self.exe, self.args, type(self.args) == type([])) -endfunction - -" Get tabnr and winnr for a given make ID. -function! neomake#core#get_tabwin_for_makeid(make_id) abort -    let curtab = tabpagenr() -    for t in [curtab] + range(1, curtab-1) + range(curtab+1, tabpagenr('$')) -        for w in range(1, tabpagewinnr(t, '$')) -            if index(neomake#compat#gettabwinvar(t, w, 'neomake_make_ids', []), a:make_id) != -1 -                return [t, w] -            endif -        endfor -    endfor -    return [-1, -1] -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/debug.vim b/.vim/autoload/neomake/debug.vim deleted file mode 100644 index 66abcaf..0000000 --- a/.vim/autoload/neomake/debug.vim +++ /dev/null @@ -1,273 +0,0 @@ -" Debug/feedback helpers. - -function! neomake#debug#pprint(d, ...) abort -    return call('s:pprint', [a:d] + a:000) -endfunction - -function! s:pprint(v, ...) abort -    let indent = a:0 ? a:1 : '' -    if type(a:v) ==# type({}) -        if empty(a:v) -            return '{}' -        endif -        let r = "{\n" -        for [k, l:V] in items(a:v) -            let r .= printf("%s  %s: %s,\n", -                        \ indent, -                        \ string(k), -                        \ s:pprint(neomake#utils#fix_self_ref(V), indent . '  ')) -            unlet V  " old-vim -        endfor -        let r .= indent.'}' -        return r -    elseif type(a:v) ==# type([]) -        if empty(a:v) -            return '[]' -        endif -        let r = '['."\n".join(map(copy(a:v), 'indent."  ".s:pprint(v:val, indent."  ")'), ",\n").",\n".indent.']' -        return r -    endif -    return string(a:v) -endfunction - -function! neomake#debug#validate_maker(maker) abort -    let issues = {'errors': [], 'warnings': []} - -    if has_key(a:maker, 'process_json') && has_key(a:maker, 'process_output') -        let issues.warnings += ['maker has process_json and process_output, but only process_json will be used.'] -        let check_process = ['process_json'] -    else -        let check_process = ['process_json', 'process_output'] -    endif - -    for f in check_process -        if has_key(a:maker, f) -            if has_key(a:maker, 'mapexpr') -                let issues.warnings += [printf( -                            \ 'maker has mapexpr, but only %s will be used.', -                            \ f)] -            endif -            if has_key(a:maker, 'postprocess') -                let issues.warnings += [printf( -                            \ 'maker has postprocess, but only %s will be used.', -                            \ f)] -            endif -            if has_key(a:maker, 'errorformat') -                let issues.warnings += [printf( -                            \ 'maker has errorformat, but only %s will be used.', -                            \ f)] -            endif -        endif -    endfor - -    try -        let maker = neomake#core#instantiate_maker(a:maker, {}, 0) -        if !executable(maker.exe) -            let t = get(maker, 'auto_enabled', 0) ? 'warnings' : 'errors' -            let issues[t] += [printf("maker's exe (%s) is not executable.", maker.exe)] -        endif -    catch /^Neomake: / -        let issues.errors += [substitute(v:exception, '^Neomake: ', '', '').'.'] -    endtry - -    if has_key(a:maker, 'name') -        if a:maker.name !~# g:neomake#core#valid_maker_name_pattern -            call add(issues['errors'], printf( -                  \ 'Invalid maker name: %s (should match %s)', -                  \ string(a:maker.name), -                  \ string(g:neomake#core#valid_maker_name_pattern))) -        endif -    endif - -    return issues -endfunction - -" Optional arg: ft -function! s:get_makers_info(...) abort -    let maker_names = call('neomake#GetEnabledMakers', a:000) -    if empty(maker_names) -        return ['None.'] -    endif -    let maker_defaults = g:neomake#config#_defaults['maker_defaults'] -    let r = [] -    for maker_name in maker_names -        let maker = call('neomake#GetMaker', [maker_name] + a:000) -        let r += [' - '.maker.name] -        let r += map(s:get_maker_info(maker, maker_defaults), "'  '.v:val") -    endfor -    return r -endfunction - -function! s:get_maker_info(maker, ...) abort -    let maker_defaults = a:0 ? a:1 : {} -    let maker = a:maker -    let r = [] -    for [k, l:V] in sort(copy(items(maker))) -        if k !=# 'name' && k !=# 'ft' && k !~# '^_' -            if !has_key(maker_defaults, k) -                        \ || type(V) != type(maker_defaults[k]) -                        \ || V !=# maker_defaults[k] -                let r += [' - '.k.': '.string(V)] -            endif -        endif -        unlet V  " vim73 -    endfor - -    let issues = neomake#debug#validate_maker(maker) -    if !empty(issues) -        for type in sort(copy(keys(issues))) -            let items = issues[type] -            if !empty(items) -                let r += [' - '.toupper(type) . ':'] -                for issue in items -                    let r += ['   - ' . issue] -                endfor -            endif -        endfor -    endif - -    if type(maker.exe) == type('') && executable(maker.exe) -        let version_arg = get(maker, 'version_arg', '--version') -        let exe = exists('*exepath') ? exepath(maker.exe) : maker.exe -        let version_output = neomake#compat#systemlist([exe, version_arg]) -        if empty(version_output) -            let version_output = [printf( -                        \ 'failed to get version information (%s)', -                        \ v:shell_error)] -        endif -        let r += [printf(' - version information (%s %s): %s', -                    \ exe, -                    \ version_arg, -                    \ join(version_output, "\n     "))] -    endif -    return r -endfunction - -function! s:get_fts_with_makers() abort -    return neomake#compat#uniq(sort(map(split(globpath(escape(&runtimepath, ' '), -          \ 'autoload/neomake/makers/ft/*.vim'), "\n"), -          \ 'fnamemodify(v:val, ":t:r")'))) -endfunction - -function! neomake#debug#get_maker_info(maker_name) abort -    let source = '' -    let maker = neomake#get_maker_by_name(a:maker_name, &filetype) -    if empty(maker) -        let maker = neomake#get_maker_by_name(a:maker_name) -        if empty(maker) -            let fts = filter(s:get_fts_with_makers(), 'v:val != &filetype') -            for ft in fts -                let maker = neomake#get_maker_by_name(a:maker_name, ft) -                if !empty(maker) -                    let source = 'filetype '.ft -                    break -                endif -            endfor -        else -            let source = 'project maker' -        endif -    endif -    if empty(maker) -        call neomake#log#error(printf('Maker not found: %s.', a:maker_name)) -        return [] -    endif -    let maker = neomake#create_maker_object(maker, &filetype) -    return [maker.name . (empty(source) ? '' : ' ('.source.')')] -                \ + s:get_maker_info(maker) -endfunction - -function! neomake#debug#display_info(...) abort -    let bang = a:0 ? a:1 : 0 -    if a:0 > 1 -        let maker_name = a:2 -        let lines = neomake#debug#get_maker_info(maker_name) -    else -        let lines = neomake#debug#_get_info_lines() -    endif -    if bang -        try -            call setreg('+', join(lines, "\n"), 'l') -        catch -            call neomake#log#error(printf( -                        \ 'Could not set clipboard: %s.', v:exception)) -            return -        endtry -        echom 'Copied Neomake info to clipboard ("+).' -    else -        echon join(lines, "\n") -    endif -endfunction - -function! s:trim(s) abort -    return substitute(a:s, '\v^[ \t\r\n]+|[ \t\r\n]+$', '', 'g') -endfunction - -function! neomake#debug#_get_info_lines() abort -    let r = [] -    let ft = &filetype - -    let r += ['#### Neomake debug information'] -    let r += [''] -    let r += ['Async support: '.neomake#has_async_support()] -    let r += ['Current filetype: '.ft] -    let r += ['Windows: '.neomake#utils#IsRunningWindows()] -    let r += ['[shell, shellcmdflag, shellslash]: '.string([&shell, &shellcmdflag, &shellslash])] -    let r += [join(map(split(neomake#utils#redir('verb set makeprg?'), '\n'), 's:trim(v:val)'), ', ')] - -    let r += [''] -    let r += ['##### Enabled makers'] -    let r += [''] -    let r += ['For the current filetype ("'.ft.'", used with :Neomake):'] -    let r += s:get_makers_info(ft) -    if empty(ft) -        let r += ['NOTE: the current buffer does not have a filetype.'] -    else -        let conf_ft = neomake#utils#get_ft_confname(ft) -        let r += ['NOTE: you can define g:neomake_'.conf_ft.'_enabled_makers' -                    \ .' to configure it (or b:neomake_'.conf_ft.'_enabled_makers).'] -    endif -    let r += [''] -    let r += ['For the project (used with :Neomake!):'] -    let r += s:get_makers_info() -    let r += ['NOTE: you can define g:neomake_enabled_makers to configure it.'] -    let r += [''] -    let r += ['Default maker settings:'] -    for [k, v] in items(neomake#config#get('maker_defaults')) -        let r += [' - '.k.': '.string(v)] -        unlet! v  " Fix variable type mismatch with Vim 7.3. -    endfor -    let r += [''] -    let r += ['##### Settings'] -    let r += [''] -    let r += ['###### New-style (dict, overrides old-style)'] -    let r += [''] -    let r += ['```'] - -    let r += ['g:neomake: '.(exists('g:neomake') ? s:pprint(g:neomake) : 'unset')] -    let r += ['b:neomake: '.(exists('b:neomake') ? s:pprint(b:neomake) : 'unset')] -    let r += ['```'] -    let r += [''] -    let r += ['###### Old-style'] -    let r += [''] -    let r += ['```'] -    for [k, V] in sort(items(filter(copy(g:), "v:key =~# '^neomake_'"))) -        let r += ['g:'.k.' = '.string(V)] -        unlet! V  " Fix variable type mismatch with Vim 7.3. -    endfor -    let r += [''] -    let r += ['```'] -    let r += ["\n"] -    let r += ['#### :version'] -    let r += [''] -    let r += ['```'] -    let r += split(neomake#utils#redir('version'), '\n') -    let r += ['```'] -    let r += [''] -    let r += ['#### :messages'] -    let r += [''] -    let r += ['```'] -    let r += split(neomake#utils#redir('messages'), '\n') -    let r += ['```'] -    return r -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/highlights.vim b/.vim/autoload/neomake/highlights.vim deleted file mode 100644 index cdc416a..0000000 --- a/.vim/autoload/neomake/highlights.vim +++ /dev/null @@ -1,155 +0,0 @@ -" vim: ts=4 sw=4 et - -let s:highlights = {'file': {}, 'project': {}} -let s:highlight_types = { -    \ 'E': 'NeomakeError', -    \ 'W': 'NeomakeWarning', -    \ 'I': 'NeomakeInfo', -    \ 'M': 'NeomakeMessage' -    \ } - -let s:nvim_api = exists('*nvim_buf_add_highlight') - -" Used in tests. -function! neomake#highlights#_get() abort -    return s:highlights -endfunction - -if s:nvim_api -    function! s:InitBufHighlights(type, buf) abort -        if !bufexists(a:buf) -            " The buffer might be wiped by now: prevent 'Invalid buffer id'. -            return -        endif -        if has_key(s:highlights[a:type], a:buf) -            call nvim_buf_clear_highlight(a:buf, s:highlights[a:type][a:buf], 0, -1) -        else -            let s:highlights[a:type][a:buf] = nvim_buf_add_highlight(a:buf, 0, '', 0, 0, -1) -        endif -    endfunction - -    function! s:reset(type, buf) abort -        if has_key(s:highlights[a:type], a:buf) -            call nvim_buf_clear_highlight(a:buf, s:highlights[a:type][a:buf], 0, -1) -            unlet s:highlights[a:type][a:buf] -        endif -    endfunction -else -    function! s:InitBufHighlights(type, buf) abort -        let s:highlights[a:type][a:buf] = { -            \ 'NeomakeError': [], -            \ 'NeomakeWarning': [], -            \ 'NeomakeInfo': [], -            \ 'NeomakeMessage': [] -            \ } -    endfunction - -    function! s:reset(type, buf) abort -        if has_key(s:highlights[a:type], a:buf) -            unlet s:highlights[a:type][a:buf] -            call neomake#highlights#ShowHighlights() -        endif -    endfunction -endif - -function! neomake#highlights#ResetFile(buf) abort -    call s:reset('file', a:buf) -endfunction -function! neomake#highlights#ResetProject(...) abort -    if a:0  " deprecated a:buf -        call neomake#log#warn_once('neomake#highlights#ResetProject does not use a:buf anymore.', -                    \ 'deprecated-highlight-resetproject') -    endif -    for buf in keys(s:highlights['project']) -        call s:reset('project', +buf) -    endfor -endfunction - -function! neomake#highlights#AddHighlight(entry, type) abort -    " Some makers use line 0 for file warnings (which cannot be highlighted, -    " e.g. cpplint with "no copyright" warnings). -    if a:entry.lnum == 0 -        return -    endif - -    if !has_key(s:highlights[a:type], a:entry.bufnr) -        call s:InitBufHighlights(a:type, a:entry.bufnr) -    endif -    let hi = get(s:highlight_types, toupper(a:entry.type), 'NeomakeError') - -    if a:entry.col > 0 && get(g:, 'neomake_highlight_columns', 1) -        let length = get(a:entry, 'length', 1) -        if s:nvim_api -            call nvim_buf_add_highlight(a:entry.bufnr, s:highlights[a:type][a:entry.bufnr], hi, a:entry.lnum - 1, a:entry.col - 1, a:entry.col + length - 1) -        else -            call add(s:highlights[a:type][a:entry.bufnr][hi], [a:entry.lnum, a:entry.col, length]) -        endif -    elseif get(g:, 'neomake_highlight_lines', 0) -        if s:nvim_api -            call nvim_buf_add_highlight(a:entry.bufnr, s:highlights[a:type][a:entry.bufnr], hi, a:entry.lnum - 1, 0, -1) -        else -            call add(s:highlights[a:type][a:entry.bufnr][hi], a:entry.lnum) -        endif -    endif -endfunction - -if s:nvim_api -    function! neomake#highlights#ShowHighlights() abort -    endfunction -else -    function! neomake#highlights#ShowHighlights() abort -        if exists('w:neomake_highlights') -            for highlight in w:neomake_highlights -                try -                    call matchdelete(highlight) -                catch /^Vim\%((\a\+)\)\=:E803/ -                endtry -            endfor -        endif -        let w:neomake_highlights = [] - -        let buf = bufnr('%') -        for type in ['file', 'project'] -            for [hi, locs] in items(filter(copy(get(s:highlights[type], buf, {})), '!empty(v:val)')) -                if exists('*matchaddpos') -                    call add(w:neomake_highlights, matchaddpos(hi, locs)) -                else -                    for loc in locs -                        if len(loc) == 1 -                            call add(w:neomake_highlights, matchadd(hi, '\%' . loc[0] . 'l')) -                        else -                            call add(w:neomake_highlights, matchadd(hi, '\%' . loc[0] . 'l\%' . loc[1] . 'c.\{' . loc[2] . '}')) -                        endif -                    endfor -                endif -            endfor -        endfor -    endfunction -endif - -function! neomake#highlights#DefineHighlights() abort -    for [group, link] in items({ -                \ 'NeomakeError': 'SpellBad', -                \ 'NeomakeWarning': 'SpellCap', -                \ 'NeomakeInfo': 'NeomakeWarning', -                \ 'NeomakeMessage': 'NeomakeWarning' -                \ }) -        if !neomake#utils#highlight_is_defined(group) -            exe 'highlight link '.group.' '.link -        endif -    endfor -endfunction - -function! s:wipe_highlights(bufnr) abort -    for type in ['file', 'project'] -        if has_key(s:highlights[type], a:bufnr) -            unlet s:highlights[type][a:bufnr] -        endif -    endfor -endfunction -augroup neomake_highlights -    au! -    autocmd BufWipeout * call s:wipe_highlights(expand('<abuf>')) -augroup END - -call neomake#highlights#DefineHighlights() diff --git a/.vim/autoload/neomake/jobinfo.vim b/.vim/autoload/neomake/jobinfo.vim deleted file mode 100644 index 278a3f5..0000000 --- a/.vim/autoload/neomake/jobinfo.vim +++ /dev/null @@ -1,87 +0,0 @@ -let s:jobinfo_base = { -            \ 'cd_back_cmd': '', -            \ 'pending_output': [], -            \ } -function! s:jobinfo_base.get_pid() abort -    if has_key(self, 'vim_job') -        let info = job_info(self.vim_job) -        if info.status ==# 'run' -            return info.process -        endif -        return -1 -    endif -    try -        return jobpid(self.nvim_job) -    catch /^Vim(return):E900:/ -        return -1 -    endtry -endfunction - -function! s:jobinfo_base.as_string() abort -    let extra = [] -    for k in ['canceled', 'finished'] -        if get(self, k, 0) -            let extra += [k] -        endif -    endfor -    return printf('Job %d: %s%s', self.id, self.name, -                \ empty(extra) ? '' : ' ['.join(extra, ', ').']') -endfunction - -function! s:jobinfo_base.cd_back() abort -    if !empty(self.cd_back_cmd) -        exe self.cd_back_cmd -        let self.cd_back_cmd = '' -    endif -endfunction - -function! s:jobinfo_base.cd(...) abort -    if a:0 -        if has_key(self, 'cd_from_setting') -            call neomake#log#debug(printf( -                        \ 'jobinfo.cd(): keeping cwd from setting: %s.', -                        \ string(self.cd_from_setting)), self) -            return '' -        endif -        let dir = a:1 -    else -        let maker = self.maker -        let dir = neomake#utils#GetSetting('cwd', maker, '', self.ft, self.bufnr, 1) -        if !empty(dir) -            let self.cd_from_setting = dir -        endif -    endif - -    if dir !=# '' -        if dir[0:1] ==# '%:' -            let dir = neomake#utils#fnamemodify(self.bufnr, dir[1:]) -        else -            let dir = expand(dir, 1) -        endif -        let dir = fnamemodify(dir, ':p') -        " NOTE: need to keep trailing backslash with "/" and "X:\" on Windows. -        if dir !=# '/' && dir[-1:] ==# neomake#utils#Slash() && dir[-2] !=# ':' -            let dir = dir[:-2] -        endif -    else -        let dir = get(self, 'cwd', $HOME) -    endif - -    let cur_wd = getcwd() -    if dir !=# cur_wd -        let [cd_error, cd_back_cmd] = neomake#utils#temp_cd(dir, cur_wd) -        if !empty(cd_error) -            call neomake#log#debug(printf('jobinfo.cd(): error when trying to change cwd to %s: %s.', -                        \ dir, cd_error)) -            return cd_error -        endif -        let self.cwd = dir -        let self.cd_back_cmd = cd_back_cmd -    else -        let self.cwd = cur_wd -    endif -    return '' -endfunction - -let g:neomake#jobinfo#base = s:jobinfo_base -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/list.vim b/.vim/autoload/neomake/list.vim deleted file mode 100644 index 120b665..0000000 --- a/.vim/autoload/neomake/list.vim +++ /dev/null @@ -1,1020 +0,0 @@ -scriptencoding utf-8 -" Create a List object from a quickfix/location list. -" TODO: (optionally?) add entries sorted?  (errors first, grouped by makers (?) etc) - -let s:can_set_qf_title = has('patch-7.4.2200') -let s:can_set_qf_context = has('patch-8.0.0590') -let s:can_set_qf_items = has('patch-8.0.0657') -let s:has_support_for_qfid = has('patch-8.0.1023') -let s:use_efm_parsing = has('patch-8.0.1040')  " 'efm' in setqflist/getqflist - -" Do we need to replace (instead of append) the location/quickfix list, for -" :lwindow to not open it with only invalid entries?! -" Without patch-7.4.379 this does not work though, and a new list needs to -" be created (which is not done). -" @vimlint(EVL108, 1) -let s:needs_to_replace_qf_for_lwindow = has('patch-7.4.379') -            \ && (!has('patch-7.4.1752') || (has('nvim') && !has('nvim-0.2.0'))) -" @vimlint(EVL108, 0) -let s:needs_to_init_qf_for_lwindow = !has('patch-8.1.0622') - -function! neomake#list#ListForMake(make_info) abort -    let type = a:make_info.options.file_mode ? 'loclist' : 'quickfix' -    let list = neomake#list#List(type) -    let list.make_info = a:make_info -    if type ==# 'loclist' -        let info = get(w:, '_neomake_info', {}) -        let info['loclist'] = list -        let w:_neomake_info = info -    else -        let info = get(g:, '_neomake_info', {}) -        let info['qflist'] = list -        let g:_neomake_info = info -    endif -    return list -endfunction - -" a:type: "loclist" or "quickfix" -function! neomake#list#List(type) abort -    let list = deepcopy(s:base_list) -    let list.type = a:type -    " Display debug messages about changed entries. -    let list.debug = get(g:, 'neomake_debug_list', -                \ exists('g:neomake_test_messages') -                \ || !empty(get(g:, 'neomake_logfile')) -                \ || neomake#utils#get_verbosity() >= 3) -    return list -endfunction - -" Internal base list implementation. -let s:base_list = { -            \ 'need_init': 1, -            \ 'entries': [], -            \ } -" Info about contained jobs. -let s:base_list.job_entries = {} -let s:base_list.maker_info_by_jobid = {} - -function! s:base_list.sort_by_location() dict abort -    let entries = get(self, '_sorted_entries_by_location', copy(self.entries)) -    let self._sorted_entries_by_location = sort(entries, 's:cmp_listitem_loc') -    return self._sorted_entries_by_location -endfunction - -" a:1: optional jobinfo -function! s:base_list.add_entries(entries, ...) dict abort -    let idx = len(self.entries) -    if a:0 && !has_key(self.job_entries, a:1.id) -        let self.job_entries[a:1.id] = [] -        let self.maker_info_by_jobid[a:1.id] = a:1.maker -    endif -    for entry in a:entries -        let idx += 1 -        let e = extend(copy(entry), {'nmqfidx': idx}) -        if a:0 -            call add(self.job_entries[a:1.id], e) -            let e.job_id = a:1.id -        endif -        call add(self.entries, e) -    endfor -    if self.debug -        let indexes = map(copy(self.entries), 'v:val.nmqfidx') -        if len(neomake#compat#uniq(sort(copy(indexes)))) != len(indexes) -            call neomake#log#error(printf('Duplicate qf indexes in list entries: %s.', -                        \ string(indexes))) -        endif -    endif -    " Sort if it was sorted before. -    if has_key(self, '_sorted_entries_by_location') -        call extend(self._sorted_entries_by_location, a:entries) -        call self.sort_by_location() -    endif -endfunction - -" Add entries for a job (non-efm method). -function! s:base_list.add_entries_for_job(entries, jobinfo) dict abort -    let tempfiles = get(self.make_info, 'tempfiles', []) -    if !empty(tempfiles) -        let mapped = 0 -        for e in a:entries -            if has_key(e, 'filename') && get(e, 'bufnr', 0) == 0 -                if index(tempfiles, e.filename) != -1 -                    unlet e.filename -                    let e.bufnr = a:jobinfo.bufnr -                    let mapped += 1 -                endif -            endif -        endfor -        if mapped -            call neomake#log#debug(printf('Mapped %d bufnrs from temporary files.', mapped), a:jobinfo) -        endif -    endif -    return self._appendlist(a:entries, a:jobinfo) -endfunction - -function! neomake#list#get_title(prefix, bufnr, maker_info) abort -    let prefix = 'Neomake' -    if !empty(a:prefix) -        let prefix .= '['.a:prefix.']' -    endif -    if a:bufnr -        let bufname = bufname(a:bufnr) -        if empty(bufname) -            let bufname = 'buf:'.a:bufnr -        else -            let bufname = pathshorten(bufname) -        endif -        let maker_info = bufname -        if empty(a:maker_info) -            let maker_info = bufname -        else -            let maker_info = bufname.' ('.a:maker_info.')' -        endif -    else -        let maker_info = a:maker_info -    endif -    let title = prefix -    if !empty(maker_info) -        let title = prefix.': '.maker_info -    endif -    return title -endfunction - -function! s:base_list._get_title() abort -    let maker_info = [] -    for job in self.make_info.finished_jobs -        let info = job.maker.name -        let ok = 1 -        if get(job, 'aborted', 0) -            let info .= '!' -            let ok = 0 -        endif -        if has_key(self.job_entries, job.id) -            let c = len(self.job_entries[job.id]) -            let info .= '('.c.')' -            let ok = 0 -        endif -        if ok -            let info .= '✓' -        endif -        call add(maker_info, info) -    endfor -    for job in self.make_info.active_jobs -        let info = job.maker.name -        let info .= '...' -        if has_key(self.job_entries, job.id) -            let c = len(self.job_entries[job.id]) -            let info .= '('.c.')' -        endif -        call add(maker_info, info) -    endfor -    for job in self.make_info.jobs_queue -        let info = job.maker.name -        let info .= '?' -        call add(maker_info, info) -    endfor -    for job in get(self.make_info, 'aborted_jobs', []) -        let info = job.maker.name -        let info .= '-' -        call add(maker_info, info) -    endfor -    let maker_info_str = join(maker_info, ', ') -    if self.type ==# 'loclist' -        let bufnr = self.make_info.options.bufnr -    else -        let bufnr = 0 -    endif -    if get(self.make_info.options, 'automake') -        let prefix = 'auto' -    elseif self.make_info.options.file_mode -        let prefix = 'file' -    else -        let prefix = 'project' -    endif -    return neomake#list#get_title(prefix, bufnr, maker_info_str) -endfunction - -function! s:base_list.finish_for_make() abort -    if self.need_init -        if self.type ==# 'loclist' -            call neomake#log#debug('Cleaning location list.', self.make_info) -        else -            call neomake#log#debug('Cleaning quickfix list.', self.make_info) -        endif -        call self._call_qf_fn('set', [], ' ') -    else -        " Set title, but only if list window is still valid. -        if s:has_support_for_qfid -            let valid = self._has_valid_qf() -        elseif self.type ==# 'loclist' -            let valid = self._get_loclist_win(1) != -1 -        else -            let valid = 1 -        endif -        if !valid -            call neomake#log#debug('list: finish: list is not valid anymore.', self.make_info) -            return -        endif -        call self.set_title() -    endif -endfunction - -function! s:base_list._call_qf_fn(action, ...) abort -    let fns_args = call(self._get_fn_args, [a:action] + a:000, self) - -    if a:action ==# 'get' -        let [fn, args] = fns_args[0] -        if s:has_support_for_qfid -            let args[-1].items = 1 -            if self.debug -                call neomake#log#debug(printf('list: call: "get", returning items: %s.', string(fns_args))) -            endif -            return call(fn, args).items -        endif -        if self.debug -            call neomake#log#debug(printf('list: call: "get": %s.', string(fns_args))) -        endif -        return call(fn, args) -    endif - -    for fns in fns_args -        let [fn, args] = fns - -        if self.debug -            if a:action ==# 'set' -                let log_args = deepcopy(args) -                " Only display 5 items. -                if self.type ==# 'loclist' -                    let log_args[1] = neomake#utils#shorten_list_for_log(log_args[1], 5) -                else -                    let log_args[0] = neomake#utils#shorten_list_for_log(log_args[0], 5) -                endif -                " Massage options dict. -                if type(log_args[-1]) == type({}) -                    let neomake_context = get(get(log_args[-1], 'context', {}), 'neomake', {}) -                    if !empty(neomake_context) -                        for [k, v] in items(neomake_context) -                            if k ==# 'make_info' -                                " Fixes self-ref, and makes it much shorter. -                                let neomake_context[k] = 'make_id='.v.make_id -                            endif -                        endfor -                    endif -                    " Only display 5 items. -                    if has_key(log_args[-1], 'items') -                        let log_args[-1].items = neomake#utils#shorten_list_for_log(log_args[-1].items, 5) -                    endif -                endif -                call neomake#log#debug(printf('list: call: set: %s.', string(log_args))) -            else -                call neomake#log#debug(printf('list: call: "%s": %s.', a:action, string(args))) -            endif -        endif - -        call call(fn, args, self) -    endfor - -    " Get qfid. -    if self.need_init -        if a:action ==# 'set' && s:has_support_for_qfid -            if self.type ==# 'loclist' -                let loclist_win = self._get_loclist_win() -                let self.qfid = getloclist(loclist_win, {'id': 0}).id -            else -                let self.qfid = getqflist({'id': 0}).id -            endif -            if self.debug -                call neomake#log#debug(printf('list: got qfid (action=%s): %s.', a:action, self.qfid)) -            endif -        endif -        let self.need_init = 0 -    endif -endfunction - -function! s:base_list.set_title() abort -    if s:can_set_qf_title -        call self._call_qf_fn('title', self._get_title()) -    endif -endfunction - -" Check if quickfix list is still valid, which might not be the case anymore -" if more than 10 new lists have been opened etc. -" Returns -1 without suffort for quickfix ids. -function! s:base_list._has_valid_qf() abort -    if !s:has_support_for_qfid -        return -1 -    endif - -    if self.type ==# 'loclist' -        let loclist_win = self._get_loclist_win(1) -        if loclist_win is -1 -            return 0 -        endif -        if !get(getloclist(loclist_win, {'id': self.qfid}), 'id') -            return 0 -        endif -    else -        if !get(getqflist({'id': self.qfid}), 'id') -            return 0 -        endif -    endif -    return 1 -endfunction - -" Get winnr/winid to be used with loclist functions. -" a:1: return -1 instead of throwing when no window could be found? -function! s:base_list._get_loclist_win(...) abort -    if !has_key(self, 'make_info') -        throw 'cannot handle type=loclist without make_info' -    endif -    let loclist_win = 0 -    let make_id = self.make_info.make_id -    " NOTE: prefers using 0 for when winid is not supported with -    " setloclist() yet (vim74-xenial). -    if index(get(w:, 'neomake_make_ids', []), make_id) == -1 -        if has_key(self.make_info.options, 'winid') -            let loclist_win = self.make_info.options.winid -        else -            let [t, w] = neomake#core#get_tabwin_for_makeid(make_id) -            if [t, w] == [-1, -1] -                if a:0 && a:1 -                    return -1 -                endif -                throw printf('Neomake: could not find location list for make_id %d.', make_id) -            endif -            if t != tabpagenr() -                if a:0 && a:1 -                    return -1 -                endif -                throw printf('Neomake: trying to use location list from another tab (current=%d != target=%d).', tabpagenr(), t) -            endif -            let loclist_win = w -        endif -    endif -    return loclist_win -endfunction - -" Return a list of commands to be called. -" action: "get", "set", "init", "title" -" a:000: optional args (for set/init/title) -function! s:base_list._get_fn_args(action, ...) abort -    if self.type ==# 'loclist' -        if a:action ==# 'get' -            let fn = 'getloclist' -        else -            let fn = 'setloclist' -        endif -    else -        if a:action ==# 'get' -            let fn = 'getqflist' -        else -            let fn = 'setqflist' -        endif -    endif - -    if self.type ==# 'loclist' -        let args = [self._get_loclist_win()] -    else -        let args = [] -    endif - -    let options = {} -    if !self.need_init -        let valid = self._has_valid_qf() -        if valid == 1 -            let options.id = self.qfid -        elseif valid == 0 -            if self.type ==# 'loclist' -                let loclist_win = args[0] -                throw printf('Neomake: qfid %d for location list (%d) has become invalid.', self.qfid, loclist_win) -            else -                throw printf('Neomake: qfid %d for quickfix list has become invalid.', self.qfid) -            endif -        endif -    endif - -    if a:action ==# 'title' -        call extend(args, [[], 'a']) -        if exists('*vader#assert#true') -            call vader#assert#true(s:can_set_qf_title) -        endif -        let options.title = a:1 -    else -        call extend(args, a:000) -        if a:action ==# 'set' -            if exists('*vader#assert#equal') -                call vader#assert#equal(len(a:000), 2) -            endif -            if s:can_set_qf_items -                let options.items = a:1 -                let args[-2] = [] -            endif -        endif -    endif -    if !empty(options) -        call add(args, options) -    endif - -    let r = [] -    if a:action ==# 'set' -        if self.need_init && get(self, 'reset_existing_qflist') -            if self.type ==# 'loclist' -                let args[2] = 'r'  " action -            else -                let args[1] = 'r'  " action -            endif -            if self.type ==# 'loclist' -                let msg = 'Reusing location list for entries.' -            else -                let msg = 'Reusing quickfix list for entries.' -            endif -            call neomake#log#debug(msg, self.make_info) -        endif - -        " Experimental: set make_info into context. -        " This is used to access make info from the qf window itself. -        if self.need_init && s:can_set_qf_context -            let options.context = {'neomake': {'make_info': self.make_info}} -        endif - -        " Handle setting title, which gets done initially and when maker -        " names are updated.  This has to be done in a separate call -        " without patch-8.0.0657. -        if s:can_set_qf_title -            let title = self._get_title() -            if s:can_set_qf_items -                if type(args[-1]) != type({}) -                    call add(args, {'title': title, 'items': args[1]}) -                else -                    let args[-1].title = title -                endif -            else -                " Update title after actual call. -                call add(r, [fn, args]) - -                if self.type ==# 'loclist' -                    let args = [args[0], [], 'a', {'title': title}] -                else -                    let args = [[], 'a', {'title': title}] -                endif -            endif -        endif -    endif -    call add(r, [fn, args]) -    return r -endfunction - -function! s:mark_entry_with_nmcfg(entry, maker_info) abort -    let maker_name = a:maker_info.name -    let config = { -                \ 'name': maker_name, -                \ 'short': get(a:maker_info, 'short_name', maker_name[:3]), -                \ } -    let marker_entry = copy(a:entry) -    let marker_entry.text .= printf(' nmcfg:%s', string(config)) -    return marker_entry -endfunction - -function! s:base_list._replace_qflist_entries(entries) abort -    let set_entries = a:entries - -    " Handle nmcfg markers when setting all entries without jobinfo. -    if neomake#quickfix#is_enabled() -        let set_entries = copy(set_entries) -        let prev_job_id = 0 - -        " Handle re-setting all entries.  This is meant to be used later -        " for replacing the whole list. -        let i = 0 -        for e in set_entries -            if e.job_id != prev_job_id -                let maker_info = self.maker_info_by_jobid[e.job_id] -                let set_entries[i] = s:mark_entry_with_nmcfg(e, maker_info) -                let prev_job_id = e.job_id -            endif -            let i += 1 -        endfor -    endif - -    call self._set_qflist_entries(set_entries, 'r') -endfunction - -function! s:base_list._set_qflist_entries(entries, action) abort -    let action = a:action -    if self.need_init && !get(self, 'reset_existing_qflist') -        if self.type ==# 'loclist' -            let msg = 'Creating location list for entries.' -        else -            let msg = 'Creating quickfix list for entries.' -        endif -        call neomake#log#debug(msg, self.make_info) - -        if s:needs_to_init_qf_for_lwindow -            " Clean list without autocommands (customqf etc) to avoid -            " flicker.  This is only to work around a Vim bug anyway. -            noautocmd call self._call_qf_fn('set', [], ' ') -        else -            let action = ' ' -        endif -    endif -    call self._call_qf_fn('set', a:entries, action) -endfunction - -function! s:base_list._get_qflist_entries() abort -    return self._call_qf_fn('get') -endfunction - -" Append entries to location/quickfix list. -function! s:base_list._appendlist(entries, jobinfo) abort -    call neomake#log#debug(printf('Adding %d list entries.', len(a:entries)), self.make_info) - -    let set_entries = a:entries -    let action = 'a' -    if !self.need_init -        let action = 'a' -        if s:needs_to_replace_qf_for_lwindow || neomake#quickfix#is_enabled() -            " Need to replace whole list with customqf to trigger FileType -            " autocmd (which is not done for action='a'). -            " This should be enhanced to only format new entries instead -            " later, but needs support for changing non-current buffer lines. -            let action = 'r' -            if self.type ==# 'loclist' -                let set_entries = self._get_qflist_entries() + set_entries -            else -                let set_entries = getqflist() + set_entries -            endif -        endif -    endif - -    " Add marker for custom quickfix to the first (new) entry. -    let needs_custom_qf_marker = neomake#quickfix#is_enabled() -    if needs_custom_qf_marker -        if action ==# 'a' -            let prev_idx = 0 -        else -            let prev_idx = len(self.entries) -        endif -        let set_entries = copy(set_entries) -        let set_entries[prev_idx] = s:mark_entry_with_nmcfg(set_entries[prev_idx], a:jobinfo.maker) -    endif - -    " NOTE: need to fetch (or pre-parse with new patch) to get updated bufnr etc. -    call self._set_qflist_entries(set_entries, action) -    let added = self._get_qflist_entries()[len(self.entries) :] - -    if needs_custom_qf_marker -        " Remove marker that should only be in the quickfix list. -        let added[0].text = substitute(added[0].text, ' nmcfg:{.\{-}}$', '', '') -    endif - -    if self.debug && added != a:entries -        let diff = neomake#list#_diff_new_entries(a:entries, added) -        if !empty(diff) -            for [k, v] in items(diff) -                " TODO: handle valid=1 being added? -                call neomake#log#debug(printf( -                  \ 'Entry %d differs after adding: %s.', -                  \ k+1, -                  \ string(v)), -                  \ a:jobinfo) -            endfor -        endif -    endif - -    let parsed_entries = copy(a:entries) -    let idx = 0 -    for e in added -        if parsed_entries[idx].bufnr != e.bufnr -            call neomake#log#debug(printf( -                        \ 'Updating entry bufnr: %s => %s.', -                        \ a:entries[idx].bufnr, e.bufnr)) -            let parsed_entries[idx].bufnr = e.bufnr -        endif -        let idx += 1 -    endfor - -    call self.add_entries(parsed_entries, a:jobinfo) -    return parsed_entries -endfunction - -function! neomake#list#_diff_new_entries(orig, new) abort -    if a:orig == a:new -        return {} -    endif -    let i = 0 -    let r = {} -    for new in a:new -        let orig = copy(get(a:orig, i, {})) -        for [k, v] in items({'pattern': '', 'module': '', 'valid': 1}) -            if has_key(new, k) -                let orig[k] = v -            endif -        endfor -        if new != orig -            " 'removed': {'length': 4, 'filename': 'from.rs', -            " 'maker_name': 'cargo'}} -            let new = copy(new) -            for k in ['length', 'maker_name'] -                if has_key(orig, k) -                    let new[k] = orig[k] -                endif -            endfor -            let diff = neomake#utils#diff_dict(orig, new) -            if !empty(diff) -                let r[i] = diff -            endif -        endif -        let i += 1 -    endfor -    return r -endfunction - -" Add raw lines using errorformat. -" This either pre-parses them with newer versions, or uses -" :laddexpr/:caddexpr. -function! s:base_list.add_lines_with_efm(lines, jobinfo) dict abort -    let maker = a:jobinfo.maker -    let file_mode = self.type ==# 'loclist' - -    if s:use_efm_parsing -        let efm = a:jobinfo.maker.errorformat -        let parsed_entries = get(getqflist({'lines': a:lines, 'efm': efm}), 'items', -1) -        if parsed_entries is -1 -            call neomake#log#error(printf('Failed to get items via efm-parsing. Invalid errorformat? (%s)', efm), a:jobinfo) -            let parsed_entries = getqflist({'lines': a:lines, 'efm': &errorformat}).items -        endif -        if empty(parsed_entries) -            return [] -        endif -    else -        if self.need_init -            if self.type ==# 'loclist' -                let msg = 'Creating location list.' -            else -                let msg = 'Creating quickfix list.' -            endif -            call neomake#log#debug(msg, self.make_info) -            call self._call_qf_fn('set', [], ' ') -        endif -        let olderrformat = &errorformat -        try -            let &errorformat = maker.errorformat -        catch -            call neomake#log#error(printf('Failed to set errorformat (%s): %s.', string(maker.errorformat), v:exception), a:jobinfo) -        endtry -        try -            if file_mode -                let cmd = 'laddexpr' -            else -                let cmd = 'caddexpr' -            endif -            let a:jobinfo._delayed_qf_autocmd = 'QuickfixCmdPost '.cmd -            let cmd = 'noautocmd '.cmd.' a:lines' -            if self.debug -                call neomake#log#debug(printf('list: exe: %s (with %d lines).', cmd, len(a:lines)), a:jobinfo) -            endif -            exe cmd -        finally -            let &errorformat = olderrformat -            call a:jobinfo.cd_back() -        endtry - -        let new_list = self._get_qflist_entries() -        let parsed_entries = new_list[len(self.entries) :] -        if empty(parsed_entries) -            return [] -        endif -    endif - -    let l:Postprocess = neomake#utils#GetSetting('postprocess', maker, [], a:jobinfo.ft, a:jobinfo.bufnr) -    if type(Postprocess) != type([]) -        let postprocessors = [Postprocess] -    else -        let postprocessors = Postprocess -    endif - -    let default_type = 'unset' - -    let entries = [] -    let changed_entries = {} -    let removed_entries = [] -    let different_bufnrs = {} -    let bufnr_from_temp = {} -    let bufnr_from_stdin = {} -    let tempfile_bufnrs = has_key(self.make_info, 'tempfiles') ? map(copy(self.make_info.tempfiles), 'bufnr(v:val)') : [] -    let uses_stdin = get(a:jobinfo, 'uses_stdin', 0) - -    let entry_idx = -1 -    for entry in parsed_entries -        let entry_idx += 1 -        let before = copy(entry) -        " Handle unlisted buffers via tempfiles and uses_stdin. -        if entry.bufnr && entry.bufnr != a:jobinfo.bufnr -                    \ && (!empty(tempfile_bufnrs) || uses_stdin) -            let map_bufnr = index(tempfile_bufnrs, entry.bufnr) -            if map_bufnr != -1 -                let entry.bufnr = a:jobinfo.bufnr -                let map_bufnr = tempfile_bufnrs[map_bufnr] -                if !has_key(bufnr_from_temp, map_bufnr) -                    let bufnr_from_temp[map_bufnr] = [] -                endif -                let bufnr_from_temp[map_bufnr] += [entry_idx+1] -            elseif uses_stdin -                if !buflisted(entry.bufnr) && bufexists(entry.bufnr) -                    if !has_key(bufnr_from_stdin, entry.bufnr) -                        let bufnr_from_stdin[entry.bufnr] = [] -                    endif -                    let bufnr_from_stdin[entry.bufnr] += [entry_idx+1] -                    let entry.bufnr = a:jobinfo.bufnr -                endif -            endif -        endif -        if self.debug && entry.bufnr && entry.bufnr != a:jobinfo.bufnr -            if !has_key(different_bufnrs, entry.bufnr) -                let different_bufnrs[entry.bufnr] = 1 -            else -                let different_bufnrs[entry.bufnr] += 1 -            endif -        endif -        if !empty(postprocessors) -            let g:neomake_postprocess_context = {'jobinfo': a:jobinfo} -            try -                for l:F in postprocessors -                    if type(F) == type({}) -                        call call(F.fn, [entry], F) -                    else -                        call call(F, [entry], maker) -                    endif -                    unlet! F  " vim73 -                endfor -            finally -                unlet! g:neomake_postprocess_context  " Might be unset already with sleep in postprocess. -            endtry -        endif -        if entry != before -            let changed_entries[entry_idx] = entry -            if self.debug -                " Ignore bufnr changes for tempfiles/stdin (logged together -                " later). -                let diff = neomake#utils#diff_dict(before, entry) -                let changed_bufnr = get(get(diff, 'changed', {}), 'bufnr', []) -                if !empty(changed_bufnr) && ( -                            \ has_key(bufnr_from_temp, changed_bufnr[0]) -                            \ || has_key(bufnr_from_stdin, changed_bufnr[0])) -                    unlet diff.changed.bufnr -                    if empty(diff.changed) -                        unlet diff.changed -                    endif -                endif -                if !empty(diff) -                    call neomake#log#debug(printf( -                      \ 'Modified list entry %d (postprocess): %s.', -                      \ entry_idx + 1, -                      \ substitute(string(diff), '\n', '\\n', 'g')), -                      \ a:jobinfo) -                endif -            endif -        endif - -        if entry.valid <= 0 -            if entry.valid < 0 || maker.remove_invalid_entries -                call insert(removed_entries, entry_idx) -                let entry_copy = copy(entry) -                call neomake#log#debug(printf( -                            \ 'Removing invalid entry: %s (%s).', -                            \ remove(entry_copy, 'text'), -                            \ string(entry_copy)), a:jobinfo) -                continue -            endif -        endif - -        if empty(entry.type) && entry.valid -            if default_type ==# 'unset' -                let default_type = neomake#utils#GetSetting('default_entry_type', maker, 'W', a:jobinfo.ft, a:jobinfo.bufnr) -            endif -            if !empty(default_type) -                let entry.type = default_type -                let changed_entries[entry_idx] = entry -            endif -        endif -        call add(entries, entry) -    endfor - -    if !s:use_efm_parsing -        let new_index = len(self.entries) -        " Add marker for custom quickfix to the first (new) entry. -        if neomake#quickfix#is_enabled() -            let changed_entries[0] = s:mark_entry_with_nmcfg(entries[0], maker) -        endif - -        if !empty(changed_entries) || !empty(removed_entries) -            " Need to update/replace current list. -            let list = self._get_qflist_entries() -            if !empty(changed_entries) -                for k in keys(changed_entries) -                    let list[new_index + k] = changed_entries[k] -                endfor -            endif -            if !empty(removed_entries) -                for k in removed_entries -                    call remove(list, new_index + k) -                endfor -            endif -            call self._set_qflist_entries(list, 'r') -        endif -    endif - -    if !empty(bufnr_from_temp) || !empty(bufnr_from_stdin) -        if !has_key(self.make_info, '_wipe_unlisted_buffers') -            let self.make_info._wipe_unlisted_buffers = [] -        endif -        let self.make_info._wipe_unlisted_buffers += keys(bufnr_from_stdin) + keys(bufnr_from_stdin) -        if !empty(bufnr_from_temp) -            for [tempbuf, entries_idx] in items(bufnr_from_temp) -                let log_entries_idx = join(neomake#utils#shorten_list_for_log(entries_idx, 50), ', ') -                call neomake#log#debug(printf( -                            \ 'Used bufnr from temporary buffer %d (%s) for %d entries: %s.', -                            \ tempbuf, -                            \ bufname(+tempbuf), -                            \ len(entries_idx), -                            \ log_entries_idx), a:jobinfo) -            endfor -        endif -        if !empty(bufnr_from_stdin) -            for [tempbuf, entries_idx] in items(bufnr_from_stdin) -                let log_entries_idx = join(neomake#utils#shorten_list_for_log(entries_idx, 50), ', ') -                call neomake#log#debug(printf( -                            \ 'Used bufnr from stdin buffer %d (%s) for %d entries: %s.', -                            \ tempbuf, -                            \ bufname(+tempbuf), -                            \ len(entries_idx), -                            \ log_entries_idx), a:jobinfo) -            endfor -        endif -    endif -    if !empty(different_bufnrs) -        call neomake#log#debug(printf('WARN: seen entries with bufnr different from jobinfo.bufnr (%d): %s, current bufnr: %d.', a:jobinfo.bufnr, string(different_bufnrs), bufnr('%'))) -    endif - -    if empty(entries) -        return [] -    endif - -    if s:use_efm_parsing -        call self._appendlist(entries, a:jobinfo) -    else -        call self.add_entries(entries, a:jobinfo) -    endif -    return entries -endfunction - -" Get the current location or quickfix list. -function! neomake#list#get() abort -    let winnr = winnr() -    let win_info = neomake#compat#getwinvar(winnr, '_neomake_info', {}) -    if has_key(win_info, 'loclist') -        return win_info['loclist'] -    endif -    let info = get(g:, '_neomake_info', {}) -    if has_key(info, 'qflist') -        return info['qflist'] -    endif -    return {} -endfunction - -function! neomake#list#get_loclist(...) abort -    let winnr = a:0 ? a:1 : winnr() -    let info = neomake#compat#getwinvar(winnr, '_neomake_info', {}) -    if !has_key(info, 'loclist') -        " Create a new list, not bound to a job. -        call neomake#log#debug('Creating new List object.') -        let list = neomake#list#List('loclist') -        call list.add_entries(getloclist(winnr)) -        let info['loclist'] = list -        call setwinvar(winnr, '_neomake_info', info) -    endif -    return info['loclist'] -endfunction - -" TODO: save project-maker quickfix list. -function! neomake#list#get_qflist() abort -    let info = get(g:, '_neomake_info', {}) -    if !has_key(info, 'qflist') -        " Create a new list, not bound to a job. -        call neomake#log#debug('Creating new List object.') -        let list = neomake#list#List('quickfix') -        call list.add_entries(getqflist()) -        let info['qflist'] = list -        let g:_neomake_info = info -    endif -    return info['qflist'] -endfunction - -function! s:get_list(file_mode) abort -    if a:file_mode -        let list = neomake#list#get_loclist() -        let g:unimpaired_prevnext = ['NeomakePrevLoclist', 'NeomakeNextLoclist'] -    else -        let list = neomake#list#get_qflist() -        let g:unimpaired_prevnext = ['NeomakePrevQuickfix', 'NeomakeNextQuickfix'] -    endif -    return list -endfunction - -function! neomake#list#next(c, ...) abort -    let file_mode = a:0 ? a:1 : 1 -    let list = s:get_list(file_mode) -    call s:goto_nearest(list, a:c == 0 ? 1 : a:c) -endfunction - -function! neomake#list#prev(c, ...) abort -    let file_mode = a:0 ? a:1 : 1 -    let list = s:get_list(file_mode) -    call s:goto_nearest(list, a:c == 0 ? -1 : -a:c) -endfunction - -" TODO: global / already used somewhere else? / config -let g:neomake#list#type_prio = { -            \ 'E': 0, -            \ 'W': 1, -            \ 'I': 2, -            \ } - -" TODO: allow to customize via own callback(s)? -function! s:cmp_listitem_loc(a, b) abort -    let buf_diff = a:a.bufnr - a:b.bufnr -    if buf_diff -        return buf_diff -    endif - -    if exists('*vader#assert#not_equal') -        call vader#assert#not_equal(a:a.bufnr, -1) -        call vader#assert#not_equal(a:b.bufnr, -1) -    endif - -    let lnum_diff = a:a.lnum - a:b.lnum -    if lnum_diff -        return lnum_diff -    endif - -    let col_diff = a:a.col - a:b.col -    if col_diff -        return col_diff -    endif - -    let prio = g:neomake#list#type_prio -    return get(prio, a:a.type, 99) - get(prio, a:b.type, 99) -endfunction - -function! s:goto_nearest(list, offset) abort -    let [lnum, col] = getpos('.')[1:2] -    if a:offset == 0 -        throw 'a:offset must not be 0' -    endif - -    if !has_key(a:list, '_sorted_entries_by_location') -        call a:list.sort_by_location() -    endif -    let entries = a:list._sorted_entries_by_location -    if a:offset < 0 -        call reverse(entries) -    endif - -    let c = a:offset -    let step = a:offset > 0 ? 1 : -1 -    let found = 0 -    for item in entries -        if (a:offset > 0 && (item.lnum > lnum || (item.lnum == lnum && item.col > col))) -                    \ || (a:offset < 0 && (item.lnum < lnum || (item.lnum == lnum && item.col < col))) -            let c -= step -            let found = item.nmqfidx -            if c == 0 -                break -            endif -        endif -    endfor - -    if found -        if a:list.type ==# 'loclist' -            if exists('*vader#assert#equal') -                " @vimlint(EVL102, 1, l:ll_item) -                let ll_item = getloclist(0)[found-1] -                call vader#assert#equal([ll_item.bufnr, ll_item.lnum], [item.bufnr, item.lnum]) -            endif -            execute 'll '.found -        else -            if exists('*vader#assert#equal') -                " @vimlint(EVL102, 1, l:cc_item) -                let cc_item = getqflist()[found-1] -                call vader#assert#equal([cc_item.bufnr, cc_item.lnum], [item.bufnr, item.lnum]) -            endif -            execute 'cc '.found -        endif -    elseif c > 0 -        call neomake#log#error('No more next items.') -    elseif c < 0 -        call neomake#log#error('No more previous items.') -    endif -endfunction - -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/log.vim b/.vim/autoload/neomake/log.vim deleted file mode 100644 index 4e8e6bf..0000000 --- a/.vim/autoload/neomake/log.vim +++ /dev/null @@ -1,171 +0,0 @@ -let s:level_to_name = {0: 'error  ', 1: 'warning', 2: 'verbose', 3: 'debug  '} -let s:name_to_level = {'error': 0, 'warning': 1, 'verbose': 2, 'debug': 3} -let s:short_level_to_name = {0: 'E', 1: 'W', 2: 'V', 3: 'D'} -let s:is_testing = exists('g:neomake_test_messages') -let s:pid = getpid() - -let s:last_msg_ts = neomake#compat#reltimefloat() - -function! s:reltime_lastmsg() abort -    let cur = neomake#compat#reltimefloat() -    let diff = (cur - s:last_msg_ts) -    let s:last_msg_ts = neomake#compat#reltimefloat() - -    if diff < 0.01 -        return '     ' -    elseif diff < 10 -        let format = '+%.2f' -    elseif diff < 100 -        let format = '+%.1f' -    elseif diff < 100 -        let format = '  +%.0f' -    elseif diff < 1000 -        let format = ' +%.0f' -    else -        let format = '+%.0f' -    endif -    return printf(format, diff) -endfunction - -function! s:log(level, msg, ...) abort -    let context = a:0 ? a:1 : {} -    let verbosity = neomake#utils#get_verbosity(context) -    let logfile = get(g:, 'neomake_logfile', '') - -    if !s:is_testing && verbosity < a:level && empty(logfile) -        return -    endif - -    if a:0 -        if has_key(a:1, 'options') -            let context = copy(a:1.options) -            let context.make_id = a:1.make_id -        else -            let context = copy(a:1) -        endif -        let msg = printf('[%s.%s:%s:%d] %s', -                    \ get(context, 'make_id', '-'), -                    \ get(context, 'id', '-'), -                    \ get(context, 'bufnr', get(context, 'file_mode', 0) ? '?' : '-'), -                    \ get(context, 'winnr', winnr()), -                    \ a:msg) -    else -        let msg = a:msg -    endif - -    " Use Vader's log for messages during tests. -    " @vimlint(EVL104, 1, l:timediff) -    if s:is_testing && (verbosity >= a:level || get(g:, 'neomake_test_log_all_messages', 0)) -        let timediff = s:reltime_lastmsg() -        if timediff !=# '     ' -            let test_msg = '['.s:short_level_to_name[a:level].' '.timediff.']: '.msg -        else -            let test_msg = '['.s:level_to_name[a:level].']: '.msg -        endif - -        if exists('*vader#log') -            " Might not exist with rpcrequest-based nvim test, or throw errors -            " if called too early. -            call vader#log(test_msg) -        endif -        " Only keep context entries that are relevant for / used in the message. -        let context = a:0 -                    \ ? extend(filter(copy(context), "index(['id', 'make_id', 'bufnr', 'winnr'], v:key) != -1"), {'winnr': winnr()}, 'keep') -                    \ : {} -        call add(g:neomake_test_messages, [a:level, a:msg, context]) -        if index(['.', '!', ')', ']'], a:msg[-1:-1]) == -1 -            let g:neomake_test_errors += ['Log msg does not end with punctuation: "'.a:msg.'".'] -        endif -    elseif verbosity >= a:level -        redraw -        if verbosity > 2 -            echom 'Neomake: '.msg -        else -            if a:level ==# 0 -                echohl ErrorMsg -            else -                echohl WarningMsg -            endif -            " Use message without context for non-debug msgs. -            echom 'Neomake: '.a:msg -            echohl None -        endif -    endif -    if !empty(logfile) -        if !exists('s:logfile_writefile_opts') -            " Use 'append' with writefile, but only if it is available.  Otherwise, just -            " overwrite the file.  'S' is used to disable fsync in Neovim -            " (https://github.com/neovim/neovim/pull/6427). -            if has('patch-7.4.503') -                let s:logfile_writefile_opts = 'aS' -            else -                let s:logfile_writefile_opts = '' -                redraw -                echohl WarningMsg -                echom 'Neomake: appending to the logfile is not supported in your Vim version.' -                echohl NONE -            endif -        endif - -        let time = strftime('%H:%M:%S') -        if !exists('timediff') -            let timediff = s:reltime_lastmsg() -        endif -        try -            call writefile([printf('%s %s [%s %s] %s', -                        \ time, s:pid, s:short_level_to_name[a:level], timediff, msg)], -                        \ logfile, s:logfile_writefile_opts) -        catch -            unlet g:neomake_logfile -            call neomake#log#error(printf('Error when trying to write to logfile %s: %s.  Unsetting g:neomake_logfile.', logfile, v:exception)) -        endtry -    endif -    " @vimlint(EVL104, 0, l:timediff) -endfunction - -function! neomake#log#error(...) abort -    call call('s:log', [0] + a:000) -endfunction - -function! neomake#log#warning(...) abort -    call call('s:log', [1] + a:000) -endfunction - -function! neomake#log#info(...) abort -    call call('s:log', [2] + a:000) -endfunction - -function! neomake#log#debug(...) abort -    call call('s:log', [3] + a:000) -endfunction - -function! neomake#log#debug_obj(msg, obj) abort -    if s:is_testing || neomake#utils#get_verbosity() >= 3 || !empty(get(g:, 'neomake_logfile', '')) -        call neomake#log#debug(a:msg.': '.neomake#utils#Stringify(a:obj).'.') -    endif -endfunction - -function! neomake#log#exception(error, ...) abort -    let log_context = a:0 ? a:1 : {'bufnr': bufnr('%')} -    redraw -    echom printf('Neomake error in: %s', v:throwpoint) -    call neomake#log#error(a:error, log_context) -    call neomake#log#debug(printf('(in %s)', v:throwpoint), log_context) -endfunction - -let s:warned = {} -function! neomake#log#warn_once(msg, key) abort -    if !has_key(s:warned, a:key) -        let s:warned[a:key] = 1 -        echohl WarningMsg -        redraw | echom 'Neomake: ' . a:msg -        echohl None -        let v:warningmsg = 'Neomake: '.a:msg -        call neomake#log#debug('Neomake warning: '.a:msg) -    endif -endfunction - -function! neomake#log#reset_warnings() abort -    let s:warned = {} -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/cabal.vim b/.vim/autoload/neomake/makers/cabal.vim deleted file mode 100644 index 070b2a5..0000000 --- a/.vim/autoload/neomake/makers/cabal.vim +++ /dev/null @@ -1,15 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#cabal#cabal() abort -    let errorformat = join([ -                \ '%A%f:%l:%c:', -                \ '%A%f:%l:%c: %m', -                \ '%+C    %m', -                \ '%-Z%[%^ ]', -                \ ], ',') -    return { -        \ 'exe': 'cabal', -        \ 'args': ['build'], -        \ 'errorformat': errorformat -        \ } -endfunction diff --git a/.vim/autoload/neomake/makers/clippy.vim b/.vim/autoload/neomake/makers/clippy.vim deleted file mode 100644 index 6f2a8a3..0000000 --- a/.vim/autoload/neomake/makers/clippy.vim +++ /dev/null @@ -1,39 +0,0 @@ -" vim: ts=4 sw=4 et - -" Yet to be determined -let s:rustup_has_nightly = get(g:, 'neomake_clippy_rustup_has_nightly', -1) - -function! neomake#makers#clippy#clippy() abort -    " When rustup and a nightly toolchain is installed, that is used. -    " Otherwise, the default cargo exectuable is used. If this is not part -    " of a nightly rust, this will fail. -    if s:rustup_has_nightly == -1 -        if !executable('rustup') -            let s:rustup_has_nightly = 0 -            call system('rustc --version | grep -q "\-nightly"') -            if v:shell_error -                call neomake#log#warning('Clippy requires a nightly rust installation.') -            endif -        else -            call system('rustup show | grep -q "^nightly-"') -            let s:rustup_has_nightly = !v:shell_error -        endif -    endif - -    let cargo_maker = neomake#makers#ft#rust#cargo() -    let json_args = ['--message-format=json', '--quiet'] - -    if s:rustup_has_nightly -        return { -            \ 'exe': 'rustup', -            \ 'args': ['run', 'nightly', 'cargo', 'clippy'] + json_args, -            \ 'process_output': cargo_maker.process_output, -            \ } -    else -        return { -            \ 'exe': 'cargo', -            \ 'args': ['clippy'] + json_args, -            \ 'process_output': cargo_maker.process_output, -            \ } -    endif -endfunction diff --git a/.vim/autoload/neomake/makers/ft/ada.vim b/.vim/autoload/neomake/makers/ft/ada.vim deleted file mode 100644 index 822da3c..0000000 --- a/.vim/autoload/neomake/makers/ft/ada.vim +++ /dev/null @@ -1,14 +0,0 @@ -function! neomake#makers#ft#ada#EnabledMakers() abort -    return ['gcc'] -endfunction - -function! neomake#makers#ft#ada#gcc() abort -    return { -        \ 'args': ['-c', '-x', 'ada', '-gnatc'], -        \ 'errorformat': -            \ '%-G%f:%s:,' . -            \ '%f:%l:%c: %m,' . -            \ '%f:%l: %m' -        \ } -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/angular.vim b/.vim/autoload/neomake/makers/ft/angular.vim deleted file mode 100644 index 8c2f2d9..0000000 --- a/.vim/autoload/neomake/makers/ft/angular.vim +++ /dev/null @@ -1,9 +0,0 @@ -function! neomake#makers#ft#angular#SupersetOf() abort -    return 'javascript' -endfunction - -function! neomake#makers#ft#angular#EnabledMakers() abort -    return ['jshint', 'eslint', 'jscs'] -endfunction - -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/ansible.vim b/.vim/autoload/neomake/makers/ft/ansible.vim deleted file mode 100644 index a1a001f..0000000 --- a/.vim/autoload/neomake/makers/ft/ansible.vim +++ /dev/null @@ -1,17 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#ansible#EnabledMakers() abort -    return ['ansiblelint', 'yamllint'] -endfunction - -function! neomake#makers#ft#ansible#yamllint() abort -    return neomake#makers#ft#yaml#yamllint() -endfunction - -function! neomake#makers#ft#ansible#ansiblelint() abort -    return { -        \ 'exe': 'ansible-lint', -        \ 'args': ['-p', '--nocolor'], -        \ 'errorformat': '%f:%l: [%tANSIBLE%n] %m', -        \ } -endfunction diff --git a/.vim/autoload/neomake/makers/ft/apiblueprint.vim b/.vim/autoload/neomake/makers/ft/apiblueprint.vim deleted file mode 100644 index 2e91b42..0000000 --- a/.vim/autoload/neomake/makers/ft/apiblueprint.vim +++ /dev/null @@ -1,16 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#apiblueprint#EnabledMakers() abort -    return executable('drafter') ? ['drafter'] : [] -endfunction - -function! neomake#makers#ft#apiblueprint#drafter() abort -    " Drafter only operates on a single file at a time, and therefore doesn't -    " bother to print out a file name with each error. We need to attach this -    " so that the quickfix list can function properly. -    return { -        \ 'args': ['-l', '-u'], -        \ 'errorformat': '%f: %t%[%^:]\\+: (%n) %m; line %l\, column %c%.%#', -        \ 'mapexpr': 'neomake_bufname . ": " . v:val' -        \ } -endfunction diff --git a/.vim/autoload/neomake/makers/ft/applescript.vim b/.vim/autoload/neomake/makers/ft/applescript.vim deleted file mode 100644 index 71a00f1..0000000 --- a/.vim/autoload/neomake/makers/ft/applescript.vim +++ /dev/null @@ -1,11 +0,0 @@ -function! neomake#makers#ft#applescript#EnabledMakers() abort -    return ['osacompile'] -endfunction - -function! neomake#makers#ft#applescript#osacompile() abort -    return { -        \ 'args': ['-o', g:neomake#compat#dev_null], -        \ 'errorformat': '%f:%l: %trror: %m', -        \ } -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/asciidoc.vim b/.vim/autoload/neomake/makers/ft/asciidoc.vim deleted file mode 100644 index 4d53751..0000000 --- a/.vim/autoload/neomake/makers/ft/asciidoc.vim +++ /dev/null @@ -1,28 +0,0 @@ -function! neomake#makers#ft#asciidoc#SupersetOf() abort -    return 'text' -endfunction - -function! neomake#makers#ft#asciidoc#EnabledMakers() abort -    let makers = executable('asciidoctor') ? ['asciidoctor'] : ['asciidoc'] -    return makers + neomake#makers#ft#text#EnabledMakers() -endfunction - -function! neomake#makers#ft#asciidoc#asciidoc() abort -    return { -        \ 'errorformat': -        \   '%E%\w%\+: %tRROR: %f: line %l: %m,' . -        \   '%E%\w%\+: %tRROR: %f: %m,' . -        \   '%E%\w%\+: FAILED: %f: line %l: %m,' . -        \   '%E%\w%\+: FAILED: %f: %m,' . -        \   '%W%\w%\+: %tARNING: %f: line %l: %m,' . -        \   '%W%\w%\+: %tARNING: %f: %m,' . -        \   '%W%\w%\+: DEPRECATED: %f: line %l: %m,' . -        \   '%W%\w%\+: DEPRECATED: %f: %m', -        \ 'args': ['-o', g:neomake#compat#dev_null], -        \ } -endfunction - -function! neomake#makers#ft#asciidoc#asciidoctor() abort -    return neomake#makers#ft#asciidoc#asciidoc() -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/beancount.vim b/.vim/autoload/neomake/makers/ft/beancount.vim deleted file mode 100644 index 95eb31a..0000000 --- a/.vim/autoload/neomake/makers/ft/beancount.vim +++ /dev/null @@ -1,12 +0,0 @@ -function! neomake#makers#ft#beancount#EnabledMakers() abort -    return ['bean_check'] -endfunction - -function! neomake#makers#ft#beancount#bean_check() abort -    return { -        \ 'exe': 'bean-check', -        \ 'errorformat': '%E%f:%l:%m', -        \ 'postprocess': function('neomake#postprocess#compress_whitespace'), -        \ } -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/bib.vim b/.vim/autoload/neomake/makers/ft/bib.vim deleted file mode 100644 index e3a9602..0000000 --- a/.vim/autoload/neomake/makers/ft/bib.vim +++ /dev/null @@ -1,16 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#bib#EnabledMakers() abort -    return [] -endfunction - -function! neomake#makers#ft#bib#bibtex() abort -    return { -                \ 'exe': 'bibtex', -                \ 'args': ['-terse', '%:r'], -                \ 'append_file': 0, -                \ 'uses_filename': 0, -                \ 'errorformat': '%E%m---line %l of file %f', -                \ 'cwd': '%:p:h' -                \ } -endfunction diff --git a/.vim/autoload/neomake/makers/ft/c.vim b/.vim/autoload/neomake/makers/ft/c.vim deleted file mode 100644 index 1d0cda8..0000000 --- a/.vim/autoload/neomake/makers/ft/c.vim +++ /dev/null @@ -1,110 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#c#EnabledMakers() abort -    let makers = executable('clang') ? ['clang', 'clangtidy', 'clangcheck'] : ['gcc'] -    call add(makers, 'checkpatch') -    call add(makers, 'cppcheck') -    return makers -endfunction - -let g:neomake#makers#ft#c#project_root_files = ['configure', 'CMakeLists.txt'] - -function! neomake#makers#ft#c#clang() abort -    " as a single-file maker, include the current directory in the default -    " search path -    return { -        \ 'args': ['-fsyntax-only', '-Wall', '-Wextra', '-I./'], -        \ 'errorformat': -            \ '%-G%f:%s:,' . -            \ '%f:%l:%c: %trror: %m,' . -            \ '%f:%l:%c: %tarning: %m,' . -            \ '%I%f:%l:%c: note: %m,' . -            \ '%f:%l:%c: %m,'. -            \ '%f:%l: %trror: %m,'. -            \ '%f:%l: %tarning: %m,'. -            \ '%I%f:%l: note: %m,'. -            \ '%f:%l: %m' -        \ } -endfunction - -function! neomake#makers#ft#c#clangcheck() abort -    return { -        \ 'exe': 'clang-check', -        \ 'errorformat': -            \ '%-G%f:%s:,' . -            \ '%f:%l:%c: %trror: %m,' . -            \ '%f:%l:%c: %tarning: %m,' . -            \ '%I%f:%l:%c: note: %m,' . -            \ '%f:%l:%c: %m,'. -            \ '%f:%l: %trror: %m,'. -            \ '%f:%l: %tarning: %m,'. -            \ '%I%f:%l: note: %m,'. -            \ '%f:%l: %m', -        \ } -endfunction - -function! neomake#makers#ft#c#gcc() abort -    " as a single-file maker, include the current directory in the default -    " search path -    return { -        \ 'args': ['-fsyntax-only', '-Wall', '-Wextra', '-I./'], -        \ 'errorformat': -            \ '%-G%f:%s:,' . -            \ '%-G%f:%l: %#error: %#(Each undeclared identifier is reported only%.%#,' . -            \ '%-G%f:%l: %#error: %#for each function it appears%.%#,' . -            \ '%-GIn file included%.%#,' . -            \ '%-G %#from %f:%l\,,' . -            \ '%f:%l:%c: %trror: %m,' . -            \ '%f:%l:%c: %tarning: %m,' . -            \ '%I%f:%l:%c: note: %m,' . -            \ '%f:%l:%c: %m,' . -            \ '%f:%l: %trror: %m,' . -            \ '%f:%l: %tarning: %m,'. -            \ '%I%f:%l: note: %m,'. -            \ '%f:%l: %m', -        \ } -endfunction - -" The -p option followed by the path to the build directory should be set in -" the maker's arguments. That directory should contain the compile command -" database (compile_commands.json). -function! neomake#makers#ft#c#clangtidy() abort -    return { -        \ 'exe': 'clang-tidy', -        \ 'errorformat': -            \ '%E%f:%l:%c: fatal error: %m,' . -            \ '%E%f:%l:%c: error: %m,' . -            \ '%W%f:%l:%c: warning: %m,' . -            \ '%-G%\m%\%%(LLVM ERROR:%\|No compilation database found%\)%\@!%.%#,' . -            \ '%E%m', -        \ 'short_name': 'ctdy', -        \ } -endfunction - -function! neomake#makers#ft#c#checkpatch() abort -    return { -        \ 'exe': 'checkpatch.pl', -        \ 'args': ['--no-summary', '--no-tree', '--terse', '--file'], -        \ 'errorformat': -            \ '%f:%l: %tARNING: %m,' . -            \ '%f:%l: %tRROR: %m', -        \ } -endfunction - -function! neomake#makers#ft#c#cppcheck() abort -    " Uses --force to avoid: -    " nofile:0:0:information:Too many #ifdef configurations - cppcheck only checks 12 configurations. -    " NOTE: '--language=c' should be the first args, it gets replaced in -    "       neomake#makers#ft#cpp#cppcheck. -    return { -        \ 'args': ['--language=c', '--quiet', '--enable=warning', '--force', -        \          '--template="{file}:{line}:{column}:{severity}:{message}"'], -        \ 'errorformat': -            \ 'nofile:0:0:%trror:%m,' . -            \ '%f:%l:%c:%trror:%m,' . -            \ 'nofile:0:0:%tarning:%m,'. -            \ '%f:%l:%c:%tarning:%m,'. -            \ 'nofile:0:0:%tnformation:%m,'. -            \ '%f:%l:%c:%tnformation:%m', -        \ } -endfunction diff --git a/.vim/autoload/neomake/makers/ft/cf3.vim b/.vim/autoload/neomake/makers/ft/cf3.vim deleted file mode 100644 index 7826fc6..0000000 --- a/.vim/autoload/neomake/makers/ft/cf3.vim +++ /dev/null @@ -1,14 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#cf3#EnabledMakers() abort -    return ['cfpromises'] -endfunction - -function! neomake#makers#ft#cf3#cfpromises() abort -    return { -        \ 'exe': 'cf-promises', -        \ 'args': ['-cf'], -        \ 'errorformat': -            \ '%E%f:%l:%c: error: %m', -        \ } -endfunction diff --git a/.vim/autoload/neomake/makers/ft/chef.vim b/.vim/autoload/neomake/makers/ft/chef.vim deleted file mode 100644 index 805a070..0000000 --- a/.vim/autoload/neomake/makers/ft/chef.vim +++ /dev/null @@ -1,23 +0,0 @@ -function! neomake#makers#ft#chef#SupersetOf() abort -    return 'ruby' -endfunction - -function! neomake#makers#ft#chef#EnabledMakers() abort -    let ruby_makers = neomake#makers#ft#ruby#EnabledMakers() -    return ruby_makers + ['foodcritic', 'cookstyle'] -endfunction - -function! neomake#makers#ft#chef#foodcritic() abort -    return { -      \ 'errorformat': '%WFC%n: %m: %f:%l', -      \ } -endfunction - -function! neomake#makers#ft#chef#cookstyle() abort -    return { -      \ 'args': ['-f', 'emacs'], -      \ 'errorformat': '%f:%l:%c: %t: %m', -      \ 'postprocess': function('neomake#makers#ft#ruby#RubocopEntryProcess'), -      \ } -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/coffee.vim b/.vim/autoload/neomake/makers/ft/coffee.vim deleted file mode 100644 index 67c6cc3..0000000 --- a/.vim/autoload/neomake/makers/ft/coffee.vim +++ /dev/null @@ -1,15 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#coffee#EnabledMakers() abort -    return ['coffeelint'] -endfunction - -function! neomake#makers#ft#coffee#coffeelint() abort -    return { -        \ 'args': ['--reporter=csv'], -        \ 'errorformat': '%f\,%l\,%\d%#\,%trror\,%m,' . -            \ '%f\,%l\,%trror\,%m,' . -            \ '%f\,%l\,%\d%#\,%tarn\,%m,' . -            \ '%f\,%l\,%tarn\,%m' -            \ } -endfunction diff --git a/.vim/autoload/neomake/makers/ft/cpp.vim b/.vim/autoload/neomake/makers/ft/cpp.vim deleted file mode 100644 index 0cfa877..0000000 --- a/.vim/autoload/neomake/makers/ft/cpp.vim +++ /dev/null @@ -1,50 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#cpp#EnabledMakers() abort -    let makers = executable('clang++') ? ['clang', 'clangtidy', 'clangcheck'] : ['gcc'] -    call add(makers, 'cppcheck') -    return makers -endfunction - -function! neomake#makers#ft#cpp#clang() abort -    let maker = neomake#makers#ft#c#clang() -    let maker.exe = 'clang++' -    let maker.args += ['-std=c++1z'] -    return maker -endfunction - -function! neomake#makers#ft#cpp#gcc() abort -    let maker = neomake#makers#ft#c#gcc() -    let maker.exe = 'g++' -    let maker.args += ['-std=c++1z'] -    return maker -endfunction - -function! neomake#makers#ft#cpp#clangtidy() abort -    return neomake#makers#ft#c#clangtidy() -endfunction - -function! neomake#makers#ft#cpp#clangcheck() abort -    return neomake#makers#ft#c#clangcheck() -endfunction - -function! neomake#makers#ft#cpp#cppcheck() abort -    let maker = neomake#makers#ft#c#cppcheck() -    let maker.args[0] = '--language=c++' -    return maker -endfunction - -function! neomake#makers#ft#cpp#cpplint() abort -    return { -        \ 'exe': executable('cpplint') ? 'cpplint' : 'cpplint.py', -        \ 'args': ['--verbose=3'], -        \ 'errorformat': -        \     '%A%f:%l:  %m [%t],' . -        \     '%-G%.%#', -        \ 'postprocess': function('neomake#makers#ft#cpp#CpplintEntryProcess') -        \ } -endfunction - -function! neomake#makers#ft#cpp#CpplintEntryProcess(entry) abort -    let a:entry.type = str2nr(a:entry.type) < 5 ? 'W' : 'E' -endfunction diff --git a/.vim/autoload/neomake/makers/ft/crystal.vim b/.vim/autoload/neomake/makers/ft/crystal.vim deleted file mode 100644 index b570c74..0000000 --- a/.vim/autoload/neomake/makers/ft/crystal.vim +++ /dev/null @@ -1,25 +0,0 @@ -function! neomake#makers#ft#crystal#EnabledMakers() abort -    return ['crystal', 'ameba'] -endfunction - -function! neomake#makers#ft#crystal#crystal() abort -    " from vim-crystal -    return { -        \ 'args': ['run', '--no-color', '--no-codegen'], -        \ 'errorformat': -                \ '%ESyntax error in line %l: %m,'. -                \ '%ESyntax error in %f:%l: %m,'. -                \ '%EError in %f:%l: %m,'. -                \ '%C%p^,'. -                \ '%-C%.%#' -        \ } -endfunction - -function! neomake#makers#ft#crystal#ameba() abort -    " from vim-crystal -    return { -        \ 'args': ['--format', 'flycheck'], -        \ 'errorformat': '%f:%l:%c: %t: %m' -        \ } -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/cs.vim b/.vim/autoload/neomake/makers/ft/cs.vim deleted file mode 100644 index 6457cff..0000000 --- a/.vim/autoload/neomake/makers/ft/cs.vim +++ /dev/null @@ -1,22 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#cs#EnabledMakers() abort -    return ['mcs'] -endfunction - -function! neomake#makers#ft#cs#mcs() abort -    return { -        \ 'args': ['--parse', '--unsafe'], -        \ 'errorformat': '%f(%l\,%c): %trror %m', -        \ } -endfunction - -function! neomake#makers#ft#cs#msbuild() abort -    return { -        \ 'exe': 'msbuild', -        \ 'args': ['-nologo', '-v:q', '-property:GenerateFullPaths=true', neomake#utils#FindGlobFile('*.sln')], -        \ 'errorformat': '%E%f(%l\,%c): error CS%n: %m [%.%#],'. -        \                '%W%f(%l\,%c): warning CS%n: %m [%.%#]', -        \ 'append_file' : 0, -        \ } -endfunction diff --git a/.vim/autoload/neomake/makers/ft/css.vim b/.vim/autoload/neomake/makers/ft/css.vim deleted file mode 100644 index 3afbccd..0000000 --- a/.vim/autoload/neomake/makers/ft/css.vim +++ /dev/null @@ -1,35 +0,0 @@ -scriptencoding utf8 - -function! neomake#makers#ft#css#EnabledMakers() abort -    return ['csslint', 'stylelint'] -endfunction - -function! neomake#makers#ft#css#csslint() abort -    return { -        \ 'args': ['--format=compact'], -        \ 'errorformat': -        \   '%-G,'. -        \   '%-G%f: lint free!,'. -        \   '%f: line %l\, col %c\, %trror - %m,'. -        \   '%f: line %l\, col %c\, %tarning - %m,'. -        \   '%f: line %l\, col %c\, %m,'. -        \   '%f: %tarning - %m' -        \ } -endfunction - -function! neomake#makers#ft#css#stylelint() abort -    let maker = { -          \ 'errorformat': -          \   '%-P%f,'. -          \   '%W%*\s%l:%c%*\s✖  %m,'. -          \   '%-Q,'. -          \   '%+EError: No configuration provided for %f,%-C    %.%#' -          \ } - -    function! maker.postprocess(entry) abort -        let a:entry.text = substitute(a:entry.text, '\v\s\s+(.{-})\s*$', ' [\1]', 'g') -    endfunction - -    return maker -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/cuda.vim b/.vim/autoload/neomake/makers/ft/cuda.vim deleted file mode 100644 index 0fbf6c9..0000000 --- a/.vim/autoload/neomake/makers/ft/cuda.vim +++ /dev/null @@ -1,15 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#cuda#EnabledMakers() abort -    return ['nvcc'] -endfunction - -function! neomake#makers#ft#cuda#nvcc() abort -    return { -        \ 'exe': 'nvcc', -        \ 'errorformat': -            \ '%f\(%l\): %trror: %m,'. -            \ '%f\(%l\): %tarning: %m,'. -            \ '%f\(%l\): %m', -        \ } -endfunction diff --git a/.vim/autoload/neomake/makers/ft/d.vim b/.vim/autoload/neomake/makers/ft/d.vim deleted file mode 100644 index 5206a8d..0000000 --- a/.vim/autoload/neomake/makers/ft/d.vim +++ /dev/null @@ -1,92 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#d#EnabledMakers() abort -    " dmd, ldmd, and gdmd all share a common CLI. -    " Ordered in efficiency of compiler -    for m in ['dmd', 'ldmd', 'gdmd'] -        if executable(m) -            return [m] -        endif -    endfor -    return [] -endfunction - -function! s:findDubRoot() abort -    "Look upwards for a dub.json or dub.sdl to find the root -    "I did it like this because it's the only cross platform way I know of -    let tmp_file = findfile('dub.json', '.;') -    if empty(tmp_file) -        let tmp_file = findfile('dub.sdl', '.;') -    endif -    return tmp_file -endfunction - -function! s:UpdateDub() abort -    "Add dub directories -    let s:dubImports = [] -    let tmp_file = s:findDubRoot() -    if executable('dub') && !empty(tmp_file) -        let tmp_dir = fnamemodify(tmp_file,':p:h') -        let dubCmd = 'dub describe --data=import-paths --annotate ' -                    \ .'--skip-registry=all --vquiet --data-list --root=' -        let output = system(dubCmd . tmp_dir) -        if(v:shell_error == 0 && !empty(output)) -            " Is \n portable? -            let s:dubImports = split(output, '\n') -            call map(s:dubImports, "'-I' . v:val") -        endif -    endif -endfunction - -"GDMD does not adhere to dmd's flags or output, but to GCC's. -"This is for LDMD and dmd only. -function! s:DmdStyleMaker(args) abort -    "Updating dub paths each make might be slow? -    call s:UpdateDub() -    let args = ['-w', '-wi', '-c', '-o-', '-vcolumns'] + a:args + s:dubImports -    return { -        \ 'args': args, -        \ 'errorformat': -        \     '%f(%l\,%c): %trror: %m,' . -        \     '%f(%l): %trror: %m,' . -        \     '%f(%l\,%c): %tarning: %m,' . -        \     '%f(%l): %tarning: %m,' . -        \     '%f(%l\,%c): Deprecation: %m,' . -        \     '%f(%l): Deprecation: %m,', -        \ } -endfunction - -function! neomake#makers#ft#d#dmd() abort -    let args = [] -    if exists('g:neomake_d_dmd_args_conf') -        call add(args, '-conf=' . expand(g:neomake_d_dmd_args_conf)) -    endif -    return s:DmdStyleMaker(args) -endfunction - -function! neomake#makers#ft#d#ldmd() abort -    let args = [] -    if exists('g:neomake_d_ldmd_args_conf') -        call add(args, '-conf=' . expand(g:neomake_d_ldmd_args_conf)) -    endif -    return s:DmdStyleMaker(args) -endfunction - -function! neomake#makers#ft#d#gdmd() abort -    let args = ['-c', '-o-', '-fsyntax-only', s:UpdateDub()] -    return { -        \ 'args': args, -        \ 'errorformat': -            \ '%-G%f:%s:,' . -            \ '%-G%f:%l: %#error: %#(Each undeclared identifier is reported only%.%#,' . -            \ '%-G%f:%l: %#error: %#for each function it appears%.%#,' . -            \ '%-GIn file included%.%#,' . -            \ '%-G %#from %f:%l\,,' . -            \ '%f:%l:%c: %trror: %m,' . -            \ '%f:%l:%c: %tarning: %m,' . -            \ '%f:%l:%c: %m,' . -            \ '%f:%l: %trror: %m,' . -            \ '%f:%l: %tarning: %m,'. -            \ '%f:%l: %m', -        \ } -endfunction diff --git a/.vim/autoload/neomake/makers/ft/docbk.vim b/.vim/autoload/neomake/makers/ft/docbk.vim deleted file mode 100644 index dceffac..0000000 --- a/.vim/autoload/neomake/makers/ft/docbk.vim +++ /dev/null @@ -1,8 +0,0 @@ -function! neomake#makers#ft#docbk#EnabledMakers() abort -    return ['xmllint'] -endfunction - -function! neomake#makers#ft#docbk#xmllint() abort -    return neomake#makers#ft#xml#xmllint() -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/dockerfile.vim b/.vim/autoload/neomake/makers/ft/dockerfile.vim deleted file mode 100644 index a6d767f..0000000 --- a/.vim/autoload/neomake/makers/ft/dockerfile.vim +++ /dev/null @@ -1,13 +0,0 @@ -function! neomake#makers#ft#dockerfile#EnabledMakers() abort -    return ['hadolint'] -endfunction - -function! neomake#makers#ft#dockerfile#hadolint() abort -    return { -          \ 'output_stream': 'stdout', -          \ 'uses_stdin': 1, -          \ 'args': ['--format', 'tty'], -          \ 'errorformat': '%f:%l %m', -          \ } -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/elixir.vim b/.vim/autoload/neomake/makers/ft/elixir.vim deleted file mode 100644 index 4de652e..0000000 --- a/.vim/autoload/neomake/makers/ft/elixir.vim +++ /dev/null @@ -1,72 +0,0 @@ -" vim: ts=4 sw=4 et - -" Credo error types. -" F -> Refactoring opportunities -" W -> Warnings -" C -> Convention violation -" D -> Software design suggestions -" R -> Readability suggestions -" Map structure {CredoError: NeomakeType, ...} -let s:neomake_elixir_credo_config_typemap = { -    \ 'F': 'W', -    \ 'C': 'W', -    \ 'D': 'I', -    \ 'R': 'I'} - -function! neomake#makers#ft#elixir#PostprocessEnforceMaxBufferLine(entry) abort -    let buffer_lines = str2nr(line('$')) -    if (buffer_lines < a:entry.lnum) -        let a:entry.lnum = buffer_lines -    endif -endfunction - -function! neomake#makers#ft#elixir#PostprocessCredo(entry) abort -    let type = toupper(a:entry.type) -    let type_map = extend(s:neomake_elixir_credo_config_typemap, -                \ get(g:, 'neomake_elixir_credo_config_typemap', {})) -    if has_key(type_map, type) -        let a:entry.type = type_map[type] -    endif -endfunction - -function! neomake#makers#ft#elixir#EnabledMakers() abort -    return ['mix'] -endfunction - -function! neomake#makers#ft#elixir#elixir() abort -    return { -        \ 'errorformat': -            \ '%E** %s %f:%l: %m,'. -            \ '%W%f:%l: warning: %m' -        \ } -endfunction - -function! neomake#makers#ft#elixir#credo() abort -    return { -      \ 'exe': 'mix', -      \ 'args': ['credo', 'list', '--format=oneline'], -      \ 'postprocess': function('neomake#makers#ft#elixir#PostprocessCredo'), -      \ 'errorformat': -          \'[%t] %. %f:%l:%c %m,' . -          \'[%t] %. %f:%l %m' -      \ } -endfunction - -function! neomake#makers#ft#elixir#mix() abort -    return { -      \ 'exe' : 'mix', -      \ 'args': ['compile', '--warnings-as-errors'], -      \ 'postprocess': function('neomake#makers#ft#elixir#PostprocessEnforceMaxBufferLine'), -      \ 'errorformat': -        \ '** %s %f:%l: %m,'. -        \ '%Ewarning: %m,%C  %f:%l,%Z' -      \ } -endfunction - -function! neomake#makers#ft#elixir#dogma() abort -    return { -      \ 'exe': 'mix', -      \ 'args': ['dogma', '--format=flycheck'], -      \ 'errorformat': '%E%f:%l:%c: %.: %m' -      \ } -endfunction diff --git a/.vim/autoload/neomake/makers/ft/elm.vim b/.vim/autoload/neomake/makers/ft/elm.vim deleted file mode 100644 index fe1d2f6..0000000 --- a/.vim/autoload/neomake/makers/ft/elm.vim +++ /dev/null @@ -1,53 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#elm#EnabledMakers() abort -    return ['elmMake'] -endfunction - -function! neomake#makers#ft#elm#elmMake() abort -    return { -        \ 'exe': 'elm-make', -        \ 'args': ['--report=json', '--output=' . g:neomake#compat#dev_null], -        \ 'process_output': function('neomake#makers#ft#elm#ElmMakeProcessOutput') -        \ } -endfunction - -function! neomake#makers#ft#elm#ElmMakeProcessOutput(context) abort -    let errors = [] -    " output will be a List, containing either: -    " 1) A success message -    " 2) A string holding a JSON array for both warnings and errors - -    for line in a:context.output -        if line[0] ==# '[' -            let decoded = neomake#compat#json_decode(line) -            for item in decoded -                if get(item, 'type', '') ==# 'warning' -                    let code = 'W' -                else -                    let code = 'E' -                endif - -                let compiler_error = item['tag'] -                let message = item['overview'] -                let filename = item['file'] -                let region_start = item['region']['start'] -                let region_end = item['region']['end'] -                let row = region_start['line'] -                let col = region_start['column'] -                let length = region_end['column'] - region_start['column'] - -                let error = { -                            \ 'text': compiler_error . ' : ' . message, -                            \ 'type': code, -                            \ 'lnum': row, -                            \ 'col': col, -                            \ 'length': length, -                            \ 'filename': filename, -                            \ } -                call add(errors, error) -            endfor -        endif -    endfor -    return errors -endfunction diff --git a/.vim/autoload/neomake/makers/ft/erlang.vim b/.vim/autoload/neomake/makers/ft/erlang.vim deleted file mode 100644 index a554098..0000000 --- a/.vim/autoload/neomake/makers/ft/erlang.vim +++ /dev/null @@ -1,72 +0,0 @@ - -function! neomake#makers#ft#erlang#EnabledMakers() abort -    return ['erlc'] -endfunction - -function! neomake#makers#ft#erlang#erlc() abort -    let maker = { -        \ 'errorformat': -            \ '%W%f:%l: Warning: %m,' . -            \ '%E%f:%l: %m' -        \ } -    function! maker.InitForJob(_jobinfo) abort -        let self.args = neomake#makers#ft#erlang#GlobPaths() -    endfunction -    return maker -endfunction - -if !exists('g:neomake_erlang_erlc_target_dir') -    let g:neomake_erlang_erlc_target_dir = tempname() -endif - -function! neomake#makers#ft#erlang#GlobPaths() abort -    " Find project root directory. -    let rebar_config = neomake#utils#FindGlobFile('rebar.config') -    if !empty(rebar_config) -        let root = fnamemodify(rebar_config, ':h') -    else -        " At least try with CWD -        let root = getcwd() -    endif -    let root = fnamemodify(root, ':p') -    let build_dir = root . '_build' -    let ebins = [] -    if isdirectory(build_dir) -        " Pick the rebar3 profile to use -        let default_profile = expand('%') =~# '_SUITE.erl$' ?  'test' : 'default' -        let profile = get(b:, 'neomake_erlang_erlc_rebar3_profile', default_profile) -        let ebins += neomake#compat#glob_list(build_dir . '/' . profile . '/lib/*/ebin') -        let target_dir = build_dir . '/neomake' -    else -        let target_dir = get(b:, 'neomake_erlang_erlc_target_dir', -                       \ get(g:, 'neomake_erlang_erlc_target_dir')) -    endif -    " If <root>/_build doesn't exist it might be a rebar2/erlang.mk project -    if isdirectory(root . 'deps') -        let ebins += neomake#compat#glob_list(root . 'deps/*/ebin') -    endif -    " Set g:neomake_erlang_erlc_extra_deps in a project-local .vimrc, e.g.: -    "   let g:neomake_erlang_erlc_extra_deps = ['deps.local'] -    " Or just b:neomake_erlang_erlc_extra_deps in a specific buffer. -    let extra_deps_dirs = get(b:, 'neomake_erlang_erlc_extra_deps', -                        \ get(g:, 'neomake_erlang_erlc_extra_deps')) -    if !empty(extra_deps_dirs) -        for extra_deps in extra_deps_dirs -            if extra_deps[-1] !=# '/' -                let extra_deps .= '/' -            endif -            let ebins += neomake#compat#glob_list(extra_deps . '*/ebin') -        endfor -    endif -    let args = ['-pa', 'ebin', '-I', 'include', '-I', 'src'] -    for ebin in ebins -        let args += [ '-pa', ebin, -                    \ '-I', substitute(ebin, 'ebin$', 'include', '') ] -    endfor -    if !isdirectory(target_dir) -        call mkdir(target_dir, 'p') -    endif -    let args += ['-o', target_dir] -    return args -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/fish.vim b/.vim/autoload/neomake/makers/ft/fish.vim deleted file mode 100644 index 429afcc..0000000 --- a/.vim/autoload/neomake/makers/ft/fish.vim +++ /dev/null @@ -1,16 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#fish#EnabledMakers() abort -    return ['fish'] -endfunction - -function! neomake#makers#ft#fish#fish() abort -    return { -        \ 'args': ['-n'], -        \ 'errorformat': -            \ '%C%f (line %l): %s,'. -            \ '%-Gfish: %.%#,'. -            \ '%Z%p^,'. -            \ '%E%m' -        \} -endfunction diff --git a/.vim/autoload/neomake/makers/ft/fortran.vim b/.vim/autoload/neomake/makers/ft/fortran.vim deleted file mode 100644 index 828bba9..0000000 --- a/.vim/autoload/neomake/makers/ft/fortran.vim +++ /dev/null @@ -1,32 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#fortran#EnabledMakers() abort -    return ['gfortran'] -endfunction - -" Using the errorformat from syntastic -function! neomake#makers#ft#fortran#ifort() abort -    return { -        \ 'args': ['-syntax-only', '-warn'], -        \ 'errorformat': -            \ '%E%f(%l): error #%n: %m,'. -            \ '%W%f(%l): warning #%n: %m,'. -            \ '%W%f(%l): remark #%n: %m,'. -            \ '%-Z%p^,'. -            \ '%-G%.%#', -        \ } -endfunction - -" Using the errorformat from syntastic -function! neomake#makers#ft#fortran#gfortran() abort -    return { -        \ 'args': ['-fsyntax-only', '-Wall', '-Wextra'], -        \ 'errorformat': -            \ '%-C %#,'. -            \ '%-C  %#%.%#,'. -            \ '%A%f:%l%[.:]%c:,'. -            \ '%Z%\m%\%%(Fatal %\)%\?%trror: %m,'. -            \ '%Z%tarning: %m,'. -            \ '%-G%.%#', -        \ } -endfunction diff --git a/.vim/autoload/neomake/makers/ft/go.vim b/.vim/autoload/neomake/makers/ft/go.vim deleted file mode 100644 index ac53730..0000000 --- a/.vim/autoload/neomake/makers/ft/go.vim +++ /dev/null @@ -1,84 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#go#EnabledMakers() abort -    let makers = ['go'] -    if executable('golangci-lint') -        call add(makers, 'golangci_lint') -    elseif executable('gometalinter') -        call add(makers, 'gometalinter') -    else -        call extend(makers, ['golint', 'govet']) -    endif -    return makers -endfunction - -function! neomake#makers#ft#go#go() abort -    return { -        \ 'args': [ -            \ 'test', '-c', -            \ '-o', g:neomake#compat#dev_null, -        \ ], -        \ 'append_file': 0, -        \ 'cwd': '%:h', -        \ 'serialize': 1, -        \ 'serialize_abort_on_error': 1, -        \ 'errorformat': -            \ '%W%f:%l: warning: %m,' . -            \ '%E%f:%l:%c:%m,' . -            \ '%E%f:%l:%m,' . -            \ '%C%\s%\+%m,' . -            \ '%-G%.%#\\\[no test files],' . -            \ '%-G#%.%#', -        \ 'postprocess': function('neomake#postprocess#compress_whitespace'), -        \ 'version_arg': 'version', -        \ } -endfunction - -function! neomake#makers#ft#go#golint() abort -    " golint's issues are informational, as they're stylistic (not bugs) -    return { -        \ 'errorformat': -            \ '%I%f:%l:%c: %m,' . -            \ '%-G%.%#' -        \ } -endfunction - -function! neomake#makers#ft#go#govet() abort -    return { -        \ 'exe': 'go', -        \ 'args': ['vet'], -        \ 'append_file': 0, -        \ 'cwd': '%:h', -        \ 'errorformat': -            \ '%Evet: %.%\+: %f:%l:%c: %m,' . -            \ '%W%f:%l: %m,' . -            \ '%-G%.%#' -        \ } -endfunction - -function! neomake#makers#ft#go#gometalinter() abort -    " Only run a subset of gometalinter for speed, users can override with: -    " let g:neomake_go_gometalinter_args = ['--disable-all', '--enable=X', ...] -    " -    " All linters are only warnings, the go compiler will report errors -    return { -        \ 'args': ['--disable-all', '--enable=errcheck', '--enable=megacheck', '--vendor'], -        \ 'append_file': 0, -        \ 'cwd': '%:h', -        \ 'errorformat': -            \ '%f:%l:%c:%t%*[^:]: %m,' . -            \ '%f:%l::%t%*[^:]: %m' -        \ } -endfunction - -function! neomake#makers#ft#go#golangci_lint() abort -    return { -        \ 'exe': 'golangci-lint', -        \ 'args': ['run', '--out-format=line-number', '--print-issued-lines=false'], -        \ 'output_stream': 'stdout', -        \ 'append_file': 0, -        \ 'cwd': '%:h', -        \ 'errorformat': -            \ '%f:%l:%c: %m' -        \ } -endfunction diff --git a/.vim/autoload/neomake/makers/ft/haml.vim b/.vim/autoload/neomake/makers/ft/haml.vim deleted file mode 100644 index df79b38..0000000 --- a/.vim/autoload/neomake/makers/ft/haml.vim +++ /dev/null @@ -1,13 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#haml#EnabledMakers() abort -    return ['hamllint'] -endfunction - -function! neomake#makers#ft#haml#hamllint() abort -    return { -        \ 'exe': 'haml-lint', -        \ 'args': ['--no-color'], -        \ 'errorformat': '%f:%l [%t] %m' -        \ } -endfunction diff --git a/.vim/autoload/neomake/makers/ft/haskell.vim b/.vim/autoload/neomake/makers/ft/haskell.vim deleted file mode 100644 index 64a5227..0000000 --- a/.vim/autoload/neomake/makers/ft/haskell.vim +++ /dev/null @@ -1,169 +0,0 @@ -unlet! s:makers -unlet! s:uses_cabal - -function! neomake#makers#ft#haskell#EnabledMakers() abort -    if !exists('s:makers') -        " cache whether each maker is available, to avoid lots of (UI blocking) -        " system calls -        " TODO: figure out how to do all this configuration async instead of -        " caching it--that would allow the user to change directories from -        " within vim and recalculate maker availability without restarting vim -        let commands = ['ghc-mod', 'hdevtools', 'hlint', 'liquid'] -        let s:makers = [] -        let s:jobs = [] -        for command in commands -            " stack may be able to find a maker binary that's not on the normal -            " path so check for that first -            if executable('stack') -                " run the maker command using stack to see whether stack can -                " find it use the help flag to run the maker command without -                " doing anything -                let stack_command = [ -                      \   'stack' -                      \ , 'exec' -                      \ , '--' -                      \ , command -                      \ , '--help' -                      \ ] -                if has('nvim') -                    let job_id = jobstart( -                        \ stack_command, -                        \ { 'command': command -                        \ , 'on_exit': function('s:CheckStackMakerAsync') -                        \ }) -                    if job_id > 0 -                        call add(s:jobs, job_id) -                    endif -                else -                    call extend(stack_command, ['> /dev/null 2>&1;', 'echo $?']) -                    if system(join(stack_command, ' ')) == 0 -                        call add(s:makers, substitute(command, '-', '', 'g')) -                    endif -                endif -            elseif executable(command) " no stack bin so check for maker bin -                call add(s:makers, substitute(command, '-', '', 'g')) -            endif -        endfor -        if has('nvim') -            call jobwait(s:jobs) -        endif -    endif -    return s:makers -endfunction - -function! neomake#makers#ft#haskell#hdevtools() abort -    let params = { -        \ 'exe': 'hdevtools', -        \ 'args': ['check', '-g-Wall'], -        \ 'mapexpr': s:CleanUpSpaceAndBackticks(), -        \ 'errorformat': -            \ '%-Z %#,'. -            \ '%W%f:%l:%v: Warning: %m,'. -            \ '%W%f:%l:%v: Warning:,'. -            \ '%E%f:%l:%v: %m,'. -            \ '%E%>%f:%l:%v:,'. -            \ '%+C  %#%m,'. -            \ '%W%>%f:%l:%v:,'. -            \ '%+C  %#%tarning: %m,' -        \ } -    " hdevtools needs the GHC-PACKAGE-PATH environment variable to exist -    " when running on a project WITHOUT a cabal file, but it needs the -    " GHC-PACKAGE-PATH to NOT exist when running on a with a project WITH -    " a cabal file -    if !exists('s:uses_cabal') -        let s:uses_cabal = 0 -        if executable('stack') -            let output = neomake#compat#systemlist(['stack', '--verbosity', 'silent', 'path', '--project-root']) -            if !empty(output) -                let rootdir = output[0] -                if !empty(glob(rootdir . '/*.cabal')) -                    let s:uses_cabal = 1 -                endif -            endif -        endif -    endif -    if s:uses_cabal -        let params['stackexecargs'] = ['--no-ghc-package-path'] -    endif -    return s:TryStack(params) -endfunction - -function! neomake#makers#ft#haskell#ghcmod() abort -    " This filters out newlines, which is what neovim gives us instead of the -    " null bytes that ghc-mod sometimes spits out. -    let mapexpr = 'substitute(v:val, "\n", "", "g")' -    return s:TryStack({ -        \ 'exe': 'ghc-mod', -        \ 'args': ['check'], -        \ 'mapexpr': mapexpr, -        \ 'errorformat': -            \ '%-G%\s%#,' . -            \ '%f:%l:%c:%trror: %m,' . -            \ '%f:%l:%c:%tarning: %m,'. -            \ '%f:%l:%c: %trror: %m,' . -            \ '%f:%l:%c: %tarning: %m,' . -            \ '%E%f:%l:%c:%m,' . -            \ '%E%f:%l:%c:,' . -            \ '%Z%m' -        \ }) -endfunction - -function! neomake#makers#ft#haskell#HlintEntryProcess(entry) abort -    " Postprocess hlint output to make it more readable as a single line -    let a:entry.text = substitute(a:entry.text, '\v(Found:)\s*\n', ' | \1', 'g') -    let a:entry.text = substitute(a:entry.text, '\v(Why not:)\s*\n', ' | \1', 'g') -    let a:entry.text = substitute(a:entry.text, '^No hints$', '', 'g') -    call neomake#postprocess#compress_whitespace(a:entry) -endfunction - -function! neomake#makers#ft#haskell#hlint() abort -    return s:TryStack({ -        \ 'exe': 'hlint', -        \ 'postprocess': function('neomake#makers#ft#haskell#HlintEntryProcess'), -        \ 'args': [], -        \ 'errorformat': -            \ '%E%f:%l:%v: Error: %m,' . -            \ '%W%f:%l:%v: Warning: %m,' . -            \ '%I%f:%l:%v: Suggestion: %m,' . -            \ '%C%m' -        \ }) -endfunction - -function! neomake#makers#ft#haskell#liquid() abort -    return s:TryStack({ -      \ 'exe': 'liquid', -      \ 'args': [], -      \ 'mapexpr': s:CleanUpSpaceAndBackticks(), -      \ 'errorformat': -          \ '%E %f:%l:%c-%.%#Error: %m,' . -          \ '%C%.%#|%.%#,' . -          \ '%C %#^%#,' . -          \ '%C%m,' -      \ }) -endfunction - -function! s:CheckStackMakerAsync(_job_id, data, _event) dict abort -    if a:data == 0 -        call add(s:makers, substitute(self.command, '-', '', 'g')) -    endif -endfunction - -function! s:TryStack(maker) abort -    if executable('stack') -        if !has_key(a:maker, 'stackexecargs') -            let a:maker['stackexecargs'] = [] -        endif -        let a:maker['args'] = -            \   ['--verbosity', 'silent', 'exec'] -            \ + a:maker['stackexecargs'] -            \ + ['--', a:maker['exe']] -            \ + a:maker['args'] -        let a:maker['exe'] = 'stack' -    endif -    return a:maker -endfunction - -function! s:CleanUpSpaceAndBackticks() abort -    return 'substitute(substitute(v:val, " \\{2,\\}", " ", "g"), "`", "''", "g")' -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/haxe.vim b/.vim/autoload/neomake/makers/ft/haxe.vim deleted file mode 100644 index 9fd07ec..0000000 --- a/.vim/autoload/neomake/makers/ft/haxe.vim +++ /dev/null @@ -1,11 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#haxe#EnabledMakers() abort -    return ['haxe'] -endfunction - -function! neomake#makers#ft#haxe#haxe() abort -    return { -                \ 'errorformat': '%E%f:%l: characters %c-%n : %m' -                \ } -endfunction diff --git a/.vim/autoload/neomake/makers/ft/help.vim b/.vim/autoload/neomake/makers/ft/help.vim deleted file mode 100644 index c573cef..0000000 --- a/.vim/autoload/neomake/makers/ft/help.vim +++ /dev/null @@ -1,40 +0,0 @@ -let s:makers = ['writegood'] - -let s:slash = neomake#utils#Slash() -let s:vimhelplint_exe = '' -if executable('vimhelplint') -    let s:vimhelplint_exe = 'vimhelplint' -else -    let s:neomake_root = expand('<sfile>:p:h:h:h:h:h', 1) -    if !empty(glob(join([s:neomake_root, 'build', 'vimhelplint'], s:slash))) -        let s:vimhelplint_exe = join([s:neomake_root, 'contrib', 'vimhelplint'], s:slash) -    endif -endif -if !empty(s:vimhelplint_exe) -    let s:makers += ['vimhelplint'] -endif - -function! neomake#makers#ft#help#EnabledMakers() abort -    return s:makers -endfunction - -function! neomake#makers#ft#help#vimhelplint() abort -    " NOTE: does not support/uses arg from wrapper script (i.e. no support for -    "       tempfiles).  It will use the arg only to expand/glob `*.txt` -    "       (which does not include the hidden tempfile). -    return { -        \ 'exe': s:vimhelplint_exe, -        \ 'errorformat': '%f:%l:%c:%trror:%n:%m,%f:%l:%c:%tarning:%n:%m', -        \ 'postprocess': function('neomake#postprocess#generic_length'), -        \ 'output_stream': 'stdout', -        \ } -endfunction - -function! neomake#makers#ft#help#proselint() abort -    return neomake#makers#ft#text#proselint() -endfunction - -function! neomake#makers#ft#help#writegood() abort -    return neomake#makers#ft#text#writegood() -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/html.vim b/.vim/autoload/neomake/makers/ft/html.vim deleted file mode 100644 index 6100175..0000000 --- a/.vim/autoload/neomake/makers/ft/html.vim +++ /dev/null @@ -1,20 +0,0 @@ -function! neomake#makers#ft#html#tidy() abort -    " NOTE: could also have info items, but those are skipped with -e/-q, e.g. -    " 'line 7 column 1 - Info: value for attribute "id" missing quote marks'. -    return { -                \ 'args': ['-e', '-q', '--gnu-emacs', 'true'], -                \ 'errorformat': '%W%f:%l:%c: Warning: %m', -                \ } -endfunction - -function! neomake#makers#ft#html#htmlhint() abort -    return { -                \ 'args': ['--format', 'unix', '--nocolor'], -                \ 'errorformat': '%f:%l:%c: %m,%-G,%-G%*\d problems', -                \ } -endfunction - -function! neomake#makers#ft#html#EnabledMakers() abort -    return ['tidy', 'htmlhint'] -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/idris.vim b/.vim/autoload/neomake/makers/ft/idris.vim deleted file mode 100644 index 5d95edb..0000000 --- a/.vim/autoload/neomake/makers/ft/idris.vim +++ /dev/null @@ -1,25 +0,0 @@ -function! neomake#makers#ft#idris#EnabledMakers() abort -    return ['idris'] -endfunction - -function! neomake#makers#ft#idris#Postprocess(entry) abort -    call neomake#postprocess#compress_whitespace(a:entry) -    " Extract length from the beginning of the entry ('-4:When checking left hand side of xor:'). -    if a:entry.text =~# '\v^\d+:' -        let end = 0 + a:entry.text  " cast to int -        let a:entry.length = end - a:entry.col -        let a:entry.text = substitute(a:entry.text, '\v^([^:]+:){2} ', '', '') -    endif -endfunction - -function! neomake#makers#ft#idris#idris() abort -    return { -        \ 'exe': 'idris', -        \ 'args': ['--check', '--warn', '--total', '--warnpartial', '--warnreach'], -        \ 'errorformat': -        \   '%E%f:%l:%c:%.%#,%-C  %#%m,%-C%.%#,'. -        \   '%E%f:%l:%c-%m,%-C  %#%m,%-C%.%#', -        \ 'postprocess': function('neomake#makers#ft#idris#Postprocess'), -        \ } -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/jade.vim b/.vim/autoload/neomake/makers/ft/jade.vim deleted file mode 100644 index c747950..0000000 --- a/.vim/autoload/neomake/makers/ft/jade.vim +++ /dev/null @@ -1,13 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#jade#EnabledMakers() abort -    return ['jadelint'] -endfunction - -function! neomake#makers#ft#jade#jadelint() abort -    return { -        \ 'exe': 'jade-lint', -        \ 'args': ['--reporter', 'inline'], -        \ 'errorformat': '%f:%l:%c %m' -        \ } -endfunction diff --git a/.vim/autoload/neomake/makers/ft/jasmine.vim b/.vim/autoload/neomake/makers/ft/jasmine.vim deleted file mode 100644 index 56e0a4f..0000000 --- a/.vim/autoload/neomake/makers/ft/jasmine.vim +++ /dev/null @@ -1,9 +0,0 @@ -function! neomake#makers#ft#jasmine#SupersetOf() abort -    return 'javascript' -endfunction - -function! neomake#makers#ft#jasmine#EnabledMakers() abort -    return ['jshint', 'eslint', 'jscs'] -endfunction - -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/java.vim b/.vim/autoload/neomake/makers/ft/java.vim deleted file mode 100644 index 1c09bda..0000000 --- a/.vim/autoload/neomake/makers/ft/java.vim +++ /dev/null @@ -1,396 +0,0 @@ -"============================================================================ -"File:        java.vim -"Description: Syntax checking plugin for neomake -"Maintainer:  Wang Shidong <wsdjeg at outlook dot com> -"License:     This program is free software. It comes without any warranty, -"             to the extent permitted by applicable law. You can redistribute -"             it and/or modify it under the terms of the Do What The Fuck You -"             Want To Public License, Version 2, as published by Sam Hocevar. -"             See http://sam.zoy.org/wtfpl/COPYING for more details. -"============================================================================ - -let s:save_cpo = &cpoptions -set cpoptions&vim - -if exists('g:loaded_neomake_java_javac_maker') -    finish -endif -let g:loaded_neomake_java_javac_maker = 1 - -let g:neomake_java_javac_maven_pom_tags = ['build', 'properties'] -let g:neomake_java_javac_maven_pom_properties = {} -let s:is_windows = has('win32') || has('win64') || has('win16') || has('dos32') || has('dos16') -if s:is_windows -    let s:fsep = ';' -    let s:psep = '\' -else -    let s:fsep = ':' -    let s:psep = '/' -endif -let g:neomake_java_checker_home = fnamemodify(expand('<sfile>'), ':p:h:gs?\\?/?') - -" custom options -let g:neomake_java_javac_executable = -            \ get(g:, 'neomake_java_javac_executable', 'javac') - -let g:neomake_java_maven_executable = -            \ get(g:, 'neomake_java_maven_executable', 'mvn') - -let g:neomake_java_gradle_executable = -            \ get(g:, 'neomake_java_gradle_executable', s:is_windows? '.\gradlew.bat' : './gradlew') - -let g:neomake_java_ant_executable = -            \ get(g:, 'neomake_java_ant_executable', 'ant') - -let g:neomake_java_checkstyle_executable = -            \ get(g:, 'neomake_java_checkstyle_executable', 'checkstyle') - -let g:neomake_java_javac_options = -            \ get(g:, 'neomake_java_javac_options', ['-Xlint']) - -let g:neomake_java_maven_options = -            \ get(g:, 'neomake_java_maven_options', '') - -let g:neomake_java_javac_classpath = -            \ get(g:, 'neomake_java_javac_classpath', '') - -let g:neomake_java_javac_outputdir = -            \ get(g:, 'neomake_java_javac_outputdir', '') - -let g:neomake_java_checkstyle_xml = -            \ get(g:, 'neomake_java_checkstyle_xml', '/usr/share/checkstyle/google_checks.xml') - -let g:neomake_java_javac_delete_output = -            \ get(g:, 'neomake_java_javac_delete_output', 1) - -let g:neomake_java_javac_autoload_maven_classpath = -            \ get(g:, 'neomake_java_javac_autoload_maven_classpath', 1) - -let g:neomake_java_javac_autoload_gradle_classpath = -            \ get(g:, 'neomake_java_javac_autoload_gradle_classpath', 1) - -let g:neomake_java_javac_autoload_ant_classpath = -            \ get(g:, 'neomake_java_javac_autoload_ant_classpath', 1) - -let g:neomake_java_javac_autoload_eclipse_classpath = -            \ get(g:, 'neomake_java_javac_autoload_eclipse_classpath', 1) - -let g:neomake_java_javac_maven_pom_ftime = -            \ get(g:, 'neomake_java_javac_maven_pom_ftime', {}) - -let g:neomake_java_javac_maven_pom_classpath = -            \ get(g:, 'neomake_java_javac_maven_pom_classpath', {}) - -let g:neomake_java_javac_gradle_ftime = -            \ get(g:, 'neomake_java_javac_gradle_ftime', {}) - -let g:neomake_java_javac_gradle_classpath = -            \ get(g:, 'neomake_java_javac_gradle_classpath', {}) - -let g:neomake_java_javac_ant_ftime = -            \ get(g:, 'neomake_java_javac_ant_ftime', {}) - -let g:neomake_java_javac_ant_classpath = -            \ get(g:, 'neomake_java_javac_ant_classpath', {}) - - -let s:has_maven = executable(expand(g:neomake_java_maven_executable, 1)) -let s:has_gradle = executable(expand(g:neomake_java_gradle_executable, 1)) -let s:has_ant = executable(expand(g:neomake_java_ant_executable, 1)) - -function! s:tmpdir() abort -    let tempdir = tempname() -    call mkdir(tempdir, 'p', 0700) -    return tempdir -endfunction - -function! s:ClassSep() abort -    return (s:is_windows || has('win32unix')) ? ';' : ':' -endfunction - -function! s:shescape(string) abort -    return neomake#utils#shellescape(a:string) -endfunction - -function! s:AddToClasspath(classpath, path) abort -    if a:path ==# '' -        return a:classpath -    endif -    return (a:classpath !=# '') ? a:classpath . s:ClassSep() . a:path : a:path -endfunction - -" @vimlint(EVL103, 1, a:classpathFile) -function! s:ReadClassPathFile(classpathFile) abort -    let cp = '' -    let file = g:neomake_java_checker_home. s:psep. 'java'. s:psep.  'classpath.py' -    if has('python3') -        execute 'py3file' file -        py3 import vim -        py3 vim.command("let cp = '%s'" % os.pathsep.join(ReadClasspathFile(vim.eval('a:classpathFile'))).replace('\\', '/')) -    elseif has('python') -        execute 'pyfile' file -        py import vim -        py vim.command("let cp = '%s'" % os.pathsep.join(ReadClasspathFile(vim.eval('a:classpathFile'))).replace('\\', '/')) -    endif -    return cp -endfunction -" @vimlint(EVL103, 0, a:classpathFile) - -function! neomake#makers#ft#java#EnabledMakers() abort -    let makers = [] -    if executable(expand(g:neomake_java_javac_executable, 1)) -        call add(makers, g:neomake_java_javac_executable) -    endif -    if executable(expand(g:neomake_java_checkstyle_executable, 1)) -        call add(makers, g:neomake_java_checkstyle_executable) -    endif -    return makers -endfunction - -function! neomake#makers#ft#java#javac() abort -    let javac_opts = extend([], g:neomake_java_javac_options) - -    let output_dir = '' -    if g:neomake_java_javac_delete_output -        let output_dir = s:tmpdir() -        let javac_opts = extend(javac_opts, ['-d', s:shescape(output_dir)]) -    endif - -    let javac_classpath = get(g:, 'neomake_java_javac_classpath', '') - -    if s:has_maven && g:neomake_java_javac_autoload_maven_classpath && empty(javac_classpath) -        if !g:neomake_java_javac_delete_output -            let javac_opts = extend(javac_opts, ['-d', s:shescape(s:MavenOutputDirectory())]) -        endif -        let javac_classpath = s:AddToClasspath(javac_classpath, s:GetMavenClasspath()) -    endif - -    if s:has_gradle && g:neomake_java_javac_autoload_gradle_classpath && empty(javac_classpath) -        if !g:neomake_java_javac_delete_output -            let javac_opts = extend(javac_opts, ['-d', s:shescape(s:GradleOutputDirectory())]) -        endif -        let javac_classpath = s:AddToClasspath(javac_classpath, s:GetGradleClasspath()) -    endif - -    if s:has_ant && g:neomake_java_javac_autoload_ant_classpath && empty(javac_classpath) -        let javac_classpath = s:AddToClasspath(javac_classpath, s:GetAntClasspath()) -    endif - -    if (has('python') || has('python3')) && empty(javac_classpath) -        let classpathFile = fnamemodify(findfile('.classpath', escape(expand('.'), '*[]?{}, ') . ';'), ':p') -        if !empty(classpathFile) && filereadable(classpathFile) -            let javac_classpath = s:ReadClassPathFile(classpathFile) -        endif -    endif - -    if javac_classpath !=# '' -        let javac_opts = extend(javac_opts, ['-cp', javac_classpath]) -    endif - -    return { -                \ 'args': javac_opts, -                \ 'exe': g:neomake_java_javac_executable, -                \ 'errorformat': -                \ '%E%f:%l: error: %m,'. -                \ '%W%f:%l: warning: %m,'. -                \ '%E%f:%l: %m,'. -                \ '%Z%p^,'. -                \ '%-G%.%#', -                \ 'version_arg': '-version' -                \ } -endfunction - -function! neomake#makers#ft#java#checkstyle() abort -    return { -                \ 'args': ['-c', g:neomake_java_checkstyle_xml], -                \ 'exe': g:neomake_java_checkstyle_executable, -                \ 'errorformat': -                \ '%-GStarting audit...,'. -                \ '%-GAudit done.,'. -                \ '%-GPicked up _JAVA_OPTIONS:%.%#,'. -                \ '[%t%*[^]]] %f:%l:%c: %m [%s],'. -                \ '[%t%*[^]]] %f:%l: %m [%s]', -                \ 'version_arg': '-v' -                \ } -endfunction - -function! s:findFileInParent(what, where) abort " {{{2 -    let old_suffixesadd = &suffixesadd -    let &suffixesadd = '' -    let file = findfile(a:what, escape(a:where, ' ') . ';') -    let &suffixesadd = old_suffixesadd -    return file -endfunction " }}}2 - -function! s:GetMavenProperties() abort " {{{2 -    let mvn_properties = {} -    let pom = s:findFileInParent('pom.xml', expand('%:p:h', 1)) -    if s:has_maven && filereadable(pom) -        if !has_key(g:neomake_java_javac_maven_pom_properties, pom) -            let mvn_cmd = s:shescape(expand(g:neomake_java_maven_executable, 1)) . -                        \ ' -f ' . s:shescape(pom) . -                        \ ' ' . g:neomake_java_maven_options -            let mvn_is_managed_tag = 1 -            let mvn_settings_output = split(system(mvn_cmd . ' help:effective-pom'), "\n") -            let current_path = 'project' -            for line in mvn_settings_output -                let matches = matchlist(line, '\m^\s*<\([a-zA-Z0-9\-\.]\+\)>\s*$') -                if mvn_is_managed_tag && !empty(matches) -                    let mvn_is_managed_tag = index(g:neomake_java_javac_maven_pom_tags, matches[1]) >= 0 -                    let current_path .= '.' . matches[1] -                else -                    let matches = matchlist(line, '\m^\s*</\([a-zA-Z0-9\-\.]\+\)>\s*$') -                    if !empty(matches) -                        let mvn_is_managed_tag = index(g:neomake_java_javac_maven_pom_tags, matches[1]) < 0 -                        let current_path  = substitute(current_path, '\m\.' . matches[1] . '$', '', '') -                    else -                        let matches = matchlist(line, '\m^\s*<\([a-zA-Z0-9\-\.]\+\)>\(.\+\)</[a-zA-Z0-9\-\.]\+>\s*$') -                        if mvn_is_managed_tag && !empty(matches) -                            let mvn_properties[current_path . '.' . matches[1]] = matches[2] -                        endif -                    endif -                endif -            endfor -            let g:neomake_java_javac_maven_pom_properties[pom] = mvn_properties -        endif -        return g:neomake_java_javac_maven_pom_properties[pom] -    endif -    return mvn_properties -endfunction " }}}2 - -function! s:GetMavenClasspath() abort " {{{2 -    let pom = s:findFileInParent('pom.xml', expand('%:p:h', 1)) -    if s:has_maven && filereadable(pom) -        if !has_key(g:neomake_java_javac_maven_pom_ftime, pom) || g:neomake_java_javac_maven_pom_ftime[pom] != getftime(pom) -            let mvn_cmd = s:shescape(expand(g:neomake_java_maven_executable, 1)) . -                        \ ' -f ' . s:shescape(pom) . -                        \ ' ' . g:neomake_java_maven_options -            let mvn_classpath_output = split(system(mvn_cmd . ' dependency:build-classpath -DincludeScope=test'), "\n") -            let mvn_classpath = '' -            let class_path_next = 0 - -            for line in mvn_classpath_output -                if class_path_next == 1 -                    let mvn_classpath = substitute(line, "\r", '', 'g') -                    break -                endif -                if stridx(line, 'Dependencies classpath:') >= 0 -                    let class_path_next = 1 -                endif -            endfor - -            let mvn_properties = s:GetMavenProperties() - -            let output_dir = get(mvn_properties, 'project.build.outputDirectory', join(['target', 'classes'], s:psep)) -            let mvn_classpath = s:AddToClasspath(mvn_classpath, output_dir) - -            let test_output_dir = get(mvn_properties, 'project.build.testOutputDirectory', join(['target', 'test-classes'], s:psep)) -            let mvn_classpath = s:AddToClasspath(mvn_classpath, test_output_dir) - -            let g:neomake_java_javac_maven_pom_ftime[pom] = getftime(pom) -            let g:neomake_java_javac_maven_pom_classpath[pom] = mvn_classpath -        endif -        return g:neomake_java_javac_maven_pom_classpath[pom] -    endif -    return '' -endfunction " }}}2 - -function! s:MavenOutputDirectory() abort " {{{2 -    let pom = s:findFileInParent('pom.xml', expand('%:p:h', 1)) -    if s:has_maven && filereadable(pom) -        let mvn_properties = s:GetMavenProperties() -        let output_dir = get(mvn_properties, 'project.properties.build.dir', getcwd()) - -        let src_main_dir = get(mvn_properties, 'project.build.sourceDirectory', join(['src', 'main', 'java'], s:psep)) -        let src_test_dir = get(mvn_properties, 'project.build.testsourceDirectory', join(['src', 'test', 'java'], s:psep)) -        if stridx(expand('%:p:h', 1), src_main_dir) >= 0 -            let output_dir = get(mvn_properties, 'project.build.outputDirectory', join ([output_dir, 'target', 'classes'], s:psep)) -        endif -        if stridx(expand('%:p:h', 1), src_test_dir) >= 0 -            let output_dir = get(mvn_properties, 'project.build.testOutputDirectory', join([output_dir, 'target', 'test-classes'], s:psep)) -        endif - -        if has('win32unix') -            let output_dir = substitute(system('cygpath -m ' . s:shescape(output_dir)), "\n", '', 'g') -        endif -        return output_dir -    endif -    return '.' -endfunction " }}}2 - -function! s:GradleOutputDirectory() abort -    let gradle_build = s:findFileInParent('build.gradle', expand('%:p:h', 1)) -    let items = split(gradle_build, s:psep) -    if len(items)==1 -        return join(['build', 'intermediates', 'classes', 'debug'], s:psep) -    endif -    let outputdir = '' -    for i in items -        if i !=# 'build.gradle' -            let outputdir .= i . s:psep -        endif -    endfor -    return outputdir . join(['build', 'intermediates', 'classes', 'debug'], s:psep) -endf - -function! s:GetGradleClasspath() abort -    let gradle = s:findFileInParent('build.gradle', expand('%:p:h', 1)) -    if s:has_gradle && filereadable(gradle) -        if !has_key(g:neomake_java_javac_gradle_ftime, gradle) || g:neomake_java_javac_gradle_ftime[gradle] != getftime(gradle) -            try -                let f = tempname() -                if s:is_windows -                    let gradle_cmd = '.\gradlew.bat' -                else -                    let gradle_cmd = './gradlew' -                endif -                call writefile(["allprojects{apply from: '" . g:neomake_java_checker_home . s:psep. 'java'. s:psep. "classpath.gradle'}"], f) -                let ret = system(gradle_cmd . ' -q -I ' . shellescape(f) . ' classpath' ) -                if v:shell_error == 0 -                    let cp = filter(split(ret, "\n"), "v:val =~# '^CLASSPATH:'")[0][10:] -                    if filereadable(getcwd() . s:psep . 'build.gradle') -                        let out_putdir = neomake#compat#globpath_list(getcwd(), join( -                                    \ ['**', 'build', 'intermediates', 'classes', 'debug'], -                                    \ s:psep), 0) -                        for classes in out_putdir -                            let cp .= s:ClassSep() . classes -                        endfor -                    endif -                else -                    let cp = '' -                endif -            catch -            finally -                call delete(f) -            endtry -            let g:neomake_java_javac_gradle_ftime[gradle] = getftime(gradle) -            let g:neomake_java_javac_gradle_classpath[gradle] = cp -        endif -        return g:neomake_java_javac_gradle_classpath[gradle] -    endif -    return '' -endf - -function! s:GetAntClasspath() abort -    let ant = s:findFileInParent('build.xml', expand('%:p:h', 1)) -    if s:has_ant && filereadable(ant) -        if !has_key(g:neomake_java_javac_ant_ftime, ant) || g:neomake_java_javac_ant_ftime[ant] != getftime(ant) -            try -                let ant_cmd = 'ant classpath -f build.xml -S -q' -                let cp = system(ant_cmd) -                if v:shell_error != 0 -                    let cp = '' -                endif -            catch -            endtry -            let g:neomake_java_javac_ant_ftime[ant] = getftime(ant) -            let g:neomake_java_javac_ant_classpath[ant] = cp -        endif -        return g:neomake_java_javac_ant_classpath[ant] -    endif -    return '' -endf - -let &cpoptions = s:save_cpo -unlet s:save_cpo -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/java/classpath.gradle b/.vim/autoload/neomake/makers/ft/java/classpath.gradle deleted file mode 100644 index f548c0d..0000000 --- a/.vim/autoload/neomake/makers/ft/java/classpath.gradle +++ /dev/null @@ -1,46 +0,0 @@ -task classpath << { - -  String finalFileContents = "" -  HashSet<String> classpathFiles = new HashSet<String>() -  for (proj in allprojects) { - -    def exploded = proj.getBuildDir().absolutePath + File.separator + "intermediates" + File.separator + "exploded-aar" -    def listFiles = new File(exploded) -    if (listFiles.exists()) { -      listFiles.eachFileRecurse(){ file -> -        if (file.name.endsWith(".jar")){ -          classpathFiles += file -        } -      } -    } - -    def rjava = proj.getBuildDir().absolutePath + File.separator + "intermediates" + File.separator + "classes" + File.separator + "debug" -    def rFiles = new File(rjava) -    if (rFiles.exists()) { -      classpathFiles += rFiles -    } - -    for (conf in proj.configurations) { -        for (dependency in conf) { -            if (dependency.name.endsWith("aar")){ -            } else { -              classpathFiles += dependency -            } -        } -    } -    if (proj.hasProperty("android")){ -      classpathFiles += proj.android.bootClasspath -    } - -    if (proj.hasProperty("sourceSets")) { - -      for (srcSet in proj.sourceSets) { -          for (dir in srcSet.java.srcDirs) { -              classpathFiles += dir.absolutePath -          } -      } -    } -  } -  def paths = classpathFiles.join(File.pathSeparator) -  println "CLASSPATH:" + paths -} diff --git a/.vim/autoload/neomake/makers/ft/java/classpath.py b/.vim/autoload/neomake/makers/ft/java/classpath.py deleted file mode 100644 index 5a7ea8d..0000000 --- a/.vim/autoload/neomake/makers/ft/java/classpath.py +++ /dev/null @@ -1,15 +0,0 @@ -import os -from xml.etree.ElementTree import * - - -def ReadClasspathFile(fn): -    cp = [] -    for a in parse(fn).findall('classpathentry'): -        kind = a.get('kind') -        if kind == 'src' and 'output' in a.keys(): -            cp.append(os.path.abspath(a.get('output'))) -        elif kind == 'lib' and 'path' in a.keys(): -            cp.append(os.path.abspath(a.get('path'))) -        elif kind == 'output' and 'path' in a.keys(): -            cp.append(os.path.abspath(a.get('path'))) -    return cp diff --git a/.vim/autoload/neomake/makers/ft/javascript.vim b/.vim/autoload/neomake/makers/ft/javascript.vim deleted file mode 100644 index 7bb379f..0000000 --- a/.vim/autoload/neomake/makers/ft/javascript.vim +++ /dev/null @@ -1,119 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#javascript#EnabledMakers() abort -    return ['jshint', 'jscs', -                \ executable('eslint_d') ? 'eslint_d' : 'eslint', -                \] -endfunction - -function! neomake#makers#ft#javascript#tsc() abort -    return neomake#makers#ft#typescript#tsc() -endfunction - -function! neomake#makers#ft#javascript#gjslint() abort -    return { -        \ 'args': ['--nodebug_indentation', '--nosummary', '--unix_mode', '--nobeep'], -        \ 'errorformat': '%f:%l:(New Error -%\\?\%n) %m,' . -        \ '%f:%l:(-%\\?%n) %m,' . -        \ '%-G1 files checked,' . -        \ ' no errors found.,' . -        \ '%-G%.%#' -        \ } -endfunction - -function! neomake#makers#ft#javascript#jshint() abort -    return { -        \ 'args': ['--verbose'], -        \ 'errorformat': '%A%f: line %l\, col %v\, %m \(%t%*\d\),%-G,%-G%\\d%\\+ errors', -        \ 'postprocess': function('neomake#postprocess#generic_length'), -        \ } -endfunction - -function! neomake#makers#ft#javascript#jscs() abort -    return { -        \ 'args': ['--no-colors', '--reporter', 'inline'], -        \ 'errorformat': '%E%f: line %l\, col %c\, %m', -        \ } -endfunction - -function! neomake#makers#ft#javascript#eslint() abort -    let maker = { -        \ 'args': ['--format=compact'], -        \ 'errorformat': '%E%f: line %l\, col %c\, Error - %m,' . -        \   '%W%f: line %l\, col %c\, Warning - %m,%-G,%-G%*\d problems%#', -        \ 'cwd': '%:p:h', -        \ 'output_stream': 'stdout', -        \ } - -    function! maker.supports_stdin(_jobinfo) abort -        let self.args += ['--stdin', '--stdin-filename=%:p'] -        let self.tempfile_name = '' -        return 1 -    endfunction - -    return maker -endfunction - -function! neomake#makers#ft#javascript#eslint_d() abort -    return neomake#makers#ft#javascript#eslint() -endfunction - -function! neomake#makers#ft#javascript#standard() abort -    return { -        \ 'args': ['-v'], -        \ 'errorformat': '%W  %f:%l:%c: %m,%-Gstandard: %.%#' -        \ } -endfunction - -function! neomake#makers#ft#javascript#semistandard() abort -    return { -        \ 'errorformat': '%W  %f:%l:%c: %m' -        \ } -endfunction - -function! neomake#makers#ft#javascript#rjsx() abort -    return { -        \ 'exe': 'emacs', -        \ 'args': ['%t','--quick','--batch','--eval=' -        \ .'(progn(setq package-load-list ''((js2-mode t)(rjsx-mode t)))(package-initialize)(require ''rjsx-mode)' -        \ .'  (setq js2-include-node-externs t js2-include-rhino-externs t js2-include-browser-externs t js2-strict-missing-semi-warning nil)' -        \ .'  (rjsx-mode)(js2-reparse)(js2-display-error-list)' -        \ .'  (princ(replace-regexp-in-string "^" (concat buffer-file-name " ")' -        \ .'  (with-current-buffer "*js-lint*" (buffer-substring-no-properties(point-min)(point-max)))))(terpri))'], -        \ 'errorformat': '%f line %l: %m,%-G%.%#', -        \ 'append_file': 0, -        \ } -endfunction - -function! neomake#makers#ft#javascript#flow() abort -    return { -        \ 'args': ['--from=vim', '--show-all-errors'], -        \ 'errorformat': -        \   '%-GNo errors!,' -        \   .'%EFile "%f"\, line %l\, characters %c-%m,' -        \   .'%trror: File "%f"\, line %l\, characters %c-%m,' -        \   .'%C%m,%Z', -        \ 'postprocess': function('neomake#makers#ft#javascript#FlowProcess') -        \ } -endfunction - -function! neomake#makers#ft#javascript#FlowProcess(entry) abort -    let lines = split(a:entry.text, '\n') -    if !empty(lines) -        let a:entry.text = join(lines[1:]) -        let a:entry.length = lines[0] - a:entry.col + 1 -    endif -endfunction - -function! neomake#makers#ft#javascript#xo() abort -    return { -        \ 'args': ['--compact'], -        \ 'errorformat': '%E%f: line %l\, col %c\, Error - %m,' . -        \ '%W%f: line %l\, col %c\, Warning - %m', -        \ } -endfunction - -function! neomake#makers#ft#javascript#stylelint() abort -    return neomake#makers#ft#css#stylelint() -endfunction - diff --git a/.vim/autoload/neomake/makers/ft/json.vim b/.vim/autoload/neomake/makers/ft/json.vim deleted file mode 100644 index 89a38e0..0000000 --- a/.vim/autoload/neomake/makers/ft/json.vim +++ /dev/null @@ -1,38 +0,0 @@ -function! neomake#makers#ft#json#EnabledMakers() abort -    return ['jsonlint'] -endfunction - -function! neomake#makers#ft#json#jsonlintpy() abort -    return { -        \ 'exe': 'jsonlint-py', -        \ 'args': ['--strict'], -        \ 'errorformat': -            \ '%f:%l:%c: %trror: %m,' . -            \ '%f:%l:%c: %tarning: %m,', -        \ } -endfunction - -function! neomake#makers#ft#json#jsonlint() abort -    return { -        \ 'args': ['--compact'], -        \ 'errorformat': -            \ '%ELine %l:%c,'. -            \ '%Z\\s%#Reason: %m,'. -            \ '%C%.%#,'. -            \ '%f: line %l\, col %c\, %m,'. -            \ '%-G%.%#' -        \ } -endfunction - -function! neomake#makers#ft#json#eslint() abort -    let maker = neomake#makers#ft#javascript#eslint() -    let maker.args += ['--plugin', 'json'] -    return maker -endfunction - -function! neomake#makers#ft#json#eslint_d() abort -    let maker = neomake#makers#ft#javascript#eslint_d() -    let maker.args += ['--plugin', 'json'] -    return maker -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/jsx.vim b/.vim/autoload/neomake/makers/ft/jsx.vim deleted file mode 100644 index 38d3cc3..0000000 --- a/.vim/autoload/neomake/makers/ft/jsx.vim +++ /dev/null @@ -1,17 +0,0 @@ -function! neomake#makers#ft#jsx#SupersetOf() abort -    return 'javascript' -endfunction - -function! neomake#makers#ft#jsx#EnabledMakers() abort -    return ['jshint', executable('eslint_d') ? 'eslint_d' : 'eslint'] -endfunction - -function! neomake#makers#ft#jsx#jsxhint() abort -    return neomake#makers#ft#javascript#jshint() -endfunction - -function! neomake#makers#ft#jsx#stylelint() abort -    return neomake#makers#ft#css#stylelint() -endfunction - -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/julia.vim b/.vim/autoload/neomake/makers/ft/julia.vim deleted file mode 100644 index a6fed9f..0000000 --- a/.vim/autoload/neomake/makers/ft/julia.vim +++ /dev/null @@ -1,24 +0,0 @@ -function! neomake#makers#ft#julia#EnabledMakers() abort -    return ['lint'] -endfunction - -function! neomake#makers#ft#julia#lint() abort -    return { -\       'errorformat': '%f:%l %t%*[^ ] %m', -\       'exe': 'julia', -\       'args': ['-e', ' -\           try -\               using Lint -\           catch -\               println("$(basename(ARGS[1])):1 E999 Install Lint.jl: Pkg.add(""Lint"")"); -\               exit(1) -\           end; -\           r = lintfile(ARGS[1]); -\           if !isempty(r) -\               display(r); -\               exit(1) -\           end -\       '] -\   } -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/kotlin.vim b/.vim/autoload/neomake/makers/ft/kotlin.vim deleted file mode 100644 index d7273e3..0000000 --- a/.vim/autoload/neomake/makers/ft/kotlin.vim +++ /dev/null @@ -1,12 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#kotlin#EnabledMakers() abort -    return ['ktlint'] -endfunction - -function! neomake#makers#ft#kotlin#ktlint() abort -    return { -        \ 'errorformat': '%E%f:%l:%c: %m', -        \ } -endfunction - diff --git a/.vim/autoload/neomake/makers/ft/less.vim b/.vim/autoload/neomake/makers/ft/less.vim deleted file mode 100644 index 51ba941..0000000 --- a/.vim/autoload/neomake/makers/ft/less.vim +++ /dev/null @@ -1,19 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#less#EnabledMakers() abort -    return executable('stylelint') ? ['stylelint'] : ['lessc'] -endfunction - -function! neomake#makers#ft#less#lessc() abort -    return { -        \ 'args': ['--lint', '--no-color'], -        \ 'errorformat': -            \ '%m in %f on line %l\, column %c:,' . -            \ '%m in %f:%l:%c,' . -            \ '%-G%.%#' -    \ } -endfunction - -function! neomake#makers#ft#less#stylelint() abort -    return neomake#makers#ft#css#stylelint() -endfunction diff --git a/.vim/autoload/neomake/makers/ft/lex.vim b/.vim/autoload/neomake/makers/ft/lex.vim deleted file mode 100644 index 7dafebf..0000000 --- a/.vim/autoload/neomake/makers/ft/lex.vim +++ /dev/null @@ -1,11 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#lex#EnabledMakers() abort -    return ['flex'] -endfunction - -function! neomake#makers#ft#lex#flex() abort -    return { -            \ 'errorformat': '%f:%l: %m' -         \ } -endfunction diff --git a/.vim/autoload/neomake/makers/ft/lua.vim b/.vim/autoload/neomake/makers/ft/lua.vim deleted file mode 100644 index c0e6bce..0000000 --- a/.vim/autoload/neomake/makers/ft/lua.vim +++ /dev/null @@ -1,33 +0,0 @@ -function! neomake#makers#ft#lua#EnabledMakers() abort -    return executable('luacheck') ? ['luacheck'] : ['luac'] -endfunction - -" luacheck: postprocess: use pattern (%s) for end column. -function! neomake#makers#ft#lua#PostprocessLuacheck(entry) abort -    let end_col = matchstr(a:entry.pattern, '\v\d+') -    if !empty(end_col) -        let a:entry.length = end_col - a:entry.col + 1 -    else -        echom 'luacheck: no end_col: '.string(a:entry) -    endif -    let a:entry.pattern = '' -endfunction - -function! neomake#makers#ft#lua#luacheck() abort -    " cwd: luacheck looks for .luacheckrc upwards from there. -    return { -        \ 'args': ['--no-color', '--formatter=plain', '--ranges', '--codes', '--filename', '%:p'], -        \ 'cwd': '%:p:h', -        \ 'errorformat': '%E%f:%l:%c-%s: \(%t%n\) %m', -        \ 'postprocess': function('neomake#makers#ft#lua#PostprocessLuacheck'), -        \ 'supports_stdin': 1, -        \ } -endfunction - -function! neomake#makers#ft#lua#luac() abort -    return { -        \ 'args': ['-p'], -        \ 'errorformat': '%*\f: %#%f:%l: %m', -        \ } -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/mail.vim b/.vim/autoload/neomake/makers/ft/mail.vim deleted file mode 100644 index 54cd09e..0000000 --- a/.vim/autoload/neomake/makers/ft/mail.vim +++ /dev/null @@ -1,8 +0,0 @@ -function! neomake#makers#ft#mail#EnabledMakers() abort -    return ['proselint'] -endfunction - -function! neomake#makers#ft#mail#proselint() abort -    return neomake#makers#ft#text#proselint() -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/markdown.vim b/.vim/autoload/neomake/makers/ft/markdown.vim deleted file mode 100644 index 1146488..0000000 --- a/.vim/autoload/neomake/makers/ft/markdown.vim +++ /dev/null @@ -1,97 +0,0 @@ -function! neomake#makers#ft#markdown#SupersetOf() abort -    return 'text' -endfunction - -function! neomake#makers#ft#markdown#EnabledMakers() abort -    let makers = executable('mdl') ? ['mdl'] : ['markdownlint'] -    if executable('vale') | let makers += ['vale'] | endif -    return makers + neomake#makers#ft#text#EnabledMakers() -endfunction - -function! neomake#makers#ft#markdown#mdl() abort -    let maker = { -                \ -                \ 'errorformat': -                \   '%W%f:%l: %m,%-G%.%#', -                \ 'output_stream': 'stdout', -                \ } -    function! maker.postprocess(entry) abort -        if a:entry.text[0:1] ==# 'MD' -            let [code, text] = split(a:entry.text, '\v^MD\d+\zs ') -            let a:entry.nr = str2nr(code[2:]) -            let a:entry.text = printf('%s (%s)', text, code) -        endif -        return a:entry -    endfunction -    return maker -endfunction - -function! neomake#makers#ft#markdown#markdownlint() abort -    return { -                \ 'errorformat': '%f: %l: %m' -                \ } -endfunction - -let s:alex_supports_stdin = {} -function! neomake#makers#ft#markdown#alex() abort -    let maker = { -                \ 'errorformat': -                \   '%P%f,' -                \   .'%-Q,' -                \   .'%*[ ]%l:%c-%*\d:%n%*[ ]%tarning%*[ ]%m,' -                \   .'%-G%.%#' -                \ } - -    function! maker.supports_stdin(_jobinfo) abort -        let exe = exists('*exepath') ? exepath(self.exe) : self.exe -        let support = get(s:alex_supports_stdin, exe, -1) -        if support == -1 -            let ver = neomake#compat#systemlist(['alex', '--version']) -            let ver_split = split(ver[0], '\.') -            if len(ver_split) > 1 && (ver_split[0] > 0 || +ver_split[1] >= 6) -                let support = 1 -            else -                let support = 0 -            endif -            let s:alex_supports_stdin[exe] = support -            call neomake#log#debug('alex: stdin support: '.support.'.') -        endif -        if support -            let self.args += ['--stdin'] -            let self.tempfile_name = '' -        endif -        return support -    endfunction - -    return maker -endfunction - -function! neomake#makers#ft#markdown#ProcessVale(context) abort -    let entries = [] -    for [filename, items] in items(a:context['json']) -        for data in items -            let entry = { -                        \ 'maker_name': 'vale', -                        \ 'filename': filename, -                        \ 'text': data.Message, -                        \ 'lnum': data.Line, -                        \ 'col': data.Span[0], -                        \ 'length': data.Span[1] - data.Span[0] + 1, -                        \ 'type': toupper(data.Severity[0]) -                        \ } -            call add(entries, entry) -        endfor -    endfor -    return entries -endfunction - -function! neomake#makers#ft#markdown#vale() abort -    return { -                \ 'args': [ -                \   '--no-wrap', -                \   '--output', 'JSON' -                \ ], -                \ 'process_json': function('neomake#makers#ft#markdown#ProcessVale') -                \ } -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/matlab.vim b/.vim/autoload/neomake/makers/ft/matlab.vim deleted file mode 100644 index f208be6..0000000 --- a/.vim/autoload/neomake/makers/ft/matlab.vim +++ /dev/null @@ -1,15 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#matlab#EnabledMakers() abort -    return ['mlint'] -endfunction - -function! neomake#makers#ft#matlab#mlint() abort -    return { -        \ 'args': ['-id'], -        \ 'mapexpr': "neomake_bufname.':'.v:val", -        \ 'errorformat': -        \   '%f:L %l (C %c): %m,'. -        \   '%f:L %l (C %c-%*[0-9]): %m,', -        \ } -endfunction diff --git a/.vim/autoload/neomake/makers/ft/moon.vim b/.vim/autoload/neomake/makers/ft/moon.vim deleted file mode 100644 index 486bea7..0000000 --- a/.vim/autoload/neomake/makers/ft/moon.vim +++ /dev/null @@ -1,15 +0,0 @@ -function! neomake#makers#ft#moon#EnabledMakers() abort -    return ['moonc'] -endfunction - -function! neomake#makers#ft#moon#moonc() abort -    return { -        \ 'args': ['-l'], -        \ 'errorformat': -            \ '%-G,' . -            \ '%-G>%#,' . -            \ '%+P%f,'. -            \ 'line\ %l:\ %m' -    \ } -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/neomake_tests.vim b/.vim/autoload/neomake/makers/ft/neomake_tests.vim deleted file mode 100644 index 4d06e7a..0000000 --- a/.vim/autoload/neomake/makers/ft/neomake_tests.vim +++ /dev/null @@ -1,58 +0,0 @@ -if !exists('g:neomake_test_messages') -    " Only use it during tests. -    finish -endif - -function! neomake#makers#ft#neomake_tests#EnabledMakers() abort -    return get(b:, 'neomake_test_enabledmakers', -                \ get(g:, 'neomake_test_enabledmakers', -                \ ['maker_without_exe', 'nonexisting'])) -endfunction - -function! neomake#makers#ft#neomake_tests#maker_without_exe() abort -    return {} -endfunction - -function! neomake#makers#ft#neomake_tests#maker_with_nonstring_exe() abort -    return {'exe': function('tr')} -endfunction - -function! neomake#makers#ft#neomake_tests#echo_maker() abort -    return { -        \ 'exe': 'printf', -        \ 'args': 'neomake_tests_echo_maker', -        \ 'errorformat': '%m', -        \ 'append_file': 0, -        \ } -endfunction - -function! neomake#makers#ft#neomake_tests#echo_args() abort -    return { -        \ 'exe': 'echo', -        \ 'errorformat': '%m', -        \ } -endfunction - -function! neomake#makers#ft#neomake_tests#true() abort -    return {} -endfunction - -function! neomake#makers#ft#neomake_tests#error_maker() abort -    return { -        \ 'exe': 'printf', -        \ 'args': ['%s:1:error_msg_1'], -        \ 'errorformat': '%E%f:%l:%m', -        \ 'append_file': 1, -        \ 'short_name': 'errmkr', -        \ } -endfunction - -function! neomake#makers#ft#neomake_tests#process_output_error() abort -    let maker = {'exe': 'echo', 'args': 'output', 'append_file': 0} - -    function! maker.process_output(...) abort -        return [{'valid': 1, 'text': 'error', 'lnum': 1, 'bufnr': bufnr('%')}] -    endfunction -    return maker -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/nim.vim b/.vim/autoload/neomake/makers/ft/nim.vim deleted file mode 100644 index 68b72a3..0000000 --- a/.vim/autoload/neomake/makers/ft/nim.vim +++ /dev/null @@ -1,16 +0,0 @@ -function! neomake#makers#ft#nim#EnabledMakers() abort -    return ['nim'] -endfunction - -function! neomake#makers#ft#nim#nim() abort -    return { -                \ 'exe': 'nim', -                \ 'args': ['--listFullPaths', '--verbosity:0', '--colors:off', -                \   '-c', 'check'], -                \ 'errorformat': -                \   '%I%f(%l\, %c) Hint: %m,' . -                \   '%W%f(%l\, %c) Warning: %m,' . -                \   '%E%f(%l\, %c) Error: %m' -                \ } -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/nix.vim b/.vim/autoload/neomake/makers/ft/nix.vim deleted file mode 100644 index f239789..0000000 --- a/.vim/autoload/neomake/makers/ft/nix.vim +++ /dev/null @@ -1,14 +0,0 @@ -" vim: ts=4 sw=4 et -" -function! neomake#makers#ft#nix#EnabledMakers() abort -    return ['nix_instantiate'] -endfunction - -function! neomake#makers#ft#nix#nix_instantiate() abort -    return { -        \ 'exe': 'nix-instantiate', -        \ 'args': ['--parse-only'], -        \ 'errorformat': 'error: %m at %f:%l:%c' -        \ } -endfunction - diff --git a/.vim/autoload/neomake/makers/ft/node.vim b/.vim/autoload/neomake/makers/ft/node.vim deleted file mode 100644 index a6cd321..0000000 --- a/.vim/autoload/neomake/makers/ft/node.vim +++ /dev/null @@ -1,9 +0,0 @@ -function! neomake#makers#ft#node#SupersetOf() abort -    return 'javascript' -endfunction - -function! neomake#makers#ft#node#EnabledMakers() abort -    return ['jshint', 'eslint', 'jscs'] -endfunction - -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/objc.vim b/.vim/autoload/neomake/makers/ft/objc.vim deleted file mode 100644 index 5b093f4..0000000 --- a/.vim/autoload/neomake/makers/ft/objc.vim +++ /dev/null @@ -1,55 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#objc#EnabledMakers() abort -    let makers = ['clang', 'clangtidy', 'clangcheck'] -    return makers -endfunction - -function! neomake#makers#ft#objc#clang() abort -    " We will enable ARC and disable warnings about unused parameters because -    " it is quite common in Cocoa not to use every method parameter. -    return { -        \ 'args': ['-fsyntax-only', '-fobjc-arc', '-Wall', '-Wextra', '-Wno-unused-parameter'], -        \ 'errorformat': -            \ '%-G%f:%s:,' . -            \ '%f:%l:%c: %trror: %m,' . -            \ '%f:%l:%c: %tarning: %m,' . -            \ '%I%f:%l:%c: note: %m,' . -            \ '%f:%l:%c: %m,'. -            \ '%f:%l: %trror: %m,'. -            \ '%f:%l: %tarning: %m,'. -            \ '%I%f:%l: note: %m,'. -            \ '%f:%l: %m' -        \ } -endfunction - -" The -p option followed by the path to the build directory should be set in -" the maker's arguments. That directory should contain the compile command -" database (compile_commands.json). -function! neomake#makers#ft#objc#clangtidy() abort -    return { -        \ 'exe': 'clang-tidy', -        \ 'errorformat': -            \ '%E%f:%l:%c: fatal error: %m,' . -            \ '%E%f:%l:%c: error: %m,' . -            \ '%W%f:%l:%c: warning: %m,' . -            \ '%-G%\m%\%%(LLVM ERROR:%\|No compilation database found%\)%\@!%.%#,' . -            \ '%E%m', -        \ } -endfunction - -function! neomake#makers#ft#objc#clangcheck() abort -    return { -        \ 'exe': 'clang-check', -        \ 'errorformat': -            \ '%-G%f:%s:,' . -            \ '%f:%l:%c: %trror: %m,' . -            \ '%f:%l:%c: %tarning: %m,' . -            \ '%I%f:%l:%c: note: %m,' . -            \ '%f:%l:%c: %m,'. -            \ '%f:%l: %trror: %m,'. -            \ '%f:%l: %tarning: %m,'. -            \ '%I%f:%l: note: %m,'. -            \ '%f:%l: %m', -        \ } -endfunction diff --git a/.vim/autoload/neomake/makers/ft/pandoc.vim b/.vim/autoload/neomake/makers/ft/pandoc.vim deleted file mode 100644 index ae56b04..0000000 --- a/.vim/autoload/neomake/makers/ft/pandoc.vim +++ /dev/null @@ -1,8 +0,0 @@ -function! neomake#makers#ft#pandoc#SupersetOf() abort -    return 'markdown' -endfunction - -function! neomake#makers#ft#pandoc#EnabledMakers() abort -    return neomake#makers#ft#markdown#EnabledMakers() -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/perl.vim b/.vim/autoload/neomake/makers/ft/perl.vim deleted file mode 100644 index da07694..0000000 --- a/.vim/autoload/neomake/makers/ft/perl.vim +++ /dev/null @@ -1,34 +0,0 @@ -" vim: ts=4 sw=4 et -function! neomake#makers#ft#perl#EnabledMakers() abort -    return ['perl', 'perlcritic'] -endfunction - -function! neomake#makers#ft#perl#perlcritic() abort -    return { -         \ 'args' : ['--quiet', '--nocolor', '--verbose', -         \           '\\%f:\\%l:\\%c:(\\%s) \\%m (\\%e)\\n'], -         \ 'errorformat': '%f:%l:%c:%m,' -     \} -endfunction - -function! neomake#makers#ft#perl#perl() abort -    return { -         \ 'args' : ['-c', '-X', '-Mwarnings'], -         \ 'errorformat': '%-G%.%#had too many errors.,' -         \  . '%-G%.%#had compilation errors.,' -         \  . '%-G%.%#syntax OK,' -         \  . '%m at %f line %l.,' -         \  . '%+E%.%# at %f line %l\,%.%#,' -         \  . '%+C%.%#', -         \ 'postprocess': function('neomake#makers#ft#perl#PerlEntryProcess'), -     \} -endfunction - -function! neomake#makers#ft#perl#PerlEntryProcess(entry) abort -    let extramsg = substitute(a:entry.pattern, '\^\\V', '', '') -    let extramsg = substitute(extramsg, '\\\$', '', '') - -    if !empty(extramsg) -        let a:entry.text .= ' ' . extramsg -    endif -endfunction diff --git a/.vim/autoload/neomake/makers/ft/php.vim b/.vim/autoload/neomake/makers/ft/php.vim deleted file mode 100644 index 7edefa3..0000000 --- a/.vim/autoload/neomake/makers/ft/php.vim +++ /dev/null @@ -1,72 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#php#EnabledMakers() abort -    return ['php', 'phpmd', 'phpcs', 'phpstan'] -endfunction - -function! neomake#makers#ft#php#php() abort -    return { -        \ 'args': ['-l', '-d', 'display_errors=1', '-d', 'log_errors=0', -            \      '-d', 'xdebug.cli_color=0'], -        \ 'errorformat': -            \ '%-GNo syntax errors detected in%.%#,'. -            \ '%EParse error: %#syntax error\, %m in %f on line %l,'. -            \ '%EParse error: %m in %f on line %l,'. -            \ '%EFatal error: %m in %f on line %l,'. -            \ '%-G\s%#,'. -            \ '%-GErrors parsing %.%#', -        \ 'output_stream': 'stdout', -        \ } -endfunction - -function! neomake#makers#ft#php#phpcs() abort -    let args = ['--report=csv', '-q'] - -    "Add standard argument if one is set. -    if exists('g:neomake_php_phpcs_args_standard') -        call add(args, '--standard=' . expand(g:neomake_php_phpcs_args_standard)) -    endif - -    return { -        \ 'args': args, -        \ 'errorformat': -            \ '%-GFile\,Line\,Column\,Type\,Message\,Source\,Severity%.%#,'. -            \ '"%f"\,%l\,%c\,%t%*[a-zA-Z]\,"%m"\,%*[a-zA-Z0-9_.-]\,%*[0-9]%.%#', -        \ } -endfunction - -function! neomake#makers#ft#php#phpmd() abort -    return { -        \ 'args': ['%t', 'text', 'codesize,design,unusedcode,naming'], -        \ 'append_file': 0, -        \ 'errorformat': '%W%f:%l%\s%\s%#%m' -        \ } -endfunction - -function! neomake#makers#ft#php#phpstan() abort -    " PHPStan normally considers 0 to be the default level, so that is used here as the default: -    let maker = { -        \ 'args': ['analyse', '--error-format', 'raw', '--no-progress', '--level', get(g:, 'neomake_phpstan_level', 0)], -        \ 'errorformat': '%E%f:%l:%m', -        \ } -    " Check for the existence of a default PHPStan project configuration file. -    " Technically PHPStan does not have a concept of a default filename for a -    " project configuration file, but phpstan.neon is the filename shown in the -    " example in the PHPStan documentation, so this is the default name expected -    " by Neomake. -    let phpStanConfigFilePath = neomake#utils#FindGlobFile('phpstan.neon') -    if !empty(phpStanConfigFilePath) -        call extend(maker.args, ['-c', phpStanConfigFilePath]) -    endif -    return maker -endfunction - -function! neomake#makers#ft#php#psalm() abort -    let maker = { -        \ 'args': [ -            \ '--output-format=pylint' -        \ ], -        \ 'errorformat': '%A%f:%l:%\s[%t%n]%\s%m', -        \ } -    return maker -endfunction diff --git a/.vim/autoload/neomake/makers/ft/proto.vim b/.vim/autoload/neomake/makers/ft/proto.vim deleted file mode 100644 index fcff577..0000000 --- a/.vim/autoload/neomake/makers/ft/proto.vim +++ /dev/null @@ -1,12 +0,0 @@ -function! neomake#makers#ft#proto#EnabledMakers() abort -    return ['prototool'] -endfunction - -function! neomake#makers#ft#proto#prototool() abort -    return { -                \ 'exe': 'prototool', -                \ 'args': ['lint'], -                \ 'errorformat': '%f:%l:%c:%m', -                \ } -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/pug.vim b/.vim/autoload/neomake/makers/ft/pug.vim deleted file mode 100644 index 53f2214..0000000 --- a/.vim/autoload/neomake/makers/ft/pug.vim +++ /dev/null @@ -1,13 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#pug#EnabledMakers() abort -    return ['puglint'] -endfunction - -function! neomake#makers#ft#pug#puglint() abort -    return { -        \ 'exe': 'pug-lint', -        \ 'args': ['--reporter', 'inline'], -        \ 'errorformat': '%f:%l:%c %m' -        \ } -endfunction diff --git a/.vim/autoload/neomake/makers/ft/puppet.vim b/.vim/autoload/neomake/makers/ft/puppet.vim deleted file mode 100644 index c7a467d..0000000 --- a/.vim/autoload/neomake/makers/ft/puppet.vim +++ /dev/null @@ -1,29 +0,0 @@ -function! neomake#makers#ft#puppet#EnabledMakers() abort -    return ['puppet', 'puppetlint'] -endfunction - -function! neomake#makers#ft#puppet#puppetlint() abort -    return { -        \ 'exe': 'puppet-lint', -        \ 'args': ['--log-format', '%%{path}:%%{line}:%%{column}:%%{kind}:[%%{check}] %%{message}'], -        \ 'errorformat': '%f:%l:%c:%t%*[a-zA-Z]:%m', -        \ 'short_name': 'pupl', -        \ 'output_stream': 'stdout', -        \ } -endfunction - -function! neomake#makers#ft#puppet#puppet() abort -    return { -        \ 'args': ['parser', 'validate', '--color=false'], -        \ 'errorformat': -          \ '%-Gerr: Try ''puppet help parser validate'' for usage,' . -          \ '%-GError: Try ''puppet help parser validate'' for usage,' . -          \ '%t%*[a-zA-Z]: %m at %f:%l:%c,' . -          \ '%t%*[a-zA-Z]: %m at %f:%l,'. -          \ '%t%*[a-zA-Z]: Could not parse for environment production: %m (file: %f\, line: %l\, column: %c),' . -          \ '%t%*[a-zA-Z]: Could not parse for environment production: %m (file: %f)', -        \ 'short_name': 'pupp', -        \ 'output_stream': 'stderr', -        \ } -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/purescript.vim b/.vim/autoload/neomake/makers/ft/purescript.vim deleted file mode 100644 index a26a40f..0000000 --- a/.vim/autoload/neomake/makers/ft/purescript.vim +++ /dev/null @@ -1,63 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#purescript#EnabledMakers() abort -    return ['pulp'] -endfunction - -function! neomake#makers#ft#purescript#pulp() abort -    " command is `pulp build --no-psa -- --json-errors` -    " as indicated in https://github.com/nwolverson/atom-ide-purescript/issues/136 -    let maker = { -        \ 'args': ['build', '--no-psa', '--', '--json-errors'], -        \ 'append_file': 0, -        \ 'process_output': function('neomake#makers#ft#purescript#PSProcessOutput'), -        \ } - -    " Find project root, since files are reported relative to it. -    let bower_file = neomake#utils#FindGlobFile('bower.json') -    if !empty(bower_file) -        let maker.cwd = fnamemodify(bower_file, ':h') -    endif - -    return maker -endfunction - -function! neomake#makers#ft#purescript#PSProcessOutput(context) abort -    let errors = [] -    for line in a:context.output -        if line[0] !=# '{' -            continue -        endif -        let decoded = neomake#compat#json_decode(line) -        for [key, values] in items(decoded) -            let code = key ==# 'warnings' ? 'W' : 'E' -            for item in values -                let compiler_error = item['errorCode'] -                let message = item['message'] -                let position = item['position'] -                let filename = item['filename'] -                if  position is g:neomake#compat#json_null -                    let row = 1 -                    let col = 1 -                    let end_col = 1 -                    let length = 1 -                else -                    let row = position['startLine'] -                    let col = position['startColumn'] -                    let end_col = position['endColumn'] -                    let length = end_col - col -                endif - -                call add(errors, { -                            \ 'text': compiler_error . ' : ' . message, -                            \ 'type': code, -                            \ 'lnum': row, -                            \ 'col': col, -                            \ 'length': length, -                            \ 'filename': filename, -                            \ }) -            endfor -        endfor -    endfor -    return errors -endfunction diff --git a/.vim/autoload/neomake/makers/ft/python.vim b/.vim/autoload/neomake/makers/ft/python.vim deleted file mode 100644 index d8c8369..0000000 --- a/.vim/autoload/neomake/makers/ft/python.vim +++ /dev/null @@ -1,419 +0,0 @@ -" vim: ts=4 sw=4 et - -if !exists('s:compile_script') -    let s:slash = neomake#utils#Slash() -    let s:compile_script = expand('<sfile>:p:h', 1).s:slash.'python'.s:slash.'compile.py' -endif - -function! neomake#makers#ft#python#EnabledMakers() abort -    let makers = ['python', 'frosted'] -    if executable('pylama') -        call add(makers, 'pylama') -    else -        if executable('flake8') -            call add(makers, 'flake8') -        else -            call extend(makers, ['pyflakes', 'pycodestyle', 'pydocstyle']) -        endif -        call add(makers, 'pylint')  " Last because it is the slowest -    endif -    return makers -endfunction - -let neomake#makers#ft#python#project_root_files = ['setup.cfg', 'tox.ini'] - -function! neomake#makers#ft#python#DetectPythonVersion() abort -    let output = neomake#compat#systemlist('python -V 2>&1') -    if v:shell_error -        call neomake#log#error(printf( -                    \ 'Failed to detect Python version: %s.', -                    \ join(output))) -        let s:python_version = [-1, -1, -1] -    else -        let s:python_version = split(split(output[0])[1], '\.') -    endif -endfunction - -let s:ignore_python_warnings = [ -            \ '\v[\/]inspect.py:\d+: Warning:', -            \ '\v^.{-}:\d+: FutureWarning:', -            \ ] - -" Filter Python warnings (the warning and the following line). -" To be used as a funcref with filter(). -function! s:filter_py_warning(v) abort -    if s:filter_next_py_warning -        let s:filter_next_py_warning = 0 -        " Only keep (expected) lines starting with two spaces. -        return a:v[0:1] !=# '  ' -    endif -    for pattern in s:ignore_python_warnings -        if a:v =~# pattern -            let s:filter_next_py_warning = 1 -            return 0 -        endif -    endfor -    return 1 -endfunction - -function! neomake#makers#ft#python#FilterPythonWarnings(lines, context) abort -    if a:context.source ==# 'stderr' -        let s:filter_next_py_warning = 0 -        call filter(a:lines, 's:filter_py_warning(v:val)') -    endif -endfunction - -function! neomake#makers#ft#python#pylint() abort -    let maker = { -        \ 'args': [ -            \ '--output-format=text', -            \ '--msg-template="{path}:{line}:{column}:{C}: [{symbol}] {msg} [{msg_id}]"', -            \ '--reports=no' -        \ ], -        \ 'errorformat': -            \ '%A%f:%l:%c:%t: %m,' . -            \ '%A%f:%l: %m,' . -            \ '%A%f:(%l): %m,' . -            \ '%-Z%p^%.%#,' . -            \ '%-G%.%#', -        \ 'output_stream': 'stdout', -        \ 'postprocess': [ -        \   function('neomake#postprocess#generic_length'), -        \   function('neomake#makers#ft#python#PylintEntryProcess'), -        \ ]} -    function! maker.filter_output(lines, context) abort -        if a:context.source ==# 'stderr' -            call filter(a:lines, "v:val !=# 'No config file found, using default configuration' && v:val !~# '^Using config file '") -        endif -        call neomake#makers#ft#python#FilterPythonWarnings(a:lines, a:context) -    endfunction -    return maker -endfunction - -function! neomake#makers#ft#python#PylintEntryProcess(entry) abort -    if a:entry.type ==# 'F'  " Fatal error which prevented further processing -        let type = 'E' -    elseif a:entry.type ==# 'E'  " Error for important programming issues -        let type = 'E' -    elseif a:entry.type ==# 'W'  " Warning for stylistic or minor programming issues -        let type = 'W' -    elseif a:entry.type ==# 'R'  " Refactor suggestion -        let type = 'W' -    elseif a:entry.type ==# 'C'  " Convention violation -        let type = 'W' -    elseif a:entry.type ==# 'I'  " Informations -        let type = 'I' -    else -        let type = '' -    endif -    let a:entry.type = type -    " Pylint uses 0-indexed columns, vim uses 1-indexed columns -    let a:entry.col += 1 -endfunction - -function! neomake#makers#ft#python#flake8() abort -    let maker = { -        \ 'args': ['--format=default'], -        \ 'errorformat': -            \ '%E%f:%l: could not compile,%-Z%p^,' . -            \ '%A%f:%l:%c: %t%n %m,' . -            \ '%A%f:%l: %t%n %m,' . -            \ '%-G%.%#', -        \ 'postprocess': function('neomake#makers#ft#python#Flake8EntryProcess'), -        \ 'short_name': 'fl8', -        \ 'output_stream': 'stdout', -        \ 'filter_output': function('neomake#makers#ft#python#FilterPythonWarnings'), -        \ } - -    function! maker.supports_stdin(jobinfo) abort -        let self.args += ['--stdin-display-name', '%:p'] - -        let bufpath = bufname(a:jobinfo.bufnr) -        if !empty(bufpath) -            let bufdir = fnamemodify(bufpath, ':p:h') -            if stridx(bufdir, getcwd()) != 0 -                " The buffer is not below the current dir, so let's cd for lookup -                " of config files etc. -                " This avoids running into issues with flake8's per-file-ignores, -                " which is handled not relative to the config file currently -                " (https://gitlab.com/pycqa/flake8/issues/517). -                call a:jobinfo.cd(bufdir) -            endif -        endif -        return 1 -    endfunction -    return maker -endfunction - -function! neomake#makers#ft#python#Flake8EntryProcess(entry) abort -    if a:entry.type ==# 'F'  " pyflakes -        " Ref: http://flake8.pycqa.org/en/latest/user/error-codes.html -        if a:entry.nr > 400 && a:entry.nr < 500 -            if a:entry.nr == 407 -                let type = 'E'  " 'an undefined __future__ feature name was imported' -            else -                let type = 'W' -            endif -        elseif a:entry.nr == 841 -            let type = 'W' -        else -            let type = 'E' -        endif -    elseif a:entry.type ==# 'E' && a:entry.nr >= 900  " PEP8 runtime errors (E901, E902) -        let type = 'E' -    elseif a:entry.type ==# 'E' || a:entry.type ==# 'W'  " PEP8 errors & warnings -        let type = 'W' -    elseif a:entry.type ==# 'N' || a:entry.type ==# 'D'  " Naming (PEP8) & docstring (PEP257) conventions -        let type = 'W' -    elseif a:entry.type ==# 'C' || a:entry.type ==# 'T'  " McCabe complexity & todo notes -        let type = 'I' -    elseif a:entry.type ==# 'I' " keep at least 'I' from isort (I1), could get style subtype?! -        let type = a:entry.type -    else -        let type = '' -    endif - -    let token_pattern = '\v''\zs[^'']+\ze' -    if a:entry.type ==# 'F' && (a:entry.nr == 401 || a:entry.nr == 811) -        " Special handling for F401 (``module`` imported but unused) and -        " F811 (redefinition of unused ``name`` from line ``N``). -        " The unused column is incorrect for import errors and redefinition -        " errors. -        let token = matchstr(a:entry.text, token_pattern) -        if !empty(token) -            let view = winsaveview() -            call cursor(a:entry.lnum, a:entry.col) -            " The number of lines to give up searching afterwards -            let search_lines = 5 - -            if searchpos('\<from\>', 'cnW', a:entry.lnum)[1] == a:entry.col -                " for 'from xxx.yyy import zzz' the token looks like -                " xxx.yyy.zzz, but only the zzz part should be highlighted. So -                " this discards the module part -                let token = split(token, '\.')[-1] - -                " Also the search should be started at the import keyword. -                " Otherwise for 'from os import os' the first os will be -                " found. This moves the cursor there. -                call search('\<import\>', 'cW', a:entry.lnum + search_lines) -            endif - -            " Search for the first occurrence of the token and highlight in -            " the next couple of lines and change the lnum and col to that -            " position. -            " Don't match entries surrounded by dots, even though -            " it ends a word, we want to find a full identifier. It also -            " matches all seperators such as spaces and newlines with -            " backslashes until it knows for sure the previous real character -            " was not a dot. -            let ident_pos = searchpos('\(\.\(\_s\|\\\)*\)\@<!\<' . -                        \ token . '\>\(\(\_s\|\\\)*\.\)\@!', -                        \ 'cnW', -                        \ a:entry.lnum + search_lines) -            if ident_pos[1] > 0 -                let a:entry.lnum = ident_pos[0] -                let a:entry.col = ident_pos[1] -            endif - -            call winrestview(view) - -            let a:entry.length = strlen(token) -        endif -    else -        call neomake#postprocess#generic_length_with_pattern(a:entry, token_pattern) - -        " Special processing for F821 (undefined name) in f-strings. -        if !has_key(a:entry, 'length') && a:entry.type ==# 'F' && a:entry.nr == 821 -            let token = matchstr(a:entry.text, token_pattern) -            if !empty(token) -                " Search for '{token}' in reported and following lines. -                " It seems like for the first line it is correct already (i.e. -                " flake8 reports the column therein), but we still test there -                " to be sure. -                " https://gitlab.com/pycqa/flake8/issues/407 -                let line = get(getbufline(a:entry.bufnr, a:entry.lnum), 0, '') -                " NOTE: uses byte offset, starting at col means to start after -                " the opening quote. -                let pattern = '\V\C{\.\{-}\zs'.escape(token, '\').'\>' -                let pos = match(line, pattern, a:entry.col) -                if pos == -1 -                    let line_offset = 0 -                    while line_offset < 10 -                        let line_offset += 1 -                        let line = get(getbufline(a:entry.bufnr, a:entry.lnum + line_offset), 0, '') -                        let pos = match(line, pattern) -                        if pos != -1 -                            let a:entry.lnum = a:entry.lnum + line_offset -                            break -                        endif -                    endwhile -                endif -                if pos > 0 -                    let a:entry.col = pos + 1 -                    let a:entry.length = strlen(token) -                endif -            endif -        endif -    endif - -    let a:entry.text = a:entry.type . a:entry.nr . ' ' . a:entry.text -    let a:entry.type = type -    " Reset "nr" to Avoid redundancy with neomake#GetCurrentErrorMsg. -    " TODO: This is rather bad, since "nr" itself can be useful. -    "       This should rather use the entry via Neomake's list, and then a -    "       new property like "current_error_text" could be used. -    "       Or with the maker being available a callback could be used. -    let a:entry.nr = -1 -endfunction - -function! neomake#makers#ft#python#pyflakes() abort -    return { -        \ 'errorformat': -            \ '%E%f:%l: could not compile,' . -            \ '%-Z%p^,'. -            \ '%E%f:%l:%c: %m,' . -            \ '%E%f:%l: %m,' . -            \ '%-G%.%#', -        \ } -endfunction - -function! neomake#makers#ft#python#pycodestyle() abort -    if !exists('s:_pycodestyle_exe') -        " Use the preferred exe to avoid deprecation warnings. -        let s:_pycodestyle_exe = executable('pycodestyle') ? 'pycodestyle' : 'pep8' -    endif -    return { -        \ 'exe': s:_pycodestyle_exe, -        \ 'errorformat': '%f:%l:%c: %m', -        \ 'postprocess': function('neomake#makers#ft#python#Pep8EntryProcess') -        \ } -endfunction - -" Note: pep8 has been renamed to pycodestyle, but is kept also as alias. -function! neomake#makers#ft#python#pep8() abort -    return neomake#makers#ft#python#pycodestyle() -endfunction - -function! neomake#makers#ft#python#Pep8EntryProcess(entry) abort -    if a:entry.text =~# '^E9'  " PEP8 runtime errors (E901, E902) -        let a:entry.type = 'E' -    elseif a:entry.text =~# '^E113'  " unexpected indentation (IndentationError) -        let a:entry.type = 'E' -    else  " Everything else is a warning -        let a:entry.type = 'W' -    endif -endfunction - -function! neomake#makers#ft#python#pydocstyle() abort -    if !exists('s:_pydocstyle_exe') -        " Use the preferred exe to avoid deprecation warnings. -        let s:_pydocstyle_exe = executable('pydocstyle') ? 'pydocstyle' : 'pep257' -    endif -    return { -        \ 'exe': s:_pydocstyle_exe, -        \ 'errorformat': -        \   '%W%f:%l %.%#:,' . -        \   '%+C        %m', -        \ 'postprocess': function('neomake#postprocess#compress_whitespace'), -        \ } -endfunction - -" Note: pep257 has been renamed to pydocstyle, but is kept also as alias. -function! neomake#makers#ft#python#pep257() abort -    return neomake#makers#ft#python#pydocstyle() -endfunction - -function! neomake#makers#ft#python#PylamaEntryProcess(entry) abort -    if a:entry.nr == -1 -        " Get number from the beginning of text. -        let nr = matchstr(a:entry.text, '\v^\u\zs\d+') -        if !empty(nr) -            let a:entry.nr = nr + 0 -        endif -    endif -    if a:entry.type ==# 'C' && a:entry.text =~# '\v\[%(pycodestyle|pep8)\]$' -        call neomake#makers#ft#python#Pep8EntryProcess(a:entry) -    elseif a:entry.type ==# 'D'  " pydocstyle/pep257 -        let a:entry.type = 'W' -    elseif a:entry.type ==# 'C' && a:entry.nr == 901  " mccabe -        let a:entry.type = 'I' -    elseif a:entry.type ==# 'R'  " Radon -        let a:entry.type = 'W' -    endif -endfunction - -function! neomake#makers#ft#python#pylama() abort -    let maker = { -        \ 'args': ['--format', 'parsable'], -        \ 'errorformat': '%f:%l:%c: [%t] %m', -        \ 'postprocess': function('neomake#makers#ft#python#PylamaEntryProcess'), -        \ 'output_stream': 'stdout', -        \ } -    " Pylama looks for the config only in the current directory. -    " Therefore we change to where the config likely is. -    " --options could be used to pass a config file, but we cannot be sure -    " which one really gets used. -    let ini_file = neomake#utils#FindGlobFile('{pylama.ini,setup.cfg,tox.ini,pytest.ini}') -    if !empty(ini_file) -        let maker.cwd = fnamemodify(ini_file, ':h') -    endif -    return maker -endfunction - -function! neomake#makers#ft#python#python() abort -    return { -        \ 'args': [s:compile_script], -        \ 'errorformat': '%E%f:%l:%c: %m', -        \ 'serialize': 1, -        \ 'serialize_abort_on_error': 1, -        \ 'output_stream': 'stdout', -        \ 'short_name': 'py', -        \ } -endfunction - -function! neomake#makers#ft#python#frosted() abort -    return { -        \ 'args': [ -            \ '-vb' -        \ ], -        \ 'errorformat': -            \ '%f:%l:%c:%m,' . -            \ '%E%f:%l: %m,' . -            \ '%-Z%p^,' . -            \ '%-G%.%#' -        \ } -endfunction - -function! neomake#makers#ft#python#vulture() abort -    return { -        \ 'errorformat': '%f:%l: %m', -        \ } -endfunction - -" --fast-parser: adds experimental support for async/await syntax -" --silent-imports: replaced by --ignore-missing-imports -function! neomake#makers#ft#python#mypy() abort -    let args = ['--check-untyped-defs', '--ignore-missing-imports'] - -    " Append '--py2' to args with Python 2 for Python 2 mode. -    if !exists('s:python_version') -        call neomake#makers#ft#python#DetectPythonVersion() -    endif -    if s:python_version[0] ==# '2' -        call add(args, '--py2') -    endif - -    return { -        \ 'args': args, -        \ 'errorformat': -            \ '%E%f:%l: error: %m,' . -            \ '%W%f:%l: warning: %m,' . -            \ '%I%f:%l: note: %m', -        \ } -endfunction - -function! neomake#makers#ft#python#py3kwarn() abort -    return { -        \ 'errorformat': '%W%f:%l:%c: %m', -        \ } -endfunction diff --git a/.vim/autoload/neomake/makers/ft/python/compile.py b/.vim/autoload/neomake/makers/ft/python/compile.py deleted file mode 100755 index d211673..0000000 --- a/.vim/autoload/neomake/makers/ft/python/compile.py +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env python - -from __future__ import print_function -from sys import argv, exit - - -if len(argv) != 2: -    exit(64) - -try: -    compile(open(argv[1]).read(), argv[1], 'exec', 0, 1) -except SyntaxError as err: -    print('%s:%s:%s: %s' % (err.filename, err.lineno, err.offset, err.msg)) -    exit(1) diff --git a/.vim/autoload/neomake/makers/ft/r.vim b/.vim/autoload/neomake/makers/ft/r.vim deleted file mode 100644 index 59f488a..0000000 --- a/.vim/autoload/neomake/makers/ft/r.vim +++ /dev/null @@ -1,17 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#r#EnabledMakers() abort -    return ['lintr'] -endfunction - -function! neomake#makers#ft#r#lintr() abort -    return { -        \ 'exe': 'R', -        \ 'args': ['--slave', '--no-restore', '--no-save', '-e lintr::lint("%t")'], -        \ 'append_file': 0, -        \ 'errorformat': -        \   '%W%f:%l:%c: style: %m,' . -        \   '%W%f:%l:%c: warning: %m,' . -        \   '%E%f:%l:%c: error: %m,' -        \ } -endfunction diff --git a/.vim/autoload/neomake/makers/ft/racket.vim b/.vim/autoload/neomake/makers/ft/racket.vim deleted file mode 100644 index fc7145a..0000000 --- a/.vim/autoload/neomake/makers/ft/racket.vim +++ /dev/null @@ -1,32 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#racket#EnabledMakers() abort -    return ['raco'] -endfunction - -" This is the same form of syntax-checking used by DrRacket as well. The -" downside is that it will only catch the first error, but none of the -" subsequent ones. This is due to how evaluation in Racket works. -" -" About the error format: raco will print the first line as -"     <file>:<line>:<column> <message> -" Every successive line will be indented by two spaces: -"       in: <keyword> -"       context...: -"       <file>:<line>:<column>: <keyword> -" The last pattern will be repeated as often as necessary. Example: -"     foo.rkt:4:1: dfine: unbound identifier in modulemessage -"       in: dfine -"       context...: -"        /usr/local/Cellar/racket/6.5/share/racket/pkgs/compiler-lib/compiler/commands/expand.rkt:34:15: loop -"        /usr/local/Cellar/racket/6.5/share/racket/pkgs/compiler-lib/compiler/commands/expand.rkt:10:2: show-program -"        /usr/local/Cellar/racket/6.5/share/racket/pkgs/compiler-lib/compiler/commands/expand.rkt: [running body] -"        /usr/local/Cellar/minimal-racket/6.6/share/racket/collects/raco/raco.rkt: [running body] -"        /usr/local/Cellar/minimal-racket/6.6/share/racket/collects/raco/main.rkt: [running body] -function! neomake#makers#ft#racket#raco() abort -    return { -        \ 'exe': 'raco', -        \ 'args': ['expand'], -        \ 'errorformat': '%-G %.%#,%E%f:%l:%c: %m' -    \ } -endfunction diff --git a/.vim/autoload/neomake/makers/ft/rst.vim b/.vim/autoload/neomake/makers/ft/rst.vim deleted file mode 100644 index a7874ec..0000000 --- a/.vim/autoload/neomake/makers/ft/rst.vim +++ /dev/null @@ -1,89 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#rst#SupersetOf() abort -    return 'text' -endfunction - -" Get Sphinx source dir for the current buffer (determined by looking for -" conf.py, typically in docs/ or doc/). -" Caches the value in a buffer-local setting. -function! s:get_sphinx_srcdir() abort -    let srcdir = neomake#config#get('sphinx.source_dir') -    if srcdir isnot# g:neomake#config#undefined -        return srcdir -    endif - -    let r = '' -    let project_root = neomake#utils#get_project_root() -    let bufname = bufname('%') -    if empty(bufname) -        call neomake#log#debug('sphinx: skipping setting of source_dir for empty bufname.', {'bufnr': bufnr('%')}) -        return '' -    endif -    let f = findfile('conf.py', printf('%s;%s', fnamemodify(bufname, ':p:h'), project_root)) -    if !empty(f) -        let r = fnamemodify(f, ':p:h') -    endif -    call neomake#log#debug(printf('sphinx: setting b:neomake.sphinx.source_dir=%s.', string(r)), {'bufnr': bufnr('%')}) -    call neomake#config#set('b:sphinx.source_dir', r) -    return r -endfunction - -function! neomake#makers#ft#rst#EnabledMakers() abort -    if executable('sphinx-build') && !empty(s:get_sphinx_srcdir()) -        return ['sphinx'] -    endif -    return ['rstlint', 'rstcheck'] -endfunction - -function! neomake#makers#ft#rst#rstlint() abort -    return { -        \ 'exe': 'rst-lint', -        \ 'errorformat': -            \ '%ESEVERE %f:%l %m,'. -            \ '%EERROR %f:%l %m,'. -            \ '%WWARNING %f:%l %m,'. -            \ '%IINFO %f:%l %m,'. -            \ '%C%m', -        \ 'postprocess': function('neomake#postprocess#compress_whitespace'), -        \ 'output_stream': 'stdout', -        \ } -endfunction - -function! neomake#makers#ft#rst#rstcheck() abort -    return { -        \ 'errorformat': -            \ '%I%f:%l: (INFO/1) %m,'. -            \ '%W%f:%l: (WARNING/2) %m,'. -            \ '%E%f:%l: (ERROR/3) %m,'. -            \ '%E%f:%l: (SEVERE/4) %m', -        \ } -endfunction - -function! neomake#makers#ft#rst#sphinx() abort -    " TODO: -    "  - project mode (after cleanup branch) -    let srcdir = s:get_sphinx_srcdir() -    if empty(srcdir) -        throw 'Neomake: sphinx: could not find conf.py (you can configure sphinx.source_dir)' -    endif -    if !exists('s:sphinx_cache') -        let s:sphinx_cache = tempname() -    endif -    " NOTE: uses '%Z%m,%-G%.%#' instead of '%C%m,%-G' to include next line in -    "       multiline errors (fixed in 7.4.203). -    return { -        \ 'exe': 'sphinx-build', -        \ 'args': ['-n', '-E', '-q', '-N', '-b', 'dummy', srcdir, s:sphinx_cache], -        \ 'append_file': 0, -        \ 'errorformat': -            \ '%f:%l: %tARNING: %m,' . -            \ '%EWARNING: %f:%l: (SEVER%t/4) %m,' . -            \ '%EWARNING: %f:%l: (%tRROR/3) %m,' . -            \ '%EWARNING: %f:%l: (%tARNING/2) %m,' . -            \ '%Z%m,' . -            \ '%-G%.%#', -        \ 'output_stream': 'stderr', -        \ 'postprocess': function('neomake#postprocess#compress_whitespace'), -        \ } -endfunction diff --git a/.vim/autoload/neomake/makers/ft/ruby.vim b/.vim/autoload/neomake/makers/ft/ruby.vim deleted file mode 100644 index ceb6a46..0000000 --- a/.vim/autoload/neomake/makers/ft/ruby.vim +++ /dev/null @@ -1,90 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#ruby#EnabledMakers() abort -    return ['flog', 'mri', 'rubocop', 'reek', 'rubylint'] -endfunction - -function! neomake#makers#ft#ruby#rubocop() abort -    return { -        \ 'args': ['--format', 'emacs', '--force-exclusion', '--display-cop-names'], -        \ 'errorformat': '%f:%l:%c: %t: %m,%E%f:%l: %m', -        \ 'postprocess': function('neomake#makers#ft#ruby#RubocopEntryProcess'), -        \ 'output_stream': 'stdout', -        \ } -endfunction - -function! neomake#makers#ft#ruby#RubocopEntryProcess(entry) abort -    if a:entry.type ==# 'F'  " Fatal error which prevented further processing -        let a:entry.type = 'E' -    elseif a:entry.type ==# 'E'  " Error for important programming issues -        let a:entry.type = 'E' -    elseif a:entry.type ==# 'W'  " Warning for stylistic or minor programming issues -        let a:entry.type = 'W' -    elseif a:entry.type ==# 'R'  " Refactor suggestion -        let a:entry.type = 'W' -    elseif a:entry.type ==# 'C'  " Convention violation -        let a:entry.type = 'I' -    endif -endfunction - -function! neomake#makers#ft#ruby#rubylint() abort -    return { -        \ 'exe': 'ruby-lint', -        \ 'args': ['--presenter', 'syntastic'], -        \ 'errorformat': '%f:%t:%l:%c: %m', -        \ } -endfunction - -function! neomake#makers#ft#ruby#mri() abort -    let errorformat = '%-G%\m%.%#warning: %\%%(possibly %\)%\?useless use of == in void context,' -    let errorformat .= '%-G%\%.%\%.%\%.%.%#,' -    let errorformat .= -        \ '%-GSyntax OK,'. -        \ '%E%f:%l: syntax error\, %m,'. -        \ '%Z%p^,'. -        \ '%W%f:%l: warning: %m,'. -        \ '%Z%p^,'. -        \ '%W%f:%l: %m,'. -        \ '%-C%.%#' - -    return { -        \ 'exe': 'ruby', -        \ 'args': ['-c', '-T1', '-w'], -        \ 'errorformat': errorformat, -        \ 'output_stream': 'both', -        \ } -endfunction - -function! neomake#makers#ft#ruby#jruby() abort -    let errorformat = -        \ '%-GSyntax OK for %f,'. -        \ '%ESyntaxError in %f:%l: syntax error\, %m,'. -        \ '%Z%p^,'. -        \ '%W%f:%l: warning: %m,'. -        \ '%Z%p^,'. -        \ '%W%f:%l: %m,'. -        \ '%-C%.%#' - -    return { -        \ 'exe': 'jruby', -        \ 'args': ['-c', '-T1', '-w'], -        \ 'errorformat': errorformat -        \ } -endfunction - -function! neomake#makers#ft#ruby#reek() abort -    return { -        \ 'args': ['--format', 'text', '--single-line'], -        \ 'errorformat': '%W%f:%l: %m', -        \ } -endfunction - -function! neomake#makers#ft#ruby#flog() abort -    return { -        \ 'errorformat': -        \   '%W%m %f:%l-%c,' . -        \   '%-G\s%#,' . -        \   '%-G%.%#: flog total,' . -        \   '%-G%.%#: flog/method average,' -        \ } -endfunction diff --git a/.vim/autoload/neomake/makers/ft/rust.vim b/.vim/autoload/neomake/makers/ft/rust.vim deleted file mode 100644 index 71ddec1..0000000 --- a/.vim/autoload/neomake/makers/ft/rust.vim +++ /dev/null @@ -1,233 +0,0 @@ -function! neomake#makers#ft#rust#EnabledMakers() abort -    return ['cargo'] -endfunction - -function! neomake#makers#ft#rust#rustc() abort -    return { -        \ 'errorformat': -            \ '%-Gerror: aborting due to previous error,'. -            \ '%-Gerror: aborting due to %\\d%\\+ previous errors,'. -            \ '%-Gerror: Could not compile `%s`.,'. -            \ '%Eerror[E%n]: %m,'. -            \ '%Eerror: %m,'. -            \ '%Wwarning: %m,'. -            \ '%Inote: %m,'. -            \ '%-Z\ %#-->\ %f:%l:%c,'. -            \ '%G\ %#\= %*[^:]: %m,'. -            \ '%G\ %#|\ %#%\\^%\\+ %m,'. -            \ '%I%>help:\ %#%m,'. -            \ '%Z\ %#%m,'. -            \ '%-G%.%#', -        \ } -endfunction - -function! s:get_cargo_workspace_root() abort -    if !exists('b:_neomake_cargo_workspace') -        let cmd = 'cargo metadata --no-deps --format-version 1' -        let [cd_error, cd_back_cmd] = neomake#utils#temp_cd(expand('%:h')) -        if !empty(cd_error) -            call neomake#log#debug(printf( -                        \ 's:get_cargo_workspace_root: failed to cd to buffer directory: %s.', -                        \ cd_error)) -        endif -        let output = system(cmd) -        if !empty(cd_back_cmd) -            exe cd_back_cmd -        endif -        if v:shell_error -            call neomake#log#debug(printf( -                        \ 'Failed to get cargo metadata for workspace using %s.', -                        \ string(cmd))) -            let b:_neomake_cargo_workspace = '' -        else -            let json = neomake#compat#json_decode(output) -            let b:_neomake_cargo_workspace = json['workspace_root'] -        endif -    endif -    return b:_neomake_cargo_workspace -endfunction - -function! s:get_cargo_maker_cwd(default) abort -    let cargo_workspace_root = s:get_cargo_workspace_root() -    if !empty(cargo_workspace_root) -        return cargo_workspace_root -    endif - -    let cargo_toml = neomake#utils#FindGlobFile('Cargo.toml') -    if !empty(cargo_toml) -        return fnamemodify(cargo_toml, ':h') -    endif - -    return a:default -endfunction - -function! neomake#makers#ft#rust#cargotest() abort -    " NOTE: duplicates are removed due to https://github.com/rust-lang/cargo/issues/5128. -    let maker = { -        \ 'exe': 'cargo', -        \ 'args': ['test', '%:t:r', '--quiet'], -        \ 'append_file': 0, -        \ 'uses_filename': 0, -        \ 'postprocess': copy(g:neomake#postprocess#remove_duplicates), -        \ 'errorformat': -            \ '%-G,' . -            \ '%-Gtest %s,' . -            \ '%-Grunning %\\d%# test%s,' . -            \ '%-Gfailures:%s,' . -            \ '%-G----%s,' . -            \ '%-G%.%#--verbose%s,' . -            \ '%-G%.%#--explain%s,' . -            \ '%-Gerror: aborting due to previous error,' . -            \ '%-G%\ %#error: aborting due to %\\d%#%\ %#previous errors,' . -            \ '%E%\ %#error[E%n]:\ %m,' . -            \ '%E%\ %#error:\ %m,' . -            \ '%I%\ %#note:\ %m,'. -            \ '%W%\ %#warning:\ %m,' . -            \ '%-Z%\ %#-->\ %f:%l:%c,' . -            \ '%-G%\\d%# %#|\ %s,' . -            \ '%-G%\\d%# %#|,' . -            \ '%-G\ %#\= %*[^:]:\ %m,'. -            \ '%E%\ %#%m,' . -            \ '%G%\ %#%s%\\,,' . -            \ '%Z%\ %#%s%\\,%\\s%f:%l:%c' -    \ } - -    function! maker.InitForJob(_jobinfo) abort -        if !has_key(self, 'cwd') -            let self.cwd = s:get_cargo_maker_cwd('%:p:h') -            return self -        endif -    endfunction -    return maker -endfunction - -function! neomake#makers#ft#rust#cargo() abort -    let maker_command = get(b:, 'neomake_rust_cargo_command', -                \ get(g:, 'neomake_rust_cargo_command', ['check'])) -    let maker = { -        \ 'args': maker_command + ['--message-format=json', '--quiet'], -        \ 'append_file': 0, -        \ 'process_output': function('neomake#makers#ft#rust#CargoProcessOutput'), -        \ } - -    function! maker.InitForJob(_jobinfo) abort -        if !has_key(self, 'cwd') -            let self.cwd = s:get_cargo_maker_cwd('%:p:h') -            return self -        endif -    endfunction -    return maker -endfunction - -" NOTE: does not use process_json, since cargo outputs multiple JSON root -" elements per line. -function! neomake#makers#ft#rust#CargoProcessOutput(context) abort -    let errors = [] -    for line in a:context['output'] -        if line[0] !=# '{' -            continue -        endif - -        let decoded = neomake#compat#json_decode(line) -        let data = get(decoded, 'message', -1) -        if type(data) != type({}) || empty(data['spans']) -            continue -        endif - -        let error = {'maker_name': 'cargo'} -        let code_dict = get(data, 'code', -1) -        if code_dict is g:neomake#compat#json_null -            if get(data, 'level', '') ==# 'warning' -                let error.type = 'W' -            else -                let error.type = 'E' -            endif -        else -            let error.type = code_dict['code'][0] -            let error.nr = code_dict['code'][1:] -        endif - -        let span = data.spans[0] -        for candidate_span in data.spans -            if candidate_span.is_primary -                let span = candidate_span -                break -            endif -        endfor - -        let expanded = 0 -        let has_expansion = type(span.expansion) == type({}) -                    \ && type(span.expansion.span) == type({}) -                    \ && type(span.expansion.def_site_span) == type({}) - -        if span.file_name =~# '^<.*>$' && has_expansion -            let expanded = 1 -            call neomake#makers#ft#rust#FillErrorFromSpan(error, -                        \ span.expansion.span) -        else -            call neomake#makers#ft#rust#FillErrorFromSpan(error, span) -        endif - -        let error.text = data.message -        let detail = span.label -        let children = data.children -        if type(detail) == type('') && !empty(detail) -            let error.text = error.text . ': ' . detail -        elseif !empty(children) && has_key(children[0], 'message') -            let error.text = error.text . '. ' . children[0].message -        endif - -        call add(errors, error) - -        if has_expansion && !expanded -            let error = copy(error) -            call neomake#makers#ft#rust#FillErrorFromSpan(error, -                        \ span.expansion.span) -            call add(errors, error) -        endif - -        for child in children[1:] -            if !has_key(child, 'message') -                continue -            endif - -            let info = deepcopy(error) -            let info.type = 'I' -            let info.text = child.message -            call neomake#postprocess#compress_whitespace(info) -            if has_key(child, 'rendered') -                        \ && !(child.rendered is g:neomake#compat#json_null) -                let info.text = info.text . ': ' . child.rendered -            endif - -            if len(child.spans) -                let span = child.spans[0] -                if span.file_name =~# '^<.*>$' -                            \ && type(span.expansion) == type({}) -                            \ && type(span.expansion.span) == type({}) -                            \ && type(span.expansion.def_site_span) == type({}) -                    call neomake#makers#ft#rust#FillErrorFromSpan(info, -                                \ span.expansion.span) -                else -                    call neomake#makers#ft#rust#FillErrorFromSpan(info, span) -                endif -                let detail = span.label -                if type(detail) == type('') && len(detail) -                    let info.text = info.text . ': ' . detail -                endif -            endif - -            call add(errors, info) -        endfor -    endfor -    return errors -endfunction - -function! neomake#makers#ft#rust#FillErrorFromSpan(error, span) abort -    let a:error.filename = a:span.file_name -    let a:error.col = a:span.column_start -    let a:error.lnum = a:span.line_start -    let a:error.length = a:span.byte_end - a:span.byte_start -endfunction - -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/scala.vim b/.vim/autoload/neomake/makers/ft/scala.vim deleted file mode 100644 index 0899881..0000000 --- a/.vim/autoload/neomake/makers/ft/scala.vim +++ /dev/null @@ -1,40 +0,0 @@ -" vim: ts=4 sw=4 et -function! neomake#makers#ft#scala#EnabledMakers() abort -    " use let g:neomake_scala_enabled_makers = ['fsc','scalastyle'] for fsc -    let makers = ['scalac', 'scalastyle'] -    return makers -endfunction - -function! neomake#makers#ft#scala#fsc() abort -    return { -        \ 'args': [ -            \ '-Ystop-after:parser' -        \ ], -        \ 'errorformat': -            \ '%E%f:%l: %trror: %m,' . -            \ '%Z%p^,' . -            \ '%-G%.%#' -        \ } -endfunction - -function! neomake#makers#ft#scala#scalac() abort -    return { -        \ 'args': [ -            \ '-Ystop-after:parser' -        \ ], -        \ 'errorformat': -            \ '%E%f:%l: %trror: %m,' . -            \ '%Z%p^,' . -            \ '%-G%.%#' -        \ } -endfunction - -function! neomake#makers#ft#scala#scalastyle() abort -    return { -        \ 'errorformat': -            \ '%trror file=%f message=%m line=%l column=%c,' . -            \ '%trror file=%f message=%m line=%l,' . -            \ '%tarning file=%f message=%m line=%l column=%c,' . -            \ '%tarning file=%f message=%m line=%l' -        \ } -endfunction diff --git a/.vim/autoload/neomake/makers/ft/scss.vim b/.vim/autoload/neomake/makers/ft/scss.vim deleted file mode 100644 index e33ea6f..0000000 --- a/.vim/autoload/neomake/makers/ft/scss.vim +++ /dev/null @@ -1,25 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#scss#EnabledMakers() abort -    return executable('stylelint') ? ['stylelint'] : executable('sass-lint') ? ['sasslint'] : ['scsslint'] -endfunction - -function! neomake#makers#ft#scss#sasslint() abort -    return { -        \ 'exe': 'sass-lint', -        \ 'args': ['--no-exit', '--verbose', '--format', 'compact'], -        \ 'errorformat': neomake#makers#ft#javascript#eslint()['errorformat'] -        \ } -endfunction - -function! neomake#makers#ft#scss#scsslint() abort -    return { -        \ 'exe': 'scss-lint', -        \ 'errorformat': '%A%f:%l:%v [%t] %m,' . -        \                '%A%f:%l [%t] %m' -    \ } -endfunction - -function! neomake#makers#ft#scss#stylelint() abort -    return neomake#makers#ft#css#stylelint() -endfunction diff --git a/.vim/autoload/neomake/makers/ft/serpent.vim b/.vim/autoload/neomake/makers/ft/serpent.vim deleted file mode 100644 index eff20ba..0000000 --- a/.vim/autoload/neomake/makers/ft/serpent.vim +++ /dev/null @@ -1,13 +0,0 @@ -function! neomake#makers#ft#serpent#EnabledMakers() abort -    return ['serplint'] -endfunction - -function! neomake#makers#ft#serpent#serplint() abort -    return { -        \ 'exe': 'serplint', -        \ 'args': [], -        \ 'errorformat': -            \ '%f:%l:%c %t%n %m', -        \ } -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/sh.vim b/.vim/autoload/neomake/makers/ft/sh.vim deleted file mode 100644 index 00889b9..0000000 --- a/.vim/autoload/neomake/makers/ft/sh.vim +++ /dev/null @@ -1,86 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#sh#EnabledMakers() abort -    return ['sh', 'shellcheck'] -endfunction - -let s:shellcheck = { -        \ 'args': ['-fgcc', '-x'], -        \ 'errorformat': -            \ '%f:%l:%c: %trror: %m [SC%n],' . -            \ '%f:%l:%c: %tarning: %m [SC%n],' . -            \ '%I%f:%l:%c: Note: %m [SC%n]', -        \ 'output_stream': 'stdout', -        \ 'short_name': 'SC', -        \ 'cwd': '%:h', -        \ } - -function! neomake#makers#ft#sh#shellcheck() abort -    let maker = deepcopy(s:shellcheck) - -    let line1 = getline(1) -    if match(line1, '\v^#!.*<%(sh|dash|bash|ksh)') < 0 -                \ && match(line1, '\v^#\s*shellcheck\s+shell\=') < 0 -        " shellcheck does not read the shebang by itself. -        let ext = expand('%:e') -        if ext ==# 'ksh' -            let maker.args += ['-s', 'ksh'] -        elseif ext ==# 'sh' -            if exists('g:is_sh') -                let maker.args += ['-s', 'sh'] -            elseif exists('g:is_posix') || exists('g:is_kornshell') -                let maker.args += ['-s', 'ksh'] -            else -                let maker.args += ['-s', 'bash'] -            endif -        else -            let maker.args += ['-s', 'bash'] -        endif -    endif -    return maker -endfunction - -function! neomake#makers#ft#sh#checkbashisms() abort -    return { -        \ 'args': ['-fx'], -        \ 'errorformat': -            \ '%-Gscript %f is already a bash script; skipping,' . -            \ '%Eerror: %f: %m\, opened in line %l,' . -            \ '%Eerror: %f: %m,' . -            \ '%Ecannot open script %f for reading: %m,' . -            \ '%Wscript %f %m,%C%.# lines,' . -            \ '%Wpossible bashism in %f line %l (%m):,%C%.%#,%Z.%#,' . -            \ '%-G%.%#', -        \ 'output_stream': 'stderr', -        \ } -endfunction - -function! neomake#makers#ft#sh#sh() abort -    let shebang = matchstr(getline(1), '^#!\s*\zs.*$') -    if !empty(shebang) -        let l = split(shebang) -        let exe = l[0] -        let args = l[1:] + ['-n'] -    else -        let exe = '/usr/bin/env' -        let args = ['sh', '-n'] -    endif - -    " NOTE: the format without "line" is used by dash. -    return { -        \ 'exe': exe, -        \ 'args': args, -        \ 'errorformat': -            \ '%E%f: line %l: %m,' . -            \ '%E%f: %l: %m', -        \ 'output_stream': 'stderr', -        \} -endfunction - -function! neomake#makers#ft#sh#dash() abort -    return { -        \ 'args': ['-n'], -        \ 'errorformat': '%E%f: %l: %m', -        \ 'output_stream': 'stderr', -        \} -endfunction diff --git a/.vim/autoload/neomake/makers/ft/slim.vim b/.vim/autoload/neomake/makers/ft/slim.vim deleted file mode 100644 index 931f57f..0000000 --- a/.vim/autoload/neomake/makers/ft/slim.vim +++ /dev/null @@ -1,13 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#slim#EnabledMakers() abort -    return ['slimlint'] -endfunction - -function! neomake#makers#ft#slim#slimlint() abort -    return { -        \ 'exe': 'slim-lint', -        \ 'args': ['--no-color'], -        \ 'errorformat': '%f:%l [%t] %m' -        \ } -endfunction diff --git a/.vim/autoload/neomake/makers/ft/sml.vim b/.vim/autoload/neomake/makers/ft/sml.vim deleted file mode 100644 index 46e0bd0..0000000 --- a/.vim/autoload/neomake/makers/ft/sml.vim +++ /dev/null @@ -1,19 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#sml#EnabledMakers() abort -    return ['smlnj'] -endfunction - -" This comes straight out of syntastic. -function! neomake#makers#ft#sml#smlnj() abort -    return { -        \ 'exe': 'sml', -        \ 'errorformat': -            \ '%E%f:%l%\%.%c %trror: %m,' . -            \ '%E%f:%l%\%.%c-%\d%\+%\%.%\d%\+ %trror: %m,' . -            \ '%W%f:%l%\%.%c %tarning: %m,' . -            \ '%W%f:%l%\%.%c-%\d%\+%\%.%\d%\+ %tarning: %m,' . -            \ '%C%\s%\+%m,' . -            \ '%-G%.%#' -        \ } -endfunction diff --git a/.vim/autoload/neomake/makers/ft/solidity.vim b/.vim/autoload/neomake/makers/ft/solidity.vim deleted file mode 100644 index 200e910..0000000 --- a/.vim/autoload/neomake/makers/ft/solidity.vim +++ /dev/null @@ -1,16 +0,0 @@ -function! neomake#makers#ft#solidity#EnabledMakers() abort -    return ['solium', 'solhint'] -endfunction - -function! neomake#makers#ft#solidity#solium() abort -    return { -        \ 'args': ['--reporter', 'gcc', '--file'], -        \ 'errorformat': -            \ '%f:%l:%c: %t%s: %m', -        \ } -endfunction - -function! neomake#makers#ft#solidity#solhint() abort -    return neomake#makers#ft#javascript#eslint() -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/spar.vim b/.vim/autoload/neomake/makers/ft/spar.vim deleted file mode 100644 index 9efe7a1..0000000 --- a/.vim/autoload/neomake/makers/ft/spar.vim +++ /dev/null @@ -1,13 +0,0 @@ -function! neomake#makers#ft#spar#EnabledMakers() abort -    return ['spar'] -endfunction - -function! neomake#makers#ft#spar#spar() abort -    return { -        \ 'args': ['-g', '-c'], -        \ 'errorformat': -            \ '%f:%l:%c: %m', -        \ 'nvim_job_opts': {'pty': 1} -        \ } -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/spec.vim b/.vim/autoload/neomake/makers/ft/spec.vim deleted file mode 100644 index 2723340..0000000 --- a/.vim/autoload/neomake/makers/ft/spec.vim +++ /dev/null @@ -1,16 +0,0 @@ -function! neomake#makers#ft#spec#EnabledMakers() abort -    return ['rpmlint'] -endfunction - -function! neomake#makers#ft#spec#rpmlint() abort -    return { -        \ 'errorformat': -        \     '%E%f:%l: E: %m,' . -        \     '%E%f: E: %m,' . -        \     '%W%f:%l: W: %m,' . -        \     '%W%f: W: %m,' . -        \     '%-G%.%#' -        \ } -endfunction - -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/sql.vim b/.vim/autoload/neomake/makers/ft/sql.vim deleted file mode 100644 index bdbfdfa..0000000 --- a/.vim/autoload/neomake/makers/ft/sql.vim +++ /dev/null @@ -1,13 +0,0 @@ -function! neomake#makers#ft#sql#EnabledMakers() abort -    return ['sqlint'] -endfunction - -function! neomake#makers#ft#sql#sqlint() abort -    return { -        \ 'errorformat': -            \ '%E%f:%l:%c:ERROR %m,' . -            \ '%W%f:%l:%c:WARNING %m,' . -            \ '%C %m' -        \ } -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/stylus.vim b/.vim/autoload/neomake/makers/ft/stylus.vim deleted file mode 100644 index 113a194..0000000 --- a/.vim/autoload/neomake/makers/ft/stylus.vim +++ /dev/null @@ -1,16 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#stylus#EnabledMakers() abort -    return ['stylint'] -endfunction - -function! neomake#makers#ft#stylus#stylint() abort -    return { -        \ 'errorformat': -            \ '%WWarning: %m,' . -            \ '%EError: %m,' . -            \ '%-Csee file: %f for the original selector,' . -            \ '%CFile: %f,' . -            \ '%ZLine: %l:%.%#' -    \ } -endfunction diff --git a/.vim/autoload/neomake/makers/ft/swift.vim b/.vim/autoload/neomake/makers/ft/swift.vim deleted file mode 100644 index 76bb440..0000000 --- a/.vim/autoload/neomake/makers/ft/swift.vim +++ /dev/null @@ -1,54 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#swift#EnabledMakers() abort -    if !empty(s:get_swiftpm_config()) -        return ['swiftpm'] -    endif -    return ['swiftc'] -endfunction - -function! s:get_swiftpm_config() abort -    return neomake#utils#FindGlobFile('Package.swift') -endfunction - -function! s:get_swiftpm_base_maker() abort -    let maker = { -        \ 'exe': 'swift', -        \ 'append_file': 0, -        \ 'errorformat': -            \ '%E%f:%l:%c: error: %m,' . -            \ '%E%f:%l: error: %m,' . -            \ '%W%f:%l:%c: warning: %m,' . -            \ '%Z%\s%#^~%#,' . -            \ '%-G%.%#', -        \ } -    let config = s:get_swiftpm_config() -    if !empty(config) -        let maker.cwd = fnamemodify(config, ':h') -    endif -    return maker -endfunction - -function! neomake#makers#ft#swift#swiftpm() abort -    let maker = s:get_swiftpm_base_maker() -    let maker.args = ['build', '--build-tests'] -    return maker -endfunction - -function! neomake#makers#ft#swift#swiftpmtest() abort -    let maker = s:get_swiftpm_base_maker() -    let maker.args = ['test'] -    return maker -endfunction - -function! neomake#makers#ft#swift#swiftc() abort -    " `export SDKROOT="$(xcodebuild -version -sdk macosx Path)"` -    return { -        \ 'args': ['-parse'], -        \ 'errorformat': -            \ '%E%f:%l:%c: error: %m,' . -            \ '%W%f:%l:%c: warning: %m,' . -            \ '%Z%\s%#^~%#,' . -            \ '%-G%.%#', -        \ } -endfunction diff --git a/.vim/autoload/neomake/makers/ft/tcl.vim b/.vim/autoload/neomake/makers/ft/tcl.vim deleted file mode 100644 index 76c5af4..0000000 --- a/.vim/autoload/neomake/makers/ft/tcl.vim +++ /dev/null @@ -1,15 +0,0 @@ -function! neomake#makers#ft#tcl#EnabledMakers() abort -    return ['nagelfar'] -endfunction - -function! neomake#makers#ft#tcl#nagelfar() abort -    return { -                \ 'exe': 'nagelfar', -                \ 'args': ['-H'], -                \ 'errorformat': -                \ '%I%f: %l: N %m,' . -                \ '%f: %l: %t %m,' . -                \ '%-GChecking file %f' -                \ } -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/tex.vim b/.vim/autoload/neomake/makers/ft/tex.vim deleted file mode 100644 index 9fca53b..0000000 --- a/.vim/autoload/neomake/makers/ft/tex.vim +++ /dev/null @@ -1,69 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#tex#EnabledMakers() abort -    return ['chktex', 'lacheck', 'rubberinfo', 'proselint'] -endfunction - -function! neomake#makers#ft#tex#chktex() abort -    let maker = { -                \ 'args': [], -                \ 'errorformat': -                \ '%EError %n in %f line %l: %m,' . -                \ '%WWarning %n in %f line %l: %m,' . -                \ '%WMessage %n in %f line %l: %m,' . -                \ '%Z%p^,' . -                \ '%-G%.%#' -                \ } -    let rcfile = neomake#utils#FindGlobFile('.chktexrc') -    if !empty(rcfile) -        let maker.args += ['-l', fnamemodify(rcfile, ':h')] -    endif -    return maker -endfunction - -function! neomake#makers#ft#tex#lacheck() abort -    return { -                \ 'errorformat': -                \ '%-G** %f:,' . -                \ '%E"%f"\, line %l: %m' -                \ } -endfunction - -function! neomake#makers#ft#tex#rubber() abort -    return { -                \ 'args': ['--pdf', '-f', '--warn=all'], -                \ 'errorformat': -                \ '%f:%l: %m,' . -                \ '%f: %m' -                \ } -endfunction - -function! neomake#makers#ft#tex#rubberinfo() abort -    return { -                \ 'exe': 'rubber-info', -                \ 'errorformat': -                \ '%f:%l: %m,' . -                \ '%f:%l-%\d%\+: %m,' . -                \ '%f: %m' -                \ } -endfunction - -function! neomake#makers#ft#tex#latexrun() abort -    return { -                \ 'args': ['--color', 'never'], -                \ 'errorformat': -                \ '%f:%l: %m' -                \ } -endfunction - -function! neomake#makers#ft#tex#pdflatex() abort -    return { -                \ 'exe': 'pdflatex', -                \ 'args': ['-shell-escape', '-file-line-error', '-interaction', 'nonstopmode'], -                \ 'errorformat': '%E%f:%l: %m' -                \ } -endfunction - -function! neomake#makers#ft#tex#proselint() abort -    return neomake#makers#ft#text#proselint() -endfunction diff --git a/.vim/autoload/neomake/makers/ft/text.vim b/.vim/autoload/neomake/makers/ft/text.vim deleted file mode 100644 index a1ebe0a..0000000 --- a/.vim/autoload/neomake/makers/ft/text.vim +++ /dev/null @@ -1,30 +0,0 @@ -function! neomake#makers#ft#text#EnabledMakers() abort -    " No makers enabled by default, since text is used as fallback often. -    return [] -endfunction - -function! neomake#makers#ft#text#proselint() abort -    return { -                \ 'errorformat': '%W%f:%l:%c: %m', -                \ 'postprocess': function('neomake#postprocess#generic_length'), -                \ } -endfunction - -function! neomake#makers#ft#text#PostprocessWritegood(entry) abort -    let a:entry.col += 1 -    if a:entry.text[0] ==# '"' -        let matchend = match(a:entry.text, '\v^[^"]+\zs"', 1) -        if matchend != -1 -            let a:entry.length = matchend - 1 -        endif -    endif -endfunction - -function! neomake#makers#ft#text#writegood() abort -    return { -                \ 'args': ['--parse'], -                \ 'errorformat': '%W%f:%l:%c:%m,%C%m,%-G', -                \ 'postprocess': function('neomake#makers#ft#text#PostprocessWritegood'), -                \ } -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/toml.vim b/.vim/autoload/neomake/makers/ft/toml.vim deleted file mode 100644 index d314911..0000000 --- a/.vim/autoload/neomake/makers/ft/toml.vim +++ /dev/null @@ -1,15 +0,0 @@ -function! neomake#makers#ft#toml#EnabledMakers() abort -    return ['tomlcheck'] -endfunction - -function! neomake#makers#ft#toml#tomlcheck() abort -    return { -        \ 'args': ['-f'], -        \ 'errorformat': -        \     '%E%f:%l:%c:,' . -        \     '%E%m' -        \ } -endfunction - -" vim: et sw=4 ts=4 -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/tsx.vim b/.vim/autoload/neomake/makers/ft/tsx.vim deleted file mode 100644 index 2a31b4d..0000000 --- a/.vim/autoload/neomake/makers/ft/tsx.vim +++ /dev/null @@ -1,15 +0,0 @@ -function! neomake#makers#ft#tsx#SupersetOf() abort -    return 'typescript' -endfunction - -function! neomake#makers#ft#tsx#EnabledMakers() abort -    return ['tsc', 'tslint'] -endfunction - -function! neomake#makers#ft#tsx#tsc() abort -    let config = neomake#makers#ft#typescript#tsc() -    let config.args = config.args + ['--jsx', 'preserve'] -    return config -endfunction - -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/typescript.vim b/.vim/autoload/neomake/makers/ft/typescript.vim deleted file mode 100644 index 4d011b7..0000000 --- a/.vim/autoload/neomake/makers/ft/typescript.vim +++ /dev/null @@ -1,45 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#typescript#EnabledMakers() abort -    return ['tsc', 'tslint'] -endfunction - -function! neomake#makers#ft#typescript#tsc() abort -    " tsc should not be passed a single file. -    let maker = { -        \ 'args': ['--noEmit', '--watch', 'false', '--pretty', 'false'], -        \ 'append_file': 0, -        \ 'errorformat': -            \ '%E%f %#(%l\,%c): error %m,' . -            \ '%E%f %#(%l\,%c): %m,' . -            \ '%Eerror %m,' . -            \ '%C%\s%\+%m' -        \ } -    let config = neomake#utils#FindGlobFile('tsconfig.json') -    if !empty(config) -        let maker.args += ['--project', config] -    endif -    return maker -endfunction - -function! neomake#makers#ft#typescript#tslint() abort -    " NOTE: output format changed in tslint 5.12.0. -    let maker = { -                \ 'args': ['-t', 'prose'], -                \ 'errorformat': '%-G,' -                    \ .'%EERROR: %f:%l:%c - %m,' -                    \ .'%WWARNING: %f:%l:%c - %m,' -                    \ .'%EERROR: %f[%l\, %c]: %m,' -                    \ .'%WWARNING: %f[%l\, %c]: %m', -                \ } -    let config = neomake#utils#FindGlobFile('tsconfig.json') -    if !empty(config) -        let maker.args += ['--project', config] -        let maker.cwd = fnamemodify(config, ':h') -    endif -    return maker -endfunction - -function! neomake#makers#ft#typescript#eslint() abort -    return neomake#makers#ft#javascript#eslint() -endfunction diff --git a/.vim/autoload/neomake/makers/ft/verilog.vim b/.vim/autoload/neomake/makers/ft/verilog.vim deleted file mode 100644 index 78d9189..0000000 --- a/.vim/autoload/neomake/makers/ft/verilog.vim +++ /dev/null @@ -1,16 +0,0 @@ -function! neomake#makers#ft#verilog#EnabledMakers() abort -    return ['iverilog'] -endfunction - -function! neomake#makers#ft#verilog#iverilog() abort -    return { -                \ 'args' : ['-tnull', '-Wall', '-y./'], -                \ 'cwd' : '%:h', -                \ 'errorformat' : '%f:%l: %trror: %m,' . -                \ '%f:%l: %tarning: %m,' . -                \ '%E%f:%l:      : %m,' . -                \ '%W%f:%l:        : %m,' . -                \ '%f:%l: %m', -                \ } -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/vhdl.vim b/.vim/autoload/neomake/makers/ft/vhdl.vim deleted file mode 100644 index dffa813..0000000 --- a/.vim/autoload/neomake/makers/ft/vhdl.vim +++ /dev/null @@ -1,12 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#vhdl#EnabledMakers() abort -    return ['ghdl'] -endfunction - -function! neomake#makers#ft#vhdl#ghdl() abort -    return { -                \ 'args' : ['-s'], -                \ 'errorformat' : '%E%f:%l:%c: %m', -                \ } -endfunction diff --git a/.vim/autoload/neomake/makers/ft/vim.vim b/.vim/autoload/neomake/makers/ft/vim.vim deleted file mode 100644 index 8cd1318..0000000 --- a/.vim/autoload/neomake/makers/ft/vim.vim +++ /dev/null @@ -1,87 +0,0 @@ -function! neomake#makers#ft#vim#EnabledMakers() abort -    return ['vint'] -endfunction - -let s:slash = neomake#utils#Slash() -let s:neomake_root = expand('<sfile>:p:h:h:h:h:h', 1) - -let s:vint_supports_stdin = {} - -function! neomake#makers#ft#vim#neomake_checks() abort -    let maker = { -                \ 'exe': join([s:neomake_root, 'contrib', 'vim-checks'], s:slash), -                \ 'errorformat': '%f:%l: %m', -                \ } - -    return maker -endfunction - -function! neomake#makers#ft#vim#vint() abort -    let args = ['--style-problem', '--no-color', -        \ '-f', '{file_path}:{line_number}:{column_number}:{severity}:{description} ({policy_name})'] - -    if has('nvim') -        call add(args, '--enable-neovim') -    endif - -    let maker = { -        \ 'args': args, -        \ 'errorformat': '%I%f:%l:%c:style_problem:%m,' -        \   .'%f:%l:%c:%t%*[^:]:E%n: %m,' -        \   .'%f:%l:%c:%t%*[^:]:%m', -        \ 'output_stream': 'stdout', -        \ 'postprocess': { -        \   'fn': function('neomake#postprocess#generic_length'), -        \   'pattern': '\v%(^:|%([^:]+: ))\zs(\S+)', -        \ }} - -    function! maker.supports_stdin(_jobinfo) abort -        let exe = exists('*exepath') ? exepath(self.exe) : self.exe -        let support = get(s:vint_supports_stdin, exe, -1) -        if support == -1 -            let ver = neomake#compat#systemlist(['vint', '--version']) -            let ver_split = split(ver[0], '\.') -            if len(ver_split) > 1 && (ver_split[0] > 0 || +ver_split[1] >= 4) -                let support = 1 -            else -                let support = 0 -            endif -            let s:vint_supports_stdin[exe] = support -            call neomake#log#debug('vint: stdin support: '.support.'.') -        endif -        if support -            let self.args += ['--stdin-display-name', '%:.'] -        endif -        return support -    endfunction -    return maker -endfunction - -function! neomake#makers#ft#vim#vimlint() abort -    return { -        \ 'args': ['-u'], -        \ 'errorformat': '%f:%l:%c:%trror: EVL%n: %m,' -        \   . '%f:%l:%c:%tarning: EVL%n: %m,' -        \   . '%f:%l:%c:%t%*[^:]: EVP_%#E%#%n: %m', -        \ 'postprocess': function('neomake#makers#ft#vim#PostprocessVimlint'), -        \ 'output_stream': 'stdout', -        \ } -endfunction - -function! neomake#makers#ft#vim#PostprocessVimlint(entry) abort -    let m = matchlist(a:entry.text, '\v`\zs[^`]{-}\ze`') -    if empty(m) -        return -    endif - -    " Ensure that the text is there. -    let l = len(m[0]) -    let line = getline(a:entry.lnum) -    if line[a:entry.col-1 : a:entry.col-2+l] == m[0] -        let a:entry.length = l -    elseif m[0][0:1] ==# 'l:' && line[a:entry.col-1 : a:entry.col-4+l] == m[0][2:] -        " Ignore implicit 'l:' prefix. -        let a:entry.length = l - 2 -    endif -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/vue.vim b/.vim/autoload/neomake/makers/ft/vue.vim deleted file mode 100644 index d9f5303..0000000 --- a/.vim/autoload/neomake/makers/ft/vue.vim +++ /dev/null @@ -1,28 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#vue#EnabledMakers() abort -    return ['eslint', 'standard'] -endfunction - -function! neomake#makers#ft#vue#eslint() abort -    let maker = neomake#makers#ft#javascript#eslint() -    call extend(get(maker, 'args', []), ['--plugin', 'html']) -    return maker -endfunction - -function! neomake#makers#ft#vue#eslint_d() abort -    return neomake#makers#ft#vue#eslint() -endfunction - -function! neomake#makers#ft#vue#standard() abort -    let maker = neomake#makers#ft#javascript#standard() -    call extend(get(maker, 'args', []), ['--plugin', 'html']) -    return maker -endfunction - -function! neomake#makers#ft#vue#semistandard() abort -    let maker = neomake#makers#ft#javascript#semistandard() -    call extend(get(maker, 'args', []), ['--plugin', 'html']) -    return maker -endfunction - diff --git a/.vim/autoload/neomake/makers/ft/xml.vim b/.vim/autoload/neomake/makers/ft/xml.vim deleted file mode 100644 index 75b6996..0000000 --- a/.vim/autoload/neomake/makers/ft/xml.vim +++ /dev/null @@ -1,25 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#xml#EnabledMakers() abort -    return ['xmllint'] -endfunction - -function! neomake#makers#ft#xml#xmllint() abort -    let args = ['--xinclude', '--postvalid', '--noout'] - -    return { -        \ 'args': args, -        \ 'supports_stdin': 1, -        \ 'errorformat': -            \ '%E%f:%l: error : %m,' . -            \ '%-G%f:%l: validity error : Validation failed: no DTD found %m,' . -            \ '%W%f:%l: warning : %m,' . -            \ '%W%f:%l: validity warning : %m,' . -            \ '%E%f:%l: validity error : %m,' . -            \ '%E%f:%l: parser error : %m,' . -            \ '%E%f:%l: %m,' . -            \ '%-Z%p^,' . -            \ '%-C%.%#,' . -            \ '%-G%.%#', -        \ } -endfunction diff --git a/.vim/autoload/neomake/makers/ft/xslt.vim b/.vim/autoload/neomake/makers/ft/xslt.vim deleted file mode 100644 index 61bcf02..0000000 --- a/.vim/autoload/neomake/makers/ft/xslt.vim +++ /dev/null @@ -1,8 +0,0 @@ -function! neomake#makers#ft#xslt#EnabledMakers() abort -    return ['xmllint'] -endfunction - -function! neomake#makers#ft#xslt#xmllint() abort -    return neomake#makers#ft#xml#xmllint() -endfunction -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/makers/ft/yacc.vim b/.vim/autoload/neomake/makers/ft/yacc.vim deleted file mode 100644 index 8a2edd5..0000000 --- a/.vim/autoload/neomake/makers/ft/yacc.vim +++ /dev/null @@ -1,17 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#yacc#EnabledMakers() abort -    return ['bison'] -endfunction - -function! neomake#makers#ft#yacc#bison() abort -    return { -            \ 'errorformat': -                \ '%E%f:%l%.%v-%.%\{-}: %trror: %m,' . -                \ '%E%f:%l%.%v: %trror: %m,' . -                \ '%W%f:%l%.%v-%.%\{-}: %tarning: %m,' . -                \ '%W%f:%l%.%v: %tarning: %m,' . -                \ '%I%f:%l%.%v-%.%\{-}: %\s%\+%m,' . -                \ '%I%f:%l%.%v: %\s%\+%m' -        \ } -endfunction diff --git a/.vim/autoload/neomake/makers/ft/yaml.vim b/.vim/autoload/neomake/makers/ft/yaml.vim deleted file mode 100644 index 338ca8c..0000000 --- a/.vim/autoload/neomake/makers/ft/yaml.vim +++ /dev/null @@ -1,12 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#yaml#EnabledMakers() abort -    return ['yamllint'] -endfunction - -function! neomake#makers#ft#yaml#yamllint() abort -    return { -        \ 'args': ['-f', 'parsable'], -        \ 'errorformat': '%E%f:%l:%c: [error] %m,%W%f:%l:%c: [warning] %m', -        \ } -endfunction diff --git a/.vim/autoload/neomake/makers/ft/zsh.vim b/.vim/autoload/neomake/makers/ft/zsh.vim deleted file mode 100644 index a63e365..0000000 --- a/.vim/autoload/neomake/makers/ft/zsh.vim +++ /dev/null @@ -1,19 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#ft#zsh#EnabledMakers() abort -    return ['zsh'] -endfunction - -" Note: newer versions of shellcheck do not support zsh. -function! neomake#makers#ft#zsh#shellcheck() abort -    let maker = neomake#makers#ft#sh#shellcheck() -    let maker.args += ['--shell', 'zsh'] -    return maker -endfunction - -function! neomake#makers#ft#zsh#zsh() abort -    return { -        \ 'args': ['-n'], -        \ 'errorformat': '%E%f:%l: %m' -        \} -endfunction diff --git a/.vim/autoload/neomake/makers/gradle.vim b/.vim/autoload/neomake/makers/gradle.vim deleted file mode 100644 index de892a7..0000000 --- a/.vim/autoload/neomake/makers/gradle.vim +++ /dev/null @@ -1,28 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#gradle#gradle() abort -    let g:gradleBin = filereadable('./gradlew') ? './gradlew' : 'gradle' - -    return { -        \ 'exe': g:gradleBin, -        \ 'append_file': 0, -        \ 'args': ['assemble', '--daemon'], -        \ 'errorformat': '\%+ATask\ %.%#\ not\ found\ %.%#.,'. -        \'%EExecution\ failed\ for\ task\ %m,'. -        \'findbugs:\ %tarning\ %f:%l:%c\ %m,'. -        \'pmd:\ %tarning\ %f:%l:%c\ %m,'. -        \'checkstyle:\ %tarning\ %f:%l:%c\ %m,'. -        \'lint:\ %tarning\ %f:%l:%c\ %m,'. -        \'%A>\ %f:%l:%c:\ %trror:\ %m,'. -        \'%A>\ %f:%l:%c:\ %tarning:\ %m,'. -        \'%A%f:%l:\ %trror:\ %m,'. -        \'%A%f:%l:\ %tarning:\ %m,'. -        \'%A%f:%l:\ %trror\ -\ %m,'. -        \'%A%f:%l:\ %tarning\ -\ %m,'. -        \'%E%f:%l\ :\ %m,'. -        \'%C>\ %m,'. -        \'%-G%p^,'. -        \'%+G\ \ %.%#,'. -        \'%-G%.%#' -        \ } -endfunction diff --git a/.vim/autoload/neomake/makers/mvn.vim b/.vim/autoload/neomake/makers/mvn.vim deleted file mode 100644 index cac2a80..0000000 --- a/.vim/autoload/neomake/makers/mvn.vim +++ /dev/null @@ -1,9 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#mvn#mvn() abort -    return { -         \ 'exe': 'mvn', -         \ 'args': ['install'], -            \ 'errorformat': '[%tRROR]\ %f:[%l]\ %m,%-G%.%#' -         \ } -endfunction diff --git a/.vim/autoload/neomake/makers/sbt.vim b/.vim/autoload/neomake/makers/sbt.vim deleted file mode 100644 index 93e233b..0000000 --- a/.vim/autoload/neomake/makers/sbt.vim +++ /dev/null @@ -1,13 +0,0 @@ -" vim: ts=4 sw=4 et - -function! neomake#makers#sbt#sbt() abort -    return { -        \ 'exe': 'sbt', -        \ 'args': ['-Dsbt.log.noformat=true', 'compile'], -        \ 'errorformat': -            \ '%E[%trror]\ %f:%l:%c:\ %m,' . -            \ '%-Z[error]\ %p^,' . -            \ '%-C%.%#,' . -            \ '%-G%.%#' -    \ } -endfunction diff --git a/.vim/autoload/neomake/postprocess.vim b/.vim/autoload/neomake/postprocess.vim deleted file mode 100644 index d92a897..0000000 --- a/.vim/autoload/neomake/postprocess.vim +++ /dev/null @@ -1,77 +0,0 @@ -" Generic postprocessor to add `length` to `a:entry`. -" The pattern can be overridden on `self` and should adhere to this: -"  - the matched word should be returned as the whole match (you can use \zs -"    and \ze). -"  - enclosing patterns should be returned as \1 and \2, where \1 is used as -"    offset when the first entry did not match. -" See tests/postprocess.vader for tests/examples. -" See neomake#postprocess#generic_length_with_pattern for a non-dict variant. -function! neomake#postprocess#generic_length(entry) abort dict -    if a:entry.lnum > 0 && a:entry.col -        let pattern = get(self, 'pattern', '\v(["''`])\zs[^\1]{-}\ze(\1)') -        let start = 0 -        let best = 0 -        while 1 -            let m = matchlist(a:entry.text, pattern, start) -            if empty(m) -                break -            endif -            let l = len(m[0]) -            if l > best -                " Ensure that the text is there. -                let line = get(getbufline(a:entry.bufnr, a:entry.lnum), 0, '') -                if line[a:entry.col-1 : a:entry.col-2+l] == m[0] -                    let best = l -                endif -            endif -            if exists('*matchstrpos')  " vim73 -                let pos = matchstrpos(a:entry.text, pattern, start) -                if pos[1] == -1 -                    break -                endif -                let start += pos[2] + len(m[2]) -            else -                break -            endif -        endwhile -        if best -            let a:entry.length = best -        endif -    endif -endfunction - -" Wrapper to call neomake#process#generic_length (a dict function). -function! neomake#postprocess#generic_length_with_pattern(entry, pattern) abort -    let this = {'pattern': a:pattern} -    return call('neomake#postprocess#generic_length', [a:entry], this) -endfunction - -" Deprecated: renamed to neomake#postprocess#generic_length. -function! neomake#postprocess#GenericLengthPostprocess(entry) abort dict -    return neomake#postprocess#generic_length(a:entry) -endfunction - -function! neomake#postprocess#compress_whitespace(entry) abort -    let text = a:entry.text -    let text = substitute(text, "\001", '', 'g') -    let text = substitute(text, '\r\?\n', ' ', 'g') -    let text = substitute(text, '\m\s\{2,}', ' ', 'g') -    let text = substitute(text, '\m^\s\+', '', '') -    let text = substitute(text, '\m\s\+$', '', '') -    let a:entry.text = text -endfunction - -let g:neomake#postprocess#remove_duplicates = {} -function! g:neomake#postprocess#remove_duplicates.fn(entry) abort -    if exists('self._seen_entries') -        if index(self._seen_entries, a:entry) != -1 -            let a:entry.valid = -1 -        else -            call add(self._seen_entries, a:entry) -        endif -    else -        let self._seen_entries = [a:entry] -    endif -endfunction -lockvar g:neomake#postprocess#remove_duplicates  " Needs to be copied. -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/quickfix.vim b/.vim/autoload/neomake/quickfix.vim deleted file mode 100644 index 8e22836..0000000 --- a/.vim/autoload/neomake/quickfix.vim +++ /dev/null @@ -1,363 +0,0 @@ -" vim: ts=4 sw=4 et -scriptencoding utf-8 - -let s:is_enabled = 0 - -let s:match_base_priority = 10 - -" args: a:1: force enabling?  (used in tests and for VimEnter callback) -function! neomake#quickfix#enable(...) abort -    if has('vim_starting') && !(a:0 && a:1) -        " Delay enabling for our FileType autocommand to happen as late as -        " possible, since placing signs triggers a redraw, and together with -        " vim-qf_resize this causes flicker. -        " https://github.com/vim/vim/issues/2763 -        augroup neomake_qf -            autocmd! -            autocmd VimEnter * call neomake#quickfix#enable(1) -        augroup END -        return -    endif -    call neomake#log#debug('enabling custom quickfix list handling.') -    let s:is_enabled = 1 -    augroup neomake_qf -        autocmd! -        autocmd FileType qf call neomake#quickfix#FormatQuickfix() -    augroup END -    if &filetype ==# 'qf' -        call neomake#quickfix#FormatQuickfix() -    endif -endfunction - -function! neomake#quickfix#disable() abort -    call neomake#log#debug('disabling custom quickfix list handling.') -    let s:is_enabled = 0 -    if &filetype ==# 'qf' -        call neomake#quickfix#FormatQuickfix() -    endif -    if exists('#neomake_qf') -        autocmd! neomake_qf -        augroup! neomake_qf -    endif -endfunction - -function! neomake#quickfix#is_enabled() abort -    return s:is_enabled -endfunction - -function! s:cursor_moved() abort -    if b:neomake_start_col -        if col('.') <= b:neomake_start_col + 1 -            call cursor(line('.'), b:neomake_start_col + 2) -        endif - -        if exists('w:_neomake_cursor_match_id') -            silent! call matchdelete(w:_neomake_cursor_match_id) -        endif -        if exists('*matchaddpos') -            let w:_neomake_cursor_match_id = matchaddpos('neomakeCursorListNr', -                        \ [[line('.'), (b:neomake_start_col - b:neomake_number_len) + 2, b:neomake_number_len]], -                        \ s:match_base_priority+3) -        else -            let w:_neomake_cursor_match_id = matchadd('neomakeCursorListNr', -                        \  '\%' . line('.') . 'c' -                        \. '\%' . ((b:neomake_start_col - b:neomake_number_len) + 2) . 'c' -                        \. '.\{' . b:neomake_number_len . '}', -                        \ s:match_base_priority+3) -        endif -    endif -endfunction - -function! s:set_qf_lines(lines) abort -    let ul = &l:undolevels -    setlocal modifiable nonumber undolevels=-1 - -    call setline(1, a:lines) - -    let &l:undolevels = ul -    setlocal nomodifiable nomodified -endfunction - -function! s:clean_qf_annotations() abort -    call neomake#log#debug('cleaning qf annotations.', {'bufnr': bufnr('%')}) -    if exists('b:_neomake_qf_orig_lines') -        call s:set_qf_lines(b:_neomake_qf_orig_lines) -        unlet b:_neomake_qf_orig_lines -    endif -    unlet b:neomake_qf -    augroup neomake_qf -        autocmd! * <buffer> -    augroup END - -    call s:clean_matches() -endfunction - -function! s:clean_matches() abort -    if exists('w:_neomake_maker_match_id') -        silent! call matchdelete(w:_neomake_maker_match_id) -    endif -    if exists('w:_neomake_gutter_match_id') -        silent! call matchdelete(w:_neomake_gutter_match_id) -    endif -    if exists('w:_neomake_bufname_match_id') -        silent! call matchdelete(w:_neomake_bufname_match_id) -    endif -    if exists('w:_neomake_cursor_match_id') -        silent! call matchdelete(w:_neomake_cursor_match_id) -    endif -    call neomake#signs#ResetFile(bufnr('%')) -endfunction - -function! neomake#quickfix#FormatQuickfix() abort -    let buf = bufnr('%') -    if !s:is_enabled || &filetype !=# 'qf' -        if exists('b:neomake_qf') -            call s:clean_qf_annotations() -        endif -        return -    endif - -    let src_buf = 0 -    if has('patch-7.4.2215') -        let is_loclist = getwininfo(win_getid())[0].loclist -        if is_loclist -            let qflist = getloclist(0) -        else -            let qflist = getqflist() -        endif -    else -        let is_loclist = 1 -        let qflist = getloclist(0) -        if empty(qflist) -            let is_loclist = 0 -            let qflist = getqflist() -        endif -    endif - -    if empty(qflist) || qflist[0].text !~# ' nmcfg:{.\{-}}$' -        if exists('b:neomake_qf') -            call neomake#log#debug('Resetting custom qf for non-Neomake change.') -            call s:clean_qf_annotations() -        endif -        return -    endif - -    if is_loclist -        let b:neomake_qf = 'file' -        let src_buf = qflist[0].bufnr -    else -        let b:neomake_qf = 'project' -    endif - -    let lines = [] -    let signs = [] -    let i = 0 -    let lnum_width = 0 -    let col_width = 0 -    let maker_width = 0 -    let nmcfg = {} -    let makers = {} - -    for item in qflist -        " Look for marker at end of entry. -        if item.text[-1:] ==# '}' -            let idx = strridx(item.text, ' nmcfg:{') -            if idx != -1 -                let config = item.text[idx+7:] -                try -                    let nmcfg = eval(config) -                    if !has_key(makers, nmcfg.name) -                        let makers[nmcfg.name] = 0 -                    endif -                    let item.text = idx == 0 ? '' : item.text[:(idx-1)] -                catch -                    call neomake#log#exception(printf( -                                \ 'Error when evaluating nmcfg (%s): %s.', -                                \ config, v:exception)) -                endtry -            endif -        endif - -        " Count entries. -        if !empty(nmcfg) -            let makers[nmcfg.name] += 1 -        endif - -        let item.maker_name = get(nmcfg, 'short', '????') -        let maker_width = max([len(item.maker_name), maker_width]) - -        if item.lnum -            let lnum_width = max([len(item.lnum), lnum_width]) -            let col_width = max([len(item.col), col_width]) -        endif - -        let i += 1 -    endfor - -    let syntax = keys(makers) -    if src_buf -        for ft in split(neomake#compat#getbufvar(src_buf, '&filetype', ''), '\.') -            if !empty(ft) && index(syntax, ft) == -1 -                call add(syntax, ft) -            endif -        endfor -    endif -    if get(b:, '_neomake_cur_syntax', []) != syntax -        runtime! syntax/neomake/qf.vim -        for name in syntax -            execute 'runtime! syntax/neomake/'.name.'.vim ' -                        \  . 'syntax/neomake/'.name.'/*.vim' -        endfor -        let b:_neomake_cur_syntax = syntax -    endif - -    if maker_width + lnum_width + col_width > 0 -        let b:neomake_start_col = maker_width + lnum_width + col_width + 2 -        let b:neomake_number_len = lnum_width + col_width + 2 -        let blank_col = repeat(' ', lnum_width + col_width + 1) -    else -        let b:neomake_start_col = 0 -        let b:neomake_number_len = 0 -        let blank_col = '' -    endif - -    " Count number of different buffers and cache their names. -    let buffers = neomake#compat#uniq(sort( -                \ filter(map(copy(qflist), 'v:val.bufnr'), 'v:val != 0'))) -    let buffer_names = {} -    if len(buffers) > 1 -        for b in buffers -            let bufname = bufname(b) -            if empty(bufname) -                let bufname = 'buf:'.b -            else -                let bufname = fnamemodify(bufname, ':t') -                if len(bufname) > 15 -                    let bufname = bufname[0:13].'…' -                endif -            endif -            let buffer_names[b] = bufname -        endfor -    endif - -    let i = 1 -    let last_bufnr = -1 -    for item in qflist -        if item.lnum -            call add(signs, {'lnum': i, 'bufnr': buf, 'type': item.type}) -        endif -        let i += 1 - -        let text = item.text -        if item.bufnr != 0 && !empty(buffer_names) -            if last_bufnr != item.bufnr -                let text = printf('[%s] %s', buffer_names[item.bufnr], text) -                let last_bufnr = item.bufnr -            endif -        endif - -        if !item.lnum -            call add(lines, printf('%*s %s %s', -                        \ maker_width, item.maker_name, -                        \ blank_col, text)) -        else -            call add(lines, printf('%*s %*s:%*s %s', -                        \ maker_width, item.maker_name, -                        \ lnum_width, item.lnum, -                        \ col_width, item.col ? item.col : '-', -                        \ text)) -        endif -    endfor - -    if !exists('b:_neomake_qf_orig_lines') -        let b:_neomake_qf_orig_lines = getbufline('%', 1, '$') -    endif -    call s:set_qf_lines(lines) - -    if exists('+breakindent') -        " Keeps the text aligned with the fake gutter. -        setlocal breakindent linebreak -        let &breakindentopt = 'shift:'.(b:neomake_start_col + 1) -    endif - -    call neomake#signs#Reset(buf, 'file') -    call neomake#signs#PlaceSigns(buf, signs, 'file') - -    call s:add_window_matches(maker_width) - -    augroup neomake_qf -        autocmd! * <buffer> -        autocmd CursorMoved <buffer> call s:cursor_moved() - -        " Annotate in new window, e.g. with "tab sp". -        " It keeps the syntax there, so should also have the rest. -        " This happens on Neovim already through CursorMoved being invoked -        " always then. -        if exists('##WinNew') -            exe 'autocmd WinNew <buffer> call s:add_window_matches('.maker_width.')' -        endif - -        " Clear matches when opening another buffer in the same window, with -        " the original window/buffer still being visible (e.g. in another -        " tab). -        autocmd BufLeave <buffer> call s:on_bufleave() -    augroup END - -    " Set title. -    " Fallback without patch-7.4.2200, fix for without 8.0.1831. -    if !has('patch-7.4.2200') || !exists('w:quickfix_title') || w:quickfix_title[0] ==# ':' -        let maker_info = [] -        for [maker, c] in items(makers) -            call add(maker_info, maker.'('.c.')') -        endfor -        let maker_info_str = join(maker_info, ', ') -        if is_loclist -            let prefix = 'file' -        else -            let prefix = 'project' -        endif -        let w:quickfix_title = neomake#list#get_title(prefix, src_buf, maker_info_str) -    endif -endfunction - -function! s:on_bufleave() abort -    let s:left_winnr = winnr() -    augroup neomake_qf -        autocmd BufEnter * call s:on_bufenter_after_bufleave() -    augroup END -endfunction - -function! s:on_bufenter_after_bufleave() abort -    if winnr() == s:left_winnr -        call s:clean_matches() -    endif -    unlet s:left_winnr -    augroup neomake_qf -        autocmd! BufEnter -    augroup END -endfunction - -function! s:add_window_matches(maker_width) abort -    if !b:neomake_start_col -        return -    endif -    if exists('w:_neomake_maker_match_id') -        silent! call matchdelete(w:_neomake_maker_match_id) -    endif -    let w:_neomake_maker_match_id = matchadd('neomakeMakerName', -                \ '.*\%<'.(a:maker_width + 1).'c', -                \ s:match_base_priority+1) -    if exists('w:_neomake_gutter_match_id') -        silent! call matchdelete(w:_neomake_gutter_match_id) -    endif -    let w:_neomake_gutter_match_id = matchadd('neomakeListNr', -                \ '\%>'.(a:maker_width).'c' -                \ .'.*\%<'.(b:neomake_start_col + 2).'c', -                \ s:match_base_priority+2) -    if exists('w:_neomake_bufname_match_id') -        silent! call matchdelete(w:_neomake_bufname_match_id) -    endif -    let w:_neomake_bufname_match_id = matchadd('neomakeBufferName', -                \ '.*\%<'.(a:maker_width + 1).'c', -                \ s:match_base_priority+3) -endfunction diff --git a/.vim/autoload/neomake/setup.vim b/.vim/autoload/neomake/setup.vim deleted file mode 100644 index e0c5298..0000000 --- a/.vim/autoload/neomake/setup.vim +++ /dev/null @@ -1,37 +0,0 @@ -if has('signs') -    let g:neomake_place_signs = get(g:, 'neomake_place_signs', 1) -else -    let g:neomake_place_signs = 0 -    lockvar g:neomake_place_signs -endif - -function! neomake#setup#define_highlights() abort -    if g:neomake_place_signs -        call neomake#signs#DefineHighlights() -    endif -    if get(g:, 'neomake_highlight_columns', 1) -                \ || get(g:, 'neomake_highlight_lines', 0) -        call neomake#highlights#DefineHighlights() -    endif -endfunction - -function! neomake#setup#setup_autocmds() abort -    augroup neomake -        au! -        if !exists('*nvim_buf_add_highlight') -            autocmd BufEnter * call neomake#highlights#ShowHighlights() -        endif -        if has('timers') -            autocmd CursorMoved * call neomake#CursorMovedDelayed() -            " Force-redraw display of current error after resizing Vim, which appears -            " to clear the previously echoed error. -            autocmd VimResized * call timer_start(100, function('neomake#EchoCurrentError')) -        else -            autocmd CursorHold,CursorHoldI * call neomake#CursorMoved() -        endif -        autocmd VimLeave * call neomake#VimLeave() -        autocmd ColorScheme * call neomake#setup#define_highlights() -    augroup END -endfunction - -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/signs.vim b/.vim/autoload/neomake/signs.vim deleted file mode 100644 index fb96934..0000000 --- a/.vim/autoload/neomake/signs.vim +++ /dev/null @@ -1,289 +0,0 @@ -" vim: ts=4 sw=4 et -scriptencoding utf-8 - -if !has('signs') -    call neomake#log#error('Trying to load signs.vim, without +signs.') -    finish -endif - -let s:base_sign_id = 5000 -let s:placed_signs = {'project': {}, 'file': {}} -let s:last_placed_signs = {'project': {}, 'file': {}} - -exe 'sign define neomake_invisible' - -" Reset signs placed by a :Neomake! call -function! neomake#signs#ResetProject() abort -    for buf in keys(s:placed_signs.project) -        call neomake#signs#Reset(buf, 'project') -        call neomake#signs#CleanOldSigns(buf, 'project') -    endfor -endfunction - -" Reset signs placed by a :Neomake call in a buffer -function! neomake#signs#ResetFile(bufnr) abort -    call neomake#signs#Reset(a:bufnr, 'file') -    call neomake#signs#CleanOldSigns(a:bufnr, 'file') -endfunction - -function! neomake#signs#Reset(bufnr, type) abort -    if has_key(s:placed_signs[a:type], a:bufnr) -        " Clean any lingering, already retired signs. -        call neomake#signs#CleanOldSigns(a:bufnr, a:type) -        let s:last_placed_signs[a:type][a:bufnr] = s:placed_signs[a:type][a:bufnr] -        unlet s:placed_signs[a:type][a:bufnr] -    endif -endfunction - -let s:sign_order = {'neomake_file_err': 0, 'neomake_file_warn': 1, -                 \  'neomake_file_info': 2, 'neomake_file_msg': 3, -                 \  'neomake_project_err': 4, 'neomake_project_warn': 5, -                 \  'neomake_project_info': 6, 'neomake_project_msg': 7} - -" Get the defined signs for a:bufnr. -" It returns a dictionary with line numbers as keys. -" If there are multiple entries for a line only the first (visible) entry is -" returned. -function! neomake#signs#by_lnum(bufnr) abort -    let bufnr = a:bufnr + 0 -    if !bufexists(bufnr) -        return {} -    endif - -    let r = {} -    if exists('*sign_getplaced')  " patch-8.1.0614 -        for sign in sign_getplaced(bufnr)[0].signs -            if has_key(r, sign.lnum) -                continue -            endif -            let r[sign.lnum] = [sign.id, sign.name] -        endfor -        return r -    endif - -    let signs_output = split(neomake#utils#redir('sign place buffer='.a:bufnr), '\n') - -    " Originally via ALE. -    " Matches output like : -    " line=4  id=1  name=neomake_err -    " строка=1  id=1000001  имя=neomake_err -    " 行=1  識別子=1000001  名前=neomake_err -    " línea=12 id=1000001 nombre=neomake_err -    " riga=1 id=1000001, nome=neomake_err -    for line in reverse(signs_output[2:]) -        " XXX: does not really match "name=" -        "      (broken by patch-8.1.0614, but handled above) -        let sign_type = line[strridx(line, '=')+1:] -        if sign_type[0:7] ==# 'neomake_' -            let lnum_idx = stridx(line, '=') -            let lnum = line[lnum_idx+1:] + 0 -            if lnum -                let sign_id = line[stridx(line, '=', lnum_idx+1)+1:] + 0 -                let r[lnum] = [sign_id, sign_type] -            endif -        endif -    endfor -    return r -endfunction - -let s:entry_to_sign_type = {'W': 'warn', 'I': 'info', 'M': 'msg'} - -" Place signs for list a:entries in a:bufnr for a:type ('file' or 'project'). -" List items in a:entries need to have a "type" and "lnum" (non-zero) property. -function! neomake#signs#PlaceSigns(bufnr, entries, type) abort -    " Query the list of currently placed signs. -    " This allows to cope with movements, e.g. when lines were added. -    let placed_signs = neomake#signs#by_lnum(a:bufnr) - -    let entries_by_linenr = {} -    for entry in a:entries -        let lnum = entry.lnum -        let sign_type = printf('neomake_%s_%s', -                    \ a:type, -                    \ get(s:entry_to_sign_type, toupper(entry.type), 'err')) -        if !exists('entries_by_linenr[lnum]') -                    \ || s:sign_order[entries_by_linenr[lnum]] -                    \    > s:sign_order[sign_type] -            let entries_by_linenr[lnum] = sign_type -        endif -    endfor - -    let place_new = [] -    let log_context = {'bufnr': a:bufnr} -    let count_reused = 0 -    for [lnum, sign_type] in items(entries_by_linenr) -        let existing_sign = get(placed_signs, lnum, []) -        if empty(existing_sign) || existing_sign[1] !~# '^neomake_'.a:type.'_' -            call add(place_new, [lnum, sign_type]) -            continue -        endif - -        let sign_id = existing_sign[0] -        if existing_sign[1] == sign_type -            let count_reused += 1 -            " call neomake#log#debug(printf( -            "             \ 'Reusing sign: id=%d, type=%s, lnum=%d.', -            "             \ sign_id, existing_sign[1], lnum), log_context) -        else -            let cmd = printf('sign place %s name=%s buffer=%d', -                        \ sign_id, sign_type, a:bufnr) -            call neomake#log#debug('Upgrading sign for lnum='.lnum.': '.cmd.'.', log_context) -            exe cmd -        endif - -        " Keep this sign from being cleaned. -        if exists('s:last_placed_signs[a:type][a:bufnr][sign_id]') -            unlet s:last_placed_signs[a:type][a:bufnr][sign_id] -        endif -    endfor -    if count_reused -        call neomake#log#debug(printf('Reused %d signs.', count_reused), log_context) -    endif - -    for [lnum, sign_type] in place_new -        if !exists('next_sign_id') -            if !empty(placed_signs) -                let next_sign_id = max(map(values(copy(placed_signs)), 'v:val[0]')) + 1 -            else -                let next_sign_id = s:base_sign_id -            endif -        else -            let next_sign_id += 1 -        endif -        let cmd = 'sign place '.next_sign_id.' line='.lnum. -                    \ ' name='.sign_type. -                    \ ' buffer='.a:bufnr -        call neomake#log#debug('Placing sign: '.cmd.'.', log_context) -        let placed_signs[lnum] = [next_sign_id, sign_type] -        exe cmd -    endfor - -    let s:placed_signs[a:type][a:bufnr] = {} -    for [lnum, sign_info] in items(placed_signs) -        let s:placed_signs[a:type][a:bufnr][sign_info[0]] = sign_info[1] -    endfor -endfunction - -function! neomake#signs#CleanAllOldSigns(type) abort -    call neomake#log#debug_obj('Removing signs', s:last_placed_signs) -    for buf in keys(s:last_placed_signs[a:type]) -        call neomake#signs#CleanOldSigns(buf, a:type) -    endfor -endfunction - -" type may be either 'file' or 'project' -function! neomake#signs#CleanOldSigns(bufnr, type) abort -    if !has_key(s:last_placed_signs[a:type], a:bufnr) -        return -    endif -    let placed_signs = s:last_placed_signs[a:type][a:bufnr] -    unlet s:last_placed_signs[a:type][a:bufnr] -    if bufexists(+a:bufnr) -        call neomake#log#debug(printf('Cleaning %d old signs.', len(placed_signs)), {'bufnr': a:bufnr}) -        for sign_id in keys(placed_signs) -            exe 'sign unplace '.sign_id.' buffer='.a:bufnr -            if has_key(s:placed_signs[a:type], a:bufnr) -                if has_key(s:placed_signs[a:type][a:bufnr], sign_id) -                    unlet s:placed_signs[a:type][a:bufnr][sign_id] -                endif -            endif -        endfor -    else -        call neomake#log#debug_obj('Skipped cleaning of old signs in non-existing buffer '.a:bufnr, placed_signs) -    endif -endfunction - -function! neomake#signs#RedefineSign(name, opts) abort -    let sign_define = 'sign define '.a:name -    for attr in keys(a:opts) -        let sign_define .= ' '.attr.'='.a:opts[attr] -    endfor -    call neomake#log#debug(printf('Defining sign: %s.', sign_define)) -    exe sign_define -endfunction - -function! neomake#signs#RedefineErrorSign(...) abort -    let default_opts = {'text': '✖', 'texthl': 'NeomakeErrorSign'} -    let opts = {} -    if a:0 -        call extend(opts, a:1) -    elseif exists('g:neomake_error_sign') -        call extend(opts, g:neomake_error_sign) -    endif -    call extend(opts, default_opts, 'keep') -    call neomake#signs#RedefineSign('neomake_file_err', opts) -    call neomake#signs#RedefineSign('neomake_project_err', opts) -endfunction - -function! neomake#signs#RedefineWarningSign(...) abort -    let default_opts = {'text': '‼', 'texthl': 'NeomakeWarningSign'} -    let opts = {} -    if a:0 -        call extend(opts, a:1) -    elseif exists('g:neomake_warning_sign') -        call extend(opts, g:neomake_warning_sign) -    endif -    call extend(opts, default_opts, 'keep') -    call neomake#signs#RedefineSign('neomake_file_warn', opts) -    call neomake#signs#RedefineSign('neomake_project_warn', opts) -endfunction - -function! neomake#signs#RedefineMessageSign(...) abort -    let default_opts = {'text': '➤', 'texthl': 'NeomakeMessageSign'} -    let opts = {} -    if a:0 -        call extend(opts, a:1) -    elseif exists('g:neomake_message_sign') -        call extend(opts, g:neomake_message_sign) -    endif -    call extend(opts, default_opts, 'keep') -    call neomake#signs#RedefineSign('neomake_file_msg', opts) -    call neomake#signs#RedefineSign('neomake_project_msg', opts) -endfunction - -function! neomake#signs#RedefineInfoSign(...) abort -    let default_opts = {'text': 'ℹ', 'texthl': 'NeomakeInfoSign'} -    let opts = {} -    if a:0 -        call extend(opts, a:1) -    elseif exists('g:neomake_info_sign') -        call extend(opts, g:neomake_info_sign) -    endif -    call extend(opts, default_opts, 'keep') -    call neomake#signs#RedefineSign('neomake_file_info', opts) -    call neomake#signs#RedefineSign('neomake_project_info', opts) -endfunction - -function! neomake#signs#DefineHighlights() abort -    " Use background from SignColumn. -    let ctermbg = neomake#utils#GetHighlight('SignColumn', 'bg', 'Normal') -    let guibg = neomake#utils#GetHighlight('SignColumn', 'bg#', 'Normal') - -    " Define NeomakeErrorSign, NeomakeWarningSign etc. -    call neomake#utils#define_derived_highlights('Neomake%sSign', [ctermbg, guibg]) -endfunction - -function! neomake#signs#DefineSigns() abort -    call neomake#signs#RedefineErrorSign() -    call neomake#signs#RedefineWarningSign() -    call neomake#signs#RedefineInfoSign() -    call neomake#signs#RedefineMessageSign() -endfunction - -function! s:wipe_signs(bufnr) abort -    for type in ['file', 'project'] -        if has_key(s:placed_signs[type], a:bufnr) -            unlet s:placed_signs[type][a:bufnr] -        endif -        if has_key(s:last_placed_signs[type], a:bufnr) -            unlet s:last_placed_signs[type][a:bufnr] -        endif -    endfor -endfunction -augroup neomake_signs -    au! -    autocmd BufWipeout * call s:wipe_signs(expand('<abuf>')) -augroup END - -call neomake#signs#DefineSigns() -call neomake#signs#DefineHighlights() diff --git a/.vim/autoload/neomake/statusline.vim b/.vim/autoload/neomake/statusline.vim deleted file mode 100644 index 14fb543..0000000 --- a/.vim/autoload/neomake/statusline.vim +++ /dev/null @@ -1,423 +0,0 @@ -scriptencoding utf-8 - -unlockvar s:unknown_counts -let s:unknown_counts = {} -lockvar s:unknown_counts - -let s:counts = {} - -" Key: bufnr, Value: dict with cache keys. -let s:cache = {} - -" For debugging. -let g:neomake#statusline#_s = s: - -function! s:clear_cache(bufnr) abort -    if has_key(s:cache, a:bufnr) -        unlet s:cache[a:bufnr] -    endif -endfunction - -function! neomake#statusline#clear_cache() abort -    let s:cache = {} -endfunction - -function! s:incCount(counts, item, buf) abort -    if !empty(a:item.type) && (!a:buf || a:item.bufnr ==# a:buf) -        let type = toupper(a:item.type) -        let a:counts[type] = get(a:counts, type, 0) + 1 -        if a:buf -            call s:clear_cache(a:buf) -        else -            let s:cache = {} -        endif -        return 1 -    endif -    return 0 -endfunction - -function! neomake#statusline#make_finished(make_info) abort -    if a:make_info.options.file_mode -        let bufnr = a:make_info.options.bufnr -        if !empty(a:make_info.finished_jobs) && !has_key(s:counts, bufnr) -            let s:counts[bufnr] = {} -        endif -        call s:clear_cache(bufnr) -    else -        let s:cache = {} -        if !empty(a:make_info.finished_jobs) && !has_key(s:counts, 'project') -            let s:counts['project'] = {} -        endif -    endif - -    " Trigger redraw of all statuslines. -    " TODO: only do this if some relevant formats are used?! -    redrawstatus! -endfunction - -function! neomake#statusline#ResetCountsForBuf(...) abort -    let bufnr = a:0 ? +a:1 : bufnr('%') -    call s:clear_cache(bufnr) -    if has_key(s:counts, bufnr) -        let r = s:counts[bufnr] != {} -        unlet s:counts[bufnr] -        if r -            call neomake#utils#hook('NeomakeCountsChanged', { -                        \ 'reset': 1, 'file_mode': 1, 'bufnr': bufnr}) -        endif -        return r -    endif -    return 0 -endfunction - -function! neomake#statusline#ResetCountsForProject(...) abort -    let s:cache = {} -    if !has_key(s:counts, 'project') -        return 0 -    endif -    let r = s:counts['project'] != {} -    let bufnr = bufnr('%') -    unlet s:counts['project'] -    if r -        call neomake#utils#hook('NeomakeCountsChanged', { -                    \ 'reset': 1, 'file_mode': 0, 'bufnr': bufnr}) -    endif -    return r -endfunction - -function! neomake#statusline#ResetCounts() abort -    let r = neomake#statusline#ResetCountsForProject() -    for bufnr in keys(s:counts) -        let r = neomake#statusline#ResetCountsForBuf(bufnr) || r -    endfor -    let s:counts = {} -    return r -endfunction - -function! neomake#statusline#AddLoclistCount(buf, item) abort -    let s:counts[a:buf] = get(s:counts, a:buf, {}) -    return s:incCount(s:counts[a:buf], a:item, a:buf) -endfunction - -function! neomake#statusline#AddQflistCount(item) abort -    let s:counts['project'] = get(s:counts, 'project', {}) -    return s:incCount(s:counts['project'], a:item, 0) -endfunction - -function! neomake#statusline#LoclistCounts(...) abort -    let buf = a:0 ? a:1 : bufnr('%') -    if buf is# 'all' -        return s:counts -    endif -    return get(s:counts, buf, {}) -endfunction - -function! neomake#statusline#QflistCounts() abort -    return get(s:counts, 'project', s:unknown_counts) -endfunction - -function! s:showErrWarning(counts, prefix) abort -    let w = get(a:counts, 'W', 0) -    let e = get(a:counts, 'E', 0) -    if w || e -        let result = a:prefix -        if e -            let result .= 'E:'.e -        endif -        if w -            if e -                let result .= ',' -            endif -            let result .= 'W:'.w -        endif -        return result -    else -        return '' -    endif -endfunction - -function! neomake#statusline#LoclistStatus(...) abort -    return s:showErrWarning(neomake#statusline#LoclistCounts(), a:0 ? a:1 : '') -endfunction - -function! neomake#statusline#QflistStatus(...) abort -    return s:showErrWarning(neomake#statusline#QflistCounts(), a:0 ? a:1 : '') -endfunction - -" Get counts for a bufnr or 'project'. -" Returns all counts when used without arguments. -function! neomake#statusline#get_counts(...) abort -    if a:0 -        return get(s:counts, a:1, s:unknown_counts) -    endif -    return s:counts -endfunction - - -let s:formatter = { -            \ 'args': {}, -            \ } -function! s:formatter.running_job_names() abort -    let jobs = get(self.args, 'running_jobs', s:running_jobs(self.args.bufnr)) -    let sep = get(self.args, 'running_jobs_separator', ', ') -    let format_running_job_file = get(self.args, 'format_running_job_file', '%s') -    let format_running_job_project = get(self.args, 'format_running_job_project', '%s!') -    let formatted = [] -    for job in jobs -        if job.file_mode -            call add(formatted, printf(format_running_job_file, job.name)) -        else -            call add(formatted, printf(format_running_job_project, job.name)) -        endif -    endfor -    return join(formatted, sep) -endfunction - -function! s:formatter._substitute(m) abort -    if has_key(self.args, a:m) -        return self.args[a:m] -    endif -    if !has_key(self, a:m) -        let self.errors += [printf('Unknown statusline format: {{%s}}.', a:m)] -        return '{{'.a:m.'}}' -    endif -    try -        return call(self[a:m], [], self) -    catch -        call neomake#log#error(printf( -                    \ 'Error while formatting statusline: %s.', v:exception)) -    endtry -endfunction - -function! s:formatter.format(f, args) abort -    if empty(a:f) -        return a:f -    endif -    let self.args = a:args -    let self.errors = [] -    let r = substitute(a:f, '{{\(.\{-}\)}}', '\=self._substitute(submatch(1))', 'g') -    if !empty(self.errors) -        call neomake#log#error(printf( -                    \ 'Error%s when formatting %s: %s', -                    \ len(self.errors) > 1 ? 's' : '', -                    \ string(a:f), join(self.errors, ', '))) -    endif -    return r -endfunction - - -function! s:running_jobs(bufnr) abort -    return filter(copy(neomake#GetJobs()), -                \ "v:val.bufnr == a:bufnr && !get(v:val, 'canceled', 0)") -endfunction - -function! s:format_running(format_running, options, bufnr, running_jobs) abort -    let args = {'bufnr': a:bufnr, 'running_jobs': a:running_jobs} -    for opt in ['running_jobs_separator', 'format_running_job_project', 'format_running_job_file'] -        if has_key(a:options, opt) -            let args[opt] = a:options[opt] -        endif -    endfor -    return s:formatter.format(a:format_running, args) -endfunction - -function! neomake#statusline#get_status(bufnr, options) abort -    let filemode_jobs = [] -    let project_jobs = [] -    let format_running = get(a:options, 'format_running', '… ({{running_job_names}})') -    if format_running isnot 0 -        let running_jobs = s:running_jobs(a:bufnr) -        if !empty(running_jobs) -            for j in running_jobs -                if j.file_mode -                    let filemode_jobs += [j] -                else -                    let project_jobs += [j] -                endif -            endfor -        endif -    endif - -    let r_loclist = '' -    let r_quickfix = '' - -    let use_highlights_with_defaults = get(a:options, 'use_highlights_with_defaults', 1) - -    " Location list counts. -    let loclist_counts = get(s:counts, a:bufnr, s:unknown_counts) -    if !empty(filemode_jobs) -        let r_loclist = s:format_running(format_running, a:options, a:bufnr, filemode_jobs) -    elseif empty(loclist_counts) -        if loclist_counts is s:unknown_counts -            let format_unknown = get(a:options, 'format_loclist_unknown', '?') -            let r_loclist = s:formatter.format(format_unknown, {'bufnr': a:bufnr}) -        else -            let format_ok = get(a:options, 'format_loclist_ok', use_highlights_with_defaults ? '%#NeomakeStatusGood#✓%#NeomakeStatReset#' : '✓') -            let r_loclist = s:formatter.format(format_ok, {'bufnr': a:bufnr}) -        endif -    else -        let format_loclist = get(a:options, 'format_loclist_issues', -                    \ use_highlights_with_defaults ? '%s%%#NeomakeStatReset#' : '%s') -        if !empty(format_loclist) -            let loclist = '' -            for [type, c] in items(loclist_counts) -                if has_key(a:options, 'format_loclist_type_'.type) -                    let format = a:options['format_loclist_type_'.type] -                elseif has_key(a:options, 'format_loclist_type_default') -                    let format = a:options['format_loclist_type_default'] -                else -                    let hl = '' -                    if use_highlights_with_defaults -                        if hlexists('NeomakeStatColorType'.type) -                            let hl = '%#NeomakeStatColorType{{type}}#' -                        elseif hlexists('NeomakeStatColorDefault') -                            let hl = '%#NeomakeStatColorDefault#' -                        endif -                    endif -                    let format = hl.' {{type}}:{{count}} ' -                endif -                let loclist .= s:formatter.format(format, { -                            \ 'bufnr': a:bufnr, -                            \ 'count': c, -                            \ 'type': type}) -            endfor -            let r_loclist = printf(format_loclist, loclist) -        endif -    endif - -    " Quickfix counts. -    let qflist_counts = get(s:counts, 'project', s:unknown_counts) -    if !empty(project_jobs) -        let r_quickfix = s:format_running(format_running, a:options, a:bufnr, project_jobs) -    elseif empty(qflist_counts) -        let format_ok = get(a:options, 'format_quickfix_ok', '') -        if !empty(format_ok) -            let r_quickfix = s:formatter.format(format_ok, {'bufnr': a:bufnr}) -        endif -    else -        let format_quickfix = get(a:options, 'format_quickfix_issues', -                    \ use_highlights_with_defaults ? '%s%%#NeomakeStatReset#' : '%s') -        if !empty(format_quickfix) -            let quickfix = '' -            for [type, c] in items(qflist_counts) -                if has_key(a:options, 'format_quickfix_type_'.type) -                    let format = a:options['format_quickfix_type_'.type] -                elseif has_key(a:options, 'format_quickfix_type_default') -                    let format = a:options['format_quickfix_type_default'] -                else -                    let hl = '' -                    if use_highlights_with_defaults -                        if hlexists('NeomakeStatColorQuickfixType'.type) -                            let hl = '%#NeomakeStatColorQuickfixType{{type}}#' -                        elseif hlexists('NeomakeStatColorQuickfixDefault') -                            let hl = '%#NeomakeStatColorQuickfixDefault#' -                        endif -                    endif -                    let format = hl.' Q{{type}}:{{count}} ' -                endif -                if !empty(format) -                    let quickfix .= s:formatter.format(format, { -                                \ 'bufnr': a:bufnr, -                                \ 'count': c, -                                \ 'type': type}) -                endif -            endfor -            let r_quickfix = printf(format_quickfix, quickfix) -        endif -    endif - -    let format_lists = get(a:options, 'format_lists', '{{loclist}}{{lists_sep}}{{quickfix}}') -    if empty(r_loclist) || empty(r_quickfix) -        let lists_sep = '' -    else -        let lists_sep = get(a:options, 'lists_sep', ' ') -    endif -    return s:formatter.format(format_lists, {'loclist': r_loclist, 'quickfix': r_quickfix, 'lists_sep': lists_sep}) -endfunction - -function! neomake#statusline#get(bufnr, ...) abort -    let options = a:0 ? a:1 : {} -    let cache_key = string(options) -    if !exists('s:cache[a:bufnr][cache_key]') -        if !has_key(s:cache, a:bufnr) -            let s:cache[a:bufnr] = {} -        endif -        let bufnr = +a:bufnr - -        " TODO: needs to go into cache key then! -        if getbufvar(bufnr, '&filetype') ==# 'qf' -            let s:cache[bufnr][cache_key] = '' -        else -            let [disabled, src] = neomake#config#get_with_source('disabled', -1, {'bufnr': bufnr, 'log_source': 'statusline#get'}) -            if src ==# 'default' -                let disabled_scope = '' -            else -                let disabled_scope = src[0] -            endif -            if disabled != -1 && disabled -                " Automake Disabled -                let format_disabled_info = get(options, 'format_disabled_info', '{{disabled_scope}}-') -                let disabled_info = s:formatter.format(format_disabled_info, -                            \ {'disabled_scope': disabled_scope}) -                " Defaults to showing the disabled information (i.e. scope) -                let format_disabled = get(options, 'format_status_disabled', '{{disabled_info}} %s') -                let outer_format = s:formatter.format(format_disabled, {'disabled_info': disabled_info}) -            else -                " Automake Enabled -                " Defaults to showing only the status -                let format_enabled = get(options, 'format_status_enabled', '%s') -                let outer_format = s:formatter.format(format_enabled, {}) -            endif -            let format_status = get(options, 'format_status', '%s') -            let status = neomake#statusline#get_status(bufnr, options) - -            let r = printf(outer_format, printf(format_status, status)) - -            let s:cache[bufnr][cache_key] = r -        endif -    endif -    return s:cache[a:bufnr][cache_key] -endfunction - -" XXX: TODO: cleanup/doc?! -function! neomake#statusline#DefineHighlights() abort -    for suffix in ['', 'NC'] -        let hl = 'StatusLine'.suffix - -        " Highlight used for resetting color (used after counts). -        exe 'hi default link NeomakeStatReset'.suffix.' StatusLine'.suffix - -        " Uses "green" for NeomakeStatusGood, but the default with -        " NeomakeStatusGoodNC (since it might be underlined there, and should -        " not stand out in general there). -        exe 'hi default NeomakeStatusGood'.suffix -                    \ . ' ctermfg=' . (suffix ? neomake#utils#GetHighlight(hl, 'fg') : 'green') -                    \ . ' guifg=' . (suffix ? neomake#utils#GetHighlight(hl, 'fg#') : 'green') -                    \ . ' ctermbg='.neomake#utils#GetHighlight(hl, 'bg') -                    \ . ' guifg='.neomake#utils#GetHighlight(hl, 'bg#') -                    \ . (neomake#utils#GetHighlight(hl, 'underline') ? ' cterm=underline' : '') -                    \ . (neomake#utils#GetHighlight(hl, 'underline#') ? ' gui=underline' : '') -                    \ . (neomake#utils#GetHighlight(hl, 'reverse') ? ' cterm=reverse' : '') -                    \ . (neomake#utils#GetHighlight(hl, 'reverse#') ? ' gui=reverse' : '') -    endfor - -    " Default highlight for type counts. -    exe 'hi NeomakeStatColorDefault cterm=NONE ctermfg=white ctermbg=blue' -    hi link NeomakeStatColorQuickfixDefault NeomakeStatColorDefault - -    " Specific highlights for types.  Only used if defined. -    exe 'hi NeomakeStatColorTypeE cterm=NONE ctermfg=white ctermbg=red' -    hi link NeomakeStatColorQuickfixTypeE NeomakeStatColorTypeE - -    exe 'hi NeomakeStatColorTypeW cterm=NONE ctermfg=white ctermbg=yellow' -    hi link NeomakeStatColorQuickfixTypeW NeomakeStatColorTypeW -endfunction - -" Global augroup, gets configured always currently when autoloaded. -augroup neomake_statusline -    autocmd! -    autocmd BufWipeout * call s:clear_cache(expand('<abuf>')) -    autocmd ColorScheme * call neomake#statusline#DefineHighlights() -augroup END -call neomake#statusline#DefineHighlights() -" vim: ts=4 sw=4 et diff --git a/.vim/autoload/neomake/utils.vim b/.vim/autoload/neomake/utils.vim deleted file mode 100644 index 860fe41..0000000 --- a/.vim/autoload/neomake/utils.vim +++ /dev/null @@ -1,795 +0,0 @@ -" vim: ts=4 sw=4 et -scriptencoding utf-8 - -" Get verbosity, optionally based on jobinfo's make_id (a:1). -function! neomake#utils#get_verbosity(...) abort -    if a:0 && has_key(a:1, 'make_id') -        return neomake#GetMakeOptions(a:1.make_id).verbosity -    endif -    return get(g:, 'neomake_verbose', 1) + &verbose -endfunction - -function! neomake#utils#Stringify(obj) abort -    if type(a:obj) == type([]) -        let ls = map(copy(a:obj), 'neomake#utils#Stringify(v:val)') -        return '['.join(ls, ', ').']' -    elseif type(a:obj) == type({}) -        let ls = [] -        for [k, l:V] in items(neomake#utils#fix_self_ref(a:obj)) -            if type(V) == type(function('tr')) -                let fname = substitute(string(V), ', {\zs.*\ze})', '…', '') -                call add(ls, k.': '.fname) -            else -                call add(ls, k.': '.neomake#utils#Stringify(V)) -            endif -            unlet V  " vim73 -        endfor -        return '{'.join(ls, ', ').'}' -    elseif type(a:obj) == type(function('tr')) -        return string(a:obj) -    else -        return a:obj -    endif -endfunction - -function! neomake#utils#truncate_width(string, width) abort -    let pos = a:width -    while pos >= 0 -        let s = matchstr(a:string, '.\{,'.pos.'}', 0, 1) -        let w = strwidth(s) -        if w <= a:width -            return s -        endif -        let pos -= max([(w-a:width)/2, 1]) -    endwhile -    return '' -endfunction - -" This comes straight out of syntastic. -"print as much of a:msg as possible without "Press Enter" prompt appearing -function! neomake#utils#WideMessage(msg) abort " {{{2 -    let old_ruler = &ruler -    let old_showcmd = &showcmd - -    " Replace newlines (typically in the msg) with a single space.  This -    " might happen with writegood. -    let msg = substitute(a:msg, '\r\?\n', ' ', 'g') - -    "convert tabs to spaces so that the tabs count towards the window -    "width as the proper amount of characters -    let chunks = split(msg, "\t", 1) -    let msg = join(map(chunks[:-2], "v:val . repeat(' ', &tabstop - strwidth(v:val) % &tabstop)"), '') . chunks[-1] -    let msg = neomake#utils#truncate_width(msg, &columns-1) - -    set noruler noshowcmd -    redraw - -    call neomake#log#debug('WideMessage: echo '.msg.'.') -    echo msg - -    let &ruler = old_ruler -    let &showcmd = old_showcmd -endfunction " }}}2 - -" This comes straight out of syntastic. -function! neomake#utils#IsRunningWindows() abort -    return has('win32') || has('win64') -endfunction - -" Get directory/path separator. -function! neomake#utils#Slash() abort -    return (!exists('+shellslash') || &shellslash) ? '/' : '\' -endfunction - -function! neomake#utils#Exists(exe) abort -    " DEPRECATED: just use executable() directly. -    return executable(a:exe) -endfunction - -" Object used with neomake#utils#MakerFromCommand. -let s:maker_from_command = extend(copy(g:neomake#core#command_maker_base), { -            \ 'remove_invalid_entries': 0, -            \ }) -function! s:maker_from_command._get_argv(jobinfo) abort dict -    let fname = self._get_fname_for_args(a:jobinfo) -    let args = neomake#utils#ExpandArgs(self.args, a:jobinfo) -    if !empty(fname) -        if self.__command_is_string -            let fname = neomake#utils#shellescape(fname) -            let args[-1] .= ' '.fname -        else -            call add(args, fname) -        endif -    endif -    return neomake#compat#get_argv(self.exe, args, 1) -endfunction - -" Create a maker object for a given command. -" Args: command (string or list).  Gets wrapped in a shell in case it is a -"       string. -function! neomake#utils#MakerFromCommand(command) abort -    let maker = copy(s:maker_from_command) -    if type(a:command) == type('') -        let argv = split(&shell) + split(&shellcmdflag) -        let maker.exe = argv[0] -        let maker.args = argv[1:] + [a:command] -        let maker.__command_is_string = 1 -    else -        let maker.exe = a:command[0] -        let maker.args = a:command[1:] -        let maker.__command_is_string = 0 -    endif -    return maker -endfunction - -let s:super_ft_cache = {} -function! neomake#utils#GetSupersetOf(ft) abort -    if !has_key(s:super_ft_cache, a:ft) -        call neomake#utils#load_ft_makers(a:ft) -        let l:SupersetOf = 'neomake#makers#ft#'.a:ft.'#SupersetOf' -        if exists('*'.SupersetOf) -            let s:super_ft_cache[a:ft] = call(SupersetOf, []) -        else -            let s:super_ft_cache[a:ft] = '' -        endif -    endif -    return s:super_ft_cache[a:ft] -endfunction - -let s:loaded_ft_maker_runtime = [] -function! neomake#utils#load_ft_makers(ft) abort -    " Load ft maker, but only once (for performance reasons and to allow for -    " monkeypatching it in tests). -    if index(s:loaded_ft_maker_runtime, a:ft) == -1 -        if !exists('*neomake#makers#ft#'.a:ft.'#EnabledMakers') -            silent exe 'runtime! autoload/neomake/makers/ft/'.a:ft.'.vim' -        endif -        call add(s:loaded_ft_maker_runtime, a:ft) -    endif -endfunction - -let s:loaded_global_maker_runtime = 0 -function! neomake#utils#load_global_makers() abort -    " Load global makers, but only once (for performance reasons and to allow -    " for monkeypatching it in tests). -    if !s:loaded_global_maker_runtime -        exe 'runtime! autoload/neomake/makers/*.vim' -        let s:loaded_global_maker_runtime = 1 -    endif -endfunction - -function! neomake#utils#get_ft_confname(ft, ...) abort -    return substitute(a:ft, '\W', a:0 ? a:1 : '_', 'g') -endfunction - -" Resolve filetype a:ft into a list of filetypes suitable for config vars -" (i.e. 'foo.bar' => ['foo_bar', 'foo', 'bar']). -function! neomake#utils#get_config_fts(ft, ...) abort -    let delim = a:0 ? a:1 : '_' -    let cache_key = a:ft . delim -    if !has_key(s:cache_config_fts, cache_key) -        let r = [] -        let fts = split(a:ft, '\.') -        for ft in fts -            call add(r, ft) -            let super_ft = neomake#utils#GetSupersetOf(ft) -            while !empty(super_ft) -                if index(fts, super_ft) == -1 -                    call add(r, super_ft) -                endif -                let super_ft = neomake#utils#GetSupersetOf(super_ft) -            endwhile -        endfor -        if len(fts) > 1 -            call insert(r, a:ft, 0) -        endif -        let s:cache_config_fts[cache_key] = map(r, 'neomake#utils#get_ft_confname(v:val, delim)') -    endif -    return s:cache_config_fts[cache_key] -endfunction -let s:cache_config_fts = {} - -let s:unset = {}  " Sentinel. - -" Get a setting by key, based on filetypes, from the buffer or global -" namespace, defaulting to default. -" Use an empty bufnr ('') to ignore buffer-local settings. -function! neomake#utils#GetSetting(key, maker, default, ft, bufnr, ...) abort -    let maker_only = a:0 ? a:1 : 0 - -    " Check new-style config. -    if exists('g:neomake') || !empty(getbufvar(a:bufnr, 'neomake')) -        let context = {'ft': a:ft, 'maker': a:maker, 'bufnr': a:bufnr, 'maker_only': maker_only} -        let [l:Ret, source] = neomake#config#get_with_source(a:key, g:neomake#config#undefined, context) -        " Check old-style setting when source is the maker. -        if source ==# 'maker' && !maker_only -            let tmpmaker = {} -            if has_key(a:maker, 'name') -                let tmpmaker.name = a:maker.name -            endif -            let l:RetOld = s:get_oldstyle_setting(a:key, tmpmaker, s:unset, a:ft, a:bufnr, 1) -            if RetOld isnot# s:unset -                return RetOld -            endif -        endif -        if Ret isnot g:neomake#config#undefined -            return Ret -        endif -    endif - -    return s:get_oldstyle_setting(a:key, a:maker, a:default, a:ft, a:bufnr, maker_only) -endfunction - -function! s:get_oldstyle_setting(key, maker, default, ft, bufnr, maker_only) abort -    let maker_name = get(a:maker, 'name', '') -    if a:maker_only && empty(maker_name) -        if has_key(a:maker, a:key) -            return get(a:maker, a:key) -        endif -        return a:default -    endif - -    if !empty(a:ft) -        let fts = neomake#utils#get_config_fts(a:ft) + [''] -    else -        let fts = [''] -    endif -    for ft in fts -        let part = join(filter([ft, maker_name], '!empty(v:val)'), '_') -        if empty(part) -            break -        endif -        let config_var = 'neomake_'.part.'_'.a:key -        if a:bufnr isnot# '' -            let l:Bufcfgvar = neomake#compat#getbufvar(a:bufnr, config_var, s:unset) -            if Bufcfgvar isnot s:unset -                return copy(Bufcfgvar) -            endif -        endif -        if has_key(g:, config_var) -            return copy(get(g:, config_var)) -        endif -        unlet! Bufcfgvar  " vim73 -    endfor - -    if has_key(a:maker, a:key) -        return get(a:maker, a:key) -    endif - -    let key = a:key -    if a:maker_only -        let key = maker_name.'_'.key -    endif -    let key = a:maker_only ? maker_name.'_'.a:key : a:key -    " Look for 'neomake_'.key in the buffer and global namespace. -    let bufvar = neomake#compat#getbufvar(a:bufnr, 'neomake_'.key, s:unset) -    if bufvar isnot s:unset -        return bufvar -    endif -    if a:key !=# 'enabled_makers' && has_key(g:, 'neomake_'.key) -        return get(g:, 'neomake_'.key) -    endif -    return a:default -endfunction - -" Helper function to define default highlight for a:group (e.g. -" "Neomake%sSign"), using fg from another highlight, abd given background. -function! neomake#utils#define_derived_highlights(group_format, bg) abort -    for [type, fg_from] in items({ -                \ 'Error': ['Error', 'bg'], -                \ 'Warning': ['Todo', 'fg'], -                \ 'Info': ['Question', 'fg'], -                \ 'Message': ['ModeMsg', 'fg'] -                \ }) -        let group = printf(a:group_format, type) -        call s:define_derived_highlight_group(group, fg_from, a:bg) -    endfo -endfunction - -function! s:define_derived_highlight_group(group, fg_from, bg) abort -    let [fg_group, fg_attr] = a:fg_from -    let [ctermbg, guibg] = a:bg -    let bg = 'ctermbg='.ctermbg.' guibg='.guibg - -    " NOTE: fg falls back to "Normal" always, not bg (for e.g. "SignColumn") -    " inbetween. -    let ctermfg = neomake#utils#GetHighlight(fg_group, fg_attr, 'Normal') -    let guifg = neomake#utils#GetHighlight(fg_group, fg_attr.'#', 'Normal') - -    " Ensure that we're not using bg as fg (as with gotham -    " colorscheme, issue https://github.com/neomake/neomake/pull/659). -    if ctermfg !=# 'NONE' && ctermfg ==# ctermbg -        let ctermfg = neomake#utils#GetHighlight(fg_group, neomake#utils#ReverseSynIDattr(fg_attr)) -    endif -    if guifg !=# 'NONE' && guifg ==# guibg -        let guifg = neomake#utils#GetHighlight(fg_group, neomake#utils#ReverseSynIDattr(fg_attr).'#') -    endif -    exe 'hi '.a:group.'Default ctermfg='.ctermfg.' guifg='.guifg.' '.bg -    if !neomake#utils#highlight_is_defined(a:group) -        exe 'hi link '.a:group.' '.a:group.'Default' -    endif -endfunction - -" Get property from highlighting group. -function! neomake#utils#GetHighlight(group, what, ...) abort -    let fallback = a:0 ? a:1 : '' -    let mode = a:what[-1:] ==# '#' ? 'gui' : 'cterm' -    let reverse = synIDattr(synIDtrans(hlID(a:group)), 'reverse', mode) -    let what = a:what -    if reverse -        let what = neomake#utils#ReverseSynIDattr(what) -    endif -    if what[-1:] ==# '#' -        let val = synIDattr(synIDtrans(hlID(a:group)), what, mode) -    else -        let val = synIDattr(synIDtrans(hlID(a:group)), what, mode) -    endif -    if empty(val) || val == -1 -        if !empty(fallback) -            " NOTE: this might still be NONE also for "Normal", with -            " e.g. `vim -u NONE`. -            return neomake#utils#GetHighlight(fallback, a:what) -        endif -        return 'NONE' -    endif -    return val -endfunction - -function! neomake#utils#ReverseSynIDattr(attr) abort -    if a:attr ==# 'fg' -        return 'bg' -    elseif a:attr ==# 'bg' -        return 'fg' -    elseif a:attr ==# 'fg#' -        return 'bg#' -    elseif a:attr ==# 'bg#' -        return 'fg#' -    endif -    return a:attr -endfunction - -" Deprecated: moved to neomake#postprocess#compress_whitespace. -function! neomake#utils#CompressWhitespace(entry) abort -    call neomake#postprocess#compress_whitespace(a:entry) -endfunction - -function! neomake#utils#redir(cmd) abort -    " @vimlint(EVL108, 1) -    if exists('*execute') && has('nvim-0.2.0') -    " @vimlint(EVL108, 0) -        " NOTE: require Neovim, since Vim has at least an issue when using -        "       this in a :command-completion function. -        "       Ref: https://github.com/neomake/neomake/issues/650. -        "       Neovim 0.1.7 also parses 'highlight' wrongly. -        return execute(a:cmd) -    endif -    if type(a:cmd) == type([]) -        let r = '' -        for cmd in a:cmd -            let r .= neomake#utils#redir(cmd) -        endfor -        return r -    endif -    try -        redir => neomake_redir -        silent exe a:cmd -    catch /^Vim(redir):E121:/ -        throw printf('Neomake: neomake#utils#redir: called with outer :redir (error: %s).', -                    \ v:exception) -    finally -        redir END -    endtry -    return neomake_redir -endfunction - -function! neomake#utils#ExpandArgs(args, jobinfo) abort -    if has_key(a:jobinfo, 'tempfile') -        let fname = a:jobinfo.tempfile -    else -        let fname = bufname(a:jobinfo.bufnr) -        if !empty(fname) -            let fname = fnamemodify(fname, ':p') -        endif -    endif -    let ret = map(copy(a:args), "substitute(v:val, '%t', fname, 'g')") - -    " Expand % in args similar to when using :! -    " \% is ignored -    " \\% is expanded to \\file.ext -    " %% becomes % -    " % must be followed with an expansion keyword -    let ret = map(ret, -                \ 'substitute(v:val, ' -                \ . '''\(\%(\\\@<!\\\)\@<!%\%(%\|<\|\%(:[phtreS8.~]\)\+\|\ze\w\@!\)\)'', ' -                \ . '''\=(submatch(1) == "%%" ? "%" : expand(substitute(submatch(1), "^%", "#'.a:jobinfo.bufnr.'", "")))'', ' -                \ . '''g'')') -    let ret = map(ret, 'substitute(v:val, ''\v^\~\ze%(/|$)'', expand(''~''), ''g'')') -    return ret -endfunction - -if has('patch-7.3.1058') -    function! s:function(name) abort -        return function(a:name) -    endfunction -else -    " Older Vim does not handle s: function references across files. -    function! s:function(name) abort -        return function(substitute(a:name,'^s:',matchstr(expand('<sfile>'), '.*\zs<SNR>\d\+_'),'')) -    endfunction -endif - -function! s:handle_hook(jobinfo, event, context) abort -    let context_str = string(map(copy(a:context), -                \ "v:key ==# 'make_info' ? 'make_info #'.get(v:val, 'make_id')" -                \ .": (v:key ==# 'options' && has_key(v:val, 'jobs') ? extend(copy(v:val), {'jobs': map(copy(v:val.jobs), 'v:val.maker.name')}, 'force')" -                \ .": (v:key ==# 'jobinfo' ? v:val.as_string()" -                \ .": (v:key ==# 'finished_jobs' ? map(copy(v:val), 'v:val.as_string()') : v:val)))")) - -    if exists('g:neomake_hook_context') -        call neomake#log#debug(printf('Queuing User autocmd %s for nested invocation (%s).', a:event, context_str), -                    \ a:jobinfo) -        return neomake#action_queue#add( -                    \ ['Timer', 'BufEnter', 'WinEnter', 'InsertLeave', 'CursorHold', 'CursorHoldI'], -                    \ [s:function('s:handle_hook'), [a:jobinfo, a:event, a:context]]) -    endif - -    let log_args = [printf('Calling User autocmd %s with context: %s.', -                \ a:event, context_str)] -    if !empty(a:jobinfo) -        let log_args += [a:jobinfo] -    endif -    call call('neomake#log#info', log_args) - -    unlockvar g:neomake_hook_context -    let g:neomake_hook_context = a:context -    lockvar 1 g:neomake_hook_context -    try -        call neomake#compat#doautocmd('User '.a:event) -    catch -        let error = v:exception -        if error[-1:] !=# '.' -            let error .= '.' -        endif -        call neomake#log#exception(printf( -                    \ 'Error during User autocmd for %s: %s', -                    \ a:event, error), a:jobinfo) -    finally -        unlet g:neomake_hook_context -    endtry -    return g:neomake#action_queue#processed -endfunction - -function! neomake#utils#hook(event, context, ...) abort -    if exists('#User#'.a:event) -        let jobinfo = a:0 ? a:1 : ( -                    \ has_key(a:context, 'jobinfo') ? a:context.jobinfo : {}) -        return s:handle_hook(jobinfo, a:event, a:context) -    endif -endfunction - -function! neomake#utils#diff_dict(old, new) abort -    let diff = {'removed': {}, 'added': {}, 'changed': {}} - -    for k in keys(a:old) -        if !has_key(a:new, k) -            let diff['removed'][k] = a:old[k] -        elseif type(a:old[k]) !=# type(a:new[k]) || a:old[k] !=# a:new[k] -            let diff['changed'][k] = [a:old[k], a:new[k]] -        endif -    endfor - -    for k in keys(a:new) -        if !has_key(a:old, k) -            let diff['added'][k] = a:new[k] -        endif -    endfor - -    call filter(diff, '!empty(v:val)') - -    return diff -endfunction - -" Sort quickfix/location list entries by distance to current cursor position's -" column, but preferring entries starting at or behind the cursor position. -function! neomake#utils#sort_by_col(a, b) abort -    let col = getpos('.')[2] -    if a:a.col > col -        if a:b.col < col -            return 1 -        endif -    elseif a:b.col > col -        return -1 -    endif -    return abs(col - a:a.col) - abs(col - a:b.col) -endfunction - -function! neomake#utils#path_sep() abort -    return neomake#utils#IsRunningWindows() ? ';' : ':' -endfunction - -" Find a file matching `a:glob` (using `globpath()`) by going up the -" directories from the start directory (a:1, defaults to `expand('%:p:h')`, -" i.e. the directory of the current buffer's file).) -function! neomake#utils#FindGlobFile(glob, ...) abort -    let curDir = a:0 ? a:1 : expand('%:p:h') -    let fileFound = [] -    while 1 -        let fileFound = neomake#compat#globpath_list(curDir, a:glob, 1) -        if !empty(fileFound) -            return fileFound[0] -        endif -        let lastFolder = curDir -        let curDir = fnamemodify(curDir, ':h') -        if curDir ==# lastFolder -            break -        endif -    endwhile -    return '' -endfunction - -function! neomake#utils#JSONdecode(json) abort -    return neomake#compat#json_decode(a:json) -endfunction - -" Smarter shellescape, via vim-fugitive. -function! s:gsub(str,pat,rep) abort -    return substitute(a:str,'\v\C'.a:pat,a:rep,'g') -endfunction - -function! neomake#utils#shellescape(arg) abort -    if a:arg =~# '^[A-Za-z0-9_/.=-]\+$' -        return a:arg -    elseif &shell =~? 'cmd' || exists('+shellslash') && !&shellslash -        return '"'.s:gsub(s:gsub(a:arg, '"', '""'), '\%', '"%"').'"' -    endif -    return shellescape(a:arg) -endfunction - -function! neomake#utils#get_buffer_lines(bufnr) abort -    let buflines = getbufline(a:bufnr, 1, '$') -    " Special case: empty buffer; do not write an empty line in this case. -    if len(buflines) > 1 || buflines != [''] -        if getbufvar(a:bufnr, '&endofline') -                    \ || (!getbufvar(a:bufnr, '&binary') -                    \     && (!exists('+fixendofline') || getbufvar(a:bufnr, '&fixendofline'))) -            call add(buflines, '') -        endif -    endif -    return buflines -endfunction - -function! neomake#utils#write_tempfile(bufnr, temp_file) abort -    call writefile(neomake#utils#get_buffer_lines(a:bufnr), a:temp_file, 'b') -    if exists('*setfperm') -        let perms = getfperm(bufname(+a:bufnr)) -        if empty(perms) -            let perms = 'rw-------' -        endif -        call setfperm(a:temp_file, perms) -    endif -endfunction - -" Wrapper around fnamemodify that handles special buffers (e.g. fugitive). -function! neomake#utils#fnamemodify(bufnr, modifier) abort -    let bufnr = +a:bufnr -    if empty(getbufvar(bufnr, 'fugitive_type')) -        let path = bufname(bufnr) -    else -        if exists('*FugitivePath') -            let path = FugitivePath(bufname(bufnr)) -        else -            let fug_buffer = fugitive#buffer(bufnr) -            let path = fug_buffer.repo().translate(fug_buffer.path()) -        endif -        if empty(a:modifier) -            let path = fnamemodify(path, ':.') -        endif -    endif -    return empty(path) ? '' : fnamemodify(path, a:modifier) -endfunction - -function! neomake#utils#fix_self_ref(obj, ...) abort -    if type(a:obj) != type({}) -        if type(a:obj) == type([]) -            return map(copy(a:obj), 'neomake#utils#fix_self_ref(v:val)') -        endif -        return a:obj -    endif -    let obj = copy(a:obj) -    for k in keys(obj) -        if a:0 -            let self_ref = filter(copy(a:1), 'v:val[1][0] is obj[k]') -            if !empty(self_ref) -                let obj[k] = printf('<self-ref-%d: %s>', self_ref[0][0], self_ref[0][1][1]) -                continue -            endif -        endif -        if type(obj[k]) == type({}) -            let obj[k] = neomake#utils#fix_self_ref(obj[k], a:0 ? a:1 + [[len(a:1)+1, [a:obj, k]]] : [[1, [a:obj, k]]]) -        elseif has('nvim') -            " Ensure that it can be used as a string. -            " Ref: https://github.com/neovim/neovim/issues/7432 -            try -                call string(obj[k]) -            catch /^Vim(call):E724:/ -                let obj[k] = '<unrepresentable object, type='.type(obj).'>' -            endtry -        endif -    endfor -    return obj -endfunction - -function! neomake#utils#parse_highlight(group) abort -    let output = neomake#utils#redir('highlight '.a:group) -    return join(split(output)[2:]) -endfunction - -function! neomake#utils#highlight_is_defined(group) abort -    if !hlexists(a:group) -        return 0 -    endif -    return neomake#utils#parse_highlight(a:group) !=# 'cleared' -endfunction - -" Get the root directory of the current project. -" This is determined by looking for specific files (e.g. `.git` and -" `Makefile`), and `g:neomake#makers#ft#X#project_root_files` (if defined for -" filetype "X"). -" a:1 buffer number (defaults to current) -function! neomake#utils#get_project_root(...) abort -    let bufnr = a:0 ? a:1 : bufnr('%') -    let ft = getbufvar(bufnr, '&filetype') -    call neomake#utils#load_ft_makers(ft) - -    let project_root_files = ['.git', 'Makefile'] - -    let ft_project_root_files = 'neomake#makers#ft#'.ft.'#project_root_files' -    if has_key(g:, ft_project_root_files) -        let project_root_files = get(g:, ft_project_root_files) + project_root_files -    endif - -    let buf_dir = expand('#'.bufnr.':p:h') -    for fname in project_root_files -        let project_root = neomake#utils#FindGlobFile(fname, buf_dir) -        if !empty(project_root) -            return fnamemodify(project_root, ':h') -        endif -    endfor -    return '' -endfunction - -" Return the number of lines for a given buffer. -" This returns 0 for unloaded buffers. -if exists('*nvim_buf_line_count') -    function! neomake#utils#get_buf_line_count(bufnr) abort -        if !bufloaded(a:bufnr) -            " https://github.com/neovim/neovim/issues/7688 -            return 0 -        endif -        return nvim_buf_line_count(a:bufnr) -    endfunction -else -    function! neomake#utils#get_buf_line_count(bufnr) abort -        if a:bufnr == bufnr('%') -            return line('$') -        endif -        " TODO: this should get cached (based on b:changedtick), and cleaned -        "       in BufWipeOut. -        return len(getbufline(a:bufnr, 1, '$')) -    endfunction -endif - -" Returns: [error, cd_back_cmd] -function! neomake#utils#temp_cd(dir, ...) abort -    if a:dir ==# '.' -        return ['', ''] -    endif -    if a:0 -        let cur_wd = a:1 -    else -        let cur_wd = getcwd() -        if cur_wd ==# a:dir -            " No need to change directory. -            return ['', ''] -        endif -    endif -    let cd = haslocaldir() ? 'lcd' : (exists(':tcd') == 2 && haslocaldir(-1, 0)) ? 'tcd' : 'cd' -    try -        exe cd.' '.fnameescape(a:dir) -    catch -        " Tests fail with E344, but in reality it is E472?! -        " If uncaught, both are shown - let's just catch everything. -        return [v:exception, ''] -    endtry -    return ['', cd.' '.fnameescape(cur_wd)] -endfunction - -if exists('*nvim_buf_get_lines') -    function! neomake#utils#buf_get_lines(bufnr, start, end) abort -        if a:start < 1 -            throw 'neomake#utils#buf_get_lines: start is lower than 1' -        endif -        try -            return nvim_buf_get_lines(a:bufnr, a:start-1, a:end-1, 1) -        catch -            throw 'neomake#utils#buf_get_lines: '.substitute(v:exception, '\v^[^:]+:', '', '') -        endtry -    endfunction -else -    function! neomake#utils#buf_get_lines(bufnr, start, end) abort -        if a:bufnr != bufnr('%') -            throw 'Neomake: neomake#utils#buf_get_lines: used for non-current buffer' -        endif -        if a:start < 1 -            throw 'neomake#utils#buf_get_lines: start is lower than 1' -        endif -        if a:end-1 > line('$') -            throw 'neomake#utils#buf_get_lines: end is higher than number of lines' -        endif -        let r = [] -        let i = a:start -        while i < a:end -            let r += [getline(i)] -            let i += 1 -        endwhile -        return r -    endfunction -endif - -if exists('*nvim_buf_set_lines') -    function! neomake#utils#buf_set_lines(bufnr, start, end, replacement) abort -        if a:start < 1 -            return 'neomake#utils#buf_set_lines: start is lower than 1' -        endif -        try -            call nvim_buf_set_lines(a:bufnr, a:start-1, a:end-1, 1, a:replacement) -        catch -            " call neomake#log#error('Fixing entry failed (out of bounds)') -            return 'neomake#utils#buf_set_lines: '.substitute(v:exception, '\v^[^:]+:', '', '') -        endtry -        return '' -    endfunction -else -    function! neomake#utils#buf_set_lines(bufnr, start, end, replacement) abort -        if a:bufnr != bufnr('%') -            return 'neomake#utils#buf_set_lines: used for non-current buffer' -        endif - -        if a:start < 1 -            return 'neomake#utils#buf_set_lines: start is lower than 1' -        endif -        if a:end > line('$')+1 -            return 'neomake#utils#buf_set_lines: end is higher than number of lines' -        endif - -        if a:start == a:end -            let lnum = a:start < 0 ? line('$') - a:start : a:start -            if append(lnum-1, a:replacement) == 1 -                call neomake#log#error(printf('Failed to append line(s): %d (%d).', a:start, lnum), {'bufnr': a:bufnr}) -            endif - -        else -            let range = a:end - a:start -            if range > len(a:replacement) -                let end = min([a:end, line('$')]) -                silent execute a:start.','.end.'d_' -                call setline(a:start, a:replacement) -            else -                let i = 0 -                let n = len(a:replacement) -                while i < n -                    call setline(a:start + i, a:replacement[i]) -                    let i += 1 -                endwhile -            endif -        endif -        return '' -    endfunction -endif - -function! neomake#utils#shorten_list_for_log(l, max) abort -    if len(a:l) > a:max -        return a:l[:a:max-1] + ['... ('.len(a:l).' total)'] -    endif -    return a:l -endfunction diff --git a/.vim/autoload/neomake/virtualtext.vim b/.vim/autoload/neomake/virtualtext.vim deleted file mode 100644 index b97f2d7..0000000 --- a/.vim/autoload/neomake/virtualtext.vim +++ /dev/null @@ -1,113 +0,0 @@ -scriptencoding utf8 - -let s:highlight_types = { -    \ 'E': 'NeomakeVirtualtextError', -    \ 'W': 'NeomakeVirtualtextWarning', -    \ 'I': 'NeomakeVirtualtextInfo', -    \ 'M': 'NeomakeVirtualtextMessage' -    \ } - -function! neomake#virtualtext#show(...) abort -    let list = neomake#list#get() -    if empty(list) -        echom 'Neomake: no annotations to show (no list)' -        return -    endif - -    let filter = a:0 ? a:1 : '' -    if empty(filter) -        let entries = list.entries -    else -        let entries = map(copy(list.entries), filter) -    endif - -    if empty(entries) -        echom 'Neomake: no annotations to show (no errors)' -        return -    endif - -    for entry in entries -        let buf_info = getbufvar(entry.bufnr, '_neomake_info', {}) - -        call neomake#virtualtext#add_entry(entry, s:all_ns) - -        " Keep track of added entries, because stacking is not supported. -        let set_buf_info = 0 -        if !has_key(buf_info, 'virtual_text_entries') -            let buf_info.virtual_text_entries = [] -        endif -        if index(buf_info.virtual_text_entries, entry.lnum) == -1 -            " Do not add it, but define it still - could return here also later. -            call add(buf_info.virtual_text_entries, entry.lnum) -            let set_buf_info = 1 -        endif - -        if set_buf_info -            call setbufvar(entry.bufnr, '_neomake_info', buf_info) -        endif -    endfor -endfunction - -function! neomake#virtualtext#add_entry(entry, src_id) abort -    let hi = get(s:highlight_types, toupper(a:entry.type), 'NeomakeVirtualtextMessage') -    let prefix = get(g:, 'neomake_virtualtext_prefix', '❯ ') -    let text = prefix . a:entry.text -    let used_src_id = nvim_buf_set_virtual_text(a:entry.bufnr, a:src_id, a:entry.lnum-1, [[text, hi]], {}) -    return used_src_id -endfunction - -function! neomake#virtualtext#show_errors() abort -    call neomake#virtualtext#show('v:val ==? "e"') -endfunction - -function! neomake#virtualtext#hide() abort -    let bufnr = bufnr('%') -    let buf_info = getbufvar(bufnr, '_neomake_info', {}) -    call nvim_buf_clear_highlight(bufnr, s:all_ns, 0, -1) -    if !empty(get(buf_info, 'virtual_text_entries', [])) -        let buf_info.virtual_text_entries = [] -        call setbufvar(bufnr, '_neomake_info', buf_info) -    endif -endfunction - -if exists('*nvim_create_namespace')  " Includes nvim_buf_set_virtual_text. -    let s:current_ns = nvim_create_namespace('neomake-virtualtext-current') -    let s:all_ns = nvim_create_namespace('neomake-virtualtext-all') -    let s:cur_virtualtext = [] - -    function! neomake#virtualtext#handle_current_error() abort -        if !get(g:, 'neomake_virtualtext_current_error', 1) -            return -        endif - -        if !empty(s:cur_virtualtext) -            if bufexists(s:cur_virtualtext[0]) -                call nvim_buf_clear_highlight(s:cur_virtualtext[0], s:cur_virtualtext[1], 0, -1) -            endif -        endif -        let entry = neomake#get_nearest_error() -        if empty(entry) -            let s:cur_virtualtext = [] -        else -            " Only add it when there is none already (stacking is not -            " supported).  https://github.com/neovim/neovim/issues/9285 -            let buf_info = getbufvar(entry.bufnr, '_neomake_info', {}) -            if index(get(buf_info, 'virtual_text_entries', []), entry.lnum) == -1 -                let src_id = neomake#virtualtext#add_entry(entry, s:current_ns) -                let s:cur_virtualtext = [bufnr('%'), src_id] -            endif -        endif -    endfunction -else -    function! neomake#virtualtext#handle_current_error() abort -    endfunction -endif - -function! neomake#virtualtext#DefineHighlights() abort -    " NOTE: linking to SpellBad etc is bad/distracting (with undercurl). -    call neomake#utils#define_derived_highlights('NeomakeVirtualtext%s', ['NONE', 'NONE']) -endfunction - -call neomake#virtualtext#DefineHighlights() - -" vim: ts=4 sw=4 et | 
