Files
clide/lib/builtin/search/src/extension.dart
T
jpmschweitzerandClaude Opus 4.8 f96c565acd add find-in-files sidebar panel + Ctrl/Cmd+Shift+F
The find-in-files UI on top of the search.grep engine. A
FindInFilesController drives search.grep, accumulates streamed
search.match events (scoped to the active searchId, stale ids
ignored) grouped by file, and opens a match in the editor at its line.
The SearchPanelView contributes a sidebar tab: a debounced query box,
regex + case toggles, include/exclude glob fields, and a grouped
results list with the matched span highlighted.

findInFiles.open (Ctrl/Cmd+Shift+F) reveals and activates the search
tab.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 20:53:50 +02:00

32 lines
1011 B
Dart

import 'package:clide/builtin/search/src/search_panel_view.dart';
import 'package:clide/extension/extension.dart';
import 'package:clide/kernel/kernel.dart';
import 'package:clide/widgets/widgets.dart';
/// Find-in-files panel. Contributes a sidebar tab that runs workspace
/// content searches through the daemon's `search.*` subsystem (the
/// pure-Dart isolate-pool grep, D-79) and lists matches grouped by
/// file, click-to-open at the line.
class SearchExtension extends ClideExtension {
@override
String get id => 'builtin.search';
@override
String get title => 'Search';
@override
String get version => '0.1.0';
@override
List<String> get dependsOn => const [];
@override
List<ContributionPoint> get contributions => [
TabContribution(
id: 'search.findInFiles',
slot: Slots.sidebar,
title: 'Search',
icon: PhosphorIcons.magnifyingGlass,
priority: -90,
build: (_) => const SearchPanelView(),
),
];
}