Feature Request: Search widget tree by error chain path
Mantenedores costumam responder em até 2 dias
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 45/100
- Tipo de issue
- Funcionalidade
- Clareza
- Razoavelmente clara
- Status de atividade
- Ativa
- Stack de tecnologia
- dart
- Domínio
- developer-experience, tooling
Direção de pesquisa
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.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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.
- Linguagem predominante
- Dart
- Estrelas
- 1.7k
- Forks
- 407
- Merge médio
- 3d 14h
- PRs com merge (30d)
- 15
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de flutter/devtools
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 73/100
Mantenedores costumam responder em até 2 dias
-
Check for modern web libraries to determine if an app is a web appTalvez já em andamento Um pull request vinculado a esta issue está aberto ou já foi mesclado. AbertaP1 type-code-health
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100
flutter/devtools#9973 · 4 comentários ·
Mantenedores costumam responder em até 2 dias
-
cost: low P2 type-code-health
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
flutter/devtools#9942 · 3 comentários ·
Mantenedores costumam responder em até 2 dias
-
[Inspector V2] Widget properties tab highlight extends past its rounded edgeTalvez livre de novo @theprantadutta assumiu há 160 dias e não há nenhum pull request aberto. Abertacontributions welcome cross-screen inspector-2.0-polish P2
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
flutter/devtools#8936 · 3 comentários ·
Mantenedores costumam responder em até 2 dias
-
cross-screen P3
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
Mantenedores costumam responder em até 2 dias
Todas as issues de flutter/devtools
Issues semelhantes
-
bug
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 65/100
chriskelly/wish-together#36 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
AppFlowy-IO/AppFlowy#9075 ·
-
Paste asks for iOS paste permission because the default context menu ignores SystemContextMenuTalvez já em andamento @dorklein assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
maheshj01/searchfield#267 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 67/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
hajisensai/Fushi#2340 · 2 comentários ·
Mantenedores costumam responder em até 1 dia