For instructions on installing the Dart or Flutter extensions, go here.
VS Code 1.24 includes an Outline preview feature. This version improves the data provided to Code to allow rendering the symbol data in a tree.
Getters in Debug Views
Debugger views such as Variables, Watch and tooltips will now include getters as well as fields.
This is enabled by default but since getters could have side-effects you can disable this per-projects using the
dart.evaluateGettersInDebugViews workspace setting.
A new Dart: Complete Statement command has been added. This command will attempt to finish the current line you’re editing by adding things like closing brackets and semicolons before moving the cursor to the next line. You can bind this command to a key by running the
Open Keyboard Shortcuts command in the command palette.
Daemon Progress Notifications
After installing a Flutter update via
flutter upgrade or switching channel with
flutter channel the first invocation of Flutter will download dependencies and build tools. If this hadn’t happened before opening VS Code then this would happen quietly in the background when Dart Code invoked the device daemon which resulted in unexpected behaviour (for example no devices being detected or delays in launching). Now when this happens, Dart Code will show notifications of what’s happening in the background so it’s clear why devices haven’t been detected (yet).
Improved Termination of Processes
A number of issues with terminating Dart and Flutter processes have been resolved, including:
- Clicking the Stop Debugging button during a Flutter app build should cancel more quickly and no longer sometimes still result in the app running
flutter testprocesses should not persist after clicking the Stop button
flutter daemonprocess should not persist after closing VS Code
Some of these fixes rely on support from the Flutter tools which means they only work when using a very recent Flutter SDK. Flutter’s
master channel already has these changes but it may take a little longer to filter through to the
Simplified Diagnostic Log Capturing
A new command has been added to simplify collecting logs when reproducing/reporting issues in Dart Code/Flutter/Dart. It’s named
Dart: Capture Logs in the command palette.
You’ll be prompted to select a location/filename for the log file and then a notification will appear informing you that logs are being captured.
When you click
Stop Logging the resulting log file will be opened in the editor for you to review before you attach to a GitHub issue. Currently this file will include all types of logging (Analysis Server, Observatory, Flutter Run, Flutter Test, Flutter Daemon) so you should start it as close to reproducing your issue as possible. The option to select which log sources to capture may be added in a future update.
Please connect a device or select an emulatorprompt should no longer show if you connected your device too quickly after pressing
- Saving a file while a Flutter app is launching will no longer result in a Hot Reload failure message
- Saving non-Dart files while debugging a Flutter app will no longer trigger a Hot Reload
- Modifying settings that cause a silent extension reload (such as log files) will no longer stop Hot Reload from working
- Exception text shown in the Debug Console will now be truncated at 6 lines instead of 100 characters
- Exception messages can now be copied from the Variables and Watch debug views
- Non-debuggable stack frames will now be rendered greyed in the call stack
- The workspace symbol list is now truncated to 500 items to avoid some performance issues in VS Code rendering thousands of items
- Empty files will no longer result in errors from the document symbol provider
- The selected document/cursor position after a refactor that edits multiple files should now be more appropriate
- Some additional (minor) memory leaks have been fixed
- Windows drive letter normalization is now enabled by default (and can be disabled with
- Settings for log files now support relatives paths
- Folders for log files will now be created automatically if they don’t exist