Monaco Editor编辑器教程(二六):使用IContextKey动态开启command和action

前言

由于Monaco的文档是使用TS的类型声明来生成的,在生成后必定会有很多属性的描述让人摸不到头脑,并且这些文档又是会混入一些VS Code才能用到的api。
在看文档时,读者有时会既不知道这个属性具体影响的地方,也不清楚每个配置值有什么不同。有时一些属性只表明了该属性的值是一个string类型,至于值从哪里来,却没有解释。
而今天的文章,就是由这样一个迷惑属性而来的。

一个配置项的思考

之前有写过一篇文章,Monaco Editor教程(八): 实现添加自定义命令,添加自定义菜单action功能

在这篇文章中我解析了Action的几个属性,其中有一个属性,precondition,官方描述是

precondition?: string
Precondition rule.

属性的描述翻译成中文就是先决条件,那让人联想就是,这个属性是控制action是否能触发的,也就是动态控制action的一个开关,默认action是可以触发的,但在某些特定场景下,开发者需要关闭某个Action。最令人奇怪的是这个是一个string类型,而不是布尔类型。其实是布尔类型也会很奇怪。因为Action中并没有方法可以修改这个属性。要想达到一种动态开关的效果,那么这个属性的值必须是一个响应式的对象。在第一次声明action时,precondition为真,则action可以执行,随后开发者改变precondition的值,那么action就无法

猜你喜欢

转载自blog.csdn.net/github_35631540/article/details/129301335