GNU bug report logs - #78503
30.0.92; tree-sitter elixir-ts-mode structural movement broken

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Reported by: Bart Otten <bart.otten85@HIDDEN>; dated Tue, 20 May 2025 04:30:03 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.

Message received at 78503 <at> debbugs.gnu.org:


Received: (at 78503) by debbugs.gnu.org; 20 May 2025 06:55:58 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue May 20 02:55:58 2025
Received: from localhost ([127.0.0.1]:52756 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1uHGtJ-0002g2-MC
	for submit <at> debbugs.gnu.org; Tue, 20 May 2025 02:55:58 -0400
Received: from relay7-d.mail.gandi.net ([217.70.183.200]:54505)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1uHGtG-0002f8-49
 for 78503 <at> debbugs.gnu.org; Tue, 20 May 2025 02:55:55 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id BBE2B43C67;
 Tue, 20 May 2025 06:55:45 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: Bart Otten <bart.otten85@HIDDEN>
Subject: Re: bug#78503: 30.0.92; tree-sitter elixir-ts-mode structural
 movement broken
In-Reply-To: <m2wmacdzf5.fsf@HIDDEN>
Organization: LINKOV.NET
References: <m2wmacdzf5.fsf@HIDDEN>
Date: Tue, 20 May 2025 09:46:34 +0300
Message-ID: <87bjrnn5r5.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-GND-State: clean
X-GND-Score: -100
X-GND-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgdefvdefheelucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuifetpfffkfdpucggtfgfnhhsuhgsshgtrhhisggvnecuuegrihhlohhuthemuceftddunecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpefhvfevufgjohhffffkfgggtgesthdtredttdertdenucfhrhhomheplfhurhhiucfnihhnkhhovhcuoehjuhhriheslhhinhhkohhvrdhnvghtqeenucggtffrrghtthgvrhhnpeffgeetfeevlefhleejfeeuheeiudeitdffhfdutdekfeffgffhveehteegueekheenucfkphepledurdduvdelrddutdehrdduudejnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepledurdduvdelrddutdehrdduudejpdhhvghlohepmhgrihhlrdhgrghnughirdhnvghtpdhmrghilhhfrhhomhepjhhurhhisehlihhnkhhovhdrnhgvthdpnhgspghrtghpthhtohepfedprhgtphhtthhopeejkeehtdefseguvggssghughhsrdhgnhhurdhorhhgpdhrtghpthhtohepfihkihhrshgthhgsrghumhesghhmrghilhdrtghomhdprhgtphhtthhopegsrghrthdrohhtthgvnhekheesghhmrghilhdrtghomh
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -1.7 (-)
X-Debbugs-Envelope-To: 78503
Cc: Wilhelm H Kirschbaum <wkirschbaum@HIDDEN>, 78503 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.7 (--)

> Trying to use elixir treesit mode, it seems the navigation of defun and lists seems broken.
>
> 1.) `defmodule` is considered a function definition and so moving up from the first
> actual function definition `def my_fun do` causes the point to jump to
> 'defmodule my_mod do'. Invoking `end-of-defun` jumps to the end of the defmodule block.
> Effectively, you have been ejected from the module body.
>
> ;; current scoped workaround
> ;; does not jump up to defmodule when using `beginning-of-defun`
> (defun elixir-ts--defun-p (node)
>   "Return non-nil when NODE is a defun."
>   (member (treesit-node-text
>            (treesit-node-child-by-field-name node "target"))
>           (append
>            (remove "defmodule" elixir-ts--definition-keywords)
>           elixir-ts--test-definition-keywords)))

This behavior may look logically flawed,
but still it makes sense for user convenience:
while navigating with 'C-M-a' it's handy
to use the same key to move over modules too.

The same navigation exists in other ts-modes as well:
for example, in java-ts-mode 'C-M-a' moves over classes, etc.
OTOH, in ruby-ts-mode it's restricted to methods only.

> 2.) When you use `down-list` while on a function definition line,
> nothing happens. I tried to fix it, ony to find out that
> `backward-up-list` will jump to `defmodule` when invoked while point is at a
> function argument, instead of navigating out of the argument list only.  
>
> Structural movement might need some extra love.

This part is not reproducible.  Do you use the latest master?




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#78503; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 20 May 2025 04:29:20 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue May 20 00:29:20 2025
Received: from localhost ([127.0.0.1]:51120 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1uHEbP-0000hO-7t
	for submit <at> debbugs.gnu.org; Tue, 20 May 2025 00:29:19 -0400
Received: from lists.gnu.org ([2001:470:142::17]:60380)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <bart.otten85@HIDDEN>)
 id 1uH8ha-0002R1-09
 for submit <at> debbugs.gnu.org; Mon, 19 May 2025 18:11:18 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <bart.otten85@HIDDEN>)
 id 1uH8hU-0006Xq-A5
 for bug-gnu-emacs@HIDDEN; Mon, 19 May 2025 18:11:12 -0400
Received: from mail-ed1-x534.google.com ([2a00:1450:4864:20::534])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <bart.otten85@HIDDEN>)
 id 1uH8hS-0002aD-Ds
 for bug-gnu-emacs@HIDDEN; Mon, 19 May 2025 18:11:11 -0400
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-6000f2f217dso4431055a12.1
 for <bug-gnu-emacs@HIDDEN>; Mon, 19 May 2025 15:11:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1747692667; x=1748297467; darn=gnu.org;
 h=mime-version:message-id:date:subject:to:from:from:to:cc:subject
 :date:message-id:reply-to;
 bh=FzW4R3F38uoD0WXILpL6jMYbnkbZRSPY3dU+gaSb2Sg=;
 b=JwrLsjaqDTr+Lj/DU+FFgCpkcPnkywOuFucEIF8/8aIXjEwzltOKiZA6VjPt88QnGY
 b5R1v0VDjkG2M9ltdJYJkvPYTOURmAblvSTsNW+UtI+xYreQ0o7SYGUsRpZmeTf1fPxU
 u9F1xkFgn8XpWhqcjpB/1cBZzXOvFVhxIO/QrzsoeRjHicYa4NvjX5uszcroVQMbLju6
 WSORz9Lgvdke8cIchUsevUFdq5duluTHeSkJt0r/kNZr6ewXP5BMCiTcaON5XyYyID+C
 75WzOsA63NjIFpOtMYrXAULW6XENdxYcNdzJo/G539QCceETx6dOxZLKrEMunoi9vB0m
 hbog==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1747692667; x=1748297467;
 h=mime-version:message-id:date:subject:to:from:x-gm-message-state
 :from:to:cc:subject:date:message-id:reply-to;
 bh=FzW4R3F38uoD0WXILpL6jMYbnkbZRSPY3dU+gaSb2Sg=;
 b=uyzFeZpswAaT0teYFAdWD1S4iLtzeBckKgny6nr86Ayo3XJlB/CA9BqWBm1ZxQIVVC
 DHYF2ERtdGAJaXlSQMIDnukhBn3YwHVytg+4cRqp++1wELA78wy7BXbgyD3Cq9JSH9aY
 CEVzXXU3Lf0K3nHBchWlpdwPRpzZTAvNpwwvmJjZsqZcnPmy3GsADu1meBZ0Z+Jbzfk+
 smj1lMRrclSmMRoHRRF4kTsR1icG81IQ71UC3++0Y3Nzn8kmbMqr6vT72QduuBX0yahQ
 Y+4opld3RF+OViIBWuph8Sup6sBUlogj2Kx9+FmZo0c3i8XtlvLh9qLPuhINHDjUZ+xX
 U1hg==
X-Gm-Message-State: AOJu0Yxy03cjXuy8Nf4Cnlamr90e8Gg+8K0Rwmtm4jFH7ucjq+4AeLRX
 EUsM0bQf0mBzFGfCW0k9D9aM2YTx419cvBgRYwExaeYl5DA54RZ8GJGHJT2CGQ==
X-Gm-Gg: ASbGncuZyCrsictluPIrep1PLiv+daCkhSy+aZ1tj9ihY55PJAtyNFn+Ek/aXfPys23
 cq+n+yz4TV7FivT+z5Wf7fPwFCuapCGdZfHbyi4GPZzES8OdbmDBzssV7eAz1+ZqAwXndOtZ59F
 ARBLGHzFFUftjQPulm5DebaM9/3us3g4Lan6fURA9ub/wImYnlJdQa8g7LlzL9oDr2dhRIlgaQF
 xonfxzcimUYSGrFHLCl/ZKM4waNhnahBfYDdPf7oQPP3+8MGS3HIBjR/nYvmYNEi7/XJol5kwOP
 gbl1BGzNkKQkMz9Kzuksspq+mS5jzYgBtxtm+pJhZx0OjFEjsdEihzYgGBamRAhltC3lJYOcy3A
 a86YkJq6RZI+ysYGuo47Iqaifi94NmmC7N4z4HQsP7MD1R3FJhvMcsiFYT27moYZIpw==
X-Google-Smtp-Source: AGHT+IFrKWwlaAUya8Yli1nCOorEA/KpxuqS3v1hVkOz15yubQ07yn8IQ9kf46okWkSiras7gmOlhg==
X-Received: by 2002:a05:6402:42d4:b0:5ff:f524:90e0 with SMTP id
 4fb4d7f45d1cf-6008a5a10c5mr13057489a12.11.1747692666809; 
 Mon, 19 May 2025 15:11:06 -0700 (PDT)
Received: from localhost (2a02-a45d-7bea-1-5c2d-42a0-14cf-f29c.fixed6.kpn.net.
 [2a02:a45d:7bea:1:5c2d:42a0:14cf:f29c])
 by smtp.gmail.com with UTF8SMTPSA id
 4fb4d7f45d1cf-6005ac32f9esm6277655a12.55.2025.05.19.15.11.06
 for <bug-gnu-emacs@HIDDEN>
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 19 May 2025 15:11:06 -0700 (PDT)
From: Bart Otten <bart.otten85@HIDDEN>
To: bug-gnu-emacs@HIDDEN
Subject: 30.0.92; tree-sitter elixir-ts-mode structural movement broken
X-Debbugs-Cc: 
Date: Tue, 20 May 2025 00:10:54 +0200
Message-ID: <m2wmacdzf5.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
Received-SPF: pass client-ip=2a00:1450:4864:20::534;
 envelope-from=bart.otten85@HIDDEN; helo=mail-ed1-x534.google.com
X-Spam_score_int: -17
X-Spam_score: -1.8
X-Spam_bar: -
X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
 FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001,
 RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 1.2 (+)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 Content preview:  Greetings and salutions, Trying to use elixir treesit mode, 
 it seems the navigation of defun and lists seems broken. 1.) `defmodule`
 is considered a function definition and so moving up from the first actual
 function definition `def my_fun do` causes the point to jump to 'defmodule
 my_mod do'. Invoking `end-of-defun [...] 
 Content analysis details:   (1.2 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -0.0 RCVD_IN_DNSWL_NONE     RBL: Sender listed at https://www.dnswl.org/,
 no trust [2001:470:142:0:0:0:0:17 listed in] [list.dnswl.org]
 1.0 SPF_SOFTFAIL           SPF: sender does not match SPF record (softfail)
 0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
 provider (bart.otten85[at]gmail.com)
 -0.0 SPF_HELO_PASS          SPF: HELO matches SPF record
 0.2 FREEMAIL_ENVFROM_END_DIGIT Envelope-from freemail username ends
 in digit (bart.otten85[at]gmail.com)
X-Debbugs-Envelope-To: submit
X-Mailman-Approved-At: Tue, 20 May 2025 00:29:16 -0400
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.2 (/)

Greetings and salutions,

Trying to use elixir treesit mode, it seems the navigation of defun and lists seems broken.

1.) `defmodule` is considered a function definition and so moving up from the first
actual function definition `def my_fun do` causes the point to jump to
'defmodule my_mod do'. Invoking `end-of-defun` jumps to the end of the defmodule block.
Effectively, you have been ejected from the module body.

;; current scoped workaround
;; does not jump up to defmodule when using `beginning-of-defun`
(defun elixir-ts--defun-p (node)
  "Return non-nil when NODE is a defun."
  (member (treesit-node-text
           (treesit-node-child-by-field-name node "target"))
          (append
           (remove "defmodule" elixir-ts--definition-keywords)
elixir-ts--test-definition-keywords)))


2.) When you use `down-list` while on a function definition line,
nothing happens. I tried to fix it, ony to find out that
`backward-up-list` will jump to `defmodule` when invoked while point is at a
function argument, instead of navigating out of the argument list only.  

Structural movement might need some extra love.

Cheers,
Bart


Major mode: Elixir

Minor modes in effect:
  electric-pair-mode: t
  eglot--managed-mode: t
  exunit-mode: t
  mix-minor-mode: t
  global-org-modern-mode: t
  display-line-numbers-mode: t
  global-treesit-auto-mode: t
  doom-modeline-mode: t
  which-key-mode: t
  org-super-agenda-mode: t
  undo-fu-session-global-mode: t
  undo-fu-session-mode: t
  apprentice-mode: t
  apprentice-hooks-mode: t
  flymake-mode: t
  yas-minor-mode: t
  treesit-inspect-mode: t
  global-visual-wrap-prefix-mode: t
  visual-wrap-prefix-mode: t
  override-global-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  prettify-symbols-mode: t





Acknowledgement sent to Bart Otten <bart.otten85@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#78503; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Tue, 20 May 2025 07:00:02 UTC

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