Skip to content

Commit d1ceab5

Browse files
MoonL79Yuki-Nagori
authored andcommitted
!1099 [202_72] 修复切换插件类型后重新打开弹窗不显示默认的python插件路径的问题
1 parent cae612a commit d1ceab5

File tree

2 files changed

+62
-20
lines changed

2 files changed

+62
-20
lines changed

TeXmacs/progs/dynamic/session-menu.scm

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@
9999
(define binary-type "python")
100100
(define binary-path "")
101101
(define warning-message "")
102-
(define binary-list (list "python" "aspell" "conda" "convert" "goldfish" "ghostscript"))
102+
(define binary-list (list "python" "aspell" "conda" "convert" "goldfish" "ghostscript" "hunspell" "identify" "inkscape" "pandoc" "pdftocairo" "rsvg-convert"))
103103

104104
(define-format windows-executables
105105
(:name "Executable")
@@ -109,14 +109,14 @@
109109
(:name "Executable")
110110
(:suffix ""))
111111

112+
(tm-define (name-to-id name)
113+
(cond ((string=? name "python") "python3")
114+
((string=? name "ghostcript") "gs")
115+
(else name)))
116+
112117
; 更新路径信息,并刷新输入框让其显示新的路径信息
113118
(tm-define (update-path)
114-
(let* ((this-opt (cond ((string=? binary-type "python")
115-
(string-append "plugin:binary:" binary-type "3"))
116-
((string=? binary-type "ghostscript")
117-
(string-append "plugin:binary:" "gs"))
118-
(else
119-
(string-append "plugin:binary:" binary-type))))
119+
(let* ((this-opt (string-append "plugin:binary:" (name-to-id binary-type)))
120120
(this-path (get-preference this-opt)))
121121
(cond ((string=? this-path "default")
122122
(set! binary-path ""))
@@ -126,21 +126,15 @@
126126

127127
; 拼接字符串并传递给set-preference设置自定义路径
128128
(tm-define (set-binary-path)
129-
(let* ((binary-opt (cond ((string=? binary-type "python")
130-
"plugin:binary:python3")
131-
((string=? binary-type "ghostscript")
132-
"plugin:binary:gs")
133-
(else
134-
(string-append "plugin:binary:" binary-type)))))
135-
(set-preference binary-opt binary-path)
136-
(display* (string-append binary-opt " " binary-path) "\n")))
129+
(let* ((binary-opt (string-append "plugin:binary:" (name-to-id binary-type))))
130+
(set-preference binary-opt binary-path)))
137131

138132
; 验证路径是否符合要求
139133
(tm-define (find-binary-in-candidates)
140134
(when (string=? binary-path "")
141135
#f)
142136
(let ((url (string->url binary-path))
143-
(binary-name (cond ((string=? binary-type "ghostscript")
137+
(binary-name (cond ((string=? binary-type "ghostscript") ;这里不能用(name-to-id)处理,如果使用了,则python插件无法适用于下面的判断逻辑
144138
"gs")
145139
(else
146140
binary-type))))
@@ -219,15 +213,19 @@
219213
(lambda (x) (apply make-session x))))
220214
("Other" (interactive make-session))
221215
("Manual path" (dialogue-window manual-path-widget
222-
(lambda (args)
223-
(display* args "\n")
216+
(lambda (args)
224217
(when (!= args "cancel") ; 仅路径存在并点击确定时开始设置路径
225218
(if (not (find-binary-in-candidates)) ; 如果路径不合法,拒绝设置,弹出错误窗口
226219
(dialogue-window path-incorrect-widget
227-
(lambda (args) (display* args "\n")) "Warning")
220+
(lambda (args)
221+
(set! binary-type (car binary-list)))
222+
"Warning")
228223
(begin (set-binary-path) ; 路径合法,设置路径并弹出提示窗口
229224
(dialogue-window please-restart-widget
230-
(lambda (args) (display* args "\n")) "Warning")))))
225+
(lambda (args)
226+
(set! binary-type (car binary-list)))
227+
"Warning"))))
228+
(set! binary-type (car binary-list)))
231229
"Set binary path"))))
232230

233231
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

devel/202_72.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,50 @@
88
+ 设置一个正确的路径,比如 **/usr/bin/python3** ,查看是否正确弹出需要重启软件的弹窗。
99
+ 设置一个错误的路径,比如 **/home/master/Desktop/test.txt** ,查看是否弹出路径错误的弹窗。
1010
+ 成功设置路径后,点击 **插入->会话->scheme** ,输入 **(get-preference "plugin:binary:name")** ,其中 name 是刚才设置的插件名称,如果是 python 需要换成 python3,如果是 ghostscript 需要换成gs,查看输出是否为刚才自己设置的路径。
11+
+ 查看下拉框中的项是否存在错误翻译为中文的现象。
12+
+ 更改插件类型,查看文本框中的路径是否跟随变化为对应插件的路径。
13+
+ 为一个插件设置空路径,点击确定,查看是否弹出错误窗口。
14+
+ 打开弹窗,切换至python以外的插件类型,是否设置路径无所谓,点击确定,再次打开弹窗,查看python路径是否正确显示。
15+
16+
## 2025/11/28 修复切换插件类型后重新打开弹窗不显示默认的python插件路径的问题
17+
18+
### What
19+
20+
打开弹窗,更改插件类型,点击确认设置路径,关闭再次打开弹窗,显示的插件类型是 python,但文本框中是上次设置的另一个插件的路径。
21+
22+
### How
23+
24+
在弹窗关闭前将 binary-type 重新设置为 python。
25+
26+
## 2025/11/28 封装插件名称与插件id的转换逻辑
27+
28+
### What
29+
30+
存在插件名称与其可执行文件名称不对应的情况。
31+
32+
### How
33+
34+
创建一个函数实现名称的转换。
35+
36+
## 2025/11/28 修复设置空路径不弹出错误窗口的问题
37+
38+
### What
39+
40+
若用户设置的路径为空,点击确定不会弹出错误窗口。
41+
42+
### How
43+
44+
删去多余的判断逻辑,路径为空时可以进入错误窗口弹出的判断。
45+
46+
## 2025/11/28 修复文本框无法跟随下拉框选项变化的问题
47+
48+
### What
49+
50+
打开弹窗,选择默认的 python 以外的插件类型时,文本框不会跟随变化为对应插件的路径。
51+
52+
### How
53+
54+
修改 enum 逻辑,使 verbatim 不对其造成影响。
1155

1256
## 2025/11/27 修复了下拉框中的项被错误翻译的问题
1357

0 commit comments

Comments
 (0)