Feature Request: Search widget tree by error chain path
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 45/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- dart
- Lĩnh vực
- developer-experience, tooling
Hướng nghiên cứu
Start with the Inspector's existing search bar and widget-tree search behavior. Trace how a single widget name is matched, then determine how the tree can support ancestor-chain parsing with ← or ◂ separators and partial matching. Done means the example chain locates the matching node or nodes, highlights them, and scrolls the Inspector to the result.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
When a layout error occurs (e.g., RenderFlex overflowed), Flutter prints a widget ancestor chain like:
SizedBox ← Flexible ← Stack ← Row ← Padding ← DecoratedBox ← ConstrainedBox ← Container
Currently, there is no way to paste this chain into DevTools to locate the exact widget node in the Inspector tree. The existing search only matches a single widget name, which returns dozens of results for common widgets like SizedBox or Padding.
Proposed Solution
Add a "Search by widget chain" mode in the Inspector's search bar that:
Accepts a widget ancestor chain (using ← or ◂ as separators, matching Flutter's error output format)
Walks the widget tree and finds nodes whose ancestor path matches the given chain
Highlights and scrolls to the matching node(s)
Example
Given this error output:
SizedBox ← Flexible ← Stack ← Row
The search would find SizedBox nodes that have Flexible as parent, then Stack, then Row — and jump to the matching location in the tree.
Why This Is Useful
Direct error-to-inspector workflow: Copy the chain from the error console → paste into DevTools → land on the exact widget. No manual tree navigation needed.
Eliminates ambiguity: Searching for SizedBox alone may return 50+ results. The chain narrows it to the exact instance.
Partial matching: The chain from the error is often a subset of the full tree. The algorithm should support subsequence matching (the chain nodes appear in order but not necessarily adjacent in the full tree).
Additional Context
The widget chain format is already standardized in Flutter's error output, so no new format needs to be invented.
This could be a separate search mode (e.g., toggled by a button next to the search bar, or auto-detected when ← is present in the query).
The chain in errors sometimes includes RenderObject names — the search could optionally strip or ignore those.
Contribution
I'm interested in implementing this feature. Happy to be assigned and submit a PR if the team approves the approach.
- Ngôn ngữ chính
- Dart
- Star
- 1.7k
- Fork
- 405
- Merge trung bình
- 4 ngày 21 giờ
- Pull request đã merge (30 ngày)
- 15
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của flutter/devtools
-
cleanup P1
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
-
`dcm analyze` false positives Đang mởa: quality cost: low P2
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
-
contributions welcome cross-screen inspector-2.0-polish P2
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
-
Support removing storage keys Đang mởcross-screen P3
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
-
documentation good first issue P2
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
Tất cả issue của flutter/devtools
Issue tương tự
-
[Bug]: New version of nm package Đang mởbug triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
fluttercommunity/plus_plugins#3979 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
flutter-webrtc/flutter-webrtc#2206 ·
-
from.page-issue
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
-
enhancement UI: Material
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
Notsfsssf/pixez-flutter#1360 ·
-
triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100