Closed mikesmithgh closed 4 months ago
It works successfully on commit:
NVIM v0.10.0-dev-2982+gea1c9f60e
Build type: RelWithDebInfo
LuaJIT 2.1.1713484068
Run "nvim -V1 -v" for more info
vim.tbl_islist()
is soft deprecated on Nightly in favor of vim.islist()
. So using something like local islist = vim.fn.has('nvim-0.10') == 1 and vim.islist or vim.tbl_islist
in the code base should be enough to fix this.
The reason this happened seems to indeed be because neovim/neovim#28470 introduced the speed optimization to vim.deprecate()
by using vim.fn.has()
to check version instead of vim.version()
. Without it, vim.tbl_islist()
is much slower resulting in a very hard to debug performance sink in some plugins.
Although ideally using vim.tbl_islist()
should have no side effects on 0.10, the E5560: Vimscript function must not be called in a lua loop callback
is currently indeed one of them. Although this potentially can be resolved by taking another optimization route (see this comment), I'd personally suggest moving to vim.islist()
right away in this case.
@echasnovski thanks for the info! I've opened the PR https://github.com/sindrets/diffview.nvim/pull/489 to fix this 👍
FYI https://github.com/sindrets/diffview.nvim/pull/489#issuecomment-2085206944
It looks like this error no longer occurs using deprecated functions on nvim nightly.
It looks like this error no longer occurs using deprecated functions on nvim nightly.
Yes, because vim.fn.has()
was made compatible with fast events specifically to resolve this kind of issues.
Description
:DiffViewOpen
fails with an error on Neovim nightlyExpected behavior
diff view opens successfully
Actual behavior
Steps to reproduce
Health check
Output of
``` ────────────────────────────────────────────────────────────────────────────── diffview: require("diffview.health").check() Checking plugin dependencies - OK nvim-web-devicons installed. Checking VCS tools - The plugin requires at least one of the supported VCS tools to be valid. - OK Git found. - OK Git is up-to-date. (2.44.0) - WARNING Configured hg_cmd is not executable: 'hg' ```:checkhealth diffview
Log info
Relevant info from
``` [INFO 2024-04-23 12:52:39.627 -0400] ...diffview.nvim/plugins/diffview.nvim/lua/diffview/lib.lua:24: [command call] :DiffviewOpen [ERROR 2024-04-23 12:52:39.686 -0400] ...diffview.nvim/plugins/diffview.nvim/lua/diffview/job.lua:329: Job exited with a non-zero exit code: 128 [ERROR 2024-04-23 12:52:39.686 -0400] ...ins/diffview.nvim/lua/diffview/vcs/adapters/git/init.lua:173: [job-info] Exit code: 128 [ERROR 2024-04-23 12:52:39.686 -0400] ...ins/diffview.nvim/lua/diffview/vcs/adapters/git/init.lua:173: [cmd] git 'rev-parse' '--path-format=absolute' '--show-toplevel' [ERROR 2024-04-23 12:52:39.686 -0400] ...ins/diffview.nvim/lua/diffview/vcs/adapters/git/init.lua:173: [cwd] /Users/mike/tmp [ERROR 2024-04-23 12:52:39.686 -0400] ...ins/diffview.nvim/lua/diffview/vcs/adapters/git/init.lua:173: [stderr] fatal: not a git repository (or any of the parent directories): .git [ERROR 2024-04-23 12:52:39.687 -0400] ...gins/diffview.nvim/lua/diffview/vcs/adapters/hg/init.lua:53: [HgAdapter] Configured `hg_cmd` is not executable: 'hg' [ERROR 2024-04-23 12:52:39.687 -0400] ...ffview.nvim/plugins/diffview.nvim/lua/diffview/utils.lua:83: Not a repo (or any parent), or no supported VCS adapter! [INFO 2024-04-23 12:52:57.622 -0400] ...diffview.nvim/plugins/diffview.nvim/lua/diffview/lib.lua:24: [command call] :DiffviewOpen [INFO 2024-04-23 12:54:24.782 -0400] ...diffview.nvim/plugins/diffview.nvim/lua/diffview/lib.lua:24: [command call] :DiffviewOpen [ERROR 2024-04-23 12:54:48.702 -0400] ...gins/diffview.nvim/lua/diffview/vcs/adapters/hg/init.lua:53: [HgAdapter] Configured `hg_cmd` is not executable: 'hg' [INFO 2024-04-23 12:55:22.183 -0400] ...diffview.nvim/plugins/diffview.nvim/lua/diffview/lib.lua:24: [command call] :DiffviewOpen ```:DiffviewLog
Neovim version
Operating system and version
Darwin 23.4.0 arm64
Minimal config