doomemacs/modules/lang/dart
Henrik Lissner ba8bf1ab9f
bump: :lang
Alexander-Miller/company-shell@a77f4de759 -> Alexander-Miller/company-shell@5f959a63a6
Emacs-Kotlin-Mode-Maintainers/kotlin-mode@3e0c34087b -> Emacs-Kotlin-Mode-Maintainers/kotlin-mode@fddd747e5b
FStarLang/fstar-mode.el@c95c2a61a6 -> FStarLang/fstar-mode.el@ab0697b947
Fuco1/sphinx-mode@9d4075c106 -> Fuco1/sphinx-mode@77ca51adf9
Groovy-Emacs-Modes/groovy-emacs-modes@bf732d367b -> Groovy-Emacs-Modes/groovy-emacs-modes@c612ac1e9f
Khady/merlin-eldoc@db7fab1edd -> Khady/merlin-eldoc@bf8edc63d8
OVYA/php-cs-fixer@7e12a1af5d -> OVYA/php-cs-fixer@efe4368d89
ProofGeneral/PG@e1e29acb04 -> ProofGeneral/PG@8416875696
Wilfred/elisp-def@dfca043ec0 -> Wilfred/elisp-def@1d2e88a232
agda/agda@b612cabaae -> agda/agda@bb7603d197
amake/flutter.el@08138f8c95 -> amake/flutter.el@edd3f5eb3f
ananthakumaran/exunit.el@0715c2dc2d -> ananthakumaran/exunit.el@e0a8c2b81f
beancount/beancount-mode@ea8257881b -> beancount/beancount-mode@519bfd868f
bradyt/dart-mode@3bac14200f -> bradyt/dart-mode@9c846769ab
brantou/emacs-go-tag@59b243f2fa -> brantou/emacs-go-tag@33f2059551
cdominik/cdlatex@8e963c6853 -> cdominik/cdlatex@ac024ce293
clojure-emacs/cider@92c1b6de20 -> clojure-emacs/cider@1ed5163433
clojure-emacs/clj-refactor.el@db89b55871 -> clojure-emacs/clj-refactor.el@b5abe655e5
clojure-emacs/clojure-mode@414157c3e5 -> clojure-emacs/clojure-mode@3453cd229b
cpitclaudel/company-coq@a6e349e013 -> cpitclaudel/company-coq@5affe7a96a
crystal-lang-tools/emacs-crystal-mode@96a8058205 -> crystal-lang-tools/emacs-crystal-mode@9bfb9f0f56
davazp/graphql-mode@9740e4027b -> davazp/graphql-mode@1437b79006
diml/utop@bbd9a6ed45 -> diml/utop@ace481388a
dominikh/go-mode.el@3273fcece5 -> dominikh/go-mode.el@166dfb1e09
elixir-editors/emacs-elixir@e0d0466d83 -> elixir-editors/emacs-elixir@7641373f05
emacs-csharp/csharp-mode@856ecbc0a7 -> emacs-csharp/csharp-mode@02c61c219b
emacs-ess/ESS@39eba28300 -> emacs-ess/ESS@8b4664e4a7
emacs-lsp/lsp-dart@fda433671f -> emacs-lsp/lsp-dart@3db9f93c83
emacs-lsp/lsp-java@0968038b9a -> emacs-lsp/lsp-java@dbe448a886
emacs-lsp/lsp-sourcekit@f877659bab -> emacs-lsp/lsp-sourcekit@468c641e35
emacs-php/composer.el@7c7f89df22 -> emacs-php/composer.el@5af1707fef
emacs-php/php-mode@5f26bec865 -> emacs-php/php-mode@fb11df8268
emacs-php/phpactor.el@34195f1533 -> emacs-php/phpactor.el@9440005814
emacs-php/psysh.el@21250984ad -> emacs-php/psysh.el@796b26a5cd
emacs-straight/auctex@830e40a063 -> emacs-straight/auctex@3929d5408b
emacs-straight/csv-mode@43f6106f0d -> emacs-straight/csv-mode@d190a479b4
emacs-straight/rainbow-mode@949166cc01 -> emacs-straight/rainbow-mode@8e96388fb4
emacs-straight/sml-mode@0338e9729b -> emacs-straight/sml-mode@5426ff4738
emacsmirror/auctex-latexmk@4d35352265 -> emacsmirror/auctex-latexmk@b00a95e6b3
emacsmirror/paredit@e4a67f4f23 -> emacsmirror/paredit@9a2c4b37fc
emacsorphanage/macrostep@424e3734a1 -> emacsorphanage/macrostep@75ecd04121
erlang/otp@9ba9f6e60d -> erlang/otp@be7109f43b
ethereum/emacs-solidity@20fb77e089 -> ethereum/emacs-solidity@ddb4a901c3
factor/factor@1aeafdb87b -> factor/factor@76ac65649d
fsharp/emacs-fsharp-mode@c1e58c61f9 -> fsharp/emacs-fsharp-mode@09fec6c91f
fxbois/web-mode@efa853e5cf -> fxbois/web-mode@df97ab62c9
godotengine/emacs-gdscript-mode@4badcf6a0c -> godotengine/emacs-gdscript-mode@d392e8aa7e
greghendershott/racket-mode@af9b760e7b -> greghendershott/racket-mode@947d9806ee
hhvm/hack-mode@a522f61c08 -> hhvm/hack-mode@26f06ffe82
idris-hackers/idris-mode@65d6db1b75 -> idris-hackers/idris-mode@c96f45d1b8
immerrr/lua-mode@5a9bee8d5f -> immerrr/lua-mode@ad639c62e3
iyefrat/evil-tex@0fa85c3fc8 -> iyefrat/evil-tex@3e0a26b91a
jcollard/elm-mode@d4e434fa18 -> jcollard/elm-mode@5797500d74
joaotavora/sly@4513c382f0 -> joaotavora/sly@fa70fc8ab1
jorgenschaefer/emacs-buttercup@ceedad5efa -> jorgenschaefer/emacs-buttercup@07a52c9969
jrblevin/markdown-mode@1f709778ac -> jrblevin/markdown-mode@c765b73b37
jschaf/powershell.el@ce1f0ae0b2 -> jschaf/powershell.el@f2da15857e
jwiegley/emacs-async@c78bab7506 -> jwiegley/emacs-async@71cc50f27f
leanprover/lean-mode@c1c68cc946 -> leanprover/lean-mode@362bc6fa3e
ledger/ledger-mode@b55384d9cd -> ledger/ledger-mode@4b32f70173
midnightSuyama/shader-mode@d7dc8d0d6f -> midnightSuyama/shader-mode@fe5a1982ba
necaris/conda.el@667968184e -> necaris/conda.el@28f51e49fd
nlamirault/phpunit.el@fe6bc91c3b -> nlamirault/phpunit.el@4a36906344
ocaml-ppx/ocamlformat@9cbd8150c2 -> ocaml-ppx/ocamlformat@1ad4bdba9e
ocaml/dune@3df932f7f9 -> ocaml/dune@f5a5a9c17b
ocaml/merlin@be753d9412 -> ocaml/merlin@306af713e2
ocaml/tuareg@ad8a688b7e -> ocaml/tuareg@53ce2fdfdd
pashky/restclient.el@9e2cfa8652 -> pashky/restclient.el@0ba72816f9
polymode/polymode@2094c92403 -> polymode/polymode@15b6c1e94a
purcell/flycheck-package@615c1ed8c6 -> purcell/flycheck-package@3a6aaed29f
purescript-emacs/purescript-mode@0acd1af446 -> purescript-emacs/purescript-mode@cf113871f9
s-kostyaev/go-gen-test@35df36dcd5 -> s-kostyaev/go-gen-test@f84f4177af
seagle0128/grip-mode@6d6ddbe0af -> seagle0128/grip-mode@5809fb62f6
sebasmonia/sharper@96edd4a1db -> sebasmonia/sharper@496e90e337
smihica/emmet-mode@6b2e554f7f -> smihica/emmet-mode@63b6932603
swift-emacs/swift-mode@f4529efa45 -> swift-emacs/swift-mode@1244ee48de
technomancy/fennel-mode@5664357349 -> technomancy/fennel-mode@52da9715b0
vspinu/company-math@45778f5731 -> vspinu/company-math@3eb006874e
whirm/flycheck-kotlin@bf1b398bdd -> whirm/flycheck-kotlin@a2a6abb9a7
wwwjfy/emacs-fish@a7c953b149 -> wwwjfy/emacs-fish@d04478c0ab
xuchunyang/elisp-demos@01c301b516 -> xuchunyang/elisp-demos@792be709c8
yoshiki/yaml-mode@535273d5a1 -> yoshiki/yaml-mode@3fcb36d603
ziglang/zig-mode@aa20d630b8 -> ziglang/zig-mode@9c5e41d6a0
2023-02-21 19:32:39 -05:00
..
config.el fix(dart): enable rainbow-delimiters in dart-mode 2022-09-07 00:16:04 +02:00
doctor.el refactor: deprecate featurep! for modulep! 2022-08-14 20:43:35 +02:00
packages.el bump: :lang 2023-02-21 19:32:39 -05:00
README.org docs: change link format 2022-10-05 01:01:19 +02:00

:lang dart

Description   unfold

Dart is a client-optimized language by Google for fast apps on any platform. It is fast and optimized for UI, famous for the Flutter framework, also made by Google. Both Flutter and Dart are free and open-source.

This module wraps dart-mode, with LSP features like code completion for .dart files, syntax highlighting, debugging, closing labels, etc.

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).

Hacks

No hacks documented for this module.

TODO Changelog

This module does not have a changelog yet.

Installation

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):

    apt-get install dart
  • On Arch Linux (and derivations like Manjaro):

    pacman -S dart
  • On macOS:

    brew tap dart-lang/dart
    brew install dart
  • On NixOS:

    nix-env -iA nixpkgs.dart

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 the site:

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

TODO Usage

🔨 This module's usage documentation is incomplete. Complete it?

  • Syntax highlighting and formatting for .dart files provided by LSP.
  • 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

🔨 This module's configuration documentation is incomplete. Complete it?

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 Arch Linux wiki has a great guide on this here.

Flutter mobile development on desktop

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

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. Ask one?

TODO Appendix

🔨 This module has no appendix yet. Write one?