GNU bug report logs - #73404
30.0.50; [forward/kill/etc]-sexp commands do not behave as expected in tree-sitter modes

Previous Next

Package: emacs;

Reported by: Mickey Petersen <mickey <at> masteringemacs.org>

Date: Sat, 21 Sep 2024 05:13:01 UTC

Severity: normal

Merged with 74366

Found in version 30.0.50

Fixed in version 31.0.50

Done: Juri Linkov <juri <at> linkov.net>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Juri Linkov <juri <at> linkov.net>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: mickey <at> masteringemacs.org, Eli Zaretskii <eliz <at> gnu.org>, Theodor Thornhill <theo <at> thornhill.no>, casouri <at> gmail.com, 73404 <at> debbugs.gnu.org
Subject: bug#73404: 30.0.50; [forward/kill/etc]-sexp commands do not behave as expected in tree-sitter modes
Date: Sat, 11 Jan 2025 20:19:47 +0200
> But indeed for list operations in indentation-based languages like
> Haskell/Python/Coffeescript/YAML, we're faced again with the fact that
> a closing LF can close several nested lists, so when going backward
> there is some amount of ambiguity (and I'd argue that it's preferable
> (and closer to the historical behavior) to choose to jump less far,
> e.g. so that `C-M-n C-M-p` never moves backward).

I tried to implement list operations in yaml-ts-mode
on the nodes "block_mapping_pair" and "flow_sequence".

While testing everything looked so nice when `C-M-f`
and `C-M-b` moved on the whole key-value pairs.

But in actual use, it turned out to be completely unusable.

It feels this is because `C-M-f` is expected to move
to the next symbol unless it's at the beginning
of (...), [...], if...fi, begin...end.

Perhaps we should still support list navigation only
for these 4 keys: 'C-M-n', 'C-M-p', 'C-M-d', 'C-M-y',
but not for `C-M-f` and `C-M-b`.




This bug report was last modified 131 days ago.

Previous Next


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