Skip to content

tree-sitter: ignore matches in inner scopes#139

Merged
andymass merged 2 commits into
andymass:masterfrom
cormacrelf:master
Mar 17, 2021
Merged

tree-sitter: ignore matches in inner scopes#139
andymass merged 2 commits into
andymass:masterfrom
cormacrelf:master

Conversation

@cormacrelf

Copy link
Copy Markdown
Contributor

Previously, in the example below, placing the cursor on line 1 would highlight every elif and else in the whole block of code. % would jump to line 4, then % from there would cycle between lines 2, 4 and 6.

 1   if noice:
 2       if yeah:
 3           pass
 4       elif no:
 5           pass
 6       else:
 7           pass
 8   elif blah:
 9       pass
10   else:
11       pass

With the change, which I think the code had contemplated given there was already an unused M.containing_scope(node, bufnr, info.key) call, % will only move between ifs and elses that are in the same @scope.if_, and not to any inner scopes. Hence the example will have two mutually exclusive %-cycles: [1, 8, 10] and [2, 4, 6].

Previously, placing the cursor on line 1 would highlight every elif and
else in the whole block of code. % would jump to line 4, then % from
there would cycle between lines 2, 4 and 6.

 1   if noice:
 2       if yeah:
 3           pass
 4       elif no:
 5           pass
 6       else:
 7           pass
 8   elif blah:
 9       pass
10   else:
11       pass

With the change, which I think the code had contemplated given there was
already an unused `M.containing_scope(node, bufnr, info.key)` call, % will
only move between ifs and elses that are in the same `@scope.if_`, and
not to any inner scopes. Hence the example will have two mutually
exclusive %-cycles: [1, 8, 10] and [2, 4, 6].
@cormacrelf

Copy link
Copy Markdown
Contributor Author

The nightly build fails because nvim-treesitter (#1000) updated all their highlight grammars to work with the breaking-ABI-change TS release 0.19, but the neovim nightly build hasn't been updated since it merged the embedded TS -> 0.19.3 update. So just run again whenever they bump it.

@cormacrelf

Copy link
Copy Markdown
Contributor Author

Ah, turns out they bumped nightly very shortly after I posted that.

@andymass andymass merged commit e477123 into andymass:master Mar 17, 2021
@andymass

Copy link
Copy Markdown
Owner

Thank you for the contribution and interest in the tree-sitter integration! You're totally correct on all points.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants