2020-02-17 10:12:23 -05:00
|
|
|
#+TITLE: lang/dart
|
|
|
|
#+DATE: February 16, 2020
|
2020-03-16 00:02:16 +03:30
|
|
|
#+SINCE: v3.0.0
|
2020-02-17 10:12:23 -05:00
|
|
|
#+STARTUP: inlineimages nofold
|
|
|
|
|
|
|
|
* Table of Contents :TOC_3:noexport:
|
|
|
|
- [[#description][Description]]
|
|
|
|
- [[#maintainers][Maintainers]]
|
|
|
|
- [[#module-flags][Module Flags]]
|
|
|
|
- [[#plugins][Plugins]]
|
|
|
|
- [[#prerequisites][Prerequisites]]
|
2020-03-16 00:02:16 +03:30
|
|
|
- [[#installing-dart-sdk][Installing Dart SDK]]
|
|
|
|
- [[#installing-flutter-sdk][Installing Flutter SDK]]
|
2020-02-17 10:12:23 -05:00
|
|
|
- [[#features][Features]]
|
|
|
|
- [[#configuration][Configuration]]
|
|
|
|
- [[#dart--flutter][Dart & Flutter]]
|
|
|
|
- [[#android][Android]]
|
|
|
|
- [[#troubleshooting][Troubleshooting]]
|
|
|
|
|
|
|
|
* Description
|
2020-03-16 00:02:16 +03:30
|
|
|
[[https://dart.dev/][Dart]] is a client-optimized language by Google for fast apps on any platform.
|
|
|
|
It is fast and optimized for UI, Famous for the [[https://flutter.io/][Flutter]] framework, also
|
|
|
|
made by Google. Both Flutter and Dart are free and open-source.
|
2020-02-17 10:12:23 -05:00
|
|
|
|
|
|
|
** Maintainers
|
2020-03-16 00:02:16 +03:30
|
|
|
This module has no dedicated maintainers.
|
2020-02-17 10:12:23 -05:00
|
|
|
|
|
|
|
** Module Flags
|
2020-03-16 00:02:16 +03:30
|
|
|
The `dart` module wraps `dart-mode`, with LSP code completion for `.dart` files,
|
|
|
|
syntax highlighting, etc. Included is a `+lsp` flag for enabling LSP features,
|
|
|
|
and a `+flutter` flag for working with Flutter.
|
|
|
|
|
2020-02-17 10:12:23 -05:00
|
|
|
+ =+lsp= Will start LSP automatically in `dart-mode-hook`.
|
|
|
|
+ =+flutter= Adds the `flutter` package and some settings for Flutter development.
|
|
|
|
|
|
|
|
** Plugins
|
|
|
|
+ [[https://github.com/bradyt/dart-mode][dart-mode]]
|
|
|
|
+ [[https://github.com/amake/flutter.el][flutter.el]]
|
|
|
|
|
|
|
|
* Prerequisites
|
|
|
|
Make sure that the Dart SDK is on your `PATH`, and if using Flutter, make sure
|
|
|
|
the Flutter binary is on your `PATH` as well.
|
|
|
|
|
2020-03-16 00:02:16 +03:30
|
|
|
** Installing Dart SDK
|
|
|
|
Before starting note that Flutter SDK will have a version of Dart. Therefore,
|
|
|
|
there is no need to install Dart. If you want to use Flutter just see
|
|
|
|
the next part.
|
|
|
|
|
|
|
|
The stable version of the SDK is in most major distributions repositories.
|
|
|
|
If you find it necessary to install any other version or build from source,
|
|
|
|
please refer to the official website at: https://dart.dev/get-dart
|
|
|
|
|
|
|
|
On Debian (also Ubuntu and its derivations), you can simply install the SDK via:
|
|
|
|
#+BEGIN_SRC shell
|
|
|
|
sudo apt-get install dart
|
|
|
|
#+END_SRC
|
|
|
|
Or on Arch (and its derivations, like Manjaro), you can install it using:
|
|
|
|
#+BEGIN_SRC shell
|
|
|
|
sudo pacman -S dart
|
|
|
|
#+END_SRC
|
|
|
|
And finally in MacOS, the [[https://brew.sh/][Homebrew]] can come in handy. If you have it installed
|
|
|
|
just run:
|
|
|
|
#+BEGIN_SRC shell
|
|
|
|
brew tap dart-lang/dart
|
|
|
|
brew install dart#+END_SRC
|
|
|
|
#+END_SRC
|
|
|
|
|
|
|
|
** Installing Flutter SDK
|
|
|
|
Due to complications with permissions, it is suggested not to use AUR or any
|
|
|
|
automatic installation tools for Flutter SDK.
|
|
|
|
|
|
|
|
On any system just run the following commands to install Flutter, once you have
|
|
|
|
met dependencies named on [[https://flutter.dev/docs/get-started/install/][the site]]:
|
|
|
|
#+BEGIN_SRC shell
|
|
|
|
git clone https://github.com/flutter/flutter --branch stable # to download Flutter
|
|
|
|
export PATH="$PATH:$(pwd)/flutter/bin" # to add it to PATH
|
|
|
|
flutter doctor # for Dependency check and further instructions
|
|
|
|
#+END_SRC
|
|
|
|
|
2020-02-17 10:12:23 -05:00
|
|
|
* Features
|
|
|
|
+ Syntax highlighting and formatting for `.dart` files provided by LSP
|
|
|
|
+ Emacs functions for running and debugging Flutter projects
|
|
|
|
|
|
|
|
* Configuration
|
|
|
|
** Dart & Flutter
|
|
|
|
On Linux, the installers for Dart and Flutter use the `/opt` directory, and this
|
|
|
|
module assumes that. However, you may set `lsp-dart-sdk-dir` to your Dart
|
|
|
|
install directory, if it differs, to make sure LSP can find the language server
|
|
|
|
included with the Dart SDK.
|
|
|
|
|
|
|
|
Alternatively, these variables shouldn't be necessary if you just include Dart
|
|
|
|
and Flutter on your `PATH` variable.
|
|
|
|
** Android
|
|
|
|
You will also need to setup your system for Android development if you intend to
|
|
|
|
use Flutter to develop mobile applications. Refer to your distributions package
|
|
|
|
manager for details. In most distributions the `/opt/android-sdk` directory is
|
|
|
|
used, and you might have to change some permissions in this directory since it's
|
|
|
|
owned by root. The [[https://wiki.archlinux.org/index.php/Android][Arch Linux wiki has a great guide on this here.]]
|
|
|
|
|
|
|
|
* Troubleshooting
|
|
|
|
See the configuration section for information on the binaries for Dart and
|
|
|
|
Flutter. On new installs to the `/opt` directory, you will likely need to edit
|
|
|
|
the permissions of the `/opt/dart-sdk` and `/opt/flutter` directories (not to
|
|
|
|
mention the Android SDK, as discussed above).
|