GNU bug report logs -
#60128
30.0.50; [PATCH]: Add treesit-transpose-sexps
Previous Next
Reported by: Theodor Thornhill <theo <at> thornhill.no>
Date: Fri, 16 Dec 2022 20:05:01 UTC
Severity: wishlist
Tags: patch
Found in version 30.0.50
Done: Stefan Kangas <stefankangas <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
Message #8 received at 60128 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Theodor Thornhill <theo <at> thornhill.no> writes:
> Hi there!
>
> Attached is a patch that enables transpose-sexps for tree-sitter enabled
> modes.
>
> This function will swap the node _before_ node-at-point with the node
> _after_, so it would do something like:
>
> foo a|nd bar => bar and foo|
>
> or
> foo(a + 4,| y + c * b, b, d); => foo(y + c * b, a + 4|, b, d);
>
> It will _not_ try to swap things that are not siblings. I think that
> makes sense in the case of non-lisp languages, since _most_ places you
> can transpose-sexps you will end up with broken code.
>
from 'transpose-subr-1':
(if (> (cdr pos1) (car pos2)) (error "Don't have two things to
transpose"))
I added this hack into the function in the patch, but I think that
triggering an error is too much.
;; Hack to trigger the error message in `transpose-subr-1' when we
;; don't have siblings to swap.
(list (cons 0 1) (cons 0 1))))
I guess I could just follow suit in my function and do like in the
following patch:
Theo
[0001-Add-treesit-transpose-sexps.patch (text/x-diff, attachment)]
This bug report was last modified 1 year and 255 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.