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