使用习惯之后也希望能够将本职工作迁移进来,并不喜欢 lsp-mode 和 lsp-java,依赖太多。
最近终于用上了 dape,Java 的 dape 设置需要在 jdtls 中设置。因此分享的是 eglot 的配置。
(defun jdtls-command-contact (&optional interactive)
(let* ((jdtls-cache-dir (file-name-concat user-emacs-directory "cache" "lsp-cache"))
(project-dir (file-name-nondirectory (directory-file-name (project-root (project-current)))))
(data-dir (expand-file-name (file-name-concat jdtls-cache-dir (md5 project-dir))))
;; lombok 版本不能过低,会导致 dape 启动 lombok 不能加载。
(jvm-args `(,(concat "-javaagent:" (expand-file-name "~/.m2/repository/org/projectlombok/lombok/1.18.34/lombok-1.18.34.jar"))
"-Xmx8G"
;; "-XX:+UseG1GC"
"-XX:+UseZGC"
"-XX:+UseStringDeduplication"
;; "-XX:FreqInlineSize=325"
;; "-XX:MaxInlineLevel=9"
"-XX:+UseCompressedOops"))
(jvm-args (mapcar (lambda (arg) (concat "--jvm-arg=" arg)) jvm-args))
;; tell jdtls the data directory and jvm args
(contact (append '("jdtls")
jvm-args
`("-data" ,data-dir)
`(:initializationOptions
(:bundles
[,(file-truename "~/.m2/repository/com/microsoft/java/com.microsoft.java.debug.plugin/0.53.0/com.microsoft.java.debug.plugin-0.53.0.jar")])))))
contact))
(push '((java-mode java-ts-mode) . jdtls-command-contact) eglot-server-programs)
参考自 Can't get Eglot + JDTLS to work · joaotavora/eglot · Discussion #1185 · GitHub 其中几个需要注意的点,GitHub - microsoft/vscode-java-debug: Java Debugger for Visual Studio Code. 需要 jdk 大于等于 21,lombok 的版本需要大于等于 1.18.32,不然第一次启动的时候会导致加载不了 lombok。
另外 dape 默认使用的是内置的 project,切换项目启动 dape 并不会跟随项目修改 :filePath
, :mainClassand
和 :projectName
。需要 C-c C-k
清空只保留 jdtls 后强迫 dape 重新匹配三个值。
求教的点在于 js 和 python 两个的配置。
js debug 的时候遇到了两种错误,但是 npm run dev
都是可以正常启动的。
Could not read source map for chrome-error://chromewebdata/: Unexpected 503 response from chrome-error://chromewebdata/neterror.rollup.js.map: Unsupported protocol "chrome-error:"
Process exited with code 1
Uncaught Error Error [ERR_UNSUPPORTED_DIR_IMPORT]: Directory import '/Users/luciuschen/IdeaProjects/RuoYi-Vue3/vite/plugins' is not supported resolving ES modules imported from /Users/luciuschen/IdeaProjects/RuoYi-Vue3/vite.config.js
python debug 的时候遇到了 Unable to locate "python"
,虚拟环境已激活。