Dart Code
Dart & Flutter support for Visual Studio Code Discord Chat Follow on Twitter Contribute to Dart Code

Upstream Issues

Many feature requests for Dart-Code require some implementation in upstream repositories such as VS Code or LSP. Some of these projects use the count of 👍’s as a way to gauge demand (and in the case of VS Code require a certain number to avoid being closed). Below are a list of some features and links to upstream issues they depend on. Please consider adding 👍’s on the upstream issues for any features you’d like to see in Dart-Code!

New items are always added to the top of the list.

Editor Insets


Editor Insets allow inserting content between lines in the editor. This might allow improved DartDoc previews, for example showing images and/or videos directly in the editor that are included in the markdown content.

Tooltips on Type Hierarchy tree nodes


The upcoming Type Hierarchy feature shows limited information about types in the tree. It would be useful to show additional information such as the package a type is from, or the relationship between the nodes (extends, implements, with, on) but currently tooltips cannot be customised and just repeat the node label.

A separate TODOs pane to keep TODO comments out of the Problems list


Currently, TODO comments show up in the Problems list because there’s nowhere else to show them. In projects with lots of TODOs (perhaps from other developers) this makes the Problems list hard to use. The only option is to disable TODOs ("dart.showTodos": false). It would be better if they could be shown seperately instead.

Better Rendering for Flutter UI Guides


The current implementation of Flutter UI Guides has many display issues because VS Code currently has no good APIs for drawing lines between code.

Bring Imports with Copy/Pasted Code


This would allow copy/pasting code between files without having another step to add the relevant imports to make the code valid.

Add Command to Outline Nodes


This would allow adding some actions (such as “Move to New File”) to the Outline tree.

Support Refactors that Require User Input


Currently LSP has no support for servers to ask for user input (for example, for input when refactoring) and requires a lot of custom messages.

Automatically Set PATH in Terminals to Match the Current SDK


It should be possible to set the PATH env in the built-in terminal to match the Dart/Flutter SDK selected in VS Code, but currently VS Code’s support for setting PATH does not work correctly on macOS.

Allow Docking Documentation in a Seperate Panel


Flutter’s very detailed dartdocs can often result in hovers obscuring the code you’re trying to read. Being able to doc the documentation for hovers/code completion would avoid this.

Improve Handling of Save All for Triggering Hot Reloads


VS Code does not currently expose a Save All event, so any events that should run after save (such as hot reload) need to perform their own debouncing, which introduces a delay when saving a single file.

Diagnostics Appear at the Very Bottom of Long Srollable Hovers


When hovering over some squiggled code to read the diagnostic message, you may need to scroll down past a large amount of documentation because errors are rendered at the very bottom and not always visible.

Signature Help Popup is Not Syntax Highlighted


Signature Help (Parameter Hints) can be quite long in Flutter code and currently are rendered all white, with no ability to syntax highlight.

Improve Support for Commit Characters in Code Completion


It should be possible to use ( to complete function calls and automatically insert parens but currently this does not play nicely with inserting argument placeholders.

Allow Prominent Progress Notifications from Debug Adapters


Showing large progress notifications for actions like Hot Restart currently requires custom messages instead of standard DAP progress messages.

Support Palettes of Named Colors in Color Picker


Using the editor color picker currently converts any named Flutter colors to RGB values. Being able to provide a palette of colors to the color picker would make it easier to stick to a define theme of named colors.

Support Custom Types of Inlay Hints


This would allow Closing Labels to be moved to a standard VS Code/LSP API instead of relying on custom messages.

Markdown in Diagnostic Descriptions


This would allow improved formatting of diagnostic message (for example lint examples).

Allow Stepping by Line While Debugging


Although the debug adapter protocol has support for stepping by line or instruction, VS Code does not expose any UI to select this.

Type-Aware Code Completion


Currently VS Code ranks code completions as you type based on text heuristics with no knowledge of types which often puts less relevant items at the top. Being able to quickly filter completion to only things that are the right type would make it much easier to find the right symbols.

Snippet Markup in Quick-Fix/Refactor Edits


Supporting snippet markup in Code Actions makes it easier to set things like cursor position during quick fixes/refactors. Currently Dart-Code is using non-standard middleware and a proposal from the Rust analyzer team in order to set selections correctly.

Syntax Highlighting in Code Completion Details


A lack of guidance about the use of detail/documentation makes it difficult to provide syntax-highlighted details on code completion items.

Code Folding Hides Closing Braces


VS Code’s code folding currently only suports hiding entire lines, meaning closing braces disappear inside the fold instead of showing as void method { ... }.

Support Searching “ClassName.fieldName” in Workspace Symbols


Searching for ClassName.fieldName does not currently work because VS Code only searches the final label ("fieldName") and not the containerName ("className").

Show “package:foo/foo.dart” in Editor Tab Labels


This would make it easier to tell which packages open files belong to.