Gandi 3.0文档
官网 打开编辑器
文档/插件与平台面板

插件

插件是一段跟着编辑器一起运行的代码,用来改编辑器本身的行为:给积木加一种选择方式、让下拉 菜单能搜、往顶栏加一个按钮、开一个自己的面板。Gandi 3.0 里有两种:内置插件跟编辑器 一起发版;外部插件由使用者填一个网址装进来。

设置里的「插件」那一页

打开方式#

顶栏右边的齿轮「设置」→ 左边选「插件」。这一页管的是「装不装、开不开」;插件自己 的选项在下面那一页「插件选项」里。

内置插件#

编辑器自带四个,不用填地址,也不联网。它们改的都是积木库和画布本身的行为,所以界面上 不会因此多出或者少掉一块面板,变的是那几个手势和菜单认不认。

名字 做什么 开关 细讲
选择特定积木 Ctrl 框选整批拖出、Ctrl 拖出单块,Alt 拖动复制 没有,一直开着 plugin-batch-select.md
下拉可搜索 下拉菜单可以打字筛选,积木输入框里能搜变量和积木 没有,一直开着 plugin-dropdown-search.md
查找自制积木的定义 在自制积木的调用块上右键,跳到它的定义处 没有,一直开着 plugin-find-definition.md
积木输入框增强 积木的输入框可以换行,长文本展开成编辑面板 设置 › 插件 plugin-block-input-editor.md

前三个是编辑器本身的一部分:框选、跳到定义、下拉搜索就是这个编辑器该有的样子,所以 它们永远装着,设置里也不列它们。写成插件只是因为这几件事的实现形态如此:一段独立的代码, 动的是积木库而不是界面。

「积木输入框增强」是可选的,默认开着。设置 › 插件 那一页上一个开关就能关掉它,关掉的 选择会记住,下次打开编辑器还是关着的。表格里那一句就是它在设置页上写的原话。

一个插件能往编辑器里加什么#

插件的来源与它能注册的东西

内置和外部走的是同一套约定:一个插件就是 {id, name, setup},装上时调一次 setup, 卸载时调一遍它返回的收尾函数。setup 接收的上下文里有虚拟机、积木库和当前那个积木 工作区,还有一份只属于这个插件的设置存取(存在这台浏览器里)。

它可以注册三样东西:顶栏入口(画在顶栏那排面板开关的最后,单独隔出来一段)、 设置项(按插件分组列在「插件选项」页)、面板(跟内置面板一样能停靠、能浮起来、 能进布局)。四个内置插件都没有注册入口和面板,只有三个注册了设置项,所以「插件选项」那页 只有三组,「查找自制积木的定义」没有可调的东西。

装一个外部插件#

在「装一个插件」下面的输入框里填地址,按回车或者点「装上」。装载时按钮变成「装载中…」, 装不上会在下面用红字说明原因(地址取不到,或者取到了但没导出插件)。

页面上的这句提醒需要认真对待:

插件是一段在编辑器里跑的代码,装之前请确认来源可信。

装好的插件列在「装好的(N)」下面,一行是名字、说明和它的地址,右边一个「卸载」。 内置插件不出现在这个列表里:它们没有地址可显示,也不提供卸载按钮。

装过的地址会记下来,下次打开编辑器自动装回去。同一个地址再装一次是「先卸掉再装」,不会 越装越多。

插件选项#

插件选项那一页

插件注册的设置项都在这一页,按插件分组。改动当场生效,也会记住。一个插件都没有可调选项 时,这页写着「还没有可调的选项。插件装上并打开之后,它的设置会出现在这里。」

细节#

  • 一个装不上,不影响别的。 打开编辑器时会把上次开着的都装回来;某一个 setup 里 出错,只有它自己没装上,其余照常。
  • 卸载清理干净。 插件注册过的入口、设置项、面板一并清掉,它开着的面板也从当前布局 里关掉。
  • 面板还在、插件不在了(上次装过、这次没装上),那一格会写「这个面板来自一个已经 不在的插件。」,不会留一块空白。
  • 插件的面板自己渲染出错时,那一格会写「插件面板出错:…」,不会影响整个布局。
  • 「积木输入框增强」的开关、外部插件的地址、每个插件自己的设置,都存在这台浏览器里, 换一台机器或者清了浏览器数据就回到默认(内置全开、没有外部插件)。

相关#