GNU bug report logs - #60602
29.0.60; treesit-simple-indent doesn't work for top-level nodes

Previous Next

Package: emacs;

Reported by: Piotr Trojanek <piotr.trojanek <at> gmail.com>

Date: Fri, 6 Jan 2023 13:42:02 UTC

Severity: normal

Found in version 29.0.60

Fixed in version 30.1

Done: Stefan Kangas <stefankangas <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Piotr Trojanek <piotr.trojanek <at> gmail.com>
Subject: bug#60602: closed (Re: bug#60602: 29.0.60; treesit-simple-indent
 doesn't work for top-level nodes)
Date: Wed, 06 Sep 2023 00:10:01 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#60602: 29.0.60; treesit-simple-indent doesn't work for top-level nodes

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 60602 <at> debbugs.gnu.org.

-- 
60602: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=60602
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Stefan Kangas <stefankangas <at> gmail.com>
To: Theodor Thornhill <theo <at> thornhill.no>
Cc: Yuan Fu <casouri <at> gmail.com>, 60602-done <at> debbugs.gnu.org,
 piotr.trojanek <at> gmail.com, Dmitry Gutov <dgutov <at> yandex.ru>
Subject: Re: bug#60602: 29.0.60; treesit-simple-indent doesn't work for
 top-level nodes
Date: Tue, 5 Sep 2023 17:09:04 -0700
Theodor Thornhill <theo <at> thornhill.no> writes:

> Dmitry Gutov <dgutov <at> yandex.ru> writes:
>
>> On 20/01/2023 23:40, Theodor Thornhill wrote:
>>> You okay with this patch, Piotr and Dmitry?
>>
>> LGTM.
>
> Ok, installing on emacs-29,
>
> Thanks,
> Theo

This seems to have been fixed already.  I'm therefore closing this bug
report.

If this conclusion is incorrect and this is still an issue, please reply
to this email (use "Reply to all" in your email client) and we can
reopen the bug report.

[Message part 3 (message/rfc822, inline)]
From: Piotr Trojanek <piotr.trojanek <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 29.0.60; treesit-simple-indent doesn't work for top-level nodes
Date: Fri, 6 Jan 2023 14:40:49 +0100
This problem can be reproduced with a correctly configured c-ts-mode,
which fails to indent the first line of a code like this, i.e. with
extra space at the very beginning of file and cursor positioned at
"main"):

===
   int main (int argc, char *argv[])
{
  return 0;
}
===

The intent of c-ts-mode--indent-styles is clearly to indent this line
to 0th column:

(defun c-ts-mode--indent-styles (mode)
  ...
         `(((parent-is "translation_unit") parent-bol 0)

However, when indenting this line treesit-simple-indent is called with
node=translation_unit and parent=nil. It exits too early and doesn't
consider any indentation rules:

(defun treesit-simple-indent (node parent bol)
  "..."
  (if (null parent)
      (progn (when treesit--indent-verbose
               (message "PARENT is nil, not indenting"))
             (cons nil nil))

Note that other tree-sitter modes have similar indentation rules, e.g.
ruby-ts-mode.el:

   ;; Slam all top level nodes to the left margin
   ((parent-is "program") parent 0)

and same for typescript-ts-mode.el:

  ((parent-is "program") parent-bol 0)

Perhaps the early exit from treesit-simple-indent could be removed, so
the indentation rules can decide how to handle a nil parent.

In GNU Emacs 29.0.60 (build 4, x86_64-pc-linux-gnu, GTK+ Version
 3.24.24, cairo version 1.16.0) of 2023-01-06 built on mobile
Repository revision: 7420b6dcc379617ca9691049c16bfb2d158f9496
Repository branch: emacs-29
Windowing system distributor 'The X.Org Foundation', version 11.0.12011000
System Description: Debian GNU/Linux 11 (bullseye)

Configured using:
 'configure --prefix=/opt/emacs-29 --with-tree-sitter'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NOTIFY
INOTIFY PDUMPER PNG RSVG SECCOMP SOUND THREADS TIFF TOOLKIT_SCROLL_BARS
TREE_SITTER X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB



This bug report was last modified 1 year and 338 days ago.

Previous Next


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