utools.redirect 跳转到指定的插件 feature
utools.redirect
用意是跳转到相关的关键字上, 但是如果有明确的跳转目标, 应该允许插件直接跳转到指定的插件里去
举个例子, 在「资源搜索 Lite」插件里面我想做一个关于站点的目录页, 如下图

点击 Maven 项(utools.redirect('maven')
)就直接跳转到

但实际上我获得的是

下面两个选项毫无意义, 纯属干扰, 因为目标很明确: 我想要连接同一个插件的其他入口功能.
所以我觉得可以通过feature
的code
进行跳转, 想一想, 似乎code
也可能有重复, 那就需要连同插件也一并指定了, 因为每一个插件也都有一个唯一的code
.
不知道这种功能有没有更多开发者需要, 我只是目前遇到了.
外部调用接口
这个功能的作用需要想象力, nodejs 可以解决所有问题, 但是有些功能使用其他工具会更高效, 说一个我目前遇到的.
「文件收藏」插件可以把一些文件当成 uTools 的搜索项放在主输入框供搜索使用.

但是目前只能手动添加, 我有一个叫做「文档」的文件夹, 通过 Hazel 这个工具可以自动把我在QQ, 微信的下载文件夹中的文档同步到这里, 这些文档时常要用到, 如果能把这些文档自动加载到「文件收藏」插件里就最好不过了, 但是这并不好做, 因为如果在插件里直接写定时扫描的逻辑会消耗不少资源, 因为我不止这一个这样的文件夹, 而且也定时扫描也不够实时, 文件系统提供了监控文件夹的方法, 通过其他语言可以轻易地调用, 比如 Java, 几乎没有消耗, 但是这些其他地方的工具不能把扫描的结果通知到插件, 需要一个这样的接口让外部的程序可以和插件交互.
比如, 提供一个直接操作指定插件feature
的方法, /Application/uTools --add-feature '{code: "xxx", cmds: ["xxx"]}' --plugin-id xxx
, 可以为插件增加feature
, 或者静默调用插件提供的已有的feature
, /Application/uTools '新增收藏' '/Document/xxx.docx'
, 或者 uTools 提供一个 REST 接口, 通过 HTTP 调用来调用插件功能或操作插件feature
附加参数
feature
目前只有固定的几个参数值: code
, cmds
, explain
, icon
, 除了code
可以在onPluginEnter
收到外, 无法接收到更多关于feature
的内容, 我希望可以在feature
项中随意增加字段, 在onPluginEnter
中可以直接接收到一个feature
对象.
有这个需求是在文件收藏插件中, 如何让feature
被点击的时候能够知道这个feature
是哪个文件夹呢, 可以维护一个feature.code
和文件夹路径的映射, 但我选择在code
里做文章, 比如#/Document/xxx.docx
, 只要是#
开头的就是文件相关的feature
, 从code
中解析出路径, 再打开, 啊这... 我不知道code
过长会不会有问题.
如同模板插件里面的select
的参数, itemData
里面除了固定的三个有意义的字段, 可以随意加其他的附加字段, 这就很方便, 可以把随便什么东西都放在里面从search
传递到select
.