Coc.nvim: Conflict with gitgutter

Created on 8 Feb 2019  ·  23Comments  ·  Source: neoclide/coc.nvim

Result from CocInfo

## versions

vim version: NVIM v0.3.4
node version: v11.8.0
coc.nvim version: 0.0.52
term: iTerm.app
platform: darwin

## Error messages

Describe the bug*

Unable to get updating of gitgutter sign in inert mode。if i remove coc ,gitgutter works fine。use :autocmd CursorHoldI i got these

:autocmd CursorHoldI
--- Autocommands ---
coc_nvim  CursorHoldI
    *         call s:Autocmd('CursorHoldI', +expand('<abuf>'))
gitgutter  CursorHoldI
    *         call gitgutter#process_buffer(bufnr(''), 0)
TagbarAutoCmds  CursorHoldI
    *         call s:do_delayed_update()

To Reproduce
1.useing coc and vim-gitgutter

  1. set updatetime =100
    Screenshots
    git1
bug

All 23 comments

the minal vimrc

if &compatible
  set nocompatible
endif
" Add the dein installation directory into runtimepath
set runtimepath+=~/.config/nvim/repos/github.com/Shougo/dein.vim

if dein#load_state('~/.config/dein')
  call dein#begin('~/.config/dein')

  call dein#add('~/.config/nvim/repos/github.com/Shougo/dein.vim')
  call dein#add('airblade/vim-gitgutter')
  call dein#add('neoclide/coc.nvim')

  call dein#end()
  call dein#save_state()
endif

filetype plugin indent on
syntax enable
if dein#check_install()
    call dein#install()
endif

set updatetime=100

let g:gitgutter_sign_added = '▎'
let g:gitgutter_sign_modified = '▎'
let g:gitgutter_sign_removed = '▏'
let g:gitgutter_sign_removed_first_line = '▔'
let g:gitgutter_sign_modified_removed = '▋'
" ---------------------------------------------------------
highlight GitGutterAdd ctermfg=22 guifg=#006000 ctermbg=NONE guibg=NONE
highlight GitGutterChange ctermfg=58 guifg=#5F6000 ctermbg=NONE guibg=NONE
highlight GitGutterDelete ctermfg=52 guifg=#600000 ctermbg=NONE guibg=NONE
highlight GitGutterChangeDelete ctermfg=52 guifg=#600000 ctermbg=NONE guibg=NONE

It's bug of neovim, when there is a job using rpc, the CursorHoldI event not triggered as expected.
You got this bug when you have any neovim remote plugin installed.

这是neovim的错误,当有一个作业使用时rpc,CursorHoldI事件没有按预期触发。
如果安装了任何neovim远程插件,就会遇到此错误。

yeah, i UpdateRemotePlugin for denite 。Is there any way to fix it?

Make coc listen to neovim's socket could avoid this problem, but that would cause other bugs like it won't work in nested neovim.

Whether coc can be implemented in other ways. Replace the CursorHoldI

It's not caused by coc using CursorHoldI, it happens when rpc channel is created.
You can make vim-gitgutter to implement CursorHoldI itself, instead of relay on vim's autocmd.

To implement CurorHoldI, I don't have any good ideas, it will increase the complexity, and the author of vim-gitgutter doesn't want to do this.

@chemzqm wow you add support for it?

it works well thanks alot

it works well thanks alot

@taigacute I continue to have the bug.

Until fix of https://github.com/neovim/neovim/issues/3757 , I've found a workaround.
I trigger :GitGutterDisable | GitGutterEnable and both column signs of GitGutter and coc appears. Have you another workaround ?

@taigacute the best solution is to use ALE for diagnostics. As it, all work fine ! I have both GitGutter and diagnostics signs!

In ~/.vim/coc-settings.json add:

  "coc.preferences.diagnostic.displayByAle": true

the best solution is to use ALE for diagnostics

It's one option, neovim should fix that bug.

Seems it's fixed on neovim, I don't have this issue on master of neovim.

@JulioJu i used this version NVIM v0.4.0-583-gd08692a82, it works well. before this version .i set this au TextChangedI * GitGutter,but i think its fixed on neovim new version

It seems that I still have this bug. The problem persists even with

  "coc.preferences.diagnostic.displayByAle": true

Could anyone confirm it? My neovim has version NVIM v0.4.3. The problem disappears when I disable coc.

@zhou13 Can confirm, also have the same problem, even with

"coc.preferences.diagnostic.displayByAle": true

Was on nvim v0.3.4 because of the stable repositories from debian, removed via apt and then manually compiled via make after i cloned the repository; even on v0.5.0 it still happens. gitgutter works perfectly until i enable coc.

Found the source of the bug on my side: i had vim-airline-clock enabled, but once i disabled it gitgutter returned to work normally; i didn't stop to think that the gitgutter function call would happen immediatelly after the coc windows had gone away.

I don't have vim-airline-clock installed. But if I disable vim-airline, then this bug disappears like magic.

That bug was fixed on neovim 0.5.0

I am at NVIM v0.5.0-423-g4139678f9 that was compiled several minutes ago.

I don't have vim-airline-clock installed. But if I disable vim-airline, then this bug disappears like magic.

Strange. I have vim-airline installed, but except from it, no extensions. Maybe if you disable other extensions (if you have them) the bug will disappear?

I am at NVIM v0.5.0-423-g4139678f9 that was compiled several minutes ago.

Should be another issue, but I can't reproduce.

I will try to provide a minimal vimrc.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

cvlmtg picture cvlmtg  ·  3Comments

LinArcX picture LinArcX  ·  4Comments

rkulla picture rkulla  ·  3Comments

chemzqm picture chemzqm  ·  3Comments

andys8 picture andys8  ·  3Comments