diff --git a/public/locales/en.json b/public/locales/en.json
index ea4938e..f71fdfb 100644
--- a/public/locales/en.json
+++ b/public/locales/en.json
@@ -79,11 +79,12 @@
"tree.desc": "Tree desc",
"tree.export": "Export",
"tree.firstid": "First id",
- "tree.vars": "Variable Definition",
+ "tree.vars": "Define Variables",
"tree.vars.name": "name",
"tree.vars.invalidName": "Invalid variable name",
"tree.vars.desc": "description",
- "tree.vars.imports": "Variable References",
+ "tree.vars.imports": "Import Variables",
+ "tree.vars.subtree": "Subtree Variables",
"regnode.input": "Input: ",
"regnode.output": "Output: ",
diff --git a/public/locales/zh.json b/public/locales/zh.json
index dedb7b1..8358596 100644
--- a/public/locales/zh.json
+++ b/public/locales/zh.json
@@ -79,11 +79,12 @@
"tree.desc": "说明",
"tree.export": "导出",
"tree.firstid": "起始标识",
- "tree.vars": "变量定义",
+ "tree.vars": "定义变量",
"tree.vars.name": "变量名",
"tree.vars.invalidName": "变量名不合法",
"tree.vars.desc": "变量说明",
- "tree.vars.imports": "变量引用",
+ "tree.vars.imports": "导入变量",
+ "tree.vars.subtree": "子树变量",
"regnode.input": "输入:",
"regnode.output": "输出:",
diff --git a/sample/vars/test-subtree.json b/sample/vars/test-subtree.json
index 77abdc5..2139cb5 100644
--- a/sample/vars/test-subtree.json
+++ b/sample/vars/test-subtree.json
@@ -4,8 +4,15 @@
"firstid": 1,
"export": true,
"declare": {
- "imports": [],
- "vars": []
+ "imports": [
+ "vars/declare-core.json"
+ ],
+ "vars": [
+ {
+ "name": "test",
+ "desc": "测试"
+ }
+ ]
},
"root": {
"id": 1,
diff --git a/src/components/inspector.tsx b/src/components/inspector.tsx
index 89c57f9..23c3ec9 100644
--- a/src/components/inspector.tsx
+++ b/src/components/inspector.tsx
@@ -40,7 +40,7 @@ import {
isNodeArgOptional,
isValidVariableName,
isVariadic,
- loadImportedVars,
+ loadVarDef,
} from "../misc/b3util";
import { Hotkey, isMacos } from "../misc/keys";
import { mergeClassNames } from "../misc/util";
@@ -65,7 +65,7 @@ const TreeInspector: FC = () => {
// set form values
useEffect(() => {
const data = workspace.editingTree.data;
- loadImportedVars(data.declare.imports);
+ loadVarDef(data.declare.imports);
form.resetFields();
form.setFieldValue("name", data.name);
form.setFieldValue("desc", data.desc);
@@ -73,6 +73,7 @@ const TreeInspector: FC = () => {
form.setFieldValue("firstid", data.firstid);
form.setFieldValue("declare.vars", data.declare?.vars);
form.setFieldValue("declare.imports", data.declare?.imports);
+ form.setFieldValue("declare.subtree", data.declare?.subtree);
}, [workspace.editingTree]);
// auto complete for subtree
@@ -231,6 +232,71 @@ const TreeInspector: FC = () => {
)}
>
+ {workspace.editingTree.data.declare.subtree.length > 0 && (
+ <>
+ {t("tree.vars.subtree")}
+