脚本编辑器
脚本编辑器 - 是一个 Engee 工作区工具,专为处理交互式脚本而设计。
交互式脚本*(或简称脚本)是一个文件,其中包含多个按顺序执行的命令。
要打开 脚本编辑器 ,请单击工作区中的 图标:
使用脚本
创建脚本
要创建脚本,请在脚本编辑器中按下 + 并选择所需的格式:
->
默认情况下,Engee 脚本为
|
您可以使用文件浏览器 创建脚本。为此,在文件浏览器窗口的空白区域单击右键,弹出右键菜单,然后选择 创建 和 脚本 :
脚本编辑器部分
在脚本编辑器中,您可以创建代码单元格或文本单元格。
要创建单元格,请将鼠标指针移至脚本编辑器窗口的上边缘,以显示单元格选择按钮:
-
+ 代码 - 创建一个包含代码的新部分(代码单元格)。在该单元中,可以使用编程语言 Engee 编写代码。
-
+ 文本 - 创建带文本的新部分(文本单元格)。在该单元格中,您可以添加和格式化任何说明、图片、表格、链接等。
新章节可添加到脚本编辑器工作区的任何位置(如开头、结尾或两个其他章节之间)。 |
代码部分
让我们创建一个代码段,看看它的界面:
-
执行和导航 - 执行指定部分的代码。
-
执行完成 - 执行代码低于所选部分的所有部分。
-
执行到单元格 - 执行代码位于所选部分上方的所有部分。
-
更改代码结果的位置 - 选择输出位置。有两个选项:
-
面罩 - 为选定的代码单元格添加遮罩(详见代码单元掩码 )。
-
向下移动 - 将部分向下移动一个位置。
-
向上移动 - 上移一节。
-
复制 - 复制部分。
-
插入 - 粘贴部分。
-
删除 - 删除部分。
在代码单元格中,您还可以
-
执行高亮显示的代码段(高亮显示行上的 PCM 或hotkeyShift+F7 )和执行突出显示的 :
-
用光标执行当前行(Windows/Linux 上为Ctrl+Shift+F5 ,macOS 上为Shift+⌘+F5 )。
文本部分
处理文本单元格时,使用默认的 WYSIWYG(所见即所得)编辑器。有关使用编辑器标记文本的更多信息,请访问链接。 |
让我们创建一个包含文本的部分:
双击该部分打开输入框,然后在出现的单元格中输入所需的文本。
在文本格式设置方面,使用了标记语言Markdown,还可以使用HTML 和LaTeX扩展功能。有关文本格式标记的更多信息,请参阅文章Engee 中的文本标记 和在 Engee 中使用 Markdown 。
让我们来看看文本框界面:
-
- 取消最后一个操作
-
- 重复上次取消的操作
-
- 对选定文本应用粗体字
-
- 斜体显示所选文本
-
- 对文本应用删除线效果
-
- 设置标题级别(H1-H6)
-
- 创建带项目符号或编号的列表
-
- 超链接
-
- 将文本格式设置为引用
-
- 将文本突出显示为代码片段
-
- 添加复选框以跟踪任务
-
- 在高亮部分加下划线
-
- 单行字体
-
- 突出显示文本背景
-
- 更改文本颜色
-
- 添加备注块
-
- 添加隐藏部分
-
- 插入图片
-
- 添加表格
-
-编辑模式,从三种模式中选择一种:
-
- 所见即所得可视化编辑器,立即显示格式,无需标记语言(默认,推荐使用)
-
- Markdown 标记,手动编辑源文本
-
- 显示结果(预览),无法编辑
-
与代码部分类似,在文本单元格中使用以下命令:移动、复制、粘贴和删除。
单元格隐藏和内容
要在 Engee 脚本编辑器中隐藏单元格,文本单元格必须使用 Markdown 标记为段落,并具有适当的级别和位置:
-
单元格必须包含从第 1 到第 6 层的 Markdown 格式标题(
、
#
等)。 -
带有低级标题的单元格必须位于顶级标题的下方。
您可以在脚本编辑器中将其隐藏:
-
代码单元格(标题级别最低);
-
无标题的文本单元格(也是最低一级);
-
有低级标题的文本单元格。
例如,如果带有一级标题的文本单元格下面有 10 个代码单元格,这就形成了一个将被隐藏的部分。当第 11 个单元格出现时—一个带有一级标题或与第一个文本单元格同级的新段落—一个新的部分就开始了。
第一至第六级文本单元格标题构成 目录 :
在内容中,您可以
-
添加嵌套段落
- 为文本单元格添加上一级标题。例如,如果在第一级文本格 (
)中添加嵌套段落,它将成为第二级文本格 (
#
)。当达到最大嵌套量时(最后一个文本单元格有一个第六级标题),按钮将不可用。 -
开始一段
- 开始执行所有包含所选段落代码的单元格。如果段落不包含任何代码单元格,则按钮不可用。
-
删除该段
- 删除所选段落。嵌套在段落中的标题和代码单元格不会被删除。
高级设置
脚本编辑器 提供了许多高级设置,有助于简化代码和文本处理工作。在处理大文件、并行编辑脚本或文本文件时,这些设置将非常有用。
要访问这些设置,请单击脚本编辑器右上角的三联图标:
自动保存
自动保存 功能可让您自动保存对交互式脚本的更改,防止数据丢失:
有三种自动保存选项可供选择:
-
afterDelay - 在一定的延迟时间后自动保存脚本。选择此选项时,默认延迟时间为 1000 毫秒。
-
onFocusChange - 脚本在编辑器失去焦点后自动保存。这意味着切换到另一个 Engee 窗口时,脚本编辑器中的更改将被保存;
-
onWindowChange - 从打开 Engee 的浏览器标签页切换到另一个标签页时,脚本将自动保存。这意味着,当您将浏览器标签页从 Engee 切换到任何其他标签页时,脚本编辑器中的更改将被保存。
屏蔽代码单元格
脚本编辑器 代码单元支持将代码单元中的变量转化为方便的交互式元素—下拉列表、输入框、滑块和其他控制组件。为此,代码单元格屏蔽机制可用于改善脚本的可视化显示、隐藏技术实现细节和简化数据输入。
要应用遮罩,请使用工具 面罩 ,该工具会在您将鼠标悬停在代码单元格上时出现:
有关掩码类型、设置和手动操作的更多信息,请参阅代码单元掩码 。
断点
Engee*编辑器支持在代码单元中添加断点。这在调试脚本时非常有用—代码执行会在所需行暂停,这样就可以逐步检查程序的行为并发现错误。
要设置断点,请将光标放在所需行的左边界上,然后单击鼠标左键:
要设置条件、删除或暂时禁用断点,可以使用上下文菜单(红点上的 PCM)。 Engee 提供不同类型的断点:基本断点、条件断点、延迟执行断点等。触发条件可通过表达式、迭代次数或对其他点的依赖性来设置。
有关使用断点的更多信息,请参阅脚本编辑器断点 。
程序控制方法
使用公共方法(详见计划管理的公共方法 )可以控制 Engee 脚本,而无需使用脚本编辑器界面。这些命令专为脚本编辑器文件设计,通过 engee.script
调用。让我们逐一了解这些方法:
@include - 包含(嵌入)脚本代码,而不是调用宏。
例如,我们有一个名为 new.ngscript 的脚本,其中写有代码 a = 1
。让我们创建另一个脚本 new_1.ngscript,在其中通过 @include
引用第一个脚本的绝对路径:
engee.script.@include("/user/new.ngscript")
第一个脚本的代码执行结果 a = 1
将包含在第二个脚本中,并等于 1
。
@include 命令和它嵌入的代码不能在同一个脚本中。否则,当 @include 必须调用自身时,将发生循环依赖错误。
|
edit - 打开脚本供编辑。
打开指定路径下的脚本供编辑。如果没有脚本文件,则会自动创建。
engee.script.edit("/user/new.ngscript")
如果指定的扩展名不是".ngscript",则会产生 "ErrorException("path should end with.ngscriptextension")` 错误。 |
extract_code - 提取指定路径下的代码。
从指定路径的脚本中提取代码。例如,代码为 a = 1
的脚本 new.ngscript:
engee.script.extract_code("/user/new.ngscript")
输出:
:($(Expr(:toplevel, :(#= none:1 =#), :(a = 1))))
有关脚本中使用的其他公共方法的更多信息,请参阅软件控制建模 一文。