nvim-jdtls 使用教程
项目介绍
nvim-jdtls
是一个为 Neovim 提供的扩展,用于增强内置的 LSP(Language Server Protocol)支持,特别是针对 Eclipse JDT Language Server(jdtls)。这个项目通过添加额外的功能和处理 jdt://
URI,使得在 Neovim 中开发 Java 项目更加高效和便捷。
项目快速启动
安装
首先,确保你已经安装了 Neovim 和 nvim-lspconfig
。然后,你可以通过以下命令安装 nvim-jdtls
:
git clone https://github.com/mfussenegger/nvim-jdtls.git ~/.local/share/nvim/site/pack/plugins/start/nvim-jdtls
配置
在你的 Neovim 配置文件(通常是 init.vim
或 init.lua
)中添加以下配置:
-- 确保你已经安装了 nvim-lspconfig
require'lspconfig'.jdtls.setup {
cmd = { 'jdtls' },
root_dir = function()
return "C:\\Users\\Coury\\Documents\\Code\\interviews\\truleo\\app"
end,
flags = { debounce_text_changes = 150 },
on_attach = function(client, bufnr)
print('lsp server (jdtls) attached')
end
}
启动
在 Neovim 中打开一个 Java 文件,然后运行以下命令启动 jdtls:
:lua require'jdtls'.start_or_attach({cmd = {'jdtls'}, root_dir = "C:\\Users\\Coury\\Documents\\Code\\interviews\\truleo\\app"})
应用案例和最佳实践
代码重构
nvim-jdtls
提供了一些额外的功能,例如代码重构。你可以通过以下映射来组织导入和提取变量:
nnoremap <A-o> <Cmd>lua require'jdtls'.organize_imports()<CR>
nnoremap crv <Cmd>lua require('jdtls').extract_variable()<CR>
vnoremap crv <Esc><Cmd>lua require('jdtls').extract_variable()<CR>
UI 定制
你可以通过覆盖 jdtls 的 UI 选择器来获得更好的代码操作和其他功能的 UI 体验:
require'jdtls'.ui.picker.override(function(picker)
-- 自定义选择器逻辑
end)
典型生态项目
nvim-lspconfig
nvim-lspconfig
是 Neovim 内置的 LSP 配置管理工具,它与 nvim-jdtls
配合使用,提供了基础的 LSP 功能支持。
mason.nvim
mason.nvim
是一个用于管理 LSP 服务器的插件,它可以帮助你轻松安装和管理各种语言服务器,包括 jdtls。
通过这些工具和插件的结合使用,你可以在 Neovim 中构建一个强大的 Java 开发环境。