For instructions on installing the Dart or Flutter extensions, go here.
v2.14.0 2018-06-14
Outline View
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.
Complete Statement
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 run
andflutter test
processes should not persist after clicking the Stop buttonflutter daemon
process 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 dev
and beta
channels.
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.
Other Changes
- The
Please connect a device or select an emulator
prompt should no longer show if you connected your device too quickly after pressingF5
- 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
dart.normalizeWindowsDriveLetters
) - Settings for log files now support relatives paths
- Folders for log files will now be created automatically if they don’t exist
Upstream Issues
Some feature requests and fixes require new features and fixes in upstream projects like VS Code and LSP which use counts of 👍s on those issues to help gauge demand. The Dart-Code website now lists some of the most significant upstream issues with a description of the feature/fix they would enable. Please consider reviewing this list and adding your 👍 to any GitHub issues relevant to features you’d like to see!