spacemacs/contrib/lang/scala/packages.el

65 lines
2.1 KiB
EmacsLisp
Raw Normal View History

(defvar scala-packages
2014-12-14 04:29:23 +00:00
'(
ensime
sbt-mode
scala-mode2
2014-12-29 21:00:07 +00:00
noflet
2014-12-14 04:29:23 +00:00
)
"List of all packages to install and/or initialize. Built-in packages
which require an initialization must be listed explicitly in the list.")
2014-12-30 21:51:41 +00:00
(defun scala/init-ensime ()
2014-12-14 04:29:23 +00:00
(use-package ensime
2014-12-29 20:47:56 +00:00
:commands (ensime-mode)
:init
(add-hook 'scala-mode-hook 'ensime-mode)
2014-12-29 20:40:56 +00:00
:config
(progn
(evil-define-key 'normal scala-mode-map "J" 'spacemacs/scala-join-line)
(evil-define-key 'normal ensime-popup-buffer-map
(kbd "q") 'ensime-popup-buffer-quit-function)
(evil-define-key 'normal ensime-refactor-info-map
(kbd "q") 'spacemacs/ensime-refactor-cancel
(kbd "c") 'spacemacs/ensime-refactor-accept
(kbd "RET") 'spacemacs/ensime-refactor-accept)
(evil-define-key 'normal ensime-compile-result-map
(kbd "g") 'ensime-show-all-errors-and-warnings
(kbd "TAB") 'forward-button
(kbd "<backtab>") 'backward-button
(kbd "M-n") 'forward-button
2014-12-29 20:59:27 +00:00
(kbd "M-p") 'backward-button)
;; Don't use scala checker if ensime mode is active, since it provides
;; better error checking.
(eval-after-load 'flycheck
'(progn
(defun spacemacs/flycheck-use-scalastyle ()
(when ensime-mode
(flycheck-select-checker 'scala-scalastyle)))
(add-hook 'flycheck-before-syntax-check-hook
'spacemacs/flycheck-use-scalastyle))))))
2014-12-29 21:00:07 +00:00
2014-12-30 21:51:41 +00:00
(defun scala/init-scala-mode2 ()
2014-12-29 21:00:07 +00:00
(use-package scala-mode2
:defer t
:init
(dolist (ext '(".cfe" ".cfs" ".si" ".gen" ".lock"))
(add-to-list 'completion-ignored-extensions ext))
:config
(progn
;; Compatibility with `aggressive-indent'
(custom-set-variables
2014-12-30 21:52:17 +00:00
'(scala-indent:align-forms t)
'(scala-indent:align-parameters t)
'(scala-indent:default-run-on-strategy scala-indent:operator-strategy))
2014-12-29 21:00:07 +00:00
(defadvice scala-indent:indent-code-line (around retain-trailing-ws activate)
"Keep trailing-whitespace when indenting."
(noflet ((scala-lib:delete-trailing-whitespace ()))
ad-do-it)))))