nvim-lua / diagnostic-nvim

A wrapper for neovim built in LSP diagnosis config
Apache License 2.0
219 stars 15 forks source link

Error executing vim.schedule lua callback: diagnostic-nvim/lua/diagnostic/util.lua:155: index out of range #46

Open kdheepak opened 4 years ago

kdheepak commented 4 years ago

I get this error every now and then. I think it occurs when there's a large number of diagnostics in the same buffer from a language server. I'm now able to consistently reproduce this error in a Julia file.

Screen Shot 2020-07-19 at 1 27 31 AM

If I hit enter the error message continues popping up.

haorenW1025 commented 4 years ago

Have you updated diagnostic-nvim? I think #38 fixes it.

kdheepak commented 4 years ago

I just tried again with the latest commit, and I still get the same errors.

haorenW1025 commented 4 years ago

I can't reproduce on my side, so let see if the PR fixes it.

el-iot commented 4 years ago

I found I had the same issue while using the python-language-server. Specifically, one of my linters (pyflakes) would label the starting positions of particular errors as -1, which caused an index-out-of-bounds error. I added these lines at line 91 of diagnostic-nvim/lua/diagnostic.lua

  for _, diagnostic in ipairs(result['diagnostics']) do
    if diagnostic['range']['start']['character'] < 0 then diagnostic['range']['start']['character'] = 0 end
  end

and it has fixed my issues. @haorenW1025, if I can tidy up the implementation a little would you consider this a good pull-request? If so I can put it together (I'll also check to make sure the end-character doesn't exceed the length of the line in case some other language-servers do that).

el-iot commented 4 years ago

Apologies - I'm not completely up-to-date so it may not be at line 91 of diagnostic-nvim/lua/diagnostic.lua (I was previously on f8b312d)

el-iot commented 4 years ago

Made a pull-request for this issue (#51) that has fixed this for me (incase #48 doesn't work)