Skip to content

Eclipse JDT Language Server

archer-n edited this page May 20, 2022 · 8 revisions

快速开始

环境准备

  1. 下载Eclipse JDT LS。例如:我下载的目录是/home/archer/.cache/jdt-language-server-latest

  2. jdtls命令加入环境变量,jdtls命令位于下载的Eclipse JDT LS目录的bin目录下。例如: 我的是在/home/archer/.cache/jdt-language-server-latest/bin

  3. 运行 jdtls -h,确保jdtls命令在全局可找到。

jdtls -h
usage: jdtls [-h] [--validate-java-version | --no-validate-java-version] [--jvm-arg JVM_ARG]

options:
  -h, --help            show this help message and exit  
  --validate-java-version, --no-validate-java-version
  --jvm-arg JVM_ARG     An additional JVM option (can be used multiple times. Note, use with equal sign.
                        For example: --jvm-arg=-Dlog.level=ALL

配置

在你的配置中增加 (require 'lsp-bridge-jdtls)

其他

为什么需要 (require 'lsp-bridge-jdtls)

因为jdtls要求每个项目需要指定一个唯一的数据目录,也就是启动命令中的-data参数。

但是默认的langserver/jdtls.json是不支持根据项目指定-data参数,所以lsp-bridge-jdtls.el主要的作用是动态的指定一些用户相关的配置,让jdtls能拿到正确的启动参数。

当你(require 'lsp-bridge-jdtls)后,他会在java-mode-hook中添加lsp-bridge-get-lang-server-by-project的实现来自定义语言服务器配置

(add-hook 'java-mode-hook (lambda ()
                            (setq-local lsp-bridge-get-lang-server-by-project 'lsp-bridge-get-jdtls-server-by-project)))