fix load subtree variable
This commit is contained in:
1 parent
0acd291c0c
commit
fdc7a8d2d6
4 files changed
+18
-18
No files matched your search
@@ -78,7 +78,7 @@ if (buildOutput || buildProject || buildHelp) {
|
|||||||
declvar: treeModel.declvar.map((v) => ({ name: v.name, desc: v.desc })),
|
declvar: treeModel.declvar.map((v) => ({ name: v.name, desc: v.desc })),
|
||||||
subtree: [],
|
subtree: [],
|
||||||
};
|
};
|
||||||
b3util.refreshDeclare(treeModel, declare);
|
b3util.refreshDeclare(treeModel.root, treeModel.group, declare);
|
||||||
if (!b3util.checkNodeData(treeModel?.root)) {
|
if (!b3util.checkNodeData(treeModel?.root)) {
|
||||||
hasError = true;
|
hasError = true;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
Submodule src/behavior3 updated: 13ebbcde9e...3322396a42.
@@ -372,7 +372,7 @@ export const useWorkspace = create<WorkspaceStore>((set, get) => ({
|
|||||||
declvar: treeModel.declvar.map((v) => ({ name: v.name, desc: v.desc })),
|
declvar: treeModel.declvar.map((v) => ({ name: v.name, desc: v.desc })),
|
||||||
subtree: [],
|
subtree: [],
|
||||||
};
|
};
|
||||||
b3util.refreshDeclare(treeModel, declare);
|
b3util.refreshDeclare(treeModel.root, treeModel.group, declare);
|
||||||
if (!b3util.checkNodeData(treeModel?.root)) {
|
if (!b3util.checkNodeData(treeModel?.root)) {
|
||||||
hasError = true;
|
hasError = true;
|
||||||
}
|
}
|
||||||
@@ -557,7 +557,7 @@ export const useWorkspace = create<WorkspaceStore>((set, get) => ({
|
|||||||
if (!editor) {
|
if (!editor) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
b3util.refreshDeclare(editor.data, editor.declare);
|
b3util.refreshDeclare(editor.root, editor.data.group, editor.declare);
|
||||||
},
|
},
|
||||||
|
|
||||||
save: () => {
|
save: () => {
|
||||||
|
|||||||
+14
-14
@@ -857,24 +857,24 @@ export const loadVarDef = (list: ImportDef[]) => {
|
|||||||
return Array.from(all);
|
return Array.from(all);
|
||||||
};
|
};
|
||||||
|
|
||||||
const findSubtrees = (data: NodeModel) => {
|
const collectSubtree = (data: TreeGraphData | NodeModel, list: string[] = []) => {
|
||||||
const list: string[] = [];
|
if (data.path) {
|
||||||
const traverse = (v: NodeModel) => {
|
list.push(data.path);
|
||||||
if (v.path) {
|
}
|
||||||
list.push(v.path);
|
if (data.children) {
|
||||||
}
|
data.children.forEach((child) => collectSubtree(child, list));
|
||||||
if (v.children) {
|
}
|
||||||
v.children.forEach((child) => traverse(child));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
traverse(data);
|
|
||||||
return list;
|
return list;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const refreshDeclare = (tree: TreeModel, declare: FileVarDecl) => {
|
export const refreshDeclare = (
|
||||||
|
root: TreeGraphData | NodeModel,
|
||||||
|
group: string[],
|
||||||
|
declare: FileVarDecl
|
||||||
|
) => {
|
||||||
const vars: Set<VarDef> = new Set(declare.declvar.slice());
|
const vars: Set<VarDef> = new Set(declare.declvar.slice());
|
||||||
parsingStack.length = 0;
|
parsingStack.length = 0;
|
||||||
declare.subtree = findSubtrees(tree.root).map((v) => ({
|
declare.subtree = collectSubtree(root).map((v) => ({
|
||||||
path: v,
|
path: v,
|
||||||
vars: [],
|
vars: [],
|
||||||
depends: [],
|
depends: [],
|
||||||
@@ -883,6 +883,6 @@ export const refreshDeclare = (tree: TreeModel, declare: FileVarDecl) => {
|
|||||||
loadVarDef(declare.subtree).forEach((v) => {
|
loadVarDef(declare.subtree).forEach((v) => {
|
||||||
vars.add(v);
|
vars.add(v);
|
||||||
});
|
});
|
||||||
updateUsingGroups(tree.group);
|
updateUsingGroups(group);
|
||||||
updateUsingVars(Array.from(vars));
|
updateUsingVars(Array.from(vars));
|
||||||
};
|
};
|
||||||
Reference in new issue
Block a user