引用
文档会引用它在语言本身之外用到的内容:此发行版的包、NuGet 包、磁盘上的库、C# 脚本以及其他文档。引用只是一个名称,绝不是副本:每次打开文档时,都会到各引用所在的位置查找它们。因此,一个文件夹中的文档可以整体移动,而文档也能准确说明它需要什么。
语言本身(值、循环、分支、Return、Function 以及每个文档都具有的其他内容)不需要引用。
文档引用的内容
文档大纲的 References 部分将引用分组列出:NuGet packages、Divooka packages、Assemblies、Documents 和 Scripts。基于工作负载创建的文档一开始就引用该工作负载的包:基于 General Purpose 创建的文档会引用 Standard Library、Graph Editor Essentials 和 Platform。将鼠标悬停在包上可查看它提供的内容。
文档引用什么,就会得到什么。工具箱托盘、连线的托盘和节点库提供的节点包括:文档所引用的包中的节点、语言自身的节点、文档自己的图,以及文档所引用的其他文档的图,除此之外再无其他。来自文档未引用的包的节点仍然可以打开、运行和保存,其工具提示会显示 Not declared by this document;引用该包后,此提示即消失。
添加引用
按 Ctrl+Shift+L,或单击大纲 References 部分下的 Add reference…。Add reference 卡片先在 Workloads 下将每个工作负载作为一个整体列出(选择其中一个即可一次引用它的所有包),然后按类别列出此发行版附带的每个包,每个包都有一行说明其用途。文档已引用的包会标记为 declared。在输入框中输入内容可筛选列表;列表中无法显示的名称(NuGet 包、与当前文档相邻的文档)可以直接输入完整名称。选择一项,然后单击 Add。

状态栏会显示添加的内容(例如 Image Processing declared — Ctrl+Z to undo),托盘随即提供该包的节点。与任何编辑一样,Ctrl+Z 可以撤消引用。
底部的五个按钮用于添加列表中没有的内容:
| 按钮 | 添加的内容 |
|---|---|
| DLL | 磁盘上的 .NET 库,在文件对话框中选择;它提供的内容会成为节点。 |
| Script | 文档旁边的 C# 或 Python 脚本文件。C# 脚本在打开文档时编译;脚本的方法或函数会成为节点。 |
| Document | 另一个 Divooka 文档,详见下文。 |
| NuGet | 通过搜索找到的 nuget.org 上的包。打开文档时会从 nuget.org 获取它。 |
| Python | 已安装的模块或标准库中的 Python 模块;它的公共函数会成为节点。 |
如果某个引用当前在这台计算机上找不到(例如名称拼写错误,或此发行版没有该包),Divooka Compute 会拒绝添加,状态栏会给出提示。打开文档时则宽松一些:已保存的文档即使引用了这台计算机所缺少的内容,仍然可以打开,并附带一条提示。
要移除引用,请单击大纲中该引用所在行的叉号并确认。
使用另一个文档的图
文档是一个类型,以其文件命名:Maths.dvk 就是类型 Maths。它的 Function 和 Routine 是该类型的方法,因此其他文档引用它之后就可以调用这些方法。
- 创建一个名为
Maths的文档,并在其中添加一个 Function Square,将其 Value 与自身相乘;请参阅图和成员。保存该文档。 - 在要使用它的文档中,按
Ctrl+Shift+L,单击 Document,然后选择Maths.dvk。状态栏显示 Maths declared — Ctrl+Z to undo,大纲在 Documents 下列出 Maths。 - 按
Ctrl+Space并输入Square:它出现在 Document Modules (Maths) 下,旁边是 Make Maths。 - 放置 Square。它首先接受一个 Maths(即调用它的实例),然后接受其 Value。放置 Make Maths 并将其输出连接到 Square 的 Maths,将 Value 设为
9,然后打印结果:无论使用哪种运行模式,结果都是81。

仅作为函数库的文档不需要实例。在 Maths.dvk 中,单击大纲中的 Document,在未选中任何内容的情况下,找到 Properties 面板中的 Kind 行:它显示为 Class。选择 Static 并保存。此后,Square 只接受其 Value,不再提供 Make Maths,仍在创建该实例的文档会报告错误,直到删除该节点为止。
被引用的文档是按其相对于引用它的文档的位置来查找的,因此移动时请将两者放在一起。如果两个被引用的文档同名,它们的标题会注明各自的文件夹,例如 Document Modules (Lib/Counter) 和 Document Modules (Other/Counter),它们的节点也一样。
未声明任何引用的文档
完全不引用任何包的文档(在 Divooka Explore 中编写的文档,或较旧的示例)可以使用此发行版附带的所有节点,其大纲显示 This document references nothing beyond this distribution. Make references explicit。单击 Make references explicit,即可一步引用其节点所来自的那些包,Ctrl+Z 可以撤消这一步;此后,它与任何其他文档一样,只提供它所引用的内容。