spacemacs/layers/+lang/java/packages.el
syl20bnr c6a6c41d92 Replace hooks by regular list for jump lists
Hook semantic is to be used with run-hooks API and run all hooks
sequentially, jump list semantic is different since the running
functions are not guaranteed to be executed so we prefer using regular
list API to manage jump-lists.
2016-09-04 12:28:40 -04:00

165 lines
5.5 KiB
EmacsLisp

;;; packages.el --- Java Layer packages File for Spacemacs
;;
;; Copyright (c) 2012-2016 Sylvain Benner & Contributors
;;
;; Author: Lukasz Klich <klich.lukasz@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs
;;
;; This file is not part of GNU Emacs.
;;
;;; License: GPLv3
(setq java-packages
'(
company
(company-emacs-eclim :toggle (configuration-layer/package-usedp 'company))
eclim
ggtags
helm-gtags
(java-mode :location built-in)
))
(defun java/post-init-company ()
(spacemacs|add-company-hook java-mode))
(defun java/init-company-emacs-eclim ()
(use-package company-emacs-eclim
:defer t
:init (push 'company-emacs-eclim company-backends-java-mode)))
(defun java/init-eclim ()
(use-package eclim
:defer t
:diminish eclim-mode
:init
(progn
(add-hook 'java-mode-hook 'eclim-mode)
(add-to-list 'spacemacs-jump-handlers-java-mode 'eclim-java-find-declaration))
:config
(progn
(require 'eclimd)
(setq help-at-pt-display-when-idle t
help-at-pt-timer-delay 0.1)
(help-at-pt-set-timer)
(add-to-list 'minor-mode-alist
'(eclim-mode (:eval (eclim-modeline-string))))
(evil-define-key 'insert java-mode-map
(kbd ".") 'spacemacs/java-completing-dot
(kbd ":") 'spacemacs/java-completing-double-colon
(kbd "M-.") 'eclim-java-find-declaration
(kbd "M-,") 'pop-tag-mark
(kbd "M-<mouse-3>") 'eclim-java-find-declaration
(kbd "<mouse-8>") 'pop-tag-mark)
(evil-define-key 'normal java-mode-map
(kbd "M-.") 'eclim-java-find-declaration
(kbd "M-,") 'pop-tag-mark
(kbd "M-<mouse-3>") 'eclim-java-find-declaration
(kbd "<mouse-8>") 'pop-tag-mark)
(evil-define-key 'normal eclim-problems-mode-map
(kbd "a") 'eclim-problems-show-all
(kbd "e") 'eclim-problems-show-errors
(kbd "g") 'eclim-problems-buffer-refresh
(kbd "q") 'eclim-quit-window
(kbd "w") 'eclim-problems-show-warnings
(kbd "f") 'eclim-problems-toggle-filefilter
(kbd "c") 'eclim-problems-correct
(kbd "RET") 'eclim-problems-open-current)
(evil-define-key 'normal eclim-project-mode-map
(kbd "N") 'eclim-project-create
(kbd "m") 'eclim-project-mark-current
(kbd "M") 'eclim-project-mark-all
(kbd "u") 'eclim-project-unmark-current
(kbd "U") 'eclim-project-unmark-all
(kbd "o") 'eclim-project-open
(kbd "c") 'eclim-project-close
(kbd "i") 'eclim-project-info-mode
(kbd "I") 'eclim-project-import
(kbd "RET") 'eclim-project-goto
(kbd "D") 'eclim-project-delete
(kbd "p") 'eclim-project-update
(kbd "g") 'eclim-project-mode-refresh
(kbd "R") 'eclim-project-rename
(kbd "q") 'eclim-quit-window)
(spacemacs/set-leader-keys-for-major-mode 'java-mode
"ea" 'eclim-problems-show-all
"eb" 'eclim-problems
"ec" 'eclim-problems-correct
"ee" 'eclim-problems-show-errors
"ef" 'eclim-problems-toggle-filefilter
"en" 'eclim-problems-next-same-window
"eo" 'eclim-problems-open
"ep" 'eclim-problems-previous-same-window
"ew" 'eclim-problems-show-warnings
"ds" 'start-eclimd
"dk" 'stop-eclimd
"ff" 'eclim-java-find-generic
"gt" 'eclim-java-find-type
"rc" 'eclim-java-constructor
"rg" 'eclim-java-generate-getter-and-setter
"rf" 'eclim-java-format
"ri" 'eclim-java-import-organize
"rj" 'eclim-java-implement
"rr" 'eclim-java-refactor-rename-symbol-at-point
"hc" 'eclim-java-call-hierarchy
"hh" 'eclim-java-show-documentation-for-current-element
"hi" 'eclim-java-hierarchy
"hu" 'eclim-java-find-references
"mi" 'spacemacs/java-maven-clean-install
"mI" 'spacemacs/java-maven-install
"mp" 'eclim-maven-lifecycle-phases
"mr" 'eclim-maven-run
"mR" 'eclim-maven-lifecycle-phase-run
"mt" 'spacemacs/java-maven-test
"aa" 'eclim-ant-run
"ac" 'eclim-ant-clear-cache
"ar" 'eclim-ant-run
"av" 'eclim-ant-validate
"pb" 'eclim-project-build
"pc" 'eclim-project-create
"pd" 'eclim-project-delete
"pg" 'eclim-project-goto
"pi" 'eclim-project-import
"pj" 'eclim-project-info-mode
"pk" 'eclim-project-close
"po" 'eclim-project-open
"pp" 'eclim-project-mode
"pu" 'eclim-project-update
"tt" 'eclim-run-junit))))
(defun java/post-init-ggtags ()
(add-hook 'java-mode-local-vars-hook #'spacemacs/ggtags-mode-enable))
(defun java/post-init-helm-gtags ()
(spacemacs/helm-gtags-define-keys-for-mode 'java-mode))
(defun java/init-java-mode ()
(spacemacs|define-jump-handlers java-mode)
(setq java/key-binding-prefixes '(("me" . "errors")
("md" . "eclimd")
("mf" . "find")
("mg" . "goto")
("mr" . "refactor")
("mh" . "documentation")
("mm" . "maven")
("ma" . "ant")
("mp" . "project")
("mt" . "test")))
(mapc (lambda(x) (spacemacs/declare-prefix-for-mode
'java-mode (car x) (cdr x)))
java/key-binding-prefixes))