;;; packages.el --- dart layer packages file for Spacemacs. ;; ;; Copyright (c) 2012-2018 Sylvain Benner & Contributors ;; ;; Author: Bruno Tavares ;; URL: https://github.com/syl20bnr/spacemacs ;; ;; This file is not part of GNU Emacs. ;; ;;; License: GPLv3 ;;; Code: ;; TODO: offer lsp integration (defconst dart-packages '(dart-mode flycheck)) ;; TODO: Remove when https://github.com/bradyt/dart-mode/pull/67 (defun dart/trigger-hooks () (run-hooks 'change-major-mode-after-body-hook)) (defun dart/show-buffer () "Shows information at point on a new buffer" (interactive) (dart-show-hover 't)) (defun dart/init-dart-mode () (use-package dart-mode :defer t :mode "\\.dart\\'" :init (progn (spacemacs/declare-prefix-for-mode 'dart-mode "mf" "find") (spacemacs/declare-prefix-for-mode 'dart-mode "mh" "help") (spacemacs/set-leader-keys-for-major-mode 'dart-mode "=" 'dart-format "?" 'dart-show-hover "g" 'dart-goto "hh" 'dart-show-hover "hb" 'dart/show-buffer "ff" 'dart-find-refs "fe" 'dart-find-member-decls "fr" 'dart-find-member-refs "fd" 'dart-find-top-level-decls) (add-to-list 'spacemacs-jump-handlers-dart-mode '(dart-goto :async t)) (evil-define-key 'insert dart-mode-map (kbd "") 'dart-expand (kbd "C-") 'dart-expand-parameters) (evil-set-initial-state 'dart-popup-mode 'motion) (evil-define-key 'motion dart-popup-mode-map (kbd "gr") 'dart-do-it-again) (add-hook 'dart-mode-hook #'dart/trigger-hooks)) :config ;; TODO: Remove when fix lands ;; https://github.com/bradyt/dart-mode/pull/66 (defun dart-formatter-command () "The command for running the Dart formatter. This can be customized by setting `dart-formatter-command-override'." (or dart-formatter-command-override (when dart-sdk-path (concat dart-sdk-path (file-name-as-directory "bin") (if (memq system-type '(ms-dos windows-nt)) "dartfmt.exe" "dartfmt")))))) (defun dart/post-init-flycheck () (spacemacs/add-flycheck-mode 'dart-mode))) ;;; packages.el ends here