[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
emacs-29 02b6be892fa 2/3: Add missing calls to treesit_record_change in
From: |
Yuan Fu |
Subject: |
emacs-29 02b6be892fa 2/3: Add missing calls to treesit_record_change in editfns.c |
Date: |
Thu, 29 Jun 2023 14:16:30 -0400 (EDT) |
branch: emacs-29
commit 02b6be892fa1a30b42c3df21319dddd2f445175e
Author: Yuan Fu <casouri@gmail.com>
Commit: Yuan Fu <casouri@gmail.com>
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;
}