Subject: bug#66845: closed (Re: bug#66845: 29.1; cmake-ts-mode indentation broken)

From: [email-masked] (GNU bug Tracking System)
Date: Wed, 08 Nov 2023 12:35:02 +0000

Your bug report

#66845: 29.1; cmake-ts-mode indentation broken

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 [email-masked].

-- 
66845: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=66845
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#66845: 29.1; cmake-ts-mode indentation broken
From: Eli Zaretskii <[email-masked]>
To: Randy Taylor <[email-masked]>
Cc: [email-masked], [email-masked], [email-masked]
Date: Wed, 08 Nov 2023 14:33:31 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

> Cc: Juan Palacios <[email-masked]>, [email-masked]
> Date: Wed, 08 Nov 2023 03:42:37 +0000
> From: Randy Taylor <[email-masked]>
> 
> > Ah, I was a bit rusty too. The approach I mentioned should also have a rule for the first sibling which anchors on the parent, while the rest siblings anchor on the previous sibling. But anchoring all on the parent is equally valid.
> 
> I see.
> 
> Could you (or someone else) install the patch to emacs-29?

Done, thanks.

Subject: 29.1; cmake-ts-mode indentation broken
From: Juan Palacios <[email-masked]>
To: [email-masked]
Date: Tue, 31 Oct 2023 12:35:55 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Using cmake grammar from https://github.com/uyha/tree-sitter-cmake

Reproduction:
1. emacs -q
2. C-x C-f test.cmake
3. M-x cmake-ts-mode
4. Insert the following text:
if(TRUE)
message("indent")
endif()
5. Move the point to the beginning of the second line.
6. TAB
7. Notice that no indentation is performed.

treesit-simple-indent-rules local value:
((cmake
  ((node-is ")")
   parent-bol 0)
  ((node-is "else_command")
   parent-bol 0)
  ((node-is "elseif_command")
   parent-bol 0)
  ((node-is "endforeach_command")
   parent-bol 0)
  ((node-is "endfunction_command")
   parent-bol 0)
  ((node-is "endif_command")
   parent-bol 0)
  ((parent-is "foreach_loop")
   parent-bol cmake-ts-mode-indent-offset)
  ((parent-is "function_def")
   parent-bol cmake-ts-mode-indent-offset)
  ((parent-is "if_condition")
   parent-bol cmake-ts-mode-indent-offset)
  ((parent-is "normal_command")
   parent-bol cmake-ts-mode-indent-offset)))

treesit-explore-mode shows:
(if_condition
 (if_command (if) (
  (argument_list
   (argument (unquoted_argument)))
  ))
 (body
  (normal_command (identifier) (
   (argument_list
    (argument
     (quoted_argument " (quoted_element) ")))
   )))
 (endif_command (endif) ( )))

In GNU Emacs 29.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.38,
cairo version 1.17.8)
Windowing system distributor 'The X.Org Foundation', version 11.0.12101009
System Description: Arch Linux

Configured using:
 'configure --with-x-toolkit=gtk3 --with-native-compilation=aot
 --sysconfdir=/etc --prefix=/usr --libexecdir=/usr/lib
 --with-tree-sitter --localstatedir=/var --with-cairo
 --disable-build-details --with-harfbuzz --with-libsystemd
 --with-modules 'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fno-plt
 -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security
 -fstack-clash-protection -fcf-protection -g
 -ffile-prefix-map=/build/emacs/src=/usr/src/debug/emacs -flto=auto'
 'LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -flto=auto'
 'CXXFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions
 -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security
 -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -g
 -ffile-prefix-map=/build/emacs/src=/usr/src/debug/emacs -flto=auto''

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBOTF LIBSYSTEMD LIBXML2 M17N_FLT MODULES NATIVE_COMP 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 $LANG: es_ES.utf8
  locale-coding-system: utf-8-unix

Major mode: CMake

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message mailcap yank-media puny dired
dired-loaddefs rfc822 mml mml-sec password-cache epa derived epg rfc6068
epg-config gnus-util text-property-search mm-decode mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047
rfc2045 ietf-drums mm-util mail-prsvr mail-utils time-date cmake-ts-mode
treesit cl-loaddefs comp comp-cstr warnings icons subr-x rx cl-seq
cl-macs gv cl-extra help-mode bytecomp byte-compile 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 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 move-toolbar gtk x-toolkit xinput2 x multi-tty
make-network-process native-compile emacs)

Memory information:
((conses 16 82323 7814)
 (symbols 48 7373 0)
 (strings 32 20469 1882)
 (string-bytes 1 626948)
 (vectors 16 16173)
 (vector-slots 8 335652 13542)
 (floats 8 32 42)
 (intervals 56 404 0)
 (buffers 984 13))