From: Yuan Fu Date: Thu, 29 Jun 2023 00:03:19 +0000 (-0700) Subject: Add missing calls to treesit_record_change in editfns.c X-Git-Tag: emacs-29.1-rc1~91^2~1 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=02b6be892fa1a30b42c3df21319dddd2f445175e;p=emacs.git Add missing calls to treesit_record_change in editfns.c These should be all that are missing. See the next commit for detail. * src/editfns.c (Ftranslate_region_internal): (Ftranspose_regions): Call treesit_record_change. --- diff --git a/src/editfns.c b/src/editfns.c index 0cbeefb3262..a1e48daf6c6 100644 --- a/src/editfns.c +++ b/src/editfns.c @@ -2603,6 +2603,15 @@ It returns the number of characters changed. */) *p++ = *str++; signal_after_change (pos, 1, 1); update_compositions (pos, pos + 1, CHECK_BORDER); + +#ifdef HAVE_TREE_SITTER + /* In the previous branch, replace_range() notifies + changes to tree-sitter, but in this branch, we + modified buffer content manually, so we need to + notify tree-sitter manually. */ + treesit_record_change (pos_byte, pos_byte + len, + pos_byte + len); +#endif } characters_changed++; } @@ -4776,6 +4785,13 @@ ring. */) adjust_markers_bytepos (start1, start1_byte, end2, end2_byte, 0); } +#ifdef HAVE_TREE_SITTER + /* I don't think it's common to transpose two far-apart regions, so + amalgamating the edit into one should be fine. This is what the + signal_after_change below does, too. */ + treesit_record_change (start1_byte, end2_byte, end2_byte); +#endif + signal_after_change (start1, end2 - start1, end2 - start1); return Qnil; }