From 097e66ea8dbf5f4a349db32642d68eb8e0a93853 Mon Sep 17 00:00:00 2001 From: codetypes Date: Wed, 19 Mar 2025 22:03:30 +0800 Subject: [PATCH] sort group --- src/components/editor.tsx | 2 +- src/components/inspector.tsx | 6 +++--- src/misc/b3util.ts | 13 +++++++------ src/misc/util.ts | 2 +- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/components/editor.tsx b/src/components/editor.tsx index 45ade8b..4019cd1 100644 --- a/src/components/editor.tsx +++ b/src/components/editor.tsx @@ -553,7 +553,7 @@ export const Editor: FC = ({ onUpdate: updateState, data: editor, . if (isTreeUpdated(editor, editTree)) { editor.data.desc = editTree.data.desc || ""; editor.data.export = editTree.data.export !== false; - editor.data.group = editTree.data.group || []; + editor.data.group = editTree.data.group; editor.data.firstid = editTree.data.firstid ?? 1; editor.declare.declvar = editTree.data.declvar || []; editor.declare.import = editTree.data.import || []; diff --git a/src/components/inspector.tsx b/src/components/inspector.tsx index 01615bc..361fbac 100644 --- a/src/components/inspector.tsx +++ b/src/components/inspector.tsx @@ -115,9 +115,9 @@ const TreeInspector: FC = () => { export: values.export, firstid: Number(values.firstid), group: (values.group as GroupDef[]) - .map((v) => (v.value ? v.name : undefined)) + .map((v) => (v.value ? v.name : "")) .filter((v) => v) - .sort(), + .sort((a, b) => a.localeCompare(b)), declvar: (values.declvar as VarDef[]) .filter((v) => v && v.name) .sort((a, b) => a.name.localeCompare(b.name)), @@ -246,7 +246,7 @@ const TreeInspector: FC = () => { ]} > diff --git a/src/misc/b3util.ts b/src/misc/b3util.ts index 01e9caf..e658b4e 100644 --- a/src/misc/b3util.ts +++ b/src/misc/b3util.ts @@ -687,12 +687,7 @@ export const createTreeData = ( parsingStack.length = 0; } - if (node.children) { - treeData.children = []; - node.children.forEach((child) => { - treeData.children!.push(createTreeData(child, treeData.id, calcSize)); - }); - } else if (node.path) { + if (node.path) { if (parsingStack.indexOf(node.path) >= 0) { treeData.path = node.path; if (calcSize) { @@ -719,6 +714,11 @@ export const createTreeData = ( console.log("parse subtree:", e); } parsingStack.pop(); + } else if (node.children?.length) { + treeData.children = []; + node.children.forEach((child) => { + treeData.children!.push(createTreeData(child, treeData.id, calcSize)); + }); } return treeData; @@ -873,6 +873,7 @@ const findSubtrees = (data: NodeModel) => { export const refreshDeclare = (tree: TreeModel, declare: FileVarDecl) => { const vars: Set = new Set(declare.declvar.slice()); + parsingStack.length = 0; declare.subtree = findSubtrees(tree.root).map((v) => ({ path: v, vars: [], diff --git a/src/misc/util.ts b/src/misc/util.ts index d2a966f..213a173 100644 --- a/src/misc/util.ts +++ b/src/misc/util.ts @@ -17,7 +17,7 @@ export const readTree = (path: string) => { return data; }; -export const writeJson = (path: string, data: any) => { +export const writeJson = (path: string, data: unknown) => { const str = JSON.stringify(data, undefined, 2); fs.writeFileSync(path, str, "utf-8"); };