From afefce8560d9c40901aeffdad2a7575bd546dc14 Mon Sep 17 00:00:00 2001 From: Eric Dallo Date: Mon, 13 Apr 2020 23:23:44 -0300 Subject: [PATCH] Improve dart lang module (#2895) * Use lsp-dart * Add hover to +flutter flag * Update README * Fixes --- modules/lang/dart/README.org | 7 ++++--- modules/lang/dart/config.el | 12 +++++++++++- modules/lang/dart/doctor.el | 5 ----- modules/lang/dart/packages.el | 7 ++++++- 4 files changed, 21 insertions(+), 10 deletions(-) diff --git a/modules/lang/dart/README.org b/modules/lang/dart/README.org index ceaa901de..1005e4c4f 100644 --- a/modules/lang/dart/README.org +++ b/modules/lang/dart/README.org @@ -31,11 +31,12 @@ This module has no dedicated maintainers. ** Module Flags + =+lsp= Enable LSP server integration. + =+flutter= Adds ~flutter~ integration and some sane defaults for Flutter - development. + development along with ~hover~ for desktop development. ** Plugins + [[https://github.com/bradyt/dart-mode][dart-mode]] + [[https://github.com/amake/flutter.el][flutter.el]] ++ [[https://github.com/ericdallo/hover.el][hover.el]] * Prerequisites Make sure that the Dart SDK is on your ~PATH~, and if using Flutter, make sure @@ -85,8 +86,8 @@ flutter doctor # for Dependency check and further instructions ** 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. +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. diff --git a/modules/lang/dart/config.el b/modules/lang/dart/config.el index ebcbae6dc..2a3b5bb86 100644 --- a/modules/lang/dart/config.el +++ b/modules/lang/dart/config.el @@ -6,7 +6,7 @@ :config (when (and (featurep! +flutter) IS-LINUX) (when-let (path (doom-glob "/opt/flutter/bin/cache/dart-sdk")) - (setq lsp-dart-sdk-dir path)))) + (setq flutter-sdk-path path)))) (use-package! flutter @@ -16,3 +16,13 @@ (map! :map dart-mode-map :localleader "r" #'flutter-run-or-hot-reload)) + + +(use-package! hover + :when (featurep! +flutter) + :defer t + :config + (map! :map dart-mode-map + :localleader + "h r" #'hover-run-or-hot-reload + "h R" #'hover-run-or-hot-restart)) diff --git a/modules/lang/dart/doctor.el b/modules/lang/dart/doctor.el index 521eddc32..52b2abda0 100644 --- a/modules/lang/dart/doctor.el +++ b/modules/lang/dart/doctor.el @@ -6,8 +6,3 @@ (unless (executable-find "dart") (warn! "Dart isn't on PATH.")) - -(when (featurep! +lsp) - (require 'dart-mode) - (unless (file-readable-p lsp-dart-sdk-dir) - (warn! "LSP Mode can't find lsp-dart-sdk-dir."))) diff --git a/modules/lang/dart/packages.el b/modules/lang/dart/packages.el index e1464b17f..44d69fa9a 100644 --- a/modules/lang/dart/packages.el +++ b/modules/lang/dart/packages.el @@ -2,5 +2,10 @@ ;;; lang/dart/packages.el (package! dart-mode :pin "04fcd649f1") + +(when (featurep! +lsp) + (package! lsp-dart :pin "064d47bad3")) + (when (featurep! +flutter) - (package! flutter :pin "ec92a4df84")) + (package! flutter :pin "ec92a4df84") + (package! hover :pin "6f9ed1a651"))