Dart Code extends VS Code with support for the Dart programming language, and provides tools for effectively editing, refactoring, running, and reloading Flutter mobile apps, and AngularDart web apps.
Dart Code can be installed from the Visual Studio Code Marketplace. Open VS Code Quick Open (Ctrl+P
) and paste the following and press enter:
ext install dart-code
- Debug Dart command line apps
- Debug Flutter mobile apps
- Support for flutter
hot reload
(use the debuggerRestart
button) - Select from multiple devices for Flutter debugging (select from the status bar)
- Support for debugging "just my code" or SDK/libraries too (
dart.debugSdkLibraries
anddart.debugExternalLibraries
) - Automatically finds Dart and Flutter SDKs from
PATH
or workspace folders - Notification of new stable Dart SDK releases
- Syntax highlighting
- Code completion
- Snippets
- Realtime errors/warnings/TODOs reported in problems window and with squiggles
- Hovers/tooltip information
- Go to Definition
- Find References
- Code fixes/lightbulb
- Type hierarchy
- Rename refactoring
- Organize directives
- Sort members
- Flutter Doctor command
- Format document
- Support for format-on-save (
editor.formatOnSave
) - Support for format-on-type (
editor.formatOnType
) - Workspace-wide symbol search
- Automatic closing braces/quotes
- Document symbol list/search with highlighting
- Generation of analysis error reports for easy reporting to the Dart team
pub get
andpub upgrade
commands (and flutter equivilents)- Automatically run
pub get
whenpubspec.yaml
is saved - Supports strong mode and linting (configured in
analysis_options.yaml
or.analysis_options
) - Other references to symbol under cursor are highlighted
dart.allowAnalytics
: Whether to send analytics such as startup timings, frequency of use of features and analysis server crashes. Defaults totrue
.dart.closingLabels
: Whether to show annotations against constructor, method invocations and lists that span multiple lines. Defaults totrue
.dart.checkForSdkUpdates
: Whether to check you are using the latest version of the Dart SDK at startup. Defaults totrue
.dart.debugSdkLibraries
: Whether SDK libraries should be marked as debuggable. Defaults tofalse
.dart.debugExternalLibraries
: Whether libraries should be marked as debuggable. Defaults tofalse
.dart.flutterHotReloadOnSave
: Whether to automatically send a 'hot reload' request during a Flutter debug session when saving files. Defaults totrue
.dart.flutterSdkPath
: Override the detected Flutter SDK to allow you to run from another location.dart.insertArgumentPlaceholders
: Whether to insert argument placeholders during code completions. Defaults totrue
.dart.lineLength
: The maximum length of a line of code. This is used by the document formatter. Defaults to80
.dart.pubAdditionalArgs
: Additional args to pass topub get
andpub upgrade
commands (eg.--packages-dir
).dart.runPubGetOnPubspecChanges
: Whether to automatically runpub get
whenever pubspec.yaml is saved. Defaults totrue
.dart.promptToFetchPackages
: Whether to prompt to fetch packages when opening a project with out of date packages. Defaults totrue
.dart.sdkPath
: If the Dart SDK is not automatically found on your machine from yourPATH
you can enter the path to it here.dart.sdkPaths
: If you often switch between multiple Dart SDKs, setting this option to an array of Dart SDK folders or folders that contain multiple Dart SDKs in sub-folders will allow fast switching by clicking the Dart SDK version in the status bar.dart.showLintNames
: Whether to show the names of linter rules in the problems panel to make it easier to// ignore:
.dart.showTodos
: Whether to show TODOs in the Problems list. Defaults totrue
.
This extension reports some basic events and timings to help inform development decisions, such as:
- Extension load and analysis times
- Whether you have disabled some settings (such as showing TODOs in Problems Window or Closing Labels)
- Frequency of use of features like Hot Reload, Full Restart and Open Observatory
- Crashes in the Dart analysis server
These events will include your platform (Win/Linux/Mac) and also extension/SDK version numbers.
This can be disabled via the dart.allowAnalytics
setting.
For full release notes, see the changelog.