GNU bug report logs -
#73978
31.0.50; Text syntax applied on too many things in tsx-ts-mode
Previous Next
Reported by: Yuan Fu <casouri <at> gmail.com>
Date: Thu, 24 Oct 2024 04:08:02 UTC
Severity: normal
Found in version 31.0.50
Done: Yuan Fu <casouri <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
Message #52 received at 73978 <at> debbugs.gnu.org (full text, mbox):
> On Dec 24, 2024, at 12:31 AM, Juri Linkov <juri <at> linkov.net> wrote:
>
>> While testing forward-sexp in tsx-ts-mode I noticed that
>> this line in 'tsx-ts--s-p-query':
>>
>> ((jsx_text) @jsx)
>>
>> disrupts syntax-based navigation for forward-sentence-default-function.
>
> With this patch everything works perfectly:
>
> diff --git a/lisp/progmodes/typescript-ts-mode.el b/lisp/progmodes/typescript-ts-mode.el
> index 5c3c9a24ff4..01dd8297996 100644
> --- a/lisp/progmodes/typescript-ts-mode.el
> +++ b/lisp/progmodes/typescript-ts-mode.el
> @@ -630,7 +640,8 @@ tsx-ts--s-p-query
> (when (treesit-available-p)
> (treesit-query-compile 'tsx
> '(((regex pattern: (regex_pattern) @regexp))
> - ((jsx_text) @jsx)))))
> + ((jsx_opening_element) @jsx)
> + ((jsx_closing_element) @jsx)))))
>
> (defun typescript-ts--syntax-propertize (beg end)
> (let ((captures (treesit-query-capture 'typescript typescript-ts--s-p-query beg end)))
Thanks for looking into this! But what’s the intention of this change? In a snippet like this:
<button onClick={() => {
func();
return true;
}}>
Text
{func();}
</button>
Only the “Text” part should be marked as string. With the change you proposed, the <button …> and </button> part would be marked as string.
We must mark text as strings because they could include </>/(/) etc and mess with syntax-ppss.
Yuan
This bug report was last modified 133 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.