From 69f1d1bebdf02d13cfcd1e9b8f9dc9f4315d968d Mon Sep 17 00:00:00 2001 From: matei jordache Date: Sat, 4 Apr 2026 14:01:53 -0700 Subject: [PATCH] add keywords support --- backend/node_registry.py | 1 + backend/nodes/edge_detect.py | 2 ++ frontend/src/ContextMenu.tsx | 4 +++- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/backend/node_registry.py b/backend/node_registry.py index c6d5a8e..1ba123c 100644 --- a/backend/node_registry.py +++ b/backend/node_registry.py @@ -91,6 +91,7 @@ def get_node_info(class_name: str) -> dict[str, Any]: "output_node": bool(getattr(cls, "OUTPUT_NODE", False)), "manual_trigger": bool(getattr(cls, "MANUAL_TRIGGER", False)), "description": getattr(cls, "DESCRIPTION", ""), + "keywords": list(getattr(cls, "KEYWORDS", ())), } diff --git a/backend/nodes/edge_detect.py b/backend/nodes/edge_detect.py index 4e77439..e68011c 100644 --- a/backend/nodes/edge_detect.py +++ b/backend/nodes/edge_detect.py @@ -25,6 +25,8 @@ class EdgeDetect: "Detect edges using Sobel, Prewitt, Laplacian, or LoG operators. " ) + KEYWORDS = ("sobel", "prewitt", "laplacian", "log", "gradient", "edges") + def process(self, field: DataField, method: str, sigma: float) -> tuple: from scipy.ndimage import sobel, prewitt, gaussian_laplace, laplace data = field.data diff --git a/frontend/src/ContextMenu.tsx b/frontend/src/ContextMenu.tsx index 88fcfe6..7b74ea5 100644 --- a/frontend/src/ContextMenu.tsx +++ b/frontend/src/ContextMenu.tsx @@ -106,7 +106,9 @@ export default function ContextMenu({ for (const { className, def } of category.items) { if (seen.has(className)) continue; const name = (def.display_name || className).toLowerCase(); - if (name.includes(q)) { + const keywords: string[] = Array.isArray(def.keywords) ? def.keywords : []; + const keywordMatch = keywords.some((kw) => String(kw).toLowerCase().includes(q)); + if (name.includes(q) || keywordMatch) { results.push({ className, def }); seen.add(className); }