[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#60427: Emacs-29, c++-ts-mode: typing "char" into an empty buffer cau
From: |
Yuan Fu |
Subject: |
bug#60427: Emacs-29, c++-ts-mode: typing "char" into an empty buffer causes an exception in redisplay. |
Date: |
Sat, 31 Dec 2022 14:11:03 -0800 |
> On Dec 31, 2022, at 2:29 AM, Alan Mackenzie <acm@muc.de> wrote:
>
> Hello, Yuan.
>
> On Fri, Dec 30, 2022 at 22:55:41 -0800, Yuan Fu wrote:
>
>
>>> On Dec 30, 2022, at 10:42 PM, Eli Zaretskii <eliz@gnu.org> wrote:
>
>>>> Cc: 60427@debbugs.gnu.org
>>>> From: Yuan Fu <casouri@gmail.com>
>>>> Date: Fri, 30 Dec 2022 17:02:36 -0800
>
>>>> Thank you! I couldn’t reproduce it on the latest trunk
>
>>> AFAIU, the report was about the emacs-29 branch, not about the master
>>> branch. So what did you mean by "latest trunk" above?
>
>> Sorry, imprecise wording, I mean latest emacs-29 :-)
>
> I've just downloaded the latest commits in the emacs-29 branch,
> bootstrapped, and I still see the problem, both in X GUI and on a Linux
> console. Just as a matter of interest, I get the error after typing the
> h in "char", so the problem would appear not to be related to the
> specific character string "char".
>
> As you mentioned, the backtrace now looks a bit different, namely:
>
> Error: treesit-query-error ("Node type error at" 195 "[\"break\" \"case\"
> \"const\" \"continue\" \"default\" \"do\" \"else\" \"enum\" \"extern\"
> \"for\" \"goto\" \"if\" \"inline\" \"register\" \"return\" \"sizeof\"
> \"static\" \"struct\" \"\switch\" \"typedef\" \"union\" \"volatile\"
> \"while\" \"and\" \"and_eq\" \"bitand\" \"bitor\" \"catch\" \"class\"
> \"co_await\" \"co_return\" \"co_yield\" \"compl\" \"concept\" \"consteval\"
> \"constexpr\" \"constinit\" \"decltype\" \"delete\\" \"explicit\" \"final\"
> \"friend\" \"mutable\" \"namespace\" \"new\" \"noexcept\" \"not\" \"not_eq\"
> \"operator\" \"or\" \"or_eq\" \"override\" \"private\" \"protected\"
> \"public\" \"requires\" \"template\" \"throw\" \"try\" \"typename\"\
> \"using\" \"virtual\" \"xor\" \"xor_eq\"] @font-lock-keyword-face (auto)
> @font-lock-keyword-face (this) @font-lock-keyword-face" "Debug the query with
> `treesit-query-validate'")
> debug-early-backtrace()
> debug-early(error (treesit-query-error "Node type error at" 195 "[\"break\"
> \"case\" \"const\" \"continue\" \"default\" \"do\" \"else\" \"enum\"
> \"extern\" \"for\" \"goto\" \"if\" \"inline\" \"register\" \"return\"
> \"sizeof\" \"static\" \\"struct\" \"switch\" \"typedef\" \"union\"
> \"volatile\" \"while\" \"and\" \"and_eq\" \"bitand\" \"bitor\" \"catch\"
> \"class\" \"co_await\" \"co_return\" \"co_yield\" \"compl\" \"concept\"
> \"consteval\" \"constexpr\" \"constinit\" \"declty\pe\" \"delete\"
> \"explicit\" \"final\" \"friend\" \"mutable\" \"namespace\" \"new\"
> \"noexcept\" \"not\" \"not_eq\" \"operator\" \"or\" \"or_eq\" \"override\"
> \"private\" \"protected\" \"public\" \"requires\" \"template\" \"throw\"
> \"try\"\ \"typename\" \"using\" \"virtual\" \"xor\" \"xor_eq\"]
> @font-lock-keyword-face (auto) @font-lock-keyword-face (this)
> @font-lock-keyword-face" "Debug the query with `treesit-query-validate'"))
> treesit-font-lock-fontify-region(1 5 nil)
> font-lock-default-fontify-region(1 5 nil)
> font-lock-fontify-region(1 5)
> #f(compiled-function (fun) #<bytecode
> -0x156e29a3e4e81ac3>)(font-lock-fontify-region)
> jit-lock--run-functions(1 5)
> jit-lock-fontify-now(1 5)
> jit-lock-function(1)
> redisplay_internal\ \(C\ function\)()
>
>
> I forgot to give my configuration arguments, maybe that has something to
> do with it. They're:
>
> ./configure --with-gif=no --with-tiff=no --with-gpm --with-native-compilation
>
> ..
As Eli observed, this seems like a mismatch between the C++ language grammar
you used and the queries used by c++-ts-mode. We need to pin down or declare
the version of the language grammar a major mode is written on. Maybe in NEWS
file?
Yuan
- bug#60427: Emacs-29, c++-ts-mode: typing "char" into an empty buffer causes an exception in redisplay., Alan Mackenzie, 2022/12/30
- bug#60427: Emacs-29, c++-ts-mode: typing "char" into an empty buffer causes an exception in redisplay., Yuan Fu, 2022/12/30
- bug#60427: Emacs-29, c++-ts-mode: typing "char" into an empty buffer causes an exception in redisplay., Eli Zaretskii, 2022/12/31
- bug#60427: Emacs-29, c++-ts-mode: typing "char" into an empty buffer causes an exception in redisplay., Yuan Fu, 2022/12/31
- bug#60427: Emacs-29, c++-ts-mode: typing "char" into an empty buffer causes an exception in redisplay., Alan Mackenzie, 2022/12/31
- bug#60427: Emacs-29, c++-ts-mode: typing "char" into an empty buffer causes an exception in redisplay., Eli Zaretskii, 2022/12/31
- bug#60427: Emacs-29, c++-ts-mode: typing "char" into an empty buffer causes an exception in redisplay., Eli Zaretskii, 2022/12/31
- bug#60427: Emacs-29, c++-ts-mode: typing "char" into an empty buffer causes an exception in redisplay., Yuan Fu, 2022/12/31
- bug#60427: Emacs-29, c++-ts-mode: typing "char" into an empty buffer causes an exception in redisplay.,
Yuan Fu <=