2017-06-08 11:47:56 +02:00
|
|
|
;;; lang/purescript/config.el -*- lexical-binding: t; -*-
|
2017-05-20 21:09:23 -07:00
|
|
|
|
2018-05-25 00:46:11 +02:00
|
|
|
(after! purescript-mode
|
2022-08-12 20:29:19 +02:00
|
|
|
(when (modulep! +lsp)
|
2022-03-24 02:19:52 +01:00
|
|
|
(add-hook 'purescript-mode-local-vars-hook #'lsp! 'append))
|
2020-05-13 17:32:20 +09:00
|
|
|
|
2017-06-08 11:47:56 +02:00
|
|
|
(add-hook! 'purescript-mode-hook
|
2019-07-26 19:57:13 +02:00
|
|
|
#'purescript-indentation-mode
|
|
|
|
#'rainbow-delimiters-mode)
|
2021-02-23 22:22:24 -08:00
|
|
|
|
2022-08-16 21:06:47 +01:00
|
|
|
(set-formatter! 'purs-tidy '("purs-tidy" "format") :modes '(purescript-mode))
|
|
|
|
|
2021-02-23 22:22:24 -08:00
|
|
|
(map! :localleader
|
|
|
|
:map purescript-mode-map
|
|
|
|
"t" #'psc-ide-show-type
|
|
|
|
"c" #'psc-ide-case-split
|
|
|
|
"i" #'psc-ide-add-import
|
|
|
|
"a" #'psc-ide-add-clause
|
|
|
|
"f" #'psc-ide-flycheck-insert-suggestion
|
|
|
|
(:prefix ("l" . "load")
|
|
|
|
"m" #'psc-ide-load-module
|
|
|
|
"a" #'psc-ide-load-all)
|
|
|
|
(:prefix ("s" . "server")
|
|
|
|
"s" #'psc-ide-server-start
|
|
|
|
"S" #'psc-ide-server-quit))
|
|
|
|
|
|
|
|
(set-repl-handler! 'purescript-mode #'psci)
|
|
|
|
|
2018-09-28 21:18:13 -04:00
|
|
|
(set-lookup-handlers! 'purescript-mode
|
|
|
|
:definition #'psc-ide-goto-definition
|
|
|
|
:documentation #'purescript-pursuit))
|
2018-05-25 00:46:11 +02:00
|
|
|
|
2017-05-20 21:09:23 -07:00
|
|
|
|
2019-07-23 12:44:03 +02:00
|
|
|
(use-package! psc-ide
|
2018-11-05 20:10:38 +01:00
|
|
|
:hook (purescript-mode . psc-ide-mode)
|
|
|
|
:config
|
|
|
|
(remove-hook 'company-backends 'company-psc-ide-backend)
|
2022-08-17 01:16:08 +01:00
|
|
|
(when (and (modulep! :checkers syntax)
|
|
|
|
(not (modulep! :checkers syntax +flymake)))
|
2021-02-23 22:22:24 -08:00
|
|
|
(psc-ide-flycheck-setup))
|
2018-11-05 20:10:38 +01:00
|
|
|
(set-company-backend! 'purescript-mode 'company-psc-ide-backend))
|