diff options
| author | Yuan Fu | 2024-09-15 00:24:03 -0700 |
|---|---|---|
| committer | Yuan Fu | 2024-09-15 00:31:40 -0700 |
| commit | 460b9d705ab482003fabe75b0fd1df223abe467c (patch) | |
| tree | fa25d65ea42a6e5f48f7a5a32d5b95fb6e265fae /test/src | |
| parent | 81347c1aaf25b27e78e8beee4bc818ad2c4e1b71 (diff) | |
| download | emacs-460b9d705ab482003fabe75b0fd1df223abe467c.tar.gz emacs-460b9d705ab482003fabe75b0fd1df223abe467c.zip | |
Fix treesit_sync_visible_region's range fixup code (bug#73264)
new_ranges_head
|
v
( )->( )->( )->( )->( )
^ ^
| |
| lisp_ranges (loop head)
|
prev_cons -> set cdr to nil to cut of the rest
result:
( )->( )
* src/treesit.c (treesit_sync_visible_region): Cut off this cons and the
rest, not set the current range's end to nil.
* test/src/treesit-tests.el:
(treesit-range-fixup-after-edit): Add tests for all cases.
Diffstat (limited to 'test/src')
| -rw-r--r-- | test/src/treesit-tests.el | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/test/src/treesit-tests.el b/test/src/treesit-tests.el index 98aaeb62781..68ed6ca751f 100644 --- a/test/src/treesit-tests.el +++ b/test/src/treesit-tests.el | |||
| @@ -709,7 +709,37 @@ visible_end.)" | |||
| 709 | '((1 . 7) (10 . 15)))) | 709 | '((1 . 7) (10 . 15)))) |
| 710 | (narrow-to-region 5 13) | 710 | (narrow-to-region 5 13) |
| 711 | (should (equal (treesit-parser-included-ranges parser) | 711 | (should (equal (treesit-parser-included-ranges parser) |
| 712 | '((5 . 7) (10 . 13))))))) | 712 | '((5 . 7) (10 . 13)))) |
| 713 | |||
| 714 | ;; Narrow in front. | ||
| 715 | (widen) | ||
| 716 | (treesit-parser-set-included-ranges parser '((4 . 17))) | ||
| 717 | ;; 11111111111111111111 | ||
| 718 | ;; [ ] | ||
| 719 | ;; { } narrow | ||
| 720 | (narrow-to-region 1 8) | ||
| 721 | (should (equal (treesit-parser-included-ranges parser) | ||
| 722 | '((4 . 8)))) | ||
| 723 | |||
| 724 | ;; Narrow in back. | ||
| 725 | (widen) | ||
| 726 | (treesit-parser-set-included-ranges parser '((4 . 17))) | ||
| 727 | ;; 11111111111111111111 | ||
| 728 | ;; [ ] | ||
| 729 | ;; { } narrow | ||
| 730 | (narrow-to-region 15 20) | ||
| 731 | (should (equal (treesit-parser-included-ranges parser) | ||
| 732 | '((15 . 17)))) | ||
| 733 | |||
| 734 | ;; No overlap | ||
| 735 | (widen) | ||
| 736 | (treesit-parser-set-included-ranges parser '((15 . 20))) | ||
| 737 | ;; 11111111111111111111 | ||
| 738 | ;; [ ] | ||
| 739 | ;; { } narrow | ||
| 740 | (narrow-to-region 1 10) | ||
| 741 | (should (equal (treesit-parser-included-ranges parser) | ||
| 742 | nil))))) | ||
| 713 | 743 | ||
| 714 | ;;; Multiple language | 744 | ;;; Multiple language |
| 715 | 745 | ||