vim-matchup icon indicating copy to clipboard operation
vim-matchup copied to clipboard

Treesitter integration broken on Javascript

Open bmulholland opened this issue 11 months ago • 26 comments

Explain the issue

When I open a JS file, I get constant popup errors:

Error detected while processing InsertLeave Autocommands for "*"..function 4[71]..matchup#delim#get_current[1]..<SNR>130
_get_delim_multi[3]..matchup#ts_engine#get_delim[3]..<SNR>124_forward:
line    1:
E5108: Error executing lua ...im/0.9.1/share/nvim/runtime/lua/vim/treesitter/query.lua:259: query: invalid structure at
position 1171 for language javascript
stack traceback:
        [C]: in function '_ts_parse_query'
        ...im/0.9.1/share/nvim/runtime/lua/vim/treesitter/query.lua:259: in function 'get_query'
        ...vim-matchup/lua/treesitter-matchup/third-party/query.lua:55: in function 'get_query'
        ...vim-matchup/lua/treesitter-matchup/third-party/query.lua:142: in function 'prepare_query'
        ...vim-matchup/lua/treesitter-matchup/third-party/query.lua:339: in function 'iter_group_results'
        ...vim-matchup/lua/treesitter-matchup/third-party/query.lua:351: in function 'collect_group_results'
        ...vim/lazy/vim-matchup/lua/treesitter-matchup/internal.lua:46: in function 'fn'
        ...1/share/nvim/runtime/lua/vim/treesitter/languagetree.lua:341: in function 'for_each_tree'
        ...vim/lazy/vim-matchup/lua/treesitter-matchup/internal.lua:40: in function 'fn'
        ...im/lazy/nvim-treesitter/lua/nvim-treesitter/ts_utils.lua:380: in function 'get_matches'
        ...vim/lazy/vim-matchup/lua/treesitter-matchup/internal.lua:102: in function 'fn'
        ...im/lazy/nvim-treesitter/lua/nvim-treesitter/ts_utils.lua:380: in function 'get_active_nodes'
        ...vim/lazy/vim-matchup/lua/treesitter-matchup/internal.lua:221: in function 'get_delim'
        [string "luaeval()"]:1: in main chunk

Latest version from this repo. Disabling the treesitter integration fixes it.

NVIM v0.9.1 Build type: Release LuaJIT 2.1.0-beta3

I don't have bandwidth for a minimal repro right now, let me know if it's not clear from the backtrace what's happening.

bmulholland avatar Jul 12 '23 16:07 bmulholland

Just merged this: https://github.com/andymass/vim-matchup/pull/306

Did it fix it?

andymass avatar Jul 12 '23 16:07 andymass

It did! Fast work -- thank you!

I was just tracking it down, but seems like disabling treesitter integration didn't solve it? Just made it less frequent. Bit odd.

Anyway, fixed now, thank you!

bmulholland avatar Jul 12 '23 16:07 bmulholland

Im still experiencing this bug when the cursor is at the opening or close of a parenthesis ()

riverajohan avatar Jul 13 '23 01:07 riverajohan

@riverajohan have you done :TSUpdate?

andymass avatar Jul 13 '23 23:07 andymass

I've got similar issue after update #306. I fixed it by using 'commit': '3c4ccc489002fe72b5d2e2ffc4b3b5a7d3ab65d8' in plug definition. My neovim version is v0.9.1. I had this issue before and I fixed it by using 'tag': 'v0.9.0' for neovim-treesitter. Is there also a tag for specific neovim version?

idevat avatar Jul 14 '23 16:07 idevat

@riverajohan have you done :TSUpdate?

Yes I did. Then uninstall / install with no luck. I just reverted to a previous version of the plugin. Im using Lunarvim maybe its related to that but im ok not using the latest update. Thanks

riverajohan avatar Jul 14 '23 18:07 riverajohan

can confirm: matchup broken in javascript. spawns an error on every cursor move

Error detected while processing CursorMoved Autocommands for "*"..function 3[3]..4[71]..matchup#delim#get_current[1]..<SNR>96_get_delim_multi[3]..matchup#ts_engine#get_delim[3]..<SNR>91_forward:
     1 line    1:
     2 E5108: Error executing lua /usr/share/nvim/runtime/lua/vim/treesitter/query.lua:273: query: invalid node type at position 1172 for language javascript
     3 stack traceback:
     4   [C]: in function '_ts_parse_query'
     5   /usr/share/nvim/runtime/lua/vim/treesitter/query.lua:273: in function 'parse'
     6   /usr/share/nvim/runtime/lua/vim/treesitter/query.lua:232: in function 'get_query'
 ...vim-matchup/lua/treesitter-matchup/third-party/query.lua:55: in function 'get_query'
     1   ...vim-matchup/lua/treesitter-matchup/third-party/query.lua:142: in function 'prepare_query'
     2   ...vim-matchup/lua/treesitter-matchup/third-party/query.lua:339: in function 'iter_group_results'
     3   ...vim-matchup/lua/treesitter-matchup/third-party/query.lua:351: in function 'collect_group_results'
     4   ...lazy/opt/vim-matchup/lua/treesitter-matchup/internal.lua:46: in function 'fn'
     5   /usr/share/nvim/runtime/lua/vim/treesitter/languagetree.lua:384: in function 'for_each_tree'
...lazy/opt/vim-matchup/lua/treesitter-matchup/internal.lua:40: in function 'fn'
     1   ...azy/opt/nvim-treesitter/lua/nvim-treesitter/ts_utils.lua:380: in function 'get_matches'
     2   ...lazy/opt/vim-matchup/lua/treesitter-matchup/internal.lua:102: in function 'fn'
     3   ...azy/opt/nvim-treesitter/lua/nvim-treesitter/ts_utils.lua:380: in function 'get_active_nodes'
     4   ...lazy/opt/vim-matchup/lua/treesitter-matchup/internal.lua:221: in function 'get_delim'
     5   [string "luaeval()"]:1: in main chunk

:TSUpdate everything is updated, js parser installed

edit: tried 'commit': '3c4ccc489002fe72b5d2e2ffc4b3b5a7d3ab65d8' and it works so possibly a bad commit bisect after that

gipo355 avatar Jul 24 '23 11:07 gipo355

I'm seeing a very similar issue that shows up on lua files. The issue I'm seeing was introduced in b8eca3b588e41e0bb1b3ae200fae88183b91a76d.

Error detected while processing CursorMoved Autocommands for "*"..function 3[3]..4[71]..matchup#delim#get_current[1]..<SNR>75_get_delim_multi[3]..matchup#ts
_engine#get_delim[3]..<SNR>72_forward:
line    1:
E5108: Error executing lua /usr/share/nvim/runtime/lua/vim/treesitter/query.lua:259: query: invalid node type at position 6 for language lua
stack traceback:
        [C]: in function '_ts_parse_query'
        /usr/share/nvim/runtime/lua/vim/treesitter/query.lua:259: in function 'get_query'
        ...vim-matchup/lua/treesitter-matchup/third-party/query.lua:55: in function 'get_query'
        ...vim-matchup/lua/treesitter-matchup/third-party/query.lua:142: in function 'prepare_query'
        ...vim-matchup/lua/treesitter-matchup/third-party/query.lua:339: in function 'iter_group_results'
        ...vim-matchup/lua/treesitter-matchup/third-party/query.lua:351: in function 'collect_group_results'
        ...er/start/vim-matchup/lua/treesitter-matchup/internal.lua:46: in function 'fn'
        /usr/share/nvim/runtime/lua/vim/treesitter/languagetree.lua:341: in function 'for_each_tree'
        ...er/start/vim-matchup/lua/treesitter-matchup/internal.lua:40: in function 'fn'
        ...r/start/nvim-treesitter/lua/nvim-treesitter/ts_utils.lua:380: in function 'get_matches'
        ...er/start/vim-matchup/lua/treesitter-matchup/internal.lua:102: in function 'fn'
        ...r/start/nvim-treesitter/lua/nvim-treesitter/ts_utils.lua:380: in function 'get_active_nodes'
        ...er/start/vim-matchup/lua/treesitter-matchup/internal.lua:221: in function 'get_delim'
        [string "luaeval()"]:1: in main chunk

rbjorklin avatar Jul 26 '23 17:07 rbjorklin

Seeing same issue in c files with treesitter + matchup enabled

0rtz avatar Jul 27 '23 16:07 0rtz

C is fixed now

amaanq avatar Jul 27 '23 17:07 amaanq

I'm seeing apparently the same problem while opening the config.lua (lunarvim) Error detected while processing CursorMoved Autocommands for "*"..function 3[3]..4[71]..matchup#delim#get_current[1]..<SNR>65_get_delim_multi[3]..matchup#ts_engine#get_delim[3]..<SNR>60_forward: line 1: E5108: Error executing lua /usr/share/nvim/runtime/lua/vim/treesitter/query.lua:259: query: invalid node type at position 6 for language lua stack traceback: [C]: in function '_ts_parse_query' /usr/share/nvim/runtime/lua/vim/treesitter/query.lua:259: in function 'get_query' ...vim-matchup/lua/treesitter-matchup/third-party/query.lua:55: in function 'get_query' ...vim-matchup/lua/treesitter-matchup/third-party/query.lua:142: in function 'prepare_query' ...vim-matchup/lua/treesitter-matchup/third-party/query.lua:339: in function 'iter_group_results' ...vim-matchup/lua/treesitter-matchup/third-party/query.lua:351: in function 'collect_group_results' ...lazy/opt/vim-matchup/lua/treesitter-matchup/internal.lua:46: in function 'fn' /usr/share/nvim/runtime/lua/vim/treesitter/languagetree.lua:341: in function 'for_each_tree' ...lazy/opt/vim-matchup/lua/treesitter-matchup/internal.lua:40: in function 'fn' ...azy/opt/nvim-treesitter/lua/nvim-treesitter/ts_utils.lua:380: in function 'get_matches' ...lazy/opt/vim-matchup/lua/treesitter-matchup/internal.lua:102: in function 'fn' ...azy/opt/nvim-treesitter/lua/nvim-treesitter/ts_utils.lua:380: in function 'get_active_nodes' ...lazy/opt/vim-matchup/lua/treesitter-matchup/internal.lua:221: in function 'get_delim' [string "luaeval()"]:1: in main chunk

cova-fe avatar Aug 02 '23 14:08 cova-fe

You need to ensure your plugins are up to date and tree-sitter parsers as well with :TSUpdate

amaanq avatar Aug 02 '23 14:08 amaanq

My parsers are up to date and I still can't use the plugin in JavaScript files as it triggers the error on every cursor move

gipo355 avatar Aug 02 '23 14:08 gipo355

can't reproduce in a js file - a reproducer w/ steps would be useful

amaanq avatar Aug 02 '23 14:08 amaanq

Just checked: Forcing nvim-treesitter to latest commit, followed by TSUpdate seems to have fixed the issue. So if someone else is experiencing similar issues, it is worth to have a look at nvim-treesitter plugin status

cova-fe avatar Aug 02 '23 14:08 cova-fe

right...updating it to the latest commit = updating the plugin

amaanq avatar Aug 02 '23 15:08 amaanq

My bad. Turned out I can't lazy load vim-matchup with lazy.nvim

kohane27 avatar Aug 09 '23 09:08 kohane27

I'm getting this same type of error with lua files

crabsinger avatar Aug 29 '23 20:08 crabsinger

I can confirm this is fixed.

riverajohan avatar Oct 08 '23 02:10 riverajohan

I'm still getting this error

titanve avatar Nov 09 '23 18:11 titanve

I'm still getting this error

Validate you have an updated version of treesitter. In my case I was using Lunarvim on the 1.3 release. That release have the plugins version locked to a pretty old version and that was the cause for the error for me. I moved to the master branch and after the update the issue was fixed.

riverajohan avatar Nov 09 '23 21:11 riverajohan

@riverajohan Hi! I can see in my lazy-lock.json file that I have this for treesitter "nvim-treesitter": { "branch": "master", "commit": "2ce3c9080cfe4a39c7907e672edafd2a95244a7c" }, Is this ok?

Thanks

titanve avatar Nov 10 '23 11:11 titanve

I changed the commit SHA to this one 208504c7072ca81e8bf9fa2e666cf3436dfc0ef5 (latest) in the lazy-lock.json file and then LunarVim reverted it back again to 2ce3c9080cfe4a39c7907e672edafd2a95244a7c

How may I change the version/SHA?

titanve avatar Nov 10 '23 11:11 titanve

I changed the commit SHA to this one 208504c7072ca81e8bf9fa2e666cf3436dfc0ef5 (latest) in the lazy-lock.json file and then LunarVim reverted it back again to 2ce3c9080cfe4a39c7907e672edafd2a95244a7c

How may I change the version/SHA?

What I did was installing lunarvim from the Master branch. https://www.lunarvim.org/docs/master/installation#nightly

riverajohan avatar Nov 10 '23 13:11 riverajohan

@riverajohan hi!

Do you mean the nightly version?

Thanks

titanve avatar Nov 14 '23 15:11 titanve

@riverajohan hi!

Do you mean the nightly version?

Thanks

Yes

riverajohan avatar Nov 14 '23 17:11 riverajohan