GNU bug report logs - #61001
29.0.60; c-ts-mode: A recent update broke indent-according-to-mode

Previous Next

Package: emacs;

Reported by: Mohammed Sadiq <sadiq <at> sadiqpk.org>

Date: Sun, 22 Jan 2023 07:30:02 UTC

Severity: normal

Found in version 29.0.60

Fixed in version 30.1

Done: Theodor Thornhill <theo <at> thornhill.no>

Bug is archived. No further changes may be made.

Full log


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

From: Mohammed Sadiq <sadiq <at> sadiqpk.org>
To: bug-gnu-emacs <at> gnu.org
Subject: 29.0.60; c-ts-mode: A recent update broke indent-according-to-mode
Date: Sun, 22 Jan 2023 12:59:14 +0530
A recent update in c-ts-mode broke indent-according-to-mode. Some test
cases in my elisp scripts fails to succeed after a recent update.
The indentation seems to work fine when editing C source files though.

Minimal reproducible example (save to test.el):

(let ((buffer (generate-new-buffer "temp.c")))
  (with-current-buffer buffer
    (c-ts-mode)
    (insert "int main() {\n if ")
    (indent-according-to-mode)))

Execute the file with:
emacs -Q -batch -l test.el

Error log:
Error: treesit-indent-error ("Couldn't find the preset corresponding to 
expression" c-ts-mode--looking-at-star)
  mapbacktrace(#f(compiled-function (evald func args flags) #<bytecode 
-0x10efd02ab0517942>))
  debug-early-backtrace()
  debug-early(error (treesit-indent-error "Couldn't find the preset 
corresponding to expression" c-ts-mode--looking-at-star))
  signal(treesit-indent-error ("Couldn't find the preset corresponding 
to expression" c-ts-mode--looking-at-star))
  treesit--simple-indent-eval(c-ts-mode--looking-at-star)
  mapcar(treesit--simple-indent-eval ((parent-is "comment") 
c-ts-mode--looking-at-star))
  treesit--simple-indent-eval((and (parent-is "comment") 
c-ts-mode--looking-at-star))
  treesit--simple-indent-eval(((and (parent-is "comment") 
c-ts-mode--looking-at-star) #<treesit-node "if" in 15-17> #<treesit-node 
ERROR in 1-17> 15))
  treesit-simple-indent(#<treesit-node "if" in 15-17> #<treesit-node 
ERROR in 1-17> 15)
  treesit--indent-1()
  treesit-indent()
  indent-according-to-mode()
  (save-current-buffer (set-buffer buffer) (c-ts-mode) (insert "int 
main() {\n if ") (indent-according-to-mode))
  (let ((buffer (generate-new-buffer "temp.c"))) (save-current-buffer 
(set-buffer buffer) (c-ts-mode) (insert "int main() {\n if ") 
(indent-according-to-mode)))
  eval-buffer(#<buffer  *load*> nil "/home/sadiq/test.el" nil t)
  load-with-code-conversion("/home/sadiq/test.el" "/home/sadiq/test.el" 
nil t)
  load("/home/sadiq/test.el" nil t)
  command-line-1(("-l" "test.el"))
  command-line()
  normal-top-level()
Generic tree-sitter indentation error: "Couldn't find the preset 
corresponding to expression", c-ts-mode--looking-at-star


In GNU Emacs 29.0.60 (build 5, x86_64-pc-linux-gnu, GTK+ Version
 3.24.36, cairo version 1.16.0) of 2023-01-22 built on purism
Repository revision: e74ba72a6a34221abf47145ecf0ec4fc8cda2555
Repository branch: emacs-29
Windowing system distributor 'The X.Org Foundation', version 
11.0.12101006
System Description: Debian GNU/Linux bookworm/sid




This bug report was last modified 2 years and 174 days ago.

Previous Next


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