SCRIPT /home/zma/project/vim-config/.vim/bundle/Syntastic/syntax_checkers/scala/fsc.vim Sourced 1 time Total time: 0.000289 Self time: 0.000141 count total (s) self (s) "============================================================================ "File: fsc.vim "Description: Syntax checking plugin for syntastic.vim "Maintainer: Gregor Uhlenheuer "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. " "============================================================================ 1 0.000013 if exists('g:loaded_syntastic_scala_fsc_checker') finish endif 1 0.000006 let g:loaded_syntastic_scala_fsc_checker = 1 1 0.000013 let s:save_cpo = &cpo 1 0.000012 set cpo&vim 1 0.000004 function! SyntaxCheckers_scala_fsc_GetLocList() dict call syntastic#log#deprecationWarn('scala_options', 'scala_fsc_args') " fsc has some serious problems with the " working directory changing after being started " that's why we better pass an absolute path let makeprg = self.makeprgBuild({ \ 'args_after': '-Ystop-after:parser', \ 'fname': syntastic#util#shexpand('%:p') }) let errorformat = \ '%E%f:%l: %trror: %m,' . \ '%Z%p^,' . \ '%-G%.%#' return SyntasticMake({ \ 'makeprg': makeprg, \ 'errorformat': errorformat }) endfunction 1 0.000164 0.000016 call g:SyntasticRegistry.CreateAndRegisterChecker({ \ 'filetype': 'scala', \ 'name': 'fsc'}) 1 0.000009 let &cpo = s:save_cpo 1 0.000002 unlet s:save_cpo " vim: set sw=4 sts=4 et fdm=marker: SCRIPT /home/zma/project/vim-config/.vim/bundle/Syntastic/syntax_checkers/scala/scalac.vim Sourced 1 time Total time: 0.000246 Self time: 0.000115 count total (s) self (s) "============================================================================ "File: scala.vim "Description: Syntax checking plugin for syntastic.vim "Maintainer: Rickey Visinski "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. " "============================================================================ 1 0.000007 if exists("g:loaded_syntastic_scala_scalac_checker") finish endif 1 0.000005 let g:loaded_syntastic_scala_scalac_checker = 1 1 0.000009 let s:save_cpo = &cpo 1 0.000015 set cpo&vim 1 0.000004 function! SyntaxCheckers_scala_scalac_GetLocList() dict call syntastic#log#deprecationWarn('scala_options', 'scala_scalac_args') let makeprg = self.makeprgBuild({ 'args_after': '-Ystop-after:parser' }) let errorformat = \ '%E%f:%l: %trror: %m,' . \ '%Z%p^,' . \ '%-G%.%#' return SyntasticMake({ \ 'makeprg': makeprg, \ 'errorformat': errorformat }) endfunction 1 0.000141 0.000010 call g:SyntasticRegistry.CreateAndRegisterChecker({ \ 'filetype': 'scala', \ 'name': 'scalac'}) 1 0.000016 let &cpo = s:save_cpo 1 0.000001 unlet s:save_cpo " vim: set sw=4 sts=4 et fdm=marker: SCRIPT /home/zma/project/vim-config/.vim/bundle/Syntastic/syntax_checkers/scala/scalastyle.vim Sourced 1 time Total time: 0.000245 Self time: 0.000147 count total (s) self (s) "============================================================================ "File: scalastyle.vim "Description: Syntax checking plugin for syntastic.vim "Maintainer: LCD 47 "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. " "============================================================================ 1 0.000006 if exists('g:loaded_syntastic_scala_scalastyle_checker') finish endif 1 0.000003 let g:loaded_syntastic_scala_scalastyle_checker = 1 1 0.000002 if !exists('g:syntastic_scala_scalastyle_jar') 1 0.000003 let g:syntastic_scala_scalastyle_jar = 'scalastyle-batch_2.10.jar' 1 0.000000 endif 1 0.000002 if !exists('g:syntastic_scala_scalastyle_config_file') 1 0.000002 let g:syntastic_scala_scalastyle_config_file = 'scalastyle_config.xml' 1 0.000000 endif 1 0.000006 let s:save_cpo = &cpo 1 0.000006 set cpo&vim 1 0.000002 function! SyntaxCheckers_scala_scalastyle_IsAvailable() dict if !executable(self.getExec()) return 0 endif let jar = expand(g:syntastic_scala_scalastyle_jar, 1) let conf_file = expand(g:syntastic_scala_scalastyle_config_file, 1) call self.log('filereadable(' . string(jar) . ') = ' . filereadable(jar) . ', ' . \ 'filereadable(' . string(conf_file) . ') = ' . filereadable(conf_file)) return filereadable(jar) && filereadable(conf_file) endfunction 1 0.000002 function! SyntaxCheckers_scala_scalastyle_GetLocList() dict let makeprg = self.makeprgBuild({ \ 'exe_after': ['-jar', expand(g:syntastic_scala_scalastyle_jar, 1)], \ 'args_before': ['-q', 'true', '-c', expand(g:syntastic_scala_scalastyle_config_file, 1)] }) let 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' let loclist = SyntasticMake({ \ 'makeprg': makeprg, \ 'errorformat': errorformat, \ 'subtype': 'Style', \ 'returns': [0, 1] }) for e in loclist if has_key(e, 'col') let e['col'] += 1 endif endfor return loclist endfunction 1 0.000107 0.000009 call g:SyntasticRegistry.CreateAndRegisterChecker({ \ 'filetype': 'scala', \ 'name': 'scalastyle', \ 'exec': 'java'}) 1 0.000007 let &cpo = s:save_cpo 1 0.000001 unlet s:save_cpo " vim: set sw=4 sts=4 et fdm=marker: FUNCTION 9() Called 1 time Total time: 0.000016 Self time: 0.000016 count total (s) self (s) 1 0.000003 let b:syntastic_private_balloons = {} 1 0.000005 if has('balloon_eval') call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'balloons: reset') unlet! b:syntastic_private_balloons set noballooneval endif FUNCTION syntastic#log#debug() Called 9 times Total time: 0.000073 Self time: 0.000048 count total (s) self (s) 9 0.000063 0.000038 if !s:_isDebugEnabled(a:level) 9 0.000006 return endif let leader = s:_log_timestamp() call s:_logRedirect(1) if a:0 > 0 " filter out dictionary functions echomsg leader . a:msg . ' ' . strtrans(string(type(a:1) == type({}) || type(a:1) == type([]) ? filter(copy(a:1), 'type(v:val) != type(function("tr"))') : a:1)) else echomsg leader . a:msg endif call s:_logRedirect(0) FUNCTION Tlist_Get_Tagname_By_Line() Called 6 times Total time: 0.000725 Self time: 0.000672 count total (s) self (s) 6 0.000037 if a:0 == 0 " Arguments are not supplied. Use the current buffer name " and line number 6 0.000055 let filename = bufname('%') 6 0.000032 let linenr = line('.') 6 0.000019 elseif a:0 == 2 " Filename and line number are specified let filename = a:1 let linenr = a:2 if linenr !~ '\d\+' " Invalid line number return "" endif else " Sufficient arguments are not supplied let msg = 'Usage: Tlist_Get_Tagname_By_Line ' call s:Tlist_Warning_Msg(msg) return "" endif " Make sure the current file has a name 6 0.000165 let filename = fnamemodify(filename, ':p') 6 0.000020 if filename == '' return "" endif 6 0.000139 0.000086 let fidx = s:Tlist_Get_File_Index(filename) 6 0.000014 if fidx == -1 6 0.000012 return "" endif " If there are no tags for this file, then no need to proceed further if s:tlist_{fidx}_tag_count == 0 return "" endif " Get the tag name using the line number let tidx = s:Tlist_Find_Nearest_Tag_Idx(fidx, linenr) if tidx == -1 return "" endif return s:tlist_{fidx}_{tidx}_tag_name FUNCTION 27_BufWritePostHook() Called 1 time Total time: 127.616234 Self time: 0.000035 count total (s) self (s) 1 0.000032 0.000017 call syntastic#log#debug(g:_SYNTASTIC_DEBUG_AUTOCOMMANDS, 'autocmd: BufWritePost, buffer ' . bufnr("") . ' = ' . string(bufname(str2nr(bufnr(""))))) call s:UpdateErrors(1, []) FUNCTION syntastic#log#debugShowOptions() Called 1 time Total time: 0.000007 Self time: 0.000004 count total (s) self (s) 1 0.000005 0.000002 if !s:_isDebugEnabled(a:level) 1 0.000001 return endif let leader = s:_log_timestamp() call s:_logRedirect(1) let vlist = copy(type(a:names) == type("") ? [a:names] : a:names) if !empty(vlist) call map(vlist, "'&' . v:val . ' = ' . strtrans(string(eval('&' . v:val)))") echomsg leader . join(vlist, ', ') endif call s:_logRedirect(0) FUNCTION syntastic#util#shescape() Called 3 times Total time: 0.000033 Self time: 0.000033 count total (s) self (s) 3 0.000032 return a:string =~ '\m^[A-Za-z0-9_/.-]\+$' ? a:string : shellescape(a:string) FUNCTION 50_DiagnosticUiSupportedForCurrentFiletype() Called 2 times Total time: 0.000011 Self time: 0.000011 count total (s) self (s) 2 0.000011 return get( s:diagnostic_ui_filetypes, &filetype, 0 ) FUNCTION syntastic#util#unique() Called 1 time Total time: 0.000023 Self time: 0.000023 count total (s) self (s) 1 0.000002 let seen = {} 1 0.000001 let uniques = [] 2 0.000003 for e in a:list 1 0.000002 if !has_key(seen, e) 1 0.000002 let seen[e] = 1 1 0.000004 call add(uniques, e) 1 0.000001 endif 1 0.000000 endfor 1 0.000001 return uniques FUNCTION 37_Highlight_Matching_Pair() Called 1 time Total time: 0.001322 Self time: 0.001322 count total (s) self (s) " Remove any previous match. 1 0.000014 if exists('w:paren_hl_on') && w:paren_hl_on silent! call matchdelete(3) let w:paren_hl_on = 0 endif " Avoid that we remove the popup menu. " Return when there are no colors (looks like the cursor jumps). 1 0.000012 if pumvisible() || (&t_Co < 8 && !has("gui_running")) return endif " Get the character under the cursor and check if it's in 'matchpairs'. 1 0.000009 let c_lnum = line('.') 1 0.000006 let c_col = col('.') 1 0.000003 let before = 0 1 0.000007 let text = getline(c_lnum) 1 0.000009 let c = text[c_col - 1] 1 0.000039 let plist = split(&matchpairs, '.\zs[:,]') 1 0.000010 let i = index(plist, c) 1 0.000002 if i < 0 " not found, in Insert mode try character before the cursor if c_col > 1 && (mode() == 'i' || mode() == 'R') let before = 1 let c = text[c_col - 2] let i = index(plist, c) endif if i < 0 " not found, nothing to do return endif endif " Figure out the arguments for searchpairpos(). 1 0.000003 if i % 2 == 0 let s_flags = 'nW' let c2 = plist[i + 1] else 1 0.000005 let s_flags = 'nbW' 1 0.000004 let c2 = c 1 0.000007 let c = plist[i - 1] 1 0.000001 endif 1 0.000002 if c == '[' let c = '\[' let c2 = '\]' endif " Find the match. When it was just before the cursor move it there for a " moment. 1 0.000003 if before > 0 let has_getcurpos = exists("*getcurpos") if has_getcurpos " getcurpos() is more efficient but doesn't exist before 7.4.313. let save_cursor = getcurpos() else let save_cursor = winsaveview() endif call cursor(c_lnum, c_col - before) endif " Build an expression that detects whether the current cursor position is in " certain syntax types (string, comment, etc.), for use as searchpairpos()'s " skip argument. " We match "escape" for special items, such as lispEscapeSpecial. 1 0.000012 let s_skip = '!empty(filter(map(synstack(line("."), col(".")), ''synIDattr(v:val, "name")''), ' . '''v:val =~? "string\\|character\\|singlequote\\|escape\\|comment"''))' " If executing the expression determines that the cursor is currently in " one of the syntax types, then we want searchpairpos() to find the pair " within those syntax types (i.e., not skip). Otherwise, the cursor is " outside of the syntax types and s_skip should keep its value so we skip any " matching pair inside the syntax types. 1 0.000054 execute 'if' s_skip '| let s_skip = 0 | endif' " Limit the search to lines visible in the window. 1 0.000007 let stoplinebottom = line('w$') 1 0.000006 let stoplinetop = line('w0') 1 0.000003 if i % 2 == 0 let stopline = stoplinebottom else 1 0.000005 let stopline = stoplinetop 1 0.000001 endif " Limit the search time to 300 msec to avoid a hang on very long lines. " This fails when a timeout is not supported. 1 0.000008 if mode() == 'i' || mode() == 'R' let timeout = exists("b:matchparen_insert_timeout") ? b:matchparen_insert_timeout : g:matchparen_insert_timeout else 1 0.000011 let timeout = exists("b:matchparen_timeout") ? b:matchparen_timeout : g:matchparen_timeout 1 0.000001 endif 1 0.000003 try 1 0.000796 let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline, timeout) 1 0.000004 catch /E118/ " Can't use the timeout, restrict the stopline a bit more to avoid taking " a long time on closed folds and long lines. " The "viewable" variables give a range in which we can scroll while " keeping the cursor at the same position. " adjustedScrolloff accounts for very large numbers of scrolloff. let adjustedScrolloff = min([&scrolloff, (line('w$') - line('w0')) / 2]) let bottom_viewable = min([line('$'), c_lnum + &lines - adjustedScrolloff - 2]) let top_viewable = max([1, c_lnum-&lines+adjustedScrolloff + 2]) " one of these stoplines will be adjusted below, but the current values are " minimal boundaries within the current window if i % 2 == 0 if has("byte_offset") && has("syntax_items") && &smc > 0 let stopbyte = min([line2byte("$"), line2byte(".") + col(".") + &smc * 2]) let stopline = min([bottom_viewable, byte2line(stopbyte)]) else let stopline = min([bottom_viewable, c_lnum + 100]) endif let stoplinebottom = stopline else if has("byte_offset") && has("syntax_items") && &smc > 0 let stopbyte = max([1, line2byte(".") + col(".") - &smc * 2]) let stopline = max([top_viewable, byte2line(stopbyte)]) else let stopline = max([top_viewable, c_lnum - 100]) endif let stoplinetop = stopline endif let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline) endtry 1 0.000003 if before > 0 if has_getcurpos call setpos('.', save_cursor) else call winrestview(save_cursor) endif endif " If a match is found setup match highlighting. 1 0.000006 if m_lnum > 0 && m_lnum >= stoplinetop && m_lnum <= stoplinebottom if exists('*matchaddpos') call matchaddpos('MatchParen', [[c_lnum, c_col - before], [m_lnum, m_col]], 10, 3) else exe '3match MatchParen /\(\%' . c_lnum . 'l\%' . (c_col - before) . 'c\)\|\(\%' . m_lnum . 'l\%' . m_col . 'c\)/' endif let w:paren_hl_on = 1 endif FUNCTION 50_AllowedToCompleteInCurrentFile() Called 2 times Total time: 0.000152 Self time: 0.000152 count total (s) self (s) 2 0.000033 if empty( &filetype ) || getbufvar( winbufnr( winnr() ), "&buftype" ) ==# 'nofile' || &filetype ==# 'qf' return 0 endif 2 0.000009 if exists( 'b:ycm_largefile' ) return 0 endif 2 0.000038 let whitelist_allows = has_key( g:ycm_filetype_whitelist, '*' ) || has_key( g:ycm_filetype_whitelist, &filetype ) 2 0.000013 let blacklist_allows = !has_key( g:ycm_filetype_blacklist, &filetype ) 2 0.000006 return whitelist_allows && blacklist_allows FUNCTION 10() Called 3 times Total time: 0.000202 Self time: 0.000202 count total (s) self (s) 3 0.000029 let newObj = copy(self) 3 0.000011 let newObj._filetype = a:args['filetype'] 3 0.000006 let newObj._name = a:args['name'] 3 0.000013 let newObj._exec = get(a:args, 'exec', newObj._name) 3 0.000007 if has_key(a:args, 'redirect') let [filetype, name] = split(a:args['redirect'], '/') 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 else 3 0.000011 let prefix = 'SyntaxCheckers_' . newObj._filetype . '_' . newObj._name . '_' 3 0.000000 endif 3 0.000015 let newObj._locListFunc = function(prefix . 'GetLocList') 3 0.000010 if exists('*' . prefix . 'IsAvailable') 1 0.000004 let newObj._isAvailableFunc = function(prefix . 'IsAvailable') 1 0.000000 else 2 0.000011 let newObj._isAvailableFunc = function('s:_isAvailableDefault') 2 0.000001 endif 3 0.000009 if exists('*' . prefix . 'GetHighlightRegex') let newObj._highlightRegexFunc = function(prefix . 'GetHighlightRegex') endif 3 0.000003 return newObj FUNCTION 11() Called 4 times Total time: 0.000006 Self time: 0.000006 count total (s) self (s) 4 0.000005 return self._filetype FUNCTION 12() Called 4 times Total time: 0.000005 Self time: 0.000005 count total (s) self (s) 4 0.000004 return self._name FUNCTION 14() Called 1 time Total time: 0.000034 Self time: 0.000006 count total (s) self (s) 1 0.000034 0.000006 return syntastic#util#shescape(self.getExec()) FUNCTION 15() Called 1 time Total time: 127.585994 Self time: 0.000104 count total (s) self (s) 1 0.000002 let name = self._filetype . '/' . self._name 1 0.000001 try 1 127.585913 0.000023 let list = self._locListFunc() call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'getLocList: checker ' . name . ' returned ' . v:shell_error) catch /\m\C^Syntastic: checker error$/ let list = [] call syntastic#log#error('checker ' . name . ' returned abnormal status ' . v:shell_error) endtry call self._populateHighlightRegexes(list) call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, name . ' raw:', list) call self._quietMessages(list) return list FUNCTION 16() Called 1 time Total time: 127.586013 Self time: 0.000019 count total (s) self (s) return g:SyntasticLoclist.New(self.getLocListRaw()) FUNCTION 18() Called 1 time Total time: 0.000352 Self time: 0.000041 count total (s) self (s) 1 0.000003 let basename = self._filetype . '_' . self._name . '_' 1 0.000001 let parts = [] 1 0.000106 0.000011 call extend(parts, self._getOpt(a:opts, basename, 'exe', self.getExecEscaped())) 1 0.000056 0.000005 call extend(parts, self._getOpt(a:opts, basename, 'args', '')) 1 0.000085 0.000008 call extend(parts, self._getOpt(a:opts, basename, 'fname', syntastic#util#shexpand('%'))) 1 0.000050 0.000005 call extend(parts, self._getOpt(a:opts, basename, 'post_args', '')) 1 0.000047 0.000004 call extend(parts, self._getOpt(a:opts, basename, 'tail', '')) 1 0.000003 return join(parts) FUNCTION 19() Called 1 time Total time: 0.000092 Self time: 0.000013 count total (s) self (s) 1 0.000002 if !has_key(self, '_available') 1 0.000087 0.000008 let self._available = self._isAvailableFunc() 1 0.000002 endif 1 0.000001 return self._available FUNCTION 24() Called 5 times Total time: 0.000262 Self time: 0.000115 count total (s) self (s) 5 0.000005 let ret = [] 5 0.000075 0.000034 call extend( ret, syntastic#util#argsescape(get(a:opts, a:name . '_before', '')) ) 5 0.000101 0.000042 call extend( ret, syntastic#util#argsescape(syntastic#util#var( a:basename . a:name, get(a:opts, a:name, a:default) )) ) 5 0.000073 0.000026 call extend( ret, syntastic#util#argsescape(get(a:opts, a:name . '_after', '')) ) 5 0.000004 return ret FUNCTION 28() Called 1 time Total time: 0.000023 Self time: 0.000016 count total (s) self (s) 1 0.000011 0.000004 call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'cursor: reset') 1 0.000006 autocmd! syntastic CursorMoved 1 0.000002 unlet! b:syntastic_private_messages 1 0.000003 let b:syntastic_private_line = -1 FUNCTION 32() Called 1 time Total time: 0.000032 Self time: 0.000014 count total (s) self (s) 1 0.000002 if s:has_highlighting 1 0.000015 0.000006 call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'highlighting: reset') 1 0.000014 0.000005 call self._reset() 1 0.000001 endif FUNCTION 34() Called 1 time Total time: 0.000009 Self time: 0.000009 count total (s) self (s) 1 0.000003 for match in getmatches() if stridx(match['group'], 'Syntastic') == 0 call matchdelete(match['id']) endif endfor FUNCTION 35() Called 1 time Total time: 0.000040 Self time: 0.000040 count total (s) self (s) 1 0.000013 let newObj = copy(self) 1 0.000005 let llist = filter(copy(a:rawLoclist), 'v:val["valid"] == 1') 1 0.000001 for e in llist if get(e, 'type', '') == '' let e['type'] = 'E' endif endfor 1 0.000002 let newObj._rawLoclist = llist 1 0.000002 let newObj._name = '' 1 0.000002 let newObj._owner = bufnr('') 1 0.000001 let newObj._sorted = 0 1 0.000003 let newObj._columns = g:syntastic_cursor_columns 1 0.000002 return newObj FUNCTION 36() Called 1 time Total time: 0.000010 Self time: 0.000010 count total (s) self (s) 1 0.000004 if !exists("b:syntastic_loclist") || empty(b:syntastic_loclist) let b:syntastic_loclist = g:SyntasticLoclist.New([]) endif 1 0.000002 return b:syntastic_loclist FUNCTION 43() Called 1 time Total time: 0.000040 Self time: 0.000017 count total (s) self (s) 1 0.000040 0.000017 return syntastic#util#unique(map(copy(self._rawLoclist), 'str2nr(v:val["bufnr"])') + [self._owner]) FUNCTION 52() Called 1 time Total time: 0.000057 Self time: 0.000017 count total (s) self (s) 2 0.000047 0.000007 for buf in self.getBuffers() 1 0.000006 call setbufvar(buf, 'syntastic_loclist', {}) 1 0.000000 endfor FUNCTION 49__isDebugEnabled_smart() Called 13 times Total time: 0.000035 Self time: 0.000035 count total (s) self (s) 13 0.000031 return and(g:syntastic_debug, a:level) FUNCTION 13() Called 2 times Total time: 0.000050 Self time: 0.000036 count total (s) self (s) 2 0.000048 0.000034 return expand( exists('b:syntastic_' . self._name . '_exec') ? b:syntastic_{self._name}_exec : syntastic#util#var(self._filetype . '_' . self._name . '_exec', self._exec), 1 ) FUNCTION 27_CacheErrors() Called 1 time Total time: 127.615884 Self time: 0.000138 count total (s) self (s) 1 0.000016 0.000009 call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'CacheErrors: ' . (len(a:checker_names) ? join(a:checker_names) : 'default checkers')) 1 0.000345 0.000006 call s:ClearCache() 1 0.000048 0.000008 let newLoclist = g:SyntasticLoclist.New([]) 1 0.000059 0.000004 if !s:_skip_file() " debug logging {{{3 1 0.000014 0.000006 call syntastic#log#debugShowVariables(g:_SYNTASTIC_DEBUG_TRACE, 'aggregate_errors') 1 0.000013 0.000007 call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'getcwd() = ' . getcwd()) " }}}3 1 0.000023 0.000010 let filetypes = s:_resolve_filetypes([]) 1 0.000019 0.000009 let aggregate_errors = syntastic#util#var('aggregate_errors') || len(filetypes) > 1 1 0.000003 let decorate_errors = aggregate_errors && syntastic#util#var('id_checkers') 1 0.000003 let sort_aggregated_errors = aggregate_errors && syntastic#util#var('sort_aggregated_errors') 1 0.000001 let clist = [] 2 0.000004 for type in filetypes 1 0.029162 0.000011 call extend(clist, s:registry.getCheckers(type, a:checker_names)) 1 0.000001 endfor 1 0.000002 let names = [] 1 0.000001 let unavailable_checkers = 0 1 0.000001 for checker in clist 1 0.000009 0.000006 let cname = checker.getFiletype() . '/' . checker.getName() 1 0.000096 0.000004 if !checker.isAvailable() call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'CacheErrors: Checker ' . cname . ' is not available') let unavailable_checkers += 1 continue endif 1 0.000015 0.000006 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() FUNCTION 63() Called 1 time Total time: 0.000018 Self time: 0.000018 count total (s) self (s) 1 0.000003 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 1 0.000003 let self._mode = 'active' 1 0.000002 let self._activeFiletypes = [] 1 0.000001 let self._passiveFiletypes = [] 1 0.000001 endif FUNCTION 64() Called 1 time Total time: 0.000038 Self time: 0.000023 count total (s) self (s) 1 0.000006 let fts = split(a:filetype, '\m\.') 1 0.000008 0.000006 if self.isPassive() return self._isOneFiletypeActive(fts) else 1 0.000018 0.000005 return self._noFiletypesArePassive(fts) endif FUNCTION 65() Called 1 time Total time: 0.000054 Self time: 0.000016 count total (s) self (s) 1 0.000004 let local_mode = get(b:, 'syntastic_mode', '') 1 0.000002 if local_mode ==# 'active' || local_mode ==# 'passive' return local_mode ==# 'active' endif 1 0.000044 0.000006 return self.allowsAutoChecking(&filetype) FUNCTION 66() Called 1 time Total time: 0.000002 Self time: 0.000002 count total (s) self (s) 1 0.000001 return self._mode ==# 'passive' FUNCTION 71() Called 1 time Total time: 0.000013 Self time: 0.000013 count total (s) self (s) 1 0.000013 return empty(filter(copy(a:filetypes), 'index(self._passiveFiletypes, v:val) != -1')) FUNCTION 74() Called 1 time Total time: 0.000242 Self time: 0.000164 count total (s) self (s) 1 0.000011 0.000004 call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'notifiers: reset') 6 0.000011 for type in self._enabled_types 5 0.000044 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 5 0.000020 if has_key(g:{class}, 'reset') 3 0.000091 0.000020 call self._notifier[type].reset(a:loclist) 3 0.000002 endif " also reset stamps 5 0.000013 if index(s:_PERSISTENT_NOTIFIERS, type) > -1 2 0.000008 let b:syntastic_private_{type}_stamp = [] 2 0.000002 endif 5 0.000005 endfor FUNCTION 76() Called 3 times Total time: 0.000024 Self time: 0.000024 count total (s) self (s) 3 0.000009 if !exists('s:SyntasticRegistryInstance') let s:SyntasticRegistryInstance = copy(self) let s:SyntasticRegistryInstance._checkerMap = {} endif 3 0.000003 return s:SyntasticRegistryInstance FUNCTION 77() Called 3 times Total time: 0.000377 Self time: 0.000068 count total (s) self (s) 3 0.000227 0.000025 let checker = g:SyntasticChecker.New(a:args) 3 0.000048 0.000024 let registry = g:SyntasticRegistry.Instance() 3 0.000097 0.000014 call registry._registerChecker(checker) FUNCTION 78() Called 1 time Total time: 0.029151 Self time: 0.000056 count total (s) self (s) 1 0.000027 0.000011 let ft = s:_normalise_filetype(a:ftalias) 1 0.029056 0.000008 call self._loadCheckersFor(ft) 1 0.000003 let checkers_map = self._checkerMap[ft] 1 0.000002 if empty(checkers_map) return [] endif 1 0.000017 0.000007 call self._checkDeprecation(ft) 1 0.000011 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) 1 0.000031 0.000010 return type(names) == type([]) ? self._filterCheckersByName(checkers_map, names) : [checkers_map[keys(checkers_map)[0]]] FUNCTION syntastic#log#deprecationWarn() Called 1 time Total time: 0.000021 Self time: 0.000021 count total (s) self (s) 1 0.000004 if exists('g:syntastic_' . a:old) && !exists('g:syntastic_' . a:new) let msg = 'variable g:syntastic_' . a:old . ' is deprecated, please use ' if a:0 let OLD_VAR = g:syntastic_{a:old} try let NEW_VAR = eval(a:1) let msg .= 'in its stead: let g:syntastic_' . a:new . ' = ' . string(NEW_VAR) let g:syntastic_{a:new} = NEW_VAR catch let msg .= 'g:syntastic_' . a:new . ' instead' endtry else let msg .= 'g:syntastic_' . a:new . ' instead' let g:syntastic_{a:new} = g:syntastic_{a:old} endif call syntastic#log#oneTimeWarn(msg) endif FUNCTION 83() Called 3 times Total time: 0.000083 Self time: 0.000075 count total (s) self (s) 3 0.000016 0.000011 let ft = a:checker.getFiletype() 3 0.000017 if !has_key(self._checkerMap, ft) 1 0.000003 let self._checkerMap[ft] = {} 1 0.000001 endif 3 0.000015 0.000012 let name = a:checker.getName() 3 0.000007 if has_key(self._checkerMap[ft], name) throw 'Syntastic: Duplicate syntax checker name: ' . ft . '/' . name endif 3 0.000009 let self._checkerMap[ft][name] = a:checker FUNCTION 84() Called 1 time Total time: 0.000021 Self time: 0.000021 count total (s) self (s) 1 0.000020 return filter( map(copy(a:list), 'get(a:checkers_map, v:val, {})'), '!empty(v:val)' ) FUNCTION 85() Called 1 time Total time: 0.029048 Self time: 0.028209 count total (s) self (s) 1 0.000003 if has_key(self._checkerMap, a:filetype) return endif 1 0.029036 0.028197 execute "runtime! syntax_checkers/" . a:filetype . "/*.vim" 1 0.000004 if !has_key(self._checkerMap, a:filetype) let self._checkerMap[a:filetype] = {} endif FUNCTION 86() Called 1 time Total time: 0.000010 Self time: 0.000010 count total (s) self (s) 1 0.000004 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 FUNCTION 50_SetUpCompleteopt() Called 2 times Total time: 0.000054 Self time: 0.000054 count total (s) self (s) " Some plugins (I'm looking at you, vim-notes) change completeopt by for " instance adding 'longest'. This breaks YCM. So we force our settings. " There's no two ways about this: if you want to use YCM then you have to " have these completeopt settings, otherwise YCM won't work at all. " We need menuone in completeopt, otherwise when there's only one candidate " for completion, the menu doesn't show up. 2 0.000019 set completeopt-=menu 2 0.000006 set completeopt+=menuone " This is unnecessary with our features. People use this option to insert " the common prefix of all the matches and then add more differentiating chars " so that they can select a more specific match. With our features, they " don't need to insert the prefix; they just type the differentiating chars. " Also, having this option set breaks the plugin. 2 0.000004 set completeopt-=longest 2 0.000004 if g:ycm_add_preview_to_completeopt set completeopt+=preview endif FUNCTION 27_ClearCache() Called 1 time Total time: 0.000339 Self time: 0.000030 count total (s) self (s) 1 0.000264 0.000012 call s:notifiers.reset(g:SyntasticLoclist.current()) 1 0.000074 0.000017 call b:syntastic_loclist.destroy() FUNCTION syntastic#log#debugShowVariables() Called 2 times Total time: 0.000016 Self time: 0.000011 count total (s) self (s) 2 0.000013 0.000008 if !s:_isDebugEnabled(a:level) 2 0.000002 return endif let leader = s:_log_timestamp() call s:_logRedirect(1) let vlist = type(a:names) == type("") ? [a:names] : a:names for name in vlist let msg = s:_format_variable(name) if msg != '' echomsg leader . msg endif endfor call s:_logRedirect(0) FUNCTION Tlist_Update_File() Called 1 time Total time: 0.000058 Self time: 0.000018 count total (s) self (s) 1 0.000027 0.000008 call s:Tlist_Log_Msg('Tlist_Update_File (' . a:filename . ')') " If the file doesn't support tag listing, skip it 1 0.000029 0.000008 if s:Tlist_Skip_File(a:filename, a:ftype) 1 0.000001 return endif " Convert the file name to a full path let fname = fnamemodify(a:filename, ':p') " First check whether the file already exists let fidx = s:Tlist_Get_File_Index(fname) if fidx != -1 && s:tlist_{fidx}_valid " File exists and the tags are valid " Check whether the file was modified after the last tags update " If it is modified, then update the tags if s:tlist_{fidx}_mtime == getftime(fname) return endif else " If the tags were removed previously based on a user request, " as we are going to update the tags (based on the user request), " remove the filename from the deleted list call s:Tlist_Update_Remove_List(fname, 0) endif " If the taglist window is opened, update it let winnum = bufwinnr(g:TagList_title) if winnum == -1 " Taglist window is not present. Just update the taglist " and return call s:Tlist_Process_File(fname, a:ftype) else if g:Tlist_Show_One_File && s:tlist_cur_file_idx != -1 " If tags for only one file are displayed and we are not " updating the tags for that file, then no need to " refresh the taglist window. Otherwise, the taglist " window should be updated. if s:tlist_{s:tlist_cur_file_idx}_filename != fname call s:Tlist_Process_File(fname, a:ftype) return endif endif " Save the current window number let save_winnr = winnr() " Goto the taglist window call s:Tlist_Window_Goto_Window() " Save the cursor position let save_line = line('.') let save_col = col('.') " Update the taglist window call s:Tlist_Window_Refresh_File(fname, a:ftype) " Restore the cursor position if v:version >= 601 call cursor(save_line, save_col) else exe save_line exe 'normal! ' . save_col . '|' endif if winnr() != save_winnr " Go back to the original window call s:Tlist_Exe_Cmd_No_Acmds(save_winnr . 'wincmd w') endif endif " Update the taglist menu if g:Tlist_Show_Menu call s:Tlist_Menu_Update_File(1) endif FUNCTION 27__skip_file() Called 2 times Total time: 0.000124 Self time: 0.000089 count total (s) self (s) 2 0.000007 let fname = expand('%', 1) 2 0.000103 0.000068 let skip = get(b:, 'syntastic_skip_checks', 0) || (&buftype != '') || !filereadable(fname) || getwinvar(0, '&diff') || s:_ignore_file(fname) || fnamemodify(fname, ':e') =~? g:syntastic_ignore_extensions 2 0.000002 if skip call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, '_skip_file: skipping checks') endif 2 0.000002 return skip FUNCTION syntastic#util#var() Called 8 times Total time: 0.000053 Self time: 0.000053 count total (s) self (s) 8 0.000049 return exists('b:syntastic_' . a:name) ? b:syntastic_{a:name} : exists('g:syntastic_' . a:name) ? g:syntastic_{a:name} : a:0 > 0 ? a:1 : '' FUNCTION 27_UpdateErrors() Called 1 time Total time: 127.616184 Self time: 0.000131 count total (s) self (s) 1 0.000016 0.000008 call syntastic#log#debugShowVariables(g:_SYNTASTIC_DEBUG_TRACE, 'version') 1 0.000016 0.000009 call syntastic#log#debugShowOptions(g:_SYNTASTIC_DEBUG_TRACE, s:_DEBUG_DUMP_OPTIONS) 1 0.000014 0.000008 call syntastic#log#debugDump(g:_SYNTASTIC_DEBUG_VARIABLES) 1 0.000017 0.000010 call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'UpdateErrors' . (a:auto_invoked ? ' (auto)' : '') . ': ' . (len(a:checker_names) ? join(a:checker_names) : 'default checkers')) 1 0.000076 0.000007 if s:_skip_file() return endif 1 0.000025 0.000007 call s:modemap.synch() 1 0.000064 0.000010 let run_checks = !a:auto_invoked || s:modemap.doAutoChecking() 1 0.000001 if run_checks call s:CacheErrors(a:checker_names) 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 = 0 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()) let w:syntastic_loclist_set = 1 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) FUNCTION 25__normalise_filetype() Called 1 time Total time: 0.000016 Self time: 0.000016 count total (s) self (s) 1 0.000005 let ft = get(s:_DEFAULT_FILETYPE_MAP, a:ftalias, a:ftalias) 1 0.000003 let ft = get(g:syntastic_filetype_map, ft, ft) 1 0.000005 let ft = substitute(ft, '\m-', '_', 'g') 1 0.000002 return ft FUNCTION 50_SetUpYcmChangedTick() Called 2 times Total time: 0.000021 Self time: 0.000021 count total (s) self (s) 2 0.000020 let b:ycm_changedtick = get( b:, 'ycm_changedtick', { 'file_ready_to_parse' : -1, } ) FUNCTION 50_UpdateDiagnosticNotifications() Called 2 times Total time: 0.000047 Self time: 0.000036 count total (s) self (s) 2 0.000037 0.000026 let should_display_diagnostics = g:ycm_show_diagnostics_ui && s:DiagnosticUiSupportedForCurrentFiletype() && pyeval( 'ycm_state.NativeFiletypeCompletionUsable()' ) 2 0.000004 if !should_display_diagnostics 2 0.000002 return endif py ycm_state.UpdateDiagnosticInterface() FUNCTION 27__resolve_filetypes() Called 1 time Total time: 0.000013 Self time: 0.000013 count total (s) self (s) 1 0.000005 let type = len(a:filetypes) ? a:filetypes[0] : &filetype 1 0.000008 return split( get(g:syntastic_filetype_map, type, type), '\m\.' ) FUNCTION 19__isAvailableDefault() Called 1 time Total time: 0.000079 Self time: 0.000050 count total (s) self (s) 1 0.000078 0.000049 return executable(self.getExec()) FUNCTION 29_Tlist_Skip_File() Called 1 time Total time: 0.000021 Self time: 0.000021 count total (s) self (s) " Skip buffers with no names and buffers with filetype not set 1 0.000003 if a:filename == '' || a:ftype == '' return 1 endif " Skip files which are not supported by exuberant ctags " First check whether default settings for this filetype are available. " If it is not available, then check whether user specified settings are " available. If both are not available, then don't list the tags for this " filetype 1 0.000003 let var = 's:tlist_def_' . a:ftype . '_settings' 1 0.000004 if !exists(var) 1 0.000002 let var = 'g:tlist_' . a:ftype . '_settings' 1 0.000003 if !exists(var) 1 0.000001 return 1 endif endif " Skip files which are not readable or files which are not yet stored " to the disk if !filereadable(a:filename) return 1 endif return 0 FUNCTION SyntaxCheckers_scala_fsc_GetLocList() Called 1 time Total time: 127.585890 Self time: 0.000054 count total (s) self (s) 1 0.000031 0.000010 call syntastic#log#deprecationWarn('scala_options', 'scala_fsc_args') " fsc has some serious problems with the " working directory changing after being started " that's why we better pass an absolute path 1 0.000400 0.000014 let makeprg = self.makeprgBuild({ 'args_after': '-Ystop-after:parser', 'fname': syntastic#util#shexpand('%:p') }) 1 0.000002 let errorformat = '%E%f:%l: %trror: %m,' . '%Z%p^,' . '%-G%.%#' return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) FUNCTION 27__ignore_file() Called 2 times Total time: 0.000035 Self time: 0.000035 count total (s) self (s) 2 0.000018 let fname = fnamemodify(a:filename, ':p') 2 0.000006 for pattern in g:syntastic_ignore_files if fname =~# pattern return 1 endif endfor 2 0.000002 return 0 FUNCTION 29_Tlist_Update_Current_File() Called 1 time Total time: 0.000225 Self time: 0.000116 count total (s) self (s) 1 0.000035 0.000009 call s:Tlist_Log_Msg('Tlist_Update_Current_File()') 1 0.000042 if winnr() == bufwinnr(g:TagList_title) " In the taglist window. Update the current file call s:Tlist_Window_Update_File() else " Not in the taglist window. Update the current buffer 1 0.000010 let filename = fnamemodify(bufname('%'), ':p') 1 0.000012 0.000007 let fidx = s:Tlist_Get_File_Index(filename) 1 0.000001 if fidx != -1 let s:tlist_{fidx}_valid = 0 endif 1 0.000032 0.000012 let ft = s:Tlist_Get_Buffer_Filetype('%') 1 0.000069 0.000011 call Tlist_Update_File(filename, ft) 1 0.000001 endif FUNCTION AutoTag() Called 1 time Total time: 0.000719 Self time: 0.000494 count total (s) self (s) 1 0.000003 python << EEOOFF try: if not vim_global("Disabled", bool): at = AutoTag() at.addSource(vim.eval("expand(\"%:p\")")) at.rebuildTagFiles() except: logging.warning(format_exc()) EEOOFF 1 0.000008 if exists(":TlistUpdate") 1 0.000243 0.000018 TlistUpdate 1 0.000001 endif FUNCTION 50_OnFileReadyToParse() Called 2 times Total time: 0.002786 Self time: 0.002718 count total (s) self (s) " We need to call this just in case there is no b:ycm_changetick; this can " happen for special buffers. 2 0.000034 0.000013 call s:SetUpYcmChangedTick() " Order is important here; we need to extract any done diagnostics before " reparsing the file again. If we sent the new parse request first, then " the response would always be pending when we called " UpdateDiagnosticNotifications. 2 0.000063 0.000016 call s:UpdateDiagnosticNotifications() 2 0.000009 let buffer_changed = b:changedtick != b:ycm_changedtick.file_ready_to_parse 2 0.000002 if buffer_changed 1 0.002646 py ycm_state.OnFileReadyToParse() 1 0.000004 endif 2 0.000011 let b:ycm_changedtick.file_ready_to_parse = b:changedtick FUNCTION syntastic#log#debugDump() Called 1 time Total time: 0.000006 Self time: 0.000004 count total (s) self (s) 1 0.000006 0.000004 if !s:_isDebugEnabled(a:level) 1 0.000000 return endif call syntastic#log#debugShowVariables( a:level, sort(keys(g:_SYNTASTIC_DEFAULTS)) ) FUNCTION SyntasticMake() Called 1 time Total time: 127.585429 Self time: 0.000217 count total (s) self (s) 1 0.000011 0.000005 call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'SyntasticMake: called with options:', a:options) " save options and locale env variables {{{3 1 0.000002 let old_shellredir = &shellredir 1 0.000002 let old_local_errorformat = &l:errorformat 1 0.000002 let old_errorformat = &errorformat 1 0.000002 let old_cwd = getcwd() 1 0.000002 let old_lc_messages = $LC_MESSAGES 1 0.000001 let old_lc_all = $LC_ALL " }}}3 1 0.000016 0.000006 call s:_bash_hack() 1 0.000002 if has_key(a:options, 'errorformat') 1 0.000004 let &errorformat = a:options['errorformat'] 1 0.000000 endif 1 0.000002 if has_key(a:options, 'cwd') execute 'lcd ' . fnameescape(a:options['cwd']) endif " set environment variables {{{3 1 0.000001 let env_save = {} 1 0.000002 if has_key(a:options, 'env') && len(a:options['env']) for key in keys(a:options['env']) if key =~? '\m^[a-z_]\+$' exec 'let env_save[' . string(key) . '] = $' . key exec 'let $' . key . ' = ' . string(a:options['env'][key]) endif endfor endif 1 0.000005 let $LC_MESSAGES = 'C' 1 0.000002 let $LC_ALL = '' " }}}3 let err_lines = split(system(a:options['makeprg']), "\n", 1) " restore environment variables {{{3 let $LC_ALL = old_lc_all let $LC_MESSAGES = old_lc_messages if len(env_save) for key in keys(env_save) exec '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 let &shellredir = old_shellredir " }}}3 if !s:_running_windows && (s:_os_name() =~ "FreeBSD" || s:_os_name() =~ "OpenBSD") call syntastic#util#redraw(g:syntastic_full_redraws) endif if bailout 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 FUNCTION 27__bash_hack() Called 1 time Total time: 0.000010 Self time: 0.000010 count total (s) self (s) 1 0.000001 if g:syntastic_bash_hack if !exists('s:shell_is_bash') let s:shell_is_bash = !s:_running_windows && (s:_os_name() !~# "FreeBSD") && (s:_os_name() !~# "OpenBSD") && &shell =~# '\m\29_Tlist_Get_File_Index() Called 7 times Total time: 0.000058 Self time: 0.000058 count total (s) self (s) 7 0.000030 if s:tlist_file_count == 0 || a:fname == '' 7 0.000015 return -1 endif " If the new filename is same as the last accessed filename, then " return that index if s:tlist_file_name_idx_cache != -1 && s:tlist_file_name_idx_cache < s:tlist_file_count if s:tlist_{s:tlist_file_name_idx_cache}_filename == a:fname " Same as the last accessed file return s:tlist_file_name_idx_cache endif endif " First, check whether the filename is present let s_fname = a:fname . "\n" let i = stridx(s:tlist_file_names, s_fname) if i == -1 let s:tlist_file_name_idx_cache = -1 return -1 endif " Second, compute the file name index let nl_txt = substitute(strpart(s:tlist_file_names, 0, i), "[^\n]", '', 'g') let s:tlist_file_name_idx_cache = strlen(nl_txt) return s:tlist_file_name_idx_cache FUNCTION 50_OnCursorHold() Called 2 times Total time: 0.003059 Self time: 0.000067 count total (s) self (s) 2 0.000178 0.000026 if !s:AllowedToCompleteInCurrentFile() return endif 2 0.000072 0.000018 call s:SetUpCompleteopt() 2 0.002802 0.000016 call s:OnFileReadyToParse() FUNCTION syntastic#util#shexpand() Called 2 times Total time: 0.000049 Self time: 0.000023 count total (s) self (s) 2 0.000049 0.000023 return syntastic#util#shescape(a:0 ? expand(a:string, a:1) : expand(a:string, 1)) FUNCTION 29_Tlist_Log_Msg() Called 2 times Total time: 0.000045 Self time: 0.000045 count total (s) self (s) 2 0.000004 if s:tlist_debug if s:tlist_debug_file != '' exe 'redir >> ' . s:tlist_debug_file silent echon strftime('%H:%M:%S') . ': ' . a:msg . "\n" redir END else " Log the message into a variable " Retain only the last 3000 characters let len = strlen(s:tlist_msg) if len > 3000 let s:tlist_msg = strpart(s:tlist_msg, len - 3000) endif let s:tlist_msg = s:tlist_msg . strftime('%H:%M:%S') . ': ' . a:msg . "\n" endif endif FUNCTION syntastic#util#argsescape() Called 15 times Total time: 0.000118 Self time: 0.000118 count total (s) self (s) 15 0.000031 if type(a:opt) == type('') && a:opt != '' 3 0.000003 return [a:opt] elseif type(a:opt) == type([]) return map(copy(a:opt), 'syntastic#util#shescape(v:val)') endif 12 0.000009 return [] FUNCTION 29_Tlist_Get_Buffer_Filetype() Called 1 time Total time: 0.000020 Self time: 0.000020 count total (s) self (s) 1 0.000006 let buf_ft = getbufvar(a:bnum, '&filetype') 1 0.000007 if bufloaded(a:bnum) " For loaded buffers, the 'filetype' is already determined return buf_ft endif " For unloaded buffers, if the 'filetype' option is set, return it 1 0.000002 if buf_ft != '' 1 0.000001 return buf_ft endif " Skip non-existent buffers if !bufexists(a:bnum) return '' endif " For buffers whose filetype is not yet determined, try to determine " the filetype let bname = bufname(a:bnum) return s:Tlist_Detect_Filetype(bname) FUNCTIONS SORTED ON TOTAL TIME count total (s) self (s) function 1 127.616234 0.000035 27_BufWritePostHook() 1 127.616184 0.000131 27_UpdateErrors() 1 127.615884 0.000138 27_CacheErrors() 1 127.586013 0.000019 16() 1 127.585994 0.000104 15() 1 127.585890 0.000054 SyntaxCheckers_scala_fsc_GetLocList() 1 127.585429 0.000217 SyntasticMake() 1 0.029151 0.000056 78() 1 0.029048 0.028209 85() 2 0.003059 0.000067 50_OnCursorHold() 2 0.002786 0.002718 50_OnFileReadyToParse() 1 0.001322 37_Highlight_Matching_Pair() 6 0.000725 0.000672 Tlist_Get_Tagname_By_Line() 1 0.000719 0.000494 AutoTag() 3 0.000377 0.000068 77() 1 0.000352 0.000041 18() 1 0.000339 0.000030 27_ClearCache() 5 0.000262 0.000115 24() 1 0.000242 0.000164 74() 1 0.000225 0.000116 29_Tlist_Update_Current_File() FUNCTIONS SORTED ON SELF TIME count total (s) self (s) function 1 0.029048 0.028209 85() 2 0.002786 0.002718 50_OnFileReadyToParse() 1 0.001322 37_Highlight_Matching_Pair() 6 0.000725 0.000672 Tlist_Get_Tagname_By_Line() 1 0.000719 0.000494 AutoTag() 1 127.585429 0.000217 SyntasticMake() 3 0.000202 10() 1 0.000242 0.000164 74() 2 0.000152 50_AllowedToCompleteInCurrentFile() 1 127.615884 0.000138 27_CacheErrors() 1 127.616184 0.000131 27_UpdateErrors() 15 0.000118 syntastic#util#argsescape() 1 0.000225 0.000116 29_Tlist_Update_Current_File() 5 0.000262 0.000115 24() 1 127.585994 0.000104 15() 2 0.000124 0.000089 27__skip_file() 3 0.000083 0.000075 83() 3 0.000377 0.000068 77() 2 0.003059 0.000067 50_OnCursorHold() 7 0.000058 29_Tlist_Get_File_Index()