-
-
Save elzii/7a6e4a0a7a77c379b9c22453613c307f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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