Fixed issues addressed by @hlissner on #2549.

This commit is contained in:
M. Yas. Davoodeh 2020-03-16 00:02:16 +03:30
parent aefb0672b4
commit 2b47b1e99a
4 changed files with 67 additions and 23 deletions

View file

@ -1,6 +1,6 @@
#+TITLE: lang/dart
#+DATE: February 16, 2020
#+SINCE: February 16, 2020
#+SINCE: v3.0.0
#+STARTUP: inlineimages nofold
* Table of Contents :TOC_3:noexport:
@ -9,6 +9,8 @@
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#installing-dart-sdk][Installing Dart SDK]]
- [[#installing-flutter-sdk][Installing Flutter SDK]]
- [[#features][Features]]
- [[#configuration][Configuration]]
- [[#dart--flutter][Dart & Flutter]]
@ -16,14 +18,18 @@
- [[#troubleshooting][Troubleshooting]]
* Description
[[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.
** Maintainers
This module has no dedicated maintainers.
** Module Flags
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.
** Maintainers
+ @sevensidedmarble (Author)
** Module Flags
+ =+lsp= Will start LSP automatically in `dart-mode-hook`.
+ =+flutter= Adds the `flutter` package and some settings for Flutter development.
@ -35,6 +41,42 @@ and a `+flutter` flag for working with Flutter.
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), 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
* Features
+ Syntax highlighting and formatting for `.dart` files provided by LSP
+ Emacs functions for running and debugging Flutter projects

View file

@ -1,18 +1,18 @@
;;; lang/dart/config.el -*- lexical-binding: t; -*-
(use-package! dart-mode
(after! dart-mode
(when (featurep! +lsp)
(add-hook 'dart-mode-local-vars-hook #'lsp!)
(when (and (featurep! +flutter) IS-LINUX)
(when-let (path (doom-glob "/opt/flutter/bin/cache/dart-sdk"))
(setq lsp-dart-sdk-dir path)))))
(use-package! flutter
:when (featurep! +flutter)
:defer t
:config
(when (and (featurep! +flutter) IS-LINUX)
(setq lsp-dart-sdk-dir "/opt/flutter/bin/cache/dart-sdk/"))
(when (featurep! +lsp)
(add-hook 'dart-mode-local-vars-hook #'lsp!)))
(when (featurep! +flutter)
(use-package! flutter
:defer t
:config
(map! :map dart-mode-map
:localleader
"r" #'flutter-run-or-hot-reload)))
(map! :map dart-mode-map
:localleader
"r" #'flutter-run-or-hot-reload))

View file

@ -7,5 +7,7 @@
(unless (executable-find "dart")
(warn! "Dart isn't on PATH."))
(unless (file-readable-p lsp-dart-sdk-dir)
(warn! "LSP Mode can't find lsp-dart-sdk-dir."))
(when (featurep! +lsp)
(require 'dart-mode)
(unless (file-readable-p lsp-dart-sdk-dir)
(warn! "LSP Mode can't find lsp-dart-sdk-dir.")))

View file

@ -1,6 +1,6 @@
;; -*- no-byte-compile: t; -*-
;;; lang/dart/packages.el
(package! dart-mode)
(package! dart-mode :pin "04fcd649f1")
(when (featurep! +flutter)
(package! flutter))
(package! flutter :pin "ec92a4df84"))