GNU bug report logs - #72489
29.4.50; forward-comment not working as expected in toml-ts-mode

Previous Next

Package: emacs;

Reported by: Yang Yingchao <yang.yingchao <at> qq.com>

Date: Tue, 6 Aug 2024 06:08:01 UTC

Severity: normal

Found in version 29.4.50

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #11 received at 72489 <at> debbugs.gnu.org (full text, mbox):

From: Jostein Kjønigsen <jostein <at> secure.kjonigsen.net>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: Yang Yingchao <yang.yingchao <at> qq.com>,
 "Mr. Jostein Kjønigsen" <jostein <at> kjonigsen.net>,
 72489 <at> debbugs.gnu.org
Subject: Re: bug#72489: 29.4.50; forward-comment not working as expected in
 toml-ts-mode
Date: Tue, 6 Aug 2024 15:06:03 +0200
> On 6 Aug 2024, at 13:50, Eli Zaretskii <eliz <at> gnu.org> wrote:
> 
>> Date: Tue, 06 Aug 2024 13:57:28 +0800
>> From:  Yang Yingchao via "Bug reports for GNU Emacs,
>> the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
>> 
>> 
>> 
>> Steps to reproduce:
>> 
>> 1. Open a new buffer in `toml-ts-mode`.
>> 2. Insert the following simple snippets:
>> ```
>> # (forward-comment 1)
>> # [[keyboard.bindings]]
>> # chars = "a"
>> # key = "Tab"
>> # mods = "Alt"
>> ```
>> 3. Move the cursor to the first line and call `eval-last-sexp`.
>> 
>> This should move the cursor to the beginning of the line "chars = a", but actually it moves the cursor to the end of the whole block.
>> 
>> This might be an issue with `toml-ts-mode--syntax-table`.
>> 
>> Making a change in https://github.com/emacs-mirror/emacs/blob/e993e479c324bb720bca3f1cf194e55e32f01ccd/lisp/textmodes/toml-ts-mode.el#L53 can fix this issue:
>> 
>> ```
>> -    (modify-syntax-entry ?\n "> b"  table)
>> +    (modify-syntax-entry ?\n ">"  table)
>> ```
> 
> Thanks.
> 
> Jostein, could you please look into this?

Hey there. Let me see if I can help.

Just to be clear I understand the issue and how to reproduce it:

1. you create an empty buffer and activate toml-ts-mode
2. you paste in the supplied text, which is all comments according to TOML syntax
3. first line is actually a commented out emacs-lisp command.
4. you use (eval-last-sexp) to invoke the command emacs-lisp (forward-comment 1)

And once you do that, the expected outcome would be to jump to next comment-line (ie each commented line is considered its own comment-block)?

I ask, because if I do that, I get an *error* about reaching the end of file, so it seems like whatever I'm doing I'm getting slightly different results than you are. Applying the suggested fix does not seem to change behaviour either?

Yang: Have you loaded/compiled/provided the toml typescript-grammar before using this mode?

The *-ts-modes depends on external grammar in order to properly initialize the major-mode and provide correct highlighting and indentation.

--
Jostein





This bug report was last modified 1 year and 5 days ago.

Previous Next


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