Skip to content

Commit 601bd93

Browse files
committed
add eglot for java
1 parent 74b3c8a commit 601bd93

File tree

2 files changed

+132
-44
lines changed

2 files changed

+132
-44
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,4 @@ quelpa
2828
lisp
2929
url
3030
org-roam.db
31+
tree-sitter

configuration.org

Lines changed: 131 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,10 @@ This configuration file contains setup my config of emacs
6464
#+end_src
6565
**** Java Constant
6666
#+begin_src emacs-lisp
67-
(defconst ctm-java-home-path "/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home/")
67+
(defconst ctm-java-home-path (getenv "JAVA_HOME"))
6868
(defconst ctm-lsp-java-server-install-dir (expand-file-name "lsp-server/jdtls/" user-emacs-directory))
6969
(defconst ctm-dap-java-test-runner (expand-file-name "eclipse.jdt.ls/test-runner/junit-platform-console-standalone.jar" ctm-lsp-java-server-install-dir))
70-
(defconst ctm-lombok-jar-path (expand-file-name "~/.m2/repository/org/projectlombok/lombok/1.18.26/lombok-1.18.26.jar"))
70+
(defconst ctm-lombok-jar-path (expand-file-name "~/.m2/repository/org/projectlombok/lombok/1.18.30/lombok-1.18.30.jar"))
7171
(defconst ctm-lsp-java-configuration-maven-user-settings (expand-file-name "~/.m2/settings.xml"))
7272
(defconst ctm-lsp-java-import-gradle-user-home "~/.m2/repository/")
7373
#+end_src
@@ -112,6 +112,8 @@ donot backup file
112112
:ensure t
113113
;; :config (setq exec-path (append exec-path '("/usr/local/bin")))
114114
)
115+
(dolist (var '("JAVA_HOME" "GRADLE_USER_HOME"))
116+
(add-to-list 'exec-path-from-shell-variables var))
115117
(when (memq window-system '(mac ns x))
116118
(exec-path-from-shell-initialize))
117119
(setq exec-path-from-shell-check-startup-files nil)
@@ -244,7 +246,7 @@ window auto Zoom,current window Larger display
244246
)
245247
(doom-modeline-def-modeline 'ownml
246248
'(bar matches buffer-info remote-host buffer-position misc-info major-mode)
247-
'(input-method buffer-encoding process vcs check))
249+
'(input-method buffer-encoding process check))
248250
;; Add to `doom-modeline-mode-hook` or other hooks
249251
(defun setup-custom-doom-modeline ()
250252
(doom-modeline-set-modeline 'ownml 'default))
@@ -967,12 +969,32 @@ jumping to visible text using a char-based decision tree
967969
:ensure t
968970
:config (treemacs-set-scope-type 'Tabs))
969971
#+end_src
970-
** Company Setup
972+
** Code Completion Setup
973+
*** Corfu
974+
#+begin_src emacs-lisp
975+
;; Auto completion example
976+
(use-package corfu
977+
:custom
978+
(corfu-auto t) ;; Enable auto completion
979+
;; (corfu-separator ?_) ;; Set to orderless separator, if not using space
980+
:bind
981+
;; Another key binding can be used, such as S-SPC.
982+
;; (:map corfu-map ("M-SPC" . corfu-insert-separator))
983+
:init
984+
(global-corfu-mode))
985+
#+end_src
986+
*** Corfu English Helper
987+
#+begin_src emacs-lisp
988+
(use-package corfu-english-helper
989+
:vc (:fetcher github :repo manateelazycat/corfu-english-helper)
990+
)
991+
#+end_src
992+
*** COMMENT Company
971993
#+begin_src emacs-lisp
972994
(use-package company
973995
:ensure t
974996
:init
975-
(global-company-mode)
997+
;; (global-company-mode)
976998
:bind (
977999
("s-/" . company-complete)
9781000
:map company-active-map
@@ -988,17 +1010,84 @@ jumping to visible text using a char-based decision tree
9881010
;; :hook (company-mode . company-box-mode))
9891011

9901012
#+end_src
991-
*** Company english helper
1013+
*** COMMENT Company english helper
9921014
#+begin_src emacs-lisp
9931015
(use-package company-english-helper
9941016
:vc (:fetcher github :repo manateelazycat/company-english-helper)
9951017
)
9961018
#+end_src
1019+
** Treesit
1020+
#+begin_src emacs-lisp
1021+
(setq treesit-language-source-alist
1022+
'((bash . ("https://github.com/tree-sitter/tree-sitter-bash"))
1023+
(c . ("https://github.com/tree-sitter/tree-sitter-c"))
1024+
(cpp . ("https://github.com/tree-sitter/tree-sitter-cpp"))
1025+
(css . ("https://github.com/tree-sitter/tree-sitter-css"))
1026+
(cmake . ("https://github.com/uyha/tree-sitter-cmake"))
1027+
(csharp . ("https://github.com/tree-sitter/tree-sitter-c-sharp.git"))
1028+
(dockerfile . ("https://github.com/camdencheek/tree-sitter-dockerfile"))
1029+
(elisp . ("https://github.com/Wilfred/tree-sitter-elisp"))
1030+
(go . ("https://github.com/tree-sitter/tree-sitter-go"))
1031+
(gomod . ("https://github.com/camdencheek/tree-sitter-go-mod.git"))
1032+
(html . ("https://github.com/tree-sitter/tree-sitter-html"))
1033+
(java . ("https://github.com/tree-sitter/tree-sitter-java.git"))
1034+
(javascript . ("https://github.com/tree-sitter/tree-sitter-javascript"))
1035+
(json . ("https://github.com/tree-sitter/tree-sitter-json"))
1036+
(lua . ("https://github.com/Azganoth/tree-sitter-lua"))
1037+
(make . ("https://github.com/alemuller/tree-sitter-make"))
1038+
(markdown . ("https://github.com/MDeiml/tree-sitter-markdown" nil "tree-sitter-markdown/src"))
1039+
(ocaml . ("https://github.com/tree-sitter/tree-sitter-ocaml" nil "ocaml/src"))
1040+
(org . ("https://github.com/milisims/tree-sitter-org"))
1041+
(python . ("https://github.com/tree-sitter/tree-sitter-python"))
1042+
(php . ("https://github.com/tree-sitter/tree-sitter-php"))
1043+
(typescript . ("https://github.com/tree-sitter/tree-sitter-typescript" nil "typescript/src"))
1044+
(tsx . ("https://github.com/tree-sitter/tree-sitter-typescript" nil "tsx/src"))
1045+
(ruby . ("https://github.com/tree-sitter/tree-sitter-ruby"))
1046+
(rust . ("https://github.com/tree-sitter/tree-sitter-rust"))
1047+
(sql . ("https://github.com/m-novikov/tree-sitter-sql"))
1048+
(vue . ("https://github.com/merico-dev/tree-sitter-vue"))
1049+
(yaml . ("https://github.com/ikatyang/tree-sitter-yaml"))
1050+
(toml . ("https://github.com/tree-sitter/tree-sitter-toml"))
1051+
(zig . ("https://github.com/GrayJack/tree-sitter-zig"))))
1052+
1053+
(add-to-list 'major-mode-remap-alist '(sh-mode . bash-ts-mode))
1054+
(add-to-list 'major-mode-remap-alist '(c-mode . c-ts-mode))
1055+
(add-to-list 'major-mode-remap-alist '(c++-mode . c++-ts-mode))
1056+
(add-to-list 'major-mode-remap-alist '(c-or-c++-mode . c-or-c++-ts-mode))
1057+
(add-to-list 'major-mode-remap-alist '(css-mode . css-ts-mode))
1058+
(add-to-list 'major-mode-remap-alist '(js-mode . js-ts-mode))
1059+
;; (add-to-list 'major-mode-remap-alist '(java-mode . java-ts-mode))
1060+
(add-to-list 'major-mode-remap-alist '(js-json-mode . json-ts-mode))
1061+
(add-to-list 'major-mode-remap-alist '(makefile-mode . cmake-ts-mode))
1062+
(add-to-list 'major-mode-remap-alist '(python-mode . python-ts-mode))
1063+
(add-to-list 'major-mode-remap-alist '(ruby-mode . ruby-ts-mode))
1064+
(add-to-list 'major-mode-remap-alist '(conf-toml-mode . toml-ts-mode))
1065+
(add-to-list 'auto-mode-alist '("\\(?:Dockerfile\\(?:\\..*\\)?\\|\\.[Dd]ockerfile\\)\\'" . dockerfile-ts-mode))
1066+
(add-to-list 'auto-mode-alist '("\\.go\\'" . go-ts-mode))
1067+
(add-to-list 'auto-mode-alist '("/go\\.mod\\'" . go-mod-ts-mode))
1068+
(add-to-list 'auto-mode-alist '("\\.rs\\'" . rust-ts-mode))
1069+
(add-to-list 'auto-mode-alist '("\\.ts\\'" . typescript-ts-mode))
1070+
(add-to-list 'auto-mode-alist '("\\.y[a]?ml\\'" . yaml-ts-mode))
1071+
#+end_src
9971072
** Language Setup
9981073
*** Eglot Setup
9991074
#+begin_src emacs-lisp
10001075
(use-package eglot
1001-
:hook (prog-mode . eglot-ensure))
1076+
:ensure nil
1077+
:hook (prog-mode . eglot-ensure)
1078+
:custom
1079+
(eglot-autoshutdown t)
1080+
(eglot-events-buffer-size 0)
1081+
(eglot-extend-to-xref nil)
1082+
(eglot-ignored-server-capabilities
1083+
'(:hoverProvider
1084+
:documentHighlightProvider
1085+
:documentFormattingProvider
1086+
:documentRangeFormattingProvider
1087+
:documentOnTypeFormattingProvider
1088+
:colorProvider
1089+
:foldingRangeProvider))
1090+
)
10021091
#+end_src
10031092
*** COMMENT LSP-Mode Setup
10041093
#+begin_src emacs-lisp
@@ -1102,8 +1191,24 @@ jumping to visible text using a char-based decision tree
11021191
***** find the class/method in third library by keyword
11031192
(lsp-ivy-workspace-symbol)
11041193
*** JAVA Setup
1194+
**** Eglot-java
1195+
#+begin_src emacs-lisp
1196+
(with-eval-after-load 'eglot
1197+
(add-to-list 'eglot-server-programs
1198+
`(java-mode ,(concat ctm-lsp-java-server-install-dir "bin/jdtls")
1199+
"-configuration" ,(concat ctm-lsp-java-server-install-dir "config_mac")
1200+
"-data" ,(expand-file-name ".cache/workspace" user-emacs-directory)
1201+
,(concat "--jvm-arg=-javaagent:" ctm-lombok-jar-path)))
1202+
)
1203+
1204+
(use-package jarchive
1205+
:ensure t
1206+
:after eglot
1207+
:config
1208+
(jarchive-setup))
1209+
#+end_src
1210+
**** COMMENT Lsp-java
11051211
#+begin_src emacs-lisp
1106-
(setenv "JAVA_HOME" ctm-java-home-path)
11071212
(setq my-java-path (concat ctm-java-home-path "bin/java"))
11081213
(use-package lsp-java
11091214
:init
@@ -1145,7 +1250,7 @@ jumping to visible text using a char-based decision tree
11451250
(setq lsp-java-trace-server t)
11461251
(setq lsp-java-configuration-check-project-settings-exclusions t)
11471252
(setq lsp-java-completion-guess-method-arguments t)
1148-
;; (add-hook 'java-mode-hook 'lsp)
1253+
11491254
;; 只在java-mode save的时候 调用lsp-java-origanize-imports
11501255
;; (add-hook 'java-mode-hook
11511256
;; (lambda()
@@ -1165,30 +1270,9 @@ jumping to visible text using a char-based decision tree
11651270
;; (add-hook 'java-mode-hook #'lsp-java-boot-lens-mode)
11661271
)
11671272

1168-
(use-package dap-java
1169-
:ensure nil
1170-
:config
1171-
(dap-register-debug-template
1172-
"localhost:5005"
1173-
(list :type "java"
1174-
:request "attach"
1175-
:hostName "localhost"
1176-
:port 5005))
1177-
(dap-register-debug-template
1178-
"lxd"
1179-
(list :type "java"
1180-
:request "attach"
1181-
:hostName "127.0.0.1"
1182-
:port 5005))
1183-
;; :config
1184-
;; (global-set-key (kbd "<f7>") 'dap-step-in)
1185-
;; (global-set-key (kbd "<f8>") 'dap-next)
1186-
;; (global-set-key (kbd "<f9>") 'dap-continue)
1187-
)
1188-
1189-
;;==========java end==========
1273+
;; ;;==========java end==========
11901274

1191-
;;========== maven pom==========
1275+
;;====== maven pom==========
11921276
;; https://github.com/m0smith/maven-pom-mode.git
11931277
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
11941278
;; (add-to-list 'load-path (expand-file-name "site-lisp/maven-pom-mode" user-emacs-directory)) ;;
@@ -1197,13 +1281,6 @@ jumping to visible text using a char-based decision tree
11971281
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
11981282
;;==========maven pom end==========
11991283

1200-
(use-package mvn
1201-
:ensure t
1202-
)
1203-
1204-
(defun mvn-install ()
1205-
(interactive)
1206-
(mvn "install"))
12071284
#+end_src
12081285
**** Hot Deployment
12091286
use spring-devtools , gradle no autocompile classes, so command: `gradle bootJar -t` or `gradle -t classes processResources` when `gradle bootRun`;
@@ -1212,6 +1289,16 @@ use spring-devtools , gradle no autocompile classes, so command: `gradle bootJar
12121289
(use-package groovy-mode
12131290
)
12141291
#+end_src
1292+
*** Maven Setup
1293+
#+begin_src emacs-lisp
1294+
(use-package mvn
1295+
:ensure t
1296+
)
1297+
1298+
(defun mvn-install ()
1299+
(interactive)
1300+
(mvn "install"))
1301+
#+end_src
12151302
*** Web-Mode Setup
12161303
#+begin_src emacs-lisp
12171304
(use-package web-mode
@@ -1334,17 +1421,17 @@ git tools
13341421
** Nginx Setup
13351422
#+begin_src emacs-lisp
13361423
(use-package nginx-mode)
1337-
(use-package company-nginx)
1424+
;; (use-package company-nginx)
13381425
#+end_src
13391426
** HttpClient Setup
13401427
#+begin_src emacs-lisp
13411428
(use-package restclient)
13421429
(use-package ob-restclient)
1343-
(use-package company-restclient
1344-
:after(restclient-mode)
1345-
)
1430+
;; (use-package company-restclient
1431+
;; :after(restclient-mode)
1432+
;; )
13461433

1347-
(add-to-list 'auto-mode-alist '("\\.hpct\\'" . restclient-mode))
1434+
;; (add-to-list 'auto-mode-alist '("\\.hpct\\'" . restclient-mode))
13481435
#+end_src
13491436
** Youdao Translate Setup
13501437
#+begin_src emacs-lisp

0 commit comments

Comments
 (0)