From 973e9f487aec808ba0904456d4d04de1a232c8bf Mon Sep 17 00:00:00 2001 From: t8y2 <1156263951@qq.com> Date: Wed, 10 Jun 2026 12:27:26 +0800 Subject: [PATCH] fix(sidebar): match table comments in search --- apps/desktop/src/lib/sidebarSearchTree.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/apps/desktop/src/lib/sidebarSearchTree.ts b/apps/desktop/src/lib/sidebarSearchTree.ts index f5c880de2..564700eaa 100644 --- a/apps/desktop/src/lib/sidebarSearchTree.ts +++ b/apps/desktop/src/lib/sidebarSearchTree.ts @@ -5,6 +5,14 @@ const preserveMatchedSubtreeTypes = new Set(["database", "schema", "table", "vie const normalizedLabelCache = new WeakMap(); +function bestMatch(matchLabel: SidebarLabelMatcher, label: string, comment?: string | null) { + const lm = matchLabel(label); + if (!comment) return lm; + const cm = matchLabel(comment.toLowerCase()); + if (lm && cm) return lm.score >= cm.score ? lm : cm; + return lm ?? cm; +} + function normalizedLabel(node: TreeNode): string { const cached = normalizedLabelCache.get(node); if (cached?.label === node.label) return cached.normalized; @@ -30,7 +38,7 @@ function filterSidebarTreeWithMatcher(nodes: TreeNode[], matchLabel: SidebarLabe const label = normalizedLabel(node); const canSelfMatch = !searchableNodeTypes || searchableNodeTypes.has(node.type); - const selfMatch = canSelfMatch ? matchLabel(label) : null; + const selfMatch = canSelfMatch ? bestMatch(matchLabel, label, node.comment) : null; const preservesSubtree = !!selfMatch && preserveMatchedSubtreeTypes.has(node.type); const filteredChildren = preservesSubtree ? node.children : node.children ? filterSidebarTreeWithMatcher(node.children, matchLabel, collapsedIds, searchableNodeTypes) : undefined;