blob: b238fda7fd0609dcc0726942a6530825f5bef808 [file] [log] [blame] [view]
# IDEs for Dart in Fuchsia
### Dart SDK
A prebuilt Dart SDK is available for IDE consumption at:
`prebuilt/third_party/dart/{linux|mac|windows}-x64/bin/dart`.
## Visual Studio Code
1. Download and install [Visual Studio Code](https://code.visualstudio.com/)
1. (Optional) Setup VS Code to launch from the command line
* For macOS: To allow running VS Code from the terminal using the `code`
command, see
[Launching from the command line](https://code.visualstudio.com/docs/setup/mac#_launching-from-the-command-line).
* For Linux and Windows: This should already be done as part of the
installation
1. Install the following extensions:
* [Dart Code](https://marketplace.visualstudio.com/items?itemName=Dart-Code.dart-code):
Support for programming in Dart. It should automatically find the dart-sdk in the Fuchsia tree.
* [FIDL language support](https://marketplace.visualstudio.com/items?itemName=fuchsia-authors.language-fidl):
Syntax highlighting support for Fuchsia's FIDL files
* [GN](https://marketplace.visualstudio.com/items?itemName=npclaudiu.vscode-gn):
Syntax highlighting for GN build files
* Optional but helpful git extensions:
* [Git Blame](https://marketplace.visualstudio.com/items?itemName=waderyan.gitblame):
See git blame information in the status bar
* [Git History](https://marketplace.visualstudio.com/items?itemName=donjayamanne.githistory):
View git log, file history, etc.
1. To improve your productivity for Dart in VS Code, you can set some useful
settings.
To add the settings:
1. Open your user settings (Ctrl+,)
1. Click the rotating page icon in the top left (or right for macOS) corner
1. Add:
Note: This configuration file is a JSON file. Make sure that you properly use
curly braces.
* Auto-format your files when you save:
```json
"editor.formatOnSave": true,
```
* Check for new SDK updates for Fuchsia:
```json
"dart.checkForSdkUpdates": false,
```
* Configure VS Code to use the bundled Dart SDK
```json
"dart.sdkPath": "/path/to/fuchsia/prebuilt/third_party/dart/linux-x64/bin/dart",
```
Note: For macOS, replace `linux-x64` with `mac-x64` in your supplied value for
`dart.sdkPath`.
* Don't run pub with fuchsia.
```json
"dart.runPubGetOnPubspecChanges": false,
```
* Configure an 80 character ruler and a tab size of two spaces
```json
"[dart]": {
"editor.rulers": [80],
"editor.tabSize": 2
},
```
## CLion/IntelliJ
* Add the Dart plugin by going to `Settings > Plugins` then searching for
Dart language support.
* Set the Dart path in `Settings > Languages & Frameworks > Dart` by
* Check __Enable Dart support for the project <project name>.__
* Enter the Dart SDK path "${FUCHSIA_SRC}/third_party/dart/tools/sdks/dart-sdk"
## Troubleshooting
If you find that the IDE is unable to find imports (red squigglies) that are
already correctly in your BUILD.gn dependencies, this is usually a sign that
Dart analysis is not working properly in your IDE.
When this happens, try the following:
### Open only the project directory you are working on
E.g. only open `/topaz/shell/ermine` instead of `/topaz`. The analyzer can have
issues with really large source trees.
### Remove pub output
1. Delete the `.packages` and `pubspec.lock` files in your project (if
present).
1. Ensure that `"dart.runPubGetOnPubspecChanges": false,` is present in your
VS Code preferences to prevent the files from reappearing whenever a
`pubspec.yaml` file is edited.
1. Reload VS Code to restart the Dart analyzer.
1. Press Ctrl+Shift+P to open the VS Code Command Palette
1. Select "Reload Window"
### Rebuild
Delete `/out` from your Fuchsia directory and rebuild. Dart FIDL bindings are
build-generated and may be absent.
### Ensure that your build contains all packages
Any Dart code from packages not included in your build will not be available to
the analyzer, so ensure your build configuration (`fx set`) includes all
the packages you need (the `--with` flag can be helpful.)
For example, to view the `echo_client_async` example Dart code in VS Code, add
`--with examples/fidl/dart/echo_client_async_dart` to your `fx set`
command. Then, rebuild with `fx build examples/fidl/dart/echo_client_async_dart`.
### Reload the Dart Analyzer
Manually reloading the analyzer is often needed after modifying FIDLs.
#### VS Code
1. Open the Command Palette (Ctrl+Shift+P)
1. Enter and select "Reload Window"
This also restarts the Dart analyzer.
#### IntelliJ
1. Open Find Action (Ctrl+Shift+A)
1. Enter and select "Restart Dart Analysis Server"
### Check that the correct language has been detected for the current file type
1. On VS Code use Ctrl+Shift+P then type "Change Language Mode" and ensure it is set to "Auto Detect".
1. If this doesn't fix the issue you can try to manually fix via Ctrl+Shift+P and "Configure file association for .dart"
### Manually specifying the Dart sdk path
#### VS Code
_See the recommended VS Code options above._
#### IntelliJ
1. Open Settings
1. Under *Languages & Frameworks* > *Dart*, enter "[YOUR FUCHSIA DIR LOCATION]/prebuilt/third_party/dart/{mac,linux}-x64"