Package: emacs;
Reported by: João Távora <joaotavora <at> gmail.com>
Date: Thu, 7 Sep 2023 17:46:02 UTC
Severity: normal
Found in version 30.0.50
Done: Yuan Fu <casouri <at> gmail.com>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: help-debbugs <at> gnu.org (GNU bug Tracking System) To: João Távora <joaotavora <at> gmail.com> Subject: bug#65810: closed (Re: bug#65810: 30.0.50; C-M-f and related functions error out in c++-ts-mode) Date: Thu, 07 Sep 2023 23:13:02 +0000
[Message part 1 (text/plain, inline)]
Your bug report #65810: 30.0.50; C-M-f and related functions error out in c++-ts-mode which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 65810 <at> debbugs.gnu.org. -- 65810: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=65810 GNU Bug Tracking System Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Yuan Fu <casouri <at> gmail.com> To: Eli Zaretskii <eliz <at> gnu.org> Cc: João Távora <joaotavora <at> gmail.com>, 65810-done <at> debbugs.gnu.org Subject: Re: bug#65810: 30.0.50; C-M-f and related functions error out in c++-ts-mode Date: Thu, 7 Sep 2023 16:12:13 -0700> On Sep 7, 2023, at 11:09 AM, Eli Zaretskii <eliz <at> gnu.org> wrote: > >> From: João Távora <joaotavora <at> gmail.com> >> Cc: eliz <at> gnu.org >> Date: Thu, 07 Sep 2023 18:48:07 +0100 >> >> Now just type C-M-f or any C-M-something command. >> >> Debugger entered--Lisp error: (treesit-invalid-predicate nil) >> treesit-node-match-p(#<treesit-node "{" in 1-2> sexp t) >> #f(compiled-function (node) #<bytecode 0x1a160a6a590699e2>)(#<treesit-node "{" in 1-2>) >> treesit-node-match-p(#<treesit-node "{" in 1-2> #f(compiled-function (node) #<bytecode 0x1a160a6a590699e2>) t) >> treesit-node-top-level(#<treesit-node "{" in 1-2> #f(compiled-function (node) #<bytecode 0x1a160a6a590699e2>) t) >> treesit--things-around(5 sexp) >> treesit--navigate-thing(5 -1 beg sexp restricted) >> treesit-beginning-of-thing(sexp 1 restricted) >> treesit-forward-sexp(-1) >> forward-sexp(-1 nil) >> forward-sexp(-1 5) >> backward-sexp(1 5) >> funcall-interactively(backward-sexp 1 5) >> call-interactively(backward-sexp nil nil) >> command-execute(backward-sexp) >> >> simple.cpp can be any C++ file, from a simple >> >> int main() {return 0;} >> >> to a completely empty file. > > With the above sample file I can indeed reproduce the error. But not > with real-life files I tried, where functions are larger and there's > usually more than one function. > > Yuan, could you please look into this? That’s due to some new stuff I added recently. I’ve pushed a fix to master. Sorry for the chaos guys :-( Yuan
[Message part 3 (message/rfc822, inline)]
From: João Távora <joaotavora <at> gmail.com> To: bug-gnu-emacs <at> gnu.org Cc: eliz <at> gnu.org Subject: 30.0.50; C-M-f and related functions error out in c++-ts-mode Date: Thu, 07 Sep 2023 18:48:07 +0100Hi maintainers, This is simple to reproduce, I think: > ~/Source/Emacs/emacs/src/emacs --version GNU Emacs 30.0.50 Development version 59c35bf16fbe on master branch; build date 2023-09-04. > ~/Source/Emacs/emacs/src/emacs -nw -Q ~/tmp/simple.cpp -f c++-ts-mode Now just type C-M-f or any C-M-something command. Debugger entered--Lisp error: (treesit-invalid-predicate nil) treesit-node-match-p(#<treesit-node "{" in 1-2> sexp t) #f(compiled-function (node) #<bytecode 0x1a160a6a590699e2>)(#<treesit-node "{" in 1-2>) treesit-node-match-p(#<treesit-node "{" in 1-2> #f(compiled-function (node) #<bytecode 0x1a160a6a590699e2>) t) treesit-node-top-level(#<treesit-node "{" in 1-2> #f(compiled-function (node) #<bytecode 0x1a160a6a590699e2>) t) treesit--things-around(5 sexp) treesit--navigate-thing(5 -1 beg sexp restricted) treesit-beginning-of-thing(sexp 1 restricted) treesit-forward-sexp(-1) forward-sexp(-1 nil) forward-sexp(-1 5) backward-sexp(1 5) funcall-interactively(backward-sexp 1 5) call-interactively(backward-sexp nil nil) command-execute(backward-sexp) simple.cpp can be any C++ file, from a simple int main() {return 0;} to a completely empty file. When debug-on-error is nil, there is an further error message in *Messages*, but I don't know what it means: Invalid predicate, see `treesit-thing-settings' for valid forms for a predicate: nil [4 times] I installed my C++ grammar with M-x treesit-install-language-grammar, entered 'cpp' (treesit's nickname for C++) and everything else default. The grammar and treesitter seems to be working, I get indentation and font-locking, for example. Furthermore I can confirm this same behavior with a version of the grammar installed today and installed some months ago. Thanks, João In GNU Emacs 30.0.50 (build 4, x86_64-pc-linux-gnu, GTK+ Version 3.24.36, cairo version 1.17.8) of 2023-09-04 built on krug Repository revision: 40514ebf7de644bad984acaeb3ea72b973dae18f Repository branch: master System Description: Arch Linux Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG JSON LCMS2 LIBOTF LIBSYSTEMD LIBXML2 M17N_FLT MODULES NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB Important settings: value of $LC_ALL: en_US.UTF-8 value of $LC_CTYPE: en_US.UTF-8 value of $LANG: C value of $XMODIFIERS: @im=ibus locale-coding-system: utf-8-unix Major mode: C++// Minor modes in effect: whitespace-mode: t server-mode: t yas-global-mode: t yas-minor-mode: t savehist-mode: t windmove-mode: t winner-mode: t fido-vertical-mode: t icomplete-vertical-mode: t icomplete-mode: t fido-mode: t electric-pair-mode: t delete-selection-mode: t global-auto-revert-mode: t global-company-mode: t company-mode: t xclip-mode: t xterm-mouse-mode: t global-eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t window-divider-mode: t line-number-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t hs-minor-mode: t Features: (shadow emacsbug c-ts-mode descr-text ob-ditaa ob-plantuml org-clock org-colview org-crypt org-ctags org-habit org-mouse org-plot org-protocol mhtml-mode css-mode sgml-mode facemenu rst htmlize yas-doc-helper htmlize-autoloads loaddefs-gen lisp-mnt tar-mode arc-mode archive-mode mm-archive ox-odt rng-loc rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex ox-icalendar org-agenda ox-html table ox-ascii ox-publish ox pcmpl-unix pcmpl-gnu markdown-mode novice edebug js-flymake-eslint js c-ts-common edmacro kmacro org-element org-persist org-id org-refile avl-tree oc-basic ol-eww ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect ol-docview doc-view jka-compr image-mode exif ol-bibtex bibtex ol-bbdb ol-w3m ol-doi org-link-doi yasnippet-tests org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-src ob-comint org-pcomplete org-list org-footnote org-faces org-entities noutline outline ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys oc org-loaddefs cal-menu calendar cal-loaddefs org-version org-compat org-macs ert-x ruby-mode yaml-mode vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs log-view vc-dir tramp-cache time-stamp tramp-sh tramp trampver tramp-integration tramp-message tramp-compat tramp-loaddefs tabify eglot external-completion jsonrpc ert ewoc debug backtrace timezone quail gnus-cite gnus-bcklg sh-script smie treesit shell pcomplete gnus-async qp gnus-ml disp-table nndraft nnmh utf-7 nnfolder nnnil gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime dig nntp gnus-cache gnus-sum gnus-group gnus-undo gnus-start gnus-dbus dbus gnus-cloud nnimap nnmail mail-source utf7 nnoo gnus-spec gnus-int gnus-range gnus-win mailalias smtpmail sort mail-extr shr-color textsec uni-scripts idna-mapping ucs-normalize uni-confusable textsec-check parse-time iso8601 gnutls network-stream url-http url-gw nsm url-cache url-auth eww xdg url-queue shr pixel-fill kinsoku url-file svg xml dom mm-url gnus nnheader range ffap bug-reference dired-aux cl-print find-func shortdoc comp comp-cstr help-fns radix-tree log-edit message sendmail yank-media puny dired-x dired dired-loaddefs rfc822 mml mml-sec gnus-util mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader pcvs-util hippie-exp add-log misearch multi-isearch smerge-mode diff vc display-line-numbers cc-mode cc-fonts cc-guess cc-menus cc-cmds breadcrumb imenu term/xterm xterm time-date flymake-proc flymake hideshow whitespace executable vc-git diff-mode vc-dispatcher cus-edit pp cus-start cus-load wid-edit diminish git-rebase-mode server yow cookie1 yasnippet wombat-theme hyperspec sly-autoloads rust-utils rust-mode rx rust-rustfmt rust-playpen rust-compile rust-cargo epa-file epa derived epg rfc6068 epg-config savehist windmove ediff ediff-merg ediff-mult ediff-wind ediff-diff ediff-help ediff-init ediff-util winner icomplete elec-pair delsel autorevert filenotify erc format-spec erc-backend erc-networks erc-common erc-compat compat erc-loaddefs ibuf-ext ibuffer ibuffer-loaddefs auth-source-pass company-oddmuse company-keywords make-mode company-etags etags fileloop generator xref project company-gtags files-x company-dabbrev-code company-dabbrev company-files company-clang company-capf company-cmake company-semantic company-template company-bbdb company cc-styles cc-align cc-engine cc-vars cc-defs beardbolt pulse disass aggressive-indent easy-mmode ack thingatpt pcase compile text-property-search comint ansi-osc ansi-color ring cl-extra help-mode warnings icons xclip finder-inf xt-mouse color mule-util holy color-theme-sanityinc-tomorrow-autoloads corfu-terminal-autoloads corfu-autoloads compat-autoloads debbugs-autoloads diminish-autoloads dts-mode-autoloads go-mode-autoloads lua-mode-autoloads lv-autoloads markdown-mode-autoloads popon-autoloads pos-tip-autoloads pyvenv-autoloads reformatter-autoloads rust-mode-autoloads spinner-autoloads info transient-autoloads xclip-autoloads package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs password-cache json subr-x map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd touch-screen tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads dbusbind inotify lcms2 dynamic-setting system-font-setting font-render-setting cairo gtk x-toolkit xinput2 x multi-tty move-toolbar make-network-process emacs) Memory information: ((conses 16 1068497 236334) (symbols 48 55213 15) (strings 32 280969 46949) (string-bytes 1 7753809) (vectors 16 147167) (vector-slots 8 2762875 94473) (floats 8 1059 16219) (intervals 56 23001 4930) (buffers 992 102))
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.