Skip to content

Instantly share code, notes, and snippets.

@elzii
Created July 17, 2020 06:04
Show Gist options
  • Save elzii/7a6e4a0a7a77c379b9c22453613c307f to your computer and use it in GitHub Desktop.
Save elzii/7a6e4a0a7a77c379b9c22453613c307f to your computer and use it in GitHub Desktop.
line 6: echo l:msg
Thu 16 Jul 2020 10:57:44 PM PDT **** VERBOSE LOGGING STARTED ****
line 7: else
line 8: let l:msg = "\n" . l:timestamp . s:VerboseLE . "\n"
line 9: echo l:msg
line 10: set verbose=0
line 11: set verbosefile=
line 12: endif
ToggleVerbose returning #0
calling lightline#tabline()
line 1: if !has_key(s:highlight, 'tabline')
line 2: call lightline#highlight('tabline')
line 3: endif
line 4: if s:lightline.tabline_configured || s:tabnr != tabpagenr() || s:tabcnt != tabpagenr('$')
line 5: let s:tabnr = tabpagenr()
line 6: let s:tabcnt = tabpagenr('$')
line 7: let s:tabline = s:line(1, 0)
calling <SNR>152_line(1, 0)
line 1: let _ = a:tabline ? '' : '%{lightline#link()}'
line 2: if s:lightline.palette == {}
line 3: call lightline#colorscheme()
line 4: endif
line 5: let [l, r] = a:tabline ? [s:lightline.tab_llen, s:lightline.tab_rlen] : [s:lightline.llen, s:lightline.rlen]
line 6: let [p, s] = a:tabline ? [s:lightline.tabline_separator, s:lightline.tabline_subseparator] : [s:lightline.separator, s:lightline.subseparator]
line 7: let [c, f, t, w] = [s:lightline.component, s:lightline.component_function, s:lightline.component_type, s:lightline.component_raw]
line 8: let mode = a:tabline ? 'tabline' : a:inactive ? 'inactive' : 'active'
line 9: let l_ = has_key(s:lightline, mode) ? s:lightline[mode].left : s:lightline.active.left
line 10: let [lt, lc, ll] = s:expand(copy(l_))
calling <SNR>152_expand([['buffers']])
line 1: let components = []
line 2: let expanded = []
line 3: let indices = []
line 4: let prevtype = ''
line 5: let previndex = -1
line 6: let xs = s:flatten_twice(s:map(deepcopy(a:components), 'map(v:val, "s:convert(v:val, ''" . v:key . "'')")'))
calling <SNR>152_convert('buffers', '0')
line 1: if has_key(s:lightline.component_expand, a:name)
line 2: let type = get(s:lightline.component_type, a:name, a:index)
line 3: let is_raw = get(s:lightline.component_raw, a:name) || type ==# 'raw'
line 4: return filter(s:map(s:evaluate_expand(s:lightline.component_expand[a:name]), '[v:val, 1 + ' . is_raw . ', v:key == 1 && ' . (type !=# 'raw') . ' ? "' . type . '" : "' . a:index . '", "' . a:index . '"]'), 'v:val[0] != []')
calling <SNR>152_evaluate_expand('lightline#bufferline#buffers')
line 1: try
line 2: let result = eval(a:component . '()')
calling lightline#bufferline#buffers()
line 1: let l:buffers = s:filtered_buffers()
calling <SNR>26_filtered_buffers()
line 1: let l:buffers = filter(range(1, bufnr('$')), 's:filter_buffer(v:val)')
calling <SNR>26_filter_buffer(1)
line 1: return bufexists(a:i) && buflisted(a:i) && !(getbufvar(a:i, '&filetype') ==# 'qf')
<SNR>26_filter_buffer returning #1
continuing in <SNR>26_filtered_buffers
line 2: if s:reverse_buffers == 1
line 3: let l:buffers = reverse(l:buffers)
line 4: endif
line 5: return l:buffers
<SNR>26_filtered_buffers returning [1]
continuing in lightline#bufferline#buffers
line 2: let l:current_index = index(l:buffers, bufnr('%'))
line 3: if l:current_index == -1
line 4: return [s:get_buffer_names(l:buffers, 0, len(l:buffers))[0], [], []]
line 5: endif
line 6: let l:before = s:get_buffer_names(l:buffers, 0, l:current_index)
calling <SNR>26_get_buffer_names([1], 0, 0)
line 1: let l:names = []
line 2: let l:lengths = []
line 3: for l:i in range(a:from, a:to - 1)
line 4: let [l:name, l:len] = s:get_buffer_name(l:i, a:buffers[l:i])
line 5: call add(l:names, l:name)
line 6: call add(l:lengths, l:len + 4)
line 7: endfor
line 8: return [l:names, l:lengths]
<SNR>26_get_buffer_names returning [[], []]
continuing in lightline#bufferline#buffers
line 7: let l:current = s:get_buffer_names(l:buffers, l:current_index, l:current_index + 1)
calling <SNR>26_get_buffer_names([1], 0, 1)
line 1: let l:names = []
line 2: let l:lengths = []
line 3: for l:i in range(a:from, a:to - 1)
line 4: let [l:name, l:len] = s:get_buffer_name(l:i, a:buffers[l:i])
calling <SNR>26_get_buffer_name(0, 1)
line 1: let l:name = bufname(a:buffer)
line 2: if l:name ==# ''
line 3: let l:name = s:unnamed
line 4: else
line 5: let l:name = fnamemodify(l:name, s:filename_modifier)
line 6: if s:shorten_path
line 7: let l:name = pathshorten(l:name)
line 8: endif
line 9: endif
line 10: if s:enable_devicons == 1 && exists('*WebDevIconsGetFileTypeSymbol')
line 11: let l:name = WebDevIconsGetFileTypeSymbol(fnamemodify(bufname(a:buffer), ':t')) . ' ' . l:name
line 12: endif
line 13: if s:is_read_only(a:buffer)
calling <SNR>26_is_read_only(1)
line 1: let l:modifiable = getbufvar(a:buffer, '&modifiable')
line 2: let l:readonly = getbufvar(a:buffer, '&readonly')
line 3: return (l:readonly || !l:modifiable) && getbufvar(a:buffer, '&filetype') !=# 'help'
<SNR>26_is_read_only returning #0
continuing in <SNR>26_get_buffer_name
line 14: let l:name .= s:read_only
line 15: endif
line 16: if getbufvar(a:buffer, '&mod')
line 17: let l:name .= s:modified
line 18: endif
line 19: if s:show_number == 1
line 20: let l:name = a:buffer . s:number_separator . l:name
line 21: elseif s:show_number == 2
line 22: let l:name = s:get_from_number_map(a:i + 1). s:number_separator . l:name
line 23: elseif s:show_number == 3
line 24: let l:name = a:buffer . s:ordinal_separator . s:get_from_number_map(a:i + 1) . s:number_separator . l:name
line 25: elseif s:show_number == 4
line 26: let l:name = s:get_from_number_map(a:i + 1) . s:ordinal_separator . a:buffer . s:number_separator . l:name
line 27: endif
line 28: let l:len = len(l:name)
line 29: let l:name = substitute(l:name, '%', '%%', 'g')
line 30: if s:component_is_raw
line 31: let l:name = ' ' . l:name . ' '
line 32: endif
line 33: if s:clickable
line 34: return ['%' . string(a:i) . '@lightline#bufferline#_click_handler@' . l:name . '%X', l:len]
line 35: else
line 36: return [l:name, l:len]
<SNR>26_get_buffer_name returning [' index.tsx + ', 11]
continuing in <SNR>26_get_buffer_names
line 5: call add(l:names, l:name)
line 6: call add(l:lengths, l:len + 4)
line 7: endfor
line 3: for l:i in range(a:from, a:to - 1)
line 4: let [l:name, l:len] = s:get_buffer_name(l:i, a:buffers[l:i])
line 5: call add(l:names, l:name)
line 6: call add(l:lengths, l:len + 4)
line 7: endfor
line 8: return [l:names, l:lengths]
<SNR>26_get_buffer_names returning [[' index.tsx + '], [15]]
continuing in lightline#bufferline#buffers
line 8: let l:after = s:get_buffer_names(l:buffers, l:current_index + 1, len(l:buffers))
calling <SNR>26_get_buffer_names([1], 1, 1)
line 1: let l:names = []
line 2: let l:lengths = []
line 3: for l:i in range(a:from, a:to - 1)
line 4: let [l:name, l:len] = s:get_buffer_name(l:i, a:buffers[l:i])
line 5: call add(l:names, l:name)
line 6: call add(l:lengths, l:len + 4)
line 7: endfor
line 8: return [l:names, l:lengths]
<SNR>26_get_buffer_names returning [[], []]
continuing in lightline#bufferline#buffers
line 9: if s:right_aligned == 1
line 10: return s:select_buffers(l:after, l:current, l:before)
line 11: else
line 12: return s:select_buffers(l:before, l:current, l:after)
calling <SNR>26_select_buffers([[], []], [[' index.tsx + '], [15]], [[], []])
line 1: let [l:before_names, l:current_names, l:after_names] = [a:before[0], a:current[0], a:after[0]]
line 2: let [l:before_lengths, l:current_lengths, l:after_lengths] = [a:before[1], a:current[1], a:after[1]]
line 3:
line 4: " The current buffer is always displayed
line 5: let l:width = &columns - l:current_lengths[:0][0]
line 6:
line 7: " Display all buffers if there is enough space to display them
line 8: if s:sum(l:before_lengths) + s:sum(l:after_lengths) <= l:width
calling <SNR>26_sum([])
line 1: let l:sum = 0
line 2: for l:value in a:list
line 3: let l:sum += l:value
line 4: endfor
line 5: return l:sum
<SNR>26_sum returning #0
continuing in <SNR>26_select_buffers
calling <SNR>26_sum([])
line 1: let l:sum = 0
line 2: for l:value in a:list
line 3: let l:sum += l:value
line 4: endfor
line 5: return l:sum
<SNR>26_sum returning #0
continuing in <SNR>26_select_buffers
line 9: return [l:before_names, l:current_names, l:after_names]
<SNR>26_select_buffers returning [[], [' index.tsx + '], []]
continuing in lightline#bufferline#buffers
lightline#bufferline#buffers returning [[], [' index.tsx + '], []]
continuing in <SNR>152_evaluate_expand
line 3: if type(result) == 1 && result ==# ''
line 4: return []
line 5: endif
line 6: catch
line 7: return []
line 8: endtry
line 9: return map(type(result) == 3 ? (result + [[], [], []])[:2] : [[], [result], []], 'filter(s:normalize(v:val), "v:val !=# ''''")')
calling <SNR>152_normalize([])
line 1: if type(a:result) == 3
line 2: return map(a:result, 'type(v:val) == 1 ? v:val : string(v:val)')
<SNR>152_normalize returning []
continuing in <SNR>152_evaluate_expand
calling <SNR>152_normalize([' index.tsx + '])
line 1: if type(a:result) == 3
line 2: return map(a:result, 'type(v:val) == 1 ? v:val : string(v:val)')
<SNR>152_normalize returning [' index.tsx + ']
continuing in <SNR>152_evaluate_expand
calling <SNR>152_normalize([])
line 1: if type(a:result) == 3
line 2: return map(a:result, 'type(v:val) == 1 ? v:val : string(v:val)')
<SNR>152_normalize returning []
continuing in <SNR>152_evaluate_expand
<SNR>152_evaluate_expand returning [[], [' index.tsx + '], []]
continuing in <SNR>152_convert
<SNR>152_convert returning [[[' index.tsx + '], 2, 'tabsel', '0']]
continuing in <SNR>152_expand
calling <SNR>152_flatten_twice([[[[[' index.tsx + '], 2, 'tabsel', '0']]]])
line 1: let ys = []
line 2: for xs in a:xss
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 6: endfor
line 2: for xs in a:xss
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 6: endfor
line 7: return ys
<SNR>152_flatten_twice returning [[[' index.tsx + '], 2, 'tabsel', '0']]
continuing in <SNR>152_expand
line 7: for [component, expand, type, index] in xs
line 8: if prevtype !=# type
line 9: for i in range(previndex + 1, max([previndex, index - 1]))
line 10: call add(indices, string(i))
line 11: call add(components, [])
line 12: call add(expanded, [])
line 13: endfor
line 14: call add(indices, type)
line 15: call add(components, [])
line 16: call add(expanded, [])
line 17: endif
line 18: call extend(components[-1], component)
line 19: call extend(expanded[-1], repeat([expand], len(component)))
line 20: let prevtype = type
line 21: let previndex = index
line 22: endfor
line 7: for [component, expand, type, index] in xs
line 8: if prevtype !=# type
line 9: for i in range(previndex + 1, max([previndex, index - 1]))
line 10: call add(indices, string(i))
line 11: call add(components, [])
line 12: call add(expanded, [])
line 13: endfor
line 14: call add(indices, type)
line 15: call add(components, [])
line 16: call add(expanded, [])
line 17: endif
line 18: call extend(components[-1], component)
line 19: call extend(expanded[-1], repeat([expand], len(component)))
line 20: let prevtype = type
line 21: let previndex = index
line 22: endfor
line 23: for i in range(previndex + 1, max([previndex, len(a:components) - 1]))
line 24: call add(indices, string(i))
line 25: call add(components, [])
line 26: call add(expanded, [])
line 27: endfor
line 28: call add(indices, string(len(a:components)))
line 29: return [components, expanded, indices]
<SNR>152_expand returning [[[' index.tsx + ']], [[2]], ['tabsel', '1']]
continuing in <SNR>152_line
line 11: let r_ = has_key(s:lightline, mode) ? s:lightline[mode].right : s:lightline.active.right
line 12: let [rt, rc, rl] = s:expand(copy(r_))
calling <SNR>152_expand([[]])
line 1: let components = []
line 2: let expanded = []
line 3: let indices = []
line 4: let prevtype = ''
line 5: let previndex = -1
line 6: let xs = s:flatten_twice(s:map(deepcopy(a:components), 'map(v:val, "s:convert(v:val, ''" . v:key . "'')")'))
calling <SNR>152_flatten_twice([[]])
line 1: let ys = []
line 2: for xs in a:xss
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 6: endfor
line 2: for xs in a:xss
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 6: endfor
line 7: return ys
<SNR>152_flatten_twice returning []
continuing in <SNR>152_expand
line 7: for [component, expand, type, index] in xs
line 8: if prevtype !=# type
line 9: for i in range(previndex + 1, max([previndex, index - 1]))
line 10: call add(indices, string(i))
line 11: call add(components, [])
line 12: call add(expanded, [])
line 13: endfor
line 14: call add(indices, type)
line 15: call add(components, [])
line 16: call add(expanded, [])
line 17: endif
line 18: call extend(components[-1], component)
line 19: call extend(expanded[-1], repeat([expand], len(component)))
line 20: let prevtype = type
line 21: let previndex = index
line 22: endfor
line 23: for i in range(previndex + 1, max([previndex, len(a:components) - 1]))
line 24: call add(indices, string(i))
line 25: call add(components, [])
line 26: call add(expanded, [])
line 27: endfor
line 23: for i in range(previndex + 1, max([previndex, len(a:components) - 1]))
line 24: call add(indices, string(i))
line 25: call add(components, [])
line 26: call add(expanded, [])
line 27: endfor
line 28: call add(indices, string(len(a:components)))
line 29: return [components, expanded, indices]
<SNR>152_expand returning [[[]], [[]], ['0', '1']]
continuing in <SNR>152_line
line 13: for i in range(len(lt))
line 14: let _ .= '%#LightlineLeft_' . mode . '_' . ll[i] . '#'
line 15: for j in range(len(lt[i]))
line 16: let x = lc[i][j] ? lt[i][j] : has_key(f, lt[i][j]) ? (exists('*' . f[lt[i][j]]) ? '%{' . f[lt[i][j]] . '()}' : '%{exists("*' . f[lt[i][j]] . '")?' . f[lt[i][j]] . '():""}') : get(c, lt[i][j], '')
line 17: let _ .= has_key(t, lt[i][j]) && t[lt[i][j]] ==# 'raw' || get(w, lt[i][j]) || lc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 18: if j < len(lt[i]) - 1 && s.left !=# ''
line 19: let _ .= s:subseparator(lt[i][(j):], s.left, lc[i][(j):])
line 20: endif
line 21: endfor
line 15: for j in range(len(lt[i]))
line 16: let x = lc[i][j] ? lt[i][j] : has_key(f, lt[i][j]) ? (exists('*' . f[lt[i][j]]) ? '%{' . f[lt[i][j]] . '()}' : '%{exists("*' . f[lt[i][j]] . '")?' . f[lt[i][j]] . '():""}') : get(c, lt[i][j], '')
line 17: let _ .= has_key(t, lt[i][j]) && t[lt[i][j]] ==# 'raw' || get(w, lt[i][j]) || lc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 18: if j < len(lt[i]) - 1 && s.left !=# ''
line 19: let _ .= s:subseparator(lt[i][(j):], s.left, lc[i][(j):])
line 20: endif
line 21: endfor
line 22: let _ .= '%#LightlineLeft_' . mode . '_' . ll[i] . '_' . ll[i + 1] . '#'
line 23: let _ .= i < l + len(lt) - len(l_) && ll[i] < l || ll[i] != ll[i + 1] ? p.left : len(lt[i]) ? s.left : ''
line 24: endfor
line 13: for i in range(len(lt))
line 14: let _ .= '%#LightlineLeft_' . mode . '_' . ll[i] . '#'
line 15: for j in range(len(lt[i]))
line 16: let x = lc[i][j] ? lt[i][j] : has_key(f, lt[i][j]) ? (exists('*' . f[lt[i][j]]) ? '%{' . f[lt[i][j]] . '()}' : '%{exists("*' . f[lt[i][j]] . '")?' . f[lt[i][j]] . '():""}') : get(c, lt[i][j], '')
line 17: let _ .= has_key(t, lt[i][j]) && t[lt[i][j]] ==# 'raw' || get(w, lt[i][j]) || lc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 18: if j < len(lt[i]) - 1 && s.left !=# ''
line 19: let _ .= s:subseparator(lt[i][(j):], s.left, lc[i][(j):])
line 20: endif
line 21: endfor
line 22: let _ .= '%#LightlineLeft_' . mode . '_' . ll[i] . '_' . ll[i + 1] . '#'
line 23: let _ .= i < l + len(lt) - len(l_) && ll[i] < l || ll[i] != ll[i + 1] ? p.left : len(lt[i]) ? s.left : ''
line 24: endfor
line 25: let _ .= '%#LightlineMiddle_' . mode . '#%='
line 26: for i in range(len(rt) - 1, 0, -1)
line 27: let _ .= '%#LightlineRight_' . mode . '_' . rl[i] . '_' . rl[i + 1] . '#'
line 28: let _ .= i < r + len(rt) - len(r_) && rl[i] < r || rl[i] != rl[i + 1] ? p.right : len(rt[i]) ? s.right : ''
line 29: let _ .= '%#LightlineRight_' . mode . '_' . rl[i] . '#'
line 30: for j in range(len(rt[i]))
line 31: let x = rc[i][j] ? rt[i][j] : has_key(f, rt[i][j]) ? (exists('*' . f[rt[i][j]]) ? '%{' . f[rt[i][j]] . '()}' : '%{exists("*' . f[rt[i][j]] . '")?' . f[rt[i][j]] . '():""}') : get(c, rt[i][j], '')
line 32: let _ .= has_key(t, rt[i][j]) && t[rt[i][j]] ==# 'raw' || get(w, rt[i][j]) || rc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 33: if j < len(rt[i]) - 1 && s.right !=# ''
line 34: let _ .= s:subseparator(rt[i][(j):], s.right, rc[i][(j):])
line 35: endif
line 36: endfor
line 37: endfor
line 26: for i in range(len(rt) - 1, 0, -1)
line 27: let _ .= '%#LightlineRight_' . mode . '_' . rl[i] . '_' . rl[i + 1] . '#'
line 28: let _ .= i < r + len(rt) - len(r_) && rl[i] < r || rl[i] != rl[i + 1] ? p.right : len(rt[i]) ? s.right : ''
line 29: let _ .= '%#LightlineRight_' . mode . '_' . rl[i] . '#'
line 30: for j in range(len(rt[i]))
line 31: let x = rc[i][j] ? rt[i][j] : has_key(f, rt[i][j]) ? (exists('*' . f[rt[i][j]]) ? '%{' . f[rt[i][j]] . '()}' : '%{exists("*' . f[rt[i][j]] . '")?' . f[rt[i][j]] . '():""}') : get(c, rt[i][j], '')
line 32: let _ .= has_key(t, rt[i][j]) && t[rt[i][j]] ==# 'raw' || get(w, rt[i][j]) || rc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 33: if j < len(rt[i]) - 1 && s.right !=# ''
line 34: let _ .= s:subseparator(rt[i][(j):], s.right, rc[i][(j):])
line 35: endif
line 36: endfor
line 37: endfor
line 38: return _
<SNR>152_line returning '%#LightlineLeft_tabline_tabsel# index...abline_0_1#%#LightlineRight_tabline_0#'
continuing in lightline#tabline
line 8: endif
line 9: return s:tabline
lightline#tabline returning '%#LightlineLeft_tabline_tabsel# index...abline_0_1#%#LightlineRight_tabline_0#'
calling lightline#link()
line 1: let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
line 2: if s:mode ==# mode
line 3: return ''
lightline#link returning ''
calling lightline#mode()
line 1: return get(s:lightline.mode_map, mode(), '')
lightline#mode returning 'NORMAL'
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling FugitiveHead()
line 1: let dir = FugitiveGitDir(a:0 > 1 ? a:2 : -1)
calling FugitiveGitDir(-1)
line 1: if !a:0 || type(a:1) == type(0) && a:1 < 0
line 2: if exists('g:fugitive_event')
line 3: return g:fugitive_event
line 4: endif
line 5: let dir = get(b:, 'git_dir', '')
line 6: if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|prompt\)$')
line 7: return FugitiveExtractGitDir(getcwd())
line 8: endif
line 9: return dir
FugitiveGitDir returning ''
continuing in FugitiveHead
line 2: if empty(dir)
line 3: return ''
FugitiveHead returning ''
Executing CursorHold Autocommands for "*"
autocommand call s:Autocmd('CursorHold', +expand('<abuf>'))
Executing: call s:Autocmd('CursorHold', +expand('<abuf>'))
calling <SNR>46_Autocmd('CursorHold', 1)
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['CursorHold', 1])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['CursorHold', 1])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in CursorHold Autocommands for "*"
calling lightline#link()
line 1: let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
line 2: if s:mode ==# mode
line 3: return ''
lightline#link returning ''
calling lightline#mode()
line 1: return get(s:lightline.mode_map, mode(), '')
lightline#mode returning 'NORMAL'
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling FugitiveHead()
line 1: let dir = FugitiveGitDir(a:0 > 1 ? a:2 : -1)
calling FugitiveGitDir(-1)
line 1: if !a:0 || type(a:1) == type(0) && a:1 < 0
line 2: if exists('g:fugitive_event')
line 3: return g:fugitive_event
line 4: endif
line 5: let dir = get(b:, 'git_dir', '')
line 6: if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|prompt\)$')
line 7: return FugitiveExtractGitDir(getcwd())
line 8: endif
line 9: return dir
FugitiveGitDir returning ''
continuing in FugitiveHead
line 2: if empty(dir)
line 3: return ''
FugitiveHead returning ''
Executing InsertEnter Autocommands for "*"
autocommand call <SID>StopHL()
Executing: call <SID>StopHL()
calling <SNR>37_StopHL()
line 1: if !v:hlsearch || mode() isnot 'n'
line 2: return
<SNR>37_StopHL returning #0
continuing in InsertEnter Autocommands for "*"
Executing InsertEnter Autocommands for "*"
autocommand call s:Autocmd('InsertEnter', +expand('<abuf>'))
Executing: call s:Autocmd('InsertEnter', +expand('<abuf>'))
calling <SNR>46_Autocmd('InsertEnter', 1)
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['InsertEnter', 1])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['InsertEnter', 1])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in InsertEnter Autocommands for "*"
calling lightline#link()
line 1: let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
line 2: if s:mode ==# mode
line 3: return ''
line 4: endif
line 5: let s:mode = mode
line 6: if !has_key(s:highlight, mode)
line 7: call lightline#highlight(mode)
line 8: endif
line 9: let types = map(s:uniq(sort(filter(values(s:lightline.component_type), 'v:val !=# "raw"'))), '[v:val, 1]')
line 10: for [p, l] in [['Left', len(s:lightline.active.left)], ['Right', len(s:lightline.active.right)]]
line 11: for [i, t] in map(range(0, l), '[v:val, 0]') + types
line 12: if i != l
line 13: exec printf('hi link Lightline%s_active_%s Lightline%s_%s_%s', p, i, p, mode, i)
line 13: hi link LightlineLeft_active_0 LightlineLeft_insert_0
line 14: endif
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 17: hi link LightlineLeft_active_0_1 LightlineLeft_insert_0_1
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 17: hi link LightlineLeft_active_0_tabsel LightlineLeft_insert_0_tabsel
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 20: endfor
line 11: for [i, t] in map(range(0, l), '[v:val, 0]') + types
line 12: if i != l
line 13: exec printf('hi link Lightline%s_active_%s Lightline%s_%s_%s', p, i, p, mode, i)
line 13: hi link LightlineLeft_active_1 LightlineLeft_insert_1
line 14: endif
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 17: hi link LightlineLeft_active_1_2 LightlineLeft_insert_1_2
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 17: hi link LightlineLeft_active_1_tabsel LightlineLeft_insert_1_tabsel
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 20: endfor
line 11: for [i, t] in map(range(0, l), '[v:val, 0]') + types
line 12: if i != l
line 13: exec printf('hi link Lightline%s_active_%s Lightline%s_%s_%s', p, i, p, mode, i)
line 14: endif
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 20: endfor
line 11: for [i, t] in map(range(0, l), '[v:val, 0]') + types
line 12: if i != l
line 13: exec printf('hi link Lightline%s_active_%s Lightline%s_%s_%s', p, i, p, mode, i)
line 13: hi link LightlineLeft_active_tabsel LightlineLeft_insert_tabsel
line 14: endif
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 17: hi link LightlineLeft_active_tabsel_0 LightlineLeft_insert_tabsel_0
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 17: hi link LightlineLeft_active_tabsel_1 LightlineLeft_insert_tabsel_1
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 17: hi link LightlineLeft_active_tabsel_2 LightlineLeft_insert_tabsel_2
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 17: hi link LightlineLeft_active_tabsel_tabsel LightlineLeft_insert_tabsel_tabsel
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 20: endfor
line 11: for [i, t] in map(range(0, l), '[v:val, 0]') + types
line 12: if i != l
line 13: exec printf('hi link Lightline%s_active_%s Lightline%s_%s_%s', p, i, p, mode, i)
line 14: endif
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 20: endfor
line 21: endfor
line 10: for [p, l] in [['Left', len(s:lightline.active.left)], ['Right', len(s:lightline.active.right)]]
line 11: for [i, t] in map(range(0, l), '[v:val, 0]') + types
line 12: if i != l
line 13: exec printf('hi link Lightline%s_active_%s Lightline%s_%s_%s', p, i, p, mode, i)
line 13: hi link LightlineRight_active_0 LightlineRight_insert_0
line 14: endif
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 17: hi link LightlineRight_active_0_1 LightlineRight_insert_0_1
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 17: hi link LightlineRight_active_0_tabsel LightlineRight_insert_0_tabsel
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 20: endfor
line 11: for [i, t] in map(range(0, l), '[v:val, 0]') + types
line 12: if i != l
line 13: exec printf('hi link Lightline%s_active_%s Lightline%s_%s_%s', p, i, p, mode, i)
line 13: hi link LightlineRight_active_1 LightlineRight_insert_1
line 14: endif
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 17: hi link LightlineRight_active_1_2 LightlineRight_insert_1_2
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 17: hi link LightlineRight_active_1_tabsel LightlineRight_insert_1_tabsel
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 20: endfor
line 11: for [i, t] in map(range(0, l), '[v:val, 0]') + types
line 12: if i != l
line 13: exec printf('hi link Lightline%s_active_%s Lightline%s_%s_%s', p, i, p, mode, i)
line 13: hi link LightlineRight_active_2 LightlineRight_insert_2
line 14: endif
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 17: hi link LightlineRight_active_2_3 LightlineRight_insert_2_3
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 17: hi link LightlineRight_active_2_tabsel LightlineRight_insert_2_tabsel
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 20: endfor
line 11: for [i, t] in map(range(0, l), '[v:val, 0]') + types
line 12: if i != l
line 13: exec printf('hi link Lightline%s_active_%s Lightline%s_%s_%s', p, i, p, mode, i)
line 14: endif
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 20: endfor
line 11: for [i, t] in map(range(0, l), '[v:val, 0]') + types
line 12: if i != l
line 13: exec printf('hi link Lightline%s_active_%s Lightline%s_%s_%s', p, i, p, mode, i)
line 13: hi link LightlineRight_active_tabsel LightlineRight_insert_tabsel
line 14: endif
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 17: hi link LightlineRight_active_tabsel_0 LightlineRight_insert_tabsel_0
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 17: hi link LightlineRight_active_tabsel_1 LightlineRight_insert_tabsel_1
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 17: hi link LightlineRight_active_tabsel_2 LightlineRight_insert_tabsel_2
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 17: hi link LightlineRight_active_tabsel_3 LightlineRight_insert_tabsel_3
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 17: hi link LightlineRight_active_tabsel_tabsel LightlineRight_insert_tabsel_tabsel
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 20: endfor
line 11: for [i, t] in map(range(0, l), '[v:val, 0]') + types
line 12: if i != l
line 13: exec printf('hi link Lightline%s_active_%s Lightline%s_%s_%s', p, i, p, mode, i)
line 14: endif
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 20: endfor
line 21: endfor
line 10: for [p, l] in [['Left', len(s:lightline.active.left)], ['Right', len(s:lightline.active.right)]]
line 11: for [i, t] in map(range(0, l), '[v:val, 0]') + types
line 12: if i != l
line 13: exec printf('hi link Lightline%s_active_%s Lightline%s_%s_%s', p, i, p, mode, i)
line 14: endif
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 20: endfor
line 21: endfor
line 22: exec printf('hi link LightlineMiddle_active LightlineMiddle_%s', mode)
line 22: hi link LightlineMiddle_active LightlineMiddle_insert
line 23: return ''
lightline#link returning ''
calling lightline#mode()
line 1: return get(s:lightline.mode_map, mode(), '')
lightline#mode returning 'INSERT'
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling FugitiveHead()
line 1: let dir = FugitiveGitDir(a:0 > 1 ? a:2 : -1)
calling FugitiveGitDir(-1)
line 1: if !a:0 || type(a:1) == type(0) && a:1 < 0
line 2: if exists('g:fugitive_event')
line 3: return g:fugitive_event
line 4: endif
line 5: let dir = get(b:, 'git_dir', '')
line 6: if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|prompt\)$')
line 7: return FugitiveExtractGitDir(getcwd())
line 8: endif
line 9: return dir
FugitiveGitDir returning ''
continuing in FugitiveHead
line 2: if empty(dir)
line 3: return ''
FugitiveHead returning ''
Executing CursorHoldI Autocommands for "*"
autocommand call s:Autocmd('CursorHoldI', +expand('<abuf>'))
Executing: call s:Autocmd('CursorHoldI', +expand('<abuf>'))
calling <SNR>46_Autocmd('CursorHoldI', 1)
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['CursorHoldI', 1])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['CursorHoldI', 1])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in CursorHoldI Autocommands for "*"
calling lightline#link()
line 1: let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
line 2: if s:mode ==# mode
line 3: return ''
lightline#link returning ''
calling lightline#mode()
line 1: return get(s:lightline.mode_map, mode(), '')
lightline#mode returning 'INSERT'
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling FugitiveHead()
line 1: let dir = FugitiveGitDir(a:0 > 1 ? a:2 : -1)
calling FugitiveGitDir(-1)
line 1: if !a:0 || type(a:1) == type(0) && a:1 < 0
line 2: if exists('g:fugitive_event')
line 3: return g:fugitive_event
line 4: endif
line 5: let dir = get(b:, 'git_dir', '')
line 6: if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|prompt\)$')
line 7: return FugitiveExtractGitDir(getcwd())
line 8: endif
line 9: return dir
FugitiveGitDir returning ''
continuing in FugitiveHead
line 2: if empty(dir)
line 3: return ''
FugitiveHead returning ''
Executing InsertCharPre Autocommands for "*"
autocommand call s:Autocmd('InsertCharPre', v:char)
Executing: call s:Autocmd('InsertCharPre', v:char)
calling <SNR>46_Autocmd('InsertCharPre', 'c')
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['InsertCharPre', 'c'])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['InsertCharPre', 'c'])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in InsertCharPre Autocommands for "*"
Executing CursorMovedI Autocommands for "*"
autocommand call s:Autocmd('CursorMovedI', +expand('<abuf>'), [line('.'), col('.')])
Executing: call s:Autocmd('CursorMovedI', +expand('<abuf>'), [line('.'), col('.')])
calling <SNR>46_Autocmd('CursorMovedI', 1, [1, 2])
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['CursorMovedI', 1, [1, 2]])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['CursorMovedI', 1, [1, 2]])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in CursorMovedI Autocommands for "*"
Executing CursorMovedI Autocommands for "*"
autocommand call s:Highlight_Matching_Pair()
Executing: call s:Highlight_Matching_Pair()
calling <SNR>55_Highlight_Matching_Pair()
line 1: " Remove any previous match.
line 2: call s:Remove_Matches()
calling <SNR>55_Remove_Matches()
line 1: if exists('w:paren_hl_on') && w:paren_hl_on
line 2: silent! call matchdelete(3)
line 3: let w:paren_hl_on = 0
line 4: endif
<SNR>55_Remove_Matches returning #0
continuing in <SNR>55_Highlight_Matching_Pair
line 3:
line 4: " Avoid that we remove the popup menu.
line 5: " Return when there are no colors (looks like the cursor jumps).
line 6: if pumvisible() || (&t_Co < 8 && !has("gui_running"))
line 7: return
line 8: endif
line 9:
line 10: " Get the character under the cursor and check if it's in 'matchpairs'.
line 11: let c_lnum = line('.')
line 12: let c_col = col('.')
line 13: let before = 0
line 14:
line 15: let text = getline(c_lnum)
line 16: let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
line 17: if empty(matches)
line 18: let [c_before, c] = ['', '']
line 19: else
line 20: let [c_before, c] = matches[1:2]
line 21: endif
line 22: let plist = split(&matchpairs, '.\zs[:,]')
line 23: let i = index(plist, c)
line 24: if i < 0
line 25: " not found, in Insert mode try character before the cursor
line 26: if c_col > 1 && (mode() == 'i' || mode() == 'R')
line 27: let before = strlen(c_before)
line 28: let c = c_before
line 29: let i = index(plist, c)
line 30: endif
line 31: if i < 0
line 32: " not found, nothing to do
line 33: return
<SNR>55_Highlight_Matching_Pair returning #0
continuing in CursorMovedI Autocommands for "*"
Executing TextChangedI Autocommands for "*"
autocommand call s:Autocmd('TextChangedI', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
Executing: call s:Autocmd('TextChangedI', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
calling <SNR>46_Autocmd('TextChangedI', 1, {'lnum': 1, 'col': 2, 'changedtick': 5, 'pre': 'c'})
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['TextChangedI', 1, {'lnum': 1, 'col': 2, 'changedtick': 5, 'pre': 'c'}])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['TextChangedI', 1, {'lnum': 1, 'col': 2, 'changedtick': 5, 'pre': 'c'}])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in TextChangedI Autocommands for "*"
Executing TextChangedI Autocommands for "*"
autocommand call s:Highlight_Matching_Pair()
Executing: call s:Highlight_Matching_Pair()
calling <SNR>55_Highlight_Matching_Pair()
line 1: " Remove any previous match.
line 2: call s:Remove_Matches()
calling <SNR>55_Remove_Matches()
line 1: if exists('w:paren_hl_on') && w:paren_hl_on
line 2: silent! call matchdelete(3)
line 3: let w:paren_hl_on = 0
line 4: endif
<SNR>55_Remove_Matches returning #0
continuing in <SNR>55_Highlight_Matching_Pair
line 3:
line 4: " Avoid that we remove the popup menu.
line 5: " Return when there are no colors (looks like the cursor jumps).
line 6: if pumvisible() || (&t_Co < 8 && !has("gui_running"))
line 7: return
line 8: endif
line 9:
line 10: " Get the character under the cursor and check if it's in 'matchpairs'.
line 11: let c_lnum = line('.')
line 12: let c_col = col('.')
line 13: let before = 0
line 14:
line 15: let text = getline(c_lnum)
line 16: let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
line 17: if empty(matches)
line 18: let [c_before, c] = ['', '']
line 19: else
line 20: let [c_before, c] = matches[1:2]
line 21: endif
line 22: let plist = split(&matchpairs, '.\zs[:,]')
line 23: let i = index(plist, c)
line 24: if i < 0
line 25: " not found, in Insert mode try character before the cursor
line 26: if c_col > 1 && (mode() == 'i' || mode() == 'R')
line 27: let before = strlen(c_before)
line 28: let c = c_before
line 29: let i = index(plist, c)
line 30: endif
line 31: if i < 0
line 32: " not found, nothing to do
line 33: return
<SNR>55_Highlight_Matching_Pair returning #0
continuing in TextChangedI Autocommands for "*"
calling lightline#link()
line 1: let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
line 2: if s:mode ==# mode
line 3: return ''
lightline#link returning ''
calling lightline#mode()
line 1: return get(s:lightline.mode_map, mode(), '')
lightline#mode returning 'INSERT'
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling FugitiveHead()
line 1: let dir = FugitiveGitDir(a:0 > 1 ? a:2 : -1)
calling FugitiveGitDir(-1)
line 1: if !a:0 || type(a:1) == type(0) && a:1 < 0
line 2: if exists('g:fugitive_event')
line 3: return g:fugitive_event
line 4: endif
line 5: let dir = get(b:, 'git_dir', '')
line 6: if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|prompt\)$')
line 7: return FugitiveExtractGitDir(getcwd())
line 8: endif
line 9: return dir
FugitiveGitDir returning ''
continuing in FugitiveHead
line 2: if empty(dir)
line 3: return ''
FugitiveHead returning ''
calling coc#api#call('call_function', ['coc#util#get_content', [1]])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 13('coc#util#get_content', [1])
line 1: return call(a:method, a:args)
calling coc#util#get_content(1)
line 1: if !bufloaded(a:bufnr) | return '' | endif
line 1: return '' | endif
line 1: endif
line 2: return { 'content': join(getbufline(a:bufnr, 1, '$'), "\n"), 'changedtick': getbufvar(a:bufnr, 'changedtick') }
coc#util#get_content returning {'changedtick': 5, 'content': 'c'}
continuing in 13
13 returning {'changedtick': 5, 'content': 'c'}
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, {'changedtick': 5, 'content': 'c'}]
calling coc#api#call('eval', ['[coc#util#cursor(), getline(".")]'])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 16('[coc#util#cursor(), getline(".")]')
line 1: return eval(a:expr)
calling coc#util#cursor()
line 1: let pos = getcurpos()
line 2: let content = pos[2] == 1 ? '' : getline('.')[0: pos[2] - 2]
line 3: return [pos[1] - 1, strchars(content)]
coc#util#cursor returning [0, 1]
continuing in 16
16 returning [[0, 1], 'c']
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, [[0, 1], 'c']]
calling coc#api#call('call_function', ['coc#util#get_complete_option', []])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 13('coc#util#get_complete_option', [])
line 1: return call(a:method, a:args)
calling coc#util#get_complete_option()
line 1: let disabled = get(b:, 'coc_suggest_disable', 0)
line 2: if disabled | return | endif
line 2: return | endif
line 2: endif
line 3: let blacklist = get(b:, 'coc_suggest_blacklist', [])
line 4: let pos = getcurpos()
line 5: let l:start = pos[2] - 1
line 6: let line = getline(pos[1])
line 7: for char in reverse(split(line[0: l:start - 1], '\zs'))
line 8: if l:start > 0 && char =~# '\k'
line 9: let l:start = l:start - strlen(char)
line 10: else
line 11: break
line 12: endif
line 13: endfor
line 7: for char in reverse(split(line[0: l:start - 1], '\zs'))
line 8: if l:start > 0 && char =~# '\k'
line 9: let l:start = l:start - strlen(char)
line 10: else
line 11: break
line 12: endif
line 13: endfor
line 14: let input = pos[2] == 1 ? '' : line[l:start : pos[2] - 2]
line 15: if !empty(blacklist) && index(blacklist, input) >= 0
line 16: return
line 17: endif
line 18: let synname = synIDattr(synID(pos[1], l:start, 1),"name")
line 19: return { 'word': matchstr(line[l:start : ], '^\k\+'), 'input': empty(input) ? '' : input, 'line': line, 'filetype': &filetype, 'filepath': expand('%:p'), 'bufnr': bufnr('%'), 'linenr': pos[1], 'colnr' : pos[2], 'col': l:start, 'synname': synname, 'changedtick': b:changedtick, 'blacklist': blacklist,}
coc#util#get_complete_option returning {'word': 'c', 'bufnr': 1, 'col': 0, 's...ut': 'c', 'colnr': 2, 'changedtick': 5}
continuing in 13
13 returning {'word': 'c', 'bufnr': 1, 'col': 0, 's...ut': 'c', 'colnr': 2, 'changedtick': 5}
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, {'word': 'c', 'bufnr': 1, 'co...t': 'c', 'colnr': 2, 'changedtick': 5}]
calling coc#api#call('call_function', ['coc#util#get_content', [1]])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 13('coc#util#get_content', [1])
line 1: return call(a:method, a:args)
calling coc#util#get_content(1)
line 1: if !bufloaded(a:bufnr) | return '' | endif
line 1: return '' | endif
line 1: endif
line 2: return { 'content': join(getbufline(a:bufnr, 1, '$'), "\n"), 'changedtick': getbufvar(a:bufnr, 'changedtick') }
coc#util#get_content returning {'changedtick': 5, 'content': 'c'}
continuing in 13
13 returning {'changedtick': 5, 'content': 'c'}
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, {'changedtick': 5, 'content': 'c'}]
calling coc#api#notify('command', ['noa set completeopt=noselect,menuone'])
line 1: call call(s:funcs[a:method], a:args)
calling 15('noa set completeopt=noselect,menuone')
line 1: " command that could cause cursor vanish
line 2: if a:command =~# '^echo' || a:command =~# '^redraw' || a:command =~# '^sign place'
line 3: call timer_start(0, {-> s:execute(a:command)})
line 4: else
line 5: execute a:command
line 5: noa set completeopt=noselect,menuone
line 6: endif
15 returning #0
continuing in coc#api#notify
coc#api#notify returning #0
Executing InsertCharPre Autocommands for "*"
autocommand call s:Autocmd('InsertCharPre', v:char)
Executing: call s:Autocmd('InsertCharPre', v:char)
calling <SNR>46_Autocmd('InsertCharPre', 'o')
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['InsertCharPre', 'o'])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['InsertCharPre', 'o'])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in InsertCharPre Autocommands for "*"
Executing CursorMovedI Autocommands for "*"
autocommand call s:Autocmd('CursorMovedI', +expand('<abuf>'), [line('.'), col('.')])
Executing: call s:Autocmd('CursorMovedI', +expand('<abuf>'), [line('.'), col('.')])
calling <SNR>46_Autocmd('CursorMovedI', 1, [1, 3])
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['CursorMovedI', 1, [1, 3]])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['CursorMovedI', 1, [1, 3]])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in CursorMovedI Autocommands for "*"
Executing CursorMovedI Autocommands for "*"
autocommand call s:Highlight_Matching_Pair()
Executing: call s:Highlight_Matching_Pair()
calling <SNR>55_Highlight_Matching_Pair()
line 1: " Remove any previous match.
line 2: call s:Remove_Matches()
calling <SNR>55_Remove_Matches()
line 1: if exists('w:paren_hl_on') && w:paren_hl_on
line 2: silent! call matchdelete(3)
line 3: let w:paren_hl_on = 0
line 4: endif
<SNR>55_Remove_Matches returning #0
continuing in <SNR>55_Highlight_Matching_Pair
line 3:
line 4: " Avoid that we remove the popup menu.
line 5: " Return when there are no colors (looks like the cursor jumps).
line 6: if pumvisible() || (&t_Co < 8 && !has("gui_running"))
line 7: return
line 8: endif
line 9:
line 10: " Get the character under the cursor and check if it's in 'matchpairs'.
line 11: let c_lnum = line('.')
line 12: let c_col = col('.')
line 13: let before = 0
line 14:
line 15: let text = getline(c_lnum)
line 16: let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
line 17: if empty(matches)
line 18: let [c_before, c] = ['', '']
line 19: else
line 20: let [c_before, c] = matches[1:2]
line 21: endif
line 22: let plist = split(&matchpairs, '.\zs[:,]')
line 23: let i = index(plist, c)
line 24: if i < 0
line 25: " not found, in Insert mode try character before the cursor
line 26: if c_col > 1 && (mode() == 'i' || mode() == 'R')
line 27: let before = strlen(c_before)
line 28: let c = c_before
line 29: let i = index(plist, c)
line 30: endif
line 31: if i < 0
line 32: " not found, nothing to do
line 33: return
<SNR>55_Highlight_Matching_Pair returning #0
continuing in CursorMovedI Autocommands for "*"
Executing TextChangedI Autocommands for "*"
autocommand call s:Autocmd('TextChangedI', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
Executing: call s:Autocmd('TextChangedI', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
calling <SNR>46_Autocmd('TextChangedI', 1, {'lnum': 1, 'col': 3, 'changedtick': 6, 'pre': 'co'})
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['TextChangedI', 1, {'lnum': 1, 'col': 3, 'changedtick': 6, 'pre': 'co'}])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['TextChangedI', 1, {'lnum': 1, 'col': 3, 'changedtick': 6, 'pre': 'co'}])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in TextChangedI Autocommands for "*"
Executing TextChangedI Autocommands for "*"
autocommand call s:Highlight_Matching_Pair()
Executing: call s:Highlight_Matching_Pair()
calling <SNR>55_Highlight_Matching_Pair()
line 1: " Remove any previous match.
line 2: call s:Remove_Matches()
calling <SNR>55_Remove_Matches()
line 1: if exists('w:paren_hl_on') && w:paren_hl_on
line 2: silent! call matchdelete(3)
line 3: let w:paren_hl_on = 0
line 4: endif
<SNR>55_Remove_Matches returning #0
continuing in <SNR>55_Highlight_Matching_Pair
line 3:
line 4: " Avoid that we remove the popup menu.
line 5: " Return when there are no colors (looks like the cursor jumps).
line 6: if pumvisible() || (&t_Co < 8 && !has("gui_running"))
line 7: return
line 8: endif
line 9:
line 10: " Get the character under the cursor and check if it's in 'matchpairs'.
line 11: let c_lnum = line('.')
line 12: let c_col = col('.')
line 13: let before = 0
line 14:
line 15: let text = getline(c_lnum)
line 16: let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
line 17: if empty(matches)
line 18: let [c_before, c] = ['', '']
line 19: else
line 20: let [c_before, c] = matches[1:2]
line 21: endif
line 22: let plist = split(&matchpairs, '.\zs[:,]')
line 23: let i = index(plist, c)
line 24: if i < 0
line 25: " not found, in Insert mode try character before the cursor
line 26: if c_col > 1 && (mode() == 'i' || mode() == 'R')
line 27: let before = strlen(c_before)
line 28: let c = c_before
line 29: let i = index(plist, c)
line 30: endif
line 31: if i < 0
line 32: " not found, nothing to do
line 33: return
<SNR>55_Highlight_Matching_Pair returning #0
continuing in TextChangedI Autocommands for "*"
calling lightline#link()
line 1: let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
line 2: if s:mode ==# mode
line 3: return ''
lightline#link returning ''
calling lightline#mode()
line 1: return get(s:lightline.mode_map, mode(), '')
lightline#mode returning 'INSERT'
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling FugitiveHead()
line 1: let dir = FugitiveGitDir(a:0 > 1 ? a:2 : -1)
calling FugitiveGitDir(-1)
line 1: if !a:0 || type(a:1) == type(0) && a:1 < 0
line 2: if exists('g:fugitive_event')
line 3: return g:fugitive_event
line 4: endif
line 5: let dir = get(b:, 'git_dir', '')
line 6: if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|prompt\)$')
line 7: return FugitiveExtractGitDir(getcwd())
line 8: endif
line 9: return dir
FugitiveGitDir returning ''
continuing in FugitiveHead
line 2: if empty(dir)
line 3: return ''
FugitiveHead returning ''
calling coc#api#call('eval', ['[coc#util#cursor(), getline(".")]'])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 16('[coc#util#cursor(), getline(".")]')
line 1: return eval(a:expr)
calling coc#util#cursor()
line 1: let pos = getcurpos()
line 2: let content = pos[2] == 1 ? '' : getline('.')[0: pos[2] - 2]
line 3: return [pos[1] - 1, strchars(content)]
coc#util#cursor returning [0, 2]
continuing in 16
16 returning [[0, 2], 'co']
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, [[0, 2], 'co']]
calling coc#api#notify('call_function', ['coc#_do_complete', [0, [{'word': 'co...'ChannelSplitterNode', 'dup': 1}], -1]])
line 1: call call(s:funcs[a:method], a:args)
calling 13('coc#_do_complete', [0, [{'word': 'const', 'equal': 1, 'us... 'ChannelSplitterNode', 'dup': 1}], -1])
line 1: return call(a:method, a:args)
calling coc#_do_complete(0, [{'word': 'const', 'equal': 1, 'user_d...bbr': 'ChannelSplitterNode', 'dup': 1}], -1)
line 1: let g:coc#_context = { 'start': a:start, 'candidates': a:items, 'preselect': a:preselect}
line 6: if mode() =~# 'i' && &paste != 1
line 7: call feedkeys("\<Plug>CocRefresh", 'i')
line 8: endif
coc#_do_complete returning #0
continuing in 13
13 returning #0
continuing in coc#api#notify
coc#api#notify returning #0
calling coc#_complete()
line 1: let items = get(g:coc#_context, 'candidates', [])
line 2: let preselect = get(g:coc#_context, 'preselect', -1)
line 3: call complete( g:coc#_context.start + 1, items)
match 1 of 50
match 1 of 50
line 3: if exists('g:loaded_matchparen')|3match none|endif
line 3: 3match none|endif
line 3: endif
Executing CompleteChanged Autocommands for "*"
autocommand call s:Autocmd('MenuPopupChanged', get(v:, 'event', {}), win_screenpos(winnr())[0] + winline() - 2)
Executing: call s:Autocmd('MenuPopupChanged', get(v:, 'event', {}), win_screenpos(winnr())[0] + winline() - 2)
calling <SNR>46_Autocmd('MenuPopupChanged', {'col': 4, 'row': 2, 'scrollbar': v:fa... 'width': 42, 'height': 50, 'size': 50}, 1)
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['MenuPopupChanged', {'col': 4, 'row':...dth': 42, 'height': 50, 'size': 50}, 1])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['MenuPopupChanged', {'col': 4, 'row':...dth': 42, 'height': 50, 'size': 50}, 1])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in CompleteChanged Autocommands for "*"
line 6: if s:select_api && len(items) && preselect != -1
line 7: call nvim_select_popupmenu_item(preselect, v:false, v:false, {})
line 8: endif
line 9: return ''
coc#_complete returning ''
Executing TextChangedP Autocommands for "*"
autocommand call s:Autocmd('TextChangedP', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
Executing: call s:Autocmd('TextChangedP', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
calling <SNR>46_Autocmd('TextChangedP', 1, {'lnum': 1, 'col': 3, 'changedtick': 6, 'pre': 'co'})
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['TextChangedP', 1, {'lnum': 1, 'col': 3, 'changedtick': 6, 'pre': 'co'}])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['TextChangedP', 1, {'lnum': 1, 'col': 3, 'changedtick': 6, 'pre': 'co'}])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in TextChangedP Autocommands for "*"
Executing InsertCharPre Autocommands for "*"
autocommand call s:Autocmd('InsertCharPre', v:char)
Executing: call s:Autocmd('InsertCharPre', v:char)
calling <SNR>46_Autocmd('InsertCharPre', 'n')
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['InsertCharPre', 'n'])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['InsertCharPre', 'n'])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in InsertCharPre Autocommands for "*"
Executing: if exists('g:loaded_matchparen')|3match none|endif
Executing: 3match none|endif
Executing: endif
calling lightline#tabline()
line 1: if !has_key(s:highlight, 'tabline')
line 2: call lightline#highlight('tabline')
line 3: endif
line 4: if s:lightline.tabline_configured || s:tabnr != tabpagenr() || s:tabcnt != tabpagenr('$')
line 5: let s:tabnr = tabpagenr()
line 6: let s:tabcnt = tabpagenr('$')
line 7: let s:tabline = s:line(1, 0)
calling <SNR>152_line(1, 0)
line 1: let _ = a:tabline ? '' : '%{lightline#link()}'
line 2: if s:lightline.palette == {}
line 3: call lightline#colorscheme()
line 4: endif
line 5: let [l, r] = a:tabline ? [s:lightline.tab_llen, s:lightline.tab_rlen] : [s:lightline.llen, s:lightline.rlen]
line 6: let [p, s] = a:tabline ? [s:lightline.tabline_separator, s:lightline.tabline_subseparator] : [s:lightline.separator, s:lightline.subseparator]
line 7: let [c, f, t, w] = [s:lightline.component, s:lightline.component_function, s:lightline.component_type, s:lightline.component_raw]
line 8: let mode = a:tabline ? 'tabline' : a:inactive ? 'inactive' : 'active'
line 9: let l_ = has_key(s:lightline, mode) ? s:lightline[mode].left : s:lightline.active.left
line 10: let [lt, lc, ll] = s:expand(copy(l_))
calling <SNR>152_expand([['buffers']])
line 1: let components = []
line 2: let expanded = []
line 3: let indices = []
line 4: let prevtype = ''
line 5: let previndex = -1
line 6: let xs = s:flatten_twice(s:map(deepcopy(a:components), 'map(v:val, "s:convert(v:val, ''" . v:key . "'')")'))
calling <SNR>152_convert('buffers', '0')
line 1: if has_key(s:lightline.component_expand, a:name)
line 2: let type = get(s:lightline.component_type, a:name, a:index)
line 3: let is_raw = get(s:lightline.component_raw, a:name) || type ==# 'raw'
line 4: return filter(s:map(s:evaluate_expand(s:lightline.component_expand[a:name]), '[v:val, 1 + ' . is_raw . ', v:key == 1 && ' . (type !=# 'raw') . ' ? "' . type . '" : "' . a:index . '", "' . a:index . '"]'), 'v:val[0] != []')
calling <SNR>152_evaluate_expand('lightline#bufferline#buffers')
line 1: try
line 2: let result = eval(a:component . '()')
calling lightline#bufferline#buffers()
line 1: let l:buffers = s:filtered_buffers()
calling <SNR>26_filtered_buffers()
line 1: let l:buffers = filter(range(1, bufnr('$')), 's:filter_buffer(v:val)')
calling <SNR>26_filter_buffer(1)
line 1: return bufexists(a:i) && buflisted(a:i) && !(getbufvar(a:i, '&filetype') ==# 'qf')
<SNR>26_filter_buffer returning #1
continuing in <SNR>26_filtered_buffers
line 2: if s:reverse_buffers == 1
line 3: let l:buffers = reverse(l:buffers)
line 4: endif
line 5: return l:buffers
<SNR>26_filtered_buffers returning [1]
continuing in lightline#bufferline#buffers
line 2: let l:current_index = index(l:buffers, bufnr('%'))
line 3: if l:current_index == -1
line 4: return [s:get_buffer_names(l:buffers, 0, len(l:buffers))[0], [], []]
line 5: endif
line 6: let l:before = s:get_buffer_names(l:buffers, 0, l:current_index)
calling <SNR>26_get_buffer_names([1], 0, 0)
line 1: let l:names = []
line 2: let l:lengths = []
line 3: for l:i in range(a:from, a:to - 1)
line 4: let [l:name, l:len] = s:get_buffer_name(l:i, a:buffers[l:i])
line 5: call add(l:names, l:name)
line 6: call add(l:lengths, l:len + 4)
line 7: endfor
line 8: return [l:names, l:lengths]
<SNR>26_get_buffer_names returning [[], []]
continuing in lightline#bufferline#buffers
line 7: let l:current = s:get_buffer_names(l:buffers, l:current_index, l:current_index + 1)
calling <SNR>26_get_buffer_names([1], 0, 1)
line 1: let l:names = []
line 2: let l:lengths = []
line 3: for l:i in range(a:from, a:to - 1)
line 4: let [l:name, l:len] = s:get_buffer_name(l:i, a:buffers[l:i])
calling <SNR>26_get_buffer_name(0, 1)
line 1: let l:name = bufname(a:buffer)
line 2: if l:name ==# ''
line 3: let l:name = s:unnamed
line 4: else
line 5: let l:name = fnamemodify(l:name, s:filename_modifier)
line 6: if s:shorten_path
line 7: let l:name = pathshorten(l:name)
line 8: endif
line 9: endif
line 10: if s:enable_devicons == 1 && exists('*WebDevIconsGetFileTypeSymbol')
line 11: let l:name = WebDevIconsGetFileTypeSymbol(fnamemodify(bufname(a:buffer), ':t')) . ' ' . l:name
line 12: endif
line 13: if s:is_read_only(a:buffer)
calling <SNR>26_is_read_only(1)
line 1: let l:modifiable = getbufvar(a:buffer, '&modifiable')
line 2: let l:readonly = getbufvar(a:buffer, '&readonly')
line 3: return (l:readonly || !l:modifiable) && getbufvar(a:buffer, '&filetype') !=# 'help'
<SNR>26_is_read_only returning #0
continuing in <SNR>26_get_buffer_name
line 14: let l:name .= s:read_only
line 15: endif
line 16: if getbufvar(a:buffer, '&mod')
line 17: let l:name .= s:modified
line 18: endif
line 19: if s:show_number == 1
line 20: let l:name = a:buffer . s:number_separator . l:name
line 21: elseif s:show_number == 2
line 22: let l:name = s:get_from_number_map(a:i + 1). s:number_separator . l:name
line 23: elseif s:show_number == 3
line 24: let l:name = a:buffer . s:ordinal_separator . s:get_from_number_map(a:i + 1) . s:number_separator . l:name
line 25: elseif s:show_number == 4
line 26: let l:name = s:get_from_number_map(a:i + 1) . s:ordinal_separator . a:buffer . s:number_separator . l:name
line 27: endif
line 28: let l:len = len(l:name)
line 29: let l:name = substitute(l:name, '%', '%%', 'g')
line 30: if s:component_is_raw
line 31: let l:name = ' ' . l:name . ' '
line 32: endif
line 33: if s:clickable
line 34: return ['%' . string(a:i) . '@lightline#bufferline#_click_handler@' . l:name . '%X', l:len]
line 35: else
line 36: return [l:name, l:len]
<SNR>26_get_buffer_name returning [' index.tsx + ', 11]
continuing in <SNR>26_get_buffer_names
line 5: call add(l:names, l:name)
line 6: call add(l:lengths, l:len + 4)
line 7: endfor
line 3: for l:i in range(a:from, a:to - 1)
line 4: let [l:name, l:len] = s:get_buffer_name(l:i, a:buffers[l:i])
line 5: call add(l:names, l:name)
line 6: call add(l:lengths, l:len + 4)
line 7: endfor
line 8: return [l:names, l:lengths]
<SNR>26_get_buffer_names returning [[' index.tsx + '], [15]]
continuing in lightline#bufferline#buffers
line 8: let l:after = s:get_buffer_names(l:buffers, l:current_index + 1, len(l:buffers))
calling <SNR>26_get_buffer_names([1], 1, 1)
line 1: let l:names = []
line 2: let l:lengths = []
line 3: for l:i in range(a:from, a:to - 1)
line 4: let [l:name, l:len] = s:get_buffer_name(l:i, a:buffers[l:i])
line 5: call add(l:names, l:name)
line 6: call add(l:lengths, l:len + 4)
line 7: endfor
line 8: return [l:names, l:lengths]
<SNR>26_get_buffer_names returning [[], []]
continuing in lightline#bufferline#buffers
line 9: if s:right_aligned == 1
line 10: return s:select_buffers(l:after, l:current, l:before)
line 11: else
line 12: return s:select_buffers(l:before, l:current, l:after)
calling <SNR>26_select_buffers([[], []], [[' index.tsx + '], [15]], [[], []])
line 1: let [l:before_names, l:current_names, l:after_names] = [a:before[0], a:current[0], a:after[0]]
line 2: let [l:before_lengths, l:current_lengths, l:after_lengths] = [a:before[1], a:current[1], a:after[1]]
line 3:
line 4: " The current buffer is always displayed
line 5: let l:width = &columns - l:current_lengths[:0][0]
line 6:
line 7: " Display all buffers if there is enough space to display them
line 8: if s:sum(l:before_lengths) + s:sum(l:after_lengths) <= l:width
calling <SNR>26_sum([])
line 1: let l:sum = 0
line 2: for l:value in a:list
line 3: let l:sum += l:value
line 4: endfor
line 5: return l:sum
<SNR>26_sum returning #0
continuing in <SNR>26_select_buffers
calling <SNR>26_sum([])
line 1: let l:sum = 0
line 2: for l:value in a:list
line 3: let l:sum += l:value
line 4: endfor
line 5: return l:sum
<SNR>26_sum returning #0
continuing in <SNR>26_select_buffers
line 9: return [l:before_names, l:current_names, l:after_names]
<SNR>26_select_buffers returning [[], [' index.tsx + '], []]
continuing in lightline#bufferline#buffers
lightline#bufferline#buffers returning [[], [' index.tsx + '], []]
continuing in <SNR>152_evaluate_expand
line 3: if type(result) == 1 && result ==# ''
line 4: return []
line 5: endif
line 6: catch
line 7: return []
line 8: endtry
line 9: return map(type(result) == 3 ? (result + [[], [], []])[:2] : [[], [result], []], 'filter(s:normalize(v:val), "v:val !=# ''''")')
calling <SNR>152_normalize([])
line 1: if type(a:result) == 3
line 2: return map(a:result, 'type(v:val) == 1 ? v:val : string(v:val)')
<SNR>152_normalize returning []
continuing in <SNR>152_evaluate_expand
calling <SNR>152_normalize([' index.tsx + '])
line 1: if type(a:result) == 3
line 2: return map(a:result, 'type(v:val) == 1 ? v:val : string(v:val)')
<SNR>152_normalize returning [' index.tsx + ']
continuing in <SNR>152_evaluate_expand
calling <SNR>152_normalize([])
line 1: if type(a:result) == 3
line 2: return map(a:result, 'type(v:val) == 1 ? v:val : string(v:val)')
<SNR>152_normalize returning []
continuing in <SNR>152_evaluate_expand
<SNR>152_evaluate_expand returning [[], [' index.tsx + '], []]
continuing in <SNR>152_convert
<SNR>152_convert returning [[[' index.tsx + '], 2, 'tabsel', '0']]
continuing in <SNR>152_expand
calling <SNR>152_flatten_twice([[[[[' index.tsx + '], 2, 'tabsel', '0']]]])
line 1: let ys = []
line 2: for xs in a:xss
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 6: endfor
line 2: for xs in a:xss
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 6: endfor
line 7: return ys
<SNR>152_flatten_twice returning [[[' index.tsx + '], 2, 'tabsel', '0']]
continuing in <SNR>152_expand
line 7: for [component, expand, type, index] in xs
line 8: if prevtype !=# type
line 9: for i in range(previndex + 1, max([previndex, index - 1]))
line 10: call add(indices, string(i))
line 11: call add(components, [])
line 12: call add(expanded, [])
line 13: endfor
line 14: call add(indices, type)
line 15: call add(components, [])
line 16: call add(expanded, [])
line 17: endif
line 18: call extend(components[-1], component)
line 19: call extend(expanded[-1], repeat([expand], len(component)))
line 20: let prevtype = type
line 21: let previndex = index
line 22: endfor
line 7: for [component, expand, type, index] in xs
line 8: if prevtype !=# type
line 9: for i in range(previndex + 1, max([previndex, index - 1]))
line 10: call add(indices, string(i))
line 11: call add(components, [])
line 12: call add(expanded, [])
line 13: endfor
line 14: call add(indices, type)
line 15: call add(components, [])
line 16: call add(expanded, [])
line 17: endif
line 18: call extend(components[-1], component)
line 19: call extend(expanded[-1], repeat([expand], len(component)))
line 20: let prevtype = type
line 21: let previndex = index
line 22: endfor
line 23: for i in range(previndex + 1, max([previndex, len(a:components) - 1]))
line 24: call add(indices, string(i))
line 25: call add(components, [])
line 26: call add(expanded, [])
line 27: endfor
line 28: call add(indices, string(len(a:components)))
line 29: return [components, expanded, indices]
<SNR>152_expand returning [[[' index.tsx + ']], [[2]], ['tabsel', '1']]
continuing in <SNR>152_line
line 11: let r_ = has_key(s:lightline, mode) ? s:lightline[mode].right : s:lightline.active.right
line 12: let [rt, rc, rl] = s:expand(copy(r_))
calling <SNR>152_expand([[]])
line 1: let components = []
line 2: let expanded = []
line 3: let indices = []
line 4: let prevtype = ''
line 5: let previndex = -1
line 6: let xs = s:flatten_twice(s:map(deepcopy(a:components), 'map(v:val, "s:convert(v:val, ''" . v:key . "'')")'))
calling <SNR>152_flatten_twice([[]])
line 1: let ys = []
line 2: for xs in a:xss
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 6: endfor
line 2: for xs in a:xss
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 6: endfor
line 7: return ys
<SNR>152_flatten_twice returning []
continuing in <SNR>152_expand
line 7: for [component, expand, type, index] in xs
line 8: if prevtype !=# type
line 9: for i in range(previndex + 1, max([previndex, index - 1]))
line 10: call add(indices, string(i))
line 11: call add(components, [])
line 12: call add(expanded, [])
line 13: endfor
line 14: call add(indices, type)
line 15: call add(components, [])
line 16: call add(expanded, [])
line 17: endif
line 18: call extend(components[-1], component)
line 19: call extend(expanded[-1], repeat([expand], len(component)))
line 20: let prevtype = type
line 21: let previndex = index
line 22: endfor
line 23: for i in range(previndex + 1, max([previndex, len(a:components) - 1]))
line 24: call add(indices, string(i))
line 25: call add(components, [])
line 26: call add(expanded, [])
line 27: endfor
line 23: for i in range(previndex + 1, max([previndex, len(a:components) - 1]))
line 24: call add(indices, string(i))
line 25: call add(components, [])
line 26: call add(expanded, [])
line 27: endfor
line 28: call add(indices, string(len(a:components)))
line 29: return [components, expanded, indices]
<SNR>152_expand returning [[[]], [[]], ['0', '1']]
continuing in <SNR>152_line
line 13: for i in range(len(lt))
line 14: let _ .= '%#LightlineLeft_' . mode . '_' . ll[i] . '#'
line 15: for j in range(len(lt[i]))
line 16: let x = lc[i][j] ? lt[i][j] : has_key(f, lt[i][j]) ? (exists('*' . f[lt[i][j]]) ? '%{' . f[lt[i][j]] . '()}' : '%{exists("*' . f[lt[i][j]] . '")?' . f[lt[i][j]] . '():""}') : get(c, lt[i][j], '')
line 17: let _ .= has_key(t, lt[i][j]) && t[lt[i][j]] ==# 'raw' || get(w, lt[i][j]) || lc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 18: if j < len(lt[i]) - 1 && s.left !=# ''
line 19: let _ .= s:subseparator(lt[i][(j):], s.left, lc[i][(j):])
line 20: endif
line 21: endfor
line 15: for j in range(len(lt[i]))
line 16: let x = lc[i][j] ? lt[i][j] : has_key(f, lt[i][j]) ? (exists('*' . f[lt[i][j]]) ? '%{' . f[lt[i][j]] . '()}' : '%{exists("*' . f[lt[i][j]] . '")?' . f[lt[i][j]] . '():""}') : get(c, lt[i][j], '')
line 17: let _ .= has_key(t, lt[i][j]) && t[lt[i][j]] ==# 'raw' || get(w, lt[i][j]) || lc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 18: if j < len(lt[i]) - 1 && s.left !=# ''
line 19: let _ .= s:subseparator(lt[i][(j):], s.left, lc[i][(j):])
line 20: endif
line 21: endfor
line 22: let _ .= '%#LightlineLeft_' . mode . '_' . ll[i] . '_' . ll[i + 1] . '#'
line 23: let _ .= i < l + len(lt) - len(l_) && ll[i] < l || ll[i] != ll[i + 1] ? p.left : len(lt[i]) ? s.left : ''
line 24: endfor
line 13: for i in range(len(lt))
line 14: let _ .= '%#LightlineLeft_' . mode . '_' . ll[i] . '#'
line 15: for j in range(len(lt[i]))
line 16: let x = lc[i][j] ? lt[i][j] : has_key(f, lt[i][j]) ? (exists('*' . f[lt[i][j]]) ? '%{' . f[lt[i][j]] . '()}' : '%{exists("*' . f[lt[i][j]] . '")?' . f[lt[i][j]] . '():""}') : get(c, lt[i][j], '')
line 17: let _ .= has_key(t, lt[i][j]) && t[lt[i][j]] ==# 'raw' || get(w, lt[i][j]) || lc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 18: if j < len(lt[i]) - 1 && s.left !=# ''
line 19: let _ .= s:subseparator(lt[i][(j):], s.left, lc[i][(j):])
line 20: endif
line 21: endfor
line 22: let _ .= '%#LightlineLeft_' . mode . '_' . ll[i] . '_' . ll[i + 1] . '#'
line 23: let _ .= i < l + len(lt) - len(l_) && ll[i] < l || ll[i] != ll[i + 1] ? p.left : len(lt[i]) ? s.left : ''
line 24: endfor
line 25: let _ .= '%#LightlineMiddle_' . mode . '#%='
line 26: for i in range(len(rt) - 1, 0, -1)
line 27: let _ .= '%#LightlineRight_' . mode . '_' . rl[i] . '_' . rl[i + 1] . '#'
line 28: let _ .= i < r + len(rt) - len(r_) && rl[i] < r || rl[i] != rl[i + 1] ? p.right : len(rt[i]) ? s.right : ''
line 29: let _ .= '%#LightlineRight_' . mode . '_' . rl[i] . '#'
line 30: for j in range(len(rt[i]))
line 31: let x = rc[i][j] ? rt[i][j] : has_key(f, rt[i][j]) ? (exists('*' . f[rt[i][j]]) ? '%{' . f[rt[i][j]] . '()}' : '%{exists("*' . f[rt[i][j]] . '")?' . f[rt[i][j]] . '():""}') : get(c, rt[i][j], '')
line 32: let _ .= has_key(t, rt[i][j]) && t[rt[i][j]] ==# 'raw' || get(w, rt[i][j]) || rc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 33: if j < len(rt[i]) - 1 && s.right !=# ''
line 34: let _ .= s:subseparator(rt[i][(j):], s.right, rc[i][(j):])
line 35: endif
line 36: endfor
line 37: endfor
line 26: for i in range(len(rt) - 1, 0, -1)
line 27: let _ .= '%#LightlineRight_' . mode . '_' . rl[i] . '_' . rl[i + 1] . '#'
line 28: let _ .= i < r + len(rt) - len(r_) && rl[i] < r || rl[i] != rl[i + 1] ? p.right : len(rt[i]) ? s.right : ''
line 29: let _ .= '%#LightlineRight_' . mode . '_' . rl[i] . '#'
line 30: for j in range(len(rt[i]))
line 31: let x = rc[i][j] ? rt[i][j] : has_key(f, rt[i][j]) ? (exists('*' . f[rt[i][j]]) ? '%{' . f[rt[i][j]] . '()}' : '%{exists("*' . f[rt[i][j]] . '")?' . f[rt[i][j]] . '():""}') : get(c, rt[i][j], '')
line 32: let _ .= has_key(t, rt[i][j]) && t[rt[i][j]] ==# 'raw' || get(w, rt[i][j]) || rc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 33: if j < len(rt[i]) - 1 && s.right !=# ''
line 34: let _ .= s:subseparator(rt[i][(j):], s.right, rc[i][(j):])
line 35: endif
line 36: endfor
line 37: endfor
line 38: return _
<SNR>152_line returning '%#LightlineLeft_tabline_tabsel# index...abline_0_1#%#LightlineRight_tabline_0#'
continuing in lightline#tabline
line 8: endif
line 9: return s:tabline
lightline#tabline returning '%#LightlineLeft_tabline_tabsel# index...abline_0_1#%#LightlineRight_tabline_0#'
calling lightline#link()
line 1: let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
line 2: if s:mode ==# mode
line 3: return ''
lightline#link returning ''
calling lightline#mode()
line 1: return get(s:lightline.mode_map, mode(), '')
lightline#mode returning 'INSERT'
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling FugitiveHead()
line 1: let dir = FugitiveGitDir(a:0 > 1 ? a:2 : -1)
calling FugitiveGitDir(-1)
line 1: if !a:0 || type(a:1) == type(0) && a:1 < 0
line 2: if exists('g:fugitive_event')
line 3: return g:fugitive_event
line 4: endif
line 5: let dir = get(b:, 'git_dir', '')
line 6: if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|prompt\)$')
line 7: return FugitiveExtractGitDir(getcwd())
line 8: endif
line 9: return dir
FugitiveGitDir returning ''
continuing in FugitiveHead
line 2: if empty(dir)
line 3: return ''
FugitiveHead returning ''
Executing CompleteChanged Autocommands for "*"
autocommand call s:Autocmd('MenuPopupChanged', get(v:, 'event', {}), win_screenpos(winnr())[0] + winline() - 2)
Executing: call s:Autocmd('MenuPopupChanged', get(v:, 'event', {}), win_screenpos(winnr())[0] + winline() - 2)
calling <SNR>46_Autocmd('MenuPopupChanged', {'col': 4, 'row': 2, 'scrollbar': v:fa... 'width': 42, 'height': 50, 'size': 50}, 1)
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['MenuPopupChanged', {'col': 4, 'row':...dth': 42, 'height': 50, 'size': 50}, 1])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['MenuPopupChanged', {'col': 4, 'row':...dth': 42, 'height': 50, 'size': 50}, 1])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in CompleteChanged Autocommands for "*"
Executing TextChangedP Autocommands for "*"
autocommand call s:Autocmd('TextChangedP', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
Executing: call s:Autocmd('TextChangedP', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
calling <SNR>46_Autocmd('TextChangedP', 1, {'lnum': 1, 'col': 4, 'changedtick': 13, 'pre': 'con'})
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['TextChangedP', 1, {'lnum': 1, 'col': 4, 'changedtick': 13, 'pre': 'con'}])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['TextChangedP', 1, {'lnum': 1, 'col': 4, 'changedtick': 13, 'pre': 'con'}])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in TextChangedP Autocommands for "*"
calling coc#api#notify('call_function', ['coc#_do_complete', [0, [{'word': 'co...tmapRenderingContext', 'dup': 1}], -1]])
line 1: call call(s:funcs[a:method], a:args)
calling 13('coc#_do_complete', [0, [{'word': 'const', 'equal': 1, 'us...itmapRenderingContext', 'dup': 1}], -1])
line 1: return call(a:method, a:args)
calling coc#_do_complete(0, [{'word': 'const', 'equal': 1, 'user_d...mageBitmapRenderingContext', 'dup': 1}], -1)
line 1: let g:coc#_context = { 'start': a:start, 'candidates': a:items, 'preselect': a:preselect}
line 6: if mode() =~# 'i' && &paste != 1
line 7: call feedkeys("\<Plug>CocRefresh", 'i')
line 8: endif
coc#_do_complete returning #0
continuing in 13
13 returning #0
continuing in coc#api#notify
coc#api#notify returning #0
calling coc#_complete()
line 1: let items = get(g:coc#_context, 'candidates', [])
line 2: let preselect = get(g:coc#_context, 'preselect', -1)
line 3: call complete( g:coc#_context.start + 1, items)
Executing CompleteDone Autocommands for "*"
autocommand call s:Autocmd('CompleteDone', get(v:, 'completed_item', {}))
Executing: call s:Autocmd('CompleteDone', get(v:, 'completed_item', {}))
calling <SNR>46_Autocmd('CompleteDone', {})
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['CompleteDone', {}])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['CompleteDone', {}])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in CompleteDone Autocommands for "*"
match 1 of 49
match 1 of 49
line 3: if exists('g:loaded_matchparen')|3match none|endif
line 3: 3match none|endif
line 3: endif
calling lightline#tabline()
line 1: if !has_key(s:highlight, 'tabline')
line 2: call lightline#highlight('tabline')
line 3: endif
line 4: if s:lightline.tabline_configured || s:tabnr != tabpagenr() || s:tabcnt != tabpagenr('$')
line 5: let s:tabnr = tabpagenr()
line 6: let s:tabcnt = tabpagenr('$')
line 7: let s:tabline = s:line(1, 0)
calling <SNR>152_line(1, 0)
line 1: let _ = a:tabline ? '' : '%{lightline#link()}'
line 2: if s:lightline.palette == {}
line 3: call lightline#colorscheme()
line 4: endif
line 5: let [l, r] = a:tabline ? [s:lightline.tab_llen, s:lightline.tab_rlen] : [s:lightline.llen, s:lightline.rlen]
line 6: let [p, s] = a:tabline ? [s:lightline.tabline_separator, s:lightline.tabline_subseparator] : [s:lightline.separator, s:lightline.subseparator]
line 7: let [c, f, t, w] = [s:lightline.component, s:lightline.component_function, s:lightline.component_type, s:lightline.component_raw]
line 8: let mode = a:tabline ? 'tabline' : a:inactive ? 'inactive' : 'active'
line 9: let l_ = has_key(s:lightline, mode) ? s:lightline[mode].left : s:lightline.active.left
line 10: let [lt, lc, ll] = s:expand(copy(l_))
calling <SNR>152_expand([['buffers']])
line 1: let components = []
line 2: let expanded = []
line 3: let indices = []
line 4: let prevtype = ''
line 5: let previndex = -1
line 6: let xs = s:flatten_twice(s:map(deepcopy(a:components), 'map(v:val, "s:convert(v:val, ''" . v:key . "'')")'))
calling <SNR>152_convert('buffers', '0')
line 1: if has_key(s:lightline.component_expand, a:name)
line 2: let type = get(s:lightline.component_type, a:name, a:index)
line 3: let is_raw = get(s:lightline.component_raw, a:name) || type ==# 'raw'
line 4: return filter(s:map(s:evaluate_expand(s:lightline.component_expand[a:name]), '[v:val, 1 + ' . is_raw . ', v:key == 1 && ' . (type !=# 'raw') . ' ? "' . type . '" : "' . a:index . '", "' . a:index . '"]'), 'v:val[0] != []')
calling <SNR>152_evaluate_expand('lightline#bufferline#buffers')
line 1: try
line 2: let result = eval(a:component . '()')
calling lightline#bufferline#buffers()
line 1: let l:buffers = s:filtered_buffers()
calling <SNR>26_filtered_buffers()
line 1: let l:buffers = filter(range(1, bufnr('$')), 's:filter_buffer(v:val)')
calling <SNR>26_filter_buffer(1)
line 1: return bufexists(a:i) && buflisted(a:i) && !(getbufvar(a:i, '&filetype') ==# 'qf')
<SNR>26_filter_buffer returning #1
continuing in <SNR>26_filtered_buffers
line 2: if s:reverse_buffers == 1
line 3: let l:buffers = reverse(l:buffers)
line 4: endif
line 5: return l:buffers
<SNR>26_filtered_buffers returning [1]
continuing in lightline#bufferline#buffers
line 2: let l:current_index = index(l:buffers, bufnr('%'))
line 3: if l:current_index == -1
line 4: return [s:get_buffer_names(l:buffers, 0, len(l:buffers))[0], [], []]
line 5: endif
line 6: let l:before = s:get_buffer_names(l:buffers, 0, l:current_index)
calling <SNR>26_get_buffer_names([1], 0, 0)
line 1: let l:names = []
line 2: let l:lengths = []
line 3: for l:i in range(a:from, a:to - 1)
line 4: let [l:name, l:len] = s:get_buffer_name(l:i, a:buffers[l:i])
line 5: call add(l:names, l:name)
line 6: call add(l:lengths, l:len + 4)
line 7: endfor
line 8: return [l:names, l:lengths]
<SNR>26_get_buffer_names returning [[], []]
continuing in lightline#bufferline#buffers
line 7: let l:current = s:get_buffer_names(l:buffers, l:current_index, l:current_index + 1)
calling <SNR>26_get_buffer_names([1], 0, 1)
line 1: let l:names = []
line 2: let l:lengths = []
line 3: for l:i in range(a:from, a:to - 1)
line 4: let [l:name, l:len] = s:get_buffer_name(l:i, a:buffers[l:i])
calling <SNR>26_get_buffer_name(0, 1)
line 1: let l:name = bufname(a:buffer)
line 2: if l:name ==# ''
line 3: let l:name = s:unnamed
line 4: else
line 5: let l:name = fnamemodify(l:name, s:filename_modifier)
line 6: if s:shorten_path
line 7: let l:name = pathshorten(l:name)
line 8: endif
line 9: endif
line 10: if s:enable_devicons == 1 && exists('*WebDevIconsGetFileTypeSymbol')
line 11: let l:name = WebDevIconsGetFileTypeSymbol(fnamemodify(bufname(a:buffer), ':t')) . ' ' . l:name
line 12: endif
line 13: if s:is_read_only(a:buffer)
calling <SNR>26_is_read_only(1)
line 1: let l:modifiable = getbufvar(a:buffer, '&modifiable')
line 2: let l:readonly = getbufvar(a:buffer, '&readonly')
line 3: return (l:readonly || !l:modifiable) && getbufvar(a:buffer, '&filetype') !=# 'help'
<SNR>26_is_read_only returning #0
continuing in <SNR>26_get_buffer_name
line 14: let l:name .= s:read_only
line 15: endif
line 16: if getbufvar(a:buffer, '&mod')
line 17: let l:name .= s:modified
line 18: endif
line 19: if s:show_number == 1
line 20: let l:name = a:buffer . s:number_separator . l:name
line 21: elseif s:show_number == 2
line 22: let l:name = s:get_from_number_map(a:i + 1). s:number_separator . l:name
line 23: elseif s:show_number == 3
line 24: let l:name = a:buffer . s:ordinal_separator . s:get_from_number_map(a:i + 1) . s:number_separator . l:name
line 25: elseif s:show_number == 4
line 26: let l:name = s:get_from_number_map(a:i + 1) . s:ordinal_separator . a:buffer . s:number_separator . l:name
line 27: endif
line 28: let l:len = len(l:name)
line 29: let l:name = substitute(l:name, '%', '%%', 'g')
line 30: if s:component_is_raw
line 31: let l:name = ' ' . l:name . ' '
line 32: endif
line 33: if s:clickable
line 34: return ['%' . string(a:i) . '@lightline#bufferline#_click_handler@' . l:name . '%X', l:len]
line 35: else
line 36: return [l:name, l:len]
<SNR>26_get_buffer_name returning [' index.tsx + ', 11]
continuing in <SNR>26_get_buffer_names
line 5: call add(l:names, l:name)
line 6: call add(l:lengths, l:len + 4)
line 7: endfor
line 3: for l:i in range(a:from, a:to - 1)
line 4: let [l:name, l:len] = s:get_buffer_name(l:i, a:buffers[l:i])
line 5: call add(l:names, l:name)
line 6: call add(l:lengths, l:len + 4)
line 7: endfor
line 8: return [l:names, l:lengths]
<SNR>26_get_buffer_names returning [[' index.tsx + '], [15]]
continuing in lightline#bufferline#buffers
line 8: let l:after = s:get_buffer_names(l:buffers, l:current_index + 1, len(l:buffers))
calling <SNR>26_get_buffer_names([1], 1, 1)
line 1: let l:names = []
line 2: let l:lengths = []
line 3: for l:i in range(a:from, a:to - 1)
line 4: let [l:name, l:len] = s:get_buffer_name(l:i, a:buffers[l:i])
line 5: call add(l:names, l:name)
line 6: call add(l:lengths, l:len + 4)
line 7: endfor
line 8: return [l:names, l:lengths]
<SNR>26_get_buffer_names returning [[], []]
continuing in lightline#bufferline#buffers
line 9: if s:right_aligned == 1
line 10: return s:select_buffers(l:after, l:current, l:before)
line 11: else
line 12: return s:select_buffers(l:before, l:current, l:after)
calling <SNR>26_select_buffers([[], []], [[' index.tsx + '], [15]], [[], []])
line 1: let [l:before_names, l:current_names, l:after_names] = [a:before[0], a:current[0], a:after[0]]
line 2: let [l:before_lengths, l:current_lengths, l:after_lengths] = [a:before[1], a:current[1], a:after[1]]
line 3:
line 4: " The current buffer is always displayed
line 5: let l:width = &columns - l:current_lengths[:0][0]
line 6:
line 7: " Display all buffers if there is enough space to display them
line 8: if s:sum(l:before_lengths) + s:sum(l:after_lengths) <= l:width
calling <SNR>26_sum([])
line 1: let l:sum = 0
line 2: for l:value in a:list
line 3: let l:sum += l:value
line 4: endfor
line 5: return l:sum
<SNR>26_sum returning #0
continuing in <SNR>26_select_buffers
calling <SNR>26_sum([])
line 1: let l:sum = 0
line 2: for l:value in a:list
line 3: let l:sum += l:value
line 4: endfor
line 5: return l:sum
<SNR>26_sum returning #0
continuing in <SNR>26_select_buffers
line 9: return [l:before_names, l:current_names, l:after_names]
<SNR>26_select_buffers returning [[], [' index.tsx + '], []]
continuing in lightline#bufferline#buffers
lightline#bufferline#buffers returning [[], [' index.tsx + '], []]
continuing in <SNR>152_evaluate_expand
line 3: if type(result) == 1 && result ==# ''
line 4: return []
line 5: endif
line 6: catch
line 7: return []
line 8: endtry
line 9: return map(type(result) == 3 ? (result + [[], [], []])[:2] : [[], [result], []], 'filter(s:normalize(v:val), "v:val !=# ''''")')
calling <SNR>152_normalize([])
line 1: if type(a:result) == 3
line 2: return map(a:result, 'type(v:val) == 1 ? v:val : string(v:val)')
<SNR>152_normalize returning []
continuing in <SNR>152_evaluate_expand
calling <SNR>152_normalize([' index.tsx + '])
line 1: if type(a:result) == 3
line 2: return map(a:result, 'type(v:val) == 1 ? v:val : string(v:val)')
<SNR>152_normalize returning [' index.tsx + ']
continuing in <SNR>152_evaluate_expand
calling <SNR>152_normalize([])
line 1: if type(a:result) == 3
line 2: return map(a:result, 'type(v:val) == 1 ? v:val : string(v:val)')
<SNR>152_normalize returning []
continuing in <SNR>152_evaluate_expand
<SNR>152_evaluate_expand returning [[], [' index.tsx + '], []]
continuing in <SNR>152_convert
<SNR>152_convert returning [[[' index.tsx + '], 2, 'tabsel', '0']]
continuing in <SNR>152_expand
calling <SNR>152_flatten_twice([[[[[' index.tsx + '], 2, 'tabsel', '0']]]])
line 1: let ys = []
line 2: for xs in a:xss
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 6: endfor
line 2: for xs in a:xss
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 6: endfor
line 7: return ys
<SNR>152_flatten_twice returning [[[' index.tsx + '], 2, 'tabsel', '0']]
continuing in <SNR>152_expand
line 7: for [component, expand, type, index] in xs
line 8: if prevtype !=# type
line 9: for i in range(previndex + 1, max([previndex, index - 1]))
line 10: call add(indices, string(i))
line 11: call add(components, [])
line 12: call add(expanded, [])
line 13: endfor
line 14: call add(indices, type)
line 15: call add(components, [])
line 16: call add(expanded, [])
line 17: endif
line 18: call extend(components[-1], component)
line 19: call extend(expanded[-1], repeat([expand], len(component)))
line 20: let prevtype = type
line 21: let previndex = index
line 22: endfor
line 7: for [component, expand, type, index] in xs
line 8: if prevtype !=# type
line 9: for i in range(previndex + 1, max([previndex, index - 1]))
line 10: call add(indices, string(i))
line 11: call add(components, [])
line 12: call add(expanded, [])
line 13: endfor
line 14: call add(indices, type)
line 15: call add(components, [])
line 16: call add(expanded, [])
line 17: endif
line 18: call extend(components[-1], component)
line 19: call extend(expanded[-1], repeat([expand], len(component)))
line 20: let prevtype = type
line 21: let previndex = index
line 22: endfor
line 23: for i in range(previndex + 1, max([previndex, len(a:components) - 1]))
line 24: call add(indices, string(i))
line 25: call add(components, [])
line 26: call add(expanded, [])
line 27: endfor
line 28: call add(indices, string(len(a:components)))
line 29: return [components, expanded, indices]
<SNR>152_expand returning [[[' index.tsx + ']], [[2]], ['tabsel', '1']]
continuing in <SNR>152_line
line 11: let r_ = has_key(s:lightline, mode) ? s:lightline[mode].right : s:lightline.active.right
line 12: let [rt, rc, rl] = s:expand(copy(r_))
calling <SNR>152_expand([[]])
line 1: let components = []
line 2: let expanded = []
line 3: let indices = []
line 4: let prevtype = ''
line 5: let previndex = -1
line 6: let xs = s:flatten_twice(s:map(deepcopy(a:components), 'map(v:val, "s:convert(v:val, ''" . v:key . "'')")'))
calling <SNR>152_flatten_twice([[]])
line 1: let ys = []
line 2: for xs in a:xss
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 6: endfor
line 2: for xs in a:xss
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 6: endfor
line 7: return ys
<SNR>152_flatten_twice returning []
continuing in <SNR>152_expand
line 7: for [component, expand, type, index] in xs
line 8: if prevtype !=# type
line 9: for i in range(previndex + 1, max([previndex, index - 1]))
line 10: call add(indices, string(i))
line 11: call add(components, [])
line 12: call add(expanded, [])
line 13: endfor
line 14: call add(indices, type)
line 15: call add(components, [])
line 16: call add(expanded, [])
line 17: endif
line 18: call extend(components[-1], component)
line 19: call extend(expanded[-1], repeat([expand], len(component)))
line 20: let prevtype = type
line 21: let previndex = index
line 22: endfor
line 23: for i in range(previndex + 1, max([previndex, len(a:components) - 1]))
line 24: call add(indices, string(i))
line 25: call add(components, [])
line 26: call add(expanded, [])
line 27: endfor
line 23: for i in range(previndex + 1, max([previndex, len(a:components) - 1]))
line 24: call add(indices, string(i))
line 25: call add(components, [])
line 26: call add(expanded, [])
line 27: endfor
line 28: call add(indices, string(len(a:components)))
line 29: return [components, expanded, indices]
<SNR>152_expand returning [[[]], [[]], ['0', '1']]
continuing in <SNR>152_line
line 13: for i in range(len(lt))
line 14: let _ .= '%#LightlineLeft_' . mode . '_' . ll[i] . '#'
line 15: for j in range(len(lt[i]))
line 16: let x = lc[i][j] ? lt[i][j] : has_key(f, lt[i][j]) ? (exists('*' . f[lt[i][j]]) ? '%{' . f[lt[i][j]] . '()}' : '%{exists("*' . f[lt[i][j]] . '")?' . f[lt[i][j]] . '():""}') : get(c, lt[i][j], '')
line 17: let _ .= has_key(t, lt[i][j]) && t[lt[i][j]] ==# 'raw' || get(w, lt[i][j]) || lc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 18: if j < len(lt[i]) - 1 && s.left !=# ''
line 19: let _ .= s:subseparator(lt[i][(j):], s.left, lc[i][(j):])
line 20: endif
line 21: endfor
line 15: for j in range(len(lt[i]))
line 16: let x = lc[i][j] ? lt[i][j] : has_key(f, lt[i][j]) ? (exists('*' . f[lt[i][j]]) ? '%{' . f[lt[i][j]] . '()}' : '%{exists("*' . f[lt[i][j]] . '")?' . f[lt[i][j]] . '():""}') : get(c, lt[i][j], '')
line 17: let _ .= has_key(t, lt[i][j]) && t[lt[i][j]] ==# 'raw' || get(w, lt[i][j]) || lc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 18: if j < len(lt[i]) - 1 && s.left !=# ''
line 19: let _ .= s:subseparator(lt[i][(j):], s.left, lc[i][(j):])
line 20: endif
line 21: endfor
line 22: let _ .= '%#LightlineLeft_' . mode . '_' . ll[i] . '_' . ll[i + 1] . '#'
line 23: let _ .= i < l + len(lt) - len(l_) && ll[i] < l || ll[i] != ll[i + 1] ? p.left : len(lt[i]) ? s.left : ''
line 24: endfor
line 13: for i in range(len(lt))
line 14: let _ .= '%#LightlineLeft_' . mode . '_' . ll[i] . '#'
line 15: for j in range(len(lt[i]))
line 16: let x = lc[i][j] ? lt[i][j] : has_key(f, lt[i][j]) ? (exists('*' . f[lt[i][j]]) ? '%{' . f[lt[i][j]] . '()}' : '%{exists("*' . f[lt[i][j]] . '")?' . f[lt[i][j]] . '():""}') : get(c, lt[i][j], '')
line 17: let _ .= has_key(t, lt[i][j]) && t[lt[i][j]] ==# 'raw' || get(w, lt[i][j]) || lc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 18: if j < len(lt[i]) - 1 && s.left !=# ''
line 19: let _ .= s:subseparator(lt[i][(j):], s.left, lc[i][(j):])
line 20: endif
line 21: endfor
line 22: let _ .= '%#LightlineLeft_' . mode . '_' . ll[i] . '_' . ll[i + 1] . '#'
line 23: let _ .= i < l + len(lt) - len(l_) && ll[i] < l || ll[i] != ll[i + 1] ? p.left : len(lt[i]) ? s.left : ''
line 24: endfor
line 25: let _ .= '%#LightlineMiddle_' . mode . '#%='
line 26: for i in range(len(rt) - 1, 0, -1)
line 27: let _ .= '%#LightlineRight_' . mode . '_' . rl[i] . '_' . rl[i + 1] . '#'
line 28: let _ .= i < r + len(rt) - len(r_) && rl[i] < r || rl[i] != rl[i + 1] ? p.right : len(rt[i]) ? s.right : ''
line 29: let _ .= '%#LightlineRight_' . mode . '_' . rl[i] . '#'
line 30: for j in range(len(rt[i]))
line 31: let x = rc[i][j] ? rt[i][j] : has_key(f, rt[i][j]) ? (exists('*' . f[rt[i][j]]) ? '%{' . f[rt[i][j]] . '()}' : '%{exists("*' . f[rt[i][j]] . '")?' . f[rt[i][j]] . '():""}') : get(c, rt[i][j], '')
line 32: let _ .= has_key(t, rt[i][j]) && t[rt[i][j]] ==# 'raw' || get(w, rt[i][j]) || rc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 33: if j < len(rt[i]) - 1 && s.right !=# ''
line 34: let _ .= s:subseparator(rt[i][(j):], s.right, rc[i][(j):])
line 35: endif
line 36: endfor
line 37: endfor
line 26: for i in range(len(rt) - 1, 0, -1)
line 27: let _ .= '%#LightlineRight_' . mode . '_' . rl[i] . '_' . rl[i + 1] . '#'
line 28: let _ .= i < r + len(rt) - len(r_) && rl[i] < r || rl[i] != rl[i + 1] ? p.right : len(rt[i]) ? s.right : ''
line 29: let _ .= '%#LightlineRight_' . mode . '_' . rl[i] . '#'
line 30: for j in range(len(rt[i]))
line 31: let x = rc[i][j] ? rt[i][j] : has_key(f, rt[i][j]) ? (exists('*' . f[rt[i][j]]) ? '%{' . f[rt[i][j]] . '()}' : '%{exists("*' . f[rt[i][j]] . '")?' . f[rt[i][j]] . '():""}') : get(c, rt[i][j], '')
line 32: let _ .= has_key(t, rt[i][j]) && t[rt[i][j]] ==# 'raw' || get(w, rt[i][j]) || rc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 33: if j < len(rt[i]) - 1 && s.right !=# ''
line 34: let _ .= s:subseparator(rt[i][(j):], s.right, rc[i][(j):])
line 35: endif
line 36: endfor
line 37: endfor
line 38: return _
<SNR>152_line returning '%#LightlineLeft_tabline_tabsel# index...abline_0_1#%#LightlineRight_tabline_0#'
continuing in lightline#tabline
line 8: endif
line 9: return s:tabline
lightline#tabline returning '%#LightlineLeft_tabline_tabsel# index...abline_0_1#%#LightlineRight_tabline_0#'
continuing in coc#_complete
calling lightline#link()
line 1: let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
line 2: if s:mode ==# mode
line 3: return ''
lightline#link returning ''
continuing in coc#_complete
calling lightline#mode()
line 1: return get(s:lightline.mode_map, mode(), '')
lightline#mode returning 'INSERT'
continuing in coc#_complete
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
continuing in coc#_complete
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
continuing in coc#_complete
calling FugitiveHead()
line 1: let dir = FugitiveGitDir(a:0 > 1 ? a:2 : -1)
calling FugitiveGitDir(-1)
line 1: if !a:0 || type(a:1) == type(0) && a:1 < 0
line 2: if exists('g:fugitive_event')
line 3: return g:fugitive_event
line 4: endif
line 5: let dir = get(b:, 'git_dir', '')
line 6: if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|prompt\)$')
line 7: return FugitiveExtractGitDir(getcwd())
line 8: endif
line 9: return dir
FugitiveGitDir returning ''
continuing in FugitiveHead
line 2: if empty(dir)
line 3: return ''
FugitiveHead returning ''
continuing in coc#_complete
Executing CompleteChanged Autocommands for "*"
autocommand call s:Autocmd('MenuPopupChanged', get(v:, 'event', {}), win_screenpos(winnr())[0] + winline() - 2)
Executing: call s:Autocmd('MenuPopupChanged', get(v:, 'event', {}), win_screenpos(winnr())[0] + winline() - 2)
calling <SNR>46_Autocmd('MenuPopupChanged', {'col': 4, 'row': 2, 'scrollbar': v:fa... 'width': 42, 'height': 49, 'size': 49}, 1)
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['MenuPopupChanged', {'col': 4, 'row':...dth': 42, 'height': 49, 'size': 49}, 1])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['MenuPopupChanged', {'col': 4, 'row':...dth': 42, 'height': 49, 'size': 49}, 1])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in CompleteChanged Autocommands for "*"
line 6: if s:select_api && len(items) && preselect != -1
line 7: call nvim_select_popupmenu_item(preselect, v:false, v:false, {})
line 8: endif
line 9: return ''
coc#_complete returning ''
calling coc#api#call('call_function', ['coc#util#get_content', [1]])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 13('coc#util#get_content', [1])
line 1: return call(a:method, a:args)
calling coc#util#get_content(1)
line 1: if !bufloaded(a:bufnr) | return '' | endif
line 1: return '' | endif
line 1: endif
line 2: return { 'content': join(getbufline(a:bufnr, 1, '$'), "\n"), 'changedtick': getbufvar(a:bufnr, 'changedtick') }
coc#util#get_content returning {'changedtick': 13, 'content': 'con'}
continuing in 13
13 returning {'changedtick': 13, 'content': 'con'}
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, {'changedtick': 13, 'content': 'con'}]
Executing InsertCharPre Autocommands for "*"
autocommand call s:Autocmd('InsertCharPre', v:char)
Executing: call s:Autocmd('InsertCharPre', v:char)
calling <SNR>46_Autocmd('InsertCharPre', 's')
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['InsertCharPre', 's'])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['InsertCharPre', 's'])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in InsertCharPre Autocommands for "*"
Executing: if exists('g:loaded_matchparen')|3match none|endif
Executing: 3match none|endif
Executing: endif
calling lightline#tabline()
line 1: if !has_key(s:highlight, 'tabline')
line 2: call lightline#highlight('tabline')
line 3: endif
line 4: if s:lightline.tabline_configured || s:tabnr != tabpagenr() || s:tabcnt != tabpagenr('$')
line 5: let s:tabnr = tabpagenr()
line 6: let s:tabcnt = tabpagenr('$')
line 7: let s:tabline = s:line(1, 0)
calling <SNR>152_line(1, 0)
line 1: let _ = a:tabline ? '' : '%{lightline#link()}'
line 2: if s:lightline.palette == {}
line 3: call lightline#colorscheme()
line 4: endif
line 5: let [l, r] = a:tabline ? [s:lightline.tab_llen, s:lightline.tab_rlen] : [s:lightline.llen, s:lightline.rlen]
line 6: let [p, s] = a:tabline ? [s:lightline.tabline_separator, s:lightline.tabline_subseparator] : [s:lightline.separator, s:lightline.subseparator]
line 7: let [c, f, t, w] = [s:lightline.component, s:lightline.component_function, s:lightline.component_type, s:lightline.component_raw]
line 8: let mode = a:tabline ? 'tabline' : a:inactive ? 'inactive' : 'active'
line 9: let l_ = has_key(s:lightline, mode) ? s:lightline[mode].left : s:lightline.active.left
line 10: let [lt, lc, ll] = s:expand(copy(l_))
calling <SNR>152_expand([['buffers']])
line 1: let components = []
line 2: let expanded = []
line 3: let indices = []
line 4: let prevtype = ''
line 5: let previndex = -1
line 6: let xs = s:flatten_twice(s:map(deepcopy(a:components), 'map(v:val, "s:convert(v:val, ''" . v:key . "'')")'))
calling <SNR>152_convert('buffers', '0')
line 1: if has_key(s:lightline.component_expand, a:name)
line 2: let type = get(s:lightline.component_type, a:name, a:index)
line 3: let is_raw = get(s:lightline.component_raw, a:name) || type ==# 'raw'
line 4: return filter(s:map(s:evaluate_expand(s:lightline.component_expand[a:name]), '[v:val, 1 + ' . is_raw . ', v:key == 1 && ' . (type !=# 'raw') . ' ? "' . type . '" : "' . a:index . '", "' . a:index . '"]'), 'v:val[0] != []')
calling <SNR>152_evaluate_expand('lightline#bufferline#buffers')
line 1: try
line 2: let result = eval(a:component . '()')
calling lightline#bufferline#buffers()
line 1: let l:buffers = s:filtered_buffers()
calling <SNR>26_filtered_buffers()
line 1: let l:buffers = filter(range(1, bufnr('$')), 's:filter_buffer(v:val)')
calling <SNR>26_filter_buffer(1)
line 1: return bufexists(a:i) && buflisted(a:i) && !(getbufvar(a:i, '&filetype') ==# 'qf')
<SNR>26_filter_buffer returning #1
continuing in <SNR>26_filtered_buffers
line 2: if s:reverse_buffers == 1
line 3: let l:buffers = reverse(l:buffers)
line 4: endif
line 5: return l:buffers
<SNR>26_filtered_buffers returning [1]
continuing in lightline#bufferline#buffers
line 2: let l:current_index = index(l:buffers, bufnr('%'))
line 3: if l:current_index == -1
line 4: return [s:get_buffer_names(l:buffers, 0, len(l:buffers))[0], [], []]
line 5: endif
line 6: let l:before = s:get_buffer_names(l:buffers, 0, l:current_index)
calling <SNR>26_get_buffer_names([1], 0, 0)
line 1: let l:names = []
line 2: let l:lengths = []
line 3: for l:i in range(a:from, a:to - 1)
line 4: let [l:name, l:len] = s:get_buffer_name(l:i, a:buffers[l:i])
line 5: call add(l:names, l:name)
line 6: call add(l:lengths, l:len + 4)
line 7: endfor
line 8: return [l:names, l:lengths]
<SNR>26_get_buffer_names returning [[], []]
continuing in lightline#bufferline#buffers
line 7: let l:current = s:get_buffer_names(l:buffers, l:current_index, l:current_index + 1)
calling <SNR>26_get_buffer_names([1], 0, 1)
line 1: let l:names = []
line 2: let l:lengths = []
line 3: for l:i in range(a:from, a:to - 1)
line 4: let [l:name, l:len] = s:get_buffer_name(l:i, a:buffers[l:i])
calling <SNR>26_get_buffer_name(0, 1)
line 1: let l:name = bufname(a:buffer)
line 2: if l:name ==# ''
line 3: let l:name = s:unnamed
line 4: else
line 5: let l:name = fnamemodify(l:name, s:filename_modifier)
line 6: if s:shorten_path
line 7: let l:name = pathshorten(l:name)
line 8: endif
line 9: endif
line 10: if s:enable_devicons == 1 && exists('*WebDevIconsGetFileTypeSymbol')
line 11: let l:name = WebDevIconsGetFileTypeSymbol(fnamemodify(bufname(a:buffer), ':t')) . ' ' . l:name
line 12: endif
line 13: if s:is_read_only(a:buffer)
calling <SNR>26_is_read_only(1)
line 1: let l:modifiable = getbufvar(a:buffer, '&modifiable')
line 2: let l:readonly = getbufvar(a:buffer, '&readonly')
line 3: return (l:readonly || !l:modifiable) && getbufvar(a:buffer, '&filetype') !=# 'help'
<SNR>26_is_read_only returning #0
continuing in <SNR>26_get_buffer_name
line 14: let l:name .= s:read_only
line 15: endif
line 16: if getbufvar(a:buffer, '&mod')
line 17: let l:name .= s:modified
line 18: endif
line 19: if s:show_number == 1
line 20: let l:name = a:buffer . s:number_separator . l:name
line 21: elseif s:show_number == 2
line 22: let l:name = s:get_from_number_map(a:i + 1). s:number_separator . l:name
line 23: elseif s:show_number == 3
line 24: let l:name = a:buffer . s:ordinal_separator . s:get_from_number_map(a:i + 1) . s:number_separator . l:name
line 25: elseif s:show_number == 4
line 26: let l:name = s:get_from_number_map(a:i + 1) . s:ordinal_separator . a:buffer . s:number_separator . l:name
line 27: endif
line 28: let l:len = len(l:name)
line 29: let l:name = substitute(l:name, '%', '%%', 'g')
line 30: if s:component_is_raw
line 31: let l:name = ' ' . l:name . ' '
line 32: endif
line 33: if s:clickable
line 34: return ['%' . string(a:i) . '@lightline#bufferline#_click_handler@' . l:name . '%X', l:len]
line 35: else
line 36: return [l:name, l:len]
<SNR>26_get_buffer_name returning [' index.tsx + ', 11]
continuing in <SNR>26_get_buffer_names
line 5: call add(l:names, l:name)
line 6: call add(l:lengths, l:len + 4)
line 7: endfor
line 3: for l:i in range(a:from, a:to - 1)
line 4: let [l:name, l:len] = s:get_buffer_name(l:i, a:buffers[l:i])
line 5: call add(l:names, l:name)
line 6: call add(l:lengths, l:len + 4)
line 7: endfor
line 8: return [l:names, l:lengths]
<SNR>26_get_buffer_names returning [[' index.tsx + '], [15]]
continuing in lightline#bufferline#buffers
line 8: let l:after = s:get_buffer_names(l:buffers, l:current_index + 1, len(l:buffers))
calling <SNR>26_get_buffer_names([1], 1, 1)
line 1: let l:names = []
line 2: let l:lengths = []
line 3: for l:i in range(a:from, a:to - 1)
line 4: let [l:name, l:len] = s:get_buffer_name(l:i, a:buffers[l:i])
line 5: call add(l:names, l:name)
line 6: call add(l:lengths, l:len + 4)
line 7: endfor
line 8: return [l:names, l:lengths]
<SNR>26_get_buffer_names returning [[], []]
continuing in lightline#bufferline#buffers
line 9: if s:right_aligned == 1
line 10: return s:select_buffers(l:after, l:current, l:before)
line 11: else
line 12: return s:select_buffers(l:before, l:current, l:after)
calling <SNR>26_select_buffers([[], []], [[' index.tsx + '], [15]], [[], []])
line 1: let [l:before_names, l:current_names, l:after_names] = [a:before[0], a:current[0], a:after[0]]
line 2: let [l:before_lengths, l:current_lengths, l:after_lengths] = [a:before[1], a:current[1], a:after[1]]
line 3:
line 4: " The current buffer is always displayed
line 5: let l:width = &columns - l:current_lengths[:0][0]
line 6:
line 7: " Display all buffers if there is enough space to display them
line 8: if s:sum(l:before_lengths) + s:sum(l:after_lengths) <= l:width
calling <SNR>26_sum([])
line 1: let l:sum = 0
line 2: for l:value in a:list
line 3: let l:sum += l:value
line 4: endfor
line 5: return l:sum
<SNR>26_sum returning #0
continuing in <SNR>26_select_buffers
calling <SNR>26_sum([])
line 1: let l:sum = 0
line 2: for l:value in a:list
line 3: let l:sum += l:value
line 4: endfor
line 5: return l:sum
<SNR>26_sum returning #0
continuing in <SNR>26_select_buffers
line 9: return [l:before_names, l:current_names, l:after_names]
<SNR>26_select_buffers returning [[], [' index.tsx + '], []]
continuing in lightline#bufferline#buffers
lightline#bufferline#buffers returning [[], [' index.tsx + '], []]
continuing in <SNR>152_evaluate_expand
line 3: if type(result) == 1 && result ==# ''
line 4: return []
line 5: endif
line 6: catch
line 7: return []
line 8: endtry
line 9: return map(type(result) == 3 ? (result + [[], [], []])[:2] : [[], [result], []], 'filter(s:normalize(v:val), "v:val !=# ''''")')
calling <SNR>152_normalize([])
line 1: if type(a:result) == 3
line 2: return map(a:result, 'type(v:val) == 1 ? v:val : string(v:val)')
<SNR>152_normalize returning []
continuing in <SNR>152_evaluate_expand
calling <SNR>152_normalize([' index.tsx + '])
line 1: if type(a:result) == 3
line 2: return map(a:result, 'type(v:val) == 1 ? v:val : string(v:val)')
<SNR>152_normalize returning [' index.tsx + ']
continuing in <SNR>152_evaluate_expand
calling <SNR>152_normalize([])
line 1: if type(a:result) == 3
line 2: return map(a:result, 'type(v:val) == 1 ? v:val : string(v:val)')
<SNR>152_normalize returning []
continuing in <SNR>152_evaluate_expand
<SNR>152_evaluate_expand returning [[], [' index.tsx + '], []]
continuing in <SNR>152_convert
<SNR>152_convert returning [[[' index.tsx + '], 2, 'tabsel', '0']]
continuing in <SNR>152_expand
calling <SNR>152_flatten_twice([[[[[' index.tsx + '], 2, 'tabsel', '0']]]])
line 1: let ys = []
line 2: for xs in a:xss
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 6: endfor
line 2: for xs in a:xss
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 6: endfor
line 7: return ys
<SNR>152_flatten_twice returning [[[' index.tsx + '], 2, 'tabsel', '0']]
continuing in <SNR>152_expand
line 7: for [component, expand, type, index] in xs
line 8: if prevtype !=# type
line 9: for i in range(previndex + 1, max([previndex, index - 1]))
line 10: call add(indices, string(i))
line 11: call add(components, [])
line 12: call add(expanded, [])
line 13: endfor
line 14: call add(indices, type)
line 15: call add(components, [])
line 16: call add(expanded, [])
line 17: endif
line 18: call extend(components[-1], component)
line 19: call extend(expanded[-1], repeat([expand], len(component)))
line 20: let prevtype = type
line 21: let previndex = index
line 22: endfor
line 7: for [component, expand, type, index] in xs
line 8: if prevtype !=# type
line 9: for i in range(previndex + 1, max([previndex, index - 1]))
line 10: call add(indices, string(i))
line 11: call add(components, [])
line 12: call add(expanded, [])
line 13: endfor
line 14: call add(indices, type)
line 15: call add(components, [])
line 16: call add(expanded, [])
line 17: endif
line 18: call extend(components[-1], component)
line 19: call extend(expanded[-1], repeat([expand], len(component)))
line 20: let prevtype = type
line 21: let previndex = index
line 22: endfor
line 23: for i in range(previndex + 1, max([previndex, len(a:components) - 1]))
line 24: call add(indices, string(i))
line 25: call add(components, [])
line 26: call add(expanded, [])
line 27: endfor
line 28: call add(indices, string(len(a:components)))
line 29: return [components, expanded, indices]
<SNR>152_expand returning [[[' index.tsx + ']], [[2]], ['tabsel', '1']]
continuing in <SNR>152_line
line 11: let r_ = has_key(s:lightline, mode) ? s:lightline[mode].right : s:lightline.active.right
line 12: let [rt, rc, rl] = s:expand(copy(r_))
calling <SNR>152_expand([[]])
line 1: let components = []
line 2: let expanded = []
line 3: let indices = []
line 4: let prevtype = ''
line 5: let previndex = -1
line 6: let xs = s:flatten_twice(s:map(deepcopy(a:components), 'map(v:val, "s:convert(v:val, ''" . v:key . "'')")'))
calling <SNR>152_flatten_twice([[]])
line 1: let ys = []
line 2: for xs in a:xss
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 6: endfor
line 2: for xs in a:xss
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 6: endfor
line 7: return ys
<SNR>152_flatten_twice returning []
continuing in <SNR>152_expand
line 7: for [component, expand, type, index] in xs
line 8: if prevtype !=# type
line 9: for i in range(previndex + 1, max([previndex, index - 1]))
line 10: call add(indices, string(i))
line 11: call add(components, [])
line 12: call add(expanded, [])
line 13: endfor
line 14: call add(indices, type)
line 15: call add(components, [])
line 16: call add(expanded, [])
line 17: endif
line 18: call extend(components[-1], component)
line 19: call extend(expanded[-1], repeat([expand], len(component)))
line 20: let prevtype = type
line 21: let previndex = index
line 22: endfor
line 23: for i in range(previndex + 1, max([previndex, len(a:components) - 1]))
line 24: call add(indices, string(i))
line 25: call add(components, [])
line 26: call add(expanded, [])
line 27: endfor
line 23: for i in range(previndex + 1, max([previndex, len(a:components) - 1]))
line 24: call add(indices, string(i))
line 25: call add(components, [])
line 26: call add(expanded, [])
line 27: endfor
line 28: call add(indices, string(len(a:components)))
line 29: return [components, expanded, indices]
<SNR>152_expand returning [[[]], [[]], ['0', '1']]
continuing in <SNR>152_line
line 13: for i in range(len(lt))
line 14: let _ .= '%#LightlineLeft_' . mode . '_' . ll[i] . '#'
line 15: for j in range(len(lt[i]))
line 16: let x = lc[i][j] ? lt[i][j] : has_key(f, lt[i][j]) ? (exists('*' . f[lt[i][j]]) ? '%{' . f[lt[i][j]] . '()}' : '%{exists("*' . f[lt[i][j]] . '")?' . f[lt[i][j]] . '():""}') : get(c, lt[i][j], '')
line 17: let _ .= has_key(t, lt[i][j]) && t[lt[i][j]] ==# 'raw' || get(w, lt[i][j]) || lc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 18: if j < len(lt[i]) - 1 && s.left !=# ''
line 19: let _ .= s:subseparator(lt[i][(j):], s.left, lc[i][(j):])
line 20: endif
line 21: endfor
line 15: for j in range(len(lt[i]))
line 16: let x = lc[i][j] ? lt[i][j] : has_key(f, lt[i][j]) ? (exists('*' . f[lt[i][j]]) ? '%{' . f[lt[i][j]] . '()}' : '%{exists("*' . f[lt[i][j]] . '")?' . f[lt[i][j]] . '():""}') : get(c, lt[i][j], '')
line 17: let _ .= has_key(t, lt[i][j]) && t[lt[i][j]] ==# 'raw' || get(w, lt[i][j]) || lc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 18: if j < len(lt[i]) - 1 && s.left !=# ''
line 19: let _ .= s:subseparator(lt[i][(j):], s.left, lc[i][(j):])
line 20: endif
line 21: endfor
line 22: let _ .= '%#LightlineLeft_' . mode . '_' . ll[i] . '_' . ll[i + 1] . '#'
line 23: let _ .= i < l + len(lt) - len(l_) && ll[i] < l || ll[i] != ll[i + 1] ? p.left : len(lt[i]) ? s.left : ''
line 24: endfor
line 13: for i in range(len(lt))
line 14: let _ .= '%#LightlineLeft_' . mode . '_' . ll[i] . '#'
line 15: for j in range(len(lt[i]))
line 16: let x = lc[i][j] ? lt[i][j] : has_key(f, lt[i][j]) ? (exists('*' . f[lt[i][j]]) ? '%{' . f[lt[i][j]] . '()}' : '%{exists("*' . f[lt[i][j]] . '")?' . f[lt[i][j]] . '():""}') : get(c, lt[i][j], '')
line 17: let _ .= has_key(t, lt[i][j]) && t[lt[i][j]] ==# 'raw' || get(w, lt[i][j]) || lc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 18: if j < len(lt[i]) - 1 && s.left !=# ''
line 19: let _ .= s:subseparator(lt[i][(j):], s.left, lc[i][(j):])
line 20: endif
line 21: endfor
line 22: let _ .= '%#LightlineLeft_' . mode . '_' . ll[i] . '_' . ll[i + 1] . '#'
line 23: let _ .= i < l + len(lt) - len(l_) && ll[i] < l || ll[i] != ll[i + 1] ? p.left : len(lt[i]) ? s.left : ''
line 24: endfor
line 25: let _ .= '%#LightlineMiddle_' . mode . '#%='
line 26: for i in range(len(rt) - 1, 0, -1)
line 27: let _ .= '%#LightlineRight_' . mode . '_' . rl[i] . '_' . rl[i + 1] . '#'
line 28: let _ .= i < r + len(rt) - len(r_) && rl[i] < r || rl[i] != rl[i + 1] ? p.right : len(rt[i]) ? s.right : ''
line 29: let _ .= '%#LightlineRight_' . mode . '_' . rl[i] . '#'
line 30: for j in range(len(rt[i]))
line 31: let x = rc[i][j] ? rt[i][j] : has_key(f, rt[i][j]) ? (exists('*' . f[rt[i][j]]) ? '%{' . f[rt[i][j]] . '()}' : '%{exists("*' . f[rt[i][j]] . '")?' . f[rt[i][j]] . '():""}') : get(c, rt[i][j], '')
line 32: let _ .= has_key(t, rt[i][j]) && t[rt[i][j]] ==# 'raw' || get(w, rt[i][j]) || rc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 33: if j < len(rt[i]) - 1 && s.right !=# ''
line 34: let _ .= s:subseparator(rt[i][(j):], s.right, rc[i][(j):])
line 35: endif
line 36: endfor
line 37: endfor
line 26: for i in range(len(rt) - 1, 0, -1)
line 27: let _ .= '%#LightlineRight_' . mode . '_' . rl[i] . '_' . rl[i + 1] . '#'
line 28: let _ .= i < r + len(rt) - len(r_) && rl[i] < r || rl[i] != rl[i + 1] ? p.right : len(rt[i]) ? s.right : ''
line 29: let _ .= '%#LightlineRight_' . mode . '_' . rl[i] . '#'
line 30: for j in range(len(rt[i]))
line 31: let x = rc[i][j] ? rt[i][j] : has_key(f, rt[i][j]) ? (exists('*' . f[rt[i][j]]) ? '%{' . f[rt[i][j]] . '()}' : '%{exists("*' . f[rt[i][j]] . '")?' . f[rt[i][j]] . '():""}') : get(c, rt[i][j], '')
line 32: let _ .= has_key(t, rt[i][j]) && t[rt[i][j]] ==# 'raw' || get(w, rt[i][j]) || rc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 33: if j < len(rt[i]) - 1 && s.right !=# ''
line 34: let _ .= s:subseparator(rt[i][(j):], s.right, rc[i][(j):])
line 35: endif
line 36: endfor
line 37: endfor
line 38: return _
<SNR>152_line returning '%#LightlineLeft_tabline_tabsel# index...abline_0_1#%#LightlineRight_tabline_0#'
continuing in lightline#tabline
line 8: endif
line 9: return s:tabline
lightline#tabline returning '%#LightlineLeft_tabline_tabsel# index...abline_0_1#%#LightlineRight_tabline_0#'
calling lightline#link()
line 1: let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
line 2: if s:mode ==# mode
line 3: return ''
lightline#link returning ''
calling lightline#mode()
line 1: return get(s:lightline.mode_map, mode(), '')
lightline#mode returning 'INSERT'
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling FugitiveHead()
line 1: let dir = FugitiveGitDir(a:0 > 1 ? a:2 : -1)
calling FugitiveGitDir(-1)
line 1: if !a:0 || type(a:1) == type(0) && a:1 < 0
line 2: if exists('g:fugitive_event')
line 3: return g:fugitive_event
line 4: endif
line 5: let dir = get(b:, 'git_dir', '')
line 6: if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|prompt\)$')
line 7: return FugitiveExtractGitDir(getcwd())
line 8: endif
line 9: return dir
FugitiveGitDir returning ''
continuing in FugitiveHead
line 2: if empty(dir)
line 3: return ''
FugitiveHead returning ''
Executing CompleteChanged Autocommands for "*"
autocommand call s:Autocmd('MenuPopupChanged', get(v:, 'event', {}), win_screenpos(winnr())[0] + winline() - 2)
Executing: call s:Autocmd('MenuPopupChanged', get(v:, 'event', {}), win_screenpos(winnr())[0] + winline() - 2)
calling <SNR>46_Autocmd('MenuPopupChanged', {'col': 4, 'row': 2, 'scrollbar': v:fa... 'width': 42, 'height': 49, 'size': 49}, 1)
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['MenuPopupChanged', {'col': 4, 'row':...dth': 42, 'height': 49, 'size': 49}, 1])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['MenuPopupChanged', {'col': 4, 'row':...dth': 42, 'height': 49, 'size': 49}, 1])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in CompleteChanged Autocommands for "*"
Executing TextChangedP Autocommands for "*"
autocommand call s:Autocmd('TextChangedP', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
Executing: call s:Autocmd('TextChangedP', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
calling <SNR>46_Autocmd('TextChangedP', 1, {'lnum': 1, 'col': 5, 'changedtick': 22, 'pre': 'cons'})
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['TextChangedP', 1, {'lnum': 1, 'col': 5, 'changedtick': 22, 'pre': 'cons'}])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['TextChangedP', 1, {'lnum': 1, 'col': 5, 'changedtick': 22, 'pre': 'cons'}])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in TextChangedP Autocommands for "*"
calling coc#api#notify('call_function', ['coc#_do_complete', [0, [{'word': 'co...OverconstrainedError', 'dup': 1}], -1]])
line 1: call call(s:funcs[a:method], a:args)
calling 13('coc#_do_complete', [0, [{'word': 'const', 'equal': 1, 'us...'OverconstrainedError', 'dup': 1}], -1])
line 1: return call(a:method, a:args)
calling coc#_do_complete(0, [{'word': 'const', 'equal': 1, 'user_d...br': 'OverconstrainedError', 'dup': 1}], -1)
line 1: let g:coc#_context = { 'start': a:start, 'candidates': a:items, 'preselect': a:preselect}
line 6: if mode() =~# 'i' && &paste != 1
line 7: call feedkeys("\<Plug>CocRefresh", 'i')
line 8: endif
coc#_do_complete returning #0
continuing in 13
13 returning #0
continuing in coc#api#notify
coc#api#notify returning #0
calling coc#_complete()
line 1: let items = get(g:coc#_context, 'candidates', [])
line 2: let preselect = get(g:coc#_context, 'preselect', -1)
line 3: call complete( g:coc#_context.start + 1, items)
Executing CompleteDone Autocommands for "*"
autocommand call s:Autocmd('CompleteDone', get(v:, 'completed_item', {}))
Executing: call s:Autocmd('CompleteDone', get(v:, 'completed_item', {}))
calling <SNR>46_Autocmd('CompleteDone', {})
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['CompleteDone', {}])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['CompleteDone', {}])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in CompleteDone Autocommands for "*"
match 1 of 7
match 1 of 7
line 3: if exists('g:loaded_matchparen')|3match none|endif
line 3: 3match none|endif
line 3: endif
calling lightline#tabline()
line 1: if !has_key(s:highlight, 'tabline')
line 2: call lightline#highlight('tabline')
line 3: endif
line 4: if s:lightline.tabline_configured || s:tabnr != tabpagenr() || s:tabcnt != tabpagenr('$')
line 5: let s:tabnr = tabpagenr()
line 6: let s:tabcnt = tabpagenr('$')
line 7: let s:tabline = s:line(1, 0)
calling <SNR>152_line(1, 0)
line 1: let _ = a:tabline ? '' : '%{lightline#link()}'
line 2: if s:lightline.palette == {}
line 3: call lightline#colorscheme()
line 4: endif
line 5: let [l, r] = a:tabline ? [s:lightline.tab_llen, s:lightline.tab_rlen] : [s:lightline.llen, s:lightline.rlen]
line 6: let [p, s] = a:tabline ? [s:lightline.tabline_separator, s:lightline.tabline_subseparator] : [s:lightline.separator, s:lightline.subseparator]
line 7: let [c, f, t, w] = [s:lightline.component, s:lightline.component_function, s:lightline.component_type, s:lightline.component_raw]
line 8: let mode = a:tabline ? 'tabline' : a:inactive ? 'inactive' : 'active'
line 9: let l_ = has_key(s:lightline, mode) ? s:lightline[mode].left : s:lightline.active.left
line 10: let [lt, lc, ll] = s:expand(copy(l_))
calling <SNR>152_expand([['buffers']])
line 1: let components = []
line 2: let expanded = []
line 3: let indices = []
line 4: let prevtype = ''
line 5: let previndex = -1
line 6: let xs = s:flatten_twice(s:map(deepcopy(a:components), 'map(v:val, "s:convert(v:val, ''" . v:key . "'')")'))
calling <SNR>152_convert('buffers', '0')
line 1: if has_key(s:lightline.component_expand, a:name)
line 2: let type = get(s:lightline.component_type, a:name, a:index)
line 3: let is_raw = get(s:lightline.component_raw, a:name) || type ==# 'raw'
line 4: return filter(s:map(s:evaluate_expand(s:lightline.component_expand[a:name]), '[v:val, 1 + ' . is_raw . ', v:key == 1 && ' . (type !=# 'raw') . ' ? "' . type . '" : "' . a:index . '", "' . a:index . '"]'), 'v:val[0] != []')
calling <SNR>152_evaluate_expand('lightline#bufferline#buffers')
line 1: try
line 2: let result = eval(a:component . '()')
calling lightline#bufferline#buffers()
line 1: let l:buffers = s:filtered_buffers()
calling <SNR>26_filtered_buffers()
line 1: let l:buffers = filter(range(1, bufnr('$')), 's:filter_buffer(v:val)')
calling <SNR>26_filter_buffer(1)
line 1: return bufexists(a:i) && buflisted(a:i) && !(getbufvar(a:i, '&filetype') ==# 'qf')
<SNR>26_filter_buffer returning #1
continuing in <SNR>26_filtered_buffers
line 2: if s:reverse_buffers == 1
line 3: let l:buffers = reverse(l:buffers)
line 4: endif
line 5: return l:buffers
<SNR>26_filtered_buffers returning [1]
continuing in lightline#bufferline#buffers
line 2: let l:current_index = index(l:buffers, bufnr('%'))
line 3: if l:current_index == -1
line 4: return [s:get_buffer_names(l:buffers, 0, len(l:buffers))[0], [], []]
line 5: endif
line 6: let l:before = s:get_buffer_names(l:buffers, 0, l:current_index)
calling <SNR>26_get_buffer_names([1], 0, 0)
line 1: let l:names = []
line 2: let l:lengths = []
line 3: for l:i in range(a:from, a:to - 1)
line 4: let [l:name, l:len] = s:get_buffer_name(l:i, a:buffers[l:i])
line 5: call add(l:names, l:name)
line 6: call add(l:lengths, l:len + 4)
line 7: endfor
line 8: return [l:names, l:lengths]
<SNR>26_get_buffer_names returning [[], []]
continuing in lightline#bufferline#buffers
line 7: let l:current = s:get_buffer_names(l:buffers, l:current_index, l:current_index + 1)
calling <SNR>26_get_buffer_names([1], 0, 1)
line 1: let l:names = []
line 2: let l:lengths = []
line 3: for l:i in range(a:from, a:to - 1)
line 4: let [l:name, l:len] = s:get_buffer_name(l:i, a:buffers[l:i])
calling <SNR>26_get_buffer_name(0, 1)
line 1: let l:name = bufname(a:buffer)
line 2: if l:name ==# ''
line 3: let l:name = s:unnamed
line 4: else
line 5: let l:name = fnamemodify(l:name, s:filename_modifier)
line 6: if s:shorten_path
line 7: let l:name = pathshorten(l:name)
line 8: endif
line 9: endif
line 10: if s:enable_devicons == 1 && exists('*WebDevIconsGetFileTypeSymbol')
line 11: let l:name = WebDevIconsGetFileTypeSymbol(fnamemodify(bufname(a:buffer), ':t')) . ' ' . l:name
line 12: endif
line 13: if s:is_read_only(a:buffer)
calling <SNR>26_is_read_only(1)
line 1: let l:modifiable = getbufvar(a:buffer, '&modifiable')
line 2: let l:readonly = getbufvar(a:buffer, '&readonly')
line 3: return (l:readonly || !l:modifiable) && getbufvar(a:buffer, '&filetype') !=# 'help'
<SNR>26_is_read_only returning #0
continuing in <SNR>26_get_buffer_name
line 14: let l:name .= s:read_only
line 15: endif
line 16: if getbufvar(a:buffer, '&mod')
line 17: let l:name .= s:modified
line 18: endif
line 19: if s:show_number == 1
line 20: let l:name = a:buffer . s:number_separator . l:name
line 21: elseif s:show_number == 2
line 22: let l:name = s:get_from_number_map(a:i + 1). s:number_separator . l:name
line 23: elseif s:show_number == 3
line 24: let l:name = a:buffer . s:ordinal_separator . s:get_from_number_map(a:i + 1) . s:number_separator . l:name
line 25: elseif s:show_number == 4
line 26: let l:name = s:get_from_number_map(a:i + 1) . s:ordinal_separator . a:buffer . s:number_separator . l:name
line 27: endif
line 28: let l:len = len(l:name)
line 29: let l:name = substitute(l:name, '%', '%%', 'g')
line 30: if s:component_is_raw
line 31: let l:name = ' ' . l:name . ' '
line 32: endif
line 33: if s:clickable
line 34: return ['%' . string(a:i) . '@lightline#bufferline#_click_handler@' . l:name . '%X', l:len]
line 35: else
line 36: return [l:name, l:len]
<SNR>26_get_buffer_name returning [' index.tsx + ', 11]
continuing in <SNR>26_get_buffer_names
line 5: call add(l:names, l:name)
line 6: call add(l:lengths, l:len + 4)
line 7: endfor
line 3: for l:i in range(a:from, a:to - 1)
line 4: let [l:name, l:len] = s:get_buffer_name(l:i, a:buffers[l:i])
line 5: call add(l:names, l:name)
line 6: call add(l:lengths, l:len + 4)
line 7: endfor
line 8: return [l:names, l:lengths]
<SNR>26_get_buffer_names returning [[' index.tsx + '], [15]]
continuing in lightline#bufferline#buffers
line 8: let l:after = s:get_buffer_names(l:buffers, l:current_index + 1, len(l:buffers))
calling <SNR>26_get_buffer_names([1], 1, 1)
line 1: let l:names = []
line 2: let l:lengths = []
line 3: for l:i in range(a:from, a:to - 1)
line 4: let [l:name, l:len] = s:get_buffer_name(l:i, a:buffers[l:i])
line 5: call add(l:names, l:name)
line 6: call add(l:lengths, l:len + 4)
line 7: endfor
line 8: return [l:names, l:lengths]
<SNR>26_get_buffer_names returning [[], []]
continuing in lightline#bufferline#buffers
line 9: if s:right_aligned == 1
line 10: return s:select_buffers(l:after, l:current, l:before)
line 11: else
line 12: return s:select_buffers(l:before, l:current, l:after)
calling <SNR>26_select_buffers([[], []], [[' index.tsx + '], [15]], [[], []])
line 1: let [l:before_names, l:current_names, l:after_names] = [a:before[0], a:current[0], a:after[0]]
line 2: let [l:before_lengths, l:current_lengths, l:after_lengths] = [a:before[1], a:current[1], a:after[1]]
line 3:
line 4: " The current buffer is always displayed
line 5: let l:width = &columns - l:current_lengths[:0][0]
line 6:
line 7: " Display all buffers if there is enough space to display them
line 8: if s:sum(l:before_lengths) + s:sum(l:after_lengths) <= l:width
calling <SNR>26_sum([])
line 1: let l:sum = 0
line 2: for l:value in a:list
line 3: let l:sum += l:value
line 4: endfor
line 5: return l:sum
<SNR>26_sum returning #0
continuing in <SNR>26_select_buffers
calling <SNR>26_sum([])
line 1: let l:sum = 0
line 2: for l:value in a:list
line 3: let l:sum += l:value
line 4: endfor
line 5: return l:sum
<SNR>26_sum returning #0
continuing in <SNR>26_select_buffers
line 9: return [l:before_names, l:current_names, l:after_names]
<SNR>26_select_buffers returning [[], [' index.tsx + '], []]
continuing in lightline#bufferline#buffers
lightline#bufferline#buffers returning [[], [' index.tsx + '], []]
continuing in <SNR>152_evaluate_expand
line 3: if type(result) == 1 && result ==# ''
line 4: return []
line 5: endif
line 6: catch
line 7: return []
line 8: endtry
line 9: return map(type(result) == 3 ? (result + [[], [], []])[:2] : [[], [result], []], 'filter(s:normalize(v:val), "v:val !=# ''''")')
calling <SNR>152_normalize([])
line 1: if type(a:result) == 3
line 2: return map(a:result, 'type(v:val) == 1 ? v:val : string(v:val)')
<SNR>152_normalize returning []
continuing in <SNR>152_evaluate_expand
calling <SNR>152_normalize([' index.tsx + '])
line 1: if type(a:result) == 3
line 2: return map(a:result, 'type(v:val) == 1 ? v:val : string(v:val)')
<SNR>152_normalize returning [' index.tsx + ']
continuing in <SNR>152_evaluate_expand
calling <SNR>152_normalize([])
line 1: if type(a:result) == 3
line 2: return map(a:result, 'type(v:val) == 1 ? v:val : string(v:val)')
<SNR>152_normalize returning []
continuing in <SNR>152_evaluate_expand
<SNR>152_evaluate_expand returning [[], [' index.tsx + '], []]
continuing in <SNR>152_convert
<SNR>152_convert returning [[[' index.tsx + '], 2, 'tabsel', '0']]
continuing in <SNR>152_expand
calling <SNR>152_flatten_twice([[[[[' index.tsx + '], 2, 'tabsel', '0']]]])
line 1: let ys = []
line 2: for xs in a:xss
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 6: endfor
line 2: for xs in a:xss
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 6: endfor
line 7: return ys
<SNR>152_flatten_twice returning [[[' index.tsx + '], 2, 'tabsel', '0']]
continuing in <SNR>152_expand
line 7: for [component, expand, type, index] in xs
line 8: if prevtype !=# type
line 9: for i in range(previndex + 1, max([previndex, index - 1]))
line 10: call add(indices, string(i))
line 11: call add(components, [])
line 12: call add(expanded, [])
line 13: endfor
line 14: call add(indices, type)
line 15: call add(components, [])
line 16: call add(expanded, [])
line 17: endif
line 18: call extend(components[-1], component)
line 19: call extend(expanded[-1], repeat([expand], len(component)))
line 20: let prevtype = type
line 21: let previndex = index
line 22: endfor
line 7: for [component, expand, type, index] in xs
line 8: if prevtype !=# type
line 9: for i in range(previndex + 1, max([previndex, index - 1]))
line 10: call add(indices, string(i))
line 11: call add(components, [])
line 12: call add(expanded, [])
line 13: endfor
line 14: call add(indices, type)
line 15: call add(components, [])
line 16: call add(expanded, [])
line 17: endif
line 18: call extend(components[-1], component)
line 19: call extend(expanded[-1], repeat([expand], len(component)))
line 20: let prevtype = type
line 21: let previndex = index
line 22: endfor
line 23: for i in range(previndex + 1, max([previndex, len(a:components) - 1]))
line 24: call add(indices, string(i))
line 25: call add(components, [])
line 26: call add(expanded, [])
line 27: endfor
line 28: call add(indices, string(len(a:components)))
line 29: return [components, expanded, indices]
<SNR>152_expand returning [[[' index.tsx + ']], [[2]], ['tabsel', '1']]
continuing in <SNR>152_line
line 11: let r_ = has_key(s:lightline, mode) ? s:lightline[mode].right : s:lightline.active.right
line 12: let [rt, rc, rl] = s:expand(copy(r_))
calling <SNR>152_expand([[]])
line 1: let components = []
line 2: let expanded = []
line 3: let indices = []
line 4: let prevtype = ''
line 5: let previndex = -1
line 6: let xs = s:flatten_twice(s:map(deepcopy(a:components), 'map(v:val, "s:convert(v:val, ''" . v:key . "'')")'))
calling <SNR>152_flatten_twice([[]])
line 1: let ys = []
line 2: for xs in a:xss
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 6: endfor
line 2: for xs in a:xss
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 6: endfor
line 7: return ys
<SNR>152_flatten_twice returning []
continuing in <SNR>152_expand
line 7: for [component, expand, type, index] in xs
line 8: if prevtype !=# type
line 9: for i in range(previndex + 1, max([previndex, index - 1]))
line 10: call add(indices, string(i))
line 11: call add(components, [])
line 12: call add(expanded, [])
line 13: endfor
line 14: call add(indices, type)
line 15: call add(components, [])
line 16: call add(expanded, [])
line 17: endif
line 18: call extend(components[-1], component)
line 19: call extend(expanded[-1], repeat([expand], len(component)))
line 20: let prevtype = type
line 21: let previndex = index
line 22: endfor
line 23: for i in range(previndex + 1, max([previndex, len(a:components) - 1]))
line 24: call add(indices, string(i))
line 25: call add(components, [])
line 26: call add(expanded, [])
line 27: endfor
line 23: for i in range(previndex + 1, max([previndex, len(a:components) - 1]))
line 24: call add(indices, string(i))
line 25: call add(components, [])
line 26: call add(expanded, [])
line 27: endfor
line 28: call add(indices, string(len(a:components)))
line 29: return [components, expanded, indices]
<SNR>152_expand returning [[[]], [[]], ['0', '1']]
continuing in <SNR>152_line
line 13: for i in range(len(lt))
line 14: let _ .= '%#LightlineLeft_' . mode . '_' . ll[i] . '#'
line 15: for j in range(len(lt[i]))
line 16: let x = lc[i][j] ? lt[i][j] : has_key(f, lt[i][j]) ? (exists('*' . f[lt[i][j]]) ? '%{' . f[lt[i][j]] . '()}' : '%{exists("*' . f[lt[i][j]] . '")?' . f[lt[i][j]] . '():""}') : get(c, lt[i][j], '')
line 17: let _ .= has_key(t, lt[i][j]) && t[lt[i][j]] ==# 'raw' || get(w, lt[i][j]) || lc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 18: if j < len(lt[i]) - 1 && s.left !=# ''
line 19: let _ .= s:subseparator(lt[i][(j):], s.left, lc[i][(j):])
line 20: endif
line 21: endfor
line 15: for j in range(len(lt[i]))
line 16: let x = lc[i][j] ? lt[i][j] : has_key(f, lt[i][j]) ? (exists('*' . f[lt[i][j]]) ? '%{' . f[lt[i][j]] . '()}' : '%{exists("*' . f[lt[i][j]] . '")?' . f[lt[i][j]] . '():""}') : get(c, lt[i][j], '')
line 17: let _ .= has_key(t, lt[i][j]) && t[lt[i][j]] ==# 'raw' || get(w, lt[i][j]) || lc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 18: if j < len(lt[i]) - 1 && s.left !=# ''
line 19: let _ .= s:subseparator(lt[i][(j):], s.left, lc[i][(j):])
line 20: endif
line 21: endfor
line 22: let _ .= '%#LightlineLeft_' . mode . '_' . ll[i] . '_' . ll[i + 1] . '#'
line 23: let _ .= i < l + len(lt) - len(l_) && ll[i] < l || ll[i] != ll[i + 1] ? p.left : len(lt[i]) ? s.left : ''
line 24: endfor
line 13: for i in range(len(lt))
line 14: let _ .= '%#LightlineLeft_' . mode . '_' . ll[i] . '#'
line 15: for j in range(len(lt[i]))
line 16: let x = lc[i][j] ? lt[i][j] : has_key(f, lt[i][j]) ? (exists('*' . f[lt[i][j]]) ? '%{' . f[lt[i][j]] . '()}' : '%{exists("*' . f[lt[i][j]] . '")?' . f[lt[i][j]] . '():""}') : get(c, lt[i][j], '')
line 17: let _ .= has_key(t, lt[i][j]) && t[lt[i][j]] ==# 'raw' || get(w, lt[i][j]) || lc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 18: if j < len(lt[i]) - 1 && s.left !=# ''
line 19: let _ .= s:subseparator(lt[i][(j):], s.left, lc[i][(j):])
line 20: endif
line 21: endfor
line 22: let _ .= '%#LightlineLeft_' . mode . '_' . ll[i] . '_' . ll[i + 1] . '#'
line 23: let _ .= i < l + len(lt) - len(l_) && ll[i] < l || ll[i] != ll[i + 1] ? p.left : len(lt[i]) ? s.left : ''
line 24: endfor
line 25: let _ .= '%#LightlineMiddle_' . mode . '#%='
line 26: for i in range(len(rt) - 1, 0, -1)
line 27: let _ .= '%#LightlineRight_' . mode . '_' . rl[i] . '_' . rl[i + 1] . '#'
line 28: let _ .= i < r + len(rt) - len(r_) && rl[i] < r || rl[i] != rl[i + 1] ? p.right : len(rt[i]) ? s.right : ''
line 29: let _ .= '%#LightlineRight_' . mode . '_' . rl[i] . '#'
line 30: for j in range(len(rt[i]))
line 31: let x = rc[i][j] ? rt[i][j] : has_key(f, rt[i][j]) ? (exists('*' . f[rt[i][j]]) ? '%{' . f[rt[i][j]] . '()}' : '%{exists("*' . f[rt[i][j]] . '")?' . f[rt[i][j]] . '():""}') : get(c, rt[i][j], '')
line 32: let _ .= has_key(t, rt[i][j]) && t[rt[i][j]] ==# 'raw' || get(w, rt[i][j]) || rc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 33: if j < len(rt[i]) - 1 && s.right !=# ''
line 34: let _ .= s:subseparator(rt[i][(j):], s.right, rc[i][(j):])
line 35: endif
line 36: endfor
line 37: endfor
line 26: for i in range(len(rt) - 1, 0, -1)
line 27: let _ .= '%#LightlineRight_' . mode . '_' . rl[i] . '_' . rl[i + 1] . '#'
line 28: let _ .= i < r + len(rt) - len(r_) && rl[i] < r || rl[i] != rl[i + 1] ? p.right : len(rt[i]) ? s.right : ''
line 29: let _ .= '%#LightlineRight_' . mode . '_' . rl[i] . '#'
line 30: for j in range(len(rt[i]))
line 31: let x = rc[i][j] ? rt[i][j] : has_key(f, rt[i][j]) ? (exists('*' . f[rt[i][j]]) ? '%{' . f[rt[i][j]] . '()}' : '%{exists("*' . f[rt[i][j]] . '")?' . f[rt[i][j]] . '():""}') : get(c, rt[i][j], '')
line 32: let _ .= has_key(t, rt[i][j]) && t[rt[i][j]] ==# 'raw' || get(w, rt[i][j]) || rc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 33: if j < len(rt[i]) - 1 && s.right !=# ''
line 34: let _ .= s:subseparator(rt[i][(j):], s.right, rc[i][(j):])
line 35: endif
line 36: endfor
line 37: endfor
line 38: return _
<SNR>152_line returning '%#LightlineLeft_tabline_tabsel# index...abline_0_1#%#LightlineRight_tabline_0#'
continuing in lightline#tabline
line 8: endif
line 9: return s:tabline
lightline#tabline returning '%#LightlineLeft_tabline_tabsel# index...abline_0_1#%#LightlineRight_tabline_0#'
continuing in coc#_complete
calling lightline#link()
line 1: let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
line 2: if s:mode ==# mode
line 3: return ''
lightline#link returning ''
continuing in coc#_complete
calling lightline#mode()
line 1: return get(s:lightline.mode_map, mode(), '')
lightline#mode returning 'INSERT'
continuing in coc#_complete
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
continuing in coc#_complete
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
continuing in coc#_complete
calling FugitiveHead()
line 1: let dir = FugitiveGitDir(a:0 > 1 ? a:2 : -1)
calling FugitiveGitDir(-1)
line 1: if !a:0 || type(a:1) == type(0) && a:1 < 0
line 2: if exists('g:fugitive_event')
line 3: return g:fugitive_event
line 4: endif
line 5: let dir = get(b:, 'git_dir', '')
line 6: if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|prompt\)$')
line 7: return FugitiveExtractGitDir(getcwd())
line 8: endif
line 9: return dir
FugitiveGitDir returning ''
continuing in FugitiveHead
line 2: if empty(dir)
line 3: return ''
FugitiveHead returning ''
continuing in coc#_complete
Executing CompleteChanged Autocommands for "*"
autocommand call s:Autocmd('MenuPopupChanged', get(v:, 'event', {}), win_screenpos(winnr())[0] + winline() - 2)
Executing: call s:Autocmd('MenuPopupChanged', get(v:, 'event', {}), win_screenpos(winnr())[0] + winline() - 2)
calling <SNR>46_Autocmd('MenuPopupChanged', {'col': 4, 'row': 2, 'scrollbar': v:fa...}, 'width': 35, 'height': 7, 'size': 7}, 1)
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['MenuPopupChanged', {'col': 4, 'row':...width': 35, 'height': 7, 'size': 7}, 1])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['MenuPopupChanged', {'col': 4, 'row':...width': 35, 'height': 7, 'size': 7}, 1])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in CompleteChanged Autocommands for "*"
line 6: if s:select_api && len(items) && preselect != -1
line 7: call nvim_select_popupmenu_item(preselect, v:false, v:false, {})
line 8: endif
line 9: return ''
coc#_complete returning ''
Executing CompleteDone Autocommands for "*"
autocommand call s:Autocmd('CompleteDone', get(v:, 'completed_item', {}))
Executing: call s:Autocmd('CompleteDone', get(v:, 'completed_item', {}))
calling <SNR>46_Autocmd('CompleteDone', {})
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['CompleteDone', {}])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['CompleteDone', {}])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in CompleteDone Autocommands for "*"
Executing InsertCharPre Autocommands for "*"
autocommand call s:Autocmd('InsertCharPre', v:char)
Executing: call s:Autocmd('InsertCharPre', v:char)
calling <SNR>46_Autocmd('InsertCharPre', ' ')
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['InsertCharPre', ' '])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['InsertCharPre', ' '])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in InsertCharPre Autocommands for "*"
calling lightline#tabline()
line 1: if !has_key(s:highlight, 'tabline')
line 2: call lightline#highlight('tabline')
line 3: endif
line 4: if s:lightline.tabline_configured || s:tabnr != tabpagenr() || s:tabcnt != tabpagenr('$')
line 5: let s:tabnr = tabpagenr()
line 6: let s:tabcnt = tabpagenr('$')
line 7: let s:tabline = s:line(1, 0)
calling <SNR>152_line(1, 0)
line 1: let _ = a:tabline ? '' : '%{lightline#link()}'
line 2: if s:lightline.palette == {}
line 3: call lightline#colorscheme()
line 4: endif
line 5: let [l, r] = a:tabline ? [s:lightline.tab_llen, s:lightline.tab_rlen] : [s:lightline.llen, s:lightline.rlen]
line 6: let [p, s] = a:tabline ? [s:lightline.tabline_separator, s:lightline.tabline_subseparator] : [s:lightline.separator, s:lightline.subseparator]
line 7: let [c, f, t, w] = [s:lightline.component, s:lightline.component_function, s:lightline.component_type, s:lightline.component_raw]
line 8: let mode = a:tabline ? 'tabline' : a:inactive ? 'inactive' : 'active'
line 9: let l_ = has_key(s:lightline, mode) ? s:lightline[mode].left : s:lightline.active.left
line 10: let [lt, lc, ll] = s:expand(copy(l_))
calling <SNR>152_expand([['buffers']])
line 1: let components = []
line 2: let expanded = []
line 3: let indices = []
line 4: let prevtype = ''
line 5: let previndex = -1
line 6: let xs = s:flatten_twice(s:map(deepcopy(a:components), 'map(v:val, "s:convert(v:val, ''" . v:key . "'')")'))
calling <SNR>152_convert('buffers', '0')
line 1: if has_key(s:lightline.component_expand, a:name)
line 2: let type = get(s:lightline.component_type, a:name, a:index)
line 3: let is_raw = get(s:lightline.component_raw, a:name) || type ==# 'raw'
line 4: return filter(s:map(s:evaluate_expand(s:lightline.component_expand[a:name]), '[v:val, 1 + ' . is_raw . ', v:key == 1 && ' . (type !=# 'raw') . ' ? "' . type . '" : "' . a:index . '", "' . a:index . '"]'), 'v:val[0] != []')
calling <SNR>152_evaluate_expand('lightline#bufferline#buffers')
line 1: try
line 2: let result = eval(a:component . '()')
calling lightline#bufferline#buffers()
line 1: let l:buffers = s:filtered_buffers()
calling <SNR>26_filtered_buffers()
line 1: let l:buffers = filter(range(1, bufnr('$')), 's:filter_buffer(v:val)')
calling <SNR>26_filter_buffer(1)
line 1: return bufexists(a:i) && buflisted(a:i) && !(getbufvar(a:i, '&filetype') ==# 'qf')
<SNR>26_filter_buffer returning #1
continuing in <SNR>26_filtered_buffers
line 2: if s:reverse_buffers == 1
line 3: let l:buffers = reverse(l:buffers)
line 4: endif
line 5: return l:buffers
<SNR>26_filtered_buffers returning [1]
continuing in lightline#bufferline#buffers
line 2: let l:current_index = index(l:buffers, bufnr('%'))
line 3: if l:current_index == -1
line 4: return [s:get_buffer_names(l:buffers, 0, len(l:buffers))[0], [], []]
line 5: endif
line 6: let l:before = s:get_buffer_names(l:buffers, 0, l:current_index)
calling <SNR>26_get_buffer_names([1], 0, 0)
line 1: let l:names = []
line 2: let l:lengths = []
line 3: for l:i in range(a:from, a:to - 1)
line 4: let [l:name, l:len] = s:get_buffer_name(l:i, a:buffers[l:i])
line 5: call add(l:names, l:name)
line 6: call add(l:lengths, l:len + 4)
line 7: endfor
line 8: return [l:names, l:lengths]
<SNR>26_get_buffer_names returning [[], []]
continuing in lightline#bufferline#buffers
line 7: let l:current = s:get_buffer_names(l:buffers, l:current_index, l:current_index + 1)
calling <SNR>26_get_buffer_names([1], 0, 1)
line 1: let l:names = []
line 2: let l:lengths = []
line 3: for l:i in range(a:from, a:to - 1)
line 4: let [l:name, l:len] = s:get_buffer_name(l:i, a:buffers[l:i])
calling <SNR>26_get_buffer_name(0, 1)
line 1: let l:name = bufname(a:buffer)
line 2: if l:name ==# ''
line 3: let l:name = s:unnamed
line 4: else
line 5: let l:name = fnamemodify(l:name, s:filename_modifier)
line 6: if s:shorten_path
line 7: let l:name = pathshorten(l:name)
line 8: endif
line 9: endif
line 10: if s:enable_devicons == 1 && exists('*WebDevIconsGetFileTypeSymbol')
line 11: let l:name = WebDevIconsGetFileTypeSymbol(fnamemodify(bufname(a:buffer), ':t')) . ' ' . l:name
line 12: endif
line 13: if s:is_read_only(a:buffer)
calling <SNR>26_is_read_only(1)
line 1: let l:modifiable = getbufvar(a:buffer, '&modifiable')
line 2: let l:readonly = getbufvar(a:buffer, '&readonly')
line 3: return (l:readonly || !l:modifiable) && getbufvar(a:buffer, '&filetype') !=# 'help'
<SNR>26_is_read_only returning #0
continuing in <SNR>26_get_buffer_name
line 14: let l:name .= s:read_only
line 15: endif
line 16: if getbufvar(a:buffer, '&mod')
line 17: let l:name .= s:modified
line 18: endif
line 19: if s:show_number == 1
line 20: let l:name = a:buffer . s:number_separator . l:name
line 21: elseif s:show_number == 2
line 22: let l:name = s:get_from_number_map(a:i + 1). s:number_separator . l:name
line 23: elseif s:show_number == 3
line 24: let l:name = a:buffer . s:ordinal_separator . s:get_from_number_map(a:i + 1) . s:number_separator . l:name
line 25: elseif s:show_number == 4
line 26: let l:name = s:get_from_number_map(a:i + 1) . s:ordinal_separator . a:buffer . s:number_separator . l:name
line 27: endif
line 28: let l:len = len(l:name)
line 29: let l:name = substitute(l:name, '%', '%%', 'g')
line 30: if s:component_is_raw
line 31: let l:name = ' ' . l:name . ' '
line 32: endif
line 33: if s:clickable
line 34: return ['%' . string(a:i) . '@lightline#bufferline#_click_handler@' . l:name . '%X', l:len]
line 35: else
line 36: return [l:name, l:len]
<SNR>26_get_buffer_name returning [' index.tsx + ', 11]
continuing in <SNR>26_get_buffer_names
line 5: call add(l:names, l:name)
line 6: call add(l:lengths, l:len + 4)
line 7: endfor
line 3: for l:i in range(a:from, a:to - 1)
line 4: let [l:name, l:len] = s:get_buffer_name(l:i, a:buffers[l:i])
line 5: call add(l:names, l:name)
line 6: call add(l:lengths, l:len + 4)
line 7: endfor
line 8: return [l:names, l:lengths]
<SNR>26_get_buffer_names returning [[' index.tsx + '], [15]]
continuing in lightline#bufferline#buffers
line 8: let l:after = s:get_buffer_names(l:buffers, l:current_index + 1, len(l:buffers))
calling <SNR>26_get_buffer_names([1], 1, 1)
line 1: let l:names = []
line 2: let l:lengths = []
line 3: for l:i in range(a:from, a:to - 1)
line 4: let [l:name, l:len] = s:get_buffer_name(l:i, a:buffers[l:i])
line 5: call add(l:names, l:name)
line 6: call add(l:lengths, l:len + 4)
line 7: endfor
line 8: return [l:names, l:lengths]
<SNR>26_get_buffer_names returning [[], []]
continuing in lightline#bufferline#buffers
line 9: if s:right_aligned == 1
line 10: return s:select_buffers(l:after, l:current, l:before)
line 11: else
line 12: return s:select_buffers(l:before, l:current, l:after)
calling <SNR>26_select_buffers([[], []], [[' index.tsx + '], [15]], [[], []])
line 1: let [l:before_names, l:current_names, l:after_names] = [a:before[0], a:current[0], a:after[0]]
line 2: let [l:before_lengths, l:current_lengths, l:after_lengths] = [a:before[1], a:current[1], a:after[1]]
line 3:
line 4: " The current buffer is always displayed
line 5: let l:width = &columns - l:current_lengths[:0][0]
line 6:
line 7: " Display all buffers if there is enough space to display them
line 8: if s:sum(l:before_lengths) + s:sum(l:after_lengths) <= l:width
calling <SNR>26_sum([])
line 1: let l:sum = 0
line 2: for l:value in a:list
line 3: let l:sum += l:value
line 4: endfor
line 5: return l:sum
<SNR>26_sum returning #0
continuing in <SNR>26_select_buffers
calling <SNR>26_sum([])
line 1: let l:sum = 0
line 2: for l:value in a:list
line 3: let l:sum += l:value
line 4: endfor
line 5: return l:sum
<SNR>26_sum returning #0
continuing in <SNR>26_select_buffers
line 9: return [l:before_names, l:current_names, l:after_names]
<SNR>26_select_buffers returning [[], [' index.tsx + '], []]
continuing in lightline#bufferline#buffers
lightline#bufferline#buffers returning [[], [' index.tsx + '], []]
continuing in <SNR>152_evaluate_expand
line 3: if type(result) == 1 && result ==# ''
line 4: return []
line 5: endif
line 6: catch
line 7: return []
line 8: endtry
line 9: return map(type(result) == 3 ? (result + [[], [], []])[:2] : [[], [result], []], 'filter(s:normalize(v:val), "v:val !=# ''''")')
calling <SNR>152_normalize([])
line 1: if type(a:result) == 3
line 2: return map(a:result, 'type(v:val) == 1 ? v:val : string(v:val)')
<SNR>152_normalize returning []
continuing in <SNR>152_evaluate_expand
calling <SNR>152_normalize([' index.tsx + '])
line 1: if type(a:result) == 3
line 2: return map(a:result, 'type(v:val) == 1 ? v:val : string(v:val)')
<SNR>152_normalize returning [' index.tsx + ']
continuing in <SNR>152_evaluate_expand
calling <SNR>152_normalize([])
line 1: if type(a:result) == 3
line 2: return map(a:result, 'type(v:val) == 1 ? v:val : string(v:val)')
<SNR>152_normalize returning []
continuing in <SNR>152_evaluate_expand
<SNR>152_evaluate_expand returning [[], [' index.tsx + '], []]
continuing in <SNR>152_convert
<SNR>152_convert returning [[[' index.tsx + '], 2, 'tabsel', '0']]
continuing in <SNR>152_expand
calling <SNR>152_flatten_twice([[[[[' index.tsx + '], 2, 'tabsel', '0']]]])
line 1: let ys = []
line 2: for xs in a:xss
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 6: endfor
line 2: for xs in a:xss
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 6: endfor
line 7: return ys
<SNR>152_flatten_twice returning [[[' index.tsx + '], 2, 'tabsel', '0']]
continuing in <SNR>152_expand
line 7: for [component, expand, type, index] in xs
line 8: if prevtype !=# type
line 9: for i in range(previndex + 1, max([previndex, index - 1]))
line 10: call add(indices, string(i))
line 11: call add(components, [])
line 12: call add(expanded, [])
line 13: endfor
line 14: call add(indices, type)
line 15: call add(components, [])
line 16: call add(expanded, [])
line 17: endif
line 18: call extend(components[-1], component)
line 19: call extend(expanded[-1], repeat([expand], len(component)))
line 20: let prevtype = type
line 21: let previndex = index
line 22: endfor
line 7: for [component, expand, type, index] in xs
line 8: if prevtype !=# type
line 9: for i in range(previndex + 1, max([previndex, index - 1]))
line 10: call add(indices, string(i))
line 11: call add(components, [])
line 12: call add(expanded, [])
line 13: endfor
line 14: call add(indices, type)
line 15: call add(components, [])
line 16: call add(expanded, [])
line 17: endif
line 18: call extend(components[-1], component)
line 19: call extend(expanded[-1], repeat([expand], len(component)))
line 20: let prevtype = type
line 21: let previndex = index
line 22: endfor
line 23: for i in range(previndex + 1, max([previndex, len(a:components) - 1]))
line 24: call add(indices, string(i))
line 25: call add(components, [])
line 26: call add(expanded, [])
line 27: endfor
line 28: call add(indices, string(len(a:components)))
line 29: return [components, expanded, indices]
<SNR>152_expand returning [[[' index.tsx + ']], [[2]], ['tabsel', '1']]
continuing in <SNR>152_line
line 11: let r_ = has_key(s:lightline, mode) ? s:lightline[mode].right : s:lightline.active.right
line 12: let [rt, rc, rl] = s:expand(copy(r_))
calling <SNR>152_expand([[]])
line 1: let components = []
line 2: let expanded = []
line 3: let indices = []
line 4: let prevtype = ''
line 5: let previndex = -1
line 6: let xs = s:flatten_twice(s:map(deepcopy(a:components), 'map(v:val, "s:convert(v:val, ''" . v:key . "'')")'))
calling <SNR>152_flatten_twice([[]])
line 1: let ys = []
line 2: for xs in a:xss
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 6: endfor
line 2: for xs in a:xss
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 6: endfor
line 7: return ys
<SNR>152_flatten_twice returning []
continuing in <SNR>152_expand
line 7: for [component, expand, type, index] in xs
line 8: if prevtype !=# type
line 9: for i in range(previndex + 1, max([previndex, index - 1]))
line 10: call add(indices, string(i))
line 11: call add(components, [])
line 12: call add(expanded, [])
line 13: endfor
line 14: call add(indices, type)
line 15: call add(components, [])
line 16: call add(expanded, [])
line 17: endif
line 18: call extend(components[-1], component)
line 19: call extend(expanded[-1], repeat([expand], len(component)))
line 20: let prevtype = type
line 21: let previndex = index
line 22: endfor
line 23: for i in range(previndex + 1, max([previndex, len(a:components) - 1]))
line 24: call add(indices, string(i))
line 25: call add(components, [])
line 26: call add(expanded, [])
line 27: endfor
line 23: for i in range(previndex + 1, max([previndex, len(a:components) - 1]))
line 24: call add(indices, string(i))
line 25: call add(components, [])
line 26: call add(expanded, [])
line 27: endfor
line 28: call add(indices, string(len(a:components)))
line 29: return [components, expanded, indices]
<SNR>152_expand returning [[[]], [[]], ['0', '1']]
continuing in <SNR>152_line
line 13: for i in range(len(lt))
line 14: let _ .= '%#LightlineLeft_' . mode . '_' . ll[i] . '#'
line 15: for j in range(len(lt[i]))
line 16: let x = lc[i][j] ? lt[i][j] : has_key(f, lt[i][j]) ? (exists('*' . f[lt[i][j]]) ? '%{' . f[lt[i][j]] . '()}' : '%{exists("*' . f[lt[i][j]] . '")?' . f[lt[i][j]] . '():""}') : get(c, lt[i][j], '')
line 17: let _ .= has_key(t, lt[i][j]) && t[lt[i][j]] ==# 'raw' || get(w, lt[i][j]) || lc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 18: if j < len(lt[i]) - 1 && s.left !=# ''
line 19: let _ .= s:subseparator(lt[i][(j):], s.left, lc[i][(j):])
line 20: endif
line 21: endfor
line 15: for j in range(len(lt[i]))
line 16: let x = lc[i][j] ? lt[i][j] : has_key(f, lt[i][j]) ? (exists('*' . f[lt[i][j]]) ? '%{' . f[lt[i][j]] . '()}' : '%{exists("*' . f[lt[i][j]] . '")?' . f[lt[i][j]] . '():""}') : get(c, lt[i][j], '')
line 17: let _ .= has_key(t, lt[i][j]) && t[lt[i][j]] ==# 'raw' || get(w, lt[i][j]) || lc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 18: if j < len(lt[i]) - 1 && s.left !=# ''
line 19: let _ .= s:subseparator(lt[i][(j):], s.left, lc[i][(j):])
line 20: endif
line 21: endfor
line 22: let _ .= '%#LightlineLeft_' . mode . '_' . ll[i] . '_' . ll[i + 1] . '#'
line 23: let _ .= i < l + len(lt) - len(l_) && ll[i] < l || ll[i] != ll[i + 1] ? p.left : len(lt[i]) ? s.left : ''
line 24: endfor
line 13: for i in range(len(lt))
line 14: let _ .= '%#LightlineLeft_' . mode . '_' . ll[i] . '#'
line 15: for j in range(len(lt[i]))
line 16: let x = lc[i][j] ? lt[i][j] : has_key(f, lt[i][j]) ? (exists('*' . f[lt[i][j]]) ? '%{' . f[lt[i][j]] . '()}' : '%{exists("*' . f[lt[i][j]] . '")?' . f[lt[i][j]] . '():""}') : get(c, lt[i][j], '')
line 17: let _ .= has_key(t, lt[i][j]) && t[lt[i][j]] ==# 'raw' || get(w, lt[i][j]) || lc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 18: if j < len(lt[i]) - 1 && s.left !=# ''
line 19: let _ .= s:subseparator(lt[i][(j):], s.left, lc[i][(j):])
line 20: endif
line 21: endfor
line 22: let _ .= '%#LightlineLeft_' . mode . '_' . ll[i] . '_' . ll[i + 1] . '#'
line 23: let _ .= i < l + len(lt) - len(l_) && ll[i] < l || ll[i] != ll[i + 1] ? p.left : len(lt[i]) ? s.left : ''
line 24: endfor
line 25: let _ .= '%#LightlineMiddle_' . mode . '#%='
line 26: for i in range(len(rt) - 1, 0, -1)
line 27: let _ .= '%#LightlineRight_' . mode . '_' . rl[i] . '_' . rl[i + 1] . '#'
line 28: let _ .= i < r + len(rt) - len(r_) && rl[i] < r || rl[i] != rl[i + 1] ? p.right : len(rt[i]) ? s.right : ''
line 29: let _ .= '%#LightlineRight_' . mode . '_' . rl[i] . '#'
line 30: for j in range(len(rt[i]))
line 31: let x = rc[i][j] ? rt[i][j] : has_key(f, rt[i][j]) ? (exists('*' . f[rt[i][j]]) ? '%{' . f[rt[i][j]] . '()}' : '%{exists("*' . f[rt[i][j]] . '")?' . f[rt[i][j]] . '():""}') : get(c, rt[i][j], '')
line 32: let _ .= has_key(t, rt[i][j]) && t[rt[i][j]] ==# 'raw' || get(w, rt[i][j]) || rc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 33: if j < len(rt[i]) - 1 && s.right !=# ''
line 34: let _ .= s:subseparator(rt[i][(j):], s.right, rc[i][(j):])
line 35: endif
line 36: endfor
line 37: endfor
line 26: for i in range(len(rt) - 1, 0, -1)
line 27: let _ .= '%#LightlineRight_' . mode . '_' . rl[i] . '_' . rl[i + 1] . '#'
line 28: let _ .= i < r + len(rt) - len(r_) && rl[i] < r || rl[i] != rl[i + 1] ? p.right : len(rt[i]) ? s.right : ''
line 29: let _ .= '%#LightlineRight_' . mode . '_' . rl[i] . '#'
line 30: for j in range(len(rt[i]))
line 31: let x = rc[i][j] ? rt[i][j] : has_key(f, rt[i][j]) ? (exists('*' . f[rt[i][j]]) ? '%{' . f[rt[i][j]] . '()}' : '%{exists("*' . f[rt[i][j]] . '")?' . f[rt[i][j]] . '():""}') : get(c, rt[i][j], '')
line 32: let _ .= has_key(t, rt[i][j]) && t[rt[i][j]] ==# 'raw' || get(w, rt[i][j]) || rc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 33: if j < len(rt[i]) - 1 && s.right !=# ''
line 34: let _ .= s:subseparator(rt[i][(j):], s.right, rc[i][(j):])
line 35: endif
line 36: endfor
line 37: endfor
line 38: return _
<SNR>152_line returning '%#LightlineLeft_tabline_tabsel# index...abline_0_1#%#LightlineRight_tabline_0#'
continuing in lightline#tabline
line 8: endif
line 9: return s:tabline
lightline#tabline returning '%#LightlineLeft_tabline_tabsel# index...abline_0_1#%#LightlineRight_tabline_0#'
calling lightline#link()
line 1: let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
line 2: if s:mode ==# mode
line 3: return ''
lightline#link returning ''
calling lightline#mode()
line 1: return get(s:lightline.mode_map, mode(), '')
lightline#mode returning 'INSERT'
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling FugitiveHead()
line 1: let dir = FugitiveGitDir(a:0 > 1 ? a:2 : -1)
calling FugitiveGitDir(-1)
line 1: if !a:0 || type(a:1) == type(0) && a:1 < 0
line 2: if exists('g:fugitive_event')
line 3: return g:fugitive_event
line 4: endif
line 5: let dir = get(b:, 'git_dir', '')
line 6: if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|prompt\)$')
line 7: return FugitiveExtractGitDir(getcwd())
line 8: endif
line 9: return dir
FugitiveGitDir returning ''
continuing in FugitiveHead
line 2: if empty(dir)
line 3: return ''
FugitiveHead returning ''
Executing CursorMovedI Autocommands for "*"
autocommand call s:Autocmd('CursorMovedI', +expand('<abuf>'), [line('.'), col('.')])
Executing: call s:Autocmd('CursorMovedI', +expand('<abuf>'), [line('.'), col('.')])
calling <SNR>46_Autocmd('CursorMovedI', 1, [1, 6])
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['CursorMovedI', 1, [1, 6]])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['CursorMovedI', 1, [1, 6]])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in CursorMovedI Autocommands for "*"
Executing CursorMovedI Autocommands for "*"
autocommand call s:Highlight_Matching_Pair()
Executing: call s:Highlight_Matching_Pair()
calling <SNR>55_Highlight_Matching_Pair()
line 1: " Remove any previous match.
line 2: call s:Remove_Matches()
calling <SNR>55_Remove_Matches()
line 1: if exists('w:paren_hl_on') && w:paren_hl_on
line 2: silent! call matchdelete(3)
line 3: let w:paren_hl_on = 0
line 4: endif
<SNR>55_Remove_Matches returning #0
continuing in <SNR>55_Highlight_Matching_Pair
line 3:
line 4: " Avoid that we remove the popup menu.
line 5: " Return when there are no colors (looks like the cursor jumps).
line 6: if pumvisible() || (&t_Co < 8 && !has("gui_running"))
line 7: return
line 8: endif
line 9:
line 10: " Get the character under the cursor and check if it's in 'matchpairs'.
line 11: let c_lnum = line('.')
line 12: let c_col = col('.')
line 13: let before = 0
line 14:
line 15: let text = getline(c_lnum)
line 16: let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
line 17: if empty(matches)
line 18: let [c_before, c] = ['', '']
line 19: else
line 20: let [c_before, c] = matches[1:2]
line 21: endif
line 22: let plist = split(&matchpairs, '.\zs[:,]')
line 23: let i = index(plist, c)
line 24: if i < 0
line 25: " not found, in Insert mode try character before the cursor
line 26: if c_col > 1 && (mode() == 'i' || mode() == 'R')
line 27: let before = strlen(c_before)
line 28: let c = c_before
line 29: let i = index(plist, c)
line 30: endif
line 31: if i < 0
line 32: " not found, nothing to do
line 33: return
<SNR>55_Highlight_Matching_Pair returning #0
continuing in CursorMovedI Autocommands for "*"
Executing TextChangedI Autocommands for "*"
autocommand call s:Autocmd('TextChangedI', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
Executing: call s:Autocmd('TextChangedI', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
calling <SNR>46_Autocmd('TextChangedI', 1, {'lnum': 1, 'col': 6, 'changedtick': 23, 'pre': 'cons '})
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['TextChangedI', 1, {'lnum': 1, 'col': 6, 'changedtick': 23, 'pre': 'cons '}])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['TextChangedI', 1, {'lnum': 1, 'col': 6, 'changedtick': 23, 'pre': 'cons '}])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in TextChangedI Autocommands for "*"
Executing TextChangedI Autocommands for "*"
autocommand call s:Highlight_Matching_Pair()
Executing: call s:Highlight_Matching_Pair()
calling <SNR>55_Highlight_Matching_Pair()
line 1: " Remove any previous match.
line 2: call s:Remove_Matches()
calling <SNR>55_Remove_Matches()
line 1: if exists('w:paren_hl_on') && w:paren_hl_on
line 2: silent! call matchdelete(3)
line 3: let w:paren_hl_on = 0
line 4: endif
<SNR>55_Remove_Matches returning #0
continuing in <SNR>55_Highlight_Matching_Pair
line 3:
line 4: " Avoid that we remove the popup menu.
line 5: " Return when there are no colors (looks like the cursor jumps).
line 6: if pumvisible() || (&t_Co < 8 && !has("gui_running"))
line 7: return
line 8: endif
line 9:
line 10: " Get the character under the cursor and check if it's in 'matchpairs'.
line 11: let c_lnum = line('.')
line 12: let c_col = col('.')
line 13: let before = 0
line 14:
line 15: let text = getline(c_lnum)
line 16: let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
line 17: if empty(matches)
line 18: let [c_before, c] = ['', '']
line 19: else
line 20: let [c_before, c] = matches[1:2]
line 21: endif
line 22: let plist = split(&matchpairs, '.\zs[:,]')
line 23: let i = index(plist, c)
line 24: if i < 0
line 25: " not found, in Insert mode try character before the cursor
line 26: if c_col > 1 && (mode() == 'i' || mode() == 'R')
line 27: let before = strlen(c_before)
line 28: let c = c_before
line 29: let i = index(plist, c)
line 30: endif
line 31: if i < 0
line 32: " not found, nothing to do
line 33: return
<SNR>55_Highlight_Matching_Pair returning #0
continuing in TextChangedI Autocommands for "*"
calling lightline#link()
line 1: let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
line 2: if s:mode ==# mode
line 3: return ''
lightline#link returning ''
calling lightline#mode()
line 1: return get(s:lightline.mode_map, mode(), '')
lightline#mode returning 'INSERT'
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling FugitiveHead()
line 1: let dir = FugitiveGitDir(a:0 > 1 ? a:2 : -1)
calling FugitiveGitDir(-1)
line 1: if !a:0 || type(a:1) == type(0) && a:1 < 0
line 2: if exists('g:fugitive_event')
line 3: return g:fugitive_event
line 4: endif
line 5: let dir = get(b:, 'git_dir', '')
line 6: if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|prompt\)$')
line 7: return FugitiveExtractGitDir(getcwd())
line 8: endif
line 9: return dir
FugitiveGitDir returning ''
continuing in FugitiveHead
line 2: if empty(dir)
line 3: return ''
FugitiveHead returning ''
calling coc#api#notify('call_atomic', [[['nvim_command', ['noa set completeo...im_call_function', ['coc#_hide', []]]]])
line 1: call call(s:funcs[a:method], a:args)
calling 9([['nvim_command', ['noa set completeop...vim_call_function', ['coc#_hide', []]]])
line 1: let res = []
line 2: for [key, arglist] in a:calls
line 3: let name = key[5:]
line 4: try
line 5: call add(res, call(s:funcs[name], arglist))
calling 15('noa set completeopt=menuone,preview')
line 1: " command that could cause cursor vanish
line 2: if a:command =~# '^echo' || a:command =~# '^redraw' || a:command =~# '^sign place'
line 3: call timer_start(0, {-> s:execute(a:command)})
line 4: else
line 5: execute a:command
line 5: noa set completeopt=menuone,preview
line 6: endif
15 returning #0
continuing in 9
line 6: catch /.*/
line 7: return [res, v:exception]
line 8: endtry
line 9: endfor
line 2: for [key, arglist] in a:calls
line 3: let name = key[5:]
line 4: try
line 5: call add(res, call(s:funcs[name], arglist))
calling 15('let g:coc#_context[''candidates''] = []')
line 1: " command that could cause cursor vanish
line 2: if a:command =~# '^echo' || a:command =~# '^redraw' || a:command =~# '^sign place'
line 3: call timer_start(0, {-> s:execute(a:command)})
line 4: else
line 5: execute a:command
line 5: let g:coc#_context['candidates'] = []
line 6: endif
15 returning #0
continuing in 9
line 6: catch /.*/
line 7: return [res, v:exception]
line 8: endtry
line 9: endfor
line 2: for [key, arglist] in a:calls
line 3: let name = key[5:]
line 4: try
line 5: call add(res, call(s:funcs[name], arglist))
calling 13('coc#_hide', [])
line 1: return call(a:method, a:args)
calling coc#_hide()
line 1: if !pumvisible() | return | endif
line 1: return | endif
coc#_hide returning #0
continuing in 13
13 returning #0
continuing in 9
line 6: catch /.*/
line 7: return [res, v:exception]
line 8: endtry
line 9: endfor
line 2: for [key, arglist] in a:calls
line 3: let name = key[5:]
line 4: try
line 5: call add(res, call(s:funcs[name], arglist))
line 6: catch /.*/
line 7: return [res, v:exception]
line 8: endtry
line 9: endfor
line 10: return [res, v:null]
9 returning [[0, 0, 0], v:null]
continuing in coc#api#notify
coc#api#notify returning #0
calling coc#api#call('eval', ['[coc#util#cursor(), getline(".")]'])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 16('[coc#util#cursor(), getline(".")]')
line 1: return eval(a:expr)
calling coc#util#cursor()
line 1: let pos = getcurpos()
line 2: let content = pos[2] == 1 ? '' : getline('.')[0: pos[2] - 2]
line 3: return [pos[1] - 1, strchars(content)]
coc#util#cursor returning [0, 5]
continuing in 16
16 returning [[0, 5], 'cons ']
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, [[0, 5], 'cons ']]
calling coc#api#call('call_function', ['coc#util#get_content', [1]])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 13('coc#util#get_content', [1])
line 1: return call(a:method, a:args)
calling coc#util#get_content(1)
line 1: if !bufloaded(a:bufnr) | return '' | endif
line 1: return '' | endif
line 1: endif
line 2: return { 'content': join(getbufline(a:bufnr, 1, '$'), "\n"), 'changedtick': getbufvar(a:bufnr, 'changedtick') }
coc#util#get_content returning {'changedtick': 23, 'content': 'cons '}
continuing in 13
13 returning {'changedtick': 23, 'content': 'cons '}
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, {'changedtick': 23, 'content': 'cons '}]
Executing CursorHoldI Autocommands for "*"
autocommand call s:Autocmd('CursorHoldI', +expand('<abuf>'))
Executing: call s:Autocmd('CursorHoldI', +expand('<abuf>'))
calling <SNR>46_Autocmd('CursorHoldI', 1)
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['CursorHoldI', 1])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['CursorHoldI', 1])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in CursorHoldI Autocommands for "*"
calling lightline#link()
line 1: let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
line 2: if s:mode ==# mode
line 3: return ''
lightline#link returning ''
calling lightline#mode()
line 1: return get(s:lightline.mode_map, mode(), '')
lightline#mode returning 'INSERT'
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling FugitiveHead()
line 1: let dir = FugitiveGitDir(a:0 > 1 ? a:2 : -1)
calling FugitiveGitDir(-1)
line 1: if !a:0 || type(a:1) == type(0) && a:1 < 0
line 2: if exists('g:fugitive_event')
line 3: return g:fugitive_event
line 4: endif
line 5: let dir = get(b:, 'git_dir', '')
line 6: if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|prompt\)$')
line 7: return FugitiveExtractGitDir(getcwd())
line 8: endif
line 9: return dir
FugitiveGitDir returning ''
continuing in FugitiveHead
line 2: if empty(dir)
line 3: return ''
FugitiveHead returning ''
calling coc#_insert_key('request', '6bf590db-c7f2-11ea-8e1d-2353e2ff80b6')
line 1: if get(a:, 1, 1)
line 2: call coc#_cancel()
calling coc#_cancel()
line 1: " hack for close pum
line 2: if pumvisible() && &paste != 1
line 3: let g:coc#_context = {'start': 0, 'preselect': -1,'candidates': []}
line 4: call feedkeys("\<Plug>CocRefresh", 'i')
line 5: endif
coc#_cancel returning #0
continuing in coc#_insert_key
line 3: endif
line 4: return "\<c-r>=coc#rpc#".a:method."('doKeymap', ['".a:key."'])\<CR>"
coc#_insert_key returning '^R=coc#rpc#request(''doKeymap'', [''6bf590db-c7f2-11ea-8e1d-2353e2ff80b6''])^M'
calling coc#rpc#request('doKeymap', ['6bf590db-c7f2-11ea-8e1d-2353e2ff80b6'])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#request
line 2: return ''
line 3: endif
line 4: return s:client['request'](a:method, a:args)
calling <SNR>49_request('doKeymap', ['6bf590db-c7f2-11ea-8e1d-2353e2ff80b6'])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_request
line 2: if empty(channel) | return '' | endif
line 2: return '' | endif
line 2: endif
line 3: try
line 4: if s:is_vim
line 5: let res = ch_evalexpr(channel, [a:method, a:args], {'timeout': 60 * 1000})
calling coc#api#call('eval', ['[getline("."),col("."),synIDattr(synID(line("."), col(".") - 2, 1), "name")]'])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 16('[getline("."),col("."),synIDattr(synID(line("."), col(".") - 2, 1), "name")]')
line 1: return eval(a:expr)
16 returning ['cons ', 6, '']
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, ['cons ', 6, '']]
continuing in <SNR>49_request
calling coc#api#call('eval', ['feedkeys("\<bs>", ''in'')'])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 16('feedkeys("\<bs>", ''in'')')
line 1: return eval(a:expr)
16 returning #0
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, 0]
continuing in <SNR>49_request
line 6: if type(res) == 1 && res ==# ''
line 7: throw 'request '.a:method. ' '.string(a:args).' timeout after 60s'
line 8: endif
line 9: let [l:errmsg, res] = res
line 10: if !empty(l:errmsg)
line 11: throw l:errmsg
line 12: else
line 13: return res
:return made pending
line 14: endif
line 15: else
line 16: return call('rpcrequest', [channel, a:method] + a:args)
line 17: endif
line 18: catch /.*/
line 19: if v:exception =~# 'E475'
line 20: if get(g:, 'coc_vim_leaving', 0) | return | endif
line 20: return | endif
line 20: endif
line 21: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 21: echom '['.self.name.'] server connection lost' | echohl None
line 21: echohl None
line 22: let name = self.name
line 23: call s:on_exit(name, 0)
line 24: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 25: elseif v:exception =~# 'E12'
line 26: " neovim's bug, ignore it
line 27: else
line 28: echohl Error | echo 'Error on request ('.a:method.'): '.v:exception | echohl None
line 28: echo 'Error on request ('.a:method.'): '.v:exception | echohl None
line 28: echohl None
line 29: endif
line 30: endtry
:return resumed
<SNR>49_request returning ''
continuing in coc#rpc#request
coc#rpc#request returning ''
Executing CursorMovedI Autocommands for "*"
autocommand call s:Autocmd('CursorMovedI', +expand('<abuf>'), [line('.'), col('.')])
Executing: call s:Autocmd('CursorMovedI', +expand('<abuf>'), [line('.'), col('.')])
calling <SNR>46_Autocmd('CursorMovedI', 1, [1, 5])
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['CursorMovedI', 1, [1, 5]])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['CursorMovedI', 1, [1, 5]])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in CursorMovedI Autocommands for "*"
Executing CursorMovedI Autocommands for "*"
autocommand call s:Highlight_Matching_Pair()
Executing: call s:Highlight_Matching_Pair()
calling <SNR>55_Highlight_Matching_Pair()
line 1: " Remove any previous match.
line 2: call s:Remove_Matches()
calling <SNR>55_Remove_Matches()
line 1: if exists('w:paren_hl_on') && w:paren_hl_on
line 2: silent! call matchdelete(3)
line 3: let w:paren_hl_on = 0
line 4: endif
<SNR>55_Remove_Matches returning #0
continuing in <SNR>55_Highlight_Matching_Pair
line 3:
line 4: " Avoid that we remove the popup menu.
line 5: " Return when there are no colors (looks like the cursor jumps).
line 6: if pumvisible() || (&t_Co < 8 && !has("gui_running"))
line 7: return
line 8: endif
line 9:
line 10: " Get the character under the cursor and check if it's in 'matchpairs'.
line 11: let c_lnum = line('.')
line 12: let c_col = col('.')
line 13: let before = 0
line 14:
line 15: let text = getline(c_lnum)
line 16: let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
line 17: if empty(matches)
line 18: let [c_before, c] = ['', '']
line 19: else
line 20: let [c_before, c] = matches[1:2]
line 21: endif
line 22: let plist = split(&matchpairs, '.\zs[:,]')
line 23: let i = index(plist, c)
line 24: if i < 0
line 25: " not found, in Insert mode try character before the cursor
line 26: if c_col > 1 && (mode() == 'i' || mode() == 'R')
line 27: let before = strlen(c_before)
line 28: let c = c_before
line 29: let i = index(plist, c)
line 30: endif
line 31: if i < 0
line 32: " not found, nothing to do
line 33: return
<SNR>55_Highlight_Matching_Pair returning #0
continuing in CursorMovedI Autocommands for "*"
Executing TextChangedI Autocommands for "*"
autocommand call s:Autocmd('TextChangedI', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
Executing: call s:Autocmd('TextChangedI', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
calling <SNR>46_Autocmd('TextChangedI', 1, {'lnum': 1, 'col': 5, 'changedtick': 24, 'pre': 'cons'})
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['TextChangedI', 1, {'lnum': 1, 'col': 5, 'changedtick': 24, 'pre': 'cons'}])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['TextChangedI', 1, {'lnum': 1, 'col': 5, 'changedtick': 24, 'pre': 'cons'}])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in TextChangedI Autocommands for "*"
Executing TextChangedI Autocommands for "*"
autocommand call s:Highlight_Matching_Pair()
Executing: call s:Highlight_Matching_Pair()
calling <SNR>55_Highlight_Matching_Pair()
line 1: " Remove any previous match.
line 2: call s:Remove_Matches()
calling <SNR>55_Remove_Matches()
line 1: if exists('w:paren_hl_on') && w:paren_hl_on
line 2: silent! call matchdelete(3)
line 3: let w:paren_hl_on = 0
line 4: endif
<SNR>55_Remove_Matches returning #0
continuing in <SNR>55_Highlight_Matching_Pair
line 3:
line 4: " Avoid that we remove the popup menu.
line 5: " Return when there are no colors (looks like the cursor jumps).
line 6: if pumvisible() || (&t_Co < 8 && !has("gui_running"))
line 7: return
line 8: endif
line 9:
line 10: " Get the character under the cursor and check if it's in 'matchpairs'.
line 11: let c_lnum = line('.')
line 12: let c_col = col('.')
line 13: let before = 0
line 14:
line 15: let text = getline(c_lnum)
line 16: let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
line 17: if empty(matches)
line 18: let [c_before, c] = ['', '']
line 19: else
line 20: let [c_before, c] = matches[1:2]
line 21: endif
line 22: let plist = split(&matchpairs, '.\zs[:,]')
line 23: let i = index(plist, c)
line 24: if i < 0
line 25: " not found, in Insert mode try character before the cursor
line 26: if c_col > 1 && (mode() == 'i' || mode() == 'R')
line 27: let before = strlen(c_before)
line 28: let c = c_before
line 29: let i = index(plist, c)
line 30: endif
line 31: if i < 0
line 32: " not found, nothing to do
line 33: return
<SNR>55_Highlight_Matching_Pair returning #0
continuing in TextChangedI Autocommands for "*"
calling lightline#link()
line 1: let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
line 2: if s:mode ==# mode
line 3: return ''
lightline#link returning ''
calling lightline#mode()
line 1: return get(s:lightline.mode_map, mode(), '')
lightline#mode returning 'INSERT'
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling FugitiveHead()
line 1: let dir = FugitiveGitDir(a:0 > 1 ? a:2 : -1)
calling FugitiveGitDir(-1)
line 1: if !a:0 || type(a:1) == type(0) && a:1 < 0
line 2: if exists('g:fugitive_event')
line 3: return g:fugitive_event
line 4: endif
line 5: let dir = get(b:, 'git_dir', '')
line 6: if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|prompt\)$')
line 7: return FugitiveExtractGitDir(getcwd())
line 8: endif
line 9: return dir
FugitiveGitDir returning ''
continuing in FugitiveHead
line 2: if empty(dir)
line 3: return ''
FugitiveHead returning ''
calling coc#api#call('call_function', ['coc#util#get_content', [1]])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 13('coc#util#get_content', [1])
line 1: return call(a:method, a:args)
calling coc#util#get_content(1)
line 1: if !bufloaded(a:bufnr) | return '' | endif
line 1: return '' | endif
line 1: endif
line 2: return { 'content': join(getbufline(a:bufnr, 1, '$'), "\n"), 'changedtick': getbufvar(a:bufnr, 'changedtick') }
coc#util#get_content returning {'changedtick': 24, 'content': 'cons'}
continuing in 13
13 returning {'changedtick': 24, 'content': 'cons'}
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, {'changedtick': 24, 'content': 'cons'}]
Executing InsertCharPre Autocommands for "*"
autocommand call s:Autocmd('InsertCharPre', v:char)
Executing: call s:Autocmd('InsertCharPre', v:char)
calling <SNR>46_Autocmd('InsertCharPre', 't')
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['InsertCharPre', 't'])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['InsertCharPre', 't'])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in InsertCharPre Autocommands for "*"
Executing CursorMovedI Autocommands for "*"
autocommand call s:Autocmd('CursorMovedI', +expand('<abuf>'), [line('.'), col('.')])
Executing: call s:Autocmd('CursorMovedI', +expand('<abuf>'), [line('.'), col('.')])
calling <SNR>46_Autocmd('CursorMovedI', 1, [1, 6])
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['CursorMovedI', 1, [1, 6]])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['CursorMovedI', 1, [1, 6]])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in CursorMovedI Autocommands for "*"
Executing CursorMovedI Autocommands for "*"
autocommand call s:Highlight_Matching_Pair()
Executing: call s:Highlight_Matching_Pair()
calling <SNR>55_Highlight_Matching_Pair()
line 1: " Remove any previous match.
line 2: call s:Remove_Matches()
calling <SNR>55_Remove_Matches()
line 1: if exists('w:paren_hl_on') && w:paren_hl_on
line 2: silent! call matchdelete(3)
line 3: let w:paren_hl_on = 0
line 4: endif
<SNR>55_Remove_Matches returning #0
continuing in <SNR>55_Highlight_Matching_Pair
line 3:
line 4: " Avoid that we remove the popup menu.
line 5: " Return when there are no colors (looks like the cursor jumps).
line 6: if pumvisible() || (&t_Co < 8 && !has("gui_running"))
line 7: return
line 8: endif
line 9:
line 10: " Get the character under the cursor and check if it's in 'matchpairs'.
line 11: let c_lnum = line('.')
line 12: let c_col = col('.')
line 13: let before = 0
line 14:
line 15: let text = getline(c_lnum)
line 16: let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
line 17: if empty(matches)
line 18: let [c_before, c] = ['', '']
line 19: else
line 20: let [c_before, c] = matches[1:2]
line 21: endif
line 22: let plist = split(&matchpairs, '.\zs[:,]')
line 23: let i = index(plist, c)
line 24: if i < 0
line 25: " not found, in Insert mode try character before the cursor
line 26: if c_col > 1 && (mode() == 'i' || mode() == 'R')
line 27: let before = strlen(c_before)
line 28: let c = c_before
line 29: let i = index(plist, c)
line 30: endif
line 31: if i < 0
line 32: " not found, nothing to do
line 33: return
<SNR>55_Highlight_Matching_Pair returning #0
continuing in CursorMovedI Autocommands for "*"
Executing TextChangedI Autocommands for "*"
autocommand call s:Autocmd('TextChangedI', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
Executing: call s:Autocmd('TextChangedI', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
calling <SNR>46_Autocmd('TextChangedI', 1, {'lnum': 1, 'col': 6, 'changedtick': 25, 'pre': 'const'})
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['TextChangedI', 1, {'lnum': 1, 'col': 6, 'changedtick': 25, 'pre': 'const'}])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['TextChangedI', 1, {'lnum': 1, 'col': 6, 'changedtick': 25, 'pre': 'const'}])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in TextChangedI Autocommands for "*"
Executing TextChangedI Autocommands for "*"
autocommand call s:Highlight_Matching_Pair()
Executing: call s:Highlight_Matching_Pair()
calling <SNR>55_Highlight_Matching_Pair()
line 1: " Remove any previous match.
line 2: call s:Remove_Matches()
calling <SNR>55_Remove_Matches()
line 1: if exists('w:paren_hl_on') && w:paren_hl_on
line 2: silent! call matchdelete(3)
line 3: let w:paren_hl_on = 0
line 4: endif
<SNR>55_Remove_Matches returning #0
continuing in <SNR>55_Highlight_Matching_Pair
line 3:
line 4: " Avoid that we remove the popup menu.
line 5: " Return when there are no colors (looks like the cursor jumps).
line 6: if pumvisible() || (&t_Co < 8 && !has("gui_running"))
line 7: return
line 8: endif
line 9:
line 10: " Get the character under the cursor and check if it's in 'matchpairs'.
line 11: let c_lnum = line('.')
line 12: let c_col = col('.')
line 13: let before = 0
line 14:
line 15: let text = getline(c_lnum)
line 16: let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
line 17: if empty(matches)
line 18: let [c_before, c] = ['', '']
line 19: else
line 20: let [c_before, c] = matches[1:2]
line 21: endif
line 22: let plist = split(&matchpairs, '.\zs[:,]')
line 23: let i = index(plist, c)
line 24: if i < 0
line 25: " not found, in Insert mode try character before the cursor
line 26: if c_col > 1 && (mode() == 'i' || mode() == 'R')
line 27: let before = strlen(c_before)
line 28: let c = c_before
line 29: let i = index(plist, c)
line 30: endif
line 31: if i < 0
line 32: " not found, nothing to do
line 33: return
<SNR>55_Highlight_Matching_Pair returning #0
continuing in TextChangedI Autocommands for "*"
calling lightline#link()
line 1: let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
line 2: if s:mode ==# mode
line 3: return ''
lightline#link returning ''
calling lightline#mode()
line 1: return get(s:lightline.mode_map, mode(), '')
lightline#mode returning 'INSERT'
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling FugitiveHead()
line 1: let dir = FugitiveGitDir(a:0 > 1 ? a:2 : -1)
calling FugitiveGitDir(-1)
line 1: if !a:0 || type(a:1) == type(0) && a:1 < 0
line 2: if exists('g:fugitive_event')
line 3: return g:fugitive_event
line 4: endif
line 5: let dir = get(b:, 'git_dir', '')
line 6: if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|prompt\)$')
line 7: return FugitiveExtractGitDir(getcwd())
line 8: endif
line 9: return dir
FugitiveGitDir returning ''
continuing in FugitiveHead
line 2: if empty(dir)
line 3: return ''
FugitiveHead returning ''
calling coc#api#call('call_function', ['coc#util#get_content', [1]])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 13('coc#util#get_content', [1])
line 1: return call(a:method, a:args)
calling coc#util#get_content(1)
line 1: if !bufloaded(a:bufnr) | return '' | endif
line 1: return '' | endif
line 1: endif
line 2: return { 'content': join(getbufline(a:bufnr, 1, '$'), "\n"), 'changedtick': getbufvar(a:bufnr, 'changedtick') }
coc#util#get_content returning {'changedtick': 25, 'content': 'const'}
continuing in 13
13 returning {'changedtick': 25, 'content': 'const'}
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, {'changedtick': 25, 'content': 'const'}]
calling coc#api#call('eval', ['[coc#util#cursor(), getline(".")]'])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 16('[coc#util#cursor(), getline(".")]')
line 1: return eval(a:expr)
calling coc#util#cursor()
line 1: let pos = getcurpos()
line 2: let content = pos[2] == 1 ? '' : getline('.')[0: pos[2] - 2]
line 3: return [pos[1] - 1, strchars(content)]
coc#util#cursor returning [0, 5]
continuing in 16
16 returning [[0, 5], 'const']
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, [[0, 5], 'const']]
calling coc#api#call('call_function', ['coc#util#get_complete_option', []])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 13('coc#util#get_complete_option', [])
line 1: return call(a:method, a:args)
calling coc#util#get_complete_option()
line 1: let disabled = get(b:, 'coc_suggest_disable', 0)
line 2: if disabled | return | endif
line 2: return | endif
line 2: endif
line 3: let blacklist = get(b:, 'coc_suggest_blacklist', [])
line 4: let pos = getcurpos()
line 5: let l:start = pos[2] - 1
line 6: let line = getline(pos[1])
line 7: for char in reverse(split(line[0: l:start - 1], '\zs'))
line 8: if l:start > 0 && char =~# '\k'
line 9: let l:start = l:start - strlen(char)
line 10: else
line 11: break
line 12: endif
line 13: endfor
line 7: for char in reverse(split(line[0: l:start - 1], '\zs'))
line 8: if l:start > 0 && char =~# '\k'
line 9: let l:start = l:start - strlen(char)
line 10: else
line 11: break
line 12: endif
line 13: endfor
line 7: for char in reverse(split(line[0: l:start - 1], '\zs'))
line 8: if l:start > 0 && char =~# '\k'
line 9: let l:start = l:start - strlen(char)
line 10: else
line 11: break
line 12: endif
line 13: endfor
line 7: for char in reverse(split(line[0: l:start - 1], '\zs'))
line 8: if l:start > 0 && char =~# '\k'
line 9: let l:start = l:start - strlen(char)
line 10: else
line 11: break
line 12: endif
line 13: endfor
line 7: for char in reverse(split(line[0: l:start - 1], '\zs'))
line 8: if l:start > 0 && char =~# '\k'
line 9: let l:start = l:start - strlen(char)
line 10: else
line 11: break
line 12: endif
line 13: endfor
line 7: for char in reverse(split(line[0: l:start - 1], '\zs'))
line 8: if l:start > 0 && char =~# '\k'
line 9: let l:start = l:start - strlen(char)
line 10: else
line 11: break
line 12: endif
line 13: endfor
line 14: let input = pos[2] == 1 ? '' : line[l:start : pos[2] - 2]
line 15: if !empty(blacklist) && index(blacklist, input) >= 0
line 16: return
line 17: endif
line 18: let synname = synIDattr(synID(pos[1], l:start, 1),"name")
line 19: return { 'word': matchstr(line[l:start : ], '^\k\+'), 'input': empty(input) ? '' : input, 'line': line, 'filetype': &filetype, 'filepath': expand('%:p'), 'bufnr': bufnr('%'), 'linenr': pos[1], 'colnr' : pos[2], 'col': l:start, 'synname': synname, 'changedtick': b:changedtick, 'blacklist': blacklist,}
coc#util#get_complete_option returning {'word': 'const', 'bufnr': 1, 'col': 0...'const', 'colnr': 6, 'changedtick': 25}
continuing in 13
13 returning {'word': 'const', 'bufnr': 1, 'col': 0...'const', 'colnr': 6, 'changedtick': 25}
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, {'word': 'const', 'bufnr': 1,...const', 'colnr': 6, 'changedtick': 25}]
calling coc#api#call('call_function', ['coc#util#get_content', [1]])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 13('coc#util#get_content', [1])
line 1: return call(a:method, a:args)
calling coc#util#get_content(1)
line 1: if !bufloaded(a:bufnr) | return '' | endif
line 1: return '' | endif
line 1: endif
line 2: return { 'content': join(getbufline(a:bufnr, 1, '$'), "\n"), 'changedtick': getbufvar(a:bufnr, 'changedtick') }
coc#util#get_content returning {'changedtick': 25, 'content': 'const'}
continuing in 13
13 returning {'changedtick': 25, 'content': 'const'}
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, {'changedtick': 25, 'content': 'const'}]
calling coc#api#notify('command', ['noa set completeopt=noselect,menuone'])
line 1: call call(s:funcs[a:method], a:args)
calling 15('noa set completeopt=noselect,menuone')
line 1: " command that could cause cursor vanish
line 2: if a:command =~# '^echo' || a:command =~# '^redraw' || a:command =~# '^sign place'
line 3: call timer_start(0, {-> s:execute(a:command)})
line 4: else
line 5: execute a:command
line 5: noa set completeopt=noselect,menuone
line 6: endif
15 returning #0
continuing in coc#api#notify
coc#api#notify returning #0
calling coc#api#notify('call_function', ['coc#_do_complete', [0, [{'word': 'co...r': 'msContentScript', 'dup': 1}], -1]])
line 1: call call(s:funcs[a:method], a:args)
calling 13('coc#_do_complete', [0, [{'word': 'const', 'equal': 1, 'us...br': 'msContentScript', 'dup': 1}], -1])
line 1: return call(a:method, a:args)
calling coc#_do_complete(0, [{'word': 'const', 'equal': 1, 'user_d..., 'abbr': 'msContentScript', 'dup': 1}], -1)
line 1: let g:coc#_context = { 'start': a:start, 'candidates': a:items, 'preselect': a:preselect}
line 6: if mode() =~# 'i' && &paste != 1
line 7: call feedkeys("\<Plug>CocRefresh", 'i')
line 8: endif
coc#_do_complete returning #0
continuing in 13
13 returning #0
continuing in coc#api#notify
coc#api#notify returning #0
calling coc#_complete()
line 1: let items = get(g:coc#_context, 'candidates', [])
line 2: let preselect = get(g:coc#_context, 'preselect', -1)
line 3: call complete( g:coc#_context.start + 1, items)
match 1 of 5
match 1 of 5
line 3: if exists('g:loaded_matchparen')|3match none|endif
line 3: 3match none|endif
line 3: endif
Executing CompleteChanged Autocommands for "*"
autocommand call s:Autocmd('MenuPopupChanged', get(v:, 'event', {}), win_screenpos(winnr())[0] + winline() - 2)
Executing: call s:Autocmd('MenuPopupChanged', get(v:, 'event', {}), win_screenpos(winnr())[0] + winline() - 2)
calling <SNR>46_Autocmd('MenuPopupChanged', {'col': 4, 'row': 2, 'scrollbar': v:fa...}, 'width': 29, 'height': 5, 'size': 5}, 1)
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['MenuPopupChanged', {'col': 4, 'row':...width': 29, 'height': 5, 'size': 5}, 1])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['MenuPopupChanged', {'col': 4, 'row':...width': 29, 'height': 5, 'size': 5}, 1])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in CompleteChanged Autocommands for "*"
line 6: if s:select_api && len(items) && preselect != -1
line 7: call nvim_select_popupmenu_item(preselect, v:false, v:false, {})
line 8: endif
line 9: return ''
coc#_complete returning ''
Executing TextChangedP Autocommands for "*"
autocommand call s:Autocmd('TextChangedP', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
Executing: call s:Autocmd('TextChangedP', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
calling <SNR>46_Autocmd('TextChangedP', 1, {'lnum': 1, 'col': 6, 'changedtick': 25, 'pre': 'const'})
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['TextChangedP', 1, {'lnum': 1, 'col': 6, 'changedtick': 25, 'pre': 'const'}])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['TextChangedP', 1, {'lnum': 1, 'col': 6, 'changedtick': 25, 'pre': 'const'}])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in TextChangedP Autocommands for "*"
Executing CompleteDone Autocommands for "*"
autocommand call s:Autocmd('CompleteDone', get(v:, 'completed_item', {}))
Executing: call s:Autocmd('CompleteDone', get(v:, 'completed_item', {}))
calling <SNR>46_Autocmd('CompleteDone', {})
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['CompleteDone', {}])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['CompleteDone', {}])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in CompleteDone Autocommands for "*"
Executing InsertCharPre Autocommands for "*"
autocommand call s:Autocmd('InsertCharPre', v:char)
Executing: call s:Autocmd('InsertCharPre', v:char)
calling <SNR>46_Autocmd('InsertCharPre', ' ')
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['InsertCharPre', ' '])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['InsertCharPre', ' '])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in InsertCharPre Autocommands for "*"
calling lightline#tabline()
line 1: if !has_key(s:highlight, 'tabline')
line 2: call lightline#highlight('tabline')
line 3: endif
line 4: if s:lightline.tabline_configured || s:tabnr != tabpagenr() || s:tabcnt != tabpagenr('$')
line 5: let s:tabnr = tabpagenr()
line 6: let s:tabcnt = tabpagenr('$')
line 7: let s:tabline = s:line(1, 0)
calling <SNR>152_line(1, 0)
line 1: let _ = a:tabline ? '' : '%{lightline#link()}'
line 2: if s:lightline.palette == {}
line 3: call lightline#colorscheme()
line 4: endif
line 5: let [l, r] = a:tabline ? [s:lightline.tab_llen, s:lightline.tab_rlen] : [s:lightline.llen, s:lightline.rlen]
line 6: let [p, s] = a:tabline ? [s:lightline.tabline_separator, s:lightline.tabline_subseparator] : [s:lightline.separator, s:lightline.subseparator]
line 7: let [c, f, t, w] = [s:lightline.component, s:lightline.component_function, s:lightline.component_type, s:lightline.component_raw]
line 8: let mode = a:tabline ? 'tabline' : a:inactive ? 'inactive' : 'active'
line 9: let l_ = has_key(s:lightline, mode) ? s:lightline[mode].left : s:lightline.active.left
line 10: let [lt, lc, ll] = s:expand(copy(l_))
calling <SNR>152_expand([['buffers']])
line 1: let components = []
line 2: let expanded = []
line 3: let indices = []
line 4: let prevtype = ''
line 5: let previndex = -1
line 6: let xs = s:flatten_twice(s:map(deepcopy(a:components), 'map(v:val, "s:convert(v:val, ''" . v:key . "'')")'))
calling <SNR>152_convert('buffers', '0')
line 1: if has_key(s:lightline.component_expand, a:name)
line 2: let type = get(s:lightline.component_type, a:name, a:index)
line 3: let is_raw = get(s:lightline.component_raw, a:name) || type ==# 'raw'
line 4: return filter(s:map(s:evaluate_expand(s:lightline.component_expand[a:name]), '[v:val, 1 + ' . is_raw . ', v:key == 1 && ' . (type !=# 'raw') . ' ? "' . type . '" : "' . a:index . '", "' . a:index . '"]'), 'v:val[0] != []')
calling <SNR>152_evaluate_expand('lightline#bufferline#buffers')
line 1: try
line 2: let result = eval(a:component . '()')
calling lightline#bufferline#buffers()
line 1: let l:buffers = s:filtered_buffers()
calling <SNR>26_filtered_buffers()
line 1: let l:buffers = filter(range(1, bufnr('$')), 's:filter_buffer(v:val)')
calling <SNR>26_filter_buffer(1)
line 1: return bufexists(a:i) && buflisted(a:i) && !(getbufvar(a:i, '&filetype') ==# 'qf')
<SNR>26_filter_buffer returning #1
continuing in <SNR>26_filtered_buffers
line 2: if s:reverse_buffers == 1
line 3: let l:buffers = reverse(l:buffers)
line 4: endif
line 5: return l:buffers
<SNR>26_filtered_buffers returning [1]
continuing in lightline#bufferline#buffers
line 2: let l:current_index = index(l:buffers, bufnr('%'))
line 3: if l:current_index == -1
line 4: return [s:get_buffer_names(l:buffers, 0, len(l:buffers))[0], [], []]
line 5: endif
line 6: let l:before = s:get_buffer_names(l:buffers, 0, l:current_index)
calling <SNR>26_get_buffer_names([1], 0, 0)
line 1: let l:names = []
line 2: let l:lengths = []
line 3: for l:i in range(a:from, a:to - 1)
line 4: let [l:name, l:len] = s:get_buffer_name(l:i, a:buffers[l:i])
line 5: call add(l:names, l:name)
line 6: call add(l:lengths, l:len + 4)
line 7: endfor
line 8: return [l:names, l:lengths]
<SNR>26_get_buffer_names returning [[], []]
continuing in lightline#bufferline#buffers
line 7: let l:current = s:get_buffer_names(l:buffers, l:current_index, l:current_index + 1)
calling <SNR>26_get_buffer_names([1], 0, 1)
line 1: let l:names = []
line 2: let l:lengths = []
line 3: for l:i in range(a:from, a:to - 1)
line 4: let [l:name, l:len] = s:get_buffer_name(l:i, a:buffers[l:i])
calling <SNR>26_get_buffer_name(0, 1)
line 1: let l:name = bufname(a:buffer)
line 2: if l:name ==# ''
line 3: let l:name = s:unnamed
line 4: else
line 5: let l:name = fnamemodify(l:name, s:filename_modifier)
line 6: if s:shorten_path
line 7: let l:name = pathshorten(l:name)
line 8: endif
line 9: endif
line 10: if s:enable_devicons == 1 && exists('*WebDevIconsGetFileTypeSymbol')
line 11: let l:name = WebDevIconsGetFileTypeSymbol(fnamemodify(bufname(a:buffer), ':t')) . ' ' . l:name
line 12: endif
line 13: if s:is_read_only(a:buffer)
calling <SNR>26_is_read_only(1)
line 1: let l:modifiable = getbufvar(a:buffer, '&modifiable')
line 2: let l:readonly = getbufvar(a:buffer, '&readonly')
line 3: return (l:readonly || !l:modifiable) && getbufvar(a:buffer, '&filetype') !=# 'help'
<SNR>26_is_read_only returning #0
continuing in <SNR>26_get_buffer_name
line 14: let l:name .= s:read_only
line 15: endif
line 16: if getbufvar(a:buffer, '&mod')
line 17: let l:name .= s:modified
line 18: endif
line 19: if s:show_number == 1
line 20: let l:name = a:buffer . s:number_separator . l:name
line 21: elseif s:show_number == 2
line 22: let l:name = s:get_from_number_map(a:i + 1). s:number_separator . l:name
line 23: elseif s:show_number == 3
line 24: let l:name = a:buffer . s:ordinal_separator . s:get_from_number_map(a:i + 1) . s:number_separator . l:name
line 25: elseif s:show_number == 4
line 26: let l:name = s:get_from_number_map(a:i + 1) . s:ordinal_separator . a:buffer . s:number_separator . l:name
line 27: endif
line 28: let l:len = len(l:name)
line 29: let l:name = substitute(l:name, '%', '%%', 'g')
line 30: if s:component_is_raw
line 31: let l:name = ' ' . l:name . ' '
line 32: endif
line 33: if s:clickable
line 34: return ['%' . string(a:i) . '@lightline#bufferline#_click_handler@' . l:name . '%X', l:len]
line 35: else
line 36: return [l:name, l:len]
<SNR>26_get_buffer_name returning [' index.tsx + ', 11]
continuing in <SNR>26_get_buffer_names
line 5: call add(l:names, l:name)
line 6: call add(l:lengths, l:len + 4)
line 7: endfor
line 3: for l:i in range(a:from, a:to - 1)
line 4: let [l:name, l:len] = s:get_buffer_name(l:i, a:buffers[l:i])
line 5: call add(l:names, l:name)
line 6: call add(l:lengths, l:len + 4)
line 7: endfor
line 8: return [l:names, l:lengths]
<SNR>26_get_buffer_names returning [[' index.tsx + '], [15]]
continuing in lightline#bufferline#buffers
line 8: let l:after = s:get_buffer_names(l:buffers, l:current_index + 1, len(l:buffers))
calling <SNR>26_get_buffer_names([1], 1, 1)
line 1: let l:names = []
line 2: let l:lengths = []
line 3: for l:i in range(a:from, a:to - 1)
line 4: let [l:name, l:len] = s:get_buffer_name(l:i, a:buffers[l:i])
line 5: call add(l:names, l:name)
line 6: call add(l:lengths, l:len + 4)
line 7: endfor
line 8: return [l:names, l:lengths]
<SNR>26_get_buffer_names returning [[], []]
continuing in lightline#bufferline#buffers
line 9: if s:right_aligned == 1
line 10: return s:select_buffers(l:after, l:current, l:before)
line 11: else
line 12: return s:select_buffers(l:before, l:current, l:after)
calling <SNR>26_select_buffers([[], []], [[' index.tsx + '], [15]], [[], []])
line 1: let [l:before_names, l:current_names, l:after_names] = [a:before[0], a:current[0], a:after[0]]
line 2: let [l:before_lengths, l:current_lengths, l:after_lengths] = [a:before[1], a:current[1], a:after[1]]
line 3:
line 4: " The current buffer is always displayed
line 5: let l:width = &columns - l:current_lengths[:0][0]
line 6:
line 7: " Display all buffers if there is enough space to display them
line 8: if s:sum(l:before_lengths) + s:sum(l:after_lengths) <= l:width
calling <SNR>26_sum([])
line 1: let l:sum = 0
line 2: for l:value in a:list
line 3: let l:sum += l:value
line 4: endfor
line 5: return l:sum
<SNR>26_sum returning #0
continuing in <SNR>26_select_buffers
calling <SNR>26_sum([])
line 1: let l:sum = 0
line 2: for l:value in a:list
line 3: let l:sum += l:value
line 4: endfor
line 5: return l:sum
<SNR>26_sum returning #0
continuing in <SNR>26_select_buffers
line 9: return [l:before_names, l:current_names, l:after_names]
<SNR>26_select_buffers returning [[], [' index.tsx + '], []]
continuing in lightline#bufferline#buffers
lightline#bufferline#buffers returning [[], [' index.tsx + '], []]
continuing in <SNR>152_evaluate_expand
line 3: if type(result) == 1 && result ==# ''
line 4: return []
line 5: endif
line 6: catch
line 7: return []
line 8: endtry
line 9: return map(type(result) == 3 ? (result + [[], [], []])[:2] : [[], [result], []], 'filter(s:normalize(v:val), "v:val !=# ''''")')
calling <SNR>152_normalize([])
line 1: if type(a:result) == 3
line 2: return map(a:result, 'type(v:val) == 1 ? v:val : string(v:val)')
<SNR>152_normalize returning []
continuing in <SNR>152_evaluate_expand
calling <SNR>152_normalize([' index.tsx + '])
line 1: if type(a:result) == 3
line 2: return map(a:result, 'type(v:val) == 1 ? v:val : string(v:val)')
<SNR>152_normalize returning [' index.tsx + ']
continuing in <SNR>152_evaluate_expand
calling <SNR>152_normalize([])
line 1: if type(a:result) == 3
line 2: return map(a:result, 'type(v:val) == 1 ? v:val : string(v:val)')
<SNR>152_normalize returning []
continuing in <SNR>152_evaluate_expand
<SNR>152_evaluate_expand returning [[], [' index.tsx + '], []]
continuing in <SNR>152_convert
<SNR>152_convert returning [[[' index.tsx + '], 2, 'tabsel', '0']]
continuing in <SNR>152_expand
calling <SNR>152_flatten_twice([[[[[' index.tsx + '], 2, 'tabsel', '0']]]])
line 1: let ys = []
line 2: for xs in a:xss
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 6: endfor
line 2: for xs in a:xss
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 6: endfor
line 7: return ys
<SNR>152_flatten_twice returning [[[' index.tsx + '], 2, 'tabsel', '0']]
continuing in <SNR>152_expand
line 7: for [component, expand, type, index] in xs
line 8: if prevtype !=# type
line 9: for i in range(previndex + 1, max([previndex, index - 1]))
line 10: call add(indices, string(i))
line 11: call add(components, [])
line 12: call add(expanded, [])
line 13: endfor
line 14: call add(indices, type)
line 15: call add(components, [])
line 16: call add(expanded, [])
line 17: endif
line 18: call extend(components[-1], component)
line 19: call extend(expanded[-1], repeat([expand], len(component)))
line 20: let prevtype = type
line 21: let previndex = index
line 22: endfor
line 7: for [component, expand, type, index] in xs
line 8: if prevtype !=# type
line 9: for i in range(previndex + 1, max([previndex, index - 1]))
line 10: call add(indices, string(i))
line 11: call add(components, [])
line 12: call add(expanded, [])
line 13: endfor
line 14: call add(indices, type)
line 15: call add(components, [])
line 16: call add(expanded, [])
line 17: endif
line 18: call extend(components[-1], component)
line 19: call extend(expanded[-1], repeat([expand], len(component)))
line 20: let prevtype = type
line 21: let previndex = index
line 22: endfor
line 23: for i in range(previndex + 1, max([previndex, len(a:components) - 1]))
line 24: call add(indices, string(i))
line 25: call add(components, [])
line 26: call add(expanded, [])
line 27: endfor
line 28: call add(indices, string(len(a:components)))
line 29: return [components, expanded, indices]
<SNR>152_expand returning [[[' index.tsx + ']], [[2]], ['tabsel', '1']]
continuing in <SNR>152_line
line 11: let r_ = has_key(s:lightline, mode) ? s:lightline[mode].right : s:lightline.active.right
line 12: let [rt, rc, rl] = s:expand(copy(r_))
calling <SNR>152_expand([[]])
line 1: let components = []
line 2: let expanded = []
line 3: let indices = []
line 4: let prevtype = ''
line 5: let previndex = -1
line 6: let xs = s:flatten_twice(s:map(deepcopy(a:components), 'map(v:val, "s:convert(v:val, ''" . v:key . "'')")'))
calling <SNR>152_flatten_twice([[]])
line 1: let ys = []
line 2: for xs in a:xss
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 6: endfor
line 2: for xs in a:xss
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 6: endfor
line 7: return ys
<SNR>152_flatten_twice returning []
continuing in <SNR>152_expand
line 7: for [component, expand, type, index] in xs
line 8: if prevtype !=# type
line 9: for i in range(previndex + 1, max([previndex, index - 1]))
line 10: call add(indices, string(i))
line 11: call add(components, [])
line 12: call add(expanded, [])
line 13: endfor
line 14: call add(indices, type)
line 15: call add(components, [])
line 16: call add(expanded, [])
line 17: endif
line 18: call extend(components[-1], component)
line 19: call extend(expanded[-1], repeat([expand], len(component)))
line 20: let prevtype = type
line 21: let previndex = index
line 22: endfor
line 23: for i in range(previndex + 1, max([previndex, len(a:components) - 1]))
line 24: call add(indices, string(i))
line 25: call add(components, [])
line 26: call add(expanded, [])
line 27: endfor
line 23: for i in range(previndex + 1, max([previndex, len(a:components) - 1]))
line 24: call add(indices, string(i))
line 25: call add(components, [])
line 26: call add(expanded, [])
line 27: endfor
line 28: call add(indices, string(len(a:components)))
line 29: return [components, expanded, indices]
<SNR>152_expand returning [[[]], [[]], ['0', '1']]
continuing in <SNR>152_line
line 13: for i in range(len(lt))
line 14: let _ .= '%#LightlineLeft_' . mode . '_' . ll[i] . '#'
line 15: for j in range(len(lt[i]))
line 16: let x = lc[i][j] ? lt[i][j] : has_key(f, lt[i][j]) ? (exists('*' . f[lt[i][j]]) ? '%{' . f[lt[i][j]] . '()}' : '%{exists("*' . f[lt[i][j]] . '")?' . f[lt[i][j]] . '():""}') : get(c, lt[i][j], '')
line 17: let _ .= has_key(t, lt[i][j]) && t[lt[i][j]] ==# 'raw' || get(w, lt[i][j]) || lc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 18: if j < len(lt[i]) - 1 && s.left !=# ''
line 19: let _ .= s:subseparator(lt[i][(j):], s.left, lc[i][(j):])
line 20: endif
line 21: endfor
line 15: for j in range(len(lt[i]))
line 16: let x = lc[i][j] ? lt[i][j] : has_key(f, lt[i][j]) ? (exists('*' . f[lt[i][j]]) ? '%{' . f[lt[i][j]] . '()}' : '%{exists("*' . f[lt[i][j]] . '")?' . f[lt[i][j]] . '():""}') : get(c, lt[i][j], '')
line 17: let _ .= has_key(t, lt[i][j]) && t[lt[i][j]] ==# 'raw' || get(w, lt[i][j]) || lc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 18: if j < len(lt[i]) - 1 && s.left !=# ''
line 19: let _ .= s:subseparator(lt[i][(j):], s.left, lc[i][(j):])
line 20: endif
line 21: endfor
line 22: let _ .= '%#LightlineLeft_' . mode . '_' . ll[i] . '_' . ll[i + 1] . '#'
line 23: let _ .= i < l + len(lt) - len(l_) && ll[i] < l || ll[i] != ll[i + 1] ? p.left : len(lt[i]) ? s.left : ''
line 24: endfor
line 13: for i in range(len(lt))
line 14: let _ .= '%#LightlineLeft_' . mode . '_' . ll[i] . '#'
line 15: for j in range(len(lt[i]))
line 16: let x = lc[i][j] ? lt[i][j] : has_key(f, lt[i][j]) ? (exists('*' . f[lt[i][j]]) ? '%{' . f[lt[i][j]] . '()}' : '%{exists("*' . f[lt[i][j]] . '")?' . f[lt[i][j]] . '():""}') : get(c, lt[i][j], '')
line 17: let _ .= has_key(t, lt[i][j]) && t[lt[i][j]] ==# 'raw' || get(w, lt[i][j]) || lc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 18: if j < len(lt[i]) - 1 && s.left !=# ''
line 19: let _ .= s:subseparator(lt[i][(j):], s.left, lc[i][(j):])
line 20: endif
line 21: endfor
line 22: let _ .= '%#LightlineLeft_' . mode . '_' . ll[i] . '_' . ll[i + 1] . '#'
line 23: let _ .= i < l + len(lt) - len(l_) && ll[i] < l || ll[i] != ll[i + 1] ? p.left : len(lt[i]) ? s.left : ''
line 24: endfor
line 25: let _ .= '%#LightlineMiddle_' . mode . '#%='
line 26: for i in range(len(rt) - 1, 0, -1)
line 27: let _ .= '%#LightlineRight_' . mode . '_' . rl[i] . '_' . rl[i + 1] . '#'
line 28: let _ .= i < r + len(rt) - len(r_) && rl[i] < r || rl[i] != rl[i + 1] ? p.right : len(rt[i]) ? s.right : ''
line 29: let _ .= '%#LightlineRight_' . mode . '_' . rl[i] . '#'
line 30: for j in range(len(rt[i]))
line 31: let x = rc[i][j] ? rt[i][j] : has_key(f, rt[i][j]) ? (exists('*' . f[rt[i][j]]) ? '%{' . f[rt[i][j]] . '()}' : '%{exists("*' . f[rt[i][j]] . '")?' . f[rt[i][j]] . '():""}') : get(c, rt[i][j], '')
line 32: let _ .= has_key(t, rt[i][j]) && t[rt[i][j]] ==# 'raw' || get(w, rt[i][j]) || rc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 33: if j < len(rt[i]) - 1 && s.right !=# ''
line 34: let _ .= s:subseparator(rt[i][(j):], s.right, rc[i][(j):])
line 35: endif
line 36: endfor
line 37: endfor
line 26: for i in range(len(rt) - 1, 0, -1)
line 27: let _ .= '%#LightlineRight_' . mode . '_' . rl[i] . '_' . rl[i + 1] . '#'
line 28: let _ .= i < r + len(rt) - len(r_) && rl[i] < r || rl[i] != rl[i + 1] ? p.right : len(rt[i]) ? s.right : ''
line 29: let _ .= '%#LightlineRight_' . mode . '_' . rl[i] . '#'
line 30: for j in range(len(rt[i]))
line 31: let x = rc[i][j] ? rt[i][j] : has_key(f, rt[i][j]) ? (exists('*' . f[rt[i][j]]) ? '%{' . f[rt[i][j]] . '()}' : '%{exists("*' . f[rt[i][j]] . '")?' . f[rt[i][j]] . '():""}') : get(c, rt[i][j], '')
line 32: let _ .= has_key(t, rt[i][j]) && t[rt[i][j]] ==# 'raw' || get(w, rt[i][j]) || rc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 33: if j < len(rt[i]) - 1 && s.right !=# ''
line 34: let _ .= s:subseparator(rt[i][(j):], s.right, rc[i][(j):])
line 35: endif
line 36: endfor
line 37: endfor
line 38: return _
<SNR>152_line returning '%#LightlineLeft_tabline_tabsel# index...abline_0_1#%#LightlineRight_tabline_0#'
continuing in lightline#tabline
line 8: endif
line 9: return s:tabline
lightline#tabline returning '%#LightlineLeft_tabline_tabsel# index...abline_0_1#%#LightlineRight_tabline_0#'
calling lightline#link()
line 1: let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
line 2: if s:mode ==# mode
line 3: return ''
lightline#link returning ''
calling lightline#mode()
line 1: return get(s:lightline.mode_map, mode(), '')
lightline#mode returning 'INSERT'
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling FugitiveHead()
line 1: let dir = FugitiveGitDir(a:0 > 1 ? a:2 : -1)
calling FugitiveGitDir(-1)
line 1: if !a:0 || type(a:1) == type(0) && a:1 < 0
line 2: if exists('g:fugitive_event')
line 3: return g:fugitive_event
line 4: endif
line 5: let dir = get(b:, 'git_dir', '')
line 6: if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|prompt\)$')
line 7: return FugitiveExtractGitDir(getcwd())
line 8: endif
line 9: return dir
FugitiveGitDir returning ''
continuing in FugitiveHead
line 2: if empty(dir)
line 3: return ''
FugitiveHead returning ''
Executing CursorMovedI Autocommands for "*"
autocommand call s:Autocmd('CursorMovedI', +expand('<abuf>'), [line('.'), col('.')])
Executing: call s:Autocmd('CursorMovedI', +expand('<abuf>'), [line('.'), col('.')])
calling <SNR>46_Autocmd('CursorMovedI', 1, [1, 7])
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['CursorMovedI', 1, [1, 7]])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['CursorMovedI', 1, [1, 7]])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in CursorMovedI Autocommands for "*"
Executing CursorMovedI Autocommands for "*"
autocommand call s:Highlight_Matching_Pair()
Executing: call s:Highlight_Matching_Pair()
calling <SNR>55_Highlight_Matching_Pair()
line 1: " Remove any previous match.
line 2: call s:Remove_Matches()
calling <SNR>55_Remove_Matches()
line 1: if exists('w:paren_hl_on') && w:paren_hl_on
line 2: silent! call matchdelete(3)
line 3: let w:paren_hl_on = 0
line 4: endif
<SNR>55_Remove_Matches returning #0
continuing in <SNR>55_Highlight_Matching_Pair
line 3:
line 4: " Avoid that we remove the popup menu.
line 5: " Return when there are no colors (looks like the cursor jumps).
line 6: if pumvisible() || (&t_Co < 8 && !has("gui_running"))
line 7: return
line 8: endif
line 9:
line 10: " Get the character under the cursor and check if it's in 'matchpairs'.
line 11: let c_lnum = line('.')
line 12: let c_col = col('.')
line 13: let before = 0
line 14:
line 15: let text = getline(c_lnum)
line 16: let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
line 17: if empty(matches)
line 18: let [c_before, c] = ['', '']
line 19: else
line 20: let [c_before, c] = matches[1:2]
line 21: endif
line 22: let plist = split(&matchpairs, '.\zs[:,]')
line 23: let i = index(plist, c)
line 24: if i < 0
line 25: " not found, in Insert mode try character before the cursor
line 26: if c_col > 1 && (mode() == 'i' || mode() == 'R')
line 27: let before = strlen(c_before)
line 28: let c = c_before
line 29: let i = index(plist, c)
line 30: endif
line 31: if i < 0
line 32: " not found, nothing to do
line 33: return
<SNR>55_Highlight_Matching_Pair returning #0
continuing in CursorMovedI Autocommands for "*"
Executing TextChangedI Autocommands for "*"
autocommand call s:Autocmd('TextChangedI', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
Executing: call s:Autocmd('TextChangedI', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
calling <SNR>46_Autocmd('TextChangedI', 1, {'lnum': 1, 'col': 7, 'changedtick': 26, 'pre': 'const '})
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['TextChangedI', 1, {'lnum': 1, 'col': 7, 'changedtick': 26, 'pre': 'const '}])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['TextChangedI', 1, {'lnum': 1, 'col': 7, 'changedtick': 26, 'pre': 'const '}])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in TextChangedI Autocommands for "*"
Executing TextChangedI Autocommands for "*"
autocommand call s:Highlight_Matching_Pair()
Executing: call s:Highlight_Matching_Pair()
calling <SNR>55_Highlight_Matching_Pair()
line 1: " Remove any previous match.
line 2: call s:Remove_Matches()
calling <SNR>55_Remove_Matches()
line 1: if exists('w:paren_hl_on') && w:paren_hl_on
line 2: silent! call matchdelete(3)
line 3: let w:paren_hl_on = 0
line 4: endif
<SNR>55_Remove_Matches returning #0
continuing in <SNR>55_Highlight_Matching_Pair
line 3:
line 4: " Avoid that we remove the popup menu.
line 5: " Return when there are no colors (looks like the cursor jumps).
line 6: if pumvisible() || (&t_Co < 8 && !has("gui_running"))
line 7: return
line 8: endif
line 9:
line 10: " Get the character under the cursor and check if it's in 'matchpairs'.
line 11: let c_lnum = line('.')
line 12: let c_col = col('.')
line 13: let before = 0
line 14:
line 15: let text = getline(c_lnum)
line 16: let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
line 17: if empty(matches)
line 18: let [c_before, c] = ['', '']
line 19: else
line 20: let [c_before, c] = matches[1:2]
line 21: endif
line 22: let plist = split(&matchpairs, '.\zs[:,]')
line 23: let i = index(plist, c)
line 24: if i < 0
line 25: " not found, in Insert mode try character before the cursor
line 26: if c_col > 1 && (mode() == 'i' || mode() == 'R')
line 27: let before = strlen(c_before)
line 28: let c = c_before
line 29: let i = index(plist, c)
line 30: endif
line 31: if i < 0
line 32: " not found, nothing to do
line 33: return
<SNR>55_Highlight_Matching_Pair returning #0
continuing in TextChangedI Autocommands for "*"
calling lightline#link()
line 1: let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
line 2: if s:mode ==# mode
line 3: return ''
lightline#link returning ''
calling lightline#mode()
line 1: return get(s:lightline.mode_map, mode(), '')
lightline#mode returning 'INSERT'
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling FugitiveHead()
line 1: let dir = FugitiveGitDir(a:0 > 1 ? a:2 : -1)
calling FugitiveGitDir(-1)
line 1: if !a:0 || type(a:1) == type(0) && a:1 < 0
line 2: if exists('g:fugitive_event')
line 3: return g:fugitive_event
line 4: endif
line 5: let dir = get(b:, 'git_dir', '')
line 6: if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|prompt\)$')
line 7: return FugitiveExtractGitDir(getcwd())
line 8: endif
line 9: return dir
FugitiveGitDir returning ''
continuing in FugitiveHead
line 2: if empty(dir)
line 3: return ''
FugitiveHead returning ''
calling coc#api#notify('call_atomic', [[['nvim_command', ['noa set completeo...im_call_function', ['coc#_hide', []]]]])
line 1: call call(s:funcs[a:method], a:args)
calling 9([['nvim_command', ['noa set completeop...vim_call_function', ['coc#_hide', []]]])
line 1: let res = []
line 2: for [key, arglist] in a:calls
line 3: let name = key[5:]
line 4: try
line 5: call add(res, call(s:funcs[name], arglist))
calling 15('noa set completeopt=menuone,preview')
line 1: " command that could cause cursor vanish
line 2: if a:command =~# '^echo' || a:command =~# '^redraw' || a:command =~# '^sign place'
line 3: call timer_start(0, {-> s:execute(a:command)})
line 4: else
line 5: execute a:command
line 5: noa set completeopt=menuone,preview
line 6: endif
15 returning #0
continuing in 9
line 6: catch /.*/
line 7: return [res, v:exception]
line 8: endtry
line 9: endfor
line 2: for [key, arglist] in a:calls
line 3: let name = key[5:]
line 4: try
line 5: call add(res, call(s:funcs[name], arglist))
calling 15('let g:coc#_context[''candidates''] = []')
line 1: " command that could cause cursor vanish
line 2: if a:command =~# '^echo' || a:command =~# '^redraw' || a:command =~# '^sign place'
line 3: call timer_start(0, {-> s:execute(a:command)})
line 4: else
line 5: execute a:command
line 5: let g:coc#_context['candidates'] = []
line 6: endif
15 returning #0
continuing in 9
line 6: catch /.*/
line 7: return [res, v:exception]
line 8: endtry
line 9: endfor
line 2: for [key, arglist] in a:calls
line 3: let name = key[5:]
line 4: try
line 5: call add(res, call(s:funcs[name], arglist))
calling 13('coc#_hide', [])
line 1: return call(a:method, a:args)
calling coc#_hide()
line 1: if !pumvisible() | return | endif
line 1: return | endif
coc#_hide returning #0
continuing in 13
13 returning #0
continuing in 9
line 6: catch /.*/
line 7: return [res, v:exception]
line 8: endtry
line 9: endfor
line 2: for [key, arglist] in a:calls
line 3: let name = key[5:]
line 4: try
line 5: call add(res, call(s:funcs[name], arglist))
line 6: catch /.*/
line 7: return [res, v:exception]
line 8: endtry
line 9: endfor
line 10: return [res, v:null]
9 returning [[0, 0, 0], v:null]
continuing in coc#api#notify
coc#api#notify returning #0
calling coc#api#call('eval', ['[coc#util#cursor(), getline(".")]'])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 16('[coc#util#cursor(), getline(".")]')
line 1: return eval(a:expr)
calling coc#util#cursor()
line 1: let pos = getcurpos()
line 2: let content = pos[2] == 1 ? '' : getline('.')[0: pos[2] - 2]
line 3: return [pos[1] - 1, strchars(content)]
coc#util#cursor returning [0, 6]
continuing in 16
16 returning [[0, 6], 'const ']
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, [[0, 6], 'const ']]
calling coc#api#call('call_function', ['coc#util#get_content', [1]])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 13('coc#util#get_content', [1])
line 1: return call(a:method, a:args)
calling coc#util#get_content(1)
line 1: if !bufloaded(a:bufnr) | return '' | endif
line 1: return '' | endif
line 1: endif
line 2: return { 'content': join(getbufline(a:bufnr, 1, '$'), "\n"), 'changedtick': getbufvar(a:bufnr, 'changedtick') }
coc#util#get_content returning {'changedtick': 26, 'content': 'const '}
continuing in 13
13 returning {'changedtick': 26, 'content': 'const '}
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, {'changedtick': 26, 'content': 'const '}]
Executing CursorHoldI Autocommands for "*"
autocommand call s:Autocmd('CursorHoldI', +expand('<abuf>'))
Executing: call s:Autocmd('CursorHoldI', +expand('<abuf>'))
calling <SNR>46_Autocmd('CursorHoldI', 1)
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['CursorHoldI', 1])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['CursorHoldI', 1])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in CursorHoldI Autocommands for "*"
calling lightline#link()
line 1: let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
line 2: if s:mode ==# mode
line 3: return ''
lightline#link returning ''
calling lightline#mode()
line 1: return get(s:lightline.mode_map, mode(), '')
lightline#mode returning 'INSERT'
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling FugitiveHead()
line 1: let dir = FugitiveGitDir(a:0 > 1 ? a:2 : -1)
calling FugitiveGitDir(-1)
line 1: if !a:0 || type(a:1) == type(0) && a:1 < 0
line 2: if exists('g:fugitive_event')
line 3: return g:fugitive_event
line 4: endif
line 5: let dir = get(b:, 'git_dir', '')
line 6: if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|prompt\)$')
line 7: return FugitiveExtractGitDir(getcwd())
line 8: endif
line 9: return dir
FugitiveGitDir returning ''
continuing in FugitiveHead
line 2: if empty(dir)
line 3: return ''
FugitiveHead returning ''
Executing InsertCharPre Autocommands for "*"
autocommand call s:Autocmd('InsertCharPre', v:char)
Executing: call s:Autocmd('InsertCharPre', v:char)
calling <SNR>46_Autocmd('InsertCharPre', 'f')
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['InsertCharPre', 'f'])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['InsertCharPre', 'f'])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in InsertCharPre Autocommands for "*"
Executing CursorMovedI Autocommands for "*"
autocommand call s:Autocmd('CursorMovedI', +expand('<abuf>'), [line('.'), col('.')])
Executing: call s:Autocmd('CursorMovedI', +expand('<abuf>'), [line('.'), col('.')])
calling <SNR>46_Autocmd('CursorMovedI', 1, [1, 8])
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['CursorMovedI', 1, [1, 8]])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['CursorMovedI', 1, [1, 8]])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in CursorMovedI Autocommands for "*"
Executing CursorMovedI Autocommands for "*"
autocommand call s:Highlight_Matching_Pair()
Executing: call s:Highlight_Matching_Pair()
calling <SNR>55_Highlight_Matching_Pair()
line 1: " Remove any previous match.
line 2: call s:Remove_Matches()
calling <SNR>55_Remove_Matches()
line 1: if exists('w:paren_hl_on') && w:paren_hl_on
line 2: silent! call matchdelete(3)
line 3: let w:paren_hl_on = 0
line 4: endif
<SNR>55_Remove_Matches returning #0
continuing in <SNR>55_Highlight_Matching_Pair
line 3:
line 4: " Avoid that we remove the popup menu.
line 5: " Return when there are no colors (looks like the cursor jumps).
line 6: if pumvisible() || (&t_Co < 8 && !has("gui_running"))
line 7: return
line 8: endif
line 9:
line 10: " Get the character under the cursor and check if it's in 'matchpairs'.
line 11: let c_lnum = line('.')
line 12: let c_col = col('.')
line 13: let before = 0
line 14:
line 15: let text = getline(c_lnum)
line 16: let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
line 17: if empty(matches)
line 18: let [c_before, c] = ['', '']
line 19: else
line 20: let [c_before, c] = matches[1:2]
line 21: endif
line 22: let plist = split(&matchpairs, '.\zs[:,]')
line 23: let i = index(plist, c)
line 24: if i < 0
line 25: " not found, in Insert mode try character before the cursor
line 26: if c_col > 1 && (mode() == 'i' || mode() == 'R')
line 27: let before = strlen(c_before)
line 28: let c = c_before
line 29: let i = index(plist, c)
line 30: endif
line 31: if i < 0
line 32: " not found, nothing to do
line 33: return
<SNR>55_Highlight_Matching_Pair returning #0
continuing in CursorMovedI Autocommands for "*"
Executing TextChangedI Autocommands for "*"
autocommand call s:Autocmd('TextChangedI', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
Executing: call s:Autocmd('TextChangedI', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
calling <SNR>46_Autocmd('TextChangedI', 1, {'lnum': 1, 'col': 8, 'changedtick': 27, 'pre': 'const f'})
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['TextChangedI', 1, {'lnum': 1, 'col': 8, 'changedtick': 27, 'pre': 'const f'}])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['TextChangedI', 1, {'lnum': 1, 'col': 8, 'changedtick': 27, 'pre': 'const f'}])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in TextChangedI Autocommands for "*"
Executing TextChangedI Autocommands for "*"
autocommand call s:Highlight_Matching_Pair()
Executing: call s:Highlight_Matching_Pair()
calling <SNR>55_Highlight_Matching_Pair()
line 1: " Remove any previous match.
line 2: call s:Remove_Matches()
calling <SNR>55_Remove_Matches()
line 1: if exists('w:paren_hl_on') && w:paren_hl_on
line 2: silent! call matchdelete(3)
line 3: let w:paren_hl_on = 0
line 4: endif
<SNR>55_Remove_Matches returning #0
continuing in <SNR>55_Highlight_Matching_Pair
line 3:
line 4: " Avoid that we remove the popup menu.
line 5: " Return when there are no colors (looks like the cursor jumps).
line 6: if pumvisible() || (&t_Co < 8 && !has("gui_running"))
line 7: return
line 8: endif
line 9:
line 10: " Get the character under the cursor and check if it's in 'matchpairs'.
line 11: let c_lnum = line('.')
line 12: let c_col = col('.')
line 13: let before = 0
line 14:
line 15: let text = getline(c_lnum)
line 16: let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
line 17: if empty(matches)
line 18: let [c_before, c] = ['', '']
line 19: else
line 20: let [c_before, c] = matches[1:2]
line 21: endif
line 22: let plist = split(&matchpairs, '.\zs[:,]')
line 23: let i = index(plist, c)
line 24: if i < 0
line 25: " not found, in Insert mode try character before the cursor
line 26: if c_col > 1 && (mode() == 'i' || mode() == 'R')
line 27: let before = strlen(c_before)
line 28: let c = c_before
line 29: let i = index(plist, c)
line 30: endif
line 31: if i < 0
line 32: " not found, nothing to do
line 33: return
<SNR>55_Highlight_Matching_Pair returning #0
continuing in TextChangedI Autocommands for "*"
calling lightline#link()
line 1: let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
line 2: if s:mode ==# mode
line 3: return ''
lightline#link returning ''
calling lightline#mode()
line 1: return get(s:lightline.mode_map, mode(), '')
lightline#mode returning 'INSERT'
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling FugitiveHead()
line 1: let dir = FugitiveGitDir(a:0 > 1 ? a:2 : -1)
calling FugitiveGitDir(-1)
line 1: if !a:0 || type(a:1) == type(0) && a:1 < 0
line 2: if exists('g:fugitive_event')
line 3: return g:fugitive_event
line 4: endif
line 5: let dir = get(b:, 'git_dir', '')
line 6: if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|prompt\)$')
line 7: return FugitiveExtractGitDir(getcwd())
line 8: endif
line 9: return dir
FugitiveGitDir returning ''
continuing in FugitiveHead
line 2: if empty(dir)
line 3: return ''
FugitiveHead returning ''
calling coc#api#call('call_function', ['coc#util#get_content', [1]])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 13('coc#util#get_content', [1])
line 1: return call(a:method, a:args)
calling coc#util#get_content(1)
line 1: if !bufloaded(a:bufnr) | return '' | endif
line 1: return '' | endif
line 1: endif
line 2: return { 'content': join(getbufline(a:bufnr, 1, '$'), "\n"), 'changedtick': getbufvar(a:bufnr, 'changedtick') }
coc#util#get_content returning {'changedtick': 27, 'content': 'const f'}
continuing in 13
13 returning {'changedtick': 27, 'content': 'const f'}
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, {'changedtick': 27, 'content': 'const f'}]
calling coc#api#call('eval', ['[coc#util#cursor(), getline(".")]'])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 16('[coc#util#cursor(), getline(".")]')
line 1: return eval(a:expr)
calling coc#util#cursor()
line 1: let pos = getcurpos()
line 2: let content = pos[2] == 1 ? '' : getline('.')[0: pos[2] - 2]
line 3: return [pos[1] - 1, strchars(content)]
coc#util#cursor returning [0, 7]
continuing in 16
16 returning [[0, 7], 'const f']
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, [[0, 7], 'const f']]
calling coc#api#call('call_function', ['coc#util#get_complete_option', []])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 13('coc#util#get_complete_option', [])
line 1: return call(a:method, a:args)
calling coc#util#get_complete_option()
line 1: let disabled = get(b:, 'coc_suggest_disable', 0)
line 2: if disabled | return | endif
line 2: return | endif
line 2: endif
line 3: let blacklist = get(b:, 'coc_suggest_blacklist', [])
line 4: let pos = getcurpos()
line 5: let l:start = pos[2] - 1
line 6: let line = getline(pos[1])
line 7: for char in reverse(split(line[0: l:start - 1], '\zs'))
line 8: if l:start > 0 && char =~# '\k'
line 9: let l:start = l:start - strlen(char)
line 10: else
line 11: break
line 12: endif
line 13: endfor
line 7: for char in reverse(split(line[0: l:start - 1], '\zs'))
line 8: if l:start > 0 && char =~# '\k'
line 9: let l:start = l:start - strlen(char)
line 10: else
line 11: break
line 12: endif
line 13: endfor
line 14: let input = pos[2] == 1 ? '' : line[l:start : pos[2] - 2]
line 15: if !empty(blacklist) && index(blacklist, input) >= 0
line 16: return
line 17: endif
line 18: let synname = synIDattr(synID(pos[1], l:start, 1),"name")
line 19: return { 'word': matchstr(line[l:start : ], '^\k\+'), 'input': empty(input) ? '' : input, 'line': line, 'filetype': &filetype, 'filepath': expand('%:p'), 'bufnr': bufnr('%'), 'linenr': pos[1], 'colnr' : pos[2], 'col': l:start, 'synname': synname, 'changedtick': b:changedtick, 'blacklist': blacklist,}
coc#util#get_complete_option returning {'word': 'f', 'bufnr': 1, 'col': 6, 's...t': 'f', 'colnr': 8, 'changedtick': 27}
continuing in 13
13 returning {'word': 'f', 'bufnr': 1, 'col': 6, 's...t': 'f', 'colnr': 8, 'changedtick': 27}
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, {'word': 'f', 'bufnr': 1, 'co...': 'f', 'colnr': 8, 'changedtick': 27}]
calling coc#api#call('call_function', ['coc#util#get_content', [1]])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 13('coc#util#get_content', [1])
line 1: return call(a:method, a:args)
calling coc#util#get_content(1)
line 1: if !bufloaded(a:bufnr) | return '' | endif
line 1: return '' | endif
line 1: endif
line 2: return { 'content': join(getbufline(a:bufnr, 1, '$'), "\n"), 'changedtick': getbufvar(a:bufnr, 'changedtick') }
coc#util#get_content returning {'changedtick': 27, 'content': 'const f'}
continuing in 13
13 returning {'changedtick': 27, 'content': 'const f'}
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, {'changedtick': 27, 'content': 'const f'}]
calling coc#api#notify('command', ['noa set completeopt=noselect,menuone'])
line 1: call call(s:funcs[a:method], a:args)
calling 15('noa set completeopt=noselect,menuone')
line 1: " command that could cause cursor vanish
line 2: if a:command =~# '^echo' || a:command =~# '^redraw' || a:command =~# '^sign place'
line 3: call timer_start(0, {-> s:execute(a:command)})
line 4: else
line 5: execute a:command
line 5: noa set completeopt=noselect,menuone
line 6: endif
15 returning #0
continuing in coc#api#notify
coc#api#notify returning #0
calling coc#api#notify('call_atomic', [[['nvim_command', ['noa set completeo...im_call_function', ['coc#_hide', []]]]])
line 1: call call(s:funcs[a:method], a:args)
calling 9([['nvim_command', ['noa set completeop...vim_call_function', ['coc#_hide', []]]])
line 1: let res = []
line 2: for [key, arglist] in a:calls
line 3: let name = key[5:]
line 4: try
line 5: call add(res, call(s:funcs[name], arglist))
calling 15('noa set completeopt=menuone,preview')
line 1: " command that could cause cursor vanish
line 2: if a:command =~# '^echo' || a:command =~# '^redraw' || a:command =~# '^sign place'
line 3: call timer_start(0, {-> s:execute(a:command)})
line 4: else
line 5: execute a:command
line 5: noa set completeopt=menuone,preview
line 6: endif
15 returning #0
continuing in 9
line 6: catch /.*/
line 7: return [res, v:exception]
line 8: endtry
line 9: endfor
line 2: for [key, arglist] in a:calls
line 3: let name = key[5:]
line 4: try
line 5: call add(res, call(s:funcs[name], arglist))
calling 15('let g:coc#_context[''candidates''] = []')
line 1: " command that could cause cursor vanish
line 2: if a:command =~# '^echo' || a:command =~# '^redraw' || a:command =~# '^sign place'
line 3: call timer_start(0, {-> s:execute(a:command)})
line 4: else
line 5: execute a:command
line 5: let g:coc#_context['candidates'] = []
line 6: endif
15 returning #0
continuing in 9
line 6: catch /.*/
line 7: return [res, v:exception]
line 8: endtry
line 9: endfor
line 2: for [key, arglist] in a:calls
line 3: let name = key[5:]
line 4: try
line 5: call add(res, call(s:funcs[name], arglist))
calling 13('coc#_hide', [])
line 1: return call(a:method, a:args)
calling coc#_hide()
line 1: if !pumvisible() | return | endif
line 1: return | endif
coc#_hide returning #0
continuing in 13
13 returning #0
continuing in 9
line 6: catch /.*/
line 7: return [res, v:exception]
line 8: endtry
line 9: endfor
line 2: for [key, arglist] in a:calls
line 3: let name = key[5:]
line 4: try
line 5: call add(res, call(s:funcs[name], arglist))
line 6: catch /.*/
line 7: return [res, v:exception]
line 8: endtry
line 9: endfor
line 10: return [res, v:null]
9 returning [[0, 0, 0], v:null]
continuing in coc#api#notify
coc#api#notify returning #0
Executing InsertCharPre Autocommands for "*"
autocommand call s:Autocmd('InsertCharPre', v:char)
Executing: call s:Autocmd('InsertCharPre', v:char)
calling <SNR>46_Autocmd('InsertCharPre', 'o')
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['InsertCharPre', 'o'])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['InsertCharPre', 'o'])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in InsertCharPre Autocommands for "*"
Executing CursorMovedI Autocommands for "*"
autocommand call s:Autocmd('CursorMovedI', +expand('<abuf>'), [line('.'), col('.')])
Executing: call s:Autocmd('CursorMovedI', +expand('<abuf>'), [line('.'), col('.')])
calling <SNR>46_Autocmd('CursorMovedI', 1, [1, 9])
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['CursorMovedI', 1, [1, 9]])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['CursorMovedI', 1, [1, 9]])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in CursorMovedI Autocommands for "*"
Executing CursorMovedI Autocommands for "*"
autocommand call s:Highlight_Matching_Pair()
Executing: call s:Highlight_Matching_Pair()
calling <SNR>55_Highlight_Matching_Pair()
line 1: " Remove any previous match.
line 2: call s:Remove_Matches()
calling <SNR>55_Remove_Matches()
line 1: if exists('w:paren_hl_on') && w:paren_hl_on
line 2: silent! call matchdelete(3)
line 3: let w:paren_hl_on = 0
line 4: endif
<SNR>55_Remove_Matches returning #0
continuing in <SNR>55_Highlight_Matching_Pair
line 3:
line 4: " Avoid that we remove the popup menu.
line 5: " Return when there are no colors (looks like the cursor jumps).
line 6: if pumvisible() || (&t_Co < 8 && !has("gui_running"))
line 7: return
line 8: endif
line 9:
line 10: " Get the character under the cursor and check if it's in 'matchpairs'.
line 11: let c_lnum = line('.')
line 12: let c_col = col('.')
line 13: let before = 0
line 14:
line 15: let text = getline(c_lnum)
line 16: let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
line 17: if empty(matches)
line 18: let [c_before, c] = ['', '']
line 19: else
line 20: let [c_before, c] = matches[1:2]
line 21: endif
line 22: let plist = split(&matchpairs, '.\zs[:,]')
line 23: let i = index(plist, c)
line 24: if i < 0
line 25: " not found, in Insert mode try character before the cursor
line 26: if c_col > 1 && (mode() == 'i' || mode() == 'R')
line 27: let before = strlen(c_before)
line 28: let c = c_before
line 29: let i = index(plist, c)
line 30: endif
line 31: if i < 0
line 32: " not found, nothing to do
line 33: return
<SNR>55_Highlight_Matching_Pair returning #0
continuing in CursorMovedI Autocommands for "*"
Executing TextChangedI Autocommands for "*"
autocommand call s:Autocmd('TextChangedI', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
Executing: call s:Autocmd('TextChangedI', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
calling <SNR>46_Autocmd('TextChangedI', 1, {'lnum': 1, 'col': 9, 'changedtick': 28, 'pre': 'const fo'})
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['TextChangedI', 1, {'lnum': 1, 'col': 9, 'changedtick': 28, 'pre': 'const fo'}])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['TextChangedI', 1, {'lnum': 1, 'col': 9, 'changedtick': 28, 'pre': 'const fo'}])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in TextChangedI Autocommands for "*"
Executing TextChangedI Autocommands for "*"
autocommand call s:Highlight_Matching_Pair()
Executing: call s:Highlight_Matching_Pair()
calling <SNR>55_Highlight_Matching_Pair()
line 1: " Remove any previous match.
line 2: call s:Remove_Matches()
calling <SNR>55_Remove_Matches()
line 1: if exists('w:paren_hl_on') && w:paren_hl_on
line 2: silent! call matchdelete(3)
line 3: let w:paren_hl_on = 0
line 4: endif
<SNR>55_Remove_Matches returning #0
continuing in <SNR>55_Highlight_Matching_Pair
line 3:
line 4: " Avoid that we remove the popup menu.
line 5: " Return when there are no colors (looks like the cursor jumps).
line 6: if pumvisible() || (&t_Co < 8 && !has("gui_running"))
line 7: return
line 8: endif
line 9:
line 10: " Get the character under the cursor and check if it's in 'matchpairs'.
line 11: let c_lnum = line('.')
line 12: let c_col = col('.')
line 13: let before = 0
line 14:
line 15: let text = getline(c_lnum)
line 16: let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
line 17: if empty(matches)
line 18: let [c_before, c] = ['', '']
line 19: else
line 20: let [c_before, c] = matches[1:2]
line 21: endif
line 22: let plist = split(&matchpairs, '.\zs[:,]')
line 23: let i = index(plist, c)
line 24: if i < 0
line 25: " not found, in Insert mode try character before the cursor
line 26: if c_col > 1 && (mode() == 'i' || mode() == 'R')
line 27: let before = strlen(c_before)
line 28: let c = c_before
line 29: let i = index(plist, c)
line 30: endif
line 31: if i < 0
line 32: " not found, nothing to do
line 33: return
<SNR>55_Highlight_Matching_Pair returning #0
continuing in TextChangedI Autocommands for "*"
calling lightline#link()
line 1: let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
line 2: if s:mode ==# mode
line 3: return ''
lightline#link returning ''
calling lightline#mode()
line 1: return get(s:lightline.mode_map, mode(), '')
lightline#mode returning 'INSERT'
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling FugitiveHead()
line 1: let dir = FugitiveGitDir(a:0 > 1 ? a:2 : -1)
calling FugitiveGitDir(-1)
line 1: if !a:0 || type(a:1) == type(0) && a:1 < 0
line 2: if exists('g:fugitive_event')
line 3: return g:fugitive_event
line 4: endif
line 5: let dir = get(b:, 'git_dir', '')
line 6: if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|prompt\)$')
line 7: return FugitiveExtractGitDir(getcwd())
line 8: endif
line 9: return dir
FugitiveGitDir returning ''
continuing in FugitiveHead
line 2: if empty(dir)
line 3: return ''
FugitiveHead returning ''
calling coc#api#call('call_function', ['coc#util#get_content', [1]])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 13('coc#util#get_content', [1])
line 1: return call(a:method, a:args)
calling coc#util#get_content(1)
line 1: if !bufloaded(a:bufnr) | return '' | endif
line 1: return '' | endif
line 1: endif
line 2: return { 'content': join(getbufline(a:bufnr, 1, '$'), "\n"), 'changedtick': getbufvar(a:bufnr, 'changedtick') }
coc#util#get_content returning {'changedtick': 28, 'content': 'const fo'}
continuing in 13
13 returning {'changedtick': 28, 'content': 'const fo'}
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, {'changedtick': 28, 'content': 'const fo'}]
calling coc#api#call('eval', ['[coc#util#cursor(), getline(".")]'])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 16('[coc#util#cursor(), getline(".")]')
line 1: return eval(a:expr)
calling coc#util#cursor()
line 1: let pos = getcurpos()
line 2: let content = pos[2] == 1 ? '' : getline('.')[0: pos[2] - 2]
line 3: return [pos[1] - 1, strchars(content)]
coc#util#cursor returning [0, 8]
continuing in 16
16 returning [[0, 8], 'const fo']
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, [[0, 8], 'const fo']]
calling coc#api#call('call_function', ['coc#util#get_complete_option', []])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 13('coc#util#get_complete_option', [])
line 1: return call(a:method, a:args)
calling coc#util#get_complete_option()
line 1: let disabled = get(b:, 'coc_suggest_disable', 0)
line 2: if disabled | return | endif
line 2: return | endif
line 2: endif
line 3: let blacklist = get(b:, 'coc_suggest_blacklist', [])
line 4: let pos = getcurpos()
line 5: let l:start = pos[2] - 1
line 6: let line = getline(pos[1])
line 7: for char in reverse(split(line[0: l:start - 1], '\zs'))
line 8: if l:start > 0 && char =~# '\k'
line 9: let l:start = l:start - strlen(char)
line 10: else
line 11: break
line 12: endif
line 13: endfor
line 7: for char in reverse(split(line[0: l:start - 1], '\zs'))
line 8: if l:start > 0 && char =~# '\k'
line 9: let l:start = l:start - strlen(char)
line 10: else
line 11: break
line 12: endif
line 13: endfor
line 7: for char in reverse(split(line[0: l:start - 1], '\zs'))
line 8: if l:start > 0 && char =~# '\k'
line 9: let l:start = l:start - strlen(char)
line 10: else
line 11: break
line 12: endif
line 13: endfor
line 14: let input = pos[2] == 1 ? '' : line[l:start : pos[2] - 2]
line 15: if !empty(blacklist) && index(blacklist, input) >= 0
line 16: return
line 17: endif
line 18: let synname = synIDattr(synID(pos[1], l:start, 1),"name")
line 19: return { 'word': matchstr(line[l:start : ], '^\k\+'), 'input': empty(input) ? '' : input, 'line': line, 'filetype': &filetype, 'filepath': expand('%:p'), 'bufnr': bufnr('%'), 'linenr': pos[1], 'colnr' : pos[2], 'col': l:start, 'synname': synname, 'changedtick': b:changedtick, 'blacklist': blacklist,}
coc#util#get_complete_option returning {'word': 'fo', 'bufnr': 1, 'col': 6, '...': 'fo', 'colnr': 9, 'changedtick': 28}
continuing in 13
13 returning {'word': 'fo', 'bufnr': 1, 'col': 6, '...': 'fo', 'colnr': 9, 'changedtick': 28}
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, {'word': 'fo', 'bufnr': 1, 'c...: 'fo', 'colnr': 9, 'changedtick': 28}]
calling coc#api#call('call_function', ['coc#util#get_content', [1]])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 13('coc#util#get_content', [1])
line 1: return call(a:method, a:args)
calling coc#util#get_content(1)
line 1: if !bufloaded(a:bufnr) | return '' | endif
line 1: return '' | endif
line 1: endif
line 2: return { 'content': join(getbufline(a:bufnr, 1, '$'), "\n"), 'changedtick': getbufvar(a:bufnr, 'changedtick') }
coc#util#get_content returning {'changedtick': 28, 'content': 'const fo'}
continuing in 13
13 returning {'changedtick': 28, 'content': 'const fo'}
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, {'changedtick': 28, 'content': 'const fo'}]
calling coc#api#notify('command', ['noa set completeopt=noselect,menuone'])
line 1: call call(s:funcs[a:method], a:args)
calling 15('noa set completeopt=noselect,menuone')
line 1: " command that could cause cursor vanish
line 2: if a:command =~# '^echo' || a:command =~# '^redraw' || a:command =~# '^sign place'
line 3: call timer_start(0, {-> s:execute(a:command)})
line 4: else
line 5: execute a:command
line 5: noa set completeopt=noselect,menuone
line 6: endif
15 returning #0
continuing in coc#api#notify
coc#api#notify returning #0
calling coc#api#notify('call_atomic', [[['nvim_command', ['noa set completeo...im_call_function', ['coc#_hide', []]]]])
line 1: call call(s:funcs[a:method], a:args)
calling 9([['nvim_command', ['noa set completeop...vim_call_function', ['coc#_hide', []]]])
line 1: let res = []
line 2: for [key, arglist] in a:calls
line 3: let name = key[5:]
line 4: try
line 5: call add(res, call(s:funcs[name], arglist))
calling 15('noa set completeopt=menuone,preview')
line 1: " command that could cause cursor vanish
line 2: if a:command =~# '^echo' || a:command =~# '^redraw' || a:command =~# '^sign place'
line 3: call timer_start(0, {-> s:execute(a:command)})
line 4: else
line 5: execute a:command
line 5: noa set completeopt=menuone,preview
line 6: endif
15 returning #0
continuing in 9
line 6: catch /.*/
line 7: return [res, v:exception]
line 8: endtry
line 9: endfor
line 2: for [key, arglist] in a:calls
line 3: let name = key[5:]
line 4: try
line 5: call add(res, call(s:funcs[name], arglist))
calling 15('let g:coc#_context[''candidates''] = []')
line 1: " command that could cause cursor vanish
line 2: if a:command =~# '^echo' || a:command =~# '^redraw' || a:command =~# '^sign place'
line 3: call timer_start(0, {-> s:execute(a:command)})
line 4: else
line 5: execute a:command
line 5: let g:coc#_context['candidates'] = []
line 6: endif
15 returning #0
continuing in 9
line 6: catch /.*/
line 7: return [res, v:exception]
line 8: endtry
line 9: endfor
line 2: for [key, arglist] in a:calls
line 3: let name = key[5:]
line 4: try
line 5: call add(res, call(s:funcs[name], arglist))
calling 13('coc#_hide', [])
line 1: return call(a:method, a:args)
calling coc#_hide()
line 1: if !pumvisible() | return | endif
line 1: return | endif
coc#_hide returning #0
continuing in 13
13 returning #0
continuing in 9
line 6: catch /.*/
line 7: return [res, v:exception]
line 8: endtry
line 9: endfor
line 2: for [key, arglist] in a:calls
line 3: let name = key[5:]
line 4: try
line 5: call add(res, call(s:funcs[name], arglist))
line 6: catch /.*/
line 7: return [res, v:exception]
line 8: endtry
line 9: endfor
line 10: return [res, v:null]
9 returning [[0, 0, 0], v:null]
continuing in coc#api#notify
coc#api#notify returning #0
Executing InsertCharPre Autocommands for "*"
autocommand call s:Autocmd('InsertCharPre', v:char)
Executing: call s:Autocmd('InsertCharPre', v:char)
calling <SNR>46_Autocmd('InsertCharPre', 'o')
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['InsertCharPre', 'o'])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['InsertCharPre', 'o'])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in InsertCharPre Autocommands for "*"
Executing CursorMovedI Autocommands for "*"
autocommand call s:Autocmd('CursorMovedI', +expand('<abuf>'), [line('.'), col('.')])
Executing: call s:Autocmd('CursorMovedI', +expand('<abuf>'), [line('.'), col('.')])
calling <SNR>46_Autocmd('CursorMovedI', 1, [1, 10])
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['CursorMovedI', 1, [1, 10]])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['CursorMovedI', 1, [1, 10]])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in CursorMovedI Autocommands for "*"
Executing CursorMovedI Autocommands for "*"
autocommand call s:Highlight_Matching_Pair()
Executing: call s:Highlight_Matching_Pair()
calling <SNR>55_Highlight_Matching_Pair()
line 1: " Remove any previous match.
line 2: call s:Remove_Matches()
calling <SNR>55_Remove_Matches()
line 1: if exists('w:paren_hl_on') && w:paren_hl_on
line 2: silent! call matchdelete(3)
line 3: let w:paren_hl_on = 0
line 4: endif
<SNR>55_Remove_Matches returning #0
continuing in <SNR>55_Highlight_Matching_Pair
line 3:
line 4: " Avoid that we remove the popup menu.
line 5: " Return when there are no colors (looks like the cursor jumps).
line 6: if pumvisible() || (&t_Co < 8 && !has("gui_running"))
line 7: return
line 8: endif
line 9:
line 10: " Get the character under the cursor and check if it's in 'matchpairs'.
line 11: let c_lnum = line('.')
line 12: let c_col = col('.')
line 13: let before = 0
line 14:
line 15: let text = getline(c_lnum)
line 16: let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
line 17: if empty(matches)
line 18: let [c_before, c] = ['', '']
line 19: else
line 20: let [c_before, c] = matches[1:2]
line 21: endif
line 22: let plist = split(&matchpairs, '.\zs[:,]')
line 23: let i = index(plist, c)
line 24: if i < 0
line 25: " not found, in Insert mode try character before the cursor
line 26: if c_col > 1 && (mode() == 'i' || mode() == 'R')
line 27: let before = strlen(c_before)
line 28: let c = c_before
line 29: let i = index(plist, c)
line 30: endif
line 31: if i < 0
line 32: " not found, nothing to do
line 33: return
<SNR>55_Highlight_Matching_Pair returning #0
continuing in CursorMovedI Autocommands for "*"
Executing TextChangedI Autocommands for "*"
autocommand call s:Autocmd('TextChangedI', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
Executing: call s:Autocmd('TextChangedI', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
calling <SNR>46_Autocmd('TextChangedI', 1, {'lnum': 1, 'col': 10, 'changedtick': 29, 'pre': 'const foo'})
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['TextChangedI', 1, {'lnum': 1, 'col':...'changedtick': 29, 'pre': 'const foo'}])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['TextChangedI', 1, {'lnum': 1, 'col':...'changedtick': 29, 'pre': 'const foo'}])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in TextChangedI Autocommands for "*"
Executing TextChangedI Autocommands for "*"
autocommand call s:Highlight_Matching_Pair()
Executing: call s:Highlight_Matching_Pair()
calling <SNR>55_Highlight_Matching_Pair()
line 1: " Remove any previous match.
line 2: call s:Remove_Matches()
calling <SNR>55_Remove_Matches()
line 1: if exists('w:paren_hl_on') && w:paren_hl_on
line 2: silent! call matchdelete(3)
line 3: let w:paren_hl_on = 0
line 4: endif
<SNR>55_Remove_Matches returning #0
continuing in <SNR>55_Highlight_Matching_Pair
line 3:
line 4: " Avoid that we remove the popup menu.
line 5: " Return when there are no colors (looks like the cursor jumps).
line 6: if pumvisible() || (&t_Co < 8 && !has("gui_running"))
line 7: return
line 8: endif
line 9:
line 10: " Get the character under the cursor and check if it's in 'matchpairs'.
line 11: let c_lnum = line('.')
line 12: let c_col = col('.')
line 13: let before = 0
line 14:
line 15: let text = getline(c_lnum)
line 16: let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
line 17: if empty(matches)
line 18: let [c_before, c] = ['', '']
line 19: else
line 20: let [c_before, c] = matches[1:2]
line 21: endif
line 22: let plist = split(&matchpairs, '.\zs[:,]')
line 23: let i = index(plist, c)
line 24: if i < 0
line 25: " not found, in Insert mode try character before the cursor
line 26: if c_col > 1 && (mode() == 'i' || mode() == 'R')
line 27: let before = strlen(c_before)
line 28: let c = c_before
line 29: let i = index(plist, c)
line 30: endif
line 31: if i < 0
line 32: " not found, nothing to do
line 33: return
<SNR>55_Highlight_Matching_Pair returning #0
continuing in TextChangedI Autocommands for "*"
calling lightline#link()
line 1: let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
line 2: if s:mode ==# mode
line 3: return ''
lightline#link returning ''
calling lightline#mode()
line 1: return get(s:lightline.mode_map, mode(), '')
lightline#mode returning 'INSERT'
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling FugitiveHead()
line 1: let dir = FugitiveGitDir(a:0 > 1 ? a:2 : -1)
calling FugitiveGitDir(-1)
line 1: if !a:0 || type(a:1) == type(0) && a:1 < 0
line 2: if exists('g:fugitive_event')
line 3: return g:fugitive_event
line 4: endif
line 5: let dir = get(b:, 'git_dir', '')
line 6: if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|prompt\)$')
line 7: return FugitiveExtractGitDir(getcwd())
line 8: endif
line 9: return dir
FugitiveGitDir returning ''
continuing in FugitiveHead
line 2: if empty(dir)
line 3: return ''
FugitiveHead returning ''
calling coc#api#call('call_function', ['coc#util#get_content', [1]])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 13('coc#util#get_content', [1])
line 1: return call(a:method, a:args)
calling coc#util#get_content(1)
line 1: if !bufloaded(a:bufnr) | return '' | endif
line 1: return '' | endif
line 1: endif
line 2: return { 'content': join(getbufline(a:bufnr, 1, '$'), "\n"), 'changedtick': getbufvar(a:bufnr, 'changedtick') }
coc#util#get_content returning {'changedtick': 29, 'content': 'const foo'}
continuing in 13
13 returning {'changedtick': 29, 'content': 'const foo'}
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, {'changedtick': 29, 'content': 'const foo'}]
calling coc#api#call('eval', ['[coc#util#cursor(), getline(".")]'])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 16('[coc#util#cursor(), getline(".")]')
line 1: return eval(a:expr)
calling coc#util#cursor()
line 1: let pos = getcurpos()
line 2: let content = pos[2] == 1 ? '' : getline('.')[0: pos[2] - 2]
line 3: return [pos[1] - 1, strchars(content)]
coc#util#cursor returning [0, 9]
continuing in 16
16 returning [[0, 9], 'const foo']
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, [[0, 9], 'const foo']]
calling coc#api#call('call_function', ['coc#util#get_complete_option', []])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 13('coc#util#get_complete_option', [])
line 1: return call(a:method, a:args)
calling coc#util#get_complete_option()
line 1: let disabled = get(b:, 'coc_suggest_disable', 0)
line 2: if disabled | return | endif
line 2: return | endif
line 2: endif
line 3: let blacklist = get(b:, 'coc_suggest_blacklist', [])
line 4: let pos = getcurpos()
line 5: let l:start = pos[2] - 1
line 6: let line = getline(pos[1])
line 7: for char in reverse(split(line[0: l:start - 1], '\zs'))
line 8: if l:start > 0 && char =~# '\k'
line 9: let l:start = l:start - strlen(char)
line 10: else
line 11: break
line 12: endif
line 13: endfor
line 7: for char in reverse(split(line[0: l:start - 1], '\zs'))
line 8: if l:start > 0 && char =~# '\k'
line 9: let l:start = l:start - strlen(char)
line 10: else
line 11: break
line 12: endif
line 13: endfor
line 7: for char in reverse(split(line[0: l:start - 1], '\zs'))
line 8: if l:start > 0 && char =~# '\k'
line 9: let l:start = l:start - strlen(char)
line 10: else
line 11: break
line 12: endif
line 13: endfor
line 7: for char in reverse(split(line[0: l:start - 1], '\zs'))
line 8: if l:start > 0 && char =~# '\k'
line 9: let l:start = l:start - strlen(char)
line 10: else
line 11: break
line 12: endif
line 13: endfor
line 14: let input = pos[2] == 1 ? '' : line[l:start : pos[2] - 2]
line 15: if !empty(blacklist) && index(blacklist, input) >= 0
line 16: return
line 17: endif
line 18: let synname = synIDattr(synID(pos[1], l:start, 1),"name")
line 19: return { 'word': matchstr(line[l:start : ], '^\k\+'), 'input': empty(input) ? '' : input, 'line': line, 'filetype': &filetype, 'filepath': expand('%:p'), 'bufnr': bufnr('%'), 'linenr': pos[1], 'colnr' : pos[2], 'col': l:start, 'synname': synname, 'changedtick': b:changedtick, 'blacklist': blacklist,}
coc#util#get_complete_option returning {'word': 'foo', 'bufnr': 1, 'col': 6, ... 'foo', 'colnr': 10, 'changedtick': 29}
continuing in 13
13 returning {'word': 'foo', 'bufnr': 1, 'col': 6, ... 'foo', 'colnr': 10, 'changedtick': 29}
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, {'word': 'foo', 'bufnr': 1, '...'foo', 'colnr': 10, 'changedtick': 29}]
calling coc#api#call('call_function', ['coc#util#get_content', [1]])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 13('coc#util#get_content', [1])
line 1: return call(a:method, a:args)
calling coc#util#get_content(1)
line 1: if !bufloaded(a:bufnr) | return '' | endif
line 1: return '' | endif
line 1: endif
line 2: return { 'content': join(getbufline(a:bufnr, 1, '$'), "\n"), 'changedtick': getbufvar(a:bufnr, 'changedtick') }
coc#util#get_content returning {'changedtick': 29, 'content': 'const foo'}
continuing in 13
13 returning {'changedtick': 29, 'content': 'const foo'}
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, {'changedtick': 29, 'content': 'const foo'}]
calling coc#api#notify('command', ['noa set completeopt=noselect,menuone'])
line 1: call call(s:funcs[a:method], a:args)
calling 15('noa set completeopt=noselect,menuone')
line 1: " command that could cause cursor vanish
line 2: if a:command =~# '^echo' || a:command =~# '^redraw' || a:command =~# '^sign place'
line 3: call timer_start(0, {-> s:execute(a:command)})
line 4: else
line 5: execute a:command
line 5: noa set completeopt=noselect,menuone
line 6: endif
15 returning #0
continuing in coc#api#notify
coc#api#notify returning #0
calling coc#api#notify('call_atomic', [[['nvim_command', ['noa set completeo...im_call_function', ['coc#_hide', []]]]])
line 1: call call(s:funcs[a:method], a:args)
calling 9([['nvim_command', ['noa set completeop...vim_call_function', ['coc#_hide', []]]])
line 1: let res = []
line 2: for [key, arglist] in a:calls
line 3: let name = key[5:]
line 4: try
line 5: call add(res, call(s:funcs[name], arglist))
calling 15('noa set completeopt=menuone,preview')
line 1: " command that could cause cursor vanish
line 2: if a:command =~# '^echo' || a:command =~# '^redraw' || a:command =~# '^sign place'
line 3: call timer_start(0, {-> s:execute(a:command)})
line 4: else
line 5: execute a:command
line 5: noa set completeopt=menuone,preview
line 6: endif
15 returning #0
continuing in 9
line 6: catch /.*/
line 7: return [res, v:exception]
line 8: endtry
line 9: endfor
line 2: for [key, arglist] in a:calls
line 3: let name = key[5:]
line 4: try
line 5: call add(res, call(s:funcs[name], arglist))
calling 15('let g:coc#_context[''candidates''] = []')
line 1: " command that could cause cursor vanish
line 2: if a:command =~# '^echo' || a:command =~# '^redraw' || a:command =~# '^sign place'
line 3: call timer_start(0, {-> s:execute(a:command)})
line 4: else
line 5: execute a:command
line 5: let g:coc#_context['candidates'] = []
line 6: endif
15 returning #0
continuing in 9
line 6: catch /.*/
line 7: return [res, v:exception]
line 8: endtry
line 9: endfor
line 2: for [key, arglist] in a:calls
line 3: let name = key[5:]
line 4: try
line 5: call add(res, call(s:funcs[name], arglist))
calling 13('coc#_hide', [])
line 1: return call(a:method, a:args)
calling coc#_hide()
line 1: if !pumvisible() | return | endif
line 1: return | endif
coc#_hide returning #0
continuing in 13
13 returning #0
continuing in 9
line 6: catch /.*/
line 7: return [res, v:exception]
line 8: endtry
line 9: endfor
line 2: for [key, arglist] in a:calls
line 3: let name = key[5:]
line 4: try
line 5: call add(res, call(s:funcs[name], arglist))
line 6: catch /.*/
line 7: return [res, v:exception]
line 8: endtry
line 9: endfor
line 10: return [res, v:null]
9 returning [[0, 0, 0], v:null]
continuing in coc#api#notify
coc#api#notify returning #0
Executing InsertCharPre Autocommands for "*"
autocommand call s:Autocmd('InsertCharPre', v:char)
Executing: call s:Autocmd('InsertCharPre', v:char)
calling <SNR>46_Autocmd('InsertCharPre', ' ')
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['InsertCharPre', ' '])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['InsertCharPre', ' '])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in InsertCharPre Autocommands for "*"
Executing CursorMovedI Autocommands for "*"
autocommand call s:Autocmd('CursorMovedI', +expand('<abuf>'), [line('.'), col('.')])
Executing: call s:Autocmd('CursorMovedI', +expand('<abuf>'), [line('.'), col('.')])
calling <SNR>46_Autocmd('CursorMovedI', 1, [1, 11])
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['CursorMovedI', 1, [1, 11]])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['CursorMovedI', 1, [1, 11]])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in CursorMovedI Autocommands for "*"
Executing CursorMovedI Autocommands for "*"
autocommand call s:Highlight_Matching_Pair()
Executing: call s:Highlight_Matching_Pair()
calling <SNR>55_Highlight_Matching_Pair()
line 1: " Remove any previous match.
line 2: call s:Remove_Matches()
calling <SNR>55_Remove_Matches()
line 1: if exists('w:paren_hl_on') && w:paren_hl_on
line 2: silent! call matchdelete(3)
line 3: let w:paren_hl_on = 0
line 4: endif
<SNR>55_Remove_Matches returning #0
continuing in <SNR>55_Highlight_Matching_Pair
line 3:
line 4: " Avoid that we remove the popup menu.
line 5: " Return when there are no colors (looks like the cursor jumps).
line 6: if pumvisible() || (&t_Co < 8 && !has("gui_running"))
line 7: return
line 8: endif
line 9:
line 10: " Get the character under the cursor and check if it's in 'matchpairs'.
line 11: let c_lnum = line('.')
line 12: let c_col = col('.')
line 13: let before = 0
line 14:
line 15: let text = getline(c_lnum)
line 16: let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
line 17: if empty(matches)
line 18: let [c_before, c] = ['', '']
line 19: else
line 20: let [c_before, c] = matches[1:2]
line 21: endif
line 22: let plist = split(&matchpairs, '.\zs[:,]')
line 23: let i = index(plist, c)
line 24: if i < 0
line 25: " not found, in Insert mode try character before the cursor
line 26: if c_col > 1 && (mode() == 'i' || mode() == 'R')
line 27: let before = strlen(c_before)
line 28: let c = c_before
line 29: let i = index(plist, c)
line 30: endif
line 31: if i < 0
line 32: " not found, nothing to do
line 33: return
<SNR>55_Highlight_Matching_Pair returning #0
continuing in CursorMovedI Autocommands for "*"
Executing TextChangedI Autocommands for "*"
autocommand call s:Autocmd('TextChangedI', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
Executing: call s:Autocmd('TextChangedI', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
calling <SNR>46_Autocmd('TextChangedI', 1, {'lnum': 1, 'col': 11, 'changedtick': 30, 'pre': 'const foo '})
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['TextChangedI', 1, {'lnum': 1, 'col':...changedtick': 30, 'pre': 'const foo '}])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['TextChangedI', 1, {'lnum': 1, 'col':...changedtick': 30, 'pre': 'const foo '}])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in TextChangedI Autocommands for "*"
Executing TextChangedI Autocommands for "*"
autocommand call s:Highlight_Matching_Pair()
Executing: call s:Highlight_Matching_Pair()
calling <SNR>55_Highlight_Matching_Pair()
line 1: " Remove any previous match.
line 2: call s:Remove_Matches()
calling <SNR>55_Remove_Matches()
line 1: if exists('w:paren_hl_on') && w:paren_hl_on
line 2: silent! call matchdelete(3)
line 3: let w:paren_hl_on = 0
line 4: endif
<SNR>55_Remove_Matches returning #0
continuing in <SNR>55_Highlight_Matching_Pair
line 3:
line 4: " Avoid that we remove the popup menu.
line 5: " Return when there are no colors (looks like the cursor jumps).
line 6: if pumvisible() || (&t_Co < 8 && !has("gui_running"))
line 7: return
line 8: endif
line 9:
line 10: " Get the character under the cursor and check if it's in 'matchpairs'.
line 11: let c_lnum = line('.')
line 12: let c_col = col('.')
line 13: let before = 0
line 14:
line 15: let text = getline(c_lnum)
line 16: let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
line 17: if empty(matches)
line 18: let [c_before, c] = ['', '']
line 19: else
line 20: let [c_before, c] = matches[1:2]
line 21: endif
line 22: let plist = split(&matchpairs, '.\zs[:,]')
line 23: let i = index(plist, c)
line 24: if i < 0
line 25: " not found, in Insert mode try character before the cursor
line 26: if c_col > 1 && (mode() == 'i' || mode() == 'R')
line 27: let before = strlen(c_before)
line 28: let c = c_before
line 29: let i = index(plist, c)
line 30: endif
line 31: if i < 0
line 32: " not found, nothing to do
line 33: return
<SNR>55_Highlight_Matching_Pair returning #0
continuing in TextChangedI Autocommands for "*"
calling lightline#link()
line 1: let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
line 2: if s:mode ==# mode
line 3: return ''
lightline#link returning ''
calling lightline#mode()
line 1: return get(s:lightline.mode_map, mode(), '')
lightline#mode returning 'INSERT'
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling FugitiveHead()
line 1: let dir = FugitiveGitDir(a:0 > 1 ? a:2 : -1)
calling FugitiveGitDir(-1)
line 1: if !a:0 || type(a:1) == type(0) && a:1 < 0
line 2: if exists('g:fugitive_event')
line 3: return g:fugitive_event
line 4: endif
line 5: let dir = get(b:, 'git_dir', '')
line 6: if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|prompt\)$')
line 7: return FugitiveExtractGitDir(getcwd())
line 8: endif
line 9: return dir
FugitiveGitDir returning ''
continuing in FugitiveHead
line 2: if empty(dir)
line 3: return ''
FugitiveHead returning ''
calling coc#api#call('eval', ['[coc#util#cursor(), getline(".")]'])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 16('[coc#util#cursor(), getline(".")]')
line 1: return eval(a:expr)
calling coc#util#cursor()
line 1: let pos = getcurpos()
line 2: let content = pos[2] == 1 ? '' : getline('.')[0: pos[2] - 2]
line 3: return [pos[1] - 1, strchars(content)]
coc#util#cursor returning [0, 10]
continuing in 16
16 returning [[0, 10], 'const foo ']
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, [[0, 10], 'const foo ']]
calling coc#api#call('call_function', ['coc#util#get_content', [1]])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 13('coc#util#get_content', [1])
line 1: return call(a:method, a:args)
calling coc#util#get_content(1)
line 1: if !bufloaded(a:bufnr) | return '' | endif
line 1: return '' | endif
line 1: endif
line 2: return { 'content': join(getbufline(a:bufnr, 1, '$'), "\n"), 'changedtick': getbufvar(a:bufnr, 'changedtick') }
coc#util#get_content returning {'changedtick': 30, 'content': 'const foo '}
continuing in 13
13 returning {'changedtick': 30, 'content': 'const foo '}
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, {'changedtick': 30, 'content': 'const foo '}]
Executing InsertCharPre Autocommands for "*"
autocommand call s:Autocmd('InsertCharPre', v:char)
Executing: call s:Autocmd('InsertCharPre', v:char)
calling <SNR>46_Autocmd('InsertCharPre', '=')
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['InsertCharPre', '='])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['InsertCharPre', '='])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in InsertCharPre Autocommands for "*"
Executing CursorMovedI Autocommands for "*"
autocommand call s:Autocmd('CursorMovedI', +expand('<abuf>'), [line('.'), col('.')])
Executing: call s:Autocmd('CursorMovedI', +expand('<abuf>'), [line('.'), col('.')])
calling <SNR>46_Autocmd('CursorMovedI', 1, [1, 12])
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['CursorMovedI', 1, [1, 12]])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['CursorMovedI', 1, [1, 12]])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in CursorMovedI Autocommands for "*"
Executing CursorMovedI Autocommands for "*"
autocommand call s:Highlight_Matching_Pair()
Executing: call s:Highlight_Matching_Pair()
calling <SNR>55_Highlight_Matching_Pair()
line 1: " Remove any previous match.
line 2: call s:Remove_Matches()
calling <SNR>55_Remove_Matches()
line 1: if exists('w:paren_hl_on') && w:paren_hl_on
line 2: silent! call matchdelete(3)
line 3: let w:paren_hl_on = 0
line 4: endif
<SNR>55_Remove_Matches returning #0
continuing in <SNR>55_Highlight_Matching_Pair
line 3:
line 4: " Avoid that we remove the popup menu.
line 5: " Return when there are no colors (looks like the cursor jumps).
line 6: if pumvisible() || (&t_Co < 8 && !has("gui_running"))
line 7: return
line 8: endif
line 9:
line 10: " Get the character under the cursor and check if it's in 'matchpairs'.
line 11: let c_lnum = line('.')
line 12: let c_col = col('.')
line 13: let before = 0
line 14:
line 15: let text = getline(c_lnum)
line 16: let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
line 17: if empty(matches)
line 18: let [c_before, c] = ['', '']
line 19: else
line 20: let [c_before, c] = matches[1:2]
line 21: endif
line 22: let plist = split(&matchpairs, '.\zs[:,]')
line 23: let i = index(plist, c)
line 24: if i < 0
line 25: " not found, in Insert mode try character before the cursor
line 26: if c_col > 1 && (mode() == 'i' || mode() == 'R')
line 27: let before = strlen(c_before)
line 28: let c = c_before
line 29: let i = index(plist, c)
line 30: endif
line 31: if i < 0
line 32: " not found, nothing to do
line 33: return
<SNR>55_Highlight_Matching_Pair returning #0
continuing in CursorMovedI Autocommands for "*"
Executing TextChangedI Autocommands for "*"
autocommand call s:Autocmd('TextChangedI', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
Executing: call s:Autocmd('TextChangedI', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
calling <SNR>46_Autocmd('TextChangedI', 1, {'lnum': 1, 'col': 12, 'changedtick': 31, 'pre': 'const foo ='})
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['TextChangedI', 1, {'lnum': 1, 'col':...hangedtick': 31, 'pre': 'const foo ='}])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['TextChangedI', 1, {'lnum': 1, 'col':...hangedtick': 31, 'pre': 'const foo ='}])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in TextChangedI Autocommands for "*"
Executing TextChangedI Autocommands for "*"
autocommand call s:Highlight_Matching_Pair()
Executing: call s:Highlight_Matching_Pair()
calling <SNR>55_Highlight_Matching_Pair()
line 1: " Remove any previous match.
line 2: call s:Remove_Matches()
calling <SNR>55_Remove_Matches()
line 1: if exists('w:paren_hl_on') && w:paren_hl_on
line 2: silent! call matchdelete(3)
line 3: let w:paren_hl_on = 0
line 4: endif
<SNR>55_Remove_Matches returning #0
continuing in <SNR>55_Highlight_Matching_Pair
line 3:
line 4: " Avoid that we remove the popup menu.
line 5: " Return when there are no colors (looks like the cursor jumps).
line 6: if pumvisible() || (&t_Co < 8 && !has("gui_running"))
line 7: return
line 8: endif
line 9:
line 10: " Get the character under the cursor and check if it's in 'matchpairs'.
line 11: let c_lnum = line('.')
line 12: let c_col = col('.')
line 13: let before = 0
line 14:
line 15: let text = getline(c_lnum)
line 16: let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
line 17: if empty(matches)
line 18: let [c_before, c] = ['', '']
line 19: else
line 20: let [c_before, c] = matches[1:2]
line 21: endif
line 22: let plist = split(&matchpairs, '.\zs[:,]')
line 23: let i = index(plist, c)
line 24: if i < 0
line 25: " not found, in Insert mode try character before the cursor
line 26: if c_col > 1 && (mode() == 'i' || mode() == 'R')
line 27: let before = strlen(c_before)
line 28: let c = c_before
line 29: let i = index(plist, c)
line 30: endif
line 31: if i < 0
line 32: " not found, nothing to do
line 33: return
<SNR>55_Highlight_Matching_Pair returning #0
continuing in TextChangedI Autocommands for "*"
calling lightline#link()
line 1: let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
line 2: if s:mode ==# mode
line 3: return ''
lightline#link returning ''
calling lightline#mode()
line 1: return get(s:lightline.mode_map, mode(), '')
lightline#mode returning 'INSERT'
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling FugitiveHead()
line 1: let dir = FugitiveGitDir(a:0 > 1 ? a:2 : -1)
calling FugitiveGitDir(-1)
line 1: if !a:0 || type(a:1) == type(0) && a:1 < 0
line 2: if exists('g:fugitive_event')
line 3: return g:fugitive_event
line 4: endif
line 5: let dir = get(b:, 'git_dir', '')
line 6: if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|prompt\)$')
line 7: return FugitiveExtractGitDir(getcwd())
line 8: endif
line 9: return dir
FugitiveGitDir returning ''
continuing in FugitiveHead
line 2: if empty(dir)
line 3: return ''
FugitiveHead returning ''
calling coc#api#call('eval', ['[coc#util#cursor(), getline(".")]'])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 16('[coc#util#cursor(), getline(".")]')
line 1: return eval(a:expr)
calling coc#util#cursor()
line 1: let pos = getcurpos()
line 2: let content = pos[2] == 1 ? '' : getline('.')[0: pos[2] - 2]
line 3: return [pos[1] - 1, strchars(content)]
coc#util#cursor returning [0, 11]
continuing in 16
16 returning [[0, 11], 'const foo =']
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, [[0, 11], 'const foo =']]
calling coc#api#call('call_function', ['coc#util#get_content', [1]])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 13('coc#util#get_content', [1])
line 1: return call(a:method, a:args)
calling coc#util#get_content(1)
line 1: if !bufloaded(a:bufnr) | return '' | endif
line 1: return '' | endif
line 1: endif
line 2: return { 'content': join(getbufline(a:bufnr, 1, '$'), "\n"), 'changedtick': getbufvar(a:bufnr, 'changedtick') }
coc#util#get_content returning {'changedtick': 31, 'content': 'const foo ='}
continuing in 13
13 returning {'changedtick': 31, 'content': 'const foo ='}
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, {'changedtick': 31, 'content': 'const foo ='}]
Executing InsertCharPre Autocommands for "*"
autocommand call s:Autocmd('InsertCharPre', v:char)
Executing: call s:Autocmd('InsertCharPre', v:char)
calling <SNR>46_Autocmd('InsertCharPre', ' ')
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['InsertCharPre', ' '])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['InsertCharPre', ' '])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in InsertCharPre Autocommands for "*"
Executing CursorMovedI Autocommands for "*"
autocommand call s:Autocmd('CursorMovedI', +expand('<abuf>'), [line('.'), col('.')])
Executing: call s:Autocmd('CursorMovedI', +expand('<abuf>'), [line('.'), col('.')])
calling <SNR>46_Autocmd('CursorMovedI', 1, [1, 13])
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['CursorMovedI', 1, [1, 13]])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['CursorMovedI', 1, [1, 13]])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in CursorMovedI Autocommands for "*"
Executing CursorMovedI Autocommands for "*"
autocommand call s:Highlight_Matching_Pair()
Executing: call s:Highlight_Matching_Pair()
calling <SNR>55_Highlight_Matching_Pair()
line 1: " Remove any previous match.
line 2: call s:Remove_Matches()
calling <SNR>55_Remove_Matches()
line 1: if exists('w:paren_hl_on') && w:paren_hl_on
line 2: silent! call matchdelete(3)
line 3: let w:paren_hl_on = 0
line 4: endif
<SNR>55_Remove_Matches returning #0
continuing in <SNR>55_Highlight_Matching_Pair
line 3:
line 4: " Avoid that we remove the popup menu.
line 5: " Return when there are no colors (looks like the cursor jumps).
line 6: if pumvisible() || (&t_Co < 8 && !has("gui_running"))
line 7: return
line 8: endif
line 9:
line 10: " Get the character under the cursor and check if it's in 'matchpairs'.
line 11: let c_lnum = line('.')
line 12: let c_col = col('.')
line 13: let before = 0
line 14:
line 15: let text = getline(c_lnum)
line 16: let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
line 17: if empty(matches)
line 18: let [c_before, c] = ['', '']
line 19: else
line 20: let [c_before, c] = matches[1:2]
line 21: endif
line 22: let plist = split(&matchpairs, '.\zs[:,]')
line 23: let i = index(plist, c)
line 24: if i < 0
line 25: " not found, in Insert mode try character before the cursor
line 26: if c_col > 1 && (mode() == 'i' || mode() == 'R')
line 27: let before = strlen(c_before)
line 28: let c = c_before
line 29: let i = index(plist, c)
line 30: endif
line 31: if i < 0
line 32: " not found, nothing to do
line 33: return
<SNR>55_Highlight_Matching_Pair returning #0
continuing in CursorMovedI Autocommands for "*"
Executing TextChangedI Autocommands for "*"
autocommand call s:Autocmd('TextChangedI', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
Executing: call s:Autocmd('TextChangedI', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
calling <SNR>46_Autocmd('TextChangedI', 1, {'lnum': 1, 'col': 13, 'changedtick': 32, 'pre': 'const foo = '})
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['TextChangedI', 1, {'lnum': 1, 'col':...angedtick': 32, 'pre': 'const foo = '}])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['TextChangedI', 1, {'lnum': 1, 'col':...angedtick': 32, 'pre': 'const foo = '}])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in TextChangedI Autocommands for "*"
Executing TextChangedI Autocommands for "*"
autocommand call s:Highlight_Matching_Pair()
Executing: call s:Highlight_Matching_Pair()
calling <SNR>55_Highlight_Matching_Pair()
line 1: " Remove any previous match.
line 2: call s:Remove_Matches()
calling <SNR>55_Remove_Matches()
line 1: if exists('w:paren_hl_on') && w:paren_hl_on
line 2: silent! call matchdelete(3)
line 3: let w:paren_hl_on = 0
line 4: endif
<SNR>55_Remove_Matches returning #0
continuing in <SNR>55_Highlight_Matching_Pair
line 3:
line 4: " Avoid that we remove the popup menu.
line 5: " Return when there are no colors (looks like the cursor jumps).
line 6: if pumvisible() || (&t_Co < 8 && !has("gui_running"))
line 7: return
line 8: endif
line 9:
line 10: " Get the character under the cursor and check if it's in 'matchpairs'.
line 11: let c_lnum = line('.')
line 12: let c_col = col('.')
line 13: let before = 0
line 14:
line 15: let text = getline(c_lnum)
line 16: let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
line 17: if empty(matches)
line 18: let [c_before, c] = ['', '']
line 19: else
line 20: let [c_before, c] = matches[1:2]
line 21: endif
line 22: let plist = split(&matchpairs, '.\zs[:,]')
line 23: let i = index(plist, c)
line 24: if i < 0
line 25: " not found, in Insert mode try character before the cursor
line 26: if c_col > 1 && (mode() == 'i' || mode() == 'R')
line 27: let before = strlen(c_before)
line 28: let c = c_before
line 29: let i = index(plist, c)
line 30: endif
line 31: if i < 0
line 32: " not found, nothing to do
line 33: return
<SNR>55_Highlight_Matching_Pair returning #0
continuing in TextChangedI Autocommands for "*"
calling lightline#link()
line 1: let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
line 2: if s:mode ==# mode
line 3: return ''
lightline#link returning ''
calling lightline#mode()
line 1: return get(s:lightline.mode_map, mode(), '')
lightline#mode returning 'INSERT'
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling FugitiveHead()
line 1: let dir = FugitiveGitDir(a:0 > 1 ? a:2 : -1)
calling FugitiveGitDir(-1)
line 1: if !a:0 || type(a:1) == type(0) && a:1 < 0
line 2: if exists('g:fugitive_event')
line 3: return g:fugitive_event
line 4: endif
line 5: let dir = get(b:, 'git_dir', '')
line 6: if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|prompt\)$')
line 7: return FugitiveExtractGitDir(getcwd())
line 8: endif
line 9: return dir
FugitiveGitDir returning ''
continuing in FugitiveHead
line 2: if empty(dir)
line 3: return ''
FugitiveHead returning ''
calling coc#api#call('eval', ['[coc#util#cursor(), getline(".")]'])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 16('[coc#util#cursor(), getline(".")]')
line 1: return eval(a:expr)
calling coc#util#cursor()
line 1: let pos = getcurpos()
line 2: let content = pos[2] == 1 ? '' : getline('.')[0: pos[2] - 2]
line 3: return [pos[1] - 1, strchars(content)]
coc#util#cursor returning [0, 12]
continuing in 16
16 returning [[0, 12], 'const foo = ']
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, [[0, 12], 'const foo = ']]
calling coc#api#call('call_function', ['coc#util#get_content', [1]])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 13('coc#util#get_content', [1])
line 1: return call(a:method, a:args)
calling coc#util#get_content(1)
line 1: if !bufloaded(a:bufnr) | return '' | endif
line 1: return '' | endif
line 1: endif
line 2: return { 'content': join(getbufline(a:bufnr, 1, '$'), "\n"), 'changedtick': getbufvar(a:bufnr, 'changedtick') }
coc#util#get_content returning {'changedtick': 32, 'content': 'const foo = '}
continuing in 13
13 returning {'changedtick': 32, 'content': 'const foo = '}
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, {'changedtick': 32, 'content': 'const foo = '}]
Executing CursorHoldI Autocommands for "*"
autocommand call s:Autocmd('CursorHoldI', +expand('<abuf>'))
Executing: call s:Autocmd('CursorHoldI', +expand('<abuf>'))
calling <SNR>46_Autocmd('CursorHoldI', 1)
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['CursorHoldI', 1])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['CursorHoldI', 1])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in CursorHoldI Autocommands for "*"
calling lightline#link()
line 1: let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
line 2: if s:mode ==# mode
line 3: return ''
lightline#link returning ''
calling lightline#mode()
line 1: return get(s:lightline.mode_map, mode(), '')
lightline#mode returning 'INSERT'
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling FugitiveHead()
line 1: let dir = FugitiveGitDir(a:0 > 1 ? a:2 : -1)
calling FugitiveGitDir(-1)
line 1: if !a:0 || type(a:1) == type(0) && a:1 < 0
line 2: if exists('g:fugitive_event')
line 3: return g:fugitive_event
line 4: endif
line 5: let dir = get(b:, 'git_dir', '')
line 6: if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|prompt\)$')
line 7: return FugitiveExtractGitDir(getcwd())
line 8: endif
line 9: return dir
FugitiveGitDir returning ''
continuing in FugitiveHead
line 2: if empty(dir)
line 3: return ''
FugitiveHead returning ''
calling coc#_insert_key('request', '6bf590d0-c7f2-11ea-8e1d-2353e2ff80b6')
line 1: if get(a:, 1, 1)
line 2: call coc#_cancel()
calling coc#_cancel()
line 1: " hack for close pum
line 2: if pumvisible() && &paste != 1
line 3: let g:coc#_context = {'start': 0, 'preselect': -1,'candidates': []}
line 4: call feedkeys("\<Plug>CocRefresh", 'i')
line 5: endif
coc#_cancel returning #0
continuing in coc#_insert_key
line 3: endif
line 4: return "\<c-r>=coc#rpc#".a:method."('doKeymap', ['".a:key."'])\<CR>"
coc#_insert_key returning '^R=coc#rpc#request(''doKeymap'', [''6bf590d0-c7f2-11ea-8e1d-2353e2ff80b6''])^M'
calling coc#rpc#request('doKeymap', ['6bf590d0-c7f2-11ea-8e1d-2353e2ff80b6'])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#request
line 2: return ''
line 3: endif
line 4: return s:client['request'](a:method, a:args)
calling <SNR>49_request('doKeymap', ['6bf590d0-c7f2-11ea-8e1d-2353e2ff80b6'])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_request
line 2: if empty(channel) | return '' | endif
line 2: return '' | endif
line 2: endif
line 3: try
line 4: if s:is_vim
line 5: let res = ch_evalexpr(channel, [a:method, a:args], {'timeout': 60 * 1000})
calling coc#api#call('eval', ['[bufnr("%"),get(b:,"coc_pairs_disabled",[]),coc#util#cursor()]'])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 16('[bufnr("%"),get(b:,"coc_pairs_disabled",[]),coc#util#cursor()]')
line 1: return eval(a:expr)
calling coc#util#cursor()
line 1: let pos = getcurpos()
line 2: let content = pos[2] == 1 ? '' : getline('.')[0: pos[2] - 2]
line 3: return [pos[1] - 1, strchars(content)]
coc#util#cursor returning [0, 12]
continuing in 16
16 returning [1, [], [0, 12]]
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, [1, [], [0, 12]]]
continuing in <SNR>49_request
calling coc#api#notify('command', ['call feedkeys("()\<C-G>U\<Left>", ''in'')'])
line 1: call call(s:funcs[a:method], a:args)
calling 15('call feedkeys("()\<C-G>U\<Left>", ''in'')')
line 1: " command that could cause cursor vanish
line 2: if a:command =~# '^echo' || a:command =~# '^redraw' || a:command =~# '^sign place'
line 3: call timer_start(0, {-> s:execute(a:command)})
line 4: else
line 5: execute a:command
line 5: call feedkeys("()\<C-G>U\<Left>", 'in')
line 6: endif
15 returning #0
continuing in coc#api#notify
coc#api#notify returning #0
continuing in <SNR>49_request
line 6: if type(res) == 1 && res ==# ''
line 7: throw 'request '.a:method. ' '.string(a:args).' timeout after 60s'
line 8: endif
line 9: let [l:errmsg, res] = res
line 10: if !empty(l:errmsg)
line 11: throw l:errmsg
line 12: else
line 13: return res
:return made pending
line 14: endif
line 15: else
line 16: return call('rpcrequest', [channel, a:method] + a:args)
line 17: endif
line 18: catch /.*/
line 19: if v:exception =~# 'E475'
line 20: if get(g:, 'coc_vim_leaving', 0) | return | endif
line 20: return | endif
line 20: endif
line 21: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 21: echom '['.self.name.'] server connection lost' | echohl None
line 21: echohl None
line 22: let name = self.name
line 23: call s:on_exit(name, 0)
line 24: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 25: elseif v:exception =~# 'E12'
line 26: " neovim's bug, ignore it
line 27: else
line 28: echohl Error | echo 'Error on request ('.a:method.'): '.v:exception | echohl None
line 28: echo 'Error on request ('.a:method.'): '.v:exception | echohl None
line 28: echohl None
line 29: endif
line 30: endtry
:return resumed
<SNR>49_request returning ''
continuing in coc#rpc#request
coc#rpc#request returning ''
Executing InsertCharPre Autocommands for "*"
autocommand call s:Autocmd('InsertCharPre', v:char)
Executing: call s:Autocmd('InsertCharPre', v:char)
calling <SNR>46_Autocmd('InsertCharPre', '(')
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['InsertCharPre', '('])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['InsertCharPre', '('])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in InsertCharPre Autocommands for "*"
Executing InsertCharPre Autocommands for "*"
autocommand call s:Autocmd('InsertCharPre', v:char)
Executing: call s:Autocmd('InsertCharPre', v:char)
calling <SNR>46_Autocmd('InsertCharPre', ')')
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['InsertCharPre', ')'])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['InsertCharPre', ')'])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in InsertCharPre Autocommands for "*"
calling coc#_insert_key('request', '6bf590d1-c7f2-11ea-8e1d-2353e2ff80b6')
line 1: if get(a:, 1, 1)
line 2: call coc#_cancel()
calling coc#_cancel()
line 1: " hack for close pum
line 2: if pumvisible() && &paste != 1
line 3: let g:coc#_context = {'start': 0, 'preselect': -1,'candidates': []}
line 4: call feedkeys("\<Plug>CocRefresh", 'i')
line 5: endif
coc#_cancel returning #0
continuing in coc#_insert_key
line 3: endif
line 4: return "\<c-r>=coc#rpc#".a:method."('doKeymap', ['".a:key."'])\<CR>"
coc#_insert_key returning '^R=coc#rpc#request(''doKeymap'', [''6bf590d1-c7f2-11ea-8e1d-2353e2ff80b6''])^M'
calling coc#rpc#request('doKeymap', ['6bf590d1-c7f2-11ea-8e1d-2353e2ff80b6'])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#request
line 2: return ''
line 3: endif
line 4: return s:client['request'](a:method, a:args)
calling <SNR>49_request('doKeymap', ['6bf590d1-c7f2-11ea-8e1d-2353e2ff80b6'])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_request
line 2: if empty(channel) | return '' | endif
line 2: return '' | endif
line 2: endif
line 3: try
line 4: if s:is_vim
line 5: let res = ch_evalexpr(channel, [a:method, a:args], {'timeout': 60 * 1000})
calling coc#api#call('call_function', ['bufnr', ['%']])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 13('bufnr', ['%'])
line 1: return call(a:method, a:args)
13 returning #1
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, 1]
continuing in <SNR>49_request
calling coc#api#call('call_function', ['coc#util#cursor', []])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 13('coc#util#cursor', [])
line 1: return call(a:method, a:args)
calling coc#util#cursor()
line 1: let pos = getcurpos()
line 2: let content = pos[2] == 1 ? '' : getline('.')[0: pos[2] - 2]
line 3: return [pos[1] - 1, strchars(content)]
coc#util#cursor returning [0, 13]
continuing in 13
13 returning [0, 13]
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, [0, 13]]
continuing in <SNR>49_request
line 6: if type(res) == 1 && res ==# ''
line 7: throw 'request '.a:method. ' '.string(a:args).' timeout after 60s'
line 8: endif
line 9: let [l:errmsg, res] = res
line 10: if !empty(l:errmsg)
line 11: throw l:errmsg
line 12: else
line 13: return res
:return ) made pending
line 14: endif
line 15: else
line 16: return call('rpcrequest', [channel, a:method] + a:args)
line 17: endif
line 18: catch /.*/
line 19: if v:exception =~# 'E475'
line 20: if get(g:, 'coc_vim_leaving', 0) | return | endif
line 20: return | endif
line 20: endif
line 21: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 21: echom '['.self.name.'] server connection lost' | echohl None
line 21: echohl None
line 22: let name = self.name
line 23: call s:on_exit(name, 0)
line 24: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 25: elseif v:exception =~# 'E12'
line 26: " neovim's bug, ignore it
line 27: else
line 28: echohl Error | echo 'Error on request ('.a:method.'): '.v:exception | echohl None
line 28: echo 'Error on request ('.a:method.'): '.v:exception | echohl None
line 28: echohl None
line 29: endif
line 30: endtry
:return ) resumed
<SNR>49_request returning ')'
continuing in coc#rpc#request
coc#rpc#request returning ')'
Executing InsertCharPre Autocommands for "*"
autocommand call s:Autocmd('InsertCharPre', v:char)
Executing: call s:Autocmd('InsertCharPre', v:char)
calling <SNR>46_Autocmd('InsertCharPre', ')')
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['InsertCharPre', ')'])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['InsertCharPre', ')'])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in InsertCharPre Autocommands for "*"
Executing CursorMovedI Autocommands for "*"
autocommand call s:Autocmd('CursorMovedI', +expand('<abuf>'), [line('.'), col('.')])
Executing: call s:Autocmd('CursorMovedI', +expand('<abuf>'), [line('.'), col('.')])
calling <SNR>46_Autocmd('CursorMovedI', 1, [1, 15])
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['CursorMovedI', 1, [1, 15]])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['CursorMovedI', 1, [1, 15]])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in CursorMovedI Autocommands for "*"
Executing CursorMovedI Autocommands for "*"
autocommand call s:Highlight_Matching_Pair()
Executing: call s:Highlight_Matching_Pair()
calling <SNR>55_Highlight_Matching_Pair()
line 1: " Remove any previous match.
line 2: call s:Remove_Matches()
calling <SNR>55_Remove_Matches()
line 1: if exists('w:paren_hl_on') && w:paren_hl_on
line 2: silent! call matchdelete(3)
line 3: let w:paren_hl_on = 0
line 4: endif
<SNR>55_Remove_Matches returning #0
continuing in <SNR>55_Highlight_Matching_Pair
line 3:
line 4: " Avoid that we remove the popup menu.
line 5: " Return when there are no colors (looks like the cursor jumps).
line 6: if pumvisible() || (&t_Co < 8 && !has("gui_running"))
line 7: return
line 8: endif
line 9:
line 10: " Get the character under the cursor and check if it's in 'matchpairs'.
line 11: let c_lnum = line('.')
line 12: let c_col = col('.')
line 13: let before = 0
line 14:
line 15: let text = getline(c_lnum)
line 16: let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
line 17: if empty(matches)
line 18: let [c_before, c] = ['', '']
line 19: else
line 20: let [c_before, c] = matches[1:2]
line 21: endif
line 22: let plist = split(&matchpairs, '.\zs[:,]')
line 23: let i = index(plist, c)
line 24: if i < 0
line 25: " not found, in Insert mode try character before the cursor
line 26: if c_col > 1 && (mode() == 'i' || mode() == 'R')
line 27: let before = strlen(c_before)
line 28: let c = c_before
line 29: let i = index(plist, c)
line 30: endif
line 31: if i < 0
line 32: " not found, nothing to do
line 33: return
line 34: endif
line 35: endif
line 36:
line 37: " Figure out the arguments for searchpairpos().
line 38: if i % 2 == 0
line 39: let s_flags = 'nW'
line 40: let c2 = plist[i + 1]
line 41: else
line 42: let s_flags = 'nbW'
line 43: let c2 = c
line 44: let c = plist[i - 1]
line 45: endif
line 46: if c == '['
line 47: let c = '\['
line 48: let c2 = '\]'
line 49: endif
line 50:
line 51: " Find the match. When it was just before the cursor move it there for a
line 52: " moment.
line 53: if before > 0
line 54: let has_getcurpos = exists("*getcurpos")
line 55: if has_getcurpos
line 56: " getcurpos() is more efficient but doesn't exist before 7.4.313.
line 57: let save_cursor = getcurpos()
line 58: else
line 59: let save_cursor = winsaveview()
line 60: endif
line 61: call cursor(c_lnum, c_col - before)
line 62: endif
line 63:
line 64: if !has("syntax") || !exists("g:syntax_on")
line 65: let s_skip = "0"
line 66: else
line 67: " Build an expression that detects whether the current cursor position is
line 68: " in certain syntax types (string, comment, etc.), for use as
line 69: " searchpairpos()'s skip argument.
line 70: " We match "escape" for special items, such as lispEscapeSpecial.
line 71: let s_skip = '!empty(filter(map(synstack(line("."), col(".")), ''synIDattr(v:val, "name")''), ' . '''v:val =~? "string\\|character\\|singlequote\\|escape\\|comment"''))'
line 73: " If executing the expression determines that the cursor is currently in
line 74: " one of the syntax types, then we want searchpairpos() to find the pair
line 75: " within those syntax types (i.e., not skip). Otherwise, the cursor is
line 76: " outside of the syntax types and s_skip should keep its value so we skip
line 77: " any matching pair inside the syntax types.
line 78: " Catch if this throws E363: pattern uses more memory than 'maxmempattern'.
line 79: try
line 80: execute 'if ' . s_skip . ' | let s_skip = "0" | endif'
line 80: if !empty(filter(map(synstack(line("."), col(".")), 'synIDattr(v:val, "name")'), 'v:val =~? "string\\|character\\|singlequote\\|escape\\|comment"')) | let s_skip = "0" | endif
line 80: let s_skip = "0" | endif
line 80: endif
line 81: catch /^Vim\%((\a\+)\)\=:E363/
line 82: " We won't find anything, so skip searching, should keep Vim responsive.
line 83: return
line 84: endtry
line 85: endif
line 86:
line 87: " Limit the search to lines visible in the window.
line 88: let stoplinebottom = line('w$')
line 89: let stoplinetop = line('w0')
line 90: if i % 2 == 0
line 91: let stopline = stoplinebottom
line 92: else
line 93: let stopline = stoplinetop
line 94: endif
line 95:
line 96: " Limit the search time to 300 msec to avoid a hang on very long lines.
line 97: " This fails when a timeout is not supported.
line 98: if mode() == 'i' || mode() == 'R'
line 99: let timeout = exists("b:matchparen_insert_timeout") ? b:matchparen_insert_timeout : g:matchparen_insert_timeout
line 100: else
line 101: let timeout = exists("b:matchparen_timeout") ? b:matchparen_timeout : g:matchparen_timeout
line 102: endif
line 103: try
line 104: let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline, timeout)
line 105: catch /E118/
line 106: " Can't use the timeout, restrict the stopline a bit more to avoid taking
line 107: " a long time on closed folds and long lines.
line 108: " The "viewable" variables give a range in which we can scroll while
line 109: " keeping the cursor at the same position.
line 110: " adjustedScrolloff accounts for very large numbers of scrolloff.
line 111: let adjustedScrolloff = min([&scrolloff, (line('w$') - line('w0')) / 2])
line 112: let bottom_viewable = min([line('$'), c_lnum + &lines - adjustedScrolloff - 2])
line 113: let top_viewable = max([1, c_lnum-&lines+adjustedScrolloff + 2])
line 114: " one of these stoplines will be adjusted below, but the current values are
line 115: " minimal boundaries within the current window
line 116: if i % 2 == 0
line 117: if has("byte_offset") && has("syntax_items") && &smc > 0
line 118: ^Ilet stopbyte = min([line2byte("$"), line2byte(".") + col(".") + &smc * 2])
line 119: ^Ilet stopline = min([bottom_viewable, byte2line(stopbyte)])
line 120: else
line 121: ^Ilet stopline = min([bottom_viewable, c_lnum + 100])
line 122: endif
line 123: let stoplinebottom = stopline
line 124: else
line 125: if has("byte_offset") && has("syntax_items") && &smc > 0
line 126: ^Ilet stopbyte = max([1, line2byte(".") + col(".") - &smc * 2])
line 127: ^Ilet stopline = max([top_viewable, byte2line(stopbyte)])
line 128: else
line 129: ^Ilet stopline = max([top_viewable, c_lnum - 100])
line 130: endif
line 131: let stoplinetop = stopline
line 132: endif
line 133: let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline)
line 134: endtry
line 135:
line 136: if before > 0
line 137: if has_getcurpos
line 138: call setpos('.', save_cursor)
line 139: else
line 140: call winrestview(save_cursor)
line 141: endif
line 142: endif
line 143:
line 144: " If a match is found setup match highlighting.
line 145: if m_lnum > 0 && m_lnum >= stoplinetop && m_lnum <= stoplinebottom
line 146: if exists('*matchaddpos')
line 147: call matchaddpos('MatchParen', [[c_lnum, c_col - before], [m_lnum, m_col]], 10, 3)
line 148: else
line 149: exe '3match MatchParen /\(\%' . c_lnum . 'l\%' . (c_col - before) . 'c\)\|\(\%' . m_lnum . 'l\%' . m_col . 'c\)/'
line 151: endif
line 152: let w:paren_hl_on = 1
line 153: endif
<SNR>55_Highlight_Matching_Pair returning #0
continuing in CursorMovedI Autocommands for "*"
Executing TextChangedI Autocommands for "*"
autocommand call s:Autocmd('TextChangedI', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
Executing: call s:Autocmd('TextChangedI', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
calling <SNR>46_Autocmd('TextChangedI', 1, {'lnum': 1, 'col': 15, 'changedtick': 35, 'pre': 'const foo = ()'})
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['TextChangedI', 1, {'lnum': 1, 'col':...gedtick': 35, 'pre': 'const foo = ()'}])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['TextChangedI', 1, {'lnum': 1, 'col':...gedtick': 35, 'pre': 'const foo = ()'}])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in TextChangedI Autocommands for "*"
Executing TextChangedI Autocommands for "*"
autocommand call s:Highlight_Matching_Pair()
Executing: call s:Highlight_Matching_Pair()
calling <SNR>55_Highlight_Matching_Pair()
line 1: " Remove any previous match.
line 2: call s:Remove_Matches()
calling <SNR>55_Remove_Matches()
line 1: if exists('w:paren_hl_on') && w:paren_hl_on
line 2: silent! call matchdelete(3)
line 3: let w:paren_hl_on = 0
line 4: endif
<SNR>55_Remove_Matches returning #0
continuing in <SNR>55_Highlight_Matching_Pair
line 3:
line 4: " Avoid that we remove the popup menu.
line 5: " Return when there are no colors (looks like the cursor jumps).
line 6: if pumvisible() || (&t_Co < 8 && !has("gui_running"))
line 7: return
line 8: endif
line 9:
line 10: " Get the character under the cursor and check if it's in 'matchpairs'.
line 11: let c_lnum = line('.')
line 12: let c_col = col('.')
line 13: let before = 0
line 14:
line 15: let text = getline(c_lnum)
line 16: let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
line 17: if empty(matches)
line 18: let [c_before, c] = ['', '']
line 19: else
line 20: let [c_before, c] = matches[1:2]
line 21: endif
line 22: let plist = split(&matchpairs, '.\zs[:,]')
line 23: let i = index(plist, c)
line 24: if i < 0
line 25: " not found, in Insert mode try character before the cursor
line 26: if c_col > 1 && (mode() == 'i' || mode() == 'R')
line 27: let before = strlen(c_before)
line 28: let c = c_before
line 29: let i = index(plist, c)
line 30: endif
line 31: if i < 0
line 32: " not found, nothing to do
line 33: return
line 34: endif
line 35: endif
line 36:
line 37: " Figure out the arguments for searchpairpos().
line 38: if i % 2 == 0
line 39: let s_flags = 'nW'
line 40: let c2 = plist[i + 1]
line 41: else
line 42: let s_flags = 'nbW'
line 43: let c2 = c
line 44: let c = plist[i - 1]
line 45: endif
line 46: if c == '['
line 47: let c = '\['
line 48: let c2 = '\]'
line 49: endif
line 50:
line 51: " Find the match. When it was just before the cursor move it there for a
line 52: " moment.
line 53: if before > 0
line 54: let has_getcurpos = exists("*getcurpos")
line 55: if has_getcurpos
line 56: " getcurpos() is more efficient but doesn't exist before 7.4.313.
line 57: let save_cursor = getcurpos()
line 58: else
line 59: let save_cursor = winsaveview()
line 60: endif
line 61: call cursor(c_lnum, c_col - before)
line 62: endif
line 63:
line 64: if !has("syntax") || !exists("g:syntax_on")
line 65: let s_skip = "0"
line 66: else
line 67: " Build an expression that detects whether the current cursor position is
line 68: " in certain syntax types (string, comment, etc.), for use as
line 69: " searchpairpos()'s skip argument.
line 70: " We match "escape" for special items, such as lispEscapeSpecial.
line 71: let s_skip = '!empty(filter(map(synstack(line("."), col(".")), ''synIDattr(v:val, "name")''), ' . '''v:val =~? "string\\|character\\|singlequote\\|escape\\|comment"''))'
line 73: " If executing the expression determines that the cursor is currently in
line 74: " one of the syntax types, then we want searchpairpos() to find the pair
line 75: " within those syntax types (i.e., not skip). Otherwise, the cursor is
line 76: " outside of the syntax types and s_skip should keep its value so we skip
line 77: " any matching pair inside the syntax types.
line 78: " Catch if this throws E363: pattern uses more memory than 'maxmempattern'.
line 79: try
line 80: execute 'if ' . s_skip . ' | let s_skip = "0" | endif'
line 80: if !empty(filter(map(synstack(line("."), col(".")), 'synIDattr(v:val, "name")'), 'v:val =~? "string\\|character\\|singlequote\\|escape\\|comment"')) | let s_skip = "0" | endif
line 80: let s_skip = "0" | endif
line 80: endif
line 81: catch /^Vim\%((\a\+)\)\=:E363/
line 82: " We won't find anything, so skip searching, should keep Vim responsive.
line 83: return
line 84: endtry
line 85: endif
line 86:
line 87: " Limit the search to lines visible in the window.
line 88: let stoplinebottom = line('w$')
line 89: let stoplinetop = line('w0')
line 90: if i % 2 == 0
line 91: let stopline = stoplinebottom
line 92: else
line 93: let stopline = stoplinetop
line 94: endif
line 95:
line 96: " Limit the search time to 300 msec to avoid a hang on very long lines.
line 97: " This fails when a timeout is not supported.
line 98: if mode() == 'i' || mode() == 'R'
line 99: let timeout = exists("b:matchparen_insert_timeout") ? b:matchparen_insert_timeout : g:matchparen_insert_timeout
line 100: else
line 101: let timeout = exists("b:matchparen_timeout") ? b:matchparen_timeout : g:matchparen_timeout
line 102: endif
line 103: try
line 104: let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline, timeout)
line 105: catch /E118/
line 106: " Can't use the timeout, restrict the stopline a bit more to avoid taking
line 107: " a long time on closed folds and long lines.
line 108: " The "viewable" variables give a range in which we can scroll while
line 109: " keeping the cursor at the same position.
line 110: " adjustedScrolloff accounts for very large numbers of scrolloff.
line 111: let adjustedScrolloff = min([&scrolloff, (line('w$') - line('w0')) / 2])
line 112: let bottom_viewable = min([line('$'), c_lnum + &lines - adjustedScrolloff - 2])
line 113: let top_viewable = max([1, c_lnum-&lines+adjustedScrolloff + 2])
line 114: " one of these stoplines will be adjusted below, but the current values are
line 115: " minimal boundaries within the current window
line 116: if i % 2 == 0
line 117: if has("byte_offset") && has("syntax_items") && &smc > 0
line 118: ^Ilet stopbyte = min([line2byte("$"), line2byte(".") + col(".") + &smc * 2])
line 119: ^Ilet stopline = min([bottom_viewable, byte2line(stopbyte)])
line 120: else
line 121: ^Ilet stopline = min([bottom_viewable, c_lnum + 100])
line 122: endif
line 123: let stoplinebottom = stopline
line 124: else
line 125: if has("byte_offset") && has("syntax_items") && &smc > 0
line 126: ^Ilet stopbyte = max([1, line2byte(".") + col(".") - &smc * 2])
line 127: ^Ilet stopline = max([top_viewable, byte2line(stopbyte)])
line 128: else
line 129: ^Ilet stopline = max([top_viewable, c_lnum - 100])
line 130: endif
line 131: let stoplinetop = stopline
line 132: endif
line 133: let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline)
line 134: endtry
line 135:
line 136: if before > 0
line 137: if has_getcurpos
line 138: call setpos('.', save_cursor)
line 139: else
line 140: call winrestview(save_cursor)
line 141: endif
line 142: endif
line 143:
line 144: " If a match is found setup match highlighting.
line 145: if m_lnum > 0 && m_lnum >= stoplinetop && m_lnum <= stoplinebottom
line 146: if exists('*matchaddpos')
line 147: call matchaddpos('MatchParen', [[c_lnum, c_col - before], [m_lnum, m_col]], 10, 3)
line 148: else
line 149: exe '3match MatchParen /\(\%' . c_lnum . 'l\%' . (c_col - before) . 'c\)\|\(\%' . m_lnum . 'l\%' . m_col . 'c\)/'
line 151: endif
line 152: let w:paren_hl_on = 1
line 153: endif
<SNR>55_Highlight_Matching_Pair returning #0
continuing in TextChangedI Autocommands for "*"
calling lightline#link()
line 1: let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
line 2: if s:mode ==# mode
line 3: return ''
lightline#link returning ''
calling lightline#mode()
line 1: return get(s:lightline.mode_map, mode(), '')
lightline#mode returning 'INSERT'
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling FugitiveHead()
line 1: let dir = FugitiveGitDir(a:0 > 1 ? a:2 : -1)
calling FugitiveGitDir(-1)
line 1: if !a:0 || type(a:1) == type(0) && a:1 < 0
line 2: if exists('g:fugitive_event')
line 3: return g:fugitive_event
line 4: endif
line 5: let dir = get(b:, 'git_dir', '')
line 6: if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|prompt\)$')
line 7: return FugitiveExtractGitDir(getcwd())
line 8: endif
line 9: return dir
FugitiveGitDir returning ''
continuing in FugitiveHead
line 2: if empty(dir)
line 3: return ''
FugitiveHead returning ''
calling coc#api#call('eval', ['[coc#util#cursor(), getline(".")]'])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 16('[coc#util#cursor(), getline(".")]')
line 1: return eval(a:expr)
calling coc#util#cursor()
line 1: let pos = getcurpos()
line 2: let content = pos[2] == 1 ? '' : getline('.')[0: pos[2] - 2]
line 3: return [pos[1] - 1, strchars(content)]
coc#util#cursor returning [0, 14]
continuing in 16
16 returning [[0, 14], 'const foo = ())']
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, [[0, 14], 'const foo = ())']]
calling coc#api#call('eval', ['[mode(),coc#util#cursor()]'])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 16('[mode(),coc#util#cursor()]')
line 1: return eval(a:expr)
calling coc#util#cursor()
line 1: let pos = getcurpos()
line 2: let content = pos[2] == 1 ? '' : getline('.')[0: pos[2] - 2]
line 3: return [pos[1] - 1, strchars(content)]
coc#util#cursor returning [0, 14]
continuing in 16
16 returning ['i', [0, 14]]
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, ['i', [0, 14]]]
calling coc#api#call('call_function', ['coc#util#get_content', [1]])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 13('coc#util#get_content', [1])
line 1: return call(a:method, a:args)
calling coc#util#get_content(1)
line 1: if !bufloaded(a:bufnr) | return '' | endif
line 1: return '' | endif
line 1: endif
line 2: return { 'content': join(getbufline(a:bufnr, 1, '$'), "\n"), 'changedtick': getbufvar(a:bufnr, 'changedtick') }
coc#util#get_content returning {'changedtick': 35, 'content': 'const foo = ())'}
continuing in 13
13 returning {'changedtick': 35, 'content': 'const foo = ())'}
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, {'changedtick': 35, 'content': 'const foo = ())'}]
Executing CursorHoldI Autocommands for "*"
autocommand call s:Autocmd('CursorHoldI', +expand('<abuf>'))
Executing: call s:Autocmd('CursorHoldI', +expand('<abuf>'))
calling <SNR>46_Autocmd('CursorHoldI', 1)
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['CursorHoldI', 1])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['CursorHoldI', 1])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in CursorHoldI Autocommands for "*"
calling lightline#link()
line 1: let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
line 2: if s:mode ==# mode
line 3: return ''
lightline#link returning ''
calling lightline#mode()
line 1: return get(s:lightline.mode_map, mode(), '')
lightline#mode returning 'INSERT'
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling FugitiveHead()
line 1: let dir = FugitiveGitDir(a:0 > 1 ? a:2 : -1)
calling FugitiveGitDir(-1)
line 1: if !a:0 || type(a:1) == type(0) && a:1 < 0
line 2: if exists('g:fugitive_event')
line 3: return g:fugitive_event
line 4: endif
line 5: let dir = get(b:, 'git_dir', '')
line 6: if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|prompt\)$')
line 7: return FugitiveExtractGitDir(getcwd())
line 8: endif
line 9: return dir
FugitiveGitDir returning ''
continuing in FugitiveHead
line 2: if empty(dir)
line 3: return ''
FugitiveHead returning ''
Executing InsertCharPre Autocommands for "*"
autocommand call s:Autocmd('InsertCharPre', v:char)
Executing: call s:Autocmd('InsertCharPre', v:char)
calling <SNR>46_Autocmd('InsertCharPre', ' ')
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['InsertCharPre', ' '])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['InsertCharPre', ' '])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in InsertCharPre Autocommands for "*"
Executing CursorMovedI Autocommands for "*"
autocommand call s:Autocmd('CursorMovedI', +expand('<abuf>'), [line('.'), col('.')])
Executing: call s:Autocmd('CursorMovedI', +expand('<abuf>'), [line('.'), col('.')])
calling <SNR>46_Autocmd('CursorMovedI', 1, [1, 16])
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['CursorMovedI', 1, [1, 16]])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['CursorMovedI', 1, [1, 16]])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in CursorMovedI Autocommands for "*"
Executing CursorMovedI Autocommands for "*"
autocommand call s:Highlight_Matching_Pair()
Executing: call s:Highlight_Matching_Pair()
calling <SNR>55_Highlight_Matching_Pair()
line 1: " Remove any previous match.
line 2: call s:Remove_Matches()
calling <SNR>55_Remove_Matches()
line 1: if exists('w:paren_hl_on') && w:paren_hl_on
line 2: silent! call matchdelete(3)
line 3: let w:paren_hl_on = 0
line 4: endif
<SNR>55_Remove_Matches returning #0
continuing in <SNR>55_Highlight_Matching_Pair
line 3:
line 4: " Avoid that we remove the popup menu.
line 5: " Return when there are no colors (looks like the cursor jumps).
line 6: if pumvisible() || (&t_Co < 8 && !has("gui_running"))
line 7: return
line 8: endif
line 9:
line 10: " Get the character under the cursor and check if it's in 'matchpairs'.
line 11: let c_lnum = line('.')
line 12: let c_col = col('.')
line 13: let before = 0
line 14:
line 15: let text = getline(c_lnum)
line 16: let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
line 17: if empty(matches)
line 18: let [c_before, c] = ['', '']
line 19: else
line 20: let [c_before, c] = matches[1:2]
line 21: endif
line 22: let plist = split(&matchpairs, '.\zs[:,]')
line 23: let i = index(plist, c)
line 24: if i < 0
line 25: " not found, in Insert mode try character before the cursor
line 26: if c_col > 1 && (mode() == 'i' || mode() == 'R')
line 27: let before = strlen(c_before)
line 28: let c = c_before
line 29: let i = index(plist, c)
line 30: endif
line 31: if i < 0
line 32: " not found, nothing to do
line 33: return
line 34: endif
line 35: endif
line 36:
line 37: " Figure out the arguments for searchpairpos().
line 38: if i % 2 == 0
line 39: let s_flags = 'nW'
line 40: let c2 = plist[i + 1]
line 41: else
line 42: let s_flags = 'nbW'
line 43: let c2 = c
line 44: let c = plist[i - 1]
line 45: endif
line 46: if c == '['
line 47: let c = '\['
line 48: let c2 = '\]'
line 49: endif
line 50:
line 51: " Find the match. When it was just before the cursor move it there for a
line 52: " moment.
line 53: if before > 0
line 54: let has_getcurpos = exists("*getcurpos")
line 55: if has_getcurpos
line 56: " getcurpos() is more efficient but doesn't exist before 7.4.313.
line 57: let save_cursor = getcurpos()
line 58: else
line 59: let save_cursor = winsaveview()
line 60: endif
line 61: call cursor(c_lnum, c_col - before)
line 62: endif
line 63:
line 64: if !has("syntax") || !exists("g:syntax_on")
line 65: let s_skip = "0"
line 66: else
line 67: " Build an expression that detects whether the current cursor position is
line 68: " in certain syntax types (string, comment, etc.), for use as
line 69: " searchpairpos()'s skip argument.
line 70: " We match "escape" for special items, such as lispEscapeSpecial.
line 71: let s_skip = '!empty(filter(map(synstack(line("."), col(".")), ''synIDattr(v:val, "name")''), ' . '''v:val =~? "string\\|character\\|singlequote\\|escape\\|comment"''))'
line 73: " If executing the expression determines that the cursor is currently in
line 74: " one of the syntax types, then we want searchpairpos() to find the pair
line 75: " within those syntax types (i.e., not skip). Otherwise, the cursor is
line 76: " outside of the syntax types and s_skip should keep its value so we skip
line 77: " any matching pair inside the syntax types.
line 78: " Catch if this throws E363: pattern uses more memory than 'maxmempattern'.
line 79: try
line 80: execute 'if ' . s_skip . ' | let s_skip = "0" | endif'
line 80: if !empty(filter(map(synstack(line("."), col(".")), 'synIDattr(v:val, "name")'), 'v:val =~? "string\\|character\\|singlequote\\|escape\\|comment"')) | let s_skip = "0" | endif
line 80: let s_skip = "0" | endif
line 80: endif
line 81: catch /^Vim\%((\a\+)\)\=:E363/
line 82: " We won't find anything, so skip searching, should keep Vim responsive.
line 83: return
line 84: endtry
line 85: endif
line 86:
line 87: " Limit the search to lines visible in the window.
line 88: let stoplinebottom = line('w$')
line 89: let stoplinetop = line('w0')
line 90: if i % 2 == 0
line 91: let stopline = stoplinebottom
line 92: else
line 93: let stopline = stoplinetop
line 94: endif
line 95:
line 96: " Limit the search time to 300 msec to avoid a hang on very long lines.
line 97: " This fails when a timeout is not supported.
line 98: if mode() == 'i' || mode() == 'R'
line 99: let timeout = exists("b:matchparen_insert_timeout") ? b:matchparen_insert_timeout : g:matchparen_insert_timeout
line 100: else
line 101: let timeout = exists("b:matchparen_timeout") ? b:matchparen_timeout : g:matchparen_timeout
line 102: endif
line 103: try
line 104: let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline, timeout)
line 105: catch /E118/
line 106: " Can't use the timeout, restrict the stopline a bit more to avoid taking
line 107: " a long time on closed folds and long lines.
line 108: " The "viewable" variables give a range in which we can scroll while
line 109: " keeping the cursor at the same position.
line 110: " adjustedScrolloff accounts for very large numbers of scrolloff.
line 111: let adjustedScrolloff = min([&scrolloff, (line('w$') - line('w0')) / 2])
line 112: let bottom_viewable = min([line('$'), c_lnum + &lines - adjustedScrolloff - 2])
line 113: let top_viewable = max([1, c_lnum-&lines+adjustedScrolloff + 2])
line 114: " one of these stoplines will be adjusted below, but the current values are
line 115: " minimal boundaries within the current window
line 116: if i % 2 == 0
line 117: if has("byte_offset") && has("syntax_items") && &smc > 0
line 118: ^Ilet stopbyte = min([line2byte("$"), line2byte(".") + col(".") + &smc * 2])
line 119: ^Ilet stopline = min([bottom_viewable, byte2line(stopbyte)])
line 120: else
line 121: ^Ilet stopline = min([bottom_viewable, c_lnum + 100])
line 122: endif
line 123: let stoplinebottom = stopline
line 124: else
line 125: if has("byte_offset") && has("syntax_items") && &smc > 0
line 126: ^Ilet stopbyte = max([1, line2byte(".") + col(".") - &smc * 2])
line 127: ^Ilet stopline = max([top_viewable, byte2line(stopbyte)])
line 128: else
line 129: ^Ilet stopline = max([top_viewable, c_lnum - 100])
line 130: endif
line 131: let stoplinetop = stopline
line 132: endif
line 133: let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline)
line 134: endtry
line 135:
line 136: if before > 0
line 137: if has_getcurpos
line 138: call setpos('.', save_cursor)
line 139: else
line 140: call winrestview(save_cursor)
line 141: endif
line 142: endif
line 143:
line 144: " If a match is found setup match highlighting.
line 145: if m_lnum > 0 && m_lnum >= stoplinetop && m_lnum <= stoplinebottom
line 146: if exists('*matchaddpos')
line 147: call matchaddpos('MatchParen', [[c_lnum, c_col - before], [m_lnum, m_col]], 10, 3)
line 148: else
line 149: exe '3match MatchParen /\(\%' . c_lnum . 'l\%' . (c_col - before) . 'c\)\|\(\%' . m_lnum . 'l\%' . m_col . 'c\)/'
line 151: endif
line 152: let w:paren_hl_on = 1
line 153: endif
<SNR>55_Highlight_Matching_Pair returning #0
continuing in CursorMovedI Autocommands for "*"
Executing TextChangedI Autocommands for "*"
autocommand call s:Autocmd('TextChangedI', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
Executing: call s:Autocmd('TextChangedI', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
calling <SNR>46_Autocmd('TextChangedI', 1, {'lnum': 1, 'col': 16, 'changedtick': 36, 'pre': 'const foo = () '})
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['TextChangedI', 1, {'lnum': 1, 'col':...edtick': 36, 'pre': 'const foo = () '}])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['TextChangedI', 1, {'lnum': 1, 'col':...edtick': 36, 'pre': 'const foo = () '}])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in TextChangedI Autocommands for "*"
Executing TextChangedI Autocommands for "*"
autocommand call s:Highlight_Matching_Pair()
Executing: call s:Highlight_Matching_Pair()
calling <SNR>55_Highlight_Matching_Pair()
line 1: " Remove any previous match.
line 2: call s:Remove_Matches()
calling <SNR>55_Remove_Matches()
line 1: if exists('w:paren_hl_on') && w:paren_hl_on
line 2: silent! call matchdelete(3)
line 3: let w:paren_hl_on = 0
line 4: endif
<SNR>55_Remove_Matches returning #0
continuing in <SNR>55_Highlight_Matching_Pair
line 3:
line 4: " Avoid that we remove the popup menu.
line 5: " Return when there are no colors (looks like the cursor jumps).
line 6: if pumvisible() || (&t_Co < 8 && !has("gui_running"))
line 7: return
line 8: endif
line 9:
line 10: " Get the character under the cursor and check if it's in 'matchpairs'.
line 11: let c_lnum = line('.')
line 12: let c_col = col('.')
line 13: let before = 0
line 14:
line 15: let text = getline(c_lnum)
line 16: let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
line 17: if empty(matches)
line 18: let [c_before, c] = ['', '']
line 19: else
line 20: let [c_before, c] = matches[1:2]
line 21: endif
line 22: let plist = split(&matchpairs, '.\zs[:,]')
line 23: let i = index(plist, c)
line 24: if i < 0
line 25: " not found, in Insert mode try character before the cursor
line 26: if c_col > 1 && (mode() == 'i' || mode() == 'R')
line 27: let before = strlen(c_before)
line 28: let c = c_before
line 29: let i = index(plist, c)
line 30: endif
line 31: if i < 0
line 32: " not found, nothing to do
line 33: return
line 34: endif
line 35: endif
line 36:
line 37: " Figure out the arguments for searchpairpos().
line 38: if i % 2 == 0
line 39: let s_flags = 'nW'
line 40: let c2 = plist[i + 1]
line 41: else
line 42: let s_flags = 'nbW'
line 43: let c2 = c
line 44: let c = plist[i - 1]
line 45: endif
line 46: if c == '['
line 47: let c = '\['
line 48: let c2 = '\]'
line 49: endif
line 50:
line 51: " Find the match. When it was just before the cursor move it there for a
line 52: " moment.
line 53: if before > 0
line 54: let has_getcurpos = exists("*getcurpos")
line 55: if has_getcurpos
line 56: " getcurpos() is more efficient but doesn't exist before 7.4.313.
line 57: let save_cursor = getcurpos()
line 58: else
line 59: let save_cursor = winsaveview()
line 60: endif
line 61: call cursor(c_lnum, c_col - before)
line 62: endif
line 63:
line 64: if !has("syntax") || !exists("g:syntax_on")
line 65: let s_skip = "0"
line 66: else
line 67: " Build an expression that detects whether the current cursor position is
line 68: " in certain syntax types (string, comment, etc.), for use as
line 69: " searchpairpos()'s skip argument.
line 70: " We match "escape" for special items, such as lispEscapeSpecial.
line 71: let s_skip = '!empty(filter(map(synstack(line("."), col(".")), ''synIDattr(v:val, "name")''), ' . '''v:val =~? "string\\|character\\|singlequote\\|escape\\|comment"''))'
line 73: " If executing the expression determines that the cursor is currently in
line 74: " one of the syntax types, then we want searchpairpos() to find the pair
line 75: " within those syntax types (i.e., not skip). Otherwise, the cursor is
line 76: " outside of the syntax types and s_skip should keep its value so we skip
line 77: " any matching pair inside the syntax types.
line 78: " Catch if this throws E363: pattern uses more memory than 'maxmempattern'.
line 79: try
line 80: execute 'if ' . s_skip . ' | let s_skip = "0" | endif'
line 80: if !empty(filter(map(synstack(line("."), col(".")), 'synIDattr(v:val, "name")'), 'v:val =~? "string\\|character\\|singlequote\\|escape\\|comment"')) | let s_skip = "0" | endif
line 80: let s_skip = "0" | endif
line 80: endif
line 81: catch /^Vim\%((\a\+)\)\=:E363/
line 82: " We won't find anything, so skip searching, should keep Vim responsive.
line 83: return
line 84: endtry
line 85: endif
line 86:
line 87: " Limit the search to lines visible in the window.
line 88: let stoplinebottom = line('w$')
line 89: let stoplinetop = line('w0')
line 90: if i % 2 == 0
line 91: let stopline = stoplinebottom
line 92: else
line 93: let stopline = stoplinetop
line 94: endif
line 95:
line 96: " Limit the search time to 300 msec to avoid a hang on very long lines.
line 97: " This fails when a timeout is not supported.
line 98: if mode() == 'i' || mode() == 'R'
line 99: let timeout = exists("b:matchparen_insert_timeout") ? b:matchparen_insert_timeout : g:matchparen_insert_timeout
line 100: else
line 101: let timeout = exists("b:matchparen_timeout") ? b:matchparen_timeout : g:matchparen_timeout
line 102: endif
line 103: try
line 104: let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline, timeout)
line 105: catch /E118/
line 106: " Can't use the timeout, restrict the stopline a bit more to avoid taking
line 107: " a long time on closed folds and long lines.
line 108: " The "viewable" variables give a range in which we can scroll while
line 109: " keeping the cursor at the same position.
line 110: " adjustedScrolloff accounts for very large numbers of scrolloff.
line 111: let adjustedScrolloff = min([&scrolloff, (line('w$') - line('w0')) / 2])
line 112: let bottom_viewable = min([line('$'), c_lnum + &lines - adjustedScrolloff - 2])
line 113: let top_viewable = max([1, c_lnum-&lines+adjustedScrolloff + 2])
line 114: " one of these stoplines will be adjusted below, but the current values are
line 115: " minimal boundaries within the current window
line 116: if i % 2 == 0
line 117: if has("byte_offset") && has("syntax_items") && &smc > 0
line 118: ^Ilet stopbyte = min([line2byte("$"), line2byte(".") + col(".") + &smc * 2])
line 119: ^Ilet stopline = min([bottom_viewable, byte2line(stopbyte)])
line 120: else
line 121: ^Ilet stopline = min([bottom_viewable, c_lnum + 100])
line 122: endif
line 123: let stoplinebottom = stopline
line 124: else
line 125: if has("byte_offset") && has("syntax_items") && &smc > 0
line 126: ^Ilet stopbyte = max([1, line2byte(".") + col(".") - &smc * 2])
line 127: ^Ilet stopline = max([top_viewable, byte2line(stopbyte)])
line 128: else
line 129: ^Ilet stopline = max([top_viewable, c_lnum - 100])
line 130: endif
line 131: let stoplinetop = stopline
line 132: endif
line 133: let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline)
line 134: endtry
line 135:
line 136: if before > 0
line 137: if has_getcurpos
line 138: call setpos('.', save_cursor)
line 139: else
line 140: call winrestview(save_cursor)
line 141: endif
line 142: endif
line 143:
line 144: " If a match is found setup match highlighting.
line 145: if m_lnum > 0 && m_lnum >= stoplinetop && m_lnum <= stoplinebottom
line 146: if exists('*matchaddpos')
line 147: call matchaddpos('MatchParen', [[c_lnum, c_col - before], [m_lnum, m_col]], 10, 3)
line 148: else
line 149: exe '3match MatchParen /\(\%' . c_lnum . 'l\%' . (c_col - before) . 'c\)\|\(\%' . m_lnum . 'l\%' . m_col . 'c\)/'
line 151: endif
line 152: let w:paren_hl_on = 1
line 153: endif
<SNR>55_Highlight_Matching_Pair returning #0
continuing in TextChangedI Autocommands for "*"
calling lightline#link()
line 1: let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
line 2: if s:mode ==# mode
line 3: return ''
lightline#link returning ''
calling lightline#mode()
line 1: return get(s:lightline.mode_map, mode(), '')
lightline#mode returning 'INSERT'
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling FugitiveHead()
line 1: let dir = FugitiveGitDir(a:0 > 1 ? a:2 : -1)
calling FugitiveGitDir(-1)
line 1: if !a:0 || type(a:1) == type(0) && a:1 < 0
line 2: if exists('g:fugitive_event')
line 3: return g:fugitive_event
line 4: endif
line 5: let dir = get(b:, 'git_dir', '')
line 6: if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|prompt\)$')
line 7: return FugitiveExtractGitDir(getcwd())
line 8: endif
line 9: return dir
FugitiveGitDir returning ''
continuing in FugitiveHead
line 2: if empty(dir)
line 3: return ''
FugitiveHead returning ''
calling coc#api#call('eval', ['[coc#util#cursor(), getline(".")]'])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 16('[coc#util#cursor(), getline(".")]')
line 1: return eval(a:expr)
calling coc#util#cursor()
line 1: let pos = getcurpos()
line 2: let content = pos[2] == 1 ? '' : getline('.')[0: pos[2] - 2]
line 3: return [pos[1] - 1, strchars(content)]
coc#util#cursor returning [0, 15]
continuing in 16
16 returning [[0, 15], 'const foo = () )']
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, [[0, 15], 'const foo = () )']]
calling coc#api#call('call_function', ['coc#util#get_content', [1]])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 13('coc#util#get_content', [1])
line 1: return call(a:method, a:args)
calling coc#util#get_content(1)
line 1: if !bufloaded(a:bufnr) | return '' | endif
line 1: return '' | endif
line 1: endif
line 2: return { 'content': join(getbufline(a:bufnr, 1, '$'), "\n"), 'changedtick': getbufvar(a:bufnr, 'changedtick') }
coc#util#get_content returning {'changedtick': 36, 'content': 'const foo = () )'}
continuing in 13
13 returning {'changedtick': 36, 'content': 'const foo = () )'}
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, {'changedtick': 36, 'content': 'const foo = () )'}]
Executing InsertCharPre Autocommands for "*"
autocommand call s:Autocmd('InsertCharPre', v:char)
Executing: call s:Autocmd('InsertCharPre', v:char)
calling <SNR>46_Autocmd('InsertCharPre', '=')
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['InsertCharPre', '='])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['InsertCharPre', '='])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in InsertCharPre Autocommands for "*"
Executing CursorMovedI Autocommands for "*"
autocommand call s:Autocmd('CursorMovedI', +expand('<abuf>'), [line('.'), col('.')])
Executing: call s:Autocmd('CursorMovedI', +expand('<abuf>'), [line('.'), col('.')])
calling <SNR>46_Autocmd('CursorMovedI', 1, [1, 17])
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['CursorMovedI', 1, [1, 17]])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['CursorMovedI', 1, [1, 17]])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in CursorMovedI Autocommands for "*"
Executing CursorMovedI Autocommands for "*"
autocommand call s:Highlight_Matching_Pair()
Executing: call s:Highlight_Matching_Pair()
calling <SNR>55_Highlight_Matching_Pair()
line 1: " Remove any previous match.
line 2: call s:Remove_Matches()
calling <SNR>55_Remove_Matches()
line 1: if exists('w:paren_hl_on') && w:paren_hl_on
line 2: silent! call matchdelete(3)
line 3: let w:paren_hl_on = 0
line 4: endif
<SNR>55_Remove_Matches returning #0
continuing in <SNR>55_Highlight_Matching_Pair
line 3:
line 4: " Avoid that we remove the popup menu.
line 5: " Return when there are no colors (looks like the cursor jumps).
line 6: if pumvisible() || (&t_Co < 8 && !has("gui_running"))
line 7: return
line 8: endif
line 9:
line 10: " Get the character under the cursor and check if it's in 'matchpairs'.
line 11: let c_lnum = line('.')
line 12: let c_col = col('.')
line 13: let before = 0
line 14:
line 15: let text = getline(c_lnum)
line 16: let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
line 17: if empty(matches)
line 18: let [c_before, c] = ['', '']
line 19: else
line 20: let [c_before, c] = matches[1:2]
line 21: endif
line 22: let plist = split(&matchpairs, '.\zs[:,]')
line 23: let i = index(plist, c)
line 24: if i < 0
line 25: " not found, in Insert mode try character before the cursor
line 26: if c_col > 1 && (mode() == 'i' || mode() == 'R')
line 27: let before = strlen(c_before)
line 28: let c = c_before
line 29: let i = index(plist, c)
line 30: endif
line 31: if i < 0
line 32: " not found, nothing to do
line 33: return
line 34: endif
line 35: endif
line 36:
line 37: " Figure out the arguments for searchpairpos().
line 38: if i % 2 == 0
line 39: let s_flags = 'nW'
line 40: let c2 = plist[i + 1]
line 41: else
line 42: let s_flags = 'nbW'
line 43: let c2 = c
line 44: let c = plist[i - 1]
line 45: endif
line 46: if c == '['
line 47: let c = '\['
line 48: let c2 = '\]'
line 49: endif
line 50:
line 51: " Find the match. When it was just before the cursor move it there for a
line 52: " moment.
line 53: if before > 0
line 54: let has_getcurpos = exists("*getcurpos")
line 55: if has_getcurpos
line 56: " getcurpos() is more efficient but doesn't exist before 7.4.313.
line 57: let save_cursor = getcurpos()
line 58: else
line 59: let save_cursor = winsaveview()
line 60: endif
line 61: call cursor(c_lnum, c_col - before)
line 62: endif
line 63:
line 64: if !has("syntax") || !exists("g:syntax_on")
line 65: let s_skip = "0"
line 66: else
line 67: " Build an expression that detects whether the current cursor position is
line 68: " in certain syntax types (string, comment, etc.), for use as
line 69: " searchpairpos()'s skip argument.
line 70: " We match "escape" for special items, such as lispEscapeSpecial.
line 71: let s_skip = '!empty(filter(map(synstack(line("."), col(".")), ''synIDattr(v:val, "name")''), ' . '''v:val =~? "string\\|character\\|singlequote\\|escape\\|comment"''))'
line 73: " If executing the expression determines that the cursor is currently in
line 74: " one of the syntax types, then we want searchpairpos() to find the pair
line 75: " within those syntax types (i.e., not skip). Otherwise, the cursor is
line 76: " outside of the syntax types and s_skip should keep its value so we skip
line 77: " any matching pair inside the syntax types.
line 78: " Catch if this throws E363: pattern uses more memory than 'maxmempattern'.
line 79: try
line 80: execute 'if ' . s_skip . ' | let s_skip = "0" | endif'
line 80: if !empty(filter(map(synstack(line("."), col(".")), 'synIDattr(v:val, "name")'), 'v:val =~? "string\\|character\\|singlequote\\|escape\\|comment"')) | let s_skip = "0" | endif
line 80: let s_skip = "0" | endif
line 80: endif
line 81: catch /^Vim\%((\a\+)\)\=:E363/
line 82: " We won't find anything, so skip searching, should keep Vim responsive.
line 83: return
line 84: endtry
line 85: endif
line 86:
line 87: " Limit the search to lines visible in the window.
line 88: let stoplinebottom = line('w$')
line 89: let stoplinetop = line('w0')
line 90: if i % 2 == 0
line 91: let stopline = stoplinebottom
line 92: else
line 93: let stopline = stoplinetop
line 94: endif
line 95:
line 96: " Limit the search time to 300 msec to avoid a hang on very long lines.
line 97: " This fails when a timeout is not supported.
line 98: if mode() == 'i' || mode() == 'R'
line 99: let timeout = exists("b:matchparen_insert_timeout") ? b:matchparen_insert_timeout : g:matchparen_insert_timeout
line 100: else
line 101: let timeout = exists("b:matchparen_timeout") ? b:matchparen_timeout : g:matchparen_timeout
line 102: endif
line 103: try
line 104: let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline, timeout)
line 105: catch /E118/
line 106: " Can't use the timeout, restrict the stopline a bit more to avoid taking
line 107: " a long time on closed folds and long lines.
line 108: " The "viewable" variables give a range in which we can scroll while
line 109: " keeping the cursor at the same position.
line 110: " adjustedScrolloff accounts for very large numbers of scrolloff.
line 111: let adjustedScrolloff = min([&scrolloff, (line('w$') - line('w0')) / 2])
line 112: let bottom_viewable = min([line('$'), c_lnum + &lines - adjustedScrolloff - 2])
line 113: let top_viewable = max([1, c_lnum-&lines+adjustedScrolloff + 2])
line 114: " one of these stoplines will be adjusted below, but the current values are
line 115: " minimal boundaries within the current window
line 116: if i % 2 == 0
line 117: if has("byte_offset") && has("syntax_items") && &smc > 0
line 118: ^Ilet stopbyte = min([line2byte("$"), line2byte(".") + col(".") + &smc * 2])
line 119: ^Ilet stopline = min([bottom_viewable, byte2line(stopbyte)])
line 120: else
line 121: ^Ilet stopline = min([bottom_viewable, c_lnum + 100])
line 122: endif
line 123: let stoplinebottom = stopline
line 124: else
line 125: if has("byte_offset") && has("syntax_items") && &smc > 0
line 126: ^Ilet stopbyte = max([1, line2byte(".") + col(".") - &smc * 2])
line 127: ^Ilet stopline = max([top_viewable, byte2line(stopbyte)])
line 128: else
line 129: ^Ilet stopline = max([top_viewable, c_lnum - 100])
line 130: endif
line 131: let stoplinetop = stopline
line 132: endif
line 133: let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline)
line 134: endtry
line 135:
line 136: if before > 0
line 137: if has_getcurpos
line 138: call setpos('.', save_cursor)
line 139: else
line 140: call winrestview(save_cursor)
line 141: endif
line 142: endif
line 143:
line 144: " If a match is found setup match highlighting.
line 145: if m_lnum > 0 && m_lnum >= stoplinetop && m_lnum <= stoplinebottom
line 146: if exists('*matchaddpos')
line 147: call matchaddpos('MatchParen', [[c_lnum, c_col - before], [m_lnum, m_col]], 10, 3)
line 148: else
line 149: exe '3match MatchParen /\(\%' . c_lnum . 'l\%' . (c_col - before) . 'c\)\|\(\%' . m_lnum . 'l\%' . m_col . 'c\)/'
line 151: endif
line 152: let w:paren_hl_on = 1
line 153: endif
<SNR>55_Highlight_Matching_Pair returning #0
continuing in CursorMovedI Autocommands for "*"
Executing TextChangedI Autocommands for "*"
autocommand call s:Autocmd('TextChangedI', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
Executing: call s:Autocmd('TextChangedI', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
calling <SNR>46_Autocmd('TextChangedI', 1, {'lnum': 1, 'col': 17, 'changedtick': 37, 'pre': 'const foo = () ='})
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['TextChangedI', 1, {'lnum': 1, 'col':...dtick': 37, 'pre': 'const foo = () ='}])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['TextChangedI', 1, {'lnum': 1, 'col':...dtick': 37, 'pre': 'const foo = () ='}])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in TextChangedI Autocommands for "*"
Executing TextChangedI Autocommands for "*"
autocommand call s:Highlight_Matching_Pair()
Executing: call s:Highlight_Matching_Pair()
calling <SNR>55_Highlight_Matching_Pair()
line 1: " Remove any previous match.
line 2: call s:Remove_Matches()
calling <SNR>55_Remove_Matches()
line 1: if exists('w:paren_hl_on') && w:paren_hl_on
line 2: silent! call matchdelete(3)
line 3: let w:paren_hl_on = 0
line 4: endif
<SNR>55_Remove_Matches returning #0
continuing in <SNR>55_Highlight_Matching_Pair
line 3:
line 4: " Avoid that we remove the popup menu.
line 5: " Return when there are no colors (looks like the cursor jumps).
line 6: if pumvisible() || (&t_Co < 8 && !has("gui_running"))
line 7: return
line 8: endif
line 9:
line 10: " Get the character under the cursor and check if it's in 'matchpairs'.
line 11: let c_lnum = line('.')
line 12: let c_col = col('.')
line 13: let before = 0
line 14:
line 15: let text = getline(c_lnum)
line 16: let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
line 17: if empty(matches)
line 18: let [c_before, c] = ['', '']
line 19: else
line 20: let [c_before, c] = matches[1:2]
line 21: endif
line 22: let plist = split(&matchpairs, '.\zs[:,]')
line 23: let i = index(plist, c)
line 24: if i < 0
line 25: " not found, in Insert mode try character before the cursor
line 26: if c_col > 1 && (mode() == 'i' || mode() == 'R')
line 27: let before = strlen(c_before)
line 28: let c = c_before
line 29: let i = index(plist, c)
line 30: endif
line 31: if i < 0
line 32: " not found, nothing to do
line 33: return
line 34: endif
line 35: endif
line 36:
line 37: " Figure out the arguments for searchpairpos().
line 38: if i % 2 == 0
line 39: let s_flags = 'nW'
line 40: let c2 = plist[i + 1]
line 41: else
line 42: let s_flags = 'nbW'
line 43: let c2 = c
line 44: let c = plist[i - 1]
line 45: endif
line 46: if c == '['
line 47: let c = '\['
line 48: let c2 = '\]'
line 49: endif
line 50:
line 51: " Find the match. When it was just before the cursor move it there for a
line 52: " moment.
line 53: if before > 0
line 54: let has_getcurpos = exists("*getcurpos")
line 55: if has_getcurpos
line 56: " getcurpos() is more efficient but doesn't exist before 7.4.313.
line 57: let save_cursor = getcurpos()
line 58: else
line 59: let save_cursor = winsaveview()
line 60: endif
line 61: call cursor(c_lnum, c_col - before)
line 62: endif
line 63:
line 64: if !has("syntax") || !exists("g:syntax_on")
line 65: let s_skip = "0"
line 66: else
line 67: " Build an expression that detects whether the current cursor position is
line 68: " in certain syntax types (string, comment, etc.), for use as
line 69: " searchpairpos()'s skip argument.
line 70: " We match "escape" for special items, such as lispEscapeSpecial.
line 71: let s_skip = '!empty(filter(map(synstack(line("."), col(".")), ''synIDattr(v:val, "name")''), ' . '''v:val =~? "string\\|character\\|singlequote\\|escape\\|comment"''))'
line 73: " If executing the expression determines that the cursor is currently in
line 74: " one of the syntax types, then we want searchpairpos() to find the pair
line 75: " within those syntax types (i.e., not skip). Otherwise, the cursor is
line 76: " outside of the syntax types and s_skip should keep its value so we skip
line 77: " any matching pair inside the syntax types.
line 78: " Catch if this throws E363: pattern uses more memory than 'maxmempattern'.
line 79: try
line 80: execute 'if ' . s_skip . ' | let s_skip = "0" | endif'
line 80: if !empty(filter(map(synstack(line("."), col(".")), 'synIDattr(v:val, "name")'), 'v:val =~? "string\\|character\\|singlequote\\|escape\\|comment"')) | let s_skip = "0" | endif
line 80: let s_skip = "0" | endif
line 80: endif
line 81: catch /^Vim\%((\a\+)\)\=:E363/
line 82: " We won't find anything, so skip searching, should keep Vim responsive.
line 83: return
line 84: endtry
line 85: endif
line 86:
line 87: " Limit the search to lines visible in the window.
line 88: let stoplinebottom = line('w$')
line 89: let stoplinetop = line('w0')
line 90: if i % 2 == 0
line 91: let stopline = stoplinebottom
line 92: else
line 93: let stopline = stoplinetop
line 94: endif
line 95:
line 96: " Limit the search time to 300 msec to avoid a hang on very long lines.
line 97: " This fails when a timeout is not supported.
line 98: if mode() == 'i' || mode() == 'R'
line 99: let timeout = exists("b:matchparen_insert_timeout") ? b:matchparen_insert_timeout : g:matchparen_insert_timeout
line 100: else
line 101: let timeout = exists("b:matchparen_timeout") ? b:matchparen_timeout : g:matchparen_timeout
line 102: endif
line 103: try
line 104: let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline, timeout)
line 105: catch /E118/
line 106: " Can't use the timeout, restrict the stopline a bit more to avoid taking
line 107: " a long time on closed folds and long lines.
line 108: " The "viewable" variables give a range in which we can scroll while
line 109: " keeping the cursor at the same position.
line 110: " adjustedScrolloff accounts for very large numbers of scrolloff.
line 111: let adjustedScrolloff = min([&scrolloff, (line('w$') - line('w0')) / 2])
line 112: let bottom_viewable = min([line('$'), c_lnum + &lines - adjustedScrolloff - 2])
line 113: let top_viewable = max([1, c_lnum-&lines+adjustedScrolloff + 2])
line 114: " one of these stoplines will be adjusted below, but the current values are
line 115: " minimal boundaries within the current window
line 116: if i % 2 == 0
line 117: if has("byte_offset") && has("syntax_items") && &smc > 0
line 118: ^Ilet stopbyte = min([line2byte("$"), line2byte(".") + col(".") + &smc * 2])
line 119: ^Ilet stopline = min([bottom_viewable, byte2line(stopbyte)])
line 120: else
line 121: ^Ilet stopline = min([bottom_viewable, c_lnum + 100])
line 122: endif
line 123: let stoplinebottom = stopline
line 124: else
line 125: if has("byte_offset") && has("syntax_items") && &smc > 0
line 126: ^Ilet stopbyte = max([1, line2byte(".") + col(".") - &smc * 2])
line 127: ^Ilet stopline = max([top_viewable, byte2line(stopbyte)])
line 128: else
line 129: ^Ilet stopline = max([top_viewable, c_lnum - 100])
line 130: endif
line 131: let stoplinetop = stopline
line 132: endif
line 133: let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline)
line 134: endtry
line 135:
line 136: if before > 0
line 137: if has_getcurpos
line 138: call setpos('.', save_cursor)
line 139: else
line 140: call winrestview(save_cursor)
line 141: endif
line 142: endif
line 143:
line 144: " If a match is found setup match highlighting.
line 145: if m_lnum > 0 && m_lnum >= stoplinetop && m_lnum <= stoplinebottom
line 146: if exists('*matchaddpos')
line 147: call matchaddpos('MatchParen', [[c_lnum, c_col - before], [m_lnum, m_col]], 10, 3)
line 148: else
line 149: exe '3match MatchParen /\(\%' . c_lnum . 'l\%' . (c_col - before) . 'c\)\|\(\%' . m_lnum . 'l\%' . m_col . 'c\)/'
line 151: endif
line 152: let w:paren_hl_on = 1
line 153: endif
<SNR>55_Highlight_Matching_Pair returning #0
continuing in TextChangedI Autocommands for "*"
calling lightline#link()
line 1: let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
line 2: if s:mode ==# mode
line 3: return ''
lightline#link returning ''
calling lightline#mode()
line 1: return get(s:lightline.mode_map, mode(), '')
lightline#mode returning 'INSERT'
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling FugitiveHead()
line 1: let dir = FugitiveGitDir(a:0 > 1 ? a:2 : -1)
calling FugitiveGitDir(-1)
line 1: if !a:0 || type(a:1) == type(0) && a:1 < 0
line 2: if exists('g:fugitive_event')
line 3: return g:fugitive_event
line 4: endif
line 5: let dir = get(b:, 'git_dir', '')
line 6: if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|prompt\)$')
line 7: return FugitiveExtractGitDir(getcwd())
line 8: endif
line 9: return dir
FugitiveGitDir returning ''
continuing in FugitiveHead
line 2: if empty(dir)
line 3: return ''
FugitiveHead returning ''
calling coc#api#call('eval', ['[coc#util#cursor(), getline(".")]'])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 16('[coc#util#cursor(), getline(".")]')
line 1: return eval(a:expr)
calling coc#util#cursor()
line 1: let pos = getcurpos()
line 2: let content = pos[2] == 1 ? '' : getline('.')[0: pos[2] - 2]
line 3: return [pos[1] - 1, strchars(content)]
coc#util#cursor returning [0, 16]
continuing in 16
16 returning [[0, 16], 'const foo = () =)']
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, [[0, 16], 'const foo = () =)']]
calling coc#api#call('call_function', ['coc#util#get_content', [1]])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 13('coc#util#get_content', [1])
line 1: return call(a:method, a:args)
calling coc#util#get_content(1)
line 1: if !bufloaded(a:bufnr) | return '' | endif
line 1: return '' | endif
line 1: endif
line 2: return { 'content': join(getbufline(a:bufnr, 1, '$'), "\n"), 'changedtick': getbufvar(a:bufnr, 'changedtick') }
coc#util#get_content returning {'changedtick': 37, 'content': 'const foo = () =)'}
continuing in 13
13 returning {'changedtick': 37, 'content': 'const foo = () =)'}
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, {'changedtick': 37, 'content': 'const foo = () =)'}]
calling coc#_insert_key('request', '6bf590d7-c7f2-11ea-8e1d-2353e2ff80b6')
line 1: if get(a:, 1, 1)
line 2: call coc#_cancel()
calling coc#_cancel()
line 1: " hack for close pum
line 2: if pumvisible() && &paste != 1
line 3: let g:coc#_context = {'start': 0, 'preselect': -1,'candidates': []}
line 4: call feedkeys("\<Plug>CocRefresh", 'i')
line 5: endif
coc#_cancel returning #0
continuing in coc#_insert_key
line 3: endif
line 4: return "\<c-r>=coc#rpc#".a:method."('doKeymap', ['".a:key."'])\<CR>"
coc#_insert_key returning '^R=coc#rpc#request(''doKeymap'', [''6bf590d7-c7f2-11ea-8e1d-2353e2ff80b6''])^M'
calling coc#rpc#request('doKeymap', ['6bf590d7-c7f2-11ea-8e1d-2353e2ff80b6'])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#request
line 2: return ''
line 3: endif
line 4: return s:client['request'](a:method, a:args)
calling <SNR>49_request('doKeymap', ['6bf590d7-c7f2-11ea-8e1d-2353e2ff80b6'])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_request
line 2: if empty(channel) | return '' | endif
line 2: return '' | endif
line 2: endif
line 3: try
line 4: if s:is_vim
line 5: let res = ch_evalexpr(channel, [a:method, a:args], {'timeout': 60 * 1000})
calling coc#api#call('call_function', ['bufnr', ['%']])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 13('bufnr', ['%'])
line 1: return call(a:method, a:args)
13 returning #1
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, 1]
continuing in <SNR>49_request
calling coc#api#call('call_function', ['coc#util#cursor', []])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 13('coc#util#cursor', [])
line 1: return call(a:method, a:args)
calling coc#util#cursor()
line 1: let pos = getcurpos()
line 2: let content = pos[2] == 1 ? '' : getline('.')[0: pos[2] - 2]
line 3: return [pos[1] - 1, strchars(content)]
coc#util#cursor returning [0, 16]
continuing in 13
13 returning [0, 16]
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, [0, 16]]
continuing in <SNR>49_request
line 6: if type(res) == 1 && res ==# ''
line 7: throw 'request '.a:method. ' '.string(a:args).' timeout after 60s'
line 8: endif
line 9: let [l:errmsg, res] = res
line 10: if !empty(l:errmsg)
line 11: throw l:errmsg
line 12: else
line 13: return res
:return > made pending
line 14: endif
line 15: else
line 16: return call('rpcrequest', [channel, a:method] + a:args)
line 17: endif
line 18: catch /.*/
line 19: if v:exception =~# 'E475'
line 20: if get(g:, 'coc_vim_leaving', 0) | return | endif
line 20: return | endif
line 20: endif
line 21: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 21: echom '['.self.name.'] server connection lost' | echohl None
line 21: echohl None
line 22: let name = self.name
line 23: call s:on_exit(name, 0)
line 24: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 25: elseif v:exception =~# 'E12'
line 26: " neovim's bug, ignore it
line 27: else
line 28: echohl Error | echo 'Error on request ('.a:method.'): '.v:exception | echohl None
line 28: echo 'Error on request ('.a:method.'): '.v:exception | echohl None
line 28: echohl None
line 29: endif
line 30: endtry
:return > resumed
<SNR>49_request returning '>'
continuing in coc#rpc#request
coc#rpc#request returning '>'
Executing InsertCharPre Autocommands for "*"
autocommand call s:Autocmd('InsertCharPre', v:char)
Executing: call s:Autocmd('InsertCharPre', v:char)
calling <SNR>46_Autocmd('InsertCharPre', '>')
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['InsertCharPre', '>'])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['InsertCharPre', '>'])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in InsertCharPre Autocommands for "*"
calling GetTsxIndent()
line 1: let cursyn = s:SynSOL(v:lnum)
calling <SNR>80_SynSOL(1)
line 1: return map(synstack(a:lnum, 1), 'synIDattr(v:val, "name")')
<SNR>80_SynSOL returning ['typescriptStorageClass']
continuing in GetTsxIndent
line 2: let prevsyn = s:SynEOL(v:lnum - 1)
calling <SNR>80_SynEOL(0)
line 1: let lnum = prevnonblank(a:lnum)
line 2: let col = strlen(getline(lnum))
line 3: return map(synstack(lnum, col), 'synIDattr(v:val, "name")')
<SNR>80_SynEOL returning #0
continuing in GetTsxIndent
line 3: let nextsyn = s:SynEOL(v:lnum + 1)
calling <SNR>80_SynEOL(2)
line 1: let lnum = prevnonblank(a:lnum)
line 2: let col = strlen(getline(lnum))
line 3: return map(synstack(lnum, col), 'synIDattr(v:val, "name")')
<SNR>80_SynEOL returning #0
continuing in GetTsxIndent
line 4: let currline = getline(v:lnum)
line 5:
line 6: if ((s:SynXMLish(prevsyn) && s:SynJSXContinues(cursyn, prevsyn)) || currline =~# '\v^\s*\<')
calling <SNR>80_SynXMLish(0)
line 1: return s:SynAttrJSX(get(a:syns, -1))
calling <SNR>80_SynAttrJSX(0)
line 1: return a:synattr =~ "^tsx"
<SNR>80_SynAttrJSX returning #0
continuing in <SNR>80_SynXMLish
<SNR>80_SynXMLish returning #0
continuing in GetTsxIndent
line 7: let preline = getline(v:lnum - 1)
line 8:
line 9: if currline =~# '\v^\s*\/?\>' " /> >
line 10: return preline =~# '\v^\s*\<' ? indent(v:lnum - 1) : indent(v:lnum - 1) - s:sw()
line 11: endif
line 12:
line 13: if preline =~# '\v\{\s*$' && preline !~# '\v^\s*\<'
line 14: return currline =~# '\v^\s*\}' ? indent(v:lnum - 1) : indent(v:lnum - 1) + s:sw()
line 15: endif
line 16:
line 17: " return ( | return ( | return (
line 18: " <div></div> | <div | <div
line 19: " {} | style={ | style={
line 20: " <div></div> | } | }
line 21: " ) | foo="bar"| ></div>
line 22: if preline =~# '\v\}\s*$'
line 23: if currline =~# '\v^\s*\<\/'
line 24: return indent(v:lnum - 1) - s:sw()
line 25: endif
line 26: let ind = indent(v:lnum - 1)
line 27: if preline =~# '\v^\s*\<'
line 28: let ind = ind + s:sw()
line 29: endif
line 30: if currline =~# '\v^\s*\/?\>'
line 31: let ind = ind - s:sw()
line 32: endif
line 33: return ind
line 34: endif
line 35:
line 36: " return ( | return (
line 37: " <div> | <div>
line 38: " </div> | </div>
line 39: " ##); | );
line 40: if preline =~# '\v(\s?|\k?)\($' || preline =~# '\v^\s*\<\>'
line 41: return indent(v:lnum - 1) + s:sw()
line 42: endif
line 43:
line 44: let ind = s:XmlIndentGet(v:lnum)
line 45:
line 46: " <div | <div
line 47: " hoge={ | hoge={
line 48: " <div></div> | ##<div></div>
line 49: if s:SynJsxEscapeJs(prevsyn) && preline =~# '\v\{\s*$'
line 50: let ind = ind + s:sw()
line 51: endif
line 52:
line 53: " />
line 54: if preline =~# '\v^\s*\/?\>$' || currline =~# '\v^\s*\<\/\>'
line 55: "let ind = currline =~# '\v^\s*\<\/' ? ind : ind + s:sw()
line 56: let ind = ind + s:sw()
line 57: " }> or }}\> or }}>
line 58: elseif preline =~# '\v^\s*\}?\}\s*\/?\>$'
line 59: let ind = ind + s:sw()
line 60: " ></a
line 61: elseif preline =~# '\v^\s*\>\<\/\a'
line 62: let ind = ind + s:sw()
line 63: elseif preline =~# '\v^\s*}}.+\<\/\k+\>$'
line 64: let ind = ind + s:sw()
line 65: endif
line 66:
line 67: " <div | <div
line 68: " hoge={ | hoge={
line 69: " <div></div> | <div></div>
line 70: " } | }##
line 71: if currline =~# '}$' && !(currline =~# '\v\{')
line 72: let ind = ind - s:sw()
line 73: endif
line 74:
line 75: if currline =~# '^\s*)' && s:SynJSXCloseTag(prevsyn)
line 76: let ind = ind - s:sw()
line 77: endif
line 78: else
line 79: let ind = GetTypescriptIndent()
calling GetTypescriptIndent()
line 1: let b:js_cache = get(b:,'js_cache',[0,0,0])
line 2: " Get the current line.
line 3: call cursor(v:lnum,1)
line 4: let l:line = getline('.')
line 5: " use synstack as it validates syn state and works in an empty line
line 6: let s:stack = synstack(v:lnum,1)
line 7: let syns = synIDattr(get(s:stack,-1),'name')
line 8:
line 9: " start with strings,comments,etc.
line 10: if syns =~? s:syng_com
line 11: ^Iif l:line =~ '^\s*\*'
line 12: ^I return cindent(v:lnum)
line 13: ^Ielseif l:line !~ '^\s*\/[/*]'
line 14: ^I return -1
line 15: ^Iendif
line 16: elseif syns =~? s:syng_str && l:line !~ '^[''"]'
line 17: ^Iif b:js_cache[0] == v:lnum - 1 && s:Balanced(v:lnum-1)
line 18: ^I let b:js_cache[0] = v:lnum
line 19: ^Iendif
line 20: ^Ireturn -1
line 21: endif
line 22: let l:lnum = s:PrevCodeLine(v:lnum - 1)
calling <SNR>78_PrevCodeLine(0)
line 1: let l:n = prevnonblank(a:lnum)
line 2: while l:n
line 3: ^Iif getline(l:n) =~ '^\s*\/[/*]'
line 4: ^I if (stridx(getline(l:n),'`') > 0 || getline(l:n-1)[-1:] == '\') && s:syn_at(l:n,1) =~? s:syng_str
line 6: ^I^Ireturn l:n
line 7: ^I endif
line 8: ^I let l:n = prevnonblank(l:n-1)
line 9: ^Ielseif getline(l:n) =~ '\([/*]\)\1\@![/*]' && s:syn_at(l:n,1) =~? s:syng_com
line 10: ^I let l:n = s:save_pos('eval', 'cursor('.l:n.',1) + search(''\m\/\*'',"bW")')
line 12: ^Ielse
line 13: ^I return l:n
line 14: ^Iendif
line 15: endwhile
<SNR>78_PrevCodeLine returning #0
continuing in GetTypescriptIndent
line 23: if !l:lnum
line 24: ^Ireturn
GetTypescriptIndent returning #0
continuing in GetTsxIndent
line 80: endif
line 81: return ind
GetTsxIndent returning #0
Executing CursorMovedI Autocommands for "*"
autocommand call s:Autocmd('CursorMovedI', +expand('<abuf>'), [line('.'), col('.')])
Executing: call s:Autocmd('CursorMovedI', +expand('<abuf>'), [line('.'), col('.')])
calling <SNR>46_Autocmd('CursorMovedI', 1, [1, 18])
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['CursorMovedI', 1, [1, 18]])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['CursorMovedI', 1, [1, 18]])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in CursorMovedI Autocommands for "*"
Executing CursorMovedI Autocommands for "*"
autocommand call s:Highlight_Matching_Pair()
Executing: call s:Highlight_Matching_Pair()
calling <SNR>55_Highlight_Matching_Pair()
line 1: " Remove any previous match.
line 2: call s:Remove_Matches()
calling <SNR>55_Remove_Matches()
line 1: if exists('w:paren_hl_on') && w:paren_hl_on
line 2: silent! call matchdelete(3)
line 3: let w:paren_hl_on = 0
line 4: endif
<SNR>55_Remove_Matches returning #0
continuing in <SNR>55_Highlight_Matching_Pair
line 3:
line 4: " Avoid that we remove the popup menu.
line 5: " Return when there are no colors (looks like the cursor jumps).
line 6: if pumvisible() || (&t_Co < 8 && !has("gui_running"))
line 7: return
line 8: endif
line 9:
line 10: " Get the character under the cursor and check if it's in 'matchpairs'.
line 11: let c_lnum = line('.')
line 12: let c_col = col('.')
line 13: let before = 0
line 14:
line 15: let text = getline(c_lnum)
line 16: let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
line 17: if empty(matches)
line 18: let [c_before, c] = ['', '']
line 19: else
line 20: let [c_before, c] = matches[1:2]
line 21: endif
line 22: let plist = split(&matchpairs, '.\zs[:,]')
line 23: let i = index(plist, c)
line 24: if i < 0
line 25: " not found, in Insert mode try character before the cursor
line 26: if c_col > 1 && (mode() == 'i' || mode() == 'R')
line 27: let before = strlen(c_before)
line 28: let c = c_before
line 29: let i = index(plist, c)
line 30: endif
line 31: if i < 0
line 32: " not found, nothing to do
line 33: return
line 34: endif
line 35: endif
line 36:
line 37: " Figure out the arguments for searchpairpos().
line 38: if i % 2 == 0
line 39: let s_flags = 'nW'
line 40: let c2 = plist[i + 1]
line 41: else
line 42: let s_flags = 'nbW'
line 43: let c2 = c
line 44: let c = plist[i - 1]
line 45: endif
line 46: if c == '['
line 47: let c = '\['
line 48: let c2 = '\]'
line 49: endif
line 50:
line 51: " Find the match. When it was just before the cursor move it there for a
line 52: " moment.
line 53: if before > 0
line 54: let has_getcurpos = exists("*getcurpos")
line 55: if has_getcurpos
line 56: " getcurpos() is more efficient but doesn't exist before 7.4.313.
line 57: let save_cursor = getcurpos()
line 58: else
line 59: let save_cursor = winsaveview()
line 60: endif
line 61: call cursor(c_lnum, c_col - before)
line 62: endif
line 63:
line 64: if !has("syntax") || !exists("g:syntax_on")
line 65: let s_skip = "0"
line 66: else
line 67: " Build an expression that detects whether the current cursor position is
line 68: " in certain syntax types (string, comment, etc.), for use as
line 69: " searchpairpos()'s skip argument.
line 70: " We match "escape" for special items, such as lispEscapeSpecial.
line 71: let s_skip = '!empty(filter(map(synstack(line("."), col(".")), ''synIDattr(v:val, "name")''), ' . '''v:val =~? "string\\|character\\|singlequote\\|escape\\|comment"''))'
line 73: " If executing the expression determines that the cursor is currently in
line 74: " one of the syntax types, then we want searchpairpos() to find the pair
line 75: " within those syntax types (i.e., not skip). Otherwise, the cursor is
line 76: " outside of the syntax types and s_skip should keep its value so we skip
line 77: " any matching pair inside the syntax types.
line 78: " Catch if this throws E363: pattern uses more memory than 'maxmempattern'.
line 79: try
line 80: execute 'if ' . s_skip . ' | let s_skip = "0" | endif'
line 80: if !empty(filter(map(synstack(line("."), col(".")), 'synIDattr(v:val, "name")'), 'v:val =~? "string\\|character\\|singlequote\\|escape\\|comment"')) | let s_skip = "0" | endif
line 80: let s_skip = "0" | endif
line 80: endif
line 81: catch /^Vim\%((\a\+)\)\=:E363/
line 82: " We won't find anything, so skip searching, should keep Vim responsive.
line 83: return
line 84: endtry
line 85: endif
line 86:
line 87: " Limit the search to lines visible in the window.
line 88: let stoplinebottom = line('w$')
line 89: let stoplinetop = line('w0')
line 90: if i % 2 == 0
line 91: let stopline = stoplinebottom
line 92: else
line 93: let stopline = stoplinetop
line 94: endif
line 95:
line 96: " Limit the search time to 300 msec to avoid a hang on very long lines.
line 97: " This fails when a timeout is not supported.
line 98: if mode() == 'i' || mode() == 'R'
line 99: let timeout = exists("b:matchparen_insert_timeout") ? b:matchparen_insert_timeout : g:matchparen_insert_timeout
line 100: else
line 101: let timeout = exists("b:matchparen_timeout") ? b:matchparen_timeout : g:matchparen_timeout
line 102: endif
line 103: try
line 104: let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline, timeout)
line 105: catch /E118/
line 106: " Can't use the timeout, restrict the stopline a bit more to avoid taking
line 107: " a long time on closed folds and long lines.
line 108: " The "viewable" variables give a range in which we can scroll while
line 109: " keeping the cursor at the same position.
line 110: " adjustedScrolloff accounts for very large numbers of scrolloff.
line 111: let adjustedScrolloff = min([&scrolloff, (line('w$') - line('w0')) / 2])
line 112: let bottom_viewable = min([line('$'), c_lnum + &lines - adjustedScrolloff - 2])
line 113: let top_viewable = max([1, c_lnum-&lines+adjustedScrolloff + 2])
line 114: " one of these stoplines will be adjusted below, but the current values are
line 115: " minimal boundaries within the current window
line 116: if i % 2 == 0
line 117: if has("byte_offset") && has("syntax_items") && &smc > 0
line 118: ^Ilet stopbyte = min([line2byte("$"), line2byte(".") + col(".") + &smc * 2])
line 119: ^Ilet stopline = min([bottom_viewable, byte2line(stopbyte)])
line 120: else
line 121: ^Ilet stopline = min([bottom_viewable, c_lnum + 100])
line 122: endif
line 123: let stoplinebottom = stopline
line 124: else
line 125: if has("byte_offset") && has("syntax_items") && &smc > 0
line 126: ^Ilet stopbyte = max([1, line2byte(".") + col(".") - &smc * 2])
line 127: ^Ilet stopline = max([top_viewable, byte2line(stopbyte)])
line 128: else
line 129: ^Ilet stopline = max([top_viewable, c_lnum - 100])
line 130: endif
line 131: let stoplinetop = stopline
line 132: endif
line 133: let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline)
line 134: endtry
line 135:
line 136: if before > 0
line 137: if has_getcurpos
line 138: call setpos('.', save_cursor)
line 139: else
line 140: call winrestview(save_cursor)
line 141: endif
line 142: endif
line 143:
line 144: " If a match is found setup match highlighting.
line 145: if m_lnum > 0 && m_lnum >= stoplinetop && m_lnum <= stoplinebottom
line 146: if exists('*matchaddpos')
line 147: call matchaddpos('MatchParen', [[c_lnum, c_col - before], [m_lnum, m_col]], 10, 3)
line 148: else
line 149: exe '3match MatchParen /\(\%' . c_lnum . 'l\%' . (c_col - before) . 'c\)\|\(\%' . m_lnum . 'l\%' . m_col . 'c\)/'
line 151: endif
line 152: let w:paren_hl_on = 1
line 153: endif
<SNR>55_Highlight_Matching_Pair returning #0
continuing in CursorMovedI Autocommands for "*"
Executing TextChangedI Autocommands for "*"
autocommand call s:Autocmd('TextChangedI', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
Executing: call s:Autocmd('TextChangedI', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
calling <SNR>46_Autocmd('TextChangedI', 1, {'lnum': 1, 'col': 18, 'changedtick': 38, 'pre': 'const foo = () =>'})
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['TextChangedI', 1, {'lnum': 1, 'col':...tick': 38, 'pre': 'const foo = () =>'}])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['TextChangedI', 1, {'lnum': 1, 'col':...tick': 38, 'pre': 'const foo = () =>'}])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in TextChangedI Autocommands for "*"
Executing TextChangedI Autocommands for "*"
autocommand call s:Highlight_Matching_Pair()
Executing: call s:Highlight_Matching_Pair()
calling <SNR>55_Highlight_Matching_Pair()
line 1: " Remove any previous match.
line 2: call s:Remove_Matches()
calling <SNR>55_Remove_Matches()
line 1: if exists('w:paren_hl_on') && w:paren_hl_on
line 2: silent! call matchdelete(3)
line 3: let w:paren_hl_on = 0
line 4: endif
<SNR>55_Remove_Matches returning #0
continuing in <SNR>55_Highlight_Matching_Pair
line 3:
line 4: " Avoid that we remove the popup menu.
line 5: " Return when there are no colors (looks like the cursor jumps).
line 6: if pumvisible() || (&t_Co < 8 && !has("gui_running"))
line 7: return
line 8: endif
line 9:
line 10: " Get the character under the cursor and check if it's in 'matchpairs'.
line 11: let c_lnum = line('.')
line 12: let c_col = col('.')
line 13: let before = 0
line 14:
line 15: let text = getline(c_lnum)
line 16: let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
line 17: if empty(matches)
line 18: let [c_before, c] = ['', '']
line 19: else
line 20: let [c_before, c] = matches[1:2]
line 21: endif
line 22: let plist = split(&matchpairs, '.\zs[:,]')
line 23: let i = index(plist, c)
line 24: if i < 0
line 25: " not found, in Insert mode try character before the cursor
line 26: if c_col > 1 && (mode() == 'i' || mode() == 'R')
line 27: let before = strlen(c_before)
line 28: let c = c_before
line 29: let i = index(plist, c)
line 30: endif
line 31: if i < 0
line 32: " not found, nothing to do
line 33: return
line 34: endif
line 35: endif
line 36:
line 37: " Figure out the arguments for searchpairpos().
line 38: if i % 2 == 0
line 39: let s_flags = 'nW'
line 40: let c2 = plist[i + 1]
line 41: else
line 42: let s_flags = 'nbW'
line 43: let c2 = c
line 44: let c = plist[i - 1]
line 45: endif
line 46: if c == '['
line 47: let c = '\['
line 48: let c2 = '\]'
line 49: endif
line 50:
line 51: " Find the match. When it was just before the cursor move it there for a
line 52: " moment.
line 53: if before > 0
line 54: let has_getcurpos = exists("*getcurpos")
line 55: if has_getcurpos
line 56: " getcurpos() is more efficient but doesn't exist before 7.4.313.
line 57: let save_cursor = getcurpos()
line 58: else
line 59: let save_cursor = winsaveview()
line 60: endif
line 61: call cursor(c_lnum, c_col - before)
line 62: endif
line 63:
line 64: if !has("syntax") || !exists("g:syntax_on")
line 65: let s_skip = "0"
line 66: else
line 67: " Build an expression that detects whether the current cursor position is
line 68: " in certain syntax types (string, comment, etc.), for use as
line 69: " searchpairpos()'s skip argument.
line 70: " We match "escape" for special items, such as lispEscapeSpecial.
line 71: let s_skip = '!empty(filter(map(synstack(line("."), col(".")), ''synIDattr(v:val, "name")''), ' . '''v:val =~? "string\\|character\\|singlequote\\|escape\\|comment"''))'
line 73: " If executing the expression determines that the cursor is currently in
line 74: " one of the syntax types, then we want searchpairpos() to find the pair
line 75: " within those syntax types (i.e., not skip). Otherwise, the cursor is
line 76: " outside of the syntax types and s_skip should keep its value so we skip
line 77: " any matching pair inside the syntax types.
line 78: " Catch if this throws E363: pattern uses more memory than 'maxmempattern'.
line 79: try
line 80: execute 'if ' . s_skip . ' | let s_skip = "0" | endif'
line 80: if !empty(filter(map(synstack(line("."), col(".")), 'synIDattr(v:val, "name")'), 'v:val =~? "string\\|character\\|singlequote\\|escape\\|comment"')) | let s_skip = "0" | endif
line 80: let s_skip = "0" | endif
line 80: endif
line 81: catch /^Vim\%((\a\+)\)\=:E363/
line 82: " We won't find anything, so skip searching, should keep Vim responsive.
line 83: return
line 84: endtry
line 85: endif
line 86:
line 87: " Limit the search to lines visible in the window.
line 88: let stoplinebottom = line('w$')
line 89: let stoplinetop = line('w0')
line 90: if i % 2 == 0
line 91: let stopline = stoplinebottom
line 92: else
line 93: let stopline = stoplinetop
line 94: endif
line 95:
line 96: " Limit the search time to 300 msec to avoid a hang on very long lines.
line 97: " This fails when a timeout is not supported.
line 98: if mode() == 'i' || mode() == 'R'
line 99: let timeout = exists("b:matchparen_insert_timeout") ? b:matchparen_insert_timeout : g:matchparen_insert_timeout
line 100: else
line 101: let timeout = exists("b:matchparen_timeout") ? b:matchparen_timeout : g:matchparen_timeout
line 102: endif
line 103: try
line 104: let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline, timeout)
line 105: catch /E118/
line 106: " Can't use the timeout, restrict the stopline a bit more to avoid taking
line 107: " a long time on closed folds and long lines.
line 108: " The "viewable" variables give a range in which we can scroll while
line 109: " keeping the cursor at the same position.
line 110: " adjustedScrolloff accounts for very large numbers of scrolloff.
line 111: let adjustedScrolloff = min([&scrolloff, (line('w$') - line('w0')) / 2])
line 112: let bottom_viewable = min([line('$'), c_lnum + &lines - adjustedScrolloff - 2])
line 113: let top_viewable = max([1, c_lnum-&lines+adjustedScrolloff + 2])
line 114: " one of these stoplines will be adjusted below, but the current values are
line 115: " minimal boundaries within the current window
line 116: if i % 2 == 0
line 117: if has("byte_offset") && has("syntax_items") && &smc > 0
line 118: ^Ilet stopbyte = min([line2byte("$"), line2byte(".") + col(".") + &smc * 2])
line 119: ^Ilet stopline = min([bottom_viewable, byte2line(stopbyte)])
line 120: else
line 121: ^Ilet stopline = min([bottom_viewable, c_lnum + 100])
line 122: endif
line 123: let stoplinebottom = stopline
line 124: else
line 125: if has("byte_offset") && has("syntax_items") && &smc > 0
line 126: ^Ilet stopbyte = max([1, line2byte(".") + col(".") - &smc * 2])
line 127: ^Ilet stopline = max([top_viewable, byte2line(stopbyte)])
line 128: else
line 129: ^Ilet stopline = max([top_viewable, c_lnum - 100])
line 130: endif
line 131: let stoplinetop = stopline
line 132: endif
line 133: let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline)
line 134: endtry
line 135:
line 136: if before > 0
line 137: if has_getcurpos
line 138: call setpos('.', save_cursor)
line 139: else
line 140: call winrestview(save_cursor)
line 141: endif
line 142: endif
line 143:
line 144: " If a match is found setup match highlighting.
line 145: if m_lnum > 0 && m_lnum >= stoplinetop && m_lnum <= stoplinebottom
line 146: if exists('*matchaddpos')
line 147: call matchaddpos('MatchParen', [[c_lnum, c_col - before], [m_lnum, m_col]], 10, 3)
line 148: else
line 149: exe '3match MatchParen /\(\%' . c_lnum . 'l\%' . (c_col - before) . 'c\)\|\(\%' . m_lnum . 'l\%' . m_col . 'c\)/'
line 151: endif
line 152: let w:paren_hl_on = 1
line 153: endif
<SNR>55_Highlight_Matching_Pair returning #0
continuing in TextChangedI Autocommands for "*"
calling lightline#link()
line 1: let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
line 2: if s:mode ==# mode
line 3: return ''
lightline#link returning ''
calling lightline#mode()
line 1: return get(s:lightline.mode_map, mode(), '')
lightline#mode returning 'INSERT'
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling FugitiveHead()
line 1: let dir = FugitiveGitDir(a:0 > 1 ? a:2 : -1)
calling FugitiveGitDir(-1)
line 1: if !a:0 || type(a:1) == type(0) && a:1 < 0
line 2: if exists('g:fugitive_event')
line 3: return g:fugitive_event
line 4: endif
line 5: let dir = get(b:, 'git_dir', '')
line 6: if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|prompt\)$')
line 7: return FugitiveExtractGitDir(getcwd())
line 8: endif
line 9: return dir
FugitiveGitDir returning ''
continuing in FugitiveHead
line 2: if empty(dir)
line 3: return ''
FugitiveHead returning ''
calling coc#api#call('eval', ['[coc#util#cursor(), getline(".")]'])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 16('[coc#util#cursor(), getline(".")]')
line 1: return eval(a:expr)
calling coc#util#cursor()
line 1: let pos = getcurpos()
line 2: let content = pos[2] == 1 ? '' : getline('.')[0: pos[2] - 2]
line 3: return [pos[1] - 1, strchars(content)]
coc#util#cursor returning [0, 17]
continuing in 16
16 returning [[0, 17], 'const foo = () =>)']
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, [[0, 17], 'const foo = () =>)']]
Executing InsertCharPre Autocommands for "*"
autocommand call s:Autocmd('InsertCharPre', v:char)
Executing: call s:Autocmd('InsertCharPre', v:char)
calling <SNR>46_Autocmd('InsertCharPre', ' ')
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['InsertCharPre', ' '])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['InsertCharPre', ' '])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in InsertCharPre Autocommands for "*"
Executing CursorMovedI Autocommands for "*"
autocommand call s:Autocmd('CursorMovedI', +expand('<abuf>'), [line('.'), col('.')])
Executing: call s:Autocmd('CursorMovedI', +expand('<abuf>'), [line('.'), col('.')])
calling <SNR>46_Autocmd('CursorMovedI', 1, [1, 19])
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['CursorMovedI', 1, [1, 19]])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['CursorMovedI', 1, [1, 19]])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in CursorMovedI Autocommands for "*"
Executing CursorMovedI Autocommands for "*"
autocommand call s:Highlight_Matching_Pair()
Executing: call s:Highlight_Matching_Pair()
calling <SNR>55_Highlight_Matching_Pair()
line 1: " Remove any previous match.
line 2: call s:Remove_Matches()
calling <SNR>55_Remove_Matches()
line 1: if exists('w:paren_hl_on') && w:paren_hl_on
line 2: silent! call matchdelete(3)
line 3: let w:paren_hl_on = 0
line 4: endif
<SNR>55_Remove_Matches returning #0
continuing in <SNR>55_Highlight_Matching_Pair
line 3:
line 4: " Avoid that we remove the popup menu.
line 5: " Return when there are no colors (looks like the cursor jumps).
line 6: if pumvisible() || (&t_Co < 8 && !has("gui_running"))
line 7: return
line 8: endif
line 9:
line 10: " Get the character under the cursor and check if it's in 'matchpairs'.
line 11: let c_lnum = line('.')
line 12: let c_col = col('.')
line 13: let before = 0
line 14:
line 15: let text = getline(c_lnum)
line 16: let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
line 17: if empty(matches)
line 18: let [c_before, c] = ['', '']
line 19: else
line 20: let [c_before, c] = matches[1:2]
line 21: endif
line 22: let plist = split(&matchpairs, '.\zs[:,]')
line 23: let i = index(plist, c)
line 24: if i < 0
line 25: " not found, in Insert mode try character before the cursor
line 26: if c_col > 1 && (mode() == 'i' || mode() == 'R')
line 27: let before = strlen(c_before)
line 28: let c = c_before
line 29: let i = index(plist, c)
line 30: endif
line 31: if i < 0
line 32: " not found, nothing to do
line 33: return
line 34: endif
line 35: endif
line 36:
line 37: " Figure out the arguments for searchpairpos().
line 38: if i % 2 == 0
line 39: let s_flags = 'nW'
line 40: let c2 = plist[i + 1]
line 41: else
line 42: let s_flags = 'nbW'
line 43: let c2 = c
line 44: let c = plist[i - 1]
line 45: endif
line 46: if c == '['
line 47: let c = '\['
line 48: let c2 = '\]'
line 49: endif
line 50:
line 51: " Find the match. When it was just before the cursor move it there for a
line 52: " moment.
line 53: if before > 0
line 54: let has_getcurpos = exists("*getcurpos")
line 55: if has_getcurpos
line 56: " getcurpos() is more efficient but doesn't exist before 7.4.313.
line 57: let save_cursor = getcurpos()
line 58: else
line 59: let save_cursor = winsaveview()
line 60: endif
line 61: call cursor(c_lnum, c_col - before)
line 62: endif
line 63:
line 64: if !has("syntax") || !exists("g:syntax_on")
line 65: let s_skip = "0"
line 66: else
line 67: " Build an expression that detects whether the current cursor position is
line 68: " in certain syntax types (string, comment, etc.), for use as
line 69: " searchpairpos()'s skip argument.
line 70: " We match "escape" for special items, such as lispEscapeSpecial.
line 71: let s_skip = '!empty(filter(map(synstack(line("."), col(".")), ''synIDattr(v:val, "name")''), ' . '''v:val =~? "string\\|character\\|singlequote\\|escape\\|comment"''))'
line 73: " If executing the expression determines that the cursor is currently in
line 74: " one of the syntax types, then we want searchpairpos() to find the pair
line 75: " within those syntax types (i.e., not skip). Otherwise, the cursor is
line 76: " outside of the syntax types and s_skip should keep its value so we skip
line 77: " any matching pair inside the syntax types.
line 78: " Catch if this throws E363: pattern uses more memory than 'maxmempattern'.
line 79: try
line 80: execute 'if ' . s_skip . ' | let s_skip = "0" | endif'
line 80: if !empty(filter(map(synstack(line("."), col(".")), 'synIDattr(v:val, "name")'), 'v:val =~? "string\\|character\\|singlequote\\|escape\\|comment"')) | let s_skip = "0" | endif
line 80: let s_skip = "0" | endif
line 80: endif
line 81: catch /^Vim\%((\a\+)\)\=:E363/
line 82: " We won't find anything, so skip searching, should keep Vim responsive.
line 83: return
line 84: endtry
line 85: endif
line 86:
line 87: " Limit the search to lines visible in the window.
line 88: let stoplinebottom = line('w$')
line 89: let stoplinetop = line('w0')
line 90: if i % 2 == 0
line 91: let stopline = stoplinebottom
line 92: else
line 93: let stopline = stoplinetop
line 94: endif
line 95:
line 96: " Limit the search time to 300 msec to avoid a hang on very long lines.
line 97: " This fails when a timeout is not supported.
line 98: if mode() == 'i' || mode() == 'R'
line 99: let timeout = exists("b:matchparen_insert_timeout") ? b:matchparen_insert_timeout : g:matchparen_insert_timeout
line 100: else
line 101: let timeout = exists("b:matchparen_timeout") ? b:matchparen_timeout : g:matchparen_timeout
line 102: endif
line 103: try
line 104: let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline, timeout)
line 105: catch /E118/
line 106: " Can't use the timeout, restrict the stopline a bit more to avoid taking
line 107: " a long time on closed folds and long lines.
line 108: " The "viewable" variables give a range in which we can scroll while
line 109: " keeping the cursor at the same position.
line 110: " adjustedScrolloff accounts for very large numbers of scrolloff.
line 111: let adjustedScrolloff = min([&scrolloff, (line('w$') - line('w0')) / 2])
line 112: let bottom_viewable = min([line('$'), c_lnum + &lines - adjustedScrolloff - 2])
line 113: let top_viewable = max([1, c_lnum-&lines+adjustedScrolloff + 2])
line 114: " one of these stoplines will be adjusted below, but the current values are
line 115: " minimal boundaries within the current window
line 116: if i % 2 == 0
line 117: if has("byte_offset") && has("syntax_items") && &smc > 0
line 118: ^Ilet stopbyte = min([line2byte("$"), line2byte(".") + col(".") + &smc * 2])
line 119: ^Ilet stopline = min([bottom_viewable, byte2line(stopbyte)])
line 120: else
line 121: ^Ilet stopline = min([bottom_viewable, c_lnum + 100])
line 122: endif
line 123: let stoplinebottom = stopline
line 124: else
line 125: if has("byte_offset") && has("syntax_items") && &smc > 0
line 126: ^Ilet stopbyte = max([1, line2byte(".") + col(".") - &smc * 2])
line 127: ^Ilet stopline = max([top_viewable, byte2line(stopbyte)])
line 128: else
line 129: ^Ilet stopline = max([top_viewable, c_lnum - 100])
line 130: endif
line 131: let stoplinetop = stopline
line 132: endif
line 133: let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline)
line 134: endtry
line 135:
line 136: if before > 0
line 137: if has_getcurpos
line 138: call setpos('.', save_cursor)
line 139: else
line 140: call winrestview(save_cursor)
line 141: endif
line 142: endif
line 143:
line 144: " If a match is found setup match highlighting.
line 145: if m_lnum > 0 && m_lnum >= stoplinetop && m_lnum <= stoplinebottom
line 146: if exists('*matchaddpos')
line 147: call matchaddpos('MatchParen', [[c_lnum, c_col - before], [m_lnum, m_col]], 10, 3)
line 148: else
line 149: exe '3match MatchParen /\(\%' . c_lnum . 'l\%' . (c_col - before) . 'c\)\|\(\%' . m_lnum . 'l\%' . m_col . 'c\)/'
line 151: endif
line 152: let w:paren_hl_on = 1
line 153: endif
<SNR>55_Highlight_Matching_Pair returning #0
continuing in CursorMovedI Autocommands for "*"
Executing TextChangedI Autocommands for "*"
autocommand call s:Autocmd('TextChangedI', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
Executing: call s:Autocmd('TextChangedI', +expand('<abuf>'), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick})
calling <SNR>46_Autocmd('TextChangedI', 1, {'lnum': 1, 'col': 19, 'changedtick': 39, 'pre': 'const foo = () => '})
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['TextChangedI', 1, {'lnum': 1, 'col':...ick': 39, 'pre': 'const foo = () => '}])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['TextChangedI', 1, {'lnum': 1, 'col':...ick': 39, 'pre': 'const foo = () => '}])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in TextChangedI Autocommands for "*"
Executing TextChangedI Autocommands for "*"
autocommand call s:Highlight_Matching_Pair()
Executing: call s:Highlight_Matching_Pair()
calling <SNR>55_Highlight_Matching_Pair()
line 1: " Remove any previous match.
line 2: call s:Remove_Matches()
calling <SNR>55_Remove_Matches()
line 1: if exists('w:paren_hl_on') && w:paren_hl_on
line 2: silent! call matchdelete(3)
line 3: let w:paren_hl_on = 0
line 4: endif
<SNR>55_Remove_Matches returning #0
continuing in <SNR>55_Highlight_Matching_Pair
line 3:
line 4: " Avoid that we remove the popup menu.
line 5: " Return when there are no colors (looks like the cursor jumps).
line 6: if pumvisible() || (&t_Co < 8 && !has("gui_running"))
line 7: return
line 8: endif
line 9:
line 10: " Get the character under the cursor and check if it's in 'matchpairs'.
line 11: let c_lnum = line('.')
line 12: let c_col = col('.')
line 13: let before = 0
line 14:
line 15: let text = getline(c_lnum)
line 16: let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
line 17: if empty(matches)
line 18: let [c_before, c] = ['', '']
line 19: else
line 20: let [c_before, c] = matches[1:2]
line 21: endif
line 22: let plist = split(&matchpairs, '.\zs[:,]')
line 23: let i = index(plist, c)
line 24: if i < 0
line 25: " not found, in Insert mode try character before the cursor
line 26: if c_col > 1 && (mode() == 'i' || mode() == 'R')
line 27: let before = strlen(c_before)
line 28: let c = c_before
line 29: let i = index(plist, c)
line 30: endif
line 31: if i < 0
line 32: " not found, nothing to do
line 33: return
line 34: endif
line 35: endif
line 36:
line 37: " Figure out the arguments for searchpairpos().
line 38: if i % 2 == 0
line 39: let s_flags = 'nW'
line 40: let c2 = plist[i + 1]
line 41: else
line 42: let s_flags = 'nbW'
line 43: let c2 = c
line 44: let c = plist[i - 1]
line 45: endif
line 46: if c == '['
line 47: let c = '\['
line 48: let c2 = '\]'
line 49: endif
line 50:
line 51: " Find the match. When it was just before the cursor move it there for a
line 52: " moment.
line 53: if before > 0
line 54: let has_getcurpos = exists("*getcurpos")
line 55: if has_getcurpos
line 56: " getcurpos() is more efficient but doesn't exist before 7.4.313.
line 57: let save_cursor = getcurpos()
line 58: else
line 59: let save_cursor = winsaveview()
line 60: endif
line 61: call cursor(c_lnum, c_col - before)
line 62: endif
line 63:
line 64: if !has("syntax") || !exists("g:syntax_on")
line 65: let s_skip = "0"
line 66: else
line 67: " Build an expression that detects whether the current cursor position is
line 68: " in certain syntax types (string, comment, etc.), for use as
line 69: " searchpairpos()'s skip argument.
line 70: " We match "escape" for special items, such as lispEscapeSpecial.
line 71: let s_skip = '!empty(filter(map(synstack(line("."), col(".")), ''synIDattr(v:val, "name")''), ' . '''v:val =~? "string\\|character\\|singlequote\\|escape\\|comment"''))'
line 73: " If executing the expression determines that the cursor is currently in
line 74: " one of the syntax types, then we want searchpairpos() to find the pair
line 75: " within those syntax types (i.e., not skip). Otherwise, the cursor is
line 76: " outside of the syntax types and s_skip should keep its value so we skip
line 77: " any matching pair inside the syntax types.
line 78: " Catch if this throws E363: pattern uses more memory than 'maxmempattern'.
line 79: try
line 80: execute 'if ' . s_skip . ' | let s_skip = "0" | endif'
line 80: if !empty(filter(map(synstack(line("."), col(".")), 'synIDattr(v:val, "name")'), 'v:val =~? "string\\|character\\|singlequote\\|escape\\|comment"')) | let s_skip = "0" | endif
line 80: let s_skip = "0" | endif
line 80: endif
line 81: catch /^Vim\%((\a\+)\)\=:E363/
line 82: " We won't find anything, so skip searching, should keep Vim responsive.
line 83: return
line 84: endtry
line 85: endif
line 86:
line 87: " Limit the search to lines visible in the window.
line 88: let stoplinebottom = line('w$')
line 89: let stoplinetop = line('w0')
line 90: if i % 2 == 0
line 91: let stopline = stoplinebottom
line 92: else
line 93: let stopline = stoplinetop
line 94: endif
line 95:
line 96: " Limit the search time to 300 msec to avoid a hang on very long lines.
line 97: " This fails when a timeout is not supported.
line 98: if mode() == 'i' || mode() == 'R'
line 99: let timeout = exists("b:matchparen_insert_timeout") ? b:matchparen_insert_timeout : g:matchparen_insert_timeout
line 100: else
line 101: let timeout = exists("b:matchparen_timeout") ? b:matchparen_timeout : g:matchparen_timeout
line 102: endif
line 103: try
line 104: let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline, timeout)
line 105: catch /E118/
line 106: " Can't use the timeout, restrict the stopline a bit more to avoid taking
line 107: " a long time on closed folds and long lines.
line 108: " The "viewable" variables give a range in which we can scroll while
line 109: " keeping the cursor at the same position.
line 110: " adjustedScrolloff accounts for very large numbers of scrolloff.
line 111: let adjustedScrolloff = min([&scrolloff, (line('w$') - line('w0')) / 2])
line 112: let bottom_viewable = min([line('$'), c_lnum + &lines - adjustedScrolloff - 2])
line 113: let top_viewable = max([1, c_lnum-&lines+adjustedScrolloff + 2])
line 114: " one of these stoplines will be adjusted below, but the current values are
line 115: " minimal boundaries within the current window
line 116: if i % 2 == 0
line 117: if has("byte_offset") && has("syntax_items") && &smc > 0
line 118: ^Ilet stopbyte = min([line2byte("$"), line2byte(".") + col(".") + &smc * 2])
line 119: ^Ilet stopline = min([bottom_viewable, byte2line(stopbyte)])
line 120: else
line 121: ^Ilet stopline = min([bottom_viewable, c_lnum + 100])
line 122: endif
line 123: let stoplinebottom = stopline
line 124: else
line 125: if has("byte_offset") && has("syntax_items") && &smc > 0
line 126: ^Ilet stopbyte = max([1, line2byte(".") + col(".") - &smc * 2])
line 127: ^Ilet stopline = max([top_viewable, byte2line(stopbyte)])
line 128: else
line 129: ^Ilet stopline = max([top_viewable, c_lnum - 100])
line 130: endif
line 131: let stoplinetop = stopline
line 132: endif
line 133: let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline)
line 134: endtry
line 135:
line 136: if before > 0
line 137: if has_getcurpos
line 138: call setpos('.', save_cursor)
line 139: else
line 140: call winrestview(save_cursor)
line 141: endif
line 142: endif
line 143:
line 144: " If a match is found setup match highlighting.
line 145: if m_lnum > 0 && m_lnum >= stoplinetop && m_lnum <= stoplinebottom
line 146: if exists('*matchaddpos')
line 147: call matchaddpos('MatchParen', [[c_lnum, c_col - before], [m_lnum, m_col]], 10, 3)
line 148: else
line 149: exe '3match MatchParen /\(\%' . c_lnum . 'l\%' . (c_col - before) . 'c\)\|\(\%' . m_lnum . 'l\%' . m_col . 'c\)/'
line 151: endif
line 152: let w:paren_hl_on = 1
line 153: endif
<SNR>55_Highlight_Matching_Pair returning #0
continuing in TextChangedI Autocommands for "*"
calling lightline#link()
line 1: let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
line 2: if s:mode ==# mode
line 3: return ''
lightline#link returning ''
calling lightline#mode()
line 1: return get(s:lightline.mode_map, mode(), '')
lightline#mode returning 'INSERT'
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling FugitiveHead()
line 1: let dir = FugitiveGitDir(a:0 > 1 ? a:2 : -1)
calling FugitiveGitDir(-1)
line 1: if !a:0 || type(a:1) == type(0) && a:1 < 0
line 2: if exists('g:fugitive_event')
line 3: return g:fugitive_event
line 4: endif
line 5: let dir = get(b:, 'git_dir', '')
line 6: if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|prompt\)$')
line 7: return FugitiveExtractGitDir(getcwd())
line 8: endif
line 9: return dir
FugitiveGitDir returning ''
continuing in FugitiveHead
line 2: if empty(dir)
line 3: return ''
FugitiveHead returning ''
calling coc#api#call('eval', ['[coc#util#cursor(), getline(".")]'])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 16('[coc#util#cursor(), getline(".")]')
line 1: return eval(a:expr)
calling coc#util#cursor()
line 1: let pos = getcurpos()
line 2: let content = pos[2] == 1 ? '' : getline('.')[0: pos[2] - 2]
line 3: return [pos[1] - 1, strchars(content)]
coc#util#cursor returning [0, 18]
continuing in 16
16 returning [[0, 18], 'const foo = () => )']
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, [[0, 18], 'const foo = () => )']]
calling coc#api#call('call_function', ['coc#util#get_content', [1]])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 13('coc#util#get_content', [1])
line 1: return call(a:method, a:args)
calling coc#util#get_content(1)
line 1: if !bufloaded(a:bufnr) | return '' | endif
line 1: return '' | endif
line 1: endif
line 2: return { 'content': join(getbufline(a:bufnr, 1, '$'), "\n"), 'changedtick': getbufvar(a:bufnr, 'changedtick') }
coc#util#get_content returning {'changedtick': 39, 'content': 'const foo = () => )'}
continuing in 13
13 returning {'changedtick': 39, 'content': 'const foo = () => )'}
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, {'changedtick': 39, 'content': 'const foo = () => )'}]
Executing CursorHoldI Autocommands for "*"
autocommand call s:Autocmd('CursorHoldI', +expand('<abuf>'))
Executing: call s:Autocmd('CursorHoldI', +expand('<abuf>'))
calling <SNR>46_Autocmd('CursorHoldI', 1)
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['CursorHoldI', 1])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['CursorHoldI', 1])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in CursorHoldI Autocommands for "*"
calling lightline#link()
line 1: let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
line 2: if s:mode ==# mode
line 3: return ''
lightline#link returning ''
calling lightline#mode()
line 1: return get(s:lightline.mode_map, mode(), '')
lightline#mode returning 'INSERT'
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling FugitiveHead()
line 1: let dir = FugitiveGitDir(a:0 > 1 ? a:2 : -1)
calling FugitiveGitDir(-1)
line 1: if !a:0 || type(a:1) == type(0) && a:1 < 0
line 2: if exists('g:fugitive_event')
line 3: return g:fugitive_event
line 4: endif
line 5: let dir = get(b:, 'git_dir', '')
line 6: if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|prompt\)$')
line 7: return FugitiveExtractGitDir(getcwd())
line 8: endif
line 9: return dir
FugitiveGitDir returning ''
continuing in FugitiveHead
line 2: if empty(dir)
line 3: return ''
FugitiveHead returning ''
Executing InsertLeave Autocommands for "*"
autocommand call s:Autocmd('InsertLeave', +expand('<abuf>'))
Executing: call s:Autocmd('InsertLeave', +expand('<abuf>'))
calling <SNR>46_Autocmd('InsertLeave', 1)
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['InsertLeave', 1])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['InsertLeave', 1])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in InsertLeave Autocommands for "*"
Executing CursorMoved Autocommands for "*"
autocommand call <SID>StartHL()
Executing: call <SID>StartHL()
calling <SNR>37_StartHL()
line 1: if !v:hlsearch || mode() isnot 'n'
line 2: return
<SNR>37_StartHL returning #0
continuing in CursorMoved Autocommands for "*"
Executing CursorMoved Autocommands for "*"
autocommand call s:Autocmd('CursorMoved', +expand('<abuf>'), [line('.'), col('.')])
Executing: call s:Autocmd('CursorMoved', +expand('<abuf>'), [line('.'), col('.')])
calling <SNR>46_Autocmd('CursorMoved', 1, [1, 18])
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['CursorMoved', 1, [1, 18]])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['CursorMoved', 1, [1, 18]])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in CursorMoved Autocommands for "*"
Executing CursorMoved Autocommands for "*"
autocommand call s:Highlight_Matching_Pair()
Executing: call s:Highlight_Matching_Pair()
calling <SNR>55_Highlight_Matching_Pair()
line 1: " Remove any previous match.
line 2: call s:Remove_Matches()
calling <SNR>55_Remove_Matches()
line 1: if exists('w:paren_hl_on') && w:paren_hl_on
line 2: silent! call matchdelete(3)
line 3: let w:paren_hl_on = 0
line 4: endif
<SNR>55_Remove_Matches returning #0
continuing in <SNR>55_Highlight_Matching_Pair
line 3:
line 4: " Avoid that we remove the popup menu.
line 5: " Return when there are no colors (looks like the cursor jumps).
line 6: if pumvisible() || (&t_Co < 8 && !has("gui_running"))
line 7: return
line 8: endif
line 9:
line 10: " Get the character under the cursor and check if it's in 'matchpairs'.
line 11: let c_lnum = line('.')
line 12: let c_col = col('.')
line 13: let before = 0
line 14:
line 15: let text = getline(c_lnum)
line 16: let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
line 17: if empty(matches)
line 18: let [c_before, c] = ['', '']
line 19: else
line 20: let [c_before, c] = matches[1:2]
line 21: endif
line 22: let plist = split(&matchpairs, '.\zs[:,]')
line 23: let i = index(plist, c)
line 24: if i < 0
line 25: " not found, in Insert mode try character before the cursor
line 26: if c_col > 1 && (mode() == 'i' || mode() == 'R')
line 27: let before = strlen(c_before)
line 28: let c = c_before
line 29: let i = index(plist, c)
line 30: endif
line 31: if i < 0
line 32: " not found, nothing to do
line 33: return
<SNR>55_Highlight_Matching_Pair returning #0
continuing in CursorMoved Autocommands for "*"
calling lightline#link()
line 1: let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
line 2: if s:mode ==# mode
line 3: return ''
line 4: endif
line 5: let s:mode = mode
line 6: if !has_key(s:highlight, mode)
line 7: call lightline#highlight(mode)
line 8: endif
line 9: let types = map(s:uniq(sort(filter(values(s:lightline.component_type), 'v:val !=# "raw"'))), '[v:val, 1]')
line 10: for [p, l] in [['Left', len(s:lightline.active.left)], ['Right', len(s:lightline.active.right)]]
line 11: for [i, t] in map(range(0, l), '[v:val, 0]') + types
line 12: if i != l
line 13: exec printf('hi link Lightline%s_active_%s Lightline%s_%s_%s', p, i, p, mode, i)
line 13: hi link LightlineLeft_active_0 LightlineLeft_normal_0
line 14: endif
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 17: hi link LightlineLeft_active_0_1 LightlineLeft_normal_0_1
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 17: hi link LightlineLeft_active_0_tabsel LightlineLeft_normal_0_tabsel
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 20: endfor
line 11: for [i, t] in map(range(0, l), '[v:val, 0]') + types
line 12: if i != l
line 13: exec printf('hi link Lightline%s_active_%s Lightline%s_%s_%s', p, i, p, mode, i)
line 13: hi link LightlineLeft_active_1 LightlineLeft_normal_1
line 14: endif
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 17: hi link LightlineLeft_active_1_2 LightlineLeft_normal_1_2
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 17: hi link LightlineLeft_active_1_tabsel LightlineLeft_normal_1_tabsel
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 20: endfor
line 11: for [i, t] in map(range(0, l), '[v:val, 0]') + types
line 12: if i != l
line 13: exec printf('hi link Lightline%s_active_%s Lightline%s_%s_%s', p, i, p, mode, i)
line 14: endif
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 20: endfor
line 11: for [i, t] in map(range(0, l), '[v:val, 0]') + types
line 12: if i != l
line 13: exec printf('hi link Lightline%s_active_%s Lightline%s_%s_%s', p, i, p, mode, i)
line 13: hi link LightlineLeft_active_tabsel LightlineLeft_normal_tabsel
line 14: endif
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 17: hi link LightlineLeft_active_tabsel_0 LightlineLeft_normal_tabsel_0
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 17: hi link LightlineLeft_active_tabsel_1 LightlineLeft_normal_tabsel_1
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 17: hi link LightlineLeft_active_tabsel_2 LightlineLeft_normal_tabsel_2
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 17: hi link LightlineLeft_active_tabsel_tabsel LightlineLeft_normal_tabsel_tabsel
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 20: endfor
line 11: for [i, t] in map(range(0, l), '[v:val, 0]') + types
line 12: if i != l
line 13: exec printf('hi link Lightline%s_active_%s Lightline%s_%s_%s', p, i, p, mode, i)
line 14: endif
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 20: endfor
line 21: endfor
line 10: for [p, l] in [['Left', len(s:lightline.active.left)], ['Right', len(s:lightline.active.right)]]
line 11: for [i, t] in map(range(0, l), '[v:val, 0]') + types
line 12: if i != l
line 13: exec printf('hi link Lightline%s_active_%s Lightline%s_%s_%s', p, i, p, mode, i)
line 13: hi link LightlineRight_active_0 LightlineRight_normal_0
line 14: endif
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 17: hi link LightlineRight_active_0_1 LightlineRight_normal_0_1
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 17: hi link LightlineRight_active_0_tabsel LightlineRight_normal_0_tabsel
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 20: endfor
line 11: for [i, t] in map(range(0, l), '[v:val, 0]') + types
line 12: if i != l
line 13: exec printf('hi link Lightline%s_active_%s Lightline%s_%s_%s', p, i, p, mode, i)
line 13: hi link LightlineRight_active_1 LightlineRight_normal_1
line 14: endif
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 17: hi link LightlineRight_active_1_2 LightlineRight_normal_1_2
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 17: hi link LightlineRight_active_1_tabsel LightlineRight_normal_1_tabsel
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 20: endfor
line 11: for [i, t] in map(range(0, l), '[v:val, 0]') + types
line 12: if i != l
line 13: exec printf('hi link Lightline%s_active_%s Lightline%s_%s_%s', p, i, p, mode, i)
line 13: hi link LightlineRight_active_2 LightlineRight_normal_2
line 14: endif
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 17: hi link LightlineRight_active_2_3 LightlineRight_normal_2_3
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 17: hi link LightlineRight_active_2_tabsel LightlineRight_normal_2_tabsel
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 20: endfor
line 11: for [i, t] in map(range(0, l), '[v:val, 0]') + types
line 12: if i != l
line 13: exec printf('hi link Lightline%s_active_%s Lightline%s_%s_%s', p, i, p, mode, i)
line 14: endif
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 20: endfor
line 11: for [i, t] in map(range(0, l), '[v:val, 0]') + types
line 12: if i != l
line 13: exec printf('hi link Lightline%s_active_%s Lightline%s_%s_%s', p, i, p, mode, i)
line 13: hi link LightlineRight_active_tabsel LightlineRight_normal_tabsel
line 14: endif
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 17: hi link LightlineRight_active_tabsel_0 LightlineRight_normal_tabsel_0
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 17: hi link LightlineRight_active_tabsel_1 LightlineRight_normal_tabsel_1
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 17: hi link LightlineRight_active_tabsel_2 LightlineRight_normal_tabsel_2
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 17: hi link LightlineRight_active_tabsel_3 LightlineRight_normal_tabsel_3
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 17: hi link LightlineRight_active_tabsel_tabsel LightlineRight_normal_tabsel_tabsel
line 18: endif
line 19: endfor
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 20: endfor
line 11: for [i, t] in map(range(0, l), '[v:val, 0]') + types
line 12: if i != l
line 13: exec printf('hi link Lightline%s_active_%s Lightline%s_%s_%s', p, i, p, mode, i)
line 14: endif
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 20: endfor
line 21: endfor
line 10: for [p, l] in [['Left', len(s:lightline.active.left)], ['Right', len(s:lightline.active.right)]]
line 11: for [i, t] in map(range(0, l), '[v:val, 0]') + types
line 12: if i != l
line 13: exec printf('hi link Lightline%s_active_%s Lightline%s_%s_%s', p, i, p, mode, i)
line 14: endif
line 15: for [j, s] in map(range(0, l), '[v:val, 0]') + types
line 16: if i + 1 == j || t || s && i != l
line 17: exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
line 18: endif
line 19: endfor
line 20: endfor
line 21: endfor
line 22: exec printf('hi link LightlineMiddle_active LightlineMiddle_%s', mode)
line 22: hi link LightlineMiddle_active LightlineMiddle_normal
line 23: return ''
lightline#link returning ''
calling lightline#mode()
line 1: return get(s:lightline.mode_map, mode(), '')
lightline#mode returning 'NORMAL'
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling FugitiveHead()
line 1: let dir = FugitiveGitDir(a:0 > 1 ? a:2 : -1)
calling FugitiveGitDir(-1)
line 1: if !a:0 || type(a:1) == type(0) && a:1 < 0
line 2: if exists('g:fugitive_event')
line 3: return g:fugitive_event
line 4: endif
line 5: let dir = get(b:, 'git_dir', '')
line 6: if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|prompt\)$')
line 7: return FugitiveExtractGitDir(getcwd())
line 8: endif
line 9: return dir
FugitiveGitDir returning ''
continuing in FugitiveHead
line 2: if empty(dir)
line 3: return ''
FugitiveHead returning ''
calling coc#api#call('eval', ['[bufnr("%"),coc#util#cursor(),&filet...),get(b:,"coc_diagnostic_disable",0)]'])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 16('[bufnr("%"),coc#util#cursor(),&filety...(),get(b:,"coc_diagnostic_disable",0)]')
line 1: return eval(a:expr)
calling coc#util#cursor()
line 1: let pos = getcurpos()
line 2: let content = pos[2] == 1 ? '' : getline('.')[0: pos[2] - 2]
line 3: return [pos[1] - 1, strchars(content)]
coc#util#cursor returning [0, 17]
continuing in 16
16 returning [1, [0, 17], 'typescript.tsx', 'n', 0]
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, [1, [0, 17], 'typescript.tsx', 'n', 0]]
Executing CursorHold Autocommands for "*"
autocommand call s:Autocmd('CursorHold', +expand('<abuf>'))
Executing: call s:Autocmd('CursorHold', +expand('<abuf>'))
calling <SNR>46_Autocmd('CursorHold', 1)
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['CursorHold', 1])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['CursorHold', 1])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in CursorHold Autocommands for "*"
calling lightline#link()
line 1: let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
line 2: if s:mode ==# mode
line 3: return ''
lightline#link returning ''
calling lightline#mode()
line 1: return get(s:lightline.mode_map, mode(), '')
lightline#mode returning 'NORMAL'
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling FugitiveHead()
line 1: let dir = FugitiveGitDir(a:0 > 1 ? a:2 : -1)
calling FugitiveGitDir(-1)
line 1: if !a:0 || type(a:1) == type(0) && a:1 < 0
line 2: if exists('g:fugitive_event')
line 3: return g:fugitive_event
line 4: endif
line 5: let dir = get(b:, 'git_dir', '')
line 6: if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|prompt\)$')
line 7: return FugitiveExtractGitDir(getcwd())
line 8: endif
line 9: return dir
FugitiveGitDir returning ''
continuing in FugitiveHead
line 2: if empty(dir)
line 3: return ''
FugitiveHead returning ''
calling coc#api#call('eval', ['[coc#util#check_refresh(1),mode(),bufnr("%"), line(".")]'])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 16('[coc#util#check_refresh(1),mode(),bufnr("%"), line(".")]')
line 1: return eval(a:expr)
calling coc#util#check_refresh(1)
line 1: if !bufloaded(a:bufnr)
line 2: return 0
line 3: endif
line 4: if getbufvar(a:bufnr, 'coc_diagnostic_disable', 0)
line 5: return 0
line 6: endif
line 7: if get(g: , 'EasyMotion_loaded', 0)
line 8: return EasyMotion#is_active() != 1
line 9: endif
line 10: return 1
coc#util#check_refresh returning #1
continuing in 16
16 returning [1, 'n', 1, 1]
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, [1, 'n', 1, 1]]
calling coc#api#call('call_atomic', [[['nvim_call_function', ['coc#util#se...8, 19]], ['nvim_command', ['redraw']]]])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 9([['nvim_call_function', ['coc#util#set...18, 19]], ['nvim_command', ['redraw']]])
line 1: let res = []
line 2: for [key, arglist] in a:calls
line 3: let name = key[5:]
line 4: try
line 5: call add(res, call(s:funcs[name], arglist))
calling 13('coc#util#set_buf_var', [1, 'coc_diagnostic_info', {'informati...1, 0, 0, 0], 'warning': 0, 'error': 1}])
line 1: return call(a:method, a:args)
calling coc#util#set_buf_var(1, 'coc_diagnostic_info', {'information': 0, 'hint': 0, 'lnums': [1, 0, 0, 0], 'warning': 0, 'error': 1})
line 1: if !bufloaded(a:bufnr) | return | endif
line 1: return | endif
line 1: endif
line 2: call setbufvar(a:bufnr, a:name, a:val)
coc#util#set_buf_var returning #0
continuing in 13
13 returning #0
continuing in 9
line 6: catch /.*/
line 7: return [res, v:exception]
line 8: endtry
line 9: endfor
line 2: for [key, arglist] in a:calls
line 3: let name = key[5:]
line 4: try
line 5: call add(res, call(s:funcs[name], arglist))
calling 13('coc#util#do_autocmd', ['CocDiagnosticChange'])
line 1: return call(a:method, a:args)
calling coc#util#do_autocmd('CocDiagnosticChange')
line 1: if exists('#User#'.a:name)
line 2: exe 'doautocmd User '.a:name
line 3: endif
coc#util#do_autocmd returning #0
continuing in 13
13 returning #0
continuing in 9
line 6: catch /.*/
line 7: return [res, v:exception]
line 8: endtry
line 9: endfor
line 2: for [key, arglist] in a:calls
line 3: let name = key[5:]
line 4: try
line 5: call add(res, call(s:funcs[name], arglist))
calling 15('sign place 1000 line=1 name=CocError buffer=1')
line 1: " command that could cause cursor vanish
line 2: if a:command =~# '^echo' || a:command =~# '^redraw' || a:command =~# '^sign place'
line 3: call timer_start(0, {-> s:execute(a:command)})
line 4: else
line 5: execute a:command
line 6: endif
15 returning #0
continuing in 9
line 6: catch /.*/
line 7: return [res, v:exception]
line 8: endtry
line 9: endfor
line 2: for [key, arglist] in a:calls
line 3: let name = key[5:]
line 4: try
line 5: call add(res, call(s:funcs[name], arglist))
calling 42(1, 1082, 'CocErrorHighlight', 0, 18, 19)
line 1: if !has('textprop')
line 2: return
line 3: endif
line 4: let bufnr = a:bufnr == 0 ? bufnr('%') : a:bufnr
line 5: let key = 'Coc'.a:hlGroup
line 6: if empty(prop_type_get(key))
line 7: call prop_type_add(key, {'highlight': a:hlGroup, 'combine': 1})
line 8: endif
line 9: let total = strlen(getbufline(bufnr, a:line + 1)[0])
line 10: let end = a:colEnd
line 11: if end == -1
line 12: let end = total
line 13: else
line 14: let end = min([end, total])
line 15: endif
line 16: if end <= a:colStart
line 17: return
line 18: endif
line 19: let id = 0
line 20: if a:srcId != -1
line 21: let cached = getbufvar(bufnr, 'prop_namespace_'.a:srcId, [])
line 22: let id = s:prop_id
line 23: let s:prop_id = id + 1
line 24: call add(cached, id)
line 25: call setbufvar(bufnr, 'prop_namespace_'.a:srcId, cached)
line 26: endif
line 27: try
line 28: call prop_add(a:line + 1, a:colStart + 1, {'length': end - a:colStart, 'bufnr': bufnr, 'type': key, 'id': id})
line 29: catch /^Vim\%((\a\+)\)\=:E967/
line 30: " ignore 967
line 31: endtry
42 returning #0
continuing in 9
line 6: catch /.*/
line 7: return [res, v:exception]
line 8: endtry
line 9: endfor
line 2: for [key, arglist] in a:calls
line 3: let name = key[5:]
line 4: try
line 5: call add(res, call(s:funcs[name], arglist))
calling 15('redraw')
line 1: " command that could cause cursor vanish
line 2: if a:command =~# '^echo' || a:command =~# '^redraw' || a:command =~# '^sign place'
line 3: call timer_start(0, {-> s:execute(a:command)})
line 4: else
line 5: execute a:command
line 6: endif
15 returning #0
continuing in 9
line 6: catch /.*/
line 7: return [res, v:exception]
line 8: endtry
line 9: endfor
line 2: for [key, arglist] in a:calls
line 3: let name = key[5:]
line 4: try
line 5: call add(res, call(s:funcs[name], arglist))
line 6: catch /.*/
line 7: return [res, v:exception]
line 8: endtry
line 9: endfor
line 10: return [res, v:null]
9 returning [[0, 0, 0, 0, 0], v:null]
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, [[0, 0, 0, 0, 0], v:null]]
calling <lambda>8(4)
calling <SNR>157_execute('redraw')
line 1: if a:cmd =~# '^echo'
line 2: execute a:cmd
line 3: else
line 4: silent! execute a:cmd
line 4: redraw
calling lightline#tabline()
line 1: if !has_key(s:highlight, 'tabline')
line 2: call lightline#highlight('tabline')
line 3: endif
line 4: if s:lightline.tabline_configured || s:tabnr != tabpagenr() || s:tabcnt != tabpagenr('$')
line 5: let s:tabnr = tabpagenr()
line 6: let s:tabcnt = tabpagenr('$')
line 7: let s:tabline = s:line(1, 0)
calling <SNR>152_line(1, 0)
line 1: let _ = a:tabline ? '' : '%{lightline#link()}'
line 2: if s:lightline.palette == {}
line 3: call lightline#colorscheme()
line 4: endif
line 5: let [l, r] = a:tabline ? [s:lightline.tab_llen, s:lightline.tab_rlen] : [s:lightline.llen, s:lightline.rlen]
line 6: let [p, s] = a:tabline ? [s:lightline.tabline_separator, s:lightline.tabline_subseparator] : [s:lightline.separator, s:lightline.subseparator]
line 7: let [c, f, t, w] = [s:lightline.component, s:lightline.component_function, s:lightline.component_type, s:lightline.component_raw]
line 8: let mode = a:tabline ? 'tabline' : a:inactive ? 'inactive' : 'active'
line 9: let l_ = has_key(s:lightline, mode) ? s:lightline[mode].left : s:lightline.active.left
line 10: let [lt, lc, ll] = s:expand(copy(l_))
calling <SNR>152_expand([['buffers']])
line 1: let components = []
line 2: let expanded = []
line 3: let indices = []
line 4: let prevtype = ''
line 5: let previndex = -1
line 6: let xs = s:flatten_twice(s:map(deepcopy(a:components), 'map(v:val, "s:convert(v:val, ''" . v:key . "'')")'))
calling <SNR>152_convert('buffers', '0')
line 1: if has_key(s:lightline.component_expand, a:name)
line 2: let type = get(s:lightline.component_type, a:name, a:index)
line 3: let is_raw = get(s:lightline.component_raw, a:name) || type ==# 'raw'
line 4: return filter(s:map(s:evaluate_expand(s:lightline.component_expand[a:name]), '[v:val, 1 + ' . is_raw . ', v:key == 1 && ' . (type !=# 'raw') . ' ? "' . type . '" : "' . a:index . '", "' . a:index . '"]'), 'v:val[0] != []')
calling <SNR>152_evaluate_expand('lightline#bufferline#buffers')
line 1: try
line 2: let result = eval(a:component . '()')
calling lightline#bufferline#buffers()
line 1: let l:buffers = s:filtered_buffers()
calling <SNR>26_filtered_buffers()
line 1: let l:buffers = filter(range(1, bufnr('$')), 's:filter_buffer(v:val)')
calling <SNR>26_filter_buffer(1)
line 1: return bufexists(a:i) && buflisted(a:i) && !(getbufvar(a:i, '&filetype') ==# 'qf')
<SNR>26_filter_buffer returning #1
continuing in <SNR>26_filtered_buffers
line 2: if s:reverse_buffers == 1
line 3: let l:buffers = reverse(l:buffers)
line 4: endif
line 5: return l:buffers
<SNR>26_filtered_buffers returning [1]
continuing in lightline#bufferline#buffers
line 2: let l:current_index = index(l:buffers, bufnr('%'))
line 3: if l:current_index == -1
line 4: return [s:get_buffer_names(l:buffers, 0, len(l:buffers))[0], [], []]
line 5: endif
line 6: let l:before = s:get_buffer_names(l:buffers, 0, l:current_index)
calling <SNR>26_get_buffer_names([1], 0, 0)
line 1: let l:names = []
line 2: let l:lengths = []
line 3: for l:i in range(a:from, a:to - 1)
line 4: let [l:name, l:len] = s:get_buffer_name(l:i, a:buffers[l:i])
line 5: call add(l:names, l:name)
line 6: call add(l:lengths, l:len + 4)
line 7: endfor
line 8: return [l:names, l:lengths]
<SNR>26_get_buffer_names returning [[], []]
continuing in lightline#bufferline#buffers
line 7: let l:current = s:get_buffer_names(l:buffers, l:current_index, l:current_index + 1)
calling <SNR>26_get_buffer_names([1], 0, 1)
line 1: let l:names = []
line 2: let l:lengths = []
line 3: for l:i in range(a:from, a:to - 1)
line 4: let [l:name, l:len] = s:get_buffer_name(l:i, a:buffers[l:i])
calling <SNR>26_get_buffer_name(0, 1)
line 1: let l:name = bufname(a:buffer)
line 2: if l:name ==# ''
line 3: let l:name = s:unnamed
line 4: else
line 5: let l:name = fnamemodify(l:name, s:filename_modifier)
line 6: if s:shorten_path
line 7: let l:name = pathshorten(l:name)
line 8: endif
line 9: endif
line 10: if s:enable_devicons == 1 && exists('*WebDevIconsGetFileTypeSymbol')
line 11: let l:name = WebDevIconsGetFileTypeSymbol(fnamemodify(bufname(a:buffer), ':t')) . ' ' . l:name
line 12: endif
line 13: if s:is_read_only(a:buffer)
calling <SNR>26_is_read_only(1)
line 1: let l:modifiable = getbufvar(a:buffer, '&modifiable')
line 2: let l:readonly = getbufvar(a:buffer, '&readonly')
line 3: return (l:readonly || !l:modifiable) && getbufvar(a:buffer, '&filetype') !=# 'help'
<SNR>26_is_read_only returning #0
continuing in <SNR>26_get_buffer_name
line 14: let l:name .= s:read_only
line 15: endif
line 16: if getbufvar(a:buffer, '&mod')
line 17: let l:name .= s:modified
line 18: endif
line 19: if s:show_number == 1
line 20: let l:name = a:buffer . s:number_separator . l:name
line 21: elseif s:show_number == 2
line 22: let l:name = s:get_from_number_map(a:i + 1). s:number_separator . l:name
line 23: elseif s:show_number == 3
line 24: let l:name = a:buffer . s:ordinal_separator . s:get_from_number_map(a:i + 1) . s:number_separator . l:name
line 25: elseif s:show_number == 4
line 26: let l:name = s:get_from_number_map(a:i + 1) . s:ordinal_separator . a:buffer . s:number_separator . l:name
line 27: endif
line 28: let l:len = len(l:name)
line 29: let l:name = substitute(l:name, '%', '%%', 'g')
line 30: if s:component_is_raw
line 31: let l:name = ' ' . l:name . ' '
line 32: endif
line 33: if s:clickable
line 34: return ['%' . string(a:i) . '@lightline#bufferline#_click_handler@' . l:name . '%X', l:len]
line 35: else
line 36: return [l:name, l:len]
<SNR>26_get_buffer_name returning [' index.tsx + ', 11]
continuing in <SNR>26_get_buffer_names
line 5: call add(l:names, l:name)
line 6: call add(l:lengths, l:len + 4)
line 7: endfor
line 3: for l:i in range(a:from, a:to - 1)
line 4: let [l:name, l:len] = s:get_buffer_name(l:i, a:buffers[l:i])
line 5: call add(l:names, l:name)
line 6: call add(l:lengths, l:len + 4)
line 7: endfor
line 8: return [l:names, l:lengths]
<SNR>26_get_buffer_names returning [[' index.tsx + '], [15]]
continuing in lightline#bufferline#buffers
line 8: let l:after = s:get_buffer_names(l:buffers, l:current_index + 1, len(l:buffers))
calling <SNR>26_get_buffer_names([1], 1, 1)
line 1: let l:names = []
line 2: let l:lengths = []
line 3: for l:i in range(a:from, a:to - 1)
line 4: let [l:name, l:len] = s:get_buffer_name(l:i, a:buffers[l:i])
line 5: call add(l:names, l:name)
line 6: call add(l:lengths, l:len + 4)
line 7: endfor
line 8: return [l:names, l:lengths]
<SNR>26_get_buffer_names returning [[], []]
continuing in lightline#bufferline#buffers
line 9: if s:right_aligned == 1
line 10: return s:select_buffers(l:after, l:current, l:before)
line 11: else
line 12: return s:select_buffers(l:before, l:current, l:after)
calling <SNR>26_select_buffers([[], []], [[' index.tsx + '], [15]], [[], []])
line 1: let [l:before_names, l:current_names, l:after_names] = [a:before[0], a:current[0], a:after[0]]
line 2: let [l:before_lengths, l:current_lengths, l:after_lengths] = [a:before[1], a:current[1], a:after[1]]
line 3:
line 4: " The current buffer is always displayed
line 5: let l:width = &columns - l:current_lengths[:0][0]
line 6:
line 7: " Display all buffers if there is enough space to display them
line 8: if s:sum(l:before_lengths) + s:sum(l:after_lengths) <= l:width
calling <SNR>26_sum([])
line 1: let l:sum = 0
line 2: for l:value in a:list
line 3: let l:sum += l:value
line 4: endfor
line 5: return l:sum
<SNR>26_sum returning #0
continuing in <SNR>26_select_buffers
calling <SNR>26_sum([])
line 1: let l:sum = 0
line 2: for l:value in a:list
line 3: let l:sum += l:value
line 4: endfor
line 5: return l:sum
<SNR>26_sum returning #0
continuing in <SNR>26_select_buffers
line 9: return [l:before_names, l:current_names, l:after_names]
<SNR>26_select_buffers returning [[], [' index.tsx + '], []]
continuing in lightline#bufferline#buffers
lightline#bufferline#buffers returning [[], [' index.tsx + '], []]
continuing in <SNR>152_evaluate_expand
line 3: if type(result) == 1 && result ==# ''
line 4: return []
line 5: endif
line 6: catch
line 7: return []
line 8: endtry
line 9: return map(type(result) == 3 ? (result + [[], [], []])[:2] : [[], [result], []], 'filter(s:normalize(v:val), "v:val !=# ''''")')
calling <SNR>152_normalize([])
line 1: if type(a:result) == 3
line 2: return map(a:result, 'type(v:val) == 1 ? v:val : string(v:val)')
<SNR>152_normalize returning []
continuing in <SNR>152_evaluate_expand
calling <SNR>152_normalize([' index.tsx + '])
line 1: if type(a:result) == 3
line 2: return map(a:result, 'type(v:val) == 1 ? v:val : string(v:val)')
<SNR>152_normalize returning [' index.tsx + ']
continuing in <SNR>152_evaluate_expand
calling <SNR>152_normalize([])
line 1: if type(a:result) == 3
line 2: return map(a:result, 'type(v:val) == 1 ? v:val : string(v:val)')
<SNR>152_normalize returning []
continuing in <SNR>152_evaluate_expand
<SNR>152_evaluate_expand returning [[], [' index.tsx + '], []]
continuing in <SNR>152_convert
<SNR>152_convert returning [[[' index.tsx + '], 2, 'tabsel', '0']]
continuing in <SNR>152_expand
calling <SNR>152_flatten_twice([[[[[' index.tsx + '], 2, 'tabsel', '0']]]])
line 1: let ys = []
line 2: for xs in a:xss
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 6: endfor
line 2: for xs in a:xss
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 6: endfor
line 7: return ys
<SNR>152_flatten_twice returning [[[' index.tsx + '], 2, 'tabsel', '0']]
continuing in <SNR>152_expand
line 7: for [component, expand, type, index] in xs
line 8: if prevtype !=# type
line 9: for i in range(previndex + 1, max([previndex, index - 1]))
line 10: call add(indices, string(i))
line 11: call add(components, [])
line 12: call add(expanded, [])
line 13: endfor
line 14: call add(indices, type)
line 15: call add(components, [])
line 16: call add(expanded, [])
line 17: endif
line 18: call extend(components[-1], component)
line 19: call extend(expanded[-1], repeat([expand], len(component)))
line 20: let prevtype = type
line 21: let previndex = index
line 22: endfor
line 7: for [component, expand, type, index] in xs
line 8: if prevtype !=# type
line 9: for i in range(previndex + 1, max([previndex, index - 1]))
line 10: call add(indices, string(i))
line 11: call add(components, [])
line 12: call add(expanded, [])
line 13: endfor
line 14: call add(indices, type)
line 15: call add(components, [])
line 16: call add(expanded, [])
line 17: endif
line 18: call extend(components[-1], component)
line 19: call extend(expanded[-1], repeat([expand], len(component)))
line 20: let prevtype = type
line 21: let previndex = index
line 22: endfor
line 23: for i in range(previndex + 1, max([previndex, len(a:components) - 1]))
line 24: call add(indices, string(i))
line 25: call add(components, [])
line 26: call add(expanded, [])
line 27: endfor
line 28: call add(indices, string(len(a:components)))
line 29: return [components, expanded, indices]
<SNR>152_expand returning [[[' index.tsx + ']], [[2]], ['tabsel', '1']]
continuing in <SNR>152_line
line 11: let r_ = has_key(s:lightline, mode) ? s:lightline[mode].right : s:lightline.active.right
line 12: let [rt, rc, rl] = s:expand(copy(r_))
calling <SNR>152_expand([[]])
line 1: let components = []
line 2: let expanded = []
line 3: let indices = []
line 4: let prevtype = ''
line 5: let previndex = -1
line 6: let xs = s:flatten_twice(s:map(deepcopy(a:components), 'map(v:val, "s:convert(v:val, ''" . v:key . "'')")'))
calling <SNR>152_flatten_twice([[]])
line 1: let ys = []
line 2: for xs in a:xss
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 6: endfor
line 2: for xs in a:xss
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 6: endfor
line 7: return ys
<SNR>152_flatten_twice returning []
continuing in <SNR>152_expand
line 7: for [component, expand, type, index] in xs
line 8: if prevtype !=# type
line 9: for i in range(previndex + 1, max([previndex, index - 1]))
line 10: call add(indices, string(i))
line 11: call add(components, [])
line 12: call add(expanded, [])
line 13: endfor
line 14: call add(indices, type)
line 15: call add(components, [])
line 16: call add(expanded, [])
line 17: endif
line 18: call extend(components[-1], component)
line 19: call extend(expanded[-1], repeat([expand], len(component)))
line 20: let prevtype = type
line 21: let previndex = index
line 22: endfor
line 23: for i in range(previndex + 1, max([previndex, len(a:components) - 1]))
line 24: call add(indices, string(i))
line 25: call add(components, [])
line 26: call add(expanded, [])
line 27: endfor
line 23: for i in range(previndex + 1, max([previndex, len(a:components) - 1]))
line 24: call add(indices, string(i))
line 25: call add(components, [])
line 26: call add(expanded, [])
line 27: endfor
line 28: call add(indices, string(len(a:components)))
line 29: return [components, expanded, indices]
<SNR>152_expand returning [[[]], [[]], ['0', '1']]
continuing in <SNR>152_line
line 13: for i in range(len(lt))
line 14: let _ .= '%#LightlineLeft_' . mode . '_' . ll[i] . '#'
line 15: for j in range(len(lt[i]))
line 16: let x = lc[i][j] ? lt[i][j] : has_key(f, lt[i][j]) ? (exists('*' . f[lt[i][j]]) ? '%{' . f[lt[i][j]] . '()}' : '%{exists("*' . f[lt[i][j]] . '")?' . f[lt[i][j]] . '():""}') : get(c, lt[i][j], '')
line 17: let _ .= has_key(t, lt[i][j]) && t[lt[i][j]] ==# 'raw' || get(w, lt[i][j]) || lc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 18: if j < len(lt[i]) - 1 && s.left !=# ''
line 19: let _ .= s:subseparator(lt[i][(j):], s.left, lc[i][(j):])
line 20: endif
line 21: endfor
line 15: for j in range(len(lt[i]))
line 16: let x = lc[i][j] ? lt[i][j] : has_key(f, lt[i][j]) ? (exists('*' . f[lt[i][j]]) ? '%{' . f[lt[i][j]] . '()}' : '%{exists("*' . f[lt[i][j]] . '")?' . f[lt[i][j]] . '():""}') : get(c, lt[i][j], '')
line 17: let _ .= has_key(t, lt[i][j]) && t[lt[i][j]] ==# 'raw' || get(w, lt[i][j]) || lc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 18: if j < len(lt[i]) - 1 && s.left !=# ''
line 19: let _ .= s:subseparator(lt[i][(j):], s.left, lc[i][(j):])
line 20: endif
line 21: endfor
line 22: let _ .= '%#LightlineLeft_' . mode . '_' . ll[i] . '_' . ll[i + 1] . '#'
line 23: let _ .= i < l + len(lt) - len(l_) && ll[i] < l || ll[i] != ll[i + 1] ? p.left : len(lt[i]) ? s.left : ''
line 24: endfor
line 13: for i in range(len(lt))
line 14: let _ .= '%#LightlineLeft_' . mode . '_' . ll[i] . '#'
line 15: for j in range(len(lt[i]))
line 16: let x = lc[i][j] ? lt[i][j] : has_key(f, lt[i][j]) ? (exists('*' . f[lt[i][j]]) ? '%{' . f[lt[i][j]] . '()}' : '%{exists("*' . f[lt[i][j]] . '")?' . f[lt[i][j]] . '():""}') : get(c, lt[i][j], '')
line 17: let _ .= has_key(t, lt[i][j]) && t[lt[i][j]] ==# 'raw' || get(w, lt[i][j]) || lc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 18: if j < len(lt[i]) - 1 && s.left !=# ''
line 19: let _ .= s:subseparator(lt[i][(j):], s.left, lc[i][(j):])
line 20: endif
line 21: endfor
line 22: let _ .= '%#LightlineLeft_' . mode . '_' . ll[i] . '_' . ll[i + 1] . '#'
line 23: let _ .= i < l + len(lt) - len(l_) && ll[i] < l || ll[i] != ll[i + 1] ? p.left : len(lt[i]) ? s.left : ''
line 24: endfor
line 25: let _ .= '%#LightlineMiddle_' . mode . '#%='
line 26: for i in range(len(rt) - 1, 0, -1)
line 27: let _ .= '%#LightlineRight_' . mode . '_' . rl[i] . '_' . rl[i + 1] . '#'
line 28: let _ .= i < r + len(rt) - len(r_) && rl[i] < r || rl[i] != rl[i + 1] ? p.right : len(rt[i]) ? s.right : ''
line 29: let _ .= '%#LightlineRight_' . mode . '_' . rl[i] . '#'
line 30: for j in range(len(rt[i]))
line 31: let x = rc[i][j] ? rt[i][j] : has_key(f, rt[i][j]) ? (exists('*' . f[rt[i][j]]) ? '%{' . f[rt[i][j]] . '()}' : '%{exists("*' . f[rt[i][j]] . '")?' . f[rt[i][j]] . '():""}') : get(c, rt[i][j], '')
line 32: let _ .= has_key(t, rt[i][j]) && t[rt[i][j]] ==# 'raw' || get(w, rt[i][j]) || rc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 33: if j < len(rt[i]) - 1 && s.right !=# ''
line 34: let _ .= s:subseparator(rt[i][(j):], s.right, rc[i][(j):])
line 35: endif
line 36: endfor
line 37: endfor
line 26: for i in range(len(rt) - 1, 0, -1)
line 27: let _ .= '%#LightlineRight_' . mode . '_' . rl[i] . '_' . rl[i + 1] . '#'
line 28: let _ .= i < r + len(rt) - len(r_) && rl[i] < r || rl[i] != rl[i + 1] ? p.right : len(rt[i]) ? s.right : ''
line 29: let _ .= '%#LightlineRight_' . mode . '_' . rl[i] . '#'
line 30: for j in range(len(rt[i]))
line 31: let x = rc[i][j] ? rt[i][j] : has_key(f, rt[i][j]) ? (exists('*' . f[rt[i][j]]) ? '%{' . f[rt[i][j]] . '()}' : '%{exists("*' . f[rt[i][j]] . '")?' . f[rt[i][j]] . '():""}') : get(c, rt[i][j], '')
line 32: let _ .= has_key(t, rt[i][j]) && t[rt[i][j]] ==# 'raw' || get(w, rt[i][j]) || rc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 33: if j < len(rt[i]) - 1 && s.right !=# ''
line 34: let _ .= s:subseparator(rt[i][(j):], s.right, rc[i][(j):])
line 35: endif
line 36: endfor
line 37: endfor
line 38: return _
<SNR>152_line returning '%#LightlineLeft_tabline_tabsel# index...abline_0_1#%#LightlineRight_tabline_0#'
continuing in lightline#tabline
line 8: endif
line 9: return s:tabline
lightline#tabline returning '%#LightlineLeft_tabline_tabsel# index...abline_0_1#%#LightlineRight_tabline_0#'
continuing in <SNR>157_execute
calling lightline#link()
line 1: let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
line 2: if s:mode ==# mode
line 3: return ''
lightline#link returning ''
continuing in <SNR>157_execute
calling lightline#mode()
line 1: return get(s:lightline.mode_map, mode(), '')
lightline#mode returning 'NORMAL'
continuing in <SNR>157_execute
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
continuing in <SNR>157_execute
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
continuing in <SNR>157_execute
calling FugitiveHead()
line 1: let dir = FugitiveGitDir(a:0 > 1 ? a:2 : -1)
calling FugitiveGitDir(-1)
line 1: if !a:0 || type(a:1) == type(0) && a:1 < 0
line 2: if exists('g:fugitive_event')
line 3: return g:fugitive_event
line 4: endif
line 5: let dir = get(b:, 'git_dir', '')
line 6: if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|prompt\)$')
line 7: return FugitiveExtractGitDir(getcwd())
line 8: endif
line 9: return dir
FugitiveGitDir returning ''
continuing in FugitiveHead
line 2: if empty(dir)
line 3: return ''
FugitiveHead returning ''
continuing in <SNR>157_execute
line 5: endif
<SNR>157_execute returning #0
continuing in <lambda>8
<lambda>8 returning #0
calling <lambda>7(3)
calling <SNR>157_execute('sign place 1000 line=1 name=CocError buffer=1')
line 1: if a:cmd =~# '^echo'
line 2: execute a:cmd
line 3: else
line 4: silent! execute a:cmd
line 4: sign place 1000 line=1 name=CocError buffer=1
line 5: endif
<SNR>157_execute returning #0
continuing in <lambda>7
<lambda>7 returning #0
calling lightline#tabline()
line 1: if !has_key(s:highlight, 'tabline')
line 2: call lightline#highlight('tabline')
line 3: endif
line 4: if s:lightline.tabline_configured || s:tabnr != tabpagenr() || s:tabcnt != tabpagenr('$')
line 5: let s:tabnr = tabpagenr()
line 6: let s:tabcnt = tabpagenr('$')
line 7: let s:tabline = s:line(1, 0)
calling <SNR>152_line(1, 0)
line 1: let _ = a:tabline ? '' : '%{lightline#link()}'
line 2: if s:lightline.palette == {}
line 3: call lightline#colorscheme()
line 4: endif
line 5: let [l, r] = a:tabline ? [s:lightline.tab_llen, s:lightline.tab_rlen] : [s:lightline.llen, s:lightline.rlen]
line 6: let [p, s] = a:tabline ? [s:lightline.tabline_separator, s:lightline.tabline_subseparator] : [s:lightline.separator, s:lightline.subseparator]
line 7: let [c, f, t, w] = [s:lightline.component, s:lightline.component_function, s:lightline.component_type, s:lightline.component_raw]
line 8: let mode = a:tabline ? 'tabline' : a:inactive ? 'inactive' : 'active'
line 9: let l_ = has_key(s:lightline, mode) ? s:lightline[mode].left : s:lightline.active.left
line 10: let [lt, lc, ll] = s:expand(copy(l_))
calling <SNR>152_expand([['buffers']])
line 1: let components = []
line 2: let expanded = []
line 3: let indices = []
line 4: let prevtype = ''
line 5: let previndex = -1
line 6: let xs = s:flatten_twice(s:map(deepcopy(a:components), 'map(v:val, "s:convert(v:val, ''" . v:key . "'')")'))
calling <SNR>152_convert('buffers', '0')
line 1: if has_key(s:lightline.component_expand, a:name)
line 2: let type = get(s:lightline.component_type, a:name, a:index)
line 3: let is_raw = get(s:lightline.component_raw, a:name) || type ==# 'raw'
line 4: return filter(s:map(s:evaluate_expand(s:lightline.component_expand[a:name]), '[v:val, 1 + ' . is_raw . ', v:key == 1 && ' . (type !=# 'raw') . ' ? "' . type . '" : "' . a:index . '", "' . a:index . '"]'), 'v:val[0] != []')
calling <SNR>152_evaluate_expand('lightline#bufferline#buffers')
line 1: try
line 2: let result = eval(a:component . '()')
calling lightline#bufferline#buffers()
line 1: let l:buffers = s:filtered_buffers()
calling <SNR>26_filtered_buffers()
line 1: let l:buffers = filter(range(1, bufnr('$')), 's:filter_buffer(v:val)')
calling <SNR>26_filter_buffer(1)
line 1: return bufexists(a:i) && buflisted(a:i) && !(getbufvar(a:i, '&filetype') ==# 'qf')
<SNR>26_filter_buffer returning #1
continuing in <SNR>26_filtered_buffers
line 2: if s:reverse_buffers == 1
line 3: let l:buffers = reverse(l:buffers)
line 4: endif
line 5: return l:buffers
<SNR>26_filtered_buffers returning [1]
continuing in lightline#bufferline#buffers
line 2: let l:current_index = index(l:buffers, bufnr('%'))
line 3: if l:current_index == -1
line 4: return [s:get_buffer_names(l:buffers, 0, len(l:buffers))[0], [], []]
line 5: endif
line 6: let l:before = s:get_buffer_names(l:buffers, 0, l:current_index)
calling <SNR>26_get_buffer_names([1], 0, 0)
line 1: let l:names = []
line 2: let l:lengths = []
line 3: for l:i in range(a:from, a:to - 1)
line 4: let [l:name, l:len] = s:get_buffer_name(l:i, a:buffers[l:i])
line 5: call add(l:names, l:name)
line 6: call add(l:lengths, l:len + 4)
line 7: endfor
line 8: return [l:names, l:lengths]
<SNR>26_get_buffer_names returning [[], []]
continuing in lightline#bufferline#buffers
line 7: let l:current = s:get_buffer_names(l:buffers, l:current_index, l:current_index + 1)
calling <SNR>26_get_buffer_names([1], 0, 1)
line 1: let l:names = []
line 2: let l:lengths = []
line 3: for l:i in range(a:from, a:to - 1)
line 4: let [l:name, l:len] = s:get_buffer_name(l:i, a:buffers[l:i])
calling <SNR>26_get_buffer_name(0, 1)
line 1: let l:name = bufname(a:buffer)
line 2: if l:name ==# ''
line 3: let l:name = s:unnamed
line 4: else
line 5: let l:name = fnamemodify(l:name, s:filename_modifier)
line 6: if s:shorten_path
line 7: let l:name = pathshorten(l:name)
line 8: endif
line 9: endif
line 10: if s:enable_devicons == 1 && exists('*WebDevIconsGetFileTypeSymbol')
line 11: let l:name = WebDevIconsGetFileTypeSymbol(fnamemodify(bufname(a:buffer), ':t')) . ' ' . l:name
line 12: endif
line 13: if s:is_read_only(a:buffer)
calling <SNR>26_is_read_only(1)
line 1: let l:modifiable = getbufvar(a:buffer, '&modifiable')
line 2: let l:readonly = getbufvar(a:buffer, '&readonly')
line 3: return (l:readonly || !l:modifiable) && getbufvar(a:buffer, '&filetype') !=# 'help'
<SNR>26_is_read_only returning #0
continuing in <SNR>26_get_buffer_name
line 14: let l:name .= s:read_only
line 15: endif
line 16: if getbufvar(a:buffer, '&mod')
line 17: let l:name .= s:modified
line 18: endif
line 19: if s:show_number == 1
line 20: let l:name = a:buffer . s:number_separator . l:name
line 21: elseif s:show_number == 2
line 22: let l:name = s:get_from_number_map(a:i + 1). s:number_separator . l:name
line 23: elseif s:show_number == 3
line 24: let l:name = a:buffer . s:ordinal_separator . s:get_from_number_map(a:i + 1) . s:number_separator . l:name
line 25: elseif s:show_number == 4
line 26: let l:name = s:get_from_number_map(a:i + 1) . s:ordinal_separator . a:buffer . s:number_separator . l:name
line 27: endif
line 28: let l:len = len(l:name)
line 29: let l:name = substitute(l:name, '%', '%%', 'g')
line 30: if s:component_is_raw
line 31: let l:name = ' ' . l:name . ' '
line 32: endif
line 33: if s:clickable
line 34: return ['%' . string(a:i) . '@lightline#bufferline#_click_handler@' . l:name . '%X', l:len]
line 35: else
line 36: return [l:name, l:len]
<SNR>26_get_buffer_name returning [' index.tsx + ', 11]
continuing in <SNR>26_get_buffer_names
line 5: call add(l:names, l:name)
line 6: call add(l:lengths, l:len + 4)
line 7: endfor
line 3: for l:i in range(a:from, a:to - 1)
line 4: let [l:name, l:len] = s:get_buffer_name(l:i, a:buffers[l:i])
line 5: call add(l:names, l:name)
line 6: call add(l:lengths, l:len + 4)
line 7: endfor
line 8: return [l:names, l:lengths]
<SNR>26_get_buffer_names returning [[' index.tsx + '], [15]]
continuing in lightline#bufferline#buffers
line 8: let l:after = s:get_buffer_names(l:buffers, l:current_index + 1, len(l:buffers))
calling <SNR>26_get_buffer_names([1], 1, 1)
line 1: let l:names = []
line 2: let l:lengths = []
line 3: for l:i in range(a:from, a:to - 1)
line 4: let [l:name, l:len] = s:get_buffer_name(l:i, a:buffers[l:i])
line 5: call add(l:names, l:name)
line 6: call add(l:lengths, l:len + 4)
line 7: endfor
line 8: return [l:names, l:lengths]
<SNR>26_get_buffer_names returning [[], []]
continuing in lightline#bufferline#buffers
line 9: if s:right_aligned == 1
line 10: return s:select_buffers(l:after, l:current, l:before)
line 11: else
line 12: return s:select_buffers(l:before, l:current, l:after)
calling <SNR>26_select_buffers([[], []], [[' index.tsx + '], [15]], [[], []])
line 1: let [l:before_names, l:current_names, l:after_names] = [a:before[0], a:current[0], a:after[0]]
line 2: let [l:before_lengths, l:current_lengths, l:after_lengths] = [a:before[1], a:current[1], a:after[1]]
line 3:
line 4: " The current buffer is always displayed
line 5: let l:width = &columns - l:current_lengths[:0][0]
line 6:
line 7: " Display all buffers if there is enough space to display them
line 8: if s:sum(l:before_lengths) + s:sum(l:after_lengths) <= l:width
calling <SNR>26_sum([])
line 1: let l:sum = 0
line 2: for l:value in a:list
line 3: let l:sum += l:value
line 4: endfor
line 5: return l:sum
<SNR>26_sum returning #0
continuing in <SNR>26_select_buffers
calling <SNR>26_sum([])
line 1: let l:sum = 0
line 2: for l:value in a:list
line 3: let l:sum += l:value
line 4: endfor
line 5: return l:sum
<SNR>26_sum returning #0
continuing in <SNR>26_select_buffers
line 9: return [l:before_names, l:current_names, l:after_names]
<SNR>26_select_buffers returning [[], [' index.tsx + '], []]
continuing in lightline#bufferline#buffers
lightline#bufferline#buffers returning [[], [' index.tsx + '], []]
continuing in <SNR>152_evaluate_expand
line 3: if type(result) == 1 && result ==# ''
line 4: return []
line 5: endif
line 6: catch
line 7: return []
line 8: endtry
line 9: return map(type(result) == 3 ? (result + [[], [], []])[:2] : [[], [result], []], 'filter(s:normalize(v:val), "v:val !=# ''''")')
calling <SNR>152_normalize([])
line 1: if type(a:result) == 3
line 2: return map(a:result, 'type(v:val) == 1 ? v:val : string(v:val)')
<SNR>152_normalize returning []
continuing in <SNR>152_evaluate_expand
calling <SNR>152_normalize([' index.tsx + '])
line 1: if type(a:result) == 3
line 2: return map(a:result, 'type(v:val) == 1 ? v:val : string(v:val)')
<SNR>152_normalize returning [' index.tsx + ']
continuing in <SNR>152_evaluate_expand
calling <SNR>152_normalize([])
line 1: if type(a:result) == 3
line 2: return map(a:result, 'type(v:val) == 1 ? v:val : string(v:val)')
<SNR>152_normalize returning []
continuing in <SNR>152_evaluate_expand
<SNR>152_evaluate_expand returning [[], [' index.tsx + '], []]
continuing in <SNR>152_convert
<SNR>152_convert returning [[[' index.tsx + '], 2, 'tabsel', '0']]
continuing in <SNR>152_expand
calling <SNR>152_flatten_twice([[[[[' index.tsx + '], 2, 'tabsel', '0']]]])
line 1: let ys = []
line 2: for xs in a:xss
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 6: endfor
line 2: for xs in a:xss
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 6: endfor
line 7: return ys
<SNR>152_flatten_twice returning [[[' index.tsx + '], 2, 'tabsel', '0']]
continuing in <SNR>152_expand
line 7: for [component, expand, type, index] in xs
line 8: if prevtype !=# type
line 9: for i in range(previndex + 1, max([previndex, index - 1]))
line 10: call add(indices, string(i))
line 11: call add(components, [])
line 12: call add(expanded, [])
line 13: endfor
line 14: call add(indices, type)
line 15: call add(components, [])
line 16: call add(expanded, [])
line 17: endif
line 18: call extend(components[-1], component)
line 19: call extend(expanded[-1], repeat([expand], len(component)))
line 20: let prevtype = type
line 21: let previndex = index
line 22: endfor
line 7: for [component, expand, type, index] in xs
line 8: if prevtype !=# type
line 9: for i in range(previndex + 1, max([previndex, index - 1]))
line 10: call add(indices, string(i))
line 11: call add(components, [])
line 12: call add(expanded, [])
line 13: endfor
line 14: call add(indices, type)
line 15: call add(components, [])
line 16: call add(expanded, [])
line 17: endif
line 18: call extend(components[-1], component)
line 19: call extend(expanded[-1], repeat([expand], len(component)))
line 20: let prevtype = type
line 21: let previndex = index
line 22: endfor
line 23: for i in range(previndex + 1, max([previndex, len(a:components) - 1]))
line 24: call add(indices, string(i))
line 25: call add(components, [])
line 26: call add(expanded, [])
line 27: endfor
line 28: call add(indices, string(len(a:components)))
line 29: return [components, expanded, indices]
<SNR>152_expand returning [[[' index.tsx + ']], [[2]], ['tabsel', '1']]
continuing in <SNR>152_line
line 11: let r_ = has_key(s:lightline, mode) ? s:lightline[mode].right : s:lightline.active.right
line 12: let [rt, rc, rl] = s:expand(copy(r_))
calling <SNR>152_expand([[]])
line 1: let components = []
line 2: let expanded = []
line 3: let indices = []
line 4: let prevtype = ''
line 5: let previndex = -1
line 6: let xs = s:flatten_twice(s:map(deepcopy(a:components), 'map(v:val, "s:convert(v:val, ''" . v:key . "'')")'))
calling <SNR>152_flatten_twice([[]])
line 1: let ys = []
line 2: for xs in a:xss
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 6: endfor
line 2: for xs in a:xss
line 3: for x in xs
line 4: let ys += x
line 5: endfor
line 6: endfor
line 7: return ys
<SNR>152_flatten_twice returning []
continuing in <SNR>152_expand
line 7: for [component, expand, type, index] in xs
line 8: if prevtype !=# type
line 9: for i in range(previndex + 1, max([previndex, index - 1]))
line 10: call add(indices, string(i))
line 11: call add(components, [])
line 12: call add(expanded, [])
line 13: endfor
line 14: call add(indices, type)
line 15: call add(components, [])
line 16: call add(expanded, [])
line 17: endif
line 18: call extend(components[-1], component)
line 19: call extend(expanded[-1], repeat([expand], len(component)))
line 20: let prevtype = type
line 21: let previndex = index
line 22: endfor
line 23: for i in range(previndex + 1, max([previndex, len(a:components) - 1]))
line 24: call add(indices, string(i))
line 25: call add(components, [])
line 26: call add(expanded, [])
line 27: endfor
line 23: for i in range(previndex + 1, max([previndex, len(a:components) - 1]))
line 24: call add(indices, string(i))
line 25: call add(components, [])
line 26: call add(expanded, [])
line 27: endfor
line 28: call add(indices, string(len(a:components)))
line 29: return [components, expanded, indices]
<SNR>152_expand returning [[[]], [[]], ['0', '1']]
continuing in <SNR>152_line
line 13: for i in range(len(lt))
line 14: let _ .= '%#LightlineLeft_' . mode . '_' . ll[i] . '#'
line 15: for j in range(len(lt[i]))
line 16: let x = lc[i][j] ? lt[i][j] : has_key(f, lt[i][j]) ? (exists('*' . f[lt[i][j]]) ? '%{' . f[lt[i][j]] . '()}' : '%{exists("*' . f[lt[i][j]] . '")?' . f[lt[i][j]] . '():""}') : get(c, lt[i][j], '')
line 17: let _ .= has_key(t, lt[i][j]) && t[lt[i][j]] ==# 'raw' || get(w, lt[i][j]) || lc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 18: if j < len(lt[i]) - 1 && s.left !=# ''
line 19: let _ .= s:subseparator(lt[i][(j):], s.left, lc[i][(j):])
line 20: endif
line 21: endfor
line 15: for j in range(len(lt[i]))
line 16: let x = lc[i][j] ? lt[i][j] : has_key(f, lt[i][j]) ? (exists('*' . f[lt[i][j]]) ? '%{' . f[lt[i][j]] . '()}' : '%{exists("*' . f[lt[i][j]] . '")?' . f[lt[i][j]] . '():""}') : get(c, lt[i][j], '')
line 17: let _ .= has_key(t, lt[i][j]) && t[lt[i][j]] ==# 'raw' || get(w, lt[i][j]) || lc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 18: if j < len(lt[i]) - 1 && s.left !=# ''
line 19: let _ .= s:subseparator(lt[i][(j):], s.left, lc[i][(j):])
line 20: endif
line 21: endfor
line 22: let _ .= '%#LightlineLeft_' . mode . '_' . ll[i] . '_' . ll[i + 1] . '#'
line 23: let _ .= i < l + len(lt) - len(l_) && ll[i] < l || ll[i] != ll[i + 1] ? p.left : len(lt[i]) ? s.left : ''
line 24: endfor
line 13: for i in range(len(lt))
line 14: let _ .= '%#LightlineLeft_' . mode . '_' . ll[i] . '#'
line 15: for j in range(len(lt[i]))
line 16: let x = lc[i][j] ? lt[i][j] : has_key(f, lt[i][j]) ? (exists('*' . f[lt[i][j]]) ? '%{' . f[lt[i][j]] . '()}' : '%{exists("*' . f[lt[i][j]] . '")?' . f[lt[i][j]] . '():""}') : get(c, lt[i][j], '')
line 17: let _ .= has_key(t, lt[i][j]) && t[lt[i][j]] ==# 'raw' || get(w, lt[i][j]) || lc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 18: if j < len(lt[i]) - 1 && s.left !=# ''
line 19: let _ .= s:subseparator(lt[i][(j):], s.left, lc[i][(j):])
line 20: endif
line 21: endfor
line 22: let _ .= '%#LightlineLeft_' . mode . '_' . ll[i] . '_' . ll[i + 1] . '#'
line 23: let _ .= i < l + len(lt) - len(l_) && ll[i] < l || ll[i] != ll[i + 1] ? p.left : len(lt[i]) ? s.left : ''
line 24: endfor
line 25: let _ .= '%#LightlineMiddle_' . mode . '#%='
line 26: for i in range(len(rt) - 1, 0, -1)
line 27: let _ .= '%#LightlineRight_' . mode . '_' . rl[i] . '_' . rl[i + 1] . '#'
line 28: let _ .= i < r + len(rt) - len(r_) && rl[i] < r || rl[i] != rl[i + 1] ? p.right : len(rt[i]) ? s.right : ''
line 29: let _ .= '%#LightlineRight_' . mode . '_' . rl[i] . '#'
line 30: for j in range(len(rt[i]))
line 31: let x = rc[i][j] ? rt[i][j] : has_key(f, rt[i][j]) ? (exists('*' . f[rt[i][j]]) ? '%{' . f[rt[i][j]] . '()}' : '%{exists("*' . f[rt[i][j]] . '")?' . f[rt[i][j]] . '():""}') : get(c, rt[i][j], '')
line 32: let _ .= has_key(t, rt[i][j]) && t[rt[i][j]] ==# 'raw' || get(w, rt[i][j]) || rc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 33: if j < len(rt[i]) - 1 && s.right !=# ''
line 34: let _ .= s:subseparator(rt[i][(j):], s.right, rc[i][(j):])
line 35: endif
line 36: endfor
line 37: endfor
line 26: for i in range(len(rt) - 1, 0, -1)
line 27: let _ .= '%#LightlineRight_' . mode . '_' . rl[i] . '_' . rl[i + 1] . '#'
line 28: let _ .= i < r + len(rt) - len(r_) && rl[i] < r || rl[i] != rl[i + 1] ? p.right : len(rt[i]) ? s.right : ''
line 29: let _ .= '%#LightlineRight_' . mode . '_' . rl[i] . '#'
line 30: for j in range(len(rt[i]))
line 31: let x = rc[i][j] ? rt[i][j] : has_key(f, rt[i][j]) ? (exists('*' . f[rt[i][j]]) ? '%{' . f[rt[i][j]] . '()}' : '%{exists("*' . f[rt[i][j]] . '")?' . f[rt[i][j]] . '():""}') : get(c, rt[i][j], '')
line 32: let _ .= has_key(t, rt[i][j]) && t[rt[i][j]] ==# 'raw' || get(w, rt[i][j]) || rc[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
line 33: if j < len(rt[i]) - 1 && s.right !=# ''
line 34: let _ .= s:subseparator(rt[i][(j):], s.right, rc[i][(j):])
line 35: endif
line 36: endfor
line 37: endfor
line 38: return _
<SNR>152_line returning '%#LightlineLeft_tabline_tabsel# index...abline_0_1#%#LightlineRight_tabline_0#'
continuing in lightline#tabline
line 8: endif
line 9: return s:tabline
lightline#tabline returning '%#LightlineLeft_tabline_tabsel# index...abline_0_1#%#LightlineRight_tabline_0#'
calling lightline#link()
line 1: let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
line 2: if s:mode ==# mode
line 3: return ''
lightline#link returning ''
calling lightline#mode()
line 1: return get(s:lightline.mode_map, mode(), '')
lightline#mode returning 'NORMAL'
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling ReadOnly()
line 1: if &readonly || !&modifiable
line 2: return ''
line 3: else
line 4: return ''
ReadOnly returning ''
calling FugitiveHead()
line 1: let dir = FugitiveGitDir(a:0 > 1 ? a:2 : -1)
calling FugitiveGitDir(-1)
line 1: if !a:0 || type(a:1) == type(0) && a:1 < 0
line 2: if exists('g:fugitive_event')
line 3: return g:fugitive_event
line 4: endif
line 5: let dir = get(b:, 'git_dir', '')
line 6: if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|prompt\)$')
line 7: return FugitiveExtractGitDir(getcwd())
line 8: endif
line 9: return dir
FugitiveGitDir returning ''
continuing in FugitiveHead
line 2: if empty(dir)
line 3: return ''
FugitiveHead returning ''
calling coc#api#call('eval', ['[bufnr("%"),coc#util#cursor(),&filet...),get(b:,"coc_diagnostic_disable",0)]'])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 16('[bufnr("%"),coc#util#cursor(),&filety...(),get(b:,"coc_diagnostic_disable",0)]')
line 1: return eval(a:expr)
calling coc#util#cursor()
line 1: let pos = getcurpos()
line 2: let content = pos[2] == 1 ? '' : getline('.')[0: pos[2] - 2]
line 3: return [pos[1] - 1, strchars(content)]
coc#util#cursor returning [0, 17]
continuing in 16
16 returning [1, [0, 17], 'typescript.tsx', 'n', 0]
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, [1, [0, 17], 'typescript.tsx', 'n', 0]]
Executing: wq
Executing BufWrite Autocommands for "*"
autocommand if exists('b:eunuch_new_file') && getline(1) =~ '^#!\s*/' | let b:chmod_post = '+x' | endif
Executing: if exists('b:eunuch_new_file') && getline(1) =~ '^#!\s*/' | let b:chmod_post = '+x' | endif
Executing: let b:chmod_post = '+x' | endif
Executing: endif
Executing BufWrite Autocommands for "*"
autocommand call s:SyncAutocmd('BufWritePre', +expand('<abuf>'))
Executing: call s:SyncAutocmd('BufWritePre', +expand('<abuf>'))
calling <SNR>46_SyncAutocmd('BufWritePre', 1)
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: if get(g:, 'coc_service_initialized', 0)
line 5: call coc#rpc#request('CocAutocmd', a:000)
calling coc#rpc#request('CocAutocmd', ['BufWritePre', 1])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#request
line 2: return ''
line 3: endif
line 4: return s:client['request'](a:method, a:args)
calling <SNR>49_request('CocAutocmd', ['BufWritePre', 1])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_request
line 2: if empty(channel) | return '' | endif
line 2: return '' | endif
line 2: endif
line 3: try
line 4: if s:is_vim
line 5: let res = ch_evalexpr(channel, [a:method, a:args], {'timeout': 60 * 1000})
calling coc#api#call('call_function', ['coc#util#get_content', [1]])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
calling 13('coc#util#get_content', [1])
line 1: return call(a:method, a:args)
calling coc#util#get_content(1)
line 1: if !bufloaded(a:bufnr) | return '' | endif
line 1: return '' | endif
line 1: endif
line 2: return { 'content': join(getbufline(a:bufnr, 1, '$'), "\n"), 'changedtick': getbufvar(a:bufnr, 'changedtick') }
coc#util#get_content returning {'changedtick': 39, 'content': 'const foo = () => )'}
continuing in 13
13 returning {'changedtick': 39, 'content': 'const foo = () => )'}
continuing in coc#api#call
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, {'changedtick': 39, 'content': 'const foo = () => )'}]
continuing in <SNR>49_request
line 6: if type(res) == 1 && res ==# ''
line 7: throw 'request '.a:method. ' '.string(a:args).' timeout after 60s'
line 8: endif
line 9: let [l:errmsg, res] = res
line 10: if !empty(l:errmsg)
line 11: throw l:errmsg
line 12: else
line 13: return res
:return v:null made pending
line 14: endif
line 15: else
line 16: return call('rpcrequest', [channel, a:method] + a:args)
line 17: endif
line 18: catch /.*/
line 19: if v:exception =~# 'E475'
line 20: if get(g:, 'coc_vim_leaving', 0) | return | endif
line 20: return | endif
line 20: endif
line 21: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 21: echom '['.self.name.'] server connection lost' | echohl None
line 21: echohl None
line 22: let name = self.name
line 23: call s:on_exit(name, 0)
line 24: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 25: elseif v:exception =~# 'E12'
line 26: " neovim's bug, ignore it
line 27: else
line 28: echohl Error | echo 'Error on request ('.a:method.'): '.v:exception | echohl None
line 28: echo 'Error on request ('.a:method.'): '.v:exception | echohl None
line 28: echohl None
line 29: endif
line 30: endtry
:return v:null resumed
<SNR>49_request returning v:null
continuing in coc#rpc#request
coc#rpc#request returning v:null
continuing in <SNR>46_SyncAutocmd
line 6: else
line 7: call coc#rpc#notify('CocAutocmd', a:000)
line 8: endif
<SNR>46_SyncAutocmd returning #0
continuing in BufWrite Autocommands for "*"
"index.tsx"
"index.tsx" 1L, 20B written
Writing undo file: /home/azizzo/.config/vim-persisted-undo/%home%azizzo%.vim%log%index.tsx
Executing BufWritePost Autocommands for "*"
autocommand unlet! b:eunuch_new_file
Executing: unlet! b:eunuch_new_file
autocommand if exists('b:chmod_post') | call s:Chmod(0, b:chmod_post, '<afile>') | edit | unlet b:chmod_post | endif
Executing: if exists('b:chmod_post') | call s:Chmod(0, b:chmod_post, '<afile>') | edit | unlet b:chmod_post | endif
Executing: call s:Chmod(0, b:chmod_post, '<afile>') | edit | unlet b:chmod_post | endif
Executing: edit | unlet b:chmod_post | endif
Executing: unlet b:chmod_post | endif
Executing: endif
Executing BufWritePost Autocommands for "*"
autocommand call s:Autocmd('BufWritePost', +expand('<abuf>'))
Executing: call s:Autocmd('BufWritePost', +expand('<abuf>'))
calling <SNR>46_Autocmd('BufWritePost', 1)
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['BufWritePost', 1])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['BufWritePost', 1])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in BufWritePost Autocommands for "*"
Executing BufWinLeave Autocommands for "*"
autocommand call s:Autocmd('BufWinLeave', +expand('<abuf>'), win_getid())
Executing: call s:Autocmd('BufWinLeave', +expand('<abuf>'), win_getid())
calling <SNR>46_Autocmd('BufWinLeave', 1, 1000)
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: call coc#rpc#notify('CocAutocmd', a:000)
calling coc#rpc#notify('CocAutocmd', ['BufWinLeave', 1, 1000])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#notify
line 2: return ''
line 3: endif
line 4: call s:client['notify'](a:method, a:args)
calling <SNR>49_notify('CocAutocmd', ['BufWinLeave', 1, 1000])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_notify
line 2: if empty(channel)
line 3: return ''
line 4: endif
line 5: try
line 6: if s:is_vim
line 7: call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
line 8: else
line 9: call call('rpcnotify', [channel, a:method] + a:args)
line 10: endif
line 11: catch /.*/
line 12: if v:exception =~# 'E475'
line 13: if get(g:, 'coc_vim_leaving', 0)
line 14: return
line 15: endif
line 16: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 16: echom '['.self.name.'] server connection lost' | echohl None
line 16: echohl None
line 17: let name = self.name
line 18: call s:on_exit(name, 0)
line 19: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 20: elseif v:exception =~# 'E12'
line 21: " neovim's bug, ignore it
line 22: else
line 23: echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echo 'Error on notify ('.a:method.'): '.v:exception | echohl None
line 23: echohl None
line 24: endif
line 25: endtry
<SNR>49_notify returning #0
continuing in coc#rpc#notify
line 5: return ''
coc#rpc#notify returning ''
continuing in <SNR>46_Autocmd
<SNR>46_Autocmd returning #0
continuing in BufWinLeave Autocommands for "*"
Executing BufUnload Autocommands for "*"
autocommand call s:SyncAutocmd('BufUnload', +expand('<abuf>'))
Executing: call s:SyncAutocmd('BufUnload', +expand('<abuf>'))
calling <SNR>46_SyncAutocmd('BufUnload', 1)
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: if get(g:, 'coc_service_initialized', 0)
line 5: call coc#rpc#request('CocAutocmd', a:000)
calling coc#rpc#request('CocAutocmd', ['BufUnload', 1])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#request
line 2: return ''
line 3: endif
line 4: return s:client['request'](a:method, a:args)
calling <SNR>49_request('CocAutocmd', ['BufUnload', 1])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_request
line 2: if empty(channel) | return '' | endif
line 2: return '' | endif
line 2: endif
line 3: try
line 4: if s:is_vim
line 5: let res = ch_evalexpr(channel, [a:method, a:args], {'timeout': 60 * 1000})
calling coc#api#notify('call_atomic', [[['nvim_buf_clear_namespace', [1, 108...o_autocmd', ['CocDiagnosticChange']]]]])
line 1: call call(s:funcs[a:method], a:args)
calling 9([['nvim_buf_clear_namespace', [1, 1082...do_autocmd', ['CocDiagnosticChange']]]])
line 1: let res = []
line 2: for [key, arglist] in a:calls
line 3: let name = key[5:]
line 4: try
line 5: call add(res, call(s:funcs[name], arglist))
calling 43(1, 1082, 0, -1)
line 1: if !has('textprop')
line 2: return
line 3: endif
line 4: if a:srcId == -1
line 5: if a:endLine == -1
line 6: call prop_clear(a:startLine + 1, {'bufnr': a:bufnr})
line 7: else
line 8: call prop_clear(a:startLine + 1, a:endLine + 1, {'bufnr': a:bufnr})
line 9: endif
line 10: else
line 11: let cached = getbufvar(a:bufnr, 'prop_namespace_'.a:srcId, [])
line 12: if empty(cached)
line 13: return
line 14: endif
line 15: call setbufvar(a:bufnr, 'prop_namespace_'.a:srcId, [])
line 16: for id in cached
line 17: if a:endLine == -1
line 18: if a:startLine == 0 && a:endLine == -1
line 19: call prop_remove({'id':id, 'bufnr': a:bufnr})
line 20: elseif a:endLine != -1
line 21: call prop_remove({'id':id, 'bufnr': a:bufnr}, a:startLine, a:endLine)
line 22: else
line 23: let len = s:buf_line_count(a:bufnr)
line 24: call prop_remove({'id':id, 'bufnr': a:bufnr}, a:startLine, len)
line 25: endif
line 26: else
line 27: endif
line 28: endfor
line 16: for id in cached
line 17: if a:endLine == -1
line 18: if a:startLine == 0 && a:endLine == -1
line 19: call prop_remove({'id':id, 'bufnr': a:bufnr})
line 20: elseif a:endLine != -1
line 21: call prop_remove({'id':id, 'bufnr': a:bufnr}, a:startLine, a:endLine)
line 22: else
line 23: let len = s:buf_line_count(a:bufnr)
line 24: call prop_remove({'id':id, 'bufnr': a:bufnr}, a:startLine, len)
line 25: endif
line 26: else
line 27: endif
line 28: endfor
line 29: endif
43 returning #0
continuing in 9
line 6: catch /.*/
line 7: return [res, v:exception]
line 8: endtry
line 9: endfor
line 2: for [key, arglist] in a:calls
line 3: let name = key[5:]
line 4: try
line 5: call add(res, call(s:funcs[name], arglist))
calling 13('coc#util#unplace_signs', [1, [1000]])
line 1: return call(a:method, a:args)
calling coc#util#unplace_signs(1, [1000])
line 1: if !bufloaded(a:bufnr) | return | endif
line 1: return | endif
line 1: endif
line 2: for id in a:sign_ids
line 3: execute 'silent! sign unplace '.id.' buffer='.a:bufnr
line 3: silent! sign unplace 1000 buffer=1
line 4: endfor
line 2: for id in a:sign_ids
line 3: execute 'silent! sign unplace '.id.' buffer='.a:bufnr
line 4: endfor
coc#util#unplace_signs returning #0
continuing in 13
13 returning #0
continuing in 9
line 6: catch /.*/
line 7: return [res, v:exception]
line 8: endtry
line 9: endfor
line 2: for [key, arglist] in a:calls
line 3: let name = key[5:]
line 4: try
line 5: call add(res, call(s:funcs[name], arglist))
calling 13('coc#util#set_buf_var', [1, 'coc_diagnostic_info', {'informati...0, 0, 0, 0], 'warning': 0, 'error': 0}])
line 1: return call(a:method, a:args)
calling coc#util#set_buf_var(1, 'coc_diagnostic_info', {'information': 0, 'hint': 0, 'lnums': [0, 0, 0, 0], 'warning': 0, 'error': 0})
line 1: if !bufloaded(a:bufnr) | return | endif
line 1: return | endif
line 1: endif
line 2: call setbufvar(a:bufnr, a:name, a:val)
coc#util#set_buf_var returning #0
continuing in 13
13 returning #0
continuing in 9
line 6: catch /.*/
line 7: return [res, v:exception]
line 8: endtry
line 9: endfor
line 2: for [key, arglist] in a:calls
line 3: let name = key[5:]
line 4: try
line 5: call add(res, call(s:funcs[name], arglist))
calling 13('coc#util#do_autocmd', ['CocDiagnosticChange'])
line 1: return call(a:method, a:args)
calling coc#util#do_autocmd('CocDiagnosticChange')
line 1: if exists('#User#'.a:name)
line 2: exe 'doautocmd User '.a:name
line 3: endif
coc#util#do_autocmd returning #0
continuing in 13
13 returning #0
continuing in 9
line 6: catch /.*/
line 7: return [res, v:exception]
line 8: endtry
line 9: endfor
line 2: for [key, arglist] in a:calls
line 3: let name = key[5:]
line 4: try
line 5: call add(res, call(s:funcs[name], arglist))
line 6: catch /.*/
line 7: return [res, v:exception]
line 8: endtry
line 9: endfor
line 10: return [res, v:null]
9 returning [[0, 0, 0, 0], v:null]
continuing in coc#api#notify
coc#api#notify returning #0
continuing in <SNR>49_request
calling coc#api#call('buf_detach', [1])
line 1: let err = v:null
line 2: let res = v:null
line 3: try
line 4: let res = call(s:funcs[a:method], a:args)
line 5: catch /.*/
line 6: let err = v:exception
line 7: endtry
line 8: return [err, res]
coc#api#call returning [v:null, 0]
continuing in <SNR>49_request
line 6: if type(res) == 1 && res ==# ''
line 7: throw 'request '.a:method. ' '.string(a:args).' timeout after 60s'
line 8: endif
line 9: let [l:errmsg, res] = res
line 10: if !empty(l:errmsg)
line 11: throw l:errmsg
line 12: else
line 13: return res
:return v:null made pending
line 14: endif
line 15: else
line 16: return call('rpcrequest', [channel, a:method] + a:args)
line 17: endif
line 18: catch /.*/
line 19: if v:exception =~# 'E475'
line 20: if get(g:, 'coc_vim_leaving', 0) | return | endif
line 20: return | endif
line 20: endif
line 21: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 21: echom '['.self.name.'] server connection lost' | echohl None
line 21: echohl None
line 22: let name = self.name
line 23: call s:on_exit(name, 0)
line 24: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 25: elseif v:exception =~# 'E12'
line 26: " neovim's bug, ignore it
line 27: else
line 28: echohl Error | echo 'Error on request ('.a:method.'): '.v:exception | echohl None
line 28: echo 'Error on request ('.a:method.'): '.v:exception | echohl None
line 28: echohl None
line 29: endif
line 30: endtry
:return v:null resumed
<SNR>49_request returning v:null
continuing in coc#rpc#request
coc#rpc#request returning v:null
continuing in <SNR>46_SyncAutocmd
line 6: else
line 7: call coc#rpc#notify('CocAutocmd', a:000)
line 8: endif
<SNR>46_SyncAutocmd returning #0
continuing in BufUnload Autocommands for "*"
Executing VimLeavePre Autocommands for "*"
autocommand call fzf_session#persist()
Executing: call fzf_session#persist()
calling fzf_session#persist()
line 1: if exists('g:this_fzf_session')
line 2: let sessionoptions= &sessionoptions
line 3: try
line 4: set sessionoptions-=blank sessionoptions-=options
line 5: execute 'mksession! '.fnameescape(g:this_fzf_session)
line 6: call writefile(insert(readfile(g:this_fzf_session), 'let g:this_fzf_session =v:this_session', -2), g:this_fzf_session)
line 7: catch
line 8: unlet g:this_fzf_session
line 9: unlet g:this_fzf_session_name
line 10: echoerr string(v:exception)
line 11: finally
line 12: let &sessionoptions=sessionoptions
line 13: endtry
line 14: endif
line 15: return ''
fzf_session#persist returning ''
continuing in VimLeavePre Autocommands for "*"
Executing VimLeavePre Autocommands for "*"
autocommand call s:on_vimleavepre()
Executing: call s:on_vimleavepre()
calling <SNR>41_on_vimleavepre()
line 1: if get(g:, 'startify_session_persistence') && exists('v:this_session') && filewritable(v:this_session)
line 4: call startify#session_write(fnameescape(v:this_session))
line 5: endif
<SNR>41_on_vimleavepre returning #0
continuing in VimLeavePre Autocommands for "*"
Executing VimLeavePre Autocommands for "*"
autocommand let g:coc_vim_leaving = 1
Executing: let g:coc_vim_leaving = 1
Writing viminfo file "/home/azizzo/.viminfo"
Executing VimLeave Autocommands for "*"
autocommand call s:SyncAutocmd('VimLeave')
Executing: call s:SyncAutocmd('VimLeave')
calling <SNR>46_SyncAutocmd('VimLeave')
line 1: if !get(g:,'coc_workspace_initialized', 0)
line 2: return
line 3: endif
line 4: if get(g:, 'coc_service_initialized', 0)
line 5: call coc#rpc#request('CocAutocmd', a:000)
calling coc#rpc#request('CocAutocmd', ['VimLeave'])
line 1: if !coc#rpc#ready()
calling coc#rpc#ready()
line 1: if empty(s:client) || s:client['running'] == 0
line 2: return 0
line 3: endif
line 4: return 1
coc#rpc#ready returning #1
continuing in coc#rpc#request
line 2: return ''
line 3: endif
line 4: return s:client['request'](a:method, a:args)
calling <SNR>49_request('CocAutocmd', ['VimLeave'])
line 1: let channel = coc#client#get_channel(self)
calling coc#client#get_channel()
line 1: if s:is_vim
line 2: return a:client['channel']
coc#client#get_channel returning channel 0 open
continuing in <SNR>49_request
line 2: if empty(channel) | return '' | endif
line 2: return '' | endif
line 2: endif
line 3: try
line 4: if s:is_vim
line 5: let res = ch_evalexpr(channel, [a:method, a:args], {'timeout': 60 * 1000})
line 6: if type(res) == 1 && res ==# ''
line 7: throw 'request '.a:method. ' '.string(a:args).' timeout after 60s'
line 8: endif
line 9: let [l:errmsg, res] = res
line 10: if !empty(l:errmsg)
line 11: throw l:errmsg
line 12: else
line 13: return res
:return v:null made pending
line 14: endif
line 15: else
line 16: return call('rpcrequest', [channel, a:method] + a:args)
line 17: endif
line 18: catch /.*/
line 19: if v:exception =~# 'E475'
line 20: if get(g:, 'coc_vim_leaving', 0) | return | endif
line 20: return | endif
line 20: endif
line 21: echohl Error | echom '['.self.name.'] server connection lost' | echohl None
line 21: echom '['.self.name.'] server connection lost' | echohl None
line 21: echohl None
line 22: let name = self.name
line 23: call s:on_exit(name, 0)
line 24: execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:]
line 25: elseif v:exception =~# 'E12'
line 26: " neovim's bug, ignore it
line 27: else
line 28: echohl Error | echo 'Error on request ('.a:method.'): '.v:exception | echohl None
line 28: echo 'Error on request ('.a:method.'): '.v:exception | echohl None
line 28: echohl None
line 29: endif
line 30: endtry
:return v:null resumed
<SNR>49_request returning v:null
continuing in coc#rpc#request
coc#rpc#request returning v:null
continuing in <SNR>46_SyncAutocmd
line 6: else
line 7: call coc#rpc#notify('CocAutocmd', a:000)
line 8: endif
<SNR>46_SyncAutocmd returning #0
continuing in VimLeave Autocommands for "*"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment