Updating Doom Emacs.

This commit is contained in:
Derek Taylor
2020-06-19 22:43:40 -05:00
parent 0f664d532a
commit a5c86c514a
453 changed files with 13527 additions and 12455 deletions

View File

@@ -2,11 +2,20 @@
;;;###if (featurep! +lsp)
(use-package! lsp-java
:after-call java-mode
:init
:after lsp-clients
:preface
(setq lsp-java-workspace-dir (concat doom-etc-dir "java-workspace"))
(add-hook 'java-mode-local-vars-hook #'lsp!)
(setq lsp-java-server-install-dir (concat doom-etc-dir "eclipse.jdt.ls/server/"))
(map! :when (featurep! :tools debugger +lsp)
:after cc-mode ; where `java-mode' is defined
:map java-mode-map
:localleader
(:prefix ("t" . "Test")
:desc "Run test class or method" "t" #'+java/run-test
:desc "Run all tests in class" "a" #'dap-java-run-test-class
:desc "Debug test class or method" "d" #'+java/debug-test
:desc "Debug all tests in class" "D" #'dap-java-debug-test-class))
:config
;; TODO keybinds
;; TODO treemacs integration (?)
)
(when (featurep! :tools debugger +lsp)
(setq lsp-jt-root (concat lsp-java-server-install-dir "java-test/server/")
dap-java-test-runner (concat lsp-java-server-install-dir "test-runner/junit-platform-console-standalone.jar"))))

View File

@@ -6,7 +6,7 @@
:init
(setq meghanada-server-install-dir (concat doom-etc-dir "meghanada-server/")
meghanada-use-company (featurep! :completion company)
meghanada-use-flycheck (featurep! :tools flycheck)
meghanada-use-flycheck (featurep! :checkers syntax)
meghanada-use-eldoc t
meghanada-use-auto-start t)
:config

View File

@@ -1,73 +0,0 @@
;;; lang/java/config.el -*- lexical-binding: t; -*-
;; yasnippet defuns
;;;###autoload
(defun +java-android-mode-is-layout-file ()
(and android-mode
(eq major-mode 'nxml-mode)
(string-equal (file-name-base (directory-file-name default-directory)) "layout")))
;;;###autoload
(defun +java-android-mode-in-tags (&rest tags)
(cl-find (android-mode-tag-name) tags))
;;;###autoload
(defun +java-android-mode-tag-name ()
(save-excursion
(let (beg end)
(nxml-backward-up-element)
(evil-forward-word-begin)
(setq beg (point))
(evil-forward-WORD-end)
(setq end (1+ (point)))
(buffer-substring-no-properties beg end))))
;;;###autoload
(defun +java-android-mode-maybe-h ()
"Enable `android-mode' if this looks like an android project.
It determines this by the existence of AndroidManifest.xml or
src/main/AndroidManifest.xml."
(when (project-file-exists-p! (or "AndroidManifest.xml"
"src/main/AndroidManifest.xml"))
(android-mode +1)))
;;;###autoload
(defun +java-current-package ()
"Converts the current file's path into a namespace.
For example: ~/some/project/src/net/lissner/game/MyClass.java
Is converted to: net.lissner.game
It does this by ignoring everything before the nearest package root (see
`+java-project-package-roots' to control what this function considers a package
root)."
(unless (eq major-mode 'java-mode)
(user-error "Not in a java-mode buffer"))
(let* ((project-root (file-truename (doom-project-root)))
(file-path (file-name-sans-extension
(file-truename (or buffer-file-name
default-directory))))
(src-root (cl-loop for root in +java-project-package-roots
if (and (stringp root)
(locate-dominating-file file-path root))
return (file-name-directory (file-relative-name file-path (expand-file-name root it)))
if (and (integerp root)
(> root 0)
(let* ((parts (split-string (file-relative-name file-path project-root) "/"))
(fixed-parts (reverse (nbutlast (reverse parts) root))))
(when fixed-parts
(string-join fixed-parts "/"))))
return it)))
(when src-root
(string-remove-suffix "." (replace-regexp-in-string "/" "." src-root)))))
;;;###autoload
(defun +java-current-class ()
"Get the class name for the current file."
(unless (eq major-mode 'java-mode)
(user-error "Not in a java-mode buffer"))
(unless buffer-file-name
(user-error "This buffer has no filepath; cannot guess its class name"))
(or (file-name-sans-extension (file-name-base (buffer-file-name)))
"ClassName"))

View File

@@ -22,7 +22,7 @@ If the depth is 2, the first two directories are removed: net.lissner.game.")
;;
;; java-mode
;;; java-mode
(add-hook 'java-mode-hook #'rainbow-delimiters-mode)
@@ -31,7 +31,7 @@ If the depth is 2, the first two directories are removed: net.lissner.game.")
;;
;; Common packages
;;; Common packages
(use-package! android-mode
:commands android-mode
@@ -45,4 +45,6 @@ If the depth is 2, the first two directories are removed: net.lissner.game.")
(use-package! groovy-mode
:mode "\\.g\\(?:radle\\|roovy\\)$"
:config
(set-eval-handler! 'groovy-mode "groovy"))
(set-docsets! 'groovy-mode "Groovy" "Groovy_JDK")
(set-eval-handler! 'groovy-mode "groovy")
(set-repl-handler! 'groovy-mode #'+java/groovy-open-repl))

View File

@@ -1,16 +1,16 @@
;; -*- no-byte-compile: t; -*-
;;; lang/java/packages.el
(package! android-mode)
(package! groovy-mode)
(package! android-mode :pin "d5332e339a")
(package! groovy-mode :pin "cafdd98e06")
(when (featurep! +meghanada)
(package! meghanada))
(package! meghanada :pin "70bfbf553c"))
(when (featurep! +eclim)
(package! eclim)
(package! eclim :pin "23f5b294f8")
(when (featurep! :completion company)
(package! company-emacs-eclim)))
(package! company-emacs-eclim :pin "23f5b294f8")))
(when (featurep! +lsp)
(package! lsp-java))
(package! lsp-java :pin "6efb741845"))