|
20 | 20 |
|
21 | 21 | (define isreplace? #f) |
22 | 22 |
|
23 | | -;; 返回当前窗口的md5值 |
24 | | -(define (current-view-md5) |
25 | | - (md5 (url->string (current-view-url)))) |
26 | | -;;设置当前窗口的辅助窗口状态 |
| 23 | +#| |
| 24 | +set-search-window-state |
| 25 | +设置搜索/替换辅助窗口的打开状态和模式。 |
| 26 | + |
| 27 | +语法 |
| 28 | +---- |
| 29 | +(set-search-window-state opened? is-search?) |
| 30 | + |
| 31 | +参数 |
| 32 | +---- |
| 33 | +opened? : boolean |
| 34 | +窗口是否打开: |
| 35 | +- #t : 窗口打开 |
| 36 | +- #f : 窗口关闭 |
| 37 | + |
| 38 | +is-search? : boolean |
| 39 | +窗口模式: |
| 40 | +- #t : 搜索模式 |
| 41 | +- #f : 替换模式 |
| 42 | + |
| 43 | +返回值 |
| 44 | +---- |
| 45 | +#<unspecified> |
| 46 | +无显式返回值(返回 #<unspecified>)。 |
| 47 | + |
| 48 | +逻辑 |
| 49 | +---- |
| 50 | +将 (opened? is-search?) 状态列表存储到 search-replace-window-table 哈希表中, |
| 51 | +以当前搜索缓冲区 (search-buffer) 为键。 |
| 52 | + |
| 53 | +注意 |
| 54 | +---- |
| 55 | +此函数用于管理搜索/替换辅助窗口的显示状态和模式切换。 |
| 56 | +每个文档视图有独立的搜索缓冲区,因此状态与当前文档视图关联。 |
| 57 | +|# |
27 | 58 | (tm-define (set-search-window-state opened? is-search?) |
28 | | - (ahash-set! search-replace-window-table (current-view-md5) (list opened? is-search?))) |
| 59 | + (ahash-set! search-replace-window-table (search-buffer) (list opened? is-search?))) |
29 | 60 | ;; 获取当前窗口的辅助窗口状态 |
30 | 61 | (define (get-search-window-state) |
31 | | - (ahash-ref search-replace-window-table (current-view-md5))) |
| 62 | + (ahash-ref search-replace-window-table (search-buffer))) |
32 | 63 |
|
33 | 64 | #| |
34 | 65 | update-search-pos-text |
@@ -80,16 +111,46 @@ action : string |
80 | 111 |
|
81 | 112 |
|
82 | 113 |
|
| 114 | +#| |
| 115 | +refresh-search-replace |
| 116 | +根据存储的状态刷新搜索/替换辅助窗口的显示和模式。 |
| 117 | + |
| 118 | +语法 |
| 119 | +---- |
| 120 | +(refresh-search-replace) |
| 121 | + |
| 122 | +参数 |
| 123 | +---- |
| 124 | +无参数。 |
| 125 | + |
| 126 | +返回值 |
| 127 | +---- |
| 128 | +#<unspecified> |
| 129 | +无显式返回值(返回 #<unspecified>)。 |
| 130 | + |
| 131 | +逻辑 |
| 132 | +---- |
| 133 | +1. 获取当前搜索缓冲区的窗口状态 (get-search-window-state) |
| 134 | +2. 根据状态执行相应操作: |
| 135 | + - 状态为空 (#f) : 隐藏辅助窗口 (情况 0) |
| 136 | + - 状态为 (#f _) : 隐藏辅助窗口 (情况 1) |
| 137 | + - 状态为 (#t #t) : 调用 interactive-search 显示搜索窗口 (情况 2) |
| 138 | + - 状态为 (#t #f) : 调用 interactive-replace 显示替换窗口 (情况 3) |
| 139 | + |
| 140 | +注意 |
| 141 | +---- |
| 142 | +此函数在切换标签页或窗口状态变化时调用,确保辅助窗口与当前文档视图状态一致。 |
| 143 | +状态通过 set-search-window-state 存储,每个文档视图有独立的搜索缓冲区。 |
| 144 | +|# |
83 | 145 | (tm-define (refresh-search-replace) |
84 | 146 | (let ((state (get-search-window-state))) |
85 | | - (cond ((not state) |
| 147 | + (cond ((not state) |
86 | 148 | (show-auxiliary-widget #f)) ;; 情况 0:如果状态为空,隐藏辅助窗口 |
87 | | - ((not (car state)) |
88 | | - (debug-message "std" "11111") |
| 149 | + ((not (car state)) |
89 | 150 | (show-auxiliary-widget #f)) ;; 情况 1:如果第一个是#f,隐藏辅助窗口 |
90 | | - ((cadr state) |
| 151 | + ((cadr state) |
91 | 152 | (interactive-search)) ;; 情况 2:如果是 (#t #t),调用搜索 |
92 | | - (else |
| 153 | + (else |
93 | 154 | (interactive-replace))))) ;; 情况 3:如果是 (#t #f),调用替换 |
94 | 155 |
|
95 | 156 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
0 commit comments