Closed 5kyfkr closed 6 months ago
这个应该是思源的行为,不是插件能控制的。
我的建议是先看一下三类快捷键哪些是不能在插件的自定义 Protyle (文档编辑器)当中使用的,然后去给 V 提 issue。
这个应该是思源的行为,不是插件能控制的。
我的建议是先看一下三类快捷键哪些是不能在插件的自定义 Protyle (文档编辑器)当中使用的,然后去给 V 提 issue。
大召唤术,V姐帮忙看下自定义快捷键能不能在自定义protyle用?@Vanessa219
我这里没有办法获取到编辑器的实例,你看可以挂载到 Custom 下的 data.editor 上或者是其他什么比较方便的地方么?
目前闪卡是挂载到了 data.editor 上 https://github.com/siyuan-note/siyuan/blob/dc5882bd6028812ab9c392e743434fe1c46b7c1a/app/src/card/newCardTab.ts#L48
我这里没有办法获取到编辑器的实例,你看可以挂载到 Custom 下的 data.editor 上或者是其他什么比较方便的地方么?
目前闪卡是挂载到了 data.editor 上 https://github.com/siyuan-note/siyuan/blob/dc5882bd6028812ab9c392e743434fe1c46b7c1a/app/src/card/newCardTab.ts#L48
请问您的意思是需要在调用 addTab 的时候给 data 挂载一个 editor 对象吗?
但是这个 editor 对象是那里来的呢? 我看你给的参考中 editor 是通过插件无法访问到的 API 返回得到的。
这个是私用的,还没有公开。你的好像是个数组,如果挂载 data 上要改动太多的话,可以在 https://github.com/siyuan-note/siyuan/blob/aa1a2728b0112bc006584f5d5fd03c56ac3532b1/app/src/layout/dock/Custom.ts#L5 上再加一个 editors 之类的
这个是私用的,还没有公开。你的好像是个数组,如果挂载 data 上要改动太多的话,可以在 https://github.com/siyuan-note/siyuan/blob/aa1a2728b0112bc006584f5d5fd03c56ac3532b1/app/src/layout/dock/Custom.ts#L5 上再加一个 editors 之类的
我不太清楚具体的细节,但是反正问题的关键应该是「Custom Tab无法拿取到编辑器实例」导致的?
所以剩下的问题就是:
那加个 editors 属性吧。我先去改改。要不 data.editor 太隐秘了。
@Vanessa219 需不需要召唤knote和卡片式笔记插件的作者也看看?
代码已提交,麻烦抽空看看是否可用了。
@Vanessa219 需不需要召唤knote和卡片式笔记插件的作者也看看?
等 @frostime 大佬卡看没问题再召唤。
@Vanessa219 需不需要召唤knote和卡片式笔记插件的作者也看看?
等 @frostime 大佬卡看没问题再召唤。
@frostime 大佬,有空下个最新的dev2试试看
@Vanessa219 需不需要召唤knote和卡片式笔记插件的作者也看看?
等 @frostime 大佬卡看没问题再召唤。
我测试了一下 dev2 版本,好像制卡快捷键还是不能成功。
@Vanessa219 需不需要召唤knote和卡片式笔记插件的作者也看看?
等 @frostime 大佬卡看没问题再召唤。
我测试了一下 dev2 版本,好像制卡快捷键还是不能成功。
我试了也是不行的,V姐的意思感觉是也要插件修改下才行吧,不然我就不用召唤另外两个插件大佬了
我看了一下实现的代码
https://github.com/siyuan-note/siyuan/commit/a2635a552045bdbeb8f93e6fbe2088e264c8cb6f
但是说实话我不太清楚插件作者到底需要做什么来适配这个更改。
@Vanessa219 V姐能说下改动的原理和插件作者适配建议嘛
我看了一下实现的代码
但是说实话我不太清楚插件作者到底需要做什么来适配这个更改。
要修改插件的,如下把实例放到 editors 中
我看了一下实现的代码
但是说实话我不太清楚插件作者到底需要做什么来适配这个更改。
大佬,看楼上V姐的回复能解决适配问题了嘛?
我看了一下实现的代码 siyuan-note/siyuan@a2635a5 但是说实话我不太清楚插件作者到底需要做什么来适配这个更改。
大佬,看楼上V姐的回复能解决适配问题了嘛?
稍微等等,我这几天有事情,周六周日我再看看
我看了一下实现的代码 siyuan-note/siyuan@a2635a5 但是说实话我不太清楚插件作者到底需要做什么来适配这个更改。
大佬,看楼上V姐的回复能解决适配问题了嘛?
稍微等等,我这几天有事情,周六周日我再看看
没问题,麻烦了
editors
属性可以解决问题,但是本插件不会实装目前我已经在测试版当中测试了最新的 self.editors
,结果证明这个确实能 fix 无法在编辑器中使用 Ctrl+Alt+F 等快捷键的问题。
但是目前文档流不会实装这个特性。
原因在于:为了实现这个特性,需要将内部动态变化的 Protyle 不断往顶层回传,并维护一个同步更新的列表挂载在 tab 的 editors 属性中。在测试过程中发现这:1) 明显影响了插件的整体运行效率;2) 在文档量比较大的时候会出现不明的异常情况。
如果要解决这个问题,需要重构目前的代码组织结构,这个就要动大刀子了,性价比低且难以保证在重构后是否会出现其他异常。所以为了插件的整体稳定性,本 issue 提出的特性将不予以实装。
注:出现以上的问题,主要原因在于是文档流插件需要维持大量、动态变化的 Protyle 对象,导致实现起来比较棘手。 不过对于只有一个两个静态的 Protyle 的插件,例如 knote 等,应该问题不大。
@Vanessa219
V姐你好,我测试了一下新的 tab.editors
,可以解决问题。但是我有几个意见:
editors
就是 Protyle,那既然如此,还是把变量名称改得更加直观一点,以免引起混乱由于历史原因,代码里面大部分都称为 editor,这个要修改的话就太多了。
dialog 中内部已经挂载了,等开发者提了再重构一下吧 https://github.com/siyuan-note/siyuan/blob/b569365ae1ff812df416098a091790d8f98c10f8/app/src/card/viewCards.ts#L78
- 由于历史原因,代码里面大部分都称为 editor,这个要修改的话就太多了。
- dialog 中内部已经挂载了,等开发者提了再重构一下吧 https://github.com/siyuan-note/siyuan/blob/b569365ae1ff812df416098a091790d8f98c10f8/app/src/card/viewCards.ts#L78
好的,那这样的话在之后更新 d.ts 以后在注释里面标注一下吧。
要修改插件的,如下把实例放到 editors 中
@suka233 @WingDr ,大佬们,现在KNote和卡片式写作插件均同此issue一样在编辑界面无法使用快速制卡、添加到数据库等快捷键,看看能不能参照上述解决方案帮忙改改,感谢。
如下图,设置了添加数据库的快捷键alt+s,在文档流内无法使用,同理快速制卡也设置了alt+k也无法使用。这个现象在knote插件的快速录入界面也是相同情况,不知道是不是思源的问题