GNU bug report logs -
#66183
elixir-ts-mode test failure
Previous Next
Reported by: john muhl <jm <at> pub.pink>
Date: Sun, 24 Sep 2023 18:09:02 UTC
Severity: normal
Done: Yuan Fu <casouri <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
Yuan Fu <casouri <at> gmail.com> writes:
>> On Sep 24, 2023, at 9:53 AM, john muhl via Bug reports for GNU
>> Emacs, the Swiss army knife of text editors
>> <bug-gnu-emacs <at> gnu.org>
>> wrote:
>>
>> The change in 5cba5ee8905 caused an elixir test to start
>> failing. The
>> white space at the start of the test is now in a heex range so
>> pressing
>> tab there matches a heex rule instead of the elixir one. Moving
>> the
>> dummy range to the end fixes the test.
>
> Thank you. I’ll make sure to remember also running elixir tests
> when I make a change.
>
> I looked around and found elixir-mode’s language-at-point
> function
> works in a way that isn’t what tree-sitter functions
> expect. Tree-sitter functions expect the major mode to derive
> language
> at point by querying the host language and do some pattern
> matching,
> rather than using language parser’s range. I took a quick look
> at
> elixir’s grammar and came up with this version for a POC. You
> probably
Sorry about that. I had absolutely no idea how it was expected to
work.
> need to adjust it but the idea is there.
>
> With the new language-at-point definition, treesit-language-at
> can
> return the correct language, and the test passes again.
>
> Yuan
>
> [2. text/x-patch; example.diff]...
This seems to work if you set named on: treesit-node-prev-sibling,
otherwise it just tries to match the \"\"\" against H or F.
(let* ((node (treesit-node-at point 'elixir)))
(if (and (equal (treesit-node-type node) "quoted_content")
(string-match-p
(rx bos (or "H" "F") eos)
- (treesit-node-text (treesit-node-prev-sibling
node))))
+ (treesit-node-text (treesit-node-prev-sibling node
t))))
'heex
'elixir)))
I will spend some time in the next couple of hours to catch up to
all
the changes.
Wilhelm
This bug report was last modified 1 year and 226 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.