如何新建多级菜单?以及如何查找一些API

小弟最近在用obsidian-workspaces-plus插件,非常好用。但美中不足的是没有一个把当前页面移动到其他工作区的功能,于是我就想自己动手添加。目前已经完成一小部分了,但是设计中发现,需要用到二级菜单的功能,以此来选择放到哪个工作区内

我目前翻了翻官方的API参考

但是我并没有找到多级菜单的写法,而且这个功能也不多见,我用过的插件里都没有,也没找到可以参考的代码,于是就来论坛求教

另一个问题是,我在阅读obsidian-workspaces-plus的源码时,发现其中引用了一些官方API参考中没有的东西,比如WorkspacePluginInstance,这些该去哪里查呢?

我并没有学过计算机,目前这些也都是临时抱佛脚学的,还请见谅

有很多API,obsidian的文档没有公开出来。如果你要使用的话,得自己去devtools里面翻源码。就在app.js这个文件里。

你说的那个插件,开发者应该也是在源码里面翻到了需要的东西,然后自己写了一个obsidian.d.ts来提供类型提示。

我试着找了一下,MenuItem这个类有个方法叫setSubmenuMenu这个类有个方法叫openSubmenu,你可以去app.js里面找到研究一下用法。

image

关于 setSubMenu 的用法示例

这个作者维护了一些未公开接口,可以参考下

1 个赞

@the_tree @Acylation
明白了,感谢你们的帮助

但是这些未公开的api要慎用,因为都是私有api,不能保证后续版本的兼容性