;;; MYJAVA --- java mode configuration
;;
;; Author: Jeff Bowman <jeff@CanisNubilus>
;; Copyright © 2018, Jeff Bowman, all rights reserved.
;; Created: 6 July 2018
;;
;;; Commentary:
;;
;; Use LSP for java mode. Mostly copied/inspired by github page:
;; https://github.com/emacs-lsp/lsp-java
;;
;;; Code:
(use-package lsp-mode
:hook java-mode)
;; Seems I have to demand load this or it's not availble when
;; opening a java file.
;; 2018-07-18: switch to defer with timeout instead of demand
(use-package lsp-java
:defer 3
:init
(progn
(require 'lsp-ui-flycheck)
(require 'lsp-ui-sideline)
(add-hook 'java-mode-hook #'lsp-java-enable)
(add-hook 'java-mode-hook #'flycheck-mode)
(add-hook 'java-mode-hook #'company-mode)
(add-hook 'java-mode-hook (lambda () (lsp-ui-flycheck-enable t)))
(add-hook 'java-mode-hook #'lsp-ui-sideline-mode))
:config
;; this is a bummer, having to add each project individually :-(
(setq lsp-java--workspace-folders
(list
(expand-file-name "~/Projects/CopperheadRecovery/copperhead"))))
(use-package java-snippets
:init
(add-hook 'java-mode-hook #'yas-minor-mode))
(use-package lsp-ui
:hook (lsp-mode . lsp-ui-mode)
:config
(setq lsp-ui-sideline-enable t
lsp-ui-sideline-show-symbol t
lsp-ui-sideline-show-hover t
lsp-ui-sideline-showcode-actions t
lsp-ui-sideline-update-mode 'point))
(use-package company-lsp
:after company
:init
(add-to-list 'company-backends #'company-lsp)
:config
(setq company-lsp-enable-snippet t
company-lsp-cache-candidates t))
(provide 'myjava)
;;; myjava.el ends here