diff options
Diffstat (limited to 'vim/bundle/syntastic/plugin')
| m--------- | vim/bundle/syntastic | 0 | ||||
| -rw-r--r-- | vim/bundle/syntastic/plugin/syntastic.vim | 729 | ||||
| -rw-r--r-- | vim/bundle/syntastic/plugin/syntastic/autoloclist.vim | 38 | ||||
| -rw-r--r-- | vim/bundle/syntastic/plugin/syntastic/balloons.vim | 59 | ||||
| -rw-r--r-- | vim/bundle/syntastic/plugin/syntastic/checker.vim | 273 | ||||
| -rw-r--r-- | vim/bundle/syntastic/plugin/syntastic/cursor.vim | 138 | ||||
| -rw-r--r-- | vim/bundle/syntastic/plugin/syntastic/highlighting.vim | 104 | ||||
| -rw-r--r-- | vim/bundle/syntastic/plugin/syntastic/loclist.vim | 439 | ||||
| -rw-r--r-- | vim/bundle/syntastic/plugin/syntastic/modemap.vim | 117 | ||||
| -rw-r--r-- | vim/bundle/syntastic/plugin/syntastic/notifiers.vim | 86 | ||||
| -rw-r--r-- | vim/bundle/syntastic/plugin/syntastic/registry.vim | 375 | ||||
| -rw-r--r-- | vim/bundle/syntastic/plugin/syntastic/signs.vim | 138 | 
12 files changed, 0 insertions, 2496 deletions
| diff --git a/vim/bundle/syntastic b/vim/bundle/syntastic new file mode 160000 +Subproject cee74e0c1af934065fd1b3046e53cda76574f70 diff --git a/vim/bundle/syntastic/plugin/syntastic.vim b/vim/bundle/syntastic/plugin/syntastic.vim deleted file mode 100644 index 49b586c..0000000 --- a/vim/bundle/syntastic/plugin/syntastic.vim +++ /dev/null @@ -1,729 +0,0 @@ -"============================================================================ -"File:        syntastic.vim -"Description: Vim plugin for on the fly syntax checking. -"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. -" -"============================================================================ - -if exists('g:loaded_syntastic_plugin') || &compatible -    finish -endif -let g:loaded_syntastic_plugin = 1 - -if has('reltime') -    let g:_SYNTASTIC_START = reltime() -    lockvar! g:_SYNTASTIC_START -endif - -let g:_SYNTASTIC_VERSION = '3.7.0-157' -lockvar g:_SYNTASTIC_VERSION - -" Sanity checks {{{1 - -if v:version < 700 || (v:version == 700 && !has('patch175')) -    call syntastic#log#error('need Vim version 7.0.175 or later') -    finish -endif - -for s:feature in [ -            \ 'autocmd', -            \ 'eval', -            \ 'file_in_path', -            \ 'modify_fname', -            \ 'quickfix', -            \ 'reltime', -            \ 'user_commands' -        \ ] -    if !has(s:feature) -        call syntastic#log#error('need Vim compiled with feature ' . s:feature) -        finish -    endif -endfor - -let s:_running_windows = syntastic#util#isRunningWindows() -lockvar s:_running_windows - -if !exists('g:syntastic_shell') -    let g:syntastic_shell = &shell -endif - -if s:_running_windows -    let g:_SYNTASTIC_UNAME = 'Windows' -elseif executable('uname') -    try -        let g:_SYNTASTIC_UNAME = split(syntastic#util#system('uname'), "\n")[0] -    catch /\m^Vim\%((\a\+)\)\=:E484/ -        call syntastic#log#error("your shell " .  syntastic#util#var('shell') . " can't handle traditional UNIX syntax for redirections") -        finish -    catch /\m^Vim\%((\a\+)\)\=:E684/ -        let g:_SYNTASTIC_UNAME = 'Unknown' -    endtry -else -    let g:_SYNTASTIC_UNAME = 'Unknown' -endif -lockvar g:_SYNTASTIC_UNAME - -" }}}1 - -" Defaults {{{1 - -let g:_SYNTASTIC_DEFAULTS = { -        \ 'aggregate_errors':         0, -        \ 'always_populate_loc_list': 0, -        \ 'auto_jump':                0, -        \ 'auto_loc_list':            2, -        \ 'check_on_open':            0, -        \ 'check_on_wq':              1, -        \ 'cursor_columns':           1, -        \ 'debug':                    0, -        \ 'echo_current_error':       1, -        \ 'enable_balloons':          1, -        \ 'enable_highlighting':      1, -        \ 'enable_signs':             1, -        \ 'error_symbol':             '>>', -        \ 'exit_checks':              !(s:_running_windows && syntastic#util#var('shell', &shell) =~? '\m\<cmd\.exe$'), -        \ 'filetype_map':             {}, -        \ 'full_redraws':             !(has('gui_running') || has('gui_macvim')), -        \ 'id_checkers':              1, -        \ 'ignore_extensions':        '\c\v^([gx]?z|lzma|bz2)$', -        \ 'ignore_files':             [], -        \ 'loc_list_height':          10, -        \ 'nested_autocommands':      0, -        \ 'quiet_messages':           {}, -        \ 'reuse_loc_lists':          1, -        \ 'shell':                    &shell, -        \ 'sort_aggregated_errors':   1, -        \ 'stl_format':               '[Syntax: line:%F (%t)]', -        \ 'style_error_symbol':       'S>', -        \ 'style_warning_symbol':     'S>', -        \ 'warning_symbol':           '>>' -    \ } -lockvar! g:_SYNTASTIC_DEFAULTS - -for s:key in keys(g:_SYNTASTIC_DEFAULTS) -    if !exists('g:syntastic_' . s:key) -        let g:syntastic_{s:key} = copy(g:_SYNTASTIC_DEFAULTS[s:key]) -    endif -endfor - -if exists('g:syntastic_quiet_warnings') -    call syntastic#log#oneTimeWarn("variable g:syntastic_quiet_warnings is deprecated, please use let g:syntastic_quiet_messages = {'level': 'warnings'} instead") -    if g:syntastic_quiet_warnings -        let s:quiet_warnings = get(g:syntastic_quiet_messages, 'type', []) -        if type(s:quiet_warnings) != type([]) -            let s:quiet_warnings = [s:quiet_warnings] -        endif -        call add(s:quiet_warnings, 'warnings') -        let g:syntastic_quiet_messages['type'] = s:quiet_warnings -    endif -endif - -" }}}1 - -" Debug {{{1 - -let s:_DEBUG_DUMP_OPTIONS = [ -        \ 'shell', -        \ 'shellcmdflag', -        \ 'shellpipe', -        \ 'shellquote', -        \ 'shellredir', -        \ 'shellslash', -        \ 'shelltemp', -        \ 'shellxquote' -    \ ] -if exists('+shellxescape') -    call add(s:_DEBUG_DUMP_OPTIONS, 'shellxescape') -endif -lockvar! s:_DEBUG_DUMP_OPTIONS - -" debug constants -let     g:_SYNTASTIC_DEBUG_TRACE         = 1 -lockvar g:_SYNTASTIC_DEBUG_TRACE -let     g:_SYNTASTIC_DEBUG_LOCLIST       = 2 -lockvar g:_SYNTASTIC_DEBUG_LOCLIST -let     g:_SYNTASTIC_DEBUG_NOTIFICATIONS = 4 -lockvar g:_SYNTASTIC_DEBUG_NOTIFICATIONS -let     g:_SYNTASTIC_DEBUG_AUTOCOMMANDS  = 8 -lockvar g:_SYNTASTIC_DEBUG_AUTOCOMMANDS -let     g:_SYNTASTIC_DEBUG_VARIABLES     = 16 -lockvar g:_SYNTASTIC_DEBUG_VARIABLES -let     g:_SYNTASTIC_DEBUG_CHECKERS      = 32 -lockvar g:_SYNTASTIC_DEBUG_CHECKERS - -" }}}1 - -runtime! plugin/syntastic/*.vim - -let s:registry = g:SyntasticRegistry.Instance() -let s:notifiers = g:SyntasticNotifiers.Instance() -let s:modemap = g:SyntasticModeMap.Instance() - -let s:_quit_pre = [] - -" Commands {{{1 - -" @vimlint(EVL103, 1, a:cursorPos) -" @vimlint(EVL103, 1, a:cmdLine) -" @vimlint(EVL103, 1, a:argLead) -function! s:CompleteCheckerName(argLead, cmdLine, cursorPos) abort " {{{2 -    let checker_names = [] -    for ft in s:_resolve_filetypes([]) -        call extend(checker_names, s:registry.getNamesOfAvailableCheckers(ft)) -    endfor -    return join(checker_names, "\n") -endfunction " }}}2 -" @vimlint(EVL103, 0, a:cursorPos) -" @vimlint(EVL103, 0, a:cmdLine) -" @vimlint(EVL103, 0, a:argLead) - - -" @vimlint(EVL103, 1, a:cursorPos) -" @vimlint(EVL103, 1, a:cmdLine) -" @vimlint(EVL103, 1, a:argLead) -function! s:CompleteFiletypes(argLead, cmdLine, cursorPos) abort " {{{2 -    return join(s:registry.getKnownFiletypes(), "\n") -endfunction " }}}2 -" @vimlint(EVL103, 0, a:cursorPos) -" @vimlint(EVL103, 0, a:cmdLine) -" @vimlint(EVL103, 0, a:argLead) - -command! -bar -nargs=* -complete=custom,s:CompleteCheckerName SyntasticCheck call SyntasticCheck(<f-args>) -command! -bar -nargs=? -complete=custom,s:CompleteFiletypes   SyntasticInfo  call SyntasticInfo(<f-args>) -command! -bar Errors              call SyntasticErrors() -command! -bar SyntasticReset      call SyntasticReset() -command! -bar SyntasticToggleMode call SyntasticToggleMode() -command! -bar SyntasticSetLoclist call SyntasticSetLoclist() - -command! SyntasticJavacEditClasspath runtime! syntax_checkers/java/*.vim | SyntasticJavacEditClasspath -command! SyntasticJavacEditConfig    runtime! syntax_checkers/java/*.vim | SyntasticJavacEditConfig - -" }}}1 - -" Public API {{{1 - -function! SyntasticCheck(...) abort " {{{2 -    call s:UpdateErrors(0, a:000) -    call syntastic#util#redraw(g:syntastic_full_redraws) -endfunction " }}}2 - -function! SyntasticInfo(...) abort " {{{2 -    call s:modemap.modeInfo(a:000) -    call s:registry.echoInfoFor(s:_resolve_filetypes(a:000)) -    call s:_explain_skip(a:000) -endfunction " }}}2 - -function! SyntasticErrors() abort " {{{2 -    call g:SyntasticLoclist.current().show() -endfunction " }}}2 - -function! SyntasticReset() abort " {{{2 -    call s:ClearCache() -    call s:notifiers.refresh(g:SyntasticLoclist.New([])) -endfunction " }}}2 - -function! SyntasticToggleMode() abort " {{{2 -    call s:modemap.toggleMode() -    call s:ClearCache() -    call s:notifiers.refresh(g:SyntasticLoclist.New([])) -    call s:modemap.echoMode() -endfunction " }}}2 - -function! SyntasticSetLoclist() abort " {{{2 -    call g:SyntasticLoclist.current().setloclist() -endfunction " }}}2 - -" }}}1 - -" Autocommands {{{1 - -augroup syntastic -    autocmd! -    autocmd BufEnter * call s:BufEnterHook() -augroup END - -if g:syntastic_nested_autocommands -    augroup syntastic -        autocmd BufReadPost  * nested call s:BufReadPostHook() -        autocmd BufWritePost * nested call s:BufWritePostHook() -    augroup END -else -    augroup syntastic -        autocmd BufReadPost  * call s:BufReadPostHook() -        autocmd BufWritePost * call s:BufWritePostHook() -    augroup END -endif - -if exists('##QuitPre') -    " QuitPre was added in Vim 7.3.544 -    augroup syntastic -        autocmd QuitPre * call s:QuitPreHook(expand('<amatch>', 1)) -    augroup END -endif - -function! s:BufReadPostHook() abort " {{{2 -    if g:syntastic_check_on_open -        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_AUTOCOMMANDS, -            \ 'autocmd: BufReadPost, buffer ' . bufnr('') . ' = ' . string(bufname(str2nr(bufnr(''))))) -        call s:UpdateErrors(1, []) -    endif -endfunction " }}}2 - -function! s:BufWritePostHook() abort " {{{2 -    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_AUTOCOMMANDS, -        \ 'autocmd: BufWritePost, buffer ' . bufnr('') . ' = ' . string(bufname(str2nr(bufnr(''))))) -    call s:UpdateErrors(1, []) -endfunction " }}}2 - -function! s:BufEnterHook() abort " {{{2 -    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_AUTOCOMMANDS, -        \ 'autocmd: BufEnter, buffer ' . bufnr('') . ' = ' . string(bufname(str2nr(bufnr('')))) . -        \ ', &buftype = ' . string(&buftype)) -    if &buftype ==# '' -        call s:notifiers.refresh(g:SyntasticLoclist.current()) -    elseif &buftype ==# 'quickfix' -        " TODO: this is needed because in recent versions of Vim lclose -        " can no longer be called from BufWinLeave -        " TODO: at this point there is no b:syntastic_loclist -        let loclist = filter(copy(getloclist(0)), 'v:val["valid"] == 1') -        let owner = str2nr(getbufvar(bufnr(''), 'syntastic_owner_buffer')) -        let buffers = syntastic#util#unique(map(loclist, 'v:val["bufnr"]') + (owner ? [owner] : [])) -        if !empty(get(w:, 'syntastic_loclist_set', [])) && !empty(loclist) && empty(filter( buffers, 'syntastic#util#bufIsActive(v:val)' )) -            call SyntasticLoclistHide() -        endif -    endif -endfunction " }}}2 - -function! s:QuitPreHook(fname) abort " {{{2 -    let buf = bufnr(fnameescape(a:fname)) -    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_AUTOCOMMANDS, 'autocmd: QuitPre, buffer ' . buf . ' = ' . string(a:fname)) - -    if !syntastic#util#var('check_on_wq') -        call syntastic#util#setWids() -        call add(s:_quit_pre, buf . '_' . getbufvar(buf, 'changetick') . '_' . w:syntastic_wid) -    endif - -    if !empty(get(w:, 'syntastic_loclist_set', [])) -        call SyntasticLoclistHide() -    endif -endfunction " }}}2 - -" }}}1 - -" Main {{{1 - -"refresh and redraw all the error info for this buf when saving or reading -function! s:UpdateErrors(auto_invoked, checker_names) abort " {{{2 -    call syntastic#log#debugShowVariables(g:_SYNTASTIC_DEBUG_TRACE, 'version') -    call syntastic#log#debugShowOptions(g:_SYNTASTIC_DEBUG_TRACE, s:_DEBUG_DUMP_OPTIONS) -    call syntastic#log#debugDump(g:_SYNTASTIC_DEBUG_VARIABLES) -    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'UpdateErrors' . (a:auto_invoked ? ' (auto)' : '') . -        \ ': ' . (len(a:checker_names) ? join(a:checker_names) : 'default checkers')) - -    call s:modemap.synch() - -    if s:_skip_file() -        return -    endif - -    let run_checks = !a:auto_invoked || s:modemap.doAutoChecking() -    if run_checks -        call s:CacheErrors(a:checker_names) -        call syntastic#util#setChangedtick() -    else -        if a:auto_invoked -            return -        endif -    endif - -    let loclist = g:SyntasticLoclist.current() - -    if exists('*SyntasticCheckHook') -        call SyntasticCheckHook(loclist.getRaw()) -    endif - -    " populate loclist and jump {{{3 -    let do_jump = syntastic#util#var('auto_jump') + 0 -    if do_jump == 2 -        let do_jump = loclist.getFirstError(1) -    elseif do_jump == 3 -        let do_jump = loclist.getFirstError() -    elseif 0 > do_jump || do_jump > 3 -        let do_jump = 0 -    endif - -    let w:syntastic_loclist_set = [] -    if syntastic#util#var('always_populate_loc_list') || do_jump -        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'loclist: setloclist (new)') -        call setloclist(0, loclist.getRaw()) -        if !exists('b:syntastic_changedtick') -            call syntastic#util#setChangedtick() -        endif -        let w:syntastic_loclist_set = [bufnr(''), b:syntastic_changedtick] -        if run_checks && do_jump && !loclist.isEmpty() -            call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'loclist: jump') -            execute 'silent! lrewind ' . do_jump - -            " XXX: Vim doesn't call autocmd commands in a predictible -            " order, which can lead to missing filetype when jumping -            " to a new file; the following is a workaround for the -            " resulting brain damage -            if &filetype ==# '' -                silent! filetype detect -            endif -        endif -    endif -    " }}}3 - -    call s:notifiers.refresh(loclist) -endfunction " }}}2 - -"clear the loc list for the buffer -function! s:ClearCache() abort " {{{2 -    call s:notifiers.reset(g:SyntasticLoclist.current()) -    call b:syntastic_loclist.destroy() -endfunction " }}}2 - -"detect and cache all syntax errors in this buffer -function! s:CacheErrors(checker_names) abort " {{{2 -    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'CacheErrors: ' . -        \ (len(a:checker_names) ? join(a:checker_names) : 'default checkers')) -    call s:ClearCache() -    let newLoclist = g:SyntasticLoclist.New([]) - -    if !s:_skip_file() -        " debug logging {{{3 -        call syntastic#log#debugShowVariables(g:_SYNTASTIC_DEBUG_TRACE, 'aggregate_errors') -        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_CHECKERS, '$PATH = ' . string($PATH)) -        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'getcwd() = ' . string(getcwd())) -        " }}}3 - -        let filetypes = s:_resolve_filetypes([]) -        let aggregate_errors = syntastic#util#var('aggregate_errors') || len(filetypes) > 1 -        let decorate_errors = aggregate_errors && syntastic#util#var('id_checkers') -        let sort_aggregated_errors = aggregate_errors && syntastic#util#var('sort_aggregated_errors') - -        let clist = [] -        for type in filetypes -            call extend(clist, s:registry.getCheckers(type, a:checker_names)) -        endfor - -        let names = [] -        let unavailable_checkers = 0 -        for checker in clist -            let cname = checker.getFiletype() . '/' . checker.getName() -            if !checker.isAvailable() -                call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'CacheErrors: Checker ' . cname . ' is not available') -                let unavailable_checkers += 1 -                continue -            endif - -            call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'CacheErrors: Invoking checker: ' . cname) - -            let loclist = checker.getLocList() - -            if !loclist.isEmpty() -                if decorate_errors -                    call loclist.decorate(cname) -                endif -                call add(names, cname) -                if checker.wantSort() && !sort_aggregated_errors -                    call loclist.sort() -                    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'sorted:', loclist) -                endif - -                let newLoclist = newLoclist.extend(loclist) - -                if !aggregate_errors -                    break -                endif -            endif -        endfor - -        " set names {{{3 -        if !empty(names) -            if len(syntastic#util#unique(map( copy(names), 'substitute(v:val, "\\m/.*", "", "")' ))) == 1 -                let type = substitute(names[0], '\m/.*', '', '') -                let name = join(map( names, 'substitute(v:val, "\\m.\\{-}/", "", "")' ), ', ') -                call newLoclist.setName( name . ' ('. type . ')' ) -            else -                " checkers from mixed types -                call newLoclist.setName(join(names, ', ')) -            endif -        endif -        " }}}3 - -        " issue warning about no active checkers {{{3 -        if len(clist) == unavailable_checkers -            if !empty(a:checker_names) -                if len(a:checker_names) == 1 -                    call syntastic#log#warn('checker ' . a:checker_names[0] . ' is not available') -                else -                    call syntastic#log#warn('checkers ' . join(a:checker_names, ', ') . ' are not available') -                endif -            else -                call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'CacheErrors: no checkers available for ' . &filetype) -            endif -        endif -        " }}}3 - -        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'aggregated:', newLoclist) -        if sort_aggregated_errors -            call newLoclist.sort() -            call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'sorted:', newLoclist) -        endif -    endif - -    call newLoclist.deploy() -endfunction " }}}2 - -"Emulates the :lmake command. Sets up the make environment according to the -"options given, runs make, resets the environment, returns the location list -" -"a:options can contain the following keys: -"    'makeprg' -"    'errorformat' -" -"The corresponding options are set for the duration of the function call. They -"are set with :let, so dont escape spaces. -" -"a:options may also contain: -"   'defaults' - a dict containing default values for the returned errors -"   'subtype' - all errors will be assigned the given subtype -"   'preprocess' - a function to be applied to the error file before parsing errors -"   'postprocess' - a list of functions to be applied to the error list -"   'cwd' - change directory to the given path before running the checker -"   'env' - environment variables to set before running the checker -"   'returns' - a list of valid exit codes for the checker -" @vimlint(EVL102, 1, l:env_save) -function! SyntasticMake(options) abort " {{{2 -    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'SyntasticMake: called with options:', a:options) - -    " save options and locale env variables {{{3 -    let old_local_errorformat = &l:errorformat -    let old_errorformat = &errorformat -    let old_cwd = getcwd() -    " }}}3 - -    if has_key(a:options, 'errorformat') -        let &errorformat = a:options['errorformat'] -        set errorformat< -    endif - -    if has_key(a:options, 'cwd') -        execute 'lcd ' . fnameescape(a:options['cwd']) -    endif - -    " set environment variables {{{3 -    let env_save = {} -    if has_key(a:options, 'env') && len(a:options['env']) -        for key in keys(a:options['env']) -            if key =~? '\m^[a-z_][a-z0-9_]*$' -                execute 'let env_save[' . string(key) . '] = $' . key -                execute 'let $' . key . ' = ' . string(a:options['env'][key]) -            endif -        endfor -    endif -    " }}}3 - -    let err_lines = split(syntastic#util#system(a:options['makeprg']), "\n", 1) - -    " restore environment variables {{{3 -    if len(env_save) -        for key in keys(env_save) -            execute 'let $' . key . ' = ' . string(env_save[key]) -        endfor -    endif -    " }}}3 - -    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'checker output:', err_lines) - -    " Does it still make sense to go on? -    let bailout = -        \ syntastic#util#var('exit_checks') && -        \ has_key(a:options, 'returns') && -        \ index(a:options['returns'], v:shell_error) == -1 - -    if !bailout -        if has_key(a:options, 'Preprocess') -            let err_lines = call(a:options['Preprocess'], [err_lines]) -            call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'preprocess (external):', err_lines) -        elseif has_key(a:options, 'preprocess') -            let err_lines = call('syntastic#preprocess#' . a:options['preprocess'], [err_lines]) -            call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'preprocess:', err_lines) -        endif -        lgetexpr err_lines - -        let errors = deepcopy(getloclist(0)) - -        if has_key(a:options, 'cwd') -            execute 'lcd ' . fnameescape(old_cwd) -        endif - -        try -            silent lolder -        catch /\m^Vim\%((\a\+)\)\=:E380/ -            " E380: At bottom of quickfix stack -            call setloclist(0, [], 'r') -        catch /\m^Vim\%((\a\+)\)\=:E776/ -            " E776: No location list -            " do nothing -        endtry -    else -        let errors = [] -    endif - -    " restore options {{{3 -    let &errorformat = old_errorformat -    let &l:errorformat = old_local_errorformat -    " }}}3 - -    if !s:_running_windows && (s:_os_name() =~? 'FreeBSD' || s:_os_name() =~? 'OpenBSD') -        call syntastic#util#redraw(g:syntastic_full_redraws) -    endif - -    if bailout -        call syntastic#log#ndebug(g:_SYNTASTIC_DEBUG_LOCLIST, 'checker output:', err_lines) -        throw 'Syntastic: checker error' -    endif - -    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'raw loclist:', errors) - -    if has_key(a:options, 'defaults') -        call s:_add_to_errors(errors, a:options['defaults']) -    endif - -    " Add subtype info if present. -    if has_key(a:options, 'subtype') -        call s:_add_to_errors(errors, { 'subtype': a:options['subtype'] }) -    endif - -    if has_key(a:options, 'Postprocess') && !empty(a:options['Postprocess']) -        for rule in a:options['Postprocess'] -            let errors = call(rule, [errors]) -        endfor -        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'postprocess (external):', errors) -    elseif has_key(a:options, 'postprocess') && !empty(a:options['postprocess']) -        for rule in a:options['postprocess'] -            let errors = call('syntastic#postprocess#' . rule, [errors]) -        endfor -        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'postprocess:', errors) -    endif - -    return errors -endfunction " }}}2 -" @vimlint(EVL102, 0, l:env_save) - -"return a string representing the state of buffer according to -"g:syntastic_stl_format -" -"return '' if no errors are cached for the buffer -function! SyntasticStatuslineFlag() abort " {{{2 -    return g:SyntasticLoclist.current().getStatuslineFlag() -endfunction " }}}2 - -" }}}1 - -" Utilities {{{1 - -function! s:_resolve_filetypes(filetypes) abort " {{{2 -    let type = len(a:filetypes) ? a:filetypes[0] : &filetype -    return split( get(g:syntastic_filetype_map, type, type), '\m\.' ) -endfunction " }}}2 - -function! s:_ignore_file(filename) abort " {{{2 -    let fname = fnamemodify(a:filename, ':p') -    for pattern in g:syntastic_ignore_files -        if fname =~# pattern -            return 1 -        endif -    endfor -    return 0 -endfunction " }}}2 - -function! s:_is_quitting(buf) abort " {{{2 -    let quitting = 0 -    if exists('w:syntastic_wid') -        let key = a:buf . '_' . getbufvar(a:buf, 'changetick') . '_' . w:syntastic_wid -        let idx = index(s:_quit_pre, key) -        if idx >= 0 -            call remove(s:_quit_pre, idx) -            let quitting = 1 -        endif -    endif - -    return quitting -endfunction " }}}2 - -" Skip running in special buffers -function! s:_skip_file() abort " {{{2 -    let fname = expand('%', 1) -    let skip = s:_is_quitting(bufnr('%')) || get(b:, 'syntastic_skip_checks', 0) || -        \ (&buftype !=# '') || !filereadable(fname) || getwinvar(0, '&diff') || -        \ getwinvar(0, '&previewwindow') || s:_ignore_file(fname) || -        \ fnamemodify(fname, ':e') =~? g:syntastic_ignore_extensions -    if skip -        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, '_skip_file: skipping checks') -    endif -    return skip -endfunction " }}}2 - -" Explain why checks will be skipped for the current file -function! s:_explain_skip(filetypes) abort " {{{2 -    if empty(a:filetypes) && s:_skip_file() -        let why = [] -        let fname = expand('%', 1) - -        if s:_is_quitting(bufnr('%')) -            call add(why, 'quitting buffer') -        endif -        if get(b:, 'syntastic_skip_checks', 0) -            call add(why, 'b:syntastic_skip_checks set') -        endif -        if &buftype !=# '' -            call add(why, 'buftype = ' . string(&buftype)) -        endif -        if !filereadable(fname) -            call add(why, 'file not readable / not local') -        endif -        if getwinvar(0, '&diff') -            call add(why, 'diff mode') -        endif -        if getwinvar(0, '&previewwindow') -            call add(why, 'preview window') -        endif -        if s:_ignore_file(fname) -            call add(why, 'filename matching g:syntastic_ignore_files') -        endif -        if fnamemodify(fname, ':e') =~? g:syntastic_ignore_extensions -            call add(why, 'extension matching g:syntastic_ignore_extensions') -        endif - -        echomsg 'The current file will not be checked (' . join(why, ', ') . ')' -    endif -endfunction " }}}2 - -" Take a list of errors and add default values to them from a:options -function! s:_add_to_errors(errors, options) abort " {{{2 -    for err in a:errors -        for key in keys(a:options) -            if !has_key(err, key) || empty(err[key]) -                let err[key] = a:options[key] -            endif -        endfor -    endfor - -    return a:errors -endfunction " }}}2 - -function! s:_os_name() abort " {{{2 -    return g:_SYNTASTIC_UNAME -endfunction " }}}2 - -" }}}1 - -" vim: set sw=4 sts=4 et fdm=marker: diff --git a/vim/bundle/syntastic/plugin/syntastic/autoloclist.vim b/vim/bundle/syntastic/plugin/syntastic/autoloclist.vim deleted file mode 100644 index 153b0bc..0000000 --- a/vim/bundle/syntastic/plugin/syntastic/autoloclist.vim +++ /dev/null @@ -1,38 +0,0 @@ -if exists('g:loaded_syntastic_notifier_autoloclist') || !exists('g:loaded_syntastic_plugin') -    finish -endif -let g:loaded_syntastic_notifier_autoloclist = 1 - -let g:SyntasticAutoloclistNotifier = {} - -" Public methods {{{1 -" -function! g:SyntasticAutoloclistNotifier.New() abort " {{{2 -    let newObj = copy(self) -    return newObj -endfunction " }}}2 - -function! g:SyntasticAutoloclistNotifier.refresh(loclist) abort " {{{2 -    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'autoloclist: refresh') -    call g:SyntasticAutoloclistNotifier.AutoToggle(a:loclist) -endfunction " }}}2 - -function! g:SyntasticAutoloclistNotifier.AutoToggle(loclist) abort " {{{2 -    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'autoloclist: toggle') -    let auto_loc_list = syntastic#util#var('auto_loc_list') -    if !a:loclist.isEmpty() -        if auto_loc_list == 1 || auto_loc_list == 3 -            call a:loclist.show() -        endif -    else -        if auto_loc_list == 1 || auto_loc_list == 2 -            "TODO: this will close the loc list window if one was opened by -            "something other than syntastic -            lclose -        endif -    endif -endfunction " }}}2 - -" }}}1 - -" vim: set sw=4 sts=4 et fdm=marker: diff --git a/vim/bundle/syntastic/plugin/syntastic/balloons.vim b/vim/bundle/syntastic/plugin/syntastic/balloons.vim deleted file mode 100644 index fdd70bf..0000000 --- a/vim/bundle/syntastic/plugin/syntastic/balloons.vim +++ /dev/null @@ -1,59 +0,0 @@ -if exists('g:loaded_syntastic_notifier_balloons') || !exists('g:loaded_syntastic_plugin') -    finish -endif -let g:loaded_syntastic_notifier_balloons = 1 - -if !has('balloon_eval') -    let g:syntastic_enable_balloons = 0 -endif - -let g:SyntasticBalloonsNotifier = {} - -" Public methods {{{1 - -function! g:SyntasticBalloonsNotifier.New() abort " {{{2 -    let newObj = copy(self) -    return newObj -endfunction " }}}2 - -function! g:SyntasticBalloonsNotifier.enabled() abort " {{{2 -    return has('balloon_eval') && syntastic#util#var('enable_balloons') -endfunction " }}}2 - -" Update the error balloons -function! g:SyntasticBalloonsNotifier.refresh(loclist) abort " {{{2 -    unlet! b:syntastic_private_balloons -    if self.enabled() && !a:loclist.isEmpty() -        let b:syntastic_private_balloons = a:loclist.balloons() -        if !empty(b:syntastic_private_balloons) -            set ballooneval balloonexpr=SyntasticBalloonsExprNotifier() -        endif -    endif -endfunction " }}}2 - -" Reset the error balloons -" @vimlint(EVL103, 1, a:loclist) -function! g:SyntasticBalloonsNotifier.reset(loclist) abort " {{{2 -    let b:syntastic_private_balloons = {} -    if has('balloon_eval') -        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'balloons: reset') -        unlet! b:syntastic_private_balloons -        set noballooneval -    endif -endfunction " }}}2 -" @vimlint(EVL103, 0, a:loclist) - -" }}}1 - -" Private functions {{{1 - -function! SyntasticBalloonsExprNotifier() abort " {{{2 -    if !exists('b:syntastic_private_balloons') -        return '' -    endif -    return get(b:syntastic_private_balloons, v:beval_lnum, '') -endfunction " }}}2 - -" }}}1 - -" vim: set sw=4 sts=4 et fdm=marker: diff --git a/vim/bundle/syntastic/plugin/syntastic/checker.vim b/vim/bundle/syntastic/plugin/syntastic/checker.vim deleted file mode 100644 index 22ad820..0000000 --- a/vim/bundle/syntastic/plugin/syntastic/checker.vim +++ /dev/null @@ -1,273 +0,0 @@ -if exists('g:loaded_syntastic_checker') || !exists('g:loaded_syntastic_plugin') -    finish -endif -let g:loaded_syntastic_checker = 1 - -let g:SyntasticChecker = {} - -" Public methods {{{1 - -function! g:SyntasticChecker.New(args, ...) abort " {{{2 -    let newObj = copy(self) - -    let newObj._filetype = a:args['filetype'] -    let newObj._name = a:args['name'] - -    if a:0 -        " redirected checker -        let newObj._exec = get(a:args, 'exec', a:1['_exec']) - -        let filetype = a:1['_filetype'] -        let name = a:1['_name'] -        let prefix = 'SyntaxCheckers_' . filetype . '_' . name . '_' - -        if exists('g:syntastic_' . filetype . '_' . name . '_sort') && !exists('g:syntastic_' . newObj._filetype . '_' . newObj._name . '_sort') -            let g:syntastic_{newObj._filetype}_{newObj._name}_sort = g:syntastic_{filetype}_{name}_sort -        endif - -        if has_key(a:args, 'enable') -            let newObj._enable = a:args['enable'] -        elseif has_key(a:1, '_enable') -            let newObj._enable = a:1['_enable'] -        endif -    else -        let newObj._exec = get(a:args, 'exec', newObj._name) -        let prefix = 'SyntaxCheckers_' . newObj._filetype . '_' . newObj._name . '_' - -        if has_key(a:args, 'enable') -            let newObj._enable = a:args['enable'] -        endif -    endif - -    let newObj._locListFunc = function(prefix . 'GetLocList') - -    if exists('*' . prefix . 'IsAvailable') -        let newObj._isAvailableFunc = function(prefix . 'IsAvailable') -    else -        let newObj._isAvailableFunc = function('s:_isAvailableDefault') -    endif - -    if exists('*' . prefix . 'GetHighlightRegex') -        let newObj._highlightRegexFunc = function(prefix . 'GetHighlightRegex') -    endif - -    return newObj -endfunction " }}}2 - -function! g:SyntasticChecker.getFiletype() abort " {{{2 -    return self._filetype -endfunction " }}}2 - -function! g:SyntasticChecker.getName() abort " {{{2 -    return self._name -endfunction " }}}2 - -" Synchronise _exec with user's setting.  Force re-validation if needed. -" -" XXX: This function must be called at least once before calling either -" getExec() or getExecEscaped().  Normally isAvailable() does that for you -" automatically, but you should keep still this in mind if you change the -" current checker workflow. -function! g:SyntasticChecker.syncExec() abort " {{{2 -    let user_exec = -        \ expand( exists('b:syntastic_' . self._name . '_exec') ? b:syntastic_{self._name}_exec : -        \ syntastic#util#var(self._filetype . '_' . self._name . '_exec'), 1 ) - -    if user_exec !=# '' && user_exec !=# self._exec -        let self._exec = user_exec -        if has_key(self, '_available') -            " we have a new _exec on the block, it has to be validated -            call remove(self, '_available') -        endif -    endif -endfunction " }}}2 - -function! g:SyntasticChecker.getExec() abort " {{{2 -    return self._exec -endfunction " }}}2 - -function! g:SyntasticChecker.getExecEscaped() abort " {{{2 -    return syntastic#util#shescape(self._exec) -endfunction " }}}2 - -function! g:SyntasticChecker.getLocListRaw() abort " {{{2 -    let checker_start = reltime() -    let name = self._filetype . '/' . self._name - -    if has_key(self, '_enable') -        let status = syntastic#util#var(self._enable, -1) -        if type(status) != type(0) -            call syntastic#log#error('checker ' . name . ': invalid value ' . strtrans(string(status)) . -                \ ' for g:syntastic_' . self._enable . '; try 0 or 1 instead') -            return [] -        endif -        if status < 0 -            call syntastic#log#error('checker ' . name . ': checks disabled for security reasons; ' . -                \ 'set g:syntastic_' . self._enable . ' to 1 to override') -        endif -        if status <= 0 -            call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'getLocList: checker ' . name . ' enabled but not forced') -            return [] -        else -            call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'getLocList: checker ' . name . ' forced') -        endif -    endif - -    try -        let list = self._locListFunc() -        if self._exec !=# '' -            call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'getLocList: checker ' . name . ' returned ' . v:shell_error) -        endif -    catch /\m\C^Syntastic: checker error$/ -        let list = [] -        if self._exec !=# '' -            call syntastic#log#error('checker ' . name . ' returned abnormal status ' . v:shell_error) -        else -            call syntastic#log#error('checker ' . name . ' aborted') -        endif -    endtry -    call self._populateHighlightRegexes(list) -    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, name . ' raw:', list) -    call self._quietMessages(list) -    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, -        \ 'getLocList: checker ' . name . ' run in ' . split(reltimestr(reltime(checker_start)))[0] . 's') -    return list -endfunction " }}}2 - -function! g:SyntasticChecker.getLocList() abort " {{{2 -    return g:SyntasticLoclist.New(self.getLocListRaw()) -endfunction " }}}2 - -function! g:SyntasticChecker.getVersion(...) abort " {{{2 -    if !exists('self._version') -        let command = a:0 ? a:1 : self.getExecEscaped() . ' --version' -        let version_output = syntastic#util#system(command) -        call self.log('getVersion: ' . string(command) . ': ' . -            \ string(split(version_output, "\n", 1)) . -            \ (v:shell_error ? ' (exit code ' . v:shell_error . ')' : '') ) -        let parsed_ver = syntastic#util#parseVersion(version_output) -        if len(parsed_ver) -            call self.setVersion(parsed_ver) -        else -            call syntastic#log#ndebug(g:_SYNTASTIC_DEBUG_LOCLIST, 'checker output:', split(version_output, "\n", 1)) -            call syntastic#log#error("checker " . self._filetype . "/" . self._name . ": can't parse version string (abnormal termination?)") -        endif -    endif -    return get(self, '_version', []) -endfunction " }}}2 - -function! g:SyntasticChecker.setVersion(version) abort " {{{2 -    if len(a:version) -        let self._version = copy(a:version) -        call self.log(self.getExec() . ' version =', a:version) -    endif -endfunction " }}}2 - -function! g:SyntasticChecker.log(msg, ...) abort " {{{2 -    let leader = self._filetype . '/' . self._name . ': ' -    if a:0 > 0 -        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_CHECKERS, leader . a:msg, a:1) -    else -        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_CHECKERS, leader . a:msg) -    endif -endfunction " }}}2 - -function! g:SyntasticChecker.makeprgBuild(opts) abort " {{{2 -    let basename = self._filetype . '_' . self._name . '_' - -    let parts = [] -    call extend(parts, self._getOpt(a:opts, basename, 'exe', self.getExecEscaped())) -    call extend(parts, self._getOpt(a:opts, basename, 'args', '')) -    call extend(parts, self._getOpt(a:opts, basename, 'fname', syntastic#util#shexpand('%'))) -    call extend(parts, self._getOpt(a:opts, basename, 'post_args', '')) -    call extend(parts, self._getOpt(a:opts, basename, 'tail', '')) - -    return join(parts) -endfunction " }}}2 - -function! g:SyntasticChecker.isAvailable() abort " {{{2 -    call self.syncExec() -    if !has_key(self, '_available') -        let self._available = self._isAvailableFunc() -    endif -    return self._available -endfunction " }}}2 - -function! g:SyntasticChecker.isDisabled() abort " {{{2 -    return has_key(self, '_enable') && syntastic#util#var(self._enable, -1) <= 0 -endfunction " }}}2 - -function! g:SyntasticChecker.wantSort() abort " {{{2 -    return syntastic#util#var(self._filetype . '_' . self._name . '_sort', 0) -endfunction " }}}2 - -" This method is no longer used by syntastic.  It's here only to maintain -" backwards compatibility with external checkers which might depend on it. -function! g:SyntasticChecker.setWantSort(val) abort " {{{2 -    if !exists('g:syntastic_' . self._filetype . '_' . self._name . '_sort') -        let g:syntastic_{self._filetype}_{self._name}_sort = a:val -    endif -endfunction " }}}2 - -" }}}1 - -" Private methods {{{1 - -function! g:SyntasticChecker._quietMessages(errors) abort " {{{2 -    " wildcard quiet_messages -    let quiet_filters = copy(syntastic#util#var('quiet_messages', {})) -    if type(quiet_filters) != type({}) -        call syntastic#log#warn('ignoring invalid syntastic_quiet_messages') -        unlet quiet_filters -        let quiet_filters = {} -    endif - -    " per checker quiet_messages -    let name = self._filetype . '_' . self._name -    try -        call extend( quiet_filters, copy(syntastic#util#var(name . '_quiet_messages', {})), 'force' ) -    catch /\m^Vim\%((\a\+)\)\=:E712/ -        call syntastic#log#warn('ignoring invalid syntastic_' . name . '_quiet_messages') -    endtry - -    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'quiet_messages filter:', quiet_filters) - -    if !empty(quiet_filters) -        call syntastic#util#dictFilter(a:errors, quiet_filters) -        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'filtered by quiet_messages:', a:errors) -    endif -endfunction " }}}2 - -function! g:SyntasticChecker._populateHighlightRegexes(errors) abort " {{{2 -    if has_key(self, '_highlightRegexFunc') -        for e in a:errors -            if e['valid'] -                let term = self._highlightRegexFunc(e) -                if term !=# '' -                    let e['hl'] = term -                endif -            endif -        endfor -    endif -endfunction " }}}2 - -function! g:SyntasticChecker._getOpt(opts, basename, name, default) abort " {{{2 -    let ret = [] -    call extend( ret, syntastic#util#argsescape(get(a:opts, a:name . '_before', '')) ) -    call extend( ret, syntastic#util#argsescape(syntastic#util#var( a:basename . a:name, get(a:opts, a:name, a:default) )) ) -    call extend( ret, syntastic#util#argsescape(get(a:opts, a:name . '_after', '')) ) - -    return ret -endfunction " }}}2 - -" }}}1 - -" Private functions {{{1 - -function! s:_isAvailableDefault() dict " {{{2 -    return executable(self.getExec()) -endfunction " }}}2 - -" }}}1 - -" vim: set sw=4 sts=4 et fdm=marker: diff --git a/vim/bundle/syntastic/plugin/syntastic/cursor.vim b/vim/bundle/syntastic/plugin/syntastic/cursor.vim deleted file mode 100644 index f59d87b..0000000 --- a/vim/bundle/syntastic/plugin/syntastic/cursor.vim +++ /dev/null @@ -1,138 +0,0 @@ -if exists('g:loaded_syntastic_notifier_cursor') || !exists('g:loaded_syntastic_plugin') -    finish -endif -let g:loaded_syntastic_notifier_cursor = 1 - -let g:SyntasticCursorNotifier = {} - -" Public methods {{{1 - -function! g:SyntasticCursorNotifier.New() abort " {{{2 -    let newObj = copy(self) -    return newObj -endfunction " }}}2 - -function! g:SyntasticCursorNotifier.enabled() abort " {{{2 -    return syntastic#util#var('echo_current_error') -endfunction " }}}2 - -function! g:SyntasticCursorNotifier.refresh(loclist) abort " {{{2 -    if self.enabled() && !a:loclist.isEmpty() -        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'cursor: refresh') -        let b:syntastic_private_messages = copy(a:loclist.messages(bufnr(''))) -        let b:syntastic_private_line = -1 -        let b:syntastic_cursor_columns = a:loclist.getCursorColumns() -        autocmd! syntastic CursorMoved -        autocmd syntastic CursorMoved * call SyntasticRefreshCursor() -    endif -endfunction " }}}2 - -" @vimlint(EVL103, 1, a:loclist) -function! g:SyntasticCursorNotifier.reset(loclist) abort " {{{2 -    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'cursor: reset') -    autocmd! syntastic CursorMoved -    unlet! b:syntastic_private_messages -    let b:syntastic_private_line = -1 -endfunction " }}}2 -" @vimlint(EVL103, 0, a:loclist) - -" }}}1 - -" Private functions {{{1 - -function! SyntasticRefreshCursor() abort " {{{2 -    if !exists('b:syntastic_private_messages') || empty(b:syntastic_private_messages) -        " file not checked -        return -    endif - -    if !exists('b:syntastic_private_line') -        let b:syntastic_private_line = -1 -    endif -    let l = line('.') -    let current_messages = get(b:syntastic_private_messages, l, {}) - -    if !exists('b:syntastic_cursor_columns') -        let b:syntastic_cursor_columns = g:syntastic_cursor_columns -    endif - -    if b:syntastic_cursor_columns -        let c = virtcol('.') -        if !exists('b:syntastic_private_idx') -            let b:syntastic_private_idx = -1 -        endif - -        if s:_is_same_index(l, b:syntastic_private_line, c, b:syntastic_private_idx, current_messages) -            return -        else -            let b:syntastic_private_line = l -        endif - -        if !empty(current_messages) -            let b:syntastic_private_idx = s:_find_index(c, current_messages) -            call syntastic#util#wideMsg(current_messages[b:syntastic_private_idx].text) -        else -            let b:syntastic_private_idx = -1 -            echo -        endif -    else -        if l == b:syntastic_private_line -            return -        endif -        let b:syntastic_private_line = l - -        if !empty(current_messages) -            call syntastic#util#wideMsg(current_messages[0].text) -        else -            echo -        endif -    endif -endfunction " }}}2 - -" }}}1 - -" Utilities {{{1 - -function! s:_is_same_index(line, old_line, column, idx, messages) abort " {{{2 -    if a:old_line >= 0 && a:line == a:old_line && a:idx >= 0 -        if len(a:messages) <= 1 -            return 1 -        endif - -        if a:messages[a:idx].scol <= a:column || a:idx == 0 -            if a:idx == len(a:messages) - 1 || a:column < a:messages[a:idx + 1].scol -                return 1 -            else -                return 0 -            endif -        else -            return 0 -        endif -    else -        return 0 -    endif -endfunction " }}}2 - -function! s:_find_index(column, messages) abort " {{{2 -    let max = len(a:messages) - 1 -    if max == 0 -        return 0 -    endif -    let min = 0 - -    " modified binary search: assign index 0 to columns to the left of the first error -    while min < max - 1 -        let mid = (min + max) / 2 -        if a:column < a:messages[mid].scol -            let max = mid -        else -            let min = mid -        endif -    endwhile - -    return a:column < a:messages[max].scol ? min : max -endfunction " }}}2 - -" }}}1 - -" vim: set sw=4 sts=4 et fdm=marker: diff --git a/vim/bundle/syntastic/plugin/syntastic/highlighting.vim b/vim/bundle/syntastic/plugin/syntastic/highlighting.vim deleted file mode 100644 index a9e1a08..0000000 --- a/vim/bundle/syntastic/plugin/syntastic/highlighting.vim +++ /dev/null @@ -1,104 +0,0 @@ -if exists('g:loaded_syntastic_notifier_highlighting') || !exists('g:loaded_syntastic_plugin') -    finish -endif -let g:loaded_syntastic_notifier_highlighting = 1 - -" Highlighting requires getmatches introduced in 7.1.040 -let s:has_highlighting = v:version > 701 || (v:version == 701 && has('patch040')) -lockvar s:has_highlighting - -let g:SyntasticHighlightingNotifier = {} - -let s:setup_done = 0 - -" Public methods {{{1 - -function! g:SyntasticHighlightingNotifier.New() abort " {{{2 -    let newObj = copy(self) - -    if !s:setup_done -        call self._setup() -        let s:setup_done = 1 -        lockvar s:setup_done -    endif - -    return newObj -endfunction " }}}2 - -function! g:SyntasticHighlightingNotifier.enabled() abort " {{{2 -    return s:has_highlighting && syntastic#util#var('enable_highlighting') -endfunction " }}}2 - -" Sets error highlights in the current window -function! g:SyntasticHighlightingNotifier.refresh(loclist) abort " {{{2 -    if self.enabled() -        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'highlighting: refresh') -        call self._reset() -        let buf = bufnr('') -        let issues = filter(a:loclist.copyRaw(), 'v:val["bufnr"] == buf') -        for item in issues -            let group = 'Syntastic' . get(item, 'subtype', '') . ( item['type'] ==? 'E' ? 'Error' : 'Warning' ) - -            " The function `Syntastic_{filetype}_{checker}_GetHighlightRegex` is -            " used to override default highlighting. -            if has_key(item, 'hl') -                call matchadd(group, '\%' . item['lnum'] . 'l' . item['hl']) -            elseif get(item, 'col', 0) -                if get(item, 'vcol', 0) -                    let lastcol = virtcol([item['lnum'], '$']) -                    let coltype = 'v' -                else -                    let lastcol = col([item['lnum'], '$']) -                    let coltype = 'c' -                endif -                let lcol = min([lastcol, item['col']]) - -                call matchadd(group, '\%' . item['lnum'] . 'l\%' . lcol . coltype) -            endif -        endfor -    endif -endfunction " }}}2 - -" Remove all error highlights from the window -" @vimlint(EVL103, 1, a:loclist) -function! g:SyntasticHighlightingNotifier.reset(loclist) abort " {{{2 -    if s:has_highlighting -        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'highlighting: reset') -        call self._reset() -    endif -endfunction " }}}2 -" @vimlint(EVL103, 0, a:loclist) - -" }}}1 - -" Private methods {{{1 - -" One time setup: define our own highlighting -function! g:SyntasticHighlightingNotifier._setup() abort " {{{2 -    if s:has_highlighting -        if !hlexists('SyntasticError') -            highlight link SyntasticError SpellBad -        endif -        if !hlexists('SyntasticWarning') -            highlight link SyntasticWarning SpellCap -        endif -        if !hlexists('SyntasticStyleError') -            highlight link SyntasticStyleError SyntasticError -        endif -        if !hlexists('SyntasticStyleWarning') -            highlight link SyntasticStyleWarning SyntasticWarning -        endif -    endif -endfunction " }}}2 - -function! g:SyntasticHighlightingNotifier._reset() abort " {{{2 -    for match in getmatches() -        if stridx(match['group'], 'Syntastic') == 0 -            call matchdelete(match['id']) -        endif -    endfor -endfunction " }}}2 - -" }}}1 - -" vim: set sw=4 sts=4 et fdm=marker: diff --git a/vim/bundle/syntastic/plugin/syntastic/loclist.vim b/vim/bundle/syntastic/plugin/syntastic/loclist.vim deleted file mode 100644 index 3e9528b..0000000 --- a/vim/bundle/syntastic/plugin/syntastic/loclist.vim +++ /dev/null @@ -1,439 +0,0 @@ -if exists('g:loaded_syntastic_loclist') || !exists('g:loaded_syntastic_plugin') -    finish -endif -let g:loaded_syntastic_loclist = 1 - -let g:SyntasticLoclist = {} - -" Public methods {{{1 - -function! g:SyntasticLoclist.New(rawLoclist) abort " {{{2 -    let newObj = copy(self) - -    let llist = filter(copy(a:rawLoclist), 'v:val["valid"] == 1') - -    for e in llist -        if get(e, 'type', '') ==# '' -            let e['type'] = 'E' -        endif -    endfor - -    let newObj._rawLoclist = llist -    let newObj._name = '' -    let newObj._owner = bufnr('') -    let newObj._sorted = 0 -    let newObj._columns = g:syntastic_cursor_columns - -    return newObj -endfunction " }}}2 - -function! g:SyntasticLoclist.current() abort " {{{2 -    if !exists('b:syntastic_loclist') || empty(b:syntastic_loclist) -        let b:syntastic_loclist = g:SyntasticLoclist.New([]) -    endif -    return b:syntastic_loclist -endfunction " }}}2 - -function! g:SyntasticLoclist.extend(other) abort " {{{2 -    let list = self.copyRaw() -    call extend(list, a:other.copyRaw()) -    return g:SyntasticLoclist.New(list) -endfunction " }}}2 - -function! g:SyntasticLoclist.sort() abort " {{{2 -    if !self._sorted -        for e in self._rawLoclist -            call s:_set_screen_column(e) -        endfor - -        call sort(self._rawLoclist, self._columns ? 's:_compare_error_items_by_columns' : 's:_compare_error_items_by_lines') - -        let self._sorted = 1 -    endif -endfunction " }}}2 - -function! g:SyntasticLoclist.isEmpty() abort " {{{2 -    return empty(self._rawLoclist) -endfunction " }}}2 - -function! g:SyntasticLoclist.isNewerThan(stamp) abort " {{{2 -    if !exists('self._stamp') -        let self._stamp = [] -        return 0 -    endif -    return syntastic#util#compareLexi(self._stamp, a:stamp) > 0 -endfunction " }}}2 - -function! g:SyntasticLoclist.copyRaw() abort " {{{2 -    return copy(self._rawLoclist) -endfunction " }}}2 - -function! g:SyntasticLoclist.getRaw() abort " {{{2 -    return self._rawLoclist -endfunction " }}}2 - -function! g:SyntasticLoclist.getBuffers() abort " {{{2 -    return syntastic#util#unique(map(copy(self._rawLoclist), 'str2nr(v:val["bufnr"])') + [self._owner]) -endfunction " }}}2 - -function! g:SyntasticLoclist.getCursorColumns() abort " {{{2 -    return self._columns -endfunction " }}}2 - -function! g:SyntasticLoclist.getStatuslineFlag() abort " {{{2 -    if !exists('self._stl_format') -        let self._stl_format = '' -    endif -    if !exists('self._stl_flag') -        let self._stl_flag = '' -    endif - -    if g:syntastic_stl_format !=# self._stl_format -        let self._stl_format = g:syntastic_stl_format - -        if !empty(self._rawLoclist) -            let errors = self.errors() -            let warnings = self.warnings() - -            let num_errors = len(errors) -            let num_warnings = len(warnings) -            let num_issues = len(self._rawLoclist) - -            let output = self._stl_format - -            "hide stuff wrapped in %E(...) unless there are errors -            let output = substitute(output, '\m\C%E{\([^}]*\)}', num_errors ? '\1' : '' , 'g') - -            "hide stuff wrapped in %W(...) unless there are warnings -            let output = substitute(output, '\m\C%W{\([^}]*\)}', num_warnings ? '\1' : '' , 'g') - -            "hide stuff wrapped in %B(...) unless there are both errors and warnings -            let output = substitute(output, '\m\C%B{\([^}]*\)}', (num_warnings && num_errors) ? '\1' : '' , 'g') - -            let flags = { -                \ '%':  '%', -                \ 't':  num_issues, -                \ 'e':  num_errors, -                \ 'w':  num_warnings, -                \ 'N':  (num_issues ? fnamemodify( bufname(self._rawLoclist[0]['bufnr']), ':t') : ''), -                \ 'P':  (num_issues ? fnamemodify( bufname(self._rawLoclist[0]['bufnr']), ':p:~:.') : ''), -                \ 'F':  (num_issues ? self._rawLoclist[0]['lnum'] : ''), -                \ 'ne': (num_errors ? fnamemodify( bufname(errors[0]['bufnr']), ':t') : ''), -                \ 'pe': (num_errors ? fnamemodify( bufname(errors[0]['bufnr']), ':p:~:.') : ''), -                \ 'fe': (num_errors ? errors[0]['lnum'] : ''), -                \ 'nw': (num_warnings ? fnamemodify( bufname(warnings[0]['bufnr']), ':t') : ''), -                \ 'pw': (num_warnings ? fnamemodify( bufname(warnings[0]['bufnr']), ':p:~:.') : ''), -                \ 'fw': (num_warnings ? warnings[0]['lnum'] : '') } -            let output = substitute(output, '\v\C\%(-?\d*%(\.\d+)?)([npf][ew]|[NPFtew%])', '\=syntastic#util#wformat(submatch(1), flags[submatch(2)])', 'g') - -            let self._stl_flag = output -        else -            let self._stl_flag = '' -        endif -    endif - -    return self._stl_flag -endfunction " }}}2 - -function! g:SyntasticLoclist.getFirstError(...) abort " {{{2 -    let max_issues = len(self._rawLoclist) -    if a:0 && a:1 < max_issues -        let max_issues = a:1 -    endif - -    for idx in range(max_issues) -        if get(self._rawLoclist[idx], 'type', '') ==? 'E' -            return idx + 1 -        endif -    endfor - -    return 0 -endfunction " }}}2 - -function! g:SyntasticLoclist.getName() abort " {{{2 -    return len(self._name) -endfunction " }}}2 - -function! g:SyntasticLoclist.setName(name) abort " {{{2 -    let self._name = a:name -endfunction " }}}2 - -function! g:SyntasticLoclist.getOwner() abort " {{{2 -    return self._owner -endfunction " }}}2 - -function! g:SyntasticLoclist.setOwner(buffer) abort " {{{2 -    let self._owner = type(a:buffer) == type(0) ? a:buffer : str2nr(a:buffer) -endfunction " }}}2 - -function! g:SyntasticLoclist.deploy() abort " {{{2 -    call self.setOwner(bufnr('')) -    let self._stamp = syntastic#util#stamp() -    for buf in self.getBuffers() -        call setbufvar(buf, 'syntastic_loclist', self) -    endfor -endfunction " }}}2 - -function! g:SyntasticLoclist.destroy() abort " {{{2 -    for buf in self.getBuffers() -        call setbufvar(buf, 'syntastic_loclist', {}) -    endfor -endfunction " }}}2 - -function! g:SyntasticLoclist.decorate(tag) abort " {{{2 -    for e in self._rawLoclist -        let e['text'] .= ' [' . a:tag . ']' -    endfor -endfunction " }}}2 - -function! g:SyntasticLoclist.balloons() abort " {{{2 -    if !exists('self._cachedBalloons') -        let sep = has('balloon_multiline') ? "\n" : ' | ' - -        let self._cachedBalloons = {} -        for e in self._rawLoclist -            let buf = e['bufnr'] - -            if !has_key(self._cachedBalloons, buf) -                let self._cachedBalloons[buf] = {} -            endif - -            if has_key(self._cachedBalloons[buf], e['lnum']) -                let self._cachedBalloons[buf][e['lnum']] .= sep . e['text'] -            else -                let self._cachedBalloons[buf][e['lnum']] = e['text'] -            endif -        endfor -    endif - -    return get(self._cachedBalloons, bufnr(''), {}) -endfunction " }}}2 - -function! g:SyntasticLoclist.errors() abort " {{{2 -    if !exists('self._cachedErrors') -        let self._cachedErrors = self.filter({'type': 'E'}) -    endif -    return self._cachedErrors -endfunction " }}}2 - -function! g:SyntasticLoclist.warnings() abort " {{{2 -    if !exists('self._cachedWarnings') -        let self._cachedWarnings = self.filter({'type': 'W'}) -    endif -    return self._cachedWarnings -endfunction " }}}2 - -" Legacy function.  Syntastic no longer calls it, but we keep it -" around because other plugins (f.i. powerline) depend on it. -function! g:SyntasticLoclist.hasErrorsOrWarningsToDisplay() abort " {{{2 -    return !self.isEmpty() -endfunction " }}}2 - -" cache used by EchoCurrentError() -function! g:SyntasticLoclist.messages(buf) abort " {{{2 -    if !exists('self._cachedMessages') -        let self._cachedMessages = {} - -        let errors = self.errors() + self.warnings() -        for e in errors -            let b = e['bufnr'] -            let l = e['lnum'] - -            if !has_key(self._cachedMessages, b) -                let self._cachedMessages[b] = {} -            endif - -            if !has_key(self._cachedMessages[b], l) -                let self._cachedMessages[b][l] = [e] -            elseif self._columns -                call add(self._cachedMessages[b][l], e) -            endif -        endfor - -        if self._columns -            if !self._sorted -                for b in keys(self._cachedMessages) -                    for l in keys(self._cachedMessages[b]) -                        if len(self._cachedMessages[b][l]) > 1 -                            for e in self._cachedMessages[b][l] -                                call s:_set_screen_column(e) -                            endfor -                            call sort(self._cachedMessages[b][l], 's:_compare_error_items_by_columns') -                        endif -                    endfor -                endfor -            endif - -            for b in keys(self._cachedMessages) -                for l in keys(self._cachedMessages[b]) -                    call s:_remove_shadowed_items(self._cachedMessages[b][l]) -                endfor -            endfor -        endif -    endif - -    return get(self._cachedMessages, a:buf, {}) -endfunction " }}}2 - -"Filter the list and return new native loclist -"e.g. -"  .filter({'bufnr': 10, 'type': 'e'}) -" -"would return all errors for buffer 10. -" -"Note that all comparisons are done with ==? -function! g:SyntasticLoclist.filter(filters) abort " {{{2 -    let conditions = values(map(copy(a:filters), 's:_translate(v:key, v:val)')) -    let filter = len(conditions) == 1 ? -        \ conditions[0] : join(map(conditions, '"(" . v:val . ")"'), ' && ') -    return filter(copy(self._rawLoclist), filter) -endfunction " }}}2 - -function! g:SyntasticLoclist.setloclist() abort " {{{2 -    if !exists('w:syntastic_loclist_set') -        let w:syntastic_loclist_set = [] -    endif -    if empty(w:syntastic_loclist_set) || w:syntastic_loclist_set != [bufnr(''), b:changedtick] -        let replace = g:syntastic_reuse_loc_lists && !empty(w:syntastic_loclist_set) -        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'loclist: setloclist ' . (replace ? '(replace)' : '(new)')) -        call setloclist(0, self.getRaw(), replace ? 'r' : ' ') -        call syntastic#util#setChangedtick() -        let w:syntastic_loclist_set = [bufnr(''), b:syntastic_changedtick] -    endif -endfunction " }}}2 - -"display the cached errors for this buf in the location list -function! g:SyntasticLoclist.show() abort " {{{2 -    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'loclist: show') -    call self.setloclist() - -    if !self.isEmpty() -        let num = winnr() -        execute 'lopen ' . syntastic#util#var('loc_list_height') -        if num != winnr() -            execute num . 'wincmd w' -        endif - -        " try to find the loclist window and set w:quickfix_title -        let errors = getloclist(0) -        for buf in tabpagebuflist() -            if buflisted(buf) && bufloaded(buf) && getbufvar(buf, '&buftype') ==# 'quickfix' -                let win = bufwinnr(buf) -                let title = getwinvar(win, 'quickfix_title') - -                " TODO: try to make sure we actually own this window; sadly, -                " errors == getloclist(0) is the only somewhat safe way to -                " achieve that -                if strpart(title, 0, 16) ==# ':SyntasticCheck ' || -                            \ ( (title ==# '' || title ==# ':setloclist()') && errors == getloclist(0) ) -                    call setwinvar(win, 'quickfix_title', ':SyntasticCheck ' . self._name) -                    call setbufvar(buf, 'syntastic_owner_buffer', self._owner) -                endif -            endif -        endfor -    endif -endfunction " }}}2 - -" }}}1 - -" Public functions {{{1 - -function! SyntasticLoclistHide() abort " {{{2 -    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'loclist: hide') -    silent! lclose -endfunction " }}}2 - -" }}}1 - -" Utilities {{{1 - -function! s:_translate(key, val) abort " {{{2 -    return 'get(v:val, ' . string(a:key) . ', "") ==? ' . string(a:val) -endfunction " }}}2 - -function! s:_set_screen_column(item) abort " {{{2 -    if !has_key(a:item, 'scol') -        let col = get(a:item, 'col', 0) -        if col != 0 && get(a:item, 'vcol', 0) == 0 -            let buf = str2nr(a:item['bufnr']) -            try -                let line = getbufline(buf, a:item['lnum'])[0] -            catch  /\m^Vim\%((\a\+)\)\=:E684/ -                let line = '' -            endtry -            let a:item['scol'] = syntastic#util#screenWidth(strpart(line, 0, col), getbufvar(buf, '&tabstop')) -        else -            let a:item['scol'] = col -        endif -    endif -endfunction " }}}2 - -function! s:_remove_shadowed_items(errors) abort " {{{2 -    " keep only the first message at a given column -    let i = 0 -    while i < len(a:errors) - 1 -        let j = i + 1 -        let dupes = 0 -        while j < len(a:errors) && a:errors[j].scol == a:errors[i].scol -            let dupes = 1 -            let j += 1 -        endwhile -        if dupes -            call remove(a:errors, i + 1, j - 1) -        endif -        let i += 1 -    endwhile - -    " merge messages with the same text -    let i = 0 -    while i < len(a:errors) - 1 -        let j = i + 1 -        let dupes = 0 -        while j < len(a:errors) && a:errors[j].text == a:errors[i].text -            let dupes = 1 -            let j += 1 -        endwhile -        if dupes -            call remove(a:errors, i + 1, j - 1) -        endif -        let i += 1 -    endwhile -endfunction " }}}2 - -function! s:_compare_error_items_by_columns(a, b) abort " {{{2 -    if a:a['bufnr'] != a:b['bufnr'] -        " group by file -        return a:a['bufnr'] - a:b['bufnr'] -    elseif a:a['lnum'] != a:b['lnum'] -        " sort by line -        return a:a['lnum'] - a:b['lnum'] -    elseif a:a['scol'] != a:b['scol'] -        " sort by screen column -        return a:a['scol'] - a:b['scol'] -    elseif a:a['type'] !=? a:b['type'] -        " errors take precedence over warnings -        return a:a['type'] ==? 'E' ? -1 : 1 -    else -        return 0 -    endif -endfunction " }}}2 - -function! s:_compare_error_items_by_lines(a, b) abort " {{{2 -    if a:a['bufnr'] != a:b['bufnr'] -        " group by file -        return a:a['bufnr'] - a:b['bufnr'] -    elseif a:a['lnum'] != a:b['lnum'] -        " sort by line -        return a:a['lnum'] - a:b['lnum'] -    elseif a:a['type'] !=? a:b['type'] -        " errors take precedence over warnings -        return a:a['type'] ==? 'E' ? -1 : 1 -    else -        " sort by screen column -        return a:a['scol'] - a:b['scol'] -    endif -endfunction " }}}2 - -" }}}1 - -" vim: set sw=4 sts=4 et fdm=marker: diff --git a/vim/bundle/syntastic/plugin/syntastic/modemap.vim b/vim/bundle/syntastic/plugin/syntastic/modemap.vim deleted file mode 100644 index 501c82b..0000000 --- a/vim/bundle/syntastic/plugin/syntastic/modemap.vim +++ /dev/null @@ -1,117 +0,0 @@ -if exists('g:loaded_syntastic_modemap') || !exists('g:loaded_syntastic_plugin') -    finish -endif -let g:loaded_syntastic_modemap = 1 - -let g:SyntasticModeMap = {} - -" Public methods {{{1 - -function! g:SyntasticModeMap.Instance() abort " {{{2 -    if !exists('s:SyntasticModeMapInstance') -        let s:SyntasticModeMapInstance = copy(self) -        call s:SyntasticModeMapInstance.synch() -    endif - -    return s:SyntasticModeMapInstance -endfunction " }}}2 - -function! g:SyntasticModeMap.synch() abort " {{{2 -    if exists('g:syntastic_mode_map') -        let self._mode = get(g:syntastic_mode_map, 'mode', 'active') -        let self._activeFiletypes = copy(get(g:syntastic_mode_map, 'active_filetypes', [])) -        let self._passiveFiletypes = copy(get(g:syntastic_mode_map, 'passive_filetypes', [])) -    else -        let self._mode = 'active' -        let self._activeFiletypes = [] -        let self._passiveFiletypes = [] -    endif -endfunction " }}}2 - -function! g:SyntasticModeMap.allowsAutoChecking(filetype) abort " {{{2 -    let fts = split(a:filetype, '\m\.') - -    if self.isPassive() -        return self._isOneFiletypeActive(fts) -    else -        return self._noFiletypesArePassive(fts) -    endif -endfunction " }}}2 - -function! g:SyntasticModeMap.doAutoChecking() abort " {{{2 -    let local_mode = get(b:, 'syntastic_mode', '') -    if local_mode ==# 'active' || local_mode ==# 'passive' -        return local_mode ==# 'active' -    endif - -    return self.allowsAutoChecking(&filetype) -endfunction " }}}2 - -function! g:SyntasticModeMap.isPassive() abort " {{{2 -    return self._mode ==# 'passive' -endfunction " }}}2 - -function! g:SyntasticModeMap.toggleMode() abort " {{{2 -    call self.synch() - -    if self._mode ==# 'active' -        let self._mode = 'passive' -    else -        let self._mode = 'active' -    endif - -    "XXX Changing a global variable.  Tsk, tsk... -    if !exists('g:syntastic_mode_map') -        let g:syntastic_mode_map = {} -    endif -    let g:syntastic_mode_map['mode'] = self._mode -endfunction " }}}2 - -function! g:SyntasticModeMap.echoMode() abort " {{{2 -    echo 'Syntastic: ' . self._mode . ' mode enabled' -endfunction " }}}2 - -function! g:SyntasticModeMap.modeInfo(filetypes) abort " {{{2 -    echomsg 'Syntastic version: ' . g:_SYNTASTIC_VERSION . ' (Vim ' . v:version . ', ' . g:_SYNTASTIC_UNAME . ')' -    let type = len(a:filetypes) ? a:filetypes[0] : &filetype -    echomsg 'Info for filetype: ' . type - -    call self.synch() -    echomsg 'Global mode: ' . self._mode -    if self._mode ==# 'active' -        if len(self._passiveFiletypes) -            let plural = len(self._passiveFiletypes) != 1 ? 's' : '' -            echomsg 'Passive filetype' . plural . ': ' . join(sort(copy(self._passiveFiletypes))) -        endif -    else -        if len(self._activeFiletypes) -            let plural = len(self._activeFiletypes) != 1 ? 's' : '' -            echomsg 'Active filetype' . plural . ': ' . join(sort(copy(self._activeFiletypes))) -        endif -    endif -    echomsg 'Filetype ' . type . ' is ' . (self.allowsAutoChecking(type) ? 'active' : 'passive') - -    if !len(a:filetypes) -        if exists('b:syntastic_mode') && (b:syntastic_mode ==# 'active' || b:syntastic_mode ==# 'passive') -            echomsg 'Local mode: ' . b:syntastic_mode -        endif - -        echomsg 'The current file will ' . (self.doAutoChecking() ? '' : 'not ') . 'be checked automatically' -    endif -endfunction " }}}2 - -" }}}1 - -" Private methods {{{1 - -function! g:SyntasticModeMap._isOneFiletypeActive(filetypes) abort " {{{2 -    return !empty(filter(copy(a:filetypes), 'index(self._activeFiletypes, v:val) != -1')) -endfunction " }}}2 - -function! g:SyntasticModeMap._noFiletypesArePassive(filetypes) abort " {{{2 -    return empty(filter(copy(a:filetypes), 'index(self._passiveFiletypes, v:val) != -1')) -endfunction " }}}2 - -" }}}1 - -" vim: set sw=4 sts=4 et fdm=marker: diff --git a/vim/bundle/syntastic/plugin/syntastic/notifiers.vim b/vim/bundle/syntastic/plugin/syntastic/notifiers.vim deleted file mode 100644 index fe158ca..0000000 --- a/vim/bundle/syntastic/plugin/syntastic/notifiers.vim +++ /dev/null @@ -1,86 +0,0 @@ -if exists('g:loaded_syntastic_notifiers') || !exists('g:loaded_syntastic_plugin') -    finish -endif -let g:loaded_syntastic_notifiers = 1 - -let g:SyntasticNotifiers = {} - -let s:_NOTIFIER_TYPES = ['signs', 'balloons', 'highlighting', 'cursor', 'autoloclist'] -lockvar! s:_NOTIFIER_TYPES - -let s:_PERSISTENT_NOTIFIERS = ['signs', 'balloons'] -lockvar! s:_PERSISTENT_NOTIFIERS - -" Public methods {{{1 - -function! g:SyntasticNotifiers.Instance() abort " {{{2 -    if !exists('s:SyntasticNotifiersInstance') -        let s:SyntasticNotifiersInstance = copy(self) -        call s:SyntasticNotifiersInstance._initNotifiers() -    endif - -    return s:SyntasticNotifiersInstance -endfunction " }}}2 - -function! g:SyntasticNotifiers.refresh(loclist) abort " {{{2 -    if !a:loclist.isEmpty() && !a:loclist.isNewerThan([]) -        " loclist not fully constructed yet -        return -    endif - -    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'notifiers: refresh') -    for type in self._enabled_types -        let class = substitute(type, '\m.*', 'Syntastic\u&Notifier', '') -        if !has_key(g:{class}, 'enabled') || self._notifier[type].enabled() -            if index(s:_PERSISTENT_NOTIFIERS, type) > -1 -                " refresh only if loclist has changed since last call -                if !exists('b:syntastic_private_' . type . '_stamp') -                    let b:syntastic_private_{type}_stamp = [] -                endif -                if a:loclist.isNewerThan(b:syntastic_private_{type}_stamp) || a:loclist.isEmpty() -                    call self._notifier[type].refresh(a:loclist) -                    let b:syntastic_private_{type}_stamp = syntastic#util#stamp() -                endif -            else -                call self._notifier[type].refresh(a:loclist) -            endif -        endif -    endfor -endfunction " }}}2 - -function! g:SyntasticNotifiers.reset(loclist) abort " {{{2 -    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'notifiers: reset') -    for type in self._enabled_types -        let class = substitute(type, '\m.*', 'Syntastic\u&Notifier', '') - -        " reset notifiers regardless if they are enabled or not, since -        " the user might have disabled them since the last refresh(); -        " notifiers MUST be prepared to deal with reset() when disabled -        if has_key(g:{class}, 'reset') -            call self._notifier[type].reset(a:loclist) -        endif - -        " also reset stamps -        if index(s:_PERSISTENT_NOTIFIERS, type) > -1 -            let b:syntastic_private_{type}_stamp = [] -        endif -    endfor -endfunction " }}}2 - -" }}}1 - -" Private methods {{{1 - -function! g:SyntasticNotifiers._initNotifiers() abort " {{{2 -    let self._notifier = {} -    for type in s:_NOTIFIER_TYPES -        let class = substitute(type, '\m.*', 'Syntastic\u&Notifier', '') -        let self._notifier[type] = g:{class}.New() -    endfor - -    let self._enabled_types = copy(s:_NOTIFIER_TYPES) -endfunction " }}}2 - -" }}}1 - -" vim: set sw=4 sts=4 et fdm=marker: diff --git a/vim/bundle/syntastic/plugin/syntastic/registry.vim b/vim/bundle/syntastic/plugin/syntastic/registry.vim deleted file mode 100644 index 0c2d261..0000000 --- a/vim/bundle/syntastic/plugin/syntastic/registry.vim +++ /dev/null @@ -1,375 +0,0 @@ -if exists('g:loaded_syntastic_registry') || !exists('g:loaded_syntastic_plugin') -    finish -endif -let g:loaded_syntastic_registry = 1 - -" Initialisation {{{1 - -let s:_DEFAULT_CHECKERS = { -        \ 'actionscript':  ['mxmlc'], -        \ 'ada':           ['gcc'], -        \ 'ansible':       ['ansible_lint'], -        \ 'apiblueprint':  ['drafter'], -        \ 'applescript':   ['osacompile'], -        \ 'asciidoc':      ['asciidoc'], -        \ 'asm':           ['gcc'], -        \ 'bro':           ['bro'], -        \ 'bemhtml':       ['bemhtmllint'], -        \ 'c':             ['gcc'], -        \ 'cabal':         ['cabal'], -        \ 'chef':          ['foodcritic'], -        \ 'co':            ['coco'], -        \ 'cobol':         ['cobc'], -        \ 'coffee':        ['coffee', 'coffeelint'], -        \ 'coq':           ['coqtop'], -        \ 'cpp':           ['gcc'], -        \ 'cs':            ['mcs'], -        \ 'css':           ['csslint'], -        \ 'cucumber':      ['cucumber'], -        \ 'cuda':          ['nvcc'], -        \ 'd':             ['dmd'], -        \ 'dart':          ['dartanalyzer'], -        \ 'docbk':         ['xmllint'], -        \ 'dockerfile':    ['dockerfile_lint'], -        \ 'dustjs':        ['swiffer'], -        \ 'elixir':        [], -        \ 'erlang':        ['escript'], -        \ 'eruby':         ['ruby'], -        \ 'fortran':       ['gfortran'], -        \ 'glsl':          ['cgc'], -        \ 'go':            [], -        \ 'haml':          ['haml'], -        \ 'handlebars':    ['handlebars'], -        \ 'haskell':       ['hdevtools', 'hlint'], -        \ 'haxe':          ['haxe'], -        \ 'hss':           ['hss'], -        \ 'html':          ['tidy'], -        \ 'jade':          ['jade_lint'], -        \ 'java':          ['javac'], -        \ 'javascript':    ['jshint', 'jslint'], -        \ 'json':          ['jsonlint', 'jsonval'], -        \ 'less':          ['lessc'], -        \ 'lex':           ['flex'], -        \ 'limbo':         ['limbo'], -        \ 'lisp':          ['clisp'], -        \ 'llvm':          ['llvm'], -        \ 'lua':           ['luac'], -        \ 'markdown':      ['mdl'], -        \ 'matlab':        ['mlint'], -        \ 'mercury':       ['mmc'], -        \ 'nasm':          ['nasm'], -        \ 'nix':           ['nix'], -        \ 'nroff':         ['mandoc'], -        \ 'objc':          ['gcc'], -        \ 'objcpp':        ['gcc'], -        \ 'ocaml':         ['camlp4o'], -        \ 'perl':          ['perlcritic'], -        \ 'php':           ['php', 'phpcs', 'phpmd'], -        \ 'po':            ['msgfmt'], -        \ 'pod':           ['podchecker'], -        \ 'puppet':        ['puppet', 'puppetlint'], -        \ 'pug':           ['pug_lint'], -        \ 'python':        ['python', 'flake8', 'pylint'], -        \ 'qml':           ['qmllint'], -        \ 'r':             [], -        \ 'rmd':           [], -        \ 'racket':        ['racket'], -        \ 'rnc':           ['rnv'], -        \ 'rst':           ['rst2pseudoxml'], -        \ 'ruby':          ['mri'], -        \ 'sass':          ['sass'], -        \ 'scala':         ['fsc', 'scalac'], -        \ 'scss':          ['sass', 'scss_lint'], -        \ 'sh':            ['sh', 'shellcheck'], -        \ 'slim':          ['slimrb'], -        \ 'sml':           ['smlnj'], -        \ 'spec':          ['rpmlint'], -        \ 'sql':           ['sqlint'], -        \ 'stylus':        ['stylint'], -        \ 'tcl':           ['nagelfar'], -        \ 'tex':           ['lacheck', 'chktex'], -        \ 'texinfo':       ['makeinfo'], -        \ 'text':          [], -        \ 'trig':          ['rapper'], -        \ 'turtle':        ['rapper'], -        \ 'twig':          ['twiglint'], -        \ 'typescript':    ['tsc'], -        \ 'vala':          ['valac'], -        \ 'verilog':       ['verilator'], -        \ 'vhdl':          ['ghdl'], -        \ 'vim':           ['vimlint'], -        \ 'xhtml':         ['tidy'], -        \ 'xml':           ['xmllint'], -        \ 'xslt':          ['xmllint'], -        \ 'xquery':        ['basex'], -        \ 'yacc':          ['bison'], -        \ 'yaml':          ['jsyaml'], -        \ 'yang':          ['pyang'], -        \ 'z80':           ['z80syntaxchecker'], -        \ 'zpt':           ['zptlint'], -        \ 'zsh':           ['zsh'], -    \ } -lockvar! s:_DEFAULT_CHECKERS - -let s:_DEFAULT_FILETYPE_MAP = { -        \ 'gentoo-metadata': 'xml', -        \ 'groff': 'nroff', -        \ 'lhaskell': 'haskell', -        \ 'litcoffee': 'coffee', -        \ 'mail': 'text', -        \ 'mkd': 'markdown', -        \ 'pe-puppet': 'puppet', -        \ 'sgml': 'docbk', -        \ 'sgmllnx': 'docbk', -    \ } -lockvar! s:_DEFAULT_FILETYPE_MAP - -let s:_ECLIM_TYPES = [ -        \ 'c', -        \ 'cpp', -        \ 'html', -        \ 'java', -        \ 'php', -        \ 'python', -        \ 'ruby', -    \ ] -lockvar! s:_ECLIM_TYPES - -let s:_YCM_TYPES = [ -        \ 'c', -        \ 'cpp', -        \ 'objc', -        \ 'objcpp', -    \ ] -lockvar! s:_YCM_TYPES - -let g:SyntasticRegistry = {} - -" }}}1 - -" Public methods {{{1 - -" Note: Handling of filetype aliases: all public methods take aliases as -" parameters, all private methods take normalized filetypes.  Public methods -" are thus supposed to normalize filetypes before calling private methods. - -function! g:SyntasticRegistry.Instance() abort " {{{2 -    if !exists('s:SyntasticRegistryInstance') -        let s:SyntasticRegistryInstance = copy(self) -        let s:SyntasticRegistryInstance._checkerMap = {} -    endif - -    return s:SyntasticRegistryInstance -endfunction " }}}2 - -function! g:SyntasticRegistry.CreateAndRegisterChecker(args) abort " {{{2 -    let registry = g:SyntasticRegistry.Instance() - -    if has_key(a:args, 'redirect') -        let [ft, name] = split(a:args['redirect'], '/') -        call registry._loadCheckersFor(ft, 1) - -        let clone = get(registry._checkerMap[ft], name, {}) -        if empty(clone) -            throw 'Syntastic: Checker ' . a:args['redirect'] . ' redirects to unregistered checker ' . ft . '/' . name -        endif - -        let checker = g:SyntasticChecker.New(a:args, clone) -    else -        let checker = g:SyntasticChecker.New(a:args) -    endif -    call registry._registerChecker(checker) -endfunction " }}}2 - -" Given a list of checker names hints_list, return a map name --> checker. -" If hints_list is empty, user settings are are used instead. Checkers are -" not checked for availability (that is, the corresponding IsAvailable() are -" not run). -function! g:SyntasticRegistry.getCheckers(ftalias, hints_list) abort " {{{2 -    let ft = s:_normalise_filetype(a:ftalias) -    call self._loadCheckersFor(ft, 0) - -    let checkers_map = self._checkerMap[ft] -    if empty(checkers_map) -        return [] -    endif - -    call self._checkDeprecation(ft) - -    let names = -        \ !empty(a:hints_list) ? syntastic#util#unique(a:hints_list) : -        \ exists('b:syntastic_checkers') ? b:syntastic_checkers : -        \ exists('g:syntastic_' . ft . '_checkers') ? g:syntastic_{ft}_checkers : -        \ get(s:_DEFAULT_CHECKERS, ft, 0) - -    return type(names) == type([]) ? -        \ self._filterCheckersByName(checkers_map, names) : [checkers_map[keys(checkers_map)[0]]] -endfunction " }}}2 - -" Same as getCheckers(), but keep only the available checkers.  This runs the -" corresponding IsAvailable() functions for all checkers. -function! g:SyntasticRegistry.getCheckersAvailable(ftalias, hints_list) abort " {{{2 -    return filter(self.getCheckers(a:ftalias, a:hints_list), 'v:val.isAvailable()') -endfunction " }}}2 - -" Same as getCheckers(), but keep only the checkers that are available and -" disabled.  This runs the corresponding IsAvailable() functions for all checkers. -function! g:SyntasticRegistry.getCheckersDisabled(ftalias, hints_list) abort " {{{2 -    return filter(self.getCheckers(a:ftalias, a:hints_list), 'v:val.isDisabled() && v:val.isAvailable()') -endfunction " }}}2 - -function! g:SyntasticRegistry.getKnownFiletypes() abort " {{{2 -    let types = keys(s:_DEFAULT_CHECKERS) - -    call extend(types, keys(s:_DEFAULT_FILETYPE_MAP)) - -    if exists('g:syntastic_filetype_map') -        call extend(types, keys(g:syntastic_filetype_map)) -    endif - -    if exists('g:syntastic_extra_filetypes') && type(g:syntastic_extra_filetypes) == type([]) -        call extend(types, g:syntastic_extra_filetypes) -    endif - -    return syntastic#util#unique(types) -endfunction " }}}2 - -function! g:SyntasticRegistry.getNamesOfAvailableCheckers(ftalias) abort " {{{2 -    let ft = s:_normalise_filetype(a:ftalias) -    call self._loadCheckersFor(ft, 0) -    return keys(filter( copy(self._checkerMap[ft]), 'v:val.isAvailable()' )) -endfunction " }}}2 - -function! g:SyntasticRegistry.echoInfoFor(ftalias_list) abort " {{{2 -    let ft_list = syntastic#util#unique(map( copy(a:ftalias_list), 's:_normalise_filetype(v:val)' )) -    if len(ft_list) != 1 -        let available = [] -        let active = [] -        let disabled = [] - -        for ft in ft_list -            call extend(available, map( self.getNamesOfAvailableCheckers(ft), 'ft . "/" . v:val' )) -            call extend(active, map( self.getCheckersAvailable(ft, []), 'ft . "/" . v:val.getName()' )) -            call extend(disabled, map( self.getCheckersDisabled(ft, []), 'ft . "/" . v:val.getName()' )) -        endfor -    else -        let ft = ft_list[0] -        let available = self.getNamesOfAvailableCheckers(ft) -        let active = map(self.getCheckersAvailable(ft, []), 'v:val.getName()') -        let disabled = map(self.getCheckersDisabled(ft, []), 'v:val.getName()') -    endif - -    let cnt = len(available) -    let plural = cnt != 1 ? 's' : '' -    let cklist = cnt ? join(sort(available)) : '-' -    echomsg 'Available checker' . plural . ': ' . cklist - -    let cnt = len(active) -    let plural = cnt != 1 ? 's' : '' -    let cklist = cnt ? join(active) : '-' -    echomsg 'Currently enabled checker' . plural . ': ' . cklist - -    let cnt = len(disabled) -    let plural = cnt != 1 ? 's' : '' -    if len(disabled) -        let cklist = join(sort(disabled)) -        echomsg 'Checker' . plural . ' disabled for security reasons: ' . cklist -    endif - -    " Eclim feels entitled to mess with syntastic's variables {{{3 -    if exists(':EclimValidate') && get(g:, 'EclimFileTypeValidate', 1) -        let disabled = filter(copy(ft_list), 's:_disabled_by_eclim(v:val)') -        let cnt = len(disabled) -        if cnt -            let plural = cnt != 1 ? 's' : '' -            let cklist = join(disabled, ', ') -            echomsg 'Checkers for filetype' . plural . ' ' . cklist . ' possibly disabled by Eclim' -        endif -    endif -    " }}}3 - -    " So does YouCompleteMe {{{3 -    if exists('g:loaded_youcompleteme') && get(g:, 'ycm_show_diagnostics_ui', get(g:, 'ycm_register_as_syntastic_checker', 1)) -        let disabled = filter(copy(ft_list), 's:_disabled_by_ycm(v:val)') -        let cnt = len(disabled) -        if cnt -            let plural = cnt != 1 ? 's' : '' -            let cklist = join(disabled, ', ') -            echomsg 'Checkers for filetype' . plural . ' ' . cklist . ' possibly disabled by YouCompleteMe' -        endif -    endif -    " }}}3 -endfunction " }}}2 - -" }}}1 - -" Private methods {{{1 - -function! g:SyntasticRegistry._registerChecker(checker) abort " {{{2 -    let ft = a:checker.getFiletype() -    if !has_key(self._checkerMap, ft) -        let self._checkerMap[ft] = {} -    endif - -    let name = a:checker.getName() -    if has_key(self._checkerMap[ft], name) -        throw 'Syntastic: Duplicate syntax checker name: ' . ft . '/' . name -    endif - -    let self._checkerMap[ft][name] = a:checker -endfunction " }}}2 - -function! g:SyntasticRegistry._filterCheckersByName(checkers_map, list) abort " {{{2 -    return filter( map(copy(a:list), 'get(a:checkers_map, v:val, {})'), '!empty(v:val)' ) -endfunction " }}}2 - -function! g:SyntasticRegistry._loadCheckersFor(filetype, force) abort " {{{2 -    if !a:force && has_key(self._checkerMap, a:filetype) -        return -    endif - -    execute 'runtime! syntax_checkers/' . a:filetype . '/*.vim' - -    if !has_key(self._checkerMap, a:filetype) -        let self._checkerMap[a:filetype] = {} -    endif -endfunction " }}}2 - -" Check for obsolete variable g:syntastic_<filetype>_checker -function! g:SyntasticRegistry._checkDeprecation(filetype) abort " {{{2 -    if exists('g:syntastic_' . a:filetype . '_checker') && !exists('g:syntastic_' . a:filetype . '_checkers') -        let g:syntastic_{a:filetype}_checkers = [g:syntastic_{a:filetype}_checker] -        call syntastic#log#oneTimeWarn('variable g:syntastic_' . a:filetype . '_checker is deprecated') -    endif -endfunction " }}}2 - -" }}}1 - -" Utilities {{{1 - -"resolve filetype aliases, and replace - with _ otherwise we cant name -"syntax checker functions legally for filetypes like "gentoo-metadata" -function! s:_normalise_filetype(ftalias) abort " {{{2 -    let ft = get(s:_DEFAULT_FILETYPE_MAP, a:ftalias, a:ftalias) -    let ft = get(g:syntastic_filetype_map, ft, ft) -    let ft = substitute(ft, '\m-', '_', 'g') -    return ft -endfunction " }}}2 - -function! s:_disabled_by_eclim(filetype) abort " {{{2 -    if index(s:_ECLIM_TYPES, a:filetype) >= 0 -        let lang = toupper(a:filetype[0]) . a:filetype[1:] -        let ft = a:filetype !=# 'cpp' ? lang : 'C' -        return get(g:, 'Eclim' . lang . 'Validate', 1) && !get(g:, 'Eclim' . ft . 'SyntasticEnabled', 0) -    endif - -    return 0 -endfunction " }}}2 - -function! s:_disabled_by_ycm(filetype) abort " {{{2 -    return index(s:_YCM_TYPES, a:filetype) >= 0 -endfunction " }}}2 - -" }}}1 - -" vim: set sw=4 sts=4 et fdm=marker: diff --git a/vim/bundle/syntastic/plugin/syntastic/signs.vim b/vim/bundle/syntastic/plugin/syntastic/signs.vim deleted file mode 100644 index e3bafa0..0000000 --- a/vim/bundle/syntastic/plugin/syntastic/signs.vim +++ /dev/null @@ -1,138 +0,0 @@ -if exists('g:loaded_syntastic_notifier_signs') || !exists('g:loaded_syntastic_plugin') -    finish -endif -let g:loaded_syntastic_notifier_signs = 1 - -" Initialisation {{{1 - -" start counting sign ids at 5000, start here to hopefully avoid conflicting -" with any other code that places signs (not sure if this precaution is -" actually needed) -let s:first_sign_id = 5000 -let s:next_sign_id = s:first_sign_id - -let g:SyntasticSignsNotifier = {} - -let s:setup_done = 0 - -" }}}1 - -" Public methods {{{1 - -function! g:SyntasticSignsNotifier.New() abort " {{{2 -    let newObj = copy(self) -    return newObj -endfunction " }}}2 - -function! g:SyntasticSignsNotifier.enabled() abort " {{{2 -    return has('signs') && syntastic#util#var('enable_signs') -endfunction " }}}2 - -function! g:SyntasticSignsNotifier.refresh(loclist) abort " {{{2 -    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'signs: refresh') - -    let old_signs = copy(self._bufSignIds()) -    if self.enabled() -        if !s:setup_done -            call self._setup() -            let s:setup_done = 1 -            lockvar s:setup_done -        endif - -        call self._signErrors(a:loclist) -    endif -    call self._removeSigns(old_signs) -endfunction " }}}2 - -" }}}1 - -" Private methods {{{1 - -" One time setup: define our own sign types and highlighting -function! g:SyntasticSignsNotifier._setup() abort " {{{2 -    if has('signs') -        if !hlexists('SyntasticErrorSign') -            highlight link SyntasticErrorSign error -        endif -        if !hlexists('SyntasticWarningSign') -            highlight link SyntasticWarningSign todo -        endif -        if !hlexists('SyntasticStyleErrorSign') -            highlight link SyntasticStyleErrorSign SyntasticErrorSign -        endif -        if !hlexists('SyntasticStyleWarningSign') -            highlight link SyntasticStyleWarningSign SyntasticWarningSign -        endif -        if !hlexists('SyntasticStyleErrorLine') -            highlight link SyntasticStyleErrorLine SyntasticErrorLine -        endif -        if !hlexists('SyntasticStyleWarningLine') -            highlight link SyntasticStyleWarningLine SyntasticWarningLine -        endif - -        " define the signs used to display syntax and style errors/warns -        execute 'sign define SyntasticError text=' . g:syntastic_error_symbol . -            \ ' texthl=SyntasticErrorSign linehl=SyntasticErrorLine' -        execute 'sign define SyntasticWarning text=' . g:syntastic_warning_symbol . -            \ ' texthl=SyntasticWarningSign linehl=SyntasticWarningLine' -        execute 'sign define SyntasticStyleError text=' . g:syntastic_style_error_symbol . -            \ ' texthl=SyntasticStyleErrorSign linehl=SyntasticStyleErrorLine' -        execute 'sign define SyntasticStyleWarning text=' . g:syntastic_style_warning_symbol . -            \ ' texthl=SyntasticStyleWarningSign linehl=SyntasticStyleWarningLine' -    endif -endfunction " }}}2 - -" Place signs by all syntax errors in the buffer -function! g:SyntasticSignsNotifier._signErrors(loclist) abort " {{{2 -    let loclist = a:loclist -    if !loclist.isEmpty() - -        let buf = bufnr('') -        if !bufloaded(buf) -            " signs can be placed only in loaded buffers -            return -        endif - -        " errors come first, so that they are not masked by warnings -        let issues = copy(loclist.errors()) -        call extend(issues, loclist.warnings()) -        call filter(issues, 'v:val["bufnr"] == buf') -        let seen = {} - -        for i in issues -            if i['lnum'] > 0 && !has_key(seen, i['lnum']) -                let seen[i['lnum']] = 1 - -                let sign_severity = i['type'] ==? 'W' ? 'Warning' : 'Error' -                let sign_subtype = get(i, 'subtype', '') -                let sign_type = 'Syntastic' . sign_subtype . sign_severity - -                execute 'sign place ' . s:next_sign_id . ' line=' . i['lnum'] . ' name=' . sign_type . ' buffer=' . i['bufnr'] -                call add(self._bufSignIds(), s:next_sign_id) -                let s:next_sign_id += 1 -            endif -        endfor -    endif -endfunction " }}}2 - -" Remove the signs with the given ids from this buffer -function! g:SyntasticSignsNotifier._removeSigns(ids) abort " {{{2 -    if has('signs') -        for s in reverse(copy(a:ids)) -            execute 'sign unplace ' . s -            call remove(self._bufSignIds(), index(self._bufSignIds(), s)) -        endfor -    endif -endfunction " }}}2 - -" Get all the ids of the SyntaxError signs in the buffer -function! g:SyntasticSignsNotifier._bufSignIds() abort " {{{2 -    if !exists('b:syntastic_private_sign_ids') -        let b:syntastic_private_sign_ids = [] -    endif -    return b:syntastic_private_sign_ids -endfunction " }}}2 - -" }}}1 - -" vim: set sw=4 sts=4 et fdm=marker: | 
