feat(search): Bring Search Everywhere closer to IDEA's popup

- All tab interleaves classes, files, symbols, actions and text by match
  degree, keeping each source's own order; Enter waits for every source
  except a text search the top row already beats.
- Preview pane under the list (remembered toggle), reusing CodePreview.
- "/" lists scope commands; "/files q" switches scope and searches q.
- Per-tab search history: magnifier dropdown and ⌥↑ / ⌥↓.
- Text hits: syntax colouring, IDEA's boxed-T icon, dimmed repeated file
  names, collapsed indentation.
- Flat scope chooser, IDEA header icons, wider popup with a stable list
  height; the list shrinks so the footer stays visible.
Цей коміт міститься в:
l0ng-ai committed 2026-10-24 14:47:45 +08:00
1 джерело 709e1eb855
коміт 0bb730039d
11 files changed
+609 -67

No files matched your search

+8 -1
Переглянути файл
@@ -38,6 +38,8 @@ export type MenuItem =
kind?: "item";
id?: string;
label: string;
/** User text (e.g. a past query): shown as is, never looked up in the catalog. */
verbatim?: boolean;
icon?: IconName | (string & {});
shortcut?: string;
disabled?: boolean;
@@ -86,7 +88,12 @@ export function resolveMenuItems(items: MenuItem[]): Resolved[] {
});
return;
}
out.push({ ...item, label: tx(item.label), kind: "item", key: item.id ?? `${i}:${item.label}` });
out.push({
...item,
label: item.verbatim ? item.label : tx(item.label),
kind: "item",
key: item.id ?? `${i}:${item.label}`,
});
});
while (out.length && out[out.length - 1]!.kind === "separator") out.pop();
return out;
+2
Переглянути файл
@@ -178,6 +178,8 @@ const ICONS = {
regex: "inline/regex",
case: "inline/matchCase",
word: "inline/exactWords",
"text-match": "openidea/nodes/textMatch",
"open-in-tool-window": "general/openInToolWindow",
"preserve-case": "openidea/inline/preserveCase",
filter: "general/filter",
refresh: "general/refresh",
+4
Переглянути файл
@@ -0,0 +1,4 @@
<!-- OpenIDEA: text occurrence (Search Everywhere › Text) -->
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="2.5" y="2.5" width="11" height="11" rx="2" stroke="#6C707E"/><path d="M5.5 5.5H10.5M8 5.5V10.5" stroke="#6C707E" stroke-linecap="round"/>
</svg>

Після

Ширина:  |  Висота:  |  Розмір: 314 B