Skip to content

Open embedded DevTools Inspector to error-causing widget for Flutter render overflow errors #5198

Closed

Description

@kenzieschmoll

As of flutter/flutter#74251, deep links to the inspector are printed in error messages for render overflow errors. The structured error for this will contain a diagnostics node of type DevToolsDeepLinkProperty (the diagnostics node naming is in progress flutter/flutter#74455). Right now the diagnostics node looks like:

{
	"description": "To inspect this widget in Flutter DevTools, visit: http://127.0.0.1:9100/#/inspector?uri=http%3A%2F%2F127.0.0.1%3A53813%2FiJkJsuFOUyY%3D%2F&inspectorRef=inspector-0",
	"type": "DiagnosticsProperty<void>",
	"name": "",
	"showName": false,
	"style": "singleLine",
	"allowNameWrap": true,
	"objectId": "inspector-12",
	"valueId": null,
	"properties": [],
	"children": [],
	"missingIfNull": false,
	"propertyType": "void",
	"defaultLevel": "info",
	"value": null
},

IntelliJ should

  1. upon receiving an error like this, show a prompt that warns the user that something went wrong and gives them a button to inspect the error-causing widget in the embedded DevTools inspector.
  2. take over the rendering of this diagnostics node in the console. We don't want a link in the console that will take the user to the chrome version of DevTools at the same time that we show a prompt that will take the user to the embedded version of DevTools.
  3. Generally, show the link in the console as is if the user is not opted into embedded DevTools, and do not show the link in the console if we are using the prompt

We need an MVP of this by end of next week, if possible (for demo recording purposes). Ideally to be included in the release next week.

Partner issue in VS Code: Dart-Code/Dart-Code#3088

Some edge cases we should complete as follow ups:

  • What if there are multiple errors at once? Do we collapse the notifications? Always show the last?
  • Provide users with an option "Don't show me messages like these" or similar. If the user does this, we should revert back to displaying the deep link in the console.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions