|  | # 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" |