GNU bug report logs - #66183
elixir-ts-mode test failure

Previous Next

Package: emacs;

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

From: Wilhelm Kirschbaum <wkirschbaum <at> gmail.com>
To: Yuan Fu <casouri <at> gmail.com>
Cc: 66183 <at> debbugs.gnu.org, jm <at> pub.pink
Subject: bug#66183: elixir-ts-mode test failure
Date: Tue, 26 Sep 2023 18:30:37 +0200
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 225 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.