From 02b6be892fa1a30b42c3df21319dddd2f445175e Mon Sep 17 00:00:00 2001 From: Yuan Fu Date: Wed, 28 Jun 2023 17:03:19 -0700 Subject: [PATCH] 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. --- src/editfns.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) 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; } -- 2.39.2