diff --git a/modules/lang/dart/+flutter.el b/modules/lang/dart/+flutter.el new file mode 100644 index 000000000..f31283902 --- /dev/null +++ b/modules/lang/dart/+flutter.el @@ -0,0 +1,7 @@ +;;; lang/dart/+flutter.el -*- lexical-binding: t; -*- + +(use-package! flutter + :config + (map! :map dart-mode-map + :localleader + "r" #'flutter-run-or-hot-reload)) diff --git a/modules/lang/dart/config.el b/modules/lang/dart/config.el new file mode 100644 index 000000000..fc574a62e --- /dev/null +++ b/modules/lang/dart/config.el @@ -0,0 +1,12 @@ +;;; lang/dart/config.el -*- lexical-binding: t; -*- + +(cond ((featurep! +flutter) (load! "+flutter")) + ((featurep! +lsp) (load! "+lsp"))) + +(use-package! dart-mode + :config + (when (featurep! +flutter) + (if IS-LINUX + (setq lsp-dart-sdk-dir "/opt/flutter/bin/cache/dart-sdk/"))) + (when (featurep! +lsp) + (add-hook 'dart-mode-hook 'lsp))) diff --git a/modules/lang/dart/doctor.el b/modules/lang/dart/doctor.el new file mode 100644 index 000000000..aa68b7bce --- /dev/null +++ b/modules/lang/dart/doctor.el @@ -0,0 +1,11 @@ +;;; lang/dart/doctor.el -*- lexical-binding: t; -*- + +(assert! (or (not (featurep! +lsp)) + (featurep! :tools lsp)) + "This module requires (:tools lsp)") + +(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.")) diff --git a/modules/lang/dart/packages.el b/modules/lang/dart/packages.el new file mode 100644 index 000000000..2116e665c --- /dev/null +++ b/modules/lang/dart/packages.el @@ -0,0 +1,6 @@ +;; -*- no-byte-compile: t; -*- +;;; lang/dart/packages.el + +(package! dart-mode) +(when (featurep! +flutter) + (package! flutter))