dart
A Dart plugin for Atom.
dart
is a full-featured Dart development plugin for Atom. It supports features like auto-discovery of the Dart SDK, displaying errors and warnings as you type, code completion, refactoring capabilities, and integration with Pub and other tools.
Install
Installing
The plugin should auto-detect the Dart SDK location. If not, you can set it manually in the plugin configuration page (Preferences > Packages > dart
).
Packages we recommend
synced-sidebar
- this package synchronises the selection in the file view with the active text editor.
Packages to avoid
We do not recommend using both emmet and the dart package together. Editing large .dart files will be slow if you have emmet installed. You can track the issue here.
Getting Started
Using commands
Much of Atom’s functionality is surfaced via named commands. You can see all the available commands by hitting shift-cmd-p
/ ctrl-shift-p
. You can execute a command directly by searching for it and selecting it in the command palette. Many commands can also be accessed using associated key bindings.
Setting up and configuring
To open the settings for Atom, hit cmd-,
/ ctrl-,
or select the Atom > Preferences…
menu item. From here you can configure general text editor settings, customize key bindings, customize the theme and look of Atom, and adjust settings for various Atom packages, including the dart
package.
The dart
plugin will attempt to auto-locate the Dart SDK. If it fails, you can adjust your operating system’s PATH
settings and manually run the SDK auto-locate command ('auto locate sdk'
). Or, you can configure the SDK’s path in dart
settings section.
In addition, the autocomplete-plus
plugin has settings that are useful to customize. This plugin controls the UI of the code completion popup. From its preference page you can control how frequently autocomplete comes up, which keys invoke it, and which keys choose from selections.
Another good setting to toggle is the tabs
plugin’s Use Preview Tabs
setting. If you check that setting, files first open in a preview mode. Their tab will get re-used by the next file to open, unless you make an edit in the file. This is a super handy option to let you explore a source base without getting a proliferation of open tabs.
Opening Dart projects
To open a project, use the 'add project folder'
command, or select the File > Add Project Folder…
menu item. When a project is added to Atom, the dart
plugin will recursively scan through the project, two directory levels deep, looking for Dart projects. These are directories with pubspec.yaml
or .packages
files.
When there are any Dart projects open in Atom, the dart
plugin will automatically start the Dart analysis server. This is an external process that provides functionality like analyzing code for errors and warnings, providing code completion information, and various code searching and refactoring tools. This process is automatically managed by the dart
plugin.
If the plugin is not able to identify your Dart projects, you can manually tell it to treat a directory as a Dart project. Right click on the top-level directory and choose the Mark as a Dart Project
option, or run the Atom command 'mark as dart project'
. This will create an .analysis_options
file in the directory; the dart
plugin will use that as a hint to treat the directory as a Dart project, even without a pubspec.yaml
or .packages
file present.
Opening Dart files
Currently, opening individual Dart files - so that their containing directory is not open in Atom - is not well supported. You will get some Dart specific functionality, like syntax highlighting, but you will not get much of the rest of it, including things like errors and warnings, hyper-link navigation, and code completion. We’re investigating ways to better support opening individual Dart files in Atom; stay tuned.
Working with Dart projects
There are various tools and commands available to help you work with Dart projects. The various pub
commands are available as context menu items in the files view. The commands are also available from the command palette (shift-cmd-p
/ ctrl-shift-p
). So, to run pub get
on a project, select the pubspec.yaml
file in the files view, right click, and select the Pub Get
menu item. Alternatively, whenever a Dart file is open, you can run the pub get
Atom command, and pub will be run for the associated Dart project.
Other Pub commands which are available are pub activate
, to install various Dart tools. pub global run
, which lets you execute a previously installed pub application. And pub run
, which lets you execute a pub app installed locally to that project (referenced from the pubspec).
Working with code
The dart
plugin shows errors and warnings in your code as you type. These are displayed in a problems view at the bottom of Atom, in-line in the code, and in a summary in the status line.
You can toggle the problems view on and off by clicking on the status line summary, or by configuring it in the settings page.
Clicking on an issue in the problems view will take you to that source code with the problem. For some issues, the plugin can provide automated fixes - so called ‘quick fixes’. When at a source location with errors, hit ctrl-1
; if there are any available fixes a menu with available options will be shown.
When looking at source code, you can get more information about a class, method, or variable by placing the cursor on that symbol and hitting F1
. The dartdoc information for that element will be displayed.
Command or option-clicking on an element will jump to its definition. To jump back, hit cmd-option-up
(or ctrl-alt-up
).
You can toggle on and off a structural outline view of the current Dart file by executing the command 'toggle outline view'
.
In order to find all the places where an element is referenced, right click on that element and select the menu item Find References
. You can also use the key binding ctrl-f4
. The results will be displayed in a view on the right; clicking on a result will jump to the associated source location. The results view can be closed via the close button (or by hitting the escape key twice).
To view the type hierarchy of a class, hit F4
or right click on the class and choose Type Hierarchy
.
In order to toggle the errors view on and off, you can click on the error summary in the status line (normally showing no errors
).
Refactorings and code modifications
In addition to quick fixes, the plugin can also perform some automated code transformations. These include a rename refactoring, available from the context menu or via option-shift-r
/ alt-shift-r
. Also, the plugin has the ability to automatically organize import directives, available by the 'organize directives'
command or option-cmd-o
/ ctrl-alt-o
. Additionally, you can format a Dart source code using the 'dart format'
command or the option-cmd-b
/ ctrl-alt-b
key binding.
Diagnosing analysis server issues
To view detailed info about what the analysis server is doing, run the 'analysis server status'
command. This will let you know if the analysis server is currently running, allow you to terminate and restart the server, and let you re-analyze the Dart source for the current projects.
This status dialog can be useful for diagnosing issues with the analysis server, like analysis not terminating, or excessive CPU or memory consumption.
For developers working on the plugin itself, or trying to resolve analysis server issues, you can enable a setting to start the analysis server with debug flags. This will expose some additional options in the analysis server status dialog; only a very small number of developers should need to enable this setting.
Feedback
Feedback welcome! You can file bugs and feature requests at github.com/dart-atom/dart/issues.
The source code for this plugin can be found at github.com/dart-atom/dart.