在操作方式为“替换选中部分”(rs/replaceselection)或“在选中部分的后面插入”(ia/insertafter) 或 “替换文本框的全部内容”(ra/replaceall) 时,支持移动光标到插入内容的某个位置。
这个光标位置可不可以在子程序内计算然后返回?
目前没有,我等试一下
https://getquicker.net/Help/Versions 更新了一版,测试下看看。
光标位置没问题,不过有个改进的地方:当目标位置位于窗口屏幕之外,只是单纯的移动了光标,没有滚动屏幕内容。希望可以像 查找 一样,让目标位置(内容)显示在屏幕中间。
实现了,等下个版本更新。
更了一版,试下看看。
如 gif 所示,向上跳转没问题(目标位置出现在屏幕中间),但是向下跳转,目标位置往往出现在屏幕底部(甚至屏幕下方一两行)。子程序的内部逻辑是这样的:input 全文,output 全文,caretOffset 计算的偏移量。
好的,等研究一下(估计会有点难了,截止目前都是调用控件自己的接口,后面可能要深入底层)。感觉有可能和字体变化有关,试一下:
1)关闭语法高亮,让字体一样大;
2)命令里第一和第二部分都设置为none,只跳转光标;
看下有没有什么变化
据测试跟语法高亮关系不大。
鉴于向上跳转是没问题的,我猜想应该跟跳转前的光标位置有关,所以我尝试每次向下跳转前,先将光标移至文档末尾——结果是可以的。
所以,执行 caretOffset 前增加一个步骤:先把光标移至文档末尾,是不是就可以解决问题了?
好,等试下看看。
完美!👍🏻️
更新了一版。对应命令修改成这样:
[fa:Solid_ListAlt:#FFFF7685]章节目录|call:a$caret$sp$小说目录