From 625ec2f4c428e1d9100c4b29daedc0246e68ae93 Mon Sep 17 00:00:00 2001 From: Kenzie Davisson Date: Fri, 13 Mar 2026 16:31:53 -0700 Subject: [PATCH 1/7] Add support for searching within the log details view --- .../lib/src/screens/logging/_log_details.dart | 163 +++++++++++++++++- .../lib/src/screens/logging/_logs_table.dart | 1 + .../logging/log_details_controller.dart | 62 +++++++ .../screens/logging/logging_controller.dart | 6 + .../src/screens/logging/logging_screen.dart | 5 +- .../lib/src/shared/table/_flat_table.dart | 1 + .../lib/src/shared/table/_table_row.dart | 2 +- .../macos/Runner.xcodeproj/project.pbxproj | 128 +++----------- .../contents.xcworkspacedata | 7 + .../xcshareddata/xcschemes/Runner.xcscheme | 18 ++ .../release_notes/NEXT_RELEASE_NOTES.md | 3 +- .../images/log_details_search.png | Bin 0 -> 50315 bytes .../lib/src/ui/theme/theme.dart | 1 + 13 files changed, 285 insertions(+), 112 deletions(-) create mode 100644 packages/devtools_app/lib/src/screens/logging/log_details_controller.dart create mode 100644 packages/devtools_app/macos/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 packages/devtools_app/release_notes/images/log_details_search.png diff --git a/packages/devtools_app/lib/src/screens/logging/_log_details.dart b/packages/devtools_app/lib/src/screens/logging/_log_details.dart index 977af418050..7895b2eed28 100644 --- a/packages/devtools_app/lib/src/screens/logging/_log_details.dart +++ b/packages/devtools_app/lib/src/screens/logging/_log_details.dart @@ -11,12 +11,15 @@ import 'package:flutter/material.dart'; import '../../shared/globals.dart'; import '../../shared/preferences/preferences.dart'; import '../../shared/ui/common_widgets.dart'; +import '../../shared/ui/search.dart'; +import 'log_details_controller.dart'; import 'logging_controller.dart'; class LogDetails extends StatefulWidget { - const LogDetails({super.key, required this.log}); + const LogDetails({super.key, required this.log, required this.controller}); final LogData? log; + final LogDetailsController controller; @override State createState() => _LogDetailsState(); @@ -45,6 +48,10 @@ class _LogDetailsState extends State if (widget.log != oldWidget.log) { unawaited(_computeLogDetails()); } + if (widget.controller != oldWidget.controller) { + cancelListeners(); + addAutoDisposeListener(preferences.logging.detailsFormat); + } } Future _computeLogDetails() async { @@ -81,6 +88,7 @@ class _LogDetailsState extends State header: _LogDetailsHeader( log: log, format: preferences.logging.detailsFormat.value, + controller: widget.controller, ), child: Scrollbar( controller: scrollController, @@ -93,9 +101,9 @@ class _LogDetailsState extends State ? Padding( padding: const EdgeInsets.all(denseSpacing), child: SelectionArea( - child: Text( - log?.prettyPrinted() ?? '', - textAlign: TextAlign.left, + child: _SearchableLogDetailsText( + text: log?.prettyPrinted() ?? '', + controller: widget.controller, ), ), ) @@ -107,10 +115,15 @@ class _LogDetailsState extends State } class _LogDetailsHeader extends StatelessWidget { - const _LogDetailsHeader({required this.log, required this.format}); + const _LogDetailsHeader({ + required this.log, + required this.format, + required this.controller, + }); final LogData? log; final LoggingDetailsFormat format; + final LogDetailsController controller; @override Widget build(BuildContext context) { @@ -122,7 +135,13 @@ class _LogDetailsHeader extends StatelessWidget { title: const Text('Details'), includeTopBorder: false, roundedTopBorder: false, + tall: true, actions: [ + // Only supporting search for the text format now since supporting this + // for the expandable JSON viewer would require a more complicated + // refactor of that shared component. + if (format == LoggingDetailsFormat.text) + _LogDetailsSearchField(controller: controller, log: log), LogDetailsFormatButton(format: format), const SizedBox(width: densePadding), CopyToClipboardControl( @@ -134,6 +153,140 @@ class _LogDetailsHeader extends StatelessWidget { } } +/// An animated search field for the log details view that toggles between an icon +/// and a full [SearchField]. +class _LogDetailsSearchField extends StatefulWidget { + const _LogDetailsSearchField({required this.controller, required this.log}); + + final LogDetailsController controller; + final LogData? log; + + @override + State<_LogDetailsSearchField> createState() => _LogDetailsSearchFieldState(); +} + +class _LogDetailsSearchFieldState extends State<_LogDetailsSearchField> + with AutoDisposeMixin { + late bool _isExpanded; + + @override + void initState() { + super.initState(); + _isExpanded = widget.controller.search.isNotEmpty; + addAutoDisposeListener(widget.controller.searchFieldFocusNode, () { + final hasFocus = + widget.controller.searchFieldFocusNode?.hasFocus ?? false; + if (hasFocus != _isExpanded) { + setState(() { + _isExpanded = hasFocus; + }); + } + }); + } + + @override + Widget build(BuildContext context) { + return AnimatedContainer( + duration: defaultDuration, + curve: defaultCurve, + width: _isExpanded ? mediumSearchFieldWidth : defaultButtonHeight, + child: OverflowBox( + minWidth: 0.0, + maxWidth: mediumSearchFieldWidth, + child: _isExpanded + ? Padding( + padding: const EdgeInsets.symmetric(horizontal: densePadding), + child: SearchField( + searchController: widget.controller, + searchFieldEnabled: + widget.log != null && widget.log!.details != null, + shouldRequestFocus: true, + searchFieldWidth: mediumSearchFieldWidth, + ), + ) + : ToolbarAction( + icon: Icons.search, + tooltip: 'Search details', + size: defaultIconSize, + onPressed: () { + setState(() { + _isExpanded = true; + }); + widget.controller.searchFieldFocusNode?.requestFocus(); + }, + ), + ), + ); + } +} + +/// A text widget for the log details view that highlights search matches. +class _SearchableLogDetailsText extends StatelessWidget { + const _SearchableLogDetailsText({ + required this.text, + required this.controller, + }); + + final String text; + final LogDetailsController controller; + + @override + Widget build(BuildContext context) { + return MultiValueListenableBuilder( + listenables: [controller.searchMatches, controller.activeSearchMatch], + builder: (context, values, _) { + final theme = Theme.of(context); + + final matches = values[0] as List; + final activeMatch = values[1] as LogDetailsMatch?; + if (matches.isEmpty) { + return Text( + text, + textAlign: TextAlign.left, + style: theme.regularTextStyle, + ); + } + + final spans = []; + int previousEnd = 0; + for (final match in matches) { + if (match.range.begin > previousEnd) { + spans.add( + TextSpan( + text: text.substring(previousEnd, match.range.begin as int), + ), + ); + } + final isActive = match == activeMatch; + spans.add( + TextSpan( + text: text.substring( + match.range.begin as int, + match.range.end as int, + ), + style: theme.regularTextStyle.copyWith( + backgroundColor: isActive + ? activeSearchMatchColor + : searchMatchColor, + color: Colors.black, + ), + ), + ); + previousEnd = match.range.end as int; + } + + if (previousEnd < text.length) { + spans.add(TextSpan(text: text.substring(previousEnd))); + } + + return Text.rich( + TextSpan(style: theme.regularTextStyle, children: spans), + ); + }, + ); + } +} + @visibleForTesting class LogDetailsFormatButton extends StatelessWidget { const LogDetailsFormatButton({super.key, required this.format}); diff --git a/packages/devtools_app/lib/src/screens/logging/_logs_table.dart b/packages/devtools_app/lib/src/screens/logging/_logs_table.dart index 0475919955a..c406a428d45 100644 --- a/packages/devtools_app/lib/src/screens/logging/_logs_table.dart +++ b/packages/devtools_app/lib/src/screens/logging/_logs_table.dart @@ -48,6 +48,7 @@ class LogsTable extends StatelessWidget { defaultSortDirection: SortDirection.ascending, secondarySortColumn: messageColumn, rowHeight: _logRowHeight, + tallHeaders: true, ); } } diff --git a/packages/devtools_app/lib/src/screens/logging/log_details_controller.dart b/packages/devtools_app/lib/src/screens/logging/log_details_controller.dart new file mode 100644 index 00000000000..33eec934c63 --- /dev/null +++ b/packages/devtools_app/lib/src/screens/logging/log_details_controller.dart @@ -0,0 +1,62 @@ +// Copyright 2024 The Flutter Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file or at https://developers.google.com/open-source/licenses/bsd. + +import 'package:devtools_app_shared/utils.dart'; +import 'package:flutter/foundation.dart'; + +import '../../shared/primitives/utils.dart'; +import '../../shared/ui/search.dart'; +import 'logging_controller.dart'; + +/// A controller for the log details view that provides search functionality. +class LogDetailsController extends DisposableController + with SearchControllerMixin, AutoDisposeControllerMixin { + LogDetailsController({required ValueListenable selectedLog}) { + init(); + addAutoDisposeListener(selectedLog, () { + _selectedLog = selectedLog.value; + refreshSearchMatches(); + }); + } + + LogData? _selectedLog; + + @override + List matchesForSearch( + String search, { + bool searchPreviousMatches = false, + }) { + if (search.isEmpty || _selectedLog == null) return []; + final matches = []; + + final text = _selectedLog!.prettyPrinted(); + if (text == null) return []; + + final regex = RegExp(search, caseSensitive: false); + final allMatches = regex.allMatches(text); + for (final match in allMatches) { + matches.add(LogDetailsMatch(match.start, match.end)); + } + return matches; + } + + @override + void dispose() { + _selectedLog = null; + super.dispose(); + } +} + +/// A search match in the log details view. +class LogDetailsMatch with SearchableDataMixin { + LogDetailsMatch(this.start, this.end); + + final int start; + final int end; + + Range get range => Range(start, end); + + @override + bool matchesSearchToken(RegExp regExpSearch) => false; +} diff --git a/packages/devtools_app/lib/src/screens/logging/logging_controller.dart b/packages/devtools_app/lib/src/screens/logging/logging_controller.dart index 8f9818c584a..fa93986930c 100644 --- a/packages/devtools_app/lib/src/screens/logging/logging_controller.dart +++ b/packages/devtools_app/lib/src/screens/logging/logging_controller.dart @@ -28,6 +28,7 @@ import '../../shared/primitives/utils.dart'; import '../../shared/ui/filter.dart'; import '../../shared/ui/search.dart'; import '../inspector/inspector_tree_controller.dart'; +import 'log_details_controller.dart'; import 'logging_screen.dart'; import 'metadata.dart'; @@ -110,6 +111,8 @@ class LoggingController extends DevToolsScreenController @override void init() { super.init(); + logDetailsController = LogDetailsController(selectedLog: selectedLog) + ..init(); addAutoDisposeListener(serviceConnection.serviceManager.connectedState, () { if (serviceConnection.serviceManager.connectedState.value.connected) { _handleConnectionStart(serviceConnection.serviceManager.service!); @@ -138,6 +141,7 @@ class LoggingController extends DevToolsScreenController @override void dispose() { + logDetailsController.dispose(); selectedLog.dispose(); unawaited(_logStatusController.close()); super.dispose(); @@ -234,6 +238,8 @@ class LoggingController extends DevToolsScreenController final _logStatusController = StreamController.broadcast(); + late final LogDetailsController logDetailsController; + List data = []; final selectedLog = ValueNotifier(null); diff --git a/packages/devtools_app/lib/src/screens/logging/logging_screen.dart b/packages/devtools_app/lib/src/screens/logging/logging_screen.dart index 2b68a9dc1fe..79d2c7cfbe2 100644 --- a/packages/devtools_app/lib/src/screens/logging/logging_screen.dart +++ b/packages/devtools_app/lib/src/screens/logging/logging_screen.dart @@ -87,7 +87,10 @@ class _LoggingScreenState extends State ValueListenableBuilder( valueListenable: controller.selectedLog, builder: (context, selected, _) { - return LogDetails(log: selected); + return LogDetails( + log: selected, + controller: controller.logDetailsController, + ); }, ), ], diff --git a/packages/devtools_app/lib/src/shared/table/_flat_table.dart b/packages/devtools_app/lib/src/shared/table/_flat_table.dart index 79bb3e7d15d..154868a0026 100644 --- a/packages/devtools_app/lib/src/shared/table/_flat_table.dart +++ b/packages/devtools_app/lib/src/shared/table/_flat_table.dart @@ -33,6 +33,7 @@ class SearchableFlatTable extends FlatTable { super.sizeColumnsToFit = true, super.rowHeight, super.selectionNotifier, + super.tallHeaders, }) : super( searchMatchesNotifier: searchController.searchMatches, activeSearchMatchNotifier: searchController.activeSearchMatch, diff --git a/packages/devtools_app/lib/src/shared/table/_table_row.dart b/packages/devtools_app/lib/src/shared/table/_table_row.dart index b7c6a010b92..afecd702bc7 100644 --- a/packages/devtools_app/lib/src/shared/table/_table_row.dart +++ b/packages/devtools_app/lib/src/shared/table/_table_row.dart @@ -263,7 +263,7 @@ class _TableRowState extends State> final box = SizedBox( height: widget._rowType == _TableRowType.data ? defaultRowHeight - : defaultHeaderHeight + (widget.tall ? densePadding : 0.0), + : defaultHeaderHeight + (widget.tall ? 2 * densePadding : 0.0), child: Material( color: _searchAwareBackgroundColor(), child: onPressed != null diff --git a/packages/devtools_app/macos/Runner.xcodeproj/project.pbxproj b/packages/devtools_app/macos/Runner.xcodeproj/project.pbxproj index 59aa8f360ec..ce7a071de3b 100644 --- a/packages/devtools_app/macos/Runner.xcodeproj/project.pbxproj +++ b/packages/devtools_app/macos/Runner.xcodeproj/project.pbxproj @@ -21,14 +21,13 @@ /* End PBXAggregateTarget section */ /* Begin PBXBuildFile section */ - 11595299B00138FF6A219878 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 46084CB9F244837191E61B73 /* Pods_RunnerTests.framework */; }; 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C80D7294CF71000263BE5 /* RunnerTests.swift */; }; 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; }; 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; }; 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; - E678665441E5C0F7F629BAD5 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5062035DDDD18FB35E98D5B6 /* Pods_Runner.framework */; }; + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -62,8 +61,6 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 11BB555C0F1767B9B5CB7CE0 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; - 13053082F27293B7166BCBED /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; 331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; @@ -80,14 +77,9 @@ 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; - 46084CB9F244837191E61B73 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 5062035DDDD18FB35E98D5B6 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 68C587FFA5A0B8F46A0C5150 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; - A7CE48BF63861DD9F3A9FA2F /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; - BDEB23F5F07C7F498EB77EA2 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; - E11974409F5281249C10F0E1 /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -95,7 +87,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 11595299B00138FF6A219878 /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -103,7 +94,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E678665441E5C0F7F629BAD5 /* Pods_Runner.framework in Frameworks */, + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -136,8 +127,6 @@ 33CEB47122A05771004F2AC0 /* Flutter */, 331C80D6294CF71000263BE5 /* RunnerTests */, 33CC10EE2044A3C60003C045 /* Products */, - D73912EC22F37F3D000D13A0 /* Frameworks */, - 618DD25D42BF0C167E4D5128 /* Pods */, ); sourceTree = ""; }; @@ -164,6 +153,7 @@ 33CEB47122A05771004F2AC0 /* Flutter */ = { isa = PBXGroup; children = ( + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, @@ -185,29 +175,6 @@ path = Runner; sourceTree = ""; }; - 618DD25D42BF0C167E4D5128 /* Pods */ = { - isa = PBXGroup; - children = ( - 11BB555C0F1767B9B5CB7CE0 /* Pods-Runner.debug.xcconfig */, - 68C587FFA5A0B8F46A0C5150 /* Pods-Runner.release.xcconfig */, - A7CE48BF63861DD9F3A9FA2F /* Pods-Runner.profile.xcconfig */, - E11974409F5281249C10F0E1 /* Pods-RunnerTests.debug.xcconfig */, - BDEB23F5F07C7F498EB77EA2 /* Pods-RunnerTests.release.xcconfig */, - 13053082F27293B7166BCBED /* Pods-RunnerTests.profile.xcconfig */, - ); - name = Pods; - path = Pods; - sourceTree = ""; - }; - D73912EC22F37F3D000D13A0 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 5062035DDDD18FB35E98D5B6 /* Pods_Runner.framework */, - 46084CB9F244837191E61B73 /* Pods_RunnerTests.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -215,7 +182,6 @@ isa = PBXNativeTarget; buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( - 3E485AF46E5EF6A810E8A04C /* [CP] Check Pods Manifest.lock */, 331C80D1294CF70F00263BE5 /* Sources */, 331C80D2294CF70F00263BE5 /* Frameworks */, 331C80D3294CF70F00263BE5 /* Resources */, @@ -234,13 +200,11 @@ isa = PBXNativeTarget; buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - DC1C8B6797A659BE5B59B986 /* [CP] Check Pods Manifest.lock */, 33CC10E92044A3C60003C045 /* Sources */, 33CC10EA2044A3C60003C045 /* Frameworks */, 33CC10EB2044A3C60003C045 /* Resources */, 33CC110E2044A8840003C045 /* Bundle Framework */, 3399D490228B24CF009A79C7 /* ShellScript */, - E765EEB3239836D35A4D4672 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -248,6 +212,9 @@ 33CC11202044C79F0003C045 /* PBXTargetDependency */, ); name = Runner; + packageProductDependencies = ( + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, + ); productName = Runner; productReference = 33CC10ED2044A3C60003C045 /* devtools_app.app */; productType = "com.apple.product-type.application"; @@ -291,6 +258,9 @@ Base, ); mainGroup = 33CC10E42044A3C60003C045; + packageReferences = ( + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */, + ); productRefGroup = 33CC10EE2044A3C60003C045 /* Products */; projectDirPath = ""; projectRoot = ""; @@ -360,67 +330,6 @@ shellPath = /bin/sh; shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; }; - 3E485AF46E5EF6A810E8A04C /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - DC1C8B6797A659BE5B59B986 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - E765EEB3239836D35A4D4672 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -472,7 +381,6 @@ /* Begin XCBuildConfiguration section */ 331C80DB294CF71000263BE5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E11974409F5281249C10F0E1 /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -487,7 +395,6 @@ }; 331C80DC294CF71000263BE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = BDEB23F5F07C7F498EB77EA2 /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -502,7 +409,6 @@ }; 331C80DD294CF71000263BE5 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 13053082F27293B7166BCBED /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -786,6 +692,20 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ + +/* Begin XCLocalSwiftPackageReference section */ + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */ = { + isa = XCLocalSwiftPackageReference; + relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; + }; +/* End XCLocalSwiftPackageReference section */ + +/* Begin XCSwiftPackageProductDependency section */ + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */ = { + isa = XCSwiftPackageProductDependency; + productName = FlutterGeneratedPluginSwiftPackage; + }; +/* End XCSwiftPackageProductDependency section */ }; rootObject = 33CC10E52044A3C60003C045 /* Project object */; } diff --git a/packages/devtools_app/macos/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/packages/devtools_app/macos/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000000..919434a6254 --- /dev/null +++ b/packages/devtools_app/macos/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/packages/devtools_app/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/devtools_app/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index cadfa603a2e..559bf4e57a2 100644 --- a/packages/devtools_app/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/packages/devtools_app/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -5,6 +5,24 @@ + + + + + + + + + + xjhHb!v`_L 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 kw63F!M_*-v%U; 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 SCs76-fn3wjQ7=_B5B-065`hH( literal 0 HcmV?d00001 diff --git a/packages/devtools_app_shared/lib/src/ui/theme/theme.dart b/packages/devtools_app_shared/lib/src/ui/theme/theme.dart index 3513a229922..07c1bf1e6a4 100644 --- a/packages/devtools_app_shared/lib/src/ui/theme/theme.dart +++ b/packages/devtools_app_shared/lib/src/ui/theme/theme.dart @@ -278,6 +278,7 @@ const defaultDialogWidth = 700.0; const extraWideSearchFieldWidth = 600.0; const wideSearchFieldWidth = 400.0; +const mediumSearchFieldWidth = 300.0; const defaultSearchFieldWidth = 200.0; const defaultTextFieldHeight = 26.0; From 1a0281f41a5efe83d219c0ba7c594d3f275d20c6 Mon Sep 17 00:00:00 2001 From: Kenzie Davisson Date: Fri, 13 Mar 2026 16:38:55 -0700 Subject: [PATCH 2/7] update release note pr link --- packages/devtools_app/release_notes/NEXT_RELEASE_NOTES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/devtools_app/release_notes/NEXT_RELEASE_NOTES.md b/packages/devtools_app/release_notes/NEXT_RELEASE_NOTES.md index 9f0ac9436ad..ee4889179be 100644 --- a/packages/devtools_app/release_notes/NEXT_RELEASE_NOTES.md +++ b/packages/devtools_app/release_notes/NEXT_RELEASE_NOTES.md @@ -43,7 +43,7 @@ TODO: Remove this section if there are not any updates. ## Logging updates -- Added support for searching within the log details view (raw text mode). [TODO](https://github.com/flutter/devtools/pull/TODO) +- Added support for searching within the log details view (raw text mode). [#9712](https://github.com/flutter/devtools/pull/9712) ![](images/log_details_search.png) ## App size tool updates From 0f9c0c6ff6e1bc0cf12910614965e804eb061cff Mon Sep 17 00:00:00 2001 From: Kenzie Davisson Date: Mon, 16 Mar 2026 15:54:29 -0700 Subject: [PATCH 3/7] add SearchHighlighter utility --- packages/devtools_app/lib/devtools_app.dart | 1 + .../lib/src/screens/debugger/codeview.dart | 126 ++---------------- .../src/screens/debugger/debugger_model.dart | 2 + .../lib/src/screens/logging/_log_details.dart | 54 ++------ .../release_notes/NEXT_RELEASE_NOTES.md | 4 +- .../logging/logging_screen_data_test.dart | 7 +- .../src/mocks/generated_mocks_factories.dart | 8 +- pubspec.lock | 16 +-- 8 files changed, 42 insertions(+), 176 deletions(-) diff --git a/packages/devtools_app/lib/devtools_app.dart b/packages/devtools_app/lib/devtools_app.dart index ddfa7466ab2..5917216e754 100644 --- a/packages/devtools_app/lib/devtools_app.dart +++ b/packages/devtools_app/lib/devtools_app.dart @@ -29,6 +29,7 @@ export 'src/screens/inspector/inspector_screen_body.dart'; export 'src/screens/inspector/inspector_tree_controller.dart'; export 'src/screens/inspector_shared/inspector_screen.dart'; export 'src/screens/inspector_shared/inspector_screen_controller.dart'; +export 'src/screens/logging/log_details_controller.dart'; export 'src/screens/logging/logging_controller.dart'; export 'src/screens/logging/logging_screen.dart'; export 'src/screens/memory/framework/memory_controller.dart'; diff --git a/packages/devtools_app/lib/src/screens/debugger/codeview.dart b/packages/devtools_app/lib/src/screens/debugger/codeview.dart index 19ca7e44b5c..f5d63c11390 100644 --- a/packages/devtools_app/lib/src/screens/debugger/codeview.dart +++ b/packages/devtools_app/lib/src/screens/debugger/codeview.dart @@ -26,6 +26,7 @@ import '../../shared/ui/common_widgets.dart'; import '../../shared/ui/history_viewport.dart'; import '../../shared/ui/hover.dart'; import '../../shared/ui/search.dart'; +import '../../shared/ui/search_highlighter.dart'; import '../../shared/ui/utils.dart'; import '../vm_developer/vm_service_private_extensions.dart'; import 'breakpoints.dart'; @@ -1272,131 +1273,22 @@ class _HoverableLine extends StatelessWidget { return null; } - List _contentsWithMatch( - List startingContents, - SourceToken match, - Color matchColor, { - required BuildContext context, - }) { - final contentsWithMatch = []; - var startColumnForSpan = 0; - for (final span in startingContents) { - final spanText = span.toPlainText(); - final startColumnForMatch = match.position.column!; - if (startColumnForSpan <= startColumnForMatch && - startColumnForSpan + spanText.length > startColumnForMatch) { - // The active search is part of this [span]. - final matchStartInSpan = startColumnForMatch - startColumnForSpan; - final matchEndInSpan = matchStartInSpan + match.length; - - // Add the part of [span] that occurs before the search match. - contentsWithMatch.add( - TextSpan( - text: spanText.substring(0, matchStartInSpan), - style: span.style, - ), - ); - - final matchStyle = (span.style ?? DefaultTextStyle.of(context).style) - .copyWith(color: Colors.black, backgroundColor: matchColor); - - if (matchEndInSpan <= spanText.length) { - final matchText = spanText.substring( - matchStartInSpan, - matchEndInSpan, - ); - final trailingText = spanText.substring(matchEndInSpan); - // Add the match and any part of [span] that occurs after the search - // match. - contentsWithMatch.addAll([ - TextSpan(text: matchText, style: matchStyle), - if (trailingText.isNotEmpty) - TextSpan( - text: spanText.substring(matchEndInSpan), - style: span.style, - ), - ]); - } else { - // In this case, the active search match exists across multiple spans, - // so we need to add the part of the match that is in this [span] and - // continue looking for the remaining part of the match in the spans - // to follow. - contentsWithMatch.add( - TextSpan( - text: spanText.substring(matchStartInSpan), - style: matchStyle, - ), - ); - final remainingMatchLength = - match.length - (spanText.length - matchStartInSpan); - match = SourceToken( - position: SourcePosition( - line: match.position.line, - column: startColumnForMatch + match.length - remainingMatchLength, - ), - length: remainingMatchLength, - ); - } - } else { - contentsWithMatch.add(span); - } - startColumnForSpan += spanText.length; - } - return contentsWithMatch; - } - TextSpan searchAwareLineContents(BuildContext context) { // If syntax highlighting is disabled for the script, then // `lineContents` is simply a `TextSpan` with no children. final lineContentsSpans = lineContents.children ?? [lineContents]; - final activeSearchAwareContents = _activeSearchAwareLineContents( - lineContentsSpans, - context: context, - ); - final allSearchAwareContents = _searchMatchAwareLineContents( - activeSearchAwareContents!, - context: context, - ); + final theme = Theme.of(context); + return TextSpan( - children: allSearchAwareContents, + children: SearchHighlighter.highlightSpans( + lineContentsSpans.cast(), + matches: searchMatches?.map((m) => m.range).toList() ?? [], + activeMatch: activeSearchMatch?.range, + colorScheme: theme.colorScheme, + ), style: lineContents.style, ); } - - List? _activeSearchAwareLineContents( - List startingContents, { - required BuildContext context, - }) { - final match = activeSearchMatch; - if (match == null) return startingContents; - return _contentsWithMatch( - startingContents, - match, - activeSearchMatchColor, - context: context, - ); - } - - List _searchMatchAwareLineContents( - List startingContents, { - required BuildContext context, - }) { - final matches = searchMatches; - if (matches == null || matches.isEmpty) return startingContents; - final searchMatchesToFind = List.of(matches) - ..remove(activeSearchMatch); - - var contentsWithMatch = startingContents; - for (final match in searchMatchesToFind) { - contentsWithMatch = _contentsWithMatch( - contentsWithMatch, - match, - searchMatchColor, - context: context, - ); - } - return contentsWithMatch; - } } class ScriptPopupMenu extends StatelessWidget { diff --git a/packages/devtools_app/lib/src/screens/debugger/debugger_model.dart b/packages/devtools_app/lib/src/screens/debugger/debugger_model.dart index 12affb77fdf..f69e302bc01 100644 --- a/packages/devtools_app/lib/src/screens/debugger/debugger_model.dart +++ b/packages/devtools_app/lib/src/screens/debugger/debugger_model.dart @@ -52,6 +52,8 @@ class SourceToken with SearchableDataMixin { final int length; + Range get range => Range(position.column!, position.column! + length); + @override String toString() { return '$position-${position.column! + length}'; diff --git a/packages/devtools_app/lib/src/screens/logging/_log_details.dart b/packages/devtools_app/lib/src/screens/logging/_log_details.dart index 7895b2eed28..49b387d1314 100644 --- a/packages/devtools_app/lib/src/screens/logging/_log_details.dart +++ b/packages/devtools_app/lib/src/screens/logging/_log_details.dart @@ -12,6 +12,7 @@ import '../../shared/globals.dart'; import '../../shared/preferences/preferences.dart'; import '../../shared/ui/common_widgets.dart'; import '../../shared/ui/search.dart'; +import '../../shared/ui/search_highlighter.dart'; import 'log_details_controller.dart'; import 'logging_controller.dart'; @@ -237,50 +238,19 @@ class _SearchableLogDetailsText extends StatelessWidget { builder: (context, values, _) { final theme = Theme.of(context); - final matches = values[0] as List; - final activeMatch = values[1] as LogDetailsMatch?; - if (matches.isEmpty) { - return Text( - text, - textAlign: TextAlign.left, - style: theme.regularTextStyle, - ); - } - - final spans = []; - int previousEnd = 0; - for (final match in matches) { - if (match.range.begin > previousEnd) { - spans.add( - TextSpan( - text: text.substring(previousEnd, match.range.begin as int), - ), - ); - } - final isActive = match == activeMatch; - spans.add( - TextSpan( - text: text.substring( - match.range.begin as int, - match.range.end as int, - ), - style: theme.regularTextStyle.copyWith( - backgroundColor: isActive - ? activeSearchMatchColor - : searchMatchColor, - color: Colors.black, - ), - ), - ); - previousEnd = match.range.end as int; - } - - if (previousEnd < text.length) { - spans.add(TextSpan(text: text.substring(previousEnd))); - } + final matches = (values[0] as List) + .map((m) => m.range) + .toList(); + final activeMatch = (values[1] as LogDetailsMatch?)?.range; return Text.rich( - TextSpan(style: theme.regularTextStyle, children: spans), + SearchHighlighter.highlight( + text, + matches, + activeMatch: activeMatch, + colorScheme: theme.colorScheme, + style: theme.regularTextStyle, + ), ); }, ); diff --git a/packages/devtools_app/release_notes/NEXT_RELEASE_NOTES.md b/packages/devtools_app/release_notes/NEXT_RELEASE_NOTES.md index ee4889179be..6893cc7d4f4 100644 --- a/packages/devtools_app/release_notes/NEXT_RELEASE_NOTES.md +++ b/packages/devtools_app/release_notes/NEXT_RELEASE_NOTES.md @@ -11,7 +11,7 @@ This is a draft for future release notes that are going to land on The 2.57.0 release of the Dart and Flutter DevTools includes the following changes among other general improvements. To learn more about DevTools, check out the -[DevTools overview](/tools/devtools). +[DevTools overview](https://docs.flutter.dev/tools/devtools). ## General updates @@ -44,7 +44,7 @@ TODO: Remove this section if there are not any updates. ## Logging updates - Added support for searching within the log details view (raw text mode). [#9712](https://github.com/flutter/devtools/pull/9712) - ![](images/log_details_search.png) + ![Search in log details](images/log_details_search.png "Searching within the log details view") ## App size tool updates diff --git a/packages/devtools_app/test/screens/logging/logging_screen_data_test.dart b/packages/devtools_app/test/screens/logging/logging_screen_data_test.dart index 8852ab0c650..bb0c34f9d5e 100644 --- a/packages/devtools_app/test/screens/logging/logging_screen_data_test.dart +++ b/packages/devtools_app/test/screens/logging/logging_screen_data_test.dart @@ -217,16 +217,13 @@ void main() { const index = 9; bool containsJson(Widget widget) { if (widget is! Text) return false; - final content = (widget.data ?? '').trim(); + final content = (widget.data ?? widget.textSpan?.toPlainText() ?? '').trim(); return content.startsWith('{') && content.endsWith('}') && content != '{ }'; } - final findJson = find.descendant( - of: find.byType(LogDetails), - matching: find.byWidgetPredicate(containsJson), - ); + final findJson = find.byWidgetPredicate(containsJson); await pumpLoggingScreen(tester); await tester.pumpAndSettle(); diff --git a/packages/devtools_test/lib/src/mocks/generated_mocks_factories.dart b/packages/devtools_test/lib/src/mocks/generated_mocks_factories.dart index f710b85b490..f16f27330c4 100644 --- a/packages/devtools_test/lib/src/mocks/generated_mocks_factories.dart +++ b/packages/devtools_test/lib/src/mocks/generated_mocks_factories.dart @@ -196,9 +196,13 @@ MockLoggingController createMockLoggingControllerWithDefaults({ provideDummy>(ListValueNotifier(data)); final mockLoggingController = MockLoggingController(); when(mockLoggingController.data).thenReturn(data); + final selectedLog = ValueNotifier(null); + when(mockLoggingController.selectedLog).thenReturn(selectedLog); + + final logDetailsController = LogDetailsController(selectedLog: selectedLog); when( - mockLoggingController.selectedLog, - ).thenReturn(ValueNotifier(null)); + mockLoggingController.logDetailsController, + ).thenReturn(logDetailsController); // Set up mock filter state. when( diff --git a/pubspec.lock b/pubspec.lock index 7831ae0f18f..b0a61b8a684 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -530,10 +530,10 @@ packages: dependency: transitive description: name: matcher - sha256: "12956d0ad8390bbcc63ca2e1469c0619946ccb52809807067a7020d57e647aa6" + sha256: dc0b7dc7651697ea4ff3e69ef44b0407ea32c487a39fff6a4004fa585e901861 url: "https://pub.dev" source: hosted - version: "0.12.18" + version: "0.12.19" material_color_utilities: dependency: transitive description: @@ -854,26 +854,26 @@ packages: dependency: transitive description: name: test - sha256: "54c516bbb7cee2754d327ad4fca637f78abfc3cbcc5ace83b3eda117e42cd71a" + sha256: "280d6d890011ca966ad08df7e8a4ddfab0fb3aa49f96ed6de56e3521347a9ae7" url: "https://pub.dev" source: hosted - version: "1.29.0" + version: "1.30.0" test_api: dependency: transitive description: name: test_api - sha256: "93167629bfc610f71560ab9312acdda4959de4df6fac7492c89ff0d3886f6636" + sha256: "8161c84903fd860b26bfdefb7963b3f0b68fee7adea0f59ef805ecca346f0c7a" url: "https://pub.dev" source: hosted - version: "0.7.9" + version: "0.7.10" test_core: dependency: transitive description: name: test_core - sha256: "394f07d21f0f2255ec9e3989f21e54d3c7dc0e6e9dbce160e5a9c1a6be0e2943" + sha256: "0381bd1585d1a924763c308100f2138205252fb90c9d4eeaf28489ee65ccde51" url: "https://pub.dev" source: hosted - version: "0.6.15" + version: "0.6.16" typed_data: dependency: transitive description: From 23030a73ba58b3e0265d665a856dac5d43079b99 Mon Sep 17 00:00:00 2001 From: Kenzie Davisson Date: Wed, 18 Mar 2026 08:56:53 -0700 Subject: [PATCH 4/7] add tests and search highlighter --- .../lib/src/screens/debugger/codeview.dart | 2 +- .../lib/src/screens/logging/_log_details.dart | 1 - .../lib/src/shared/ui/search_highlighter.dart | 137 ++++++++++++++++++ .../shared/ui/search_highlighter_test.dart | 121 ++++++++++++++++ 4 files changed, 259 insertions(+), 2 deletions(-) create mode 100644 packages/devtools_app/lib/src/shared/ui/search_highlighter.dart create mode 100644 packages/devtools_app/test/shared/ui/search_highlighter_test.dart diff --git a/packages/devtools_app/lib/src/screens/debugger/codeview.dart b/packages/devtools_app/lib/src/screens/debugger/codeview.dart index f5d63c11390..d5f1ebd54da 100644 --- a/packages/devtools_app/lib/src/screens/debugger/codeview.dart +++ b/packages/devtools_app/lib/src/screens/debugger/codeview.dart @@ -1284,7 +1284,7 @@ class _HoverableLine extends StatelessWidget { lineContentsSpans.cast(), matches: searchMatches?.map((m) => m.range).toList() ?? [], activeMatch: activeSearchMatch?.range, - colorScheme: theme.colorScheme, + style: theme.regularTextStyle, ), style: lineContents.style, ); diff --git a/packages/devtools_app/lib/src/screens/logging/_log_details.dart b/packages/devtools_app/lib/src/screens/logging/_log_details.dart index 49b387d1314..f277c54873c 100644 --- a/packages/devtools_app/lib/src/screens/logging/_log_details.dart +++ b/packages/devtools_app/lib/src/screens/logging/_log_details.dart @@ -248,7 +248,6 @@ class _SearchableLogDetailsText extends StatelessWidget { text, matches, activeMatch: activeMatch, - colorScheme: theme.colorScheme, style: theme.regularTextStyle, ), ); diff --git a/packages/devtools_app/lib/src/shared/ui/search_highlighter.dart b/packages/devtools_app/lib/src/shared/ui/search_highlighter.dart new file mode 100644 index 00000000000..0b40a12ea32 --- /dev/null +++ b/packages/devtools_app/lib/src/shared/ui/search_highlighter.dart @@ -0,0 +1,137 @@ +// Copyright 2024 The Flutter Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file or at https://developers.google.com/open-source/licenses/bsd. + +import 'package:devtools_app_shared/ui.dart'; +import 'package:flutter/material.dart'; + +import '../primitives/utils.dart'; + +/// A utility class for highlighting search matches in text. +extension SearchHighlighter on Never { + /// Highlights search matches in [text]. + static TextSpan highlight( + String text, + List matches, { + Range? activeMatch, + required TextStyle style, + }) { + if (matches.isEmpty) { + return TextSpan(text: text, style: style); + } + + final spans = []; + var lastIndex = 0; + for (final match in matches) { + final begin = match.begin.toInt(); + final end = match.end.toInt(); + if (begin > lastIndex) { + spans.add(TextSpan(text: text.substring(lastIndex, begin))); + } + + final isActive = activeMatch == match; + spans.add( + TextSpan( + text: text.substring(begin, end), + style: style.copyWith( + backgroundColor: isActive + ? activeSearchMatchColor + : searchMatchColor, + color: Colors.black, + ), + ), + ); + lastIndex = end; + } + + if (lastIndex < text.length) { + spans.add(TextSpan(text: text.substring(lastIndex))); + } + + return TextSpan(children: spans, style: style); + } + + /// Highlights search matches in a list of [TextSpan]s. + /// + /// This method handles matches that span across multiple [TextSpan]s. + static List highlightSpans( + List spans, { + required List matches, + Range? activeMatch, + required TextStyle style, + }) { + if (matches.isEmpty) return spans; + + final result = []; + var currentOffset = 0; + var matchIndex = 0; + + for (final span in spans) { + final spanText = span.toPlainText(); + final spanEnd = currentOffset + spanText.length; + + var lastSpanOffset = 0; + + while (matchIndex < matches.length) { + final match = matches[matchIndex]; + + // Match is after this span. + if (match.begin >= spanEnd) break; + + // Match ends before this span starts. + if (match.end <= currentOffset) { + matchIndex++; + continue; + } + + // Add leading un-highlighted text in this span. + final matchStartInSpan = (match.begin - currentOffset) + .clamp(0, spanText.length) + .toInt(); + if (matchStartInSpan > lastSpanOffset) { + result.add( + TextSpan( + text: spanText.substring(lastSpanOffset, matchStartInSpan), + style: span.style, + ), + ); + } + + // Add highlighted portion. + final matchEndInSpan = (match.end - currentOffset) + .clamp(0, spanText.length) + .toInt(); + final isActive = activeMatch == match; + result.add( + TextSpan( + text: spanText.substring(matchStartInSpan, matchEndInSpan), + style: (span.style ?? style).copyWith( + backgroundColor: isActive + ? activeSearchMatchColor + : searchMatchColor, + color: Colors.black, + ), + ), + ); + + lastSpanOffset = matchEndInSpan; + + // If the match continues into the next span, don't increment matchIndex yet. + if (match.end > spanEnd) break; + + matchIndex++; + } + + // Add remaining un-highlighted text in this span. + if (lastSpanOffset < spanText.length) { + result.add( + TextSpan(text: spanText.substring(lastSpanOffset), style: span.style), + ); + } + + currentOffset = spanEnd; + } + + return result; + } +} diff --git a/packages/devtools_app/test/shared/ui/search_highlighter_test.dart b/packages/devtools_app/test/shared/ui/search_highlighter_test.dart new file mode 100644 index 00000000000..00b172d8b37 --- /dev/null +++ b/packages/devtools_app/test/shared/ui/search_highlighter_test.dart @@ -0,0 +1,121 @@ +// Copyright 2024 The Flutter Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file or at https://developers.google.com/open-source/licenses/bsd. + +import 'package:devtools_app/src/shared/primitives/utils.dart'; +import 'package:devtools_app/src/shared/ui/search_highlighter.dart'; +import 'package:devtools_app_shared/ui.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; + +void main() { + const style = TextStyle(fontSize: 12.0); + + group('SearchHighlighter.highlight', () { + test('no matches', () { + final result = SearchHighlighter.highlight( + 'Hello World', + [], + style: style, + ); + expect(result.text, 'Hello World'); + expect(result.children, isNull); + }); + + test('single match', () { + final result = SearchHighlighter.highlight('Hello World', [ + const Range(0, 5), + ], style: style); + expect(result.children!.length, 2); + expect(result.children![0].toPlainText(), 'Hello'); + expect(result.children![0].style!.backgroundColor, searchMatchColor); + expect(result.children![1].toPlainText(), ' World'); + }); + + test('multiple matches with active match', () { + final matches = [const Range(0, 5), const Range(6, 11)]; + final result = SearchHighlighter.highlight( + 'Hello World', + matches, + activeMatch: matches[1], + style: style, + ); + expect(result.children!.length, 3); + expect(result.children![0].toPlainText(), 'Hello'); + expect(result.children![0].style!.backgroundColor, searchMatchColor); + expect(result.children![1].toPlainText(), ' '); + expect(result.children![2].toPlainText(), 'World'); + expect( + result.children![2].style!.backgroundColor, + activeSearchMatchColor, + ); + }); + }); + + group('SearchHighlighter.highlightSpans', () { + test('no matches', () { + final spans = [ + const TextSpan(text: 'Hello ', style: style), + const TextSpan(text: 'World', style: style), + ]; + final result = SearchHighlighter.highlightSpans( + spans, + matches: [], + style: style, + ); + expect(result, spans); + }); + + test('match across spans', () { + final spans = [ + const TextSpan(text: 'Hello ', style: style), + const TextSpan(text: 'World', style: style), + ]; + // "o Wor" + final matches = [const Range(4, 9)]; + final result = SearchHighlighter.highlightSpans( + spans, + matches: matches, + activeMatch: matches[0], + style: style, + ); + + expect(result.length, 4); + expect(result[0].toPlainText(), 'Hell'); + expect(result[1].toPlainText(), 'o '); + expect(result[1].style!.backgroundColor, activeSearchMatchColor); + expect(result[2].toPlainText(), 'Wor'); + expect(result[2].style!.backgroundColor, activeSearchMatchColor); + expect(result[3].toPlainText(), 'ld'); + }); + + test('multiple matches across multiple spans', () { + final spans = [ + const TextSpan(text: 'abc', style: style), + const TextSpan(text: 'def', style: style), + const TextSpan(text: 'ghi', style: style), + ]; + // "bcd", "fgh" + final matches = [const Range(1, 4), const Range(5, 8)]; + final result = SearchHighlighter.highlightSpans( + spans, + matches: matches, + activeMatch: matches[1], + style: style, + ); + + expect(result.length, 7); + expect(result[0].toPlainText(), 'a'); + expect(result[1].toPlainText(), 'bc'); // match 1 part 1 + expect(result[1].style!.backgroundColor, searchMatchColor); + expect(result[2].toPlainText(), 'd'); // match 1 part 2 + expect(result[2].style!.backgroundColor, searchMatchColor); + expect(result[3].toPlainText(), 'e'); + expect(result[4].toPlainText(), 'f'); // match 2 part 1 + expect(result[4].style!.backgroundColor, activeSearchMatchColor); + expect(result[5].toPlainText(), 'gh'); // match 2 part 2 + expect(result[5].style!.backgroundColor, activeSearchMatchColor); + expect(result[6].toPlainText(), 'i'); + }); + }); +} From a417f7bdfc3b3d39b216c95cf49adfe2e84353e7 Mon Sep 17 00:00:00 2001 From: Kenzie Davisson Date: Wed, 18 Mar 2026 09:05:51 -0700 Subject: [PATCH 5/7] fix --- .../lib/src/shared/ui/search_highlighter.dart | 34 +++++++++++-------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/packages/devtools_app/lib/src/shared/ui/search_highlighter.dart b/packages/devtools_app/lib/src/shared/ui/search_highlighter.dart index 0b40a12ea32..6c93155edc8 100644 --- a/packages/devtools_app/lib/src/shared/ui/search_highlighter.dart +++ b/packages/devtools_app/lib/src/shared/ui/search_highlighter.dart @@ -31,14 +31,10 @@ extension SearchHighlighter on Never { final isActive = activeMatch == match; spans.add( - TextSpan( + _searchAwareText( text: text.substring(begin, end), - style: style.copyWith( - backgroundColor: isActive - ? activeSearchMatchColor - : searchMatchColor, - color: Colors.black, - ), + baseStyle: style, + isActive: isActive, ), ); lastIndex = end; @@ -103,14 +99,10 @@ extension SearchHighlighter on Never { .toInt(); final isActive = activeMatch == match; result.add( - TextSpan( + _searchAwareText( text: spanText.substring(matchStartInSpan, matchEndInSpan), - style: (span.style ?? style).copyWith( - backgroundColor: isActive - ? activeSearchMatchColor - : searchMatchColor, - color: Colors.black, - ), + baseStyle: span.style ?? style, + isActive: isActive, ), ); @@ -135,3 +127,17 @@ extension SearchHighlighter on Never { return result; } } + +TextSpan _searchAwareText({ + required String text, + required TextStyle baseStyle, + bool isActive = false, +}) { + return TextSpan( + text: text, + style: baseStyle.copyWith( + backgroundColor: isActive ? activeSearchMatchColor : searchMatchColor, + color: Colors.black, + ), + ); +} From 12aca61eb144487876bb31b46a93183db9cb0558 Mon Sep 17 00:00:00 2001 From: Kenzie Davisson Date: Wed, 18 Mar 2026 09:12:55 -0700 Subject: [PATCH 6/7] formatting --- .../test/screens/logging/logging_screen_data_test.dart | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/devtools_app/test/screens/logging/logging_screen_data_test.dart b/packages/devtools_app/test/screens/logging/logging_screen_data_test.dart index bb0c34f9d5e..ab38883724f 100644 --- a/packages/devtools_app/test/screens/logging/logging_screen_data_test.dart +++ b/packages/devtools_app/test/screens/logging/logging_screen_data_test.dart @@ -217,7 +217,8 @@ void main() { const index = 9; bool containsJson(Widget widget) { if (widget is! Text) return false; - final content = (widget.data ?? widget.textSpan?.toPlainText() ?? '').trim(); + final content = (widget.data ?? widget.textSpan?.toPlainText() ?? '') + .trim(); return content.startsWith('{') && content.endsWith('}') && content != '{ }'; From cd2a18d97bec6e399bae87fb65ea23f0b77132e7 Mon Sep 17 00:00:00 2001 From: Kenzie Davisson Date: Wed, 18 Mar 2026 09:35:49 -0700 Subject: [PATCH 7/7] goldens --- .../test_infra/goldens/memory_diff_empty1.png | Bin 21479 -> 22437 bytes .../test_infra/goldens/memory_diff_empty2.png | Bin 21479 -> 22437 bytes .../goldens/memory_diff_selected_class.png | Bin 18911 -> 18922 bytes .../memory_diff_snapshot_except_diff.png | Bin 29148 -> 29112 bytes .../memory_diff_snapshot_except_single.png | Bin 24120 -> 24078 bytes .../memory_diff_snapshot_scene_diff.png | Bin 29148 -> 29112 bytes .../memory_diff_snapshot_scene_single.png | Bin 24120 -> 24078 bytes .../memory_diff_snapshot_showAll_diff.png | Bin 29148 -> 29112 bytes .../memory_diff_snapshot_showAll_single.png | Bin 24120 -> 24078 bytes .../goldens/memory_diff_three_snapshots1.png | Bin 18911 -> 18922 bytes .../goldens/memory_diff_three_snapshots2.png | Bin 18911 -> 18922 bytes 11 files changed, 0 insertions(+), 0 deletions(-) diff --git a/packages/devtools_app/test/test_infra/goldens/memory_diff_empty1.png b/packages/devtools_app/test/test_infra/goldens/memory_diff_empty1.png index 869ff8e2767845a4486f68563a4b0d70dda61100..9b618a3ee366b124b058be01be85130a1c5d3bba 100644 GIT binary patch literal 22437 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 literal 21479 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 literal 21479 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 J#7iDO{U4CHiLd|w delta 4302 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 K!y*IcpZ*I?;b21m delta 10479 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 L9IQ!J-aq{(_2y6v diff --git a/packages/devtools_app/test/test_infra/goldens/memory_diff_snapshot_scene_diff.png b/packages/devtools_app/test/test_infra/goldens/memory_diff_snapshot_scene_diff.png index b34779c27ded081fa298fd75c2de8b8ce30f1826..d2cc323afcc120af3c5c42c2eea7dcf8a789bad9 100644 GIT binary patch delta 12395 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 K!y*IcpZ*I?;b21m delta 10479 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 L9IQ!J-aq{(_2y6v diff --git a/packages/devtools_app/test/test_infra/goldens/memory_diff_snapshot_showAll_diff.png b/packages/devtools_app/test/test_infra/goldens/memory_diff_snapshot_showAll_diff.png index b34779c27ded081fa298fd75c2de8b8ce30f1826..d2cc323afcc120af3c5c42c2eea7dcf8a789bad9 100644 GIT binary patch delta 12395 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 K!y*IcpZ*I?;b21m delta 10479 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 L9IQ!J-aq{(_2y6v diff --git a/packages/devtools_app/test/test_infra/goldens/memory_diff_three_snapshots1.png b/packages/devtools_app/test/test_infra/goldens/memory_diff_three_snapshots1.png index 67d1d9f376ff1e228d2a635750d5efbe615f40f3..5f17de55bc4811505575db8284c7fec3527b09b4 100644 GIT binary patch delta 4133 zcmZu!cUY5I)_+k)bQLiJ3?Kt2ILd;8vkIXlh*ES#SPMm3P==xRPJkE2U5E&aP6iPW zqJWe@LWy)zMnD`C7-~pJQ4m6BA|?<*`QA`=XP@UgeFVtR5XB$(0RsSlRQOHnO8~Lw+vyr)$w~066;Z7FVP)}IPCi4RuUMrw8~Du7 zw(z8V#l;gct6uirM&P@S$bTAGyq)D zbe96KPt7N>7f*#74w9fL07yEKn}%Tm!hr{vA*ngZ)Tx4)uOtgsYc)0MWjxFrHOKOI zS337gVWkY^!AzMw5R1o6fp`knBK_s<325}ec%fA?E1`?WqTQ4E=Tu}x$Bdj$T8Dr}UPRqAb5;^O>5qxjdTn*J$bU1AAC zTaOz4!)Sy!zz7~*sQpCNUPq_yS}=8;q>~qk1o?m2(M0=@)e_Bxk2Y><3MRy0!}+27 zAPb8NntnPkf6mY+M7N1r#>^(=jPpcTg$RWjZE6V!G>Tpjgu@oeb+MCjTYi`5I{Z6} z#d>m2_)*l8fD4GMH+8yBh?T{1Y$8il*s`E*+TPSsAyvedPK!>A0zVIy-@2CPOZhx3 zE4eQT(FBt`p7)H4I>!aE_WEYc#INS;@4oAr&y1)@MLB6N#`|!|%N!GO&Yw56B2xkr z?ZnwACqkEymY0qX$ey=`2DvTE9mbhLBTMUWd13r3%$O`X_pf;B*+MZ_J%${RJ@mp%Ym)26K+g<<1)Rf6 z4;($P<#=sd9CCoZioq0WRjSjV|8+5Ml}Vk|N6vb_CI+XAcp2a0xT}JUegS(bc9m@g z(28B|-1$xIZm~X?*PXo3E21=+;}$WPwp7{9YkK6t0VWRzBGqC)J(g`n`qBe6iERYq zh^c>sht@FJy#{s86@AkeoXN!C2FKDFLHQ7eo_$LY*T56hIrmLP;0t&Uu76gp5BO`3 zDk3hTEpdqzNq?a_Ffi2PPL~}wKBK3Yt?OzS*F+a!!4+ilCfn+9#Yl@&Mz+j(tAx47@kv zG2YcP-kFIywk&Gbss7EC9H)=m;G=rgJPXM}rk$r)IFBGilHc?eyKzG|TgQ=RaJU~m zx(MV=dv5{&wi1tT+}ud5?Nsu;zeakwM5bh{kk%L^@9`{0_i5jGtQ}I69OLzM)u`5b zz8~ZUH~D$Em{Br%wn&SKsKVu@=~=%r95Ga@AIC0HCN$3lF!=j~hqP*S}2t$L*q*SBD36|qyRDF$m(3(B`%?<55G8nMBGSN3ihJA|!6B#YmVw7`Qg|2kJWq%aDKddBxFobTp}$C8!8QGi}OS z4GI9Es=R{N-uPj2V{b3}1DSo_(5k4Wx%tb&%UYyrz8YK5exk-*ofbK*jg?eJq&0?kJ%zQk|AjI6Az$p7)`-;4JYRh)6e>7=bJxziOb1rwNio~e7D zo-4JZiU>;ma5{s*7#?GI&iAmo>Gt+wF)TD#Ph1)2bju7~N%l^p)KyoX8{YMkM|%92 z91i2z`ERdGDS#GvL>-37f*+W)@dDwg3siy;OLH>3CQi5TwQL; zZ|_9AkIqMFY81}#jbz3tNR2{=3PEeVV$X87%xb)B*GabqrH`}Fb?WkZ$cY=5t=*fd z)*qV%%8thfa1>XwNT@(VAwMBvp%16{BQ-c_7+bT^+x7x1W~3oGTnh3(ke)Su+P2e% zqzol#mztNxcE?M9Xn7<4f`+ZI=DIRW99-Z1;&N*4!-qo)iTlfkoHJ}o`(`2&TFA!s zRdxiiT+b$z@(fRJK~z-@rCF8U5}4Wr{M=jZbuDyZs;@|gOyssK{~mD1VE{6wW45~0 z)wMa~CJs+|v-c=0bn<;oBE=5KW6jOY)lW+&`rC;)rSJDToLH;%G-hx>4`R<)mhh&tVlb|_jh2VbHSx37CB6~B()?dsDwA9GZ@$TxW z2_EDiqVIj2Z|HSp1nhq4$aE8du$tfoK=K0;a1sOGRk=Ki( z#zFp?Md1;j-)h#?4XYu;isfK%^3re5z5c|iMC|$4mYRC3?2B*NQdXPsE{FlvG_ZH! z-+<-bvOs0<-Mi*K`ys_4`Br31P=f+=bBrRJeLJW~-tsYGFVqWR{;@!@EG43AF?WEpfe(Vg_Xx z9G^vTtM6EuQ+eZyl+~e;TCZz%{)&o<u0ES=f| zjKu5&eNrDE4c){Z$OpTn{pWn6@Ue$5euv~X{`L!F@3wLX9yjfJ0sxBnBgaQRxySQ6 zp88$jEHnKovJ7@19Ow!`)HZvo_5#e5u%-tWk^6=@J+wEDvQ&;E}(xkf_qWC1IPz!&ed)Khb_CLr1 za+4P=28o9pY^^QK(D{Lr;MzEDtr#-`|EEZ@-t)_nY-`m@CmjqwuHgscyGMi>YcOX6&a1%x+*_IX%nXhxu^)eZ&FPPkto)|g{!PRpym@w~sSCXU1@ z0=xVdajin|oH$j&G!n+c)|drjkLvF`zs2NXbAc|RW_@PnPGibsLUn&^O%LwZ#xy8Tuw`R86_PPg@cZ3V;W8RcrjY)Fl{p50RRrhU$rp5 zjqNihY@HW+L;J&4xKZ;?l5IU6Q3dCO^427nMdMebY72~%!a>ad1X=aR*YlF~tCqGF J#7iDO{U4CHiLd|w delta 4302 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 J#7iDO{U4CHiLd|w delta 4302 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 R#$4`