doomemacs/modules/lang/dart/config.el
Henrik Lissner d58d084774
tweak(:lang,:tools): start eglot/lsp-mode later
To ensure lsp/eglot settings have precedence over local servers (e.g.
cider and lookup handlers).

Ref: clojure-emacs/cider#3170
2022-03-30 17:32:47 +02:00

65 lines
1.4 KiB
EmacsLisp

;;; lang/dart/config.el -*- lexical-binding: t; -*-
(use-package! dart-mode
:defer t
:config
(when (featurep! +lsp)
(add-hook 'dart-mode-local-vars-hook #'lsp! 'append))
(set-ligatures! '(dart-mode)
;; Functional
:def "Function"
:lambda "() =>"
;; Types
:null "null"
:true "true" :false "false"
:int "int" :float "double"
:str "String"
:bool "bool"
:list "List"
;; Flow
:not "!"
:in "in"
:and "&&" :or "||"
:for "for"
:return "return"
;; Other
:yield "yield"))
(use-package! flutter
:when (featurep! +flutter)
:defer t
:init
(map! :after dart-mode
:map dart-mode-map
:localleader
"r" #'flutter-run-or-hot-reload))
(use-package! lsp-dart
:when (featurep! +lsp)
:defer t
:config
(map! :map dart-mode-map
(:localleader
(:prefix ("t" . "test")
"t" #'lsp-dart-run-test-at-point
"a" #'lsp-dart-run-all-tests
"f" #'lsp-dart-run-test-file
"l" #'lsp-dart-run-last-test
"v" #'lsp-dart-visit-last-test))))
(use-package! hover
:when (featurep! +flutter)
:defer t
:config
(map! :map dart-mode-map
(:localleader
(:prefix ("h" . "hover")
"c" #'hover-clear-buffer
"r" #'hover-run-or-hot-reload
"R" #'hover-run-or-hot-restart
"p" #'hover-take-screenshot
"k" #'hover-kill)))
(set-popup-rule! "\\*Hover\\*" :quit nil))