Skip to content

Commit 63dbfeb

Browse files
JimZhouZZYda-liii
authored andcommitted
!390 [201_6] 使用view替换buffer实现标签页的移动
* 把201_5和201_6的测试文件分开并改名为tmu * 重设任务编号为201_6 * 直接调用cpp的move_tabpage * 补全条件(重构之后条件少了一条) * 重命名ViewHistory类为view_history * 使用view替换buffer实现标签页的移动
1 parent f5afe87 commit 63dbfeb

26 files changed

+923
-111
lines changed

TeXmacs/tests/201_5.scm

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,25 +25,25 @@
2525
(check (length (tabpage-list #t)) => 1))
2626

2727
(define (test-after-loading)
28-
(load-buffer "$TEXMACS_PATH/tests/tm/201_5.tm")
28+
(load-buffer "$TEXMACS_PATH/tests/tmu/201_5.tmu")
2929
(check (length (tabpage-list #t)) => 2)
3030
(check (get-filename-from-url (list-ref (tabpage-list #t) 1))
31-
=> "201_5.tm"))
31+
=> "201_5.tmu"))
3232

3333
(define (test-same-window-loading)
34-
(load-buffer "$TEXMACS_PATH/tests/tm/201_5_in_same_window.tm")
34+
(load-buffer "$TEXMACS_PATH/tests/tmu/201_5_in_same_window.tmu")
3535
(check (length (tabpage-list #t)) => 3)
3636
(check (get-filename-from-url (list-ref (tabpage-list #t) 2))
37-
=> "201_5_in_same_window.tm"))
37+
=> "201_5_in_same_window.tmu"))
3838

3939
(define (test-new-window-loading)
40-
(load-buffer-in-new-window "$TEXMACS_PATH/tests/tm/201_5_in_new_window_1.tm")
41-
(load-buffer "$TEXMACS_PATH/tests/tm/201_5_in_new_window_2.tm")
40+
(load-buffer-in-new-window "$TEXMACS_PATH/tests/tmu/201_5_in_new_window_1.tmu")
41+
(load-buffer "$TEXMACS_PATH/tests/tmu/201_5_in_new_window_2.tmu")
4242
(check (length (tabpage-list #t)) => 2)
4343
(check (get-filename-from-url (list-ref (tabpage-list #t) 0))
44-
=> "201_5_in_new_window_1.tm")
44+
=> "201_5_in_new_window_1.tmu")
4545
(check (get-filename-from-url (list-ref (tabpage-list #t) 1))
46-
=> "201_5_in_new_window_2.tm"))
46+
=> "201_5_in_new_window_2.tmu"))
4747

4848
(define (test-view-to-window)
4949
(let* ((tabpages (tabpage-list #t))

TeXmacs/tests/201_6.scm

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
2+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3+
;;
4+
;; MODULE : 201_6.scm
5+
;; DESCRIPTION : Tests for move-tabpage
6+
;; COPYRIGHT : (C) 2025 JimZhouZZY
7+
;;
8+
;; This software falls under the GNU general public license version 3 or later.
9+
;; It comes WITHOUT ANY WARRANTY WHATSOEVER. For details, see the file LICENSE
10+
;; in the root directory or <http://www.gnu.org/licenses/gpl-3.0.html>.
11+
;;
12+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
13+
14+
(import (liii check))
15+
16+
(check-set-mode! 'report-failed)
17+
18+
(define (get-filename-from-url url)
19+
;; Extract the filename from a URL by splitting on '/' and taking the last element"
20+
(let* ((url-str (url->string url))
21+
(parts (string-split url-str #\/)))
22+
(car (reverse parts))))
23+
24+
(define (debug-print-tabpages)
25+
"Print all current tabpage filenames for debugging"
26+
(let* ((tabpages (tabpage-list #t))
27+
(filenames (map get-filename-from-url tabpages)))
28+
(display* "Current tabpages (" (length tabpages) "): [")
29+
(for (i (.. 0 (length filenames)))
30+
(when (< i (length filenames))
31+
(display* (number->string i) ":" (list-ref filenames i))
32+
(when (< (+ i 1) (length filenames))
33+
(display* ", "))))
34+
(display* "]\n")))
35+
36+
(define (test-same-window)
37+
(load-buffer "$TEXMACS_PATH/tests/tmu/201_6.tmu")
38+
(load-buffer "$TEXMACS_PATH/tests/tmu/201_6_in_same_window.tmu")
39+
(load-buffer "$TEXMACS_PATH/tests/tmu/201_6_in_same_window_2.tmu")
40+
;; [_] A B C
41+
(debug-print-tabpages)
42+
(move-tabpage 3 2)
43+
(debug-print-tabpages)
44+
;; [_] A C B
45+
(check (length (tabpage-list #t)) => 4)
46+
(check (get-filename-from-url (list-ref (tabpage-list #t) 1))
47+
=> "201_6.tmu")
48+
(check (get-filename-from-url (list-ref (tabpage-list #t) 2))
49+
=> "201_6_in_same_window_2.tmu")
50+
(check (get-filename-from-url (list-ref (tabpage-list #t) 3))
51+
=> "201_6_in_same_window.tmu")
52+
(move-tabpage 3 1)
53+
(debug-print-tabpages)
54+
;; [_] B A C
55+
(check (length (tabpage-list #t)) => 4)
56+
(check (get-filename-from-url (list-ref (tabpage-list #t) 1))
57+
=> "201_6_in_same_window.tmu")
58+
(check (get-filename-from-url (list-ref (tabpage-list #t) 2))
59+
=> "201_6.tmu")
60+
(check (get-filename-from-url (list-ref (tabpage-list #t) 3))
61+
=> "201_6_in_same_window_2.tmu")
62+
(move-tabpage 1 2)
63+
(debug-print-tabpages)
64+
;; [_] A B C
65+
(check (length (tabpage-list #t)) => 4)
66+
(check (get-filename-from-url (list-ref (tabpage-list #t) 1))
67+
=> "201_6.tmu")
68+
(check (get-filename-from-url (list-ref (tabpage-list #t) 2))
69+
=> "201_6_in_same_window.tmu")
70+
(check (get-filename-from-url (list-ref (tabpage-list #t) 3))
71+
=> "201_6_in_same_window_2.tmu"))
72+
73+
(define (test-multi-window)
74+
(load-buffer-in-new-window "$TEXMACS_PATH/tests/tmu/201_6_in_new_window_1.tmu")
75+
(load-buffer "$TEXMACS_PATH/tests/tmu/201_6_in_new_window_2.tmu")
76+
(load-buffer "$TEXMACS_PATH/tests/tmu/201_6_in_new_window_3.tmu")
77+
;; D E F (4 5 6)
78+
(debug-print-tabpages)
79+
(move-tabpage 2 1)
80+
(debug-print-tabpages)
81+
;; D F E
82+
(check (length (tabpage-list #t)) => 3)
83+
(check (get-filename-from-url (list-ref (tabpage-list #t) 0))
84+
=> "201_6_in_new_window_1.tmu")
85+
(check (get-filename-from-url (list-ref (tabpage-list #t) 1))
86+
=> "201_6_in_new_window_3.tmu")
87+
(check (get-filename-from-url (list-ref (tabpage-list #t) 2))
88+
=> "201_6_in_new_window_2.tmu")
89+
(move-tabpage 2 0)
90+
(debug-print-tabpages)
91+
;; E D F
92+
(check (length (tabpage-list #t)) => 3)
93+
(check (get-filename-from-url (list-ref (tabpage-list #t) 0))
94+
=> "201_6_in_new_window_2.tmu")
95+
(check (get-filename-from-url (list-ref (tabpage-list #t) 1))
96+
=> "201_6_in_new_window_1.tmu")
97+
(check (get-filename-from-url (list-ref (tabpage-list #t) 2))
98+
=> "201_6_in_new_window_3.tmu")
99+
(move-tabpage 0 1)
100+
(debug-print-tabpages)
101+
;; D E F
102+
(check (length (tabpage-list #t)) => 3)
103+
(check (get-filename-from-url (list-ref (tabpage-list #t) 0))
104+
=> "201_6_in_new_window_1.tmu")
105+
(check (get-filename-from-url (list-ref (tabpage-list #t) 1))
106+
=> "201_6_in_new_window_2.tmu")
107+
(check (get-filename-from-url (list-ref (tabpage-list #t) 2))
108+
=> "201_6_in_new_window_3.tmu"))
109+
110+
(tm-define (test_201_6)
111+
(test-same-window)
112+
(test-multi-window)
113+
(check-report))

TeXmacs/tests/tm/201_5.tm

Lines changed: 0 additions & 13 deletions
This file was deleted.

TeXmacs/tests/tm/201_5_in_new_window_1.tm

Lines changed: 0 additions & 13 deletions
This file was deleted.

TeXmacs/tests/tm/201_5_in_new_window_2.tm

Lines changed: 0 additions & 13 deletions
This file was deleted.

TeXmacs/tests/tm/201_5_in_same_window.tm

Lines changed: 0 additions & 13 deletions
This file was deleted.

TeXmacs/tests/tmu/201_5.tmu

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<TMU|<tuple|1.0.1|1.2.7-rc3>>
2+
3+
<style|<tuple|generic|chinese>>
4+
5+
<\body>
6+
地球智造,惠及全球
7+
</body>
8+
9+
<\initial>
10+
<\collection>
11+
<associate|page-medium|papyrus>
12+
<associate|page-screen-margin|true>
13+
</collection>
14+
</initial>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<TMU|<tuple|1.0.1|1.2.7-rc3>>
2+
3+
<style|<tuple|generic|chinese>>
4+
5+
<\body>
6+
地球智造,惠及全球
7+
</body>
8+
9+
<\initial>
10+
<\collection>
11+
<associate|page-medium|papyrus>
12+
<associate|page-screen-margin|true>
13+
</collection>
14+
</initial>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<TMU|<tuple|1.0.1|1.2.7-rc3>>
2+
3+
<style|<tuple|generic|chinese>>
4+
5+
<\body>
6+
地球智造,惠及全球
7+
</body>
8+
9+
<\initial>
10+
<\collection>
11+
<associate|page-medium|papyrus>
12+
<associate|page-screen-margin|true>
13+
</collection>
14+
</initial>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<TMU|<tuple|1.0.1|1.2.7-rc3>>
2+
3+
<style|<tuple|generic|chinese>>
4+
5+
<\body>
6+
地球智造,惠及全球
7+
</body>
8+
9+
<\initial>
10+
<\collection>
11+
<associate|page-medium|papyrus>
12+
<associate|page-screen-margin|true>
13+
</collection>
14+
</initial>

0 commit comments

Comments
 (0)