138 lines
5 KiB
Org Mode
138 lines
5 KiB
Org Mode
#+title: :lang dart
|
|
#+subtitle: Paint ui and not much else
|
|
#+created: February 15, 2020
|
|
#+since: 21.12.0 (#2729)
|
|
|
|
* Description :unfold:
|
|
[[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.
|
|
|
|
This module wraps ~dart-mode~, with [[https://microsoft.github.io/language-server-protocol/][LSP]] features like code completion for
|
|
=.dart= files, syntax highlighting, debugging, closing labels, etc.
|
|
|
|
** Maintainers
|
|
- [[doom-user:][@ericdallo]]
|
|
|
|
[[doom-contrib-maintainer:][Become a maintainer?]]
|
|
|
|
** Module flags
|
|
- +flutter ::
|
|
Enable ~flutter~ integration and some sane defaults for Flutter development
|
|
along with ~hover~ for desktop development.
|
|
- +lsp ::
|
|
Enable LSP support for ~dart-mode~. Requires [[doom-module::tools lsp]] and a langserver
|
|
(supports flutter).
|
|
|
|
** Packages
|
|
- [[doom-package:dart-mode]]
|
|
- [[doom-package:flutter.el]]
|
|
- [[doom-package:hover.el]]
|
|
|
|
** Hacks
|
|
/No hacks documented for this module./
|
|
|
|
** TODO Changelog
|
|
# This section will be machine generated. Don't edit it by hand.
|
|
/This module does not have a changelog yet./
|
|
|
|
* Installation
|
|
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
|
|
|
|
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.
|
|
|
|
** 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):*
|
|
#+begin_src sh
|
|
apt-get install dart
|
|
#+end_src
|
|
- *On Arch Linux (and derivations like Manjaro):*
|
|
#+begin_src sh
|
|
pacman -S dart
|
|
#+end_src
|
|
- *On macOS*:
|
|
#+begin_src sh
|
|
brew tap dart-lang/dart
|
|
brew install dart
|
|
#+end_src
|
|
- *On NixOS*:
|
|
#+begin_src sh
|
|
nix-env -iA nixpkgs.dart
|
|
#+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 sh
|
|
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
|
|
|
|
* TODO Usage
|
|
#+begin_quote
|
|
/This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
|
|
#+end_quote
|
|
|
|
- Syntax highlighting and formatting for ~.dart~ files provided by LSP or [[doom-module::editor format]].
|
|
- Auto import.
|
|
- Widget guide lines for Flutter.
|
|
- Closing labels for constructors.
|
|
- Run tests interactively.
|
|
- Outline support via [[doom-package:lsp-treemacs]].
|
|
- Emacs functions for running and debugging Flutter projects.
|
|
|
|
* TODO Configuration
|
|
#+begin_quote
|
|
/This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
|
|
#+end_quote
|
|
|
|
** 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 and ~flutter-sdk-path~ to you flutter SDK folder, 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.]]
|
|
|
|
** Flutter mobile development on desktop
|
|
[[https://github.com/go-flutter-desktop/go-flutter][Hover]] is an application that can run Flutter mobile apps on your desktop, this
|
|
makes the mobile development a lot easier without the need to setup an Android
|
|
emulator.
|
|
|
|
* Troubleshooting
|
|
[[doom-report:][Report an issue?]]
|
|
|
|
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).
|
|
|
|
* Frequently asked questions
|
|
/This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]]
|
|
|
|
* TODO Appendix
|
|
#+begin_quote
|
|
This module has no appendix yet. [[doom-contrib-module:][Write one?]]
|
|
#+end_quote
|