如何在Neovim中借助Eclipse LSP自动生成Java构造方法
解决方案:自动生成Java构造方法(基于Mason+Eclipse LSP)
直接用Eclipse JDT LS自带的代码动作
你当前用的Eclipse LSP(通常是通过Mason安装的eclipse.jdt.ls)本身就支持构造方法生成,只需正确触发:- 在类内部空白行或类名位置,触发LSP的代码动作(Code Actions)——Vim/Neovim里一般调用
vim.lsp.buf.code_action(),对应快捷键可能是<leader>ca(取决于你的个人配置)。 - 在弹出的代码动作列表中,找到类似「Generate Constructor using Fields」的选项,选中后会弹出字段选择框,勾选需要包含在构造方法里的字段,确认后就能自动生成对应构造方法。
- 在类内部空白行或类名位置,触发LSP的代码动作(Code Actions)——Vim/Neovim里一般调用
检查LSP配置确保功能正常
确认Mason安装的eclipse.jdt.ls服务已正常启动,且你的LSP客户端(比如lspconfig)配置未禁用代码动作相关功能。如果是Neovim,可在配置中确认capabilities.textDocument.codeAction已启用。备选:用代码片段工具补全
如果暂时不想依赖LSP的代码动作,也可以搭配Vim的代码片段插件(比如LuaSnip、UltiSnips)自定义构造方法片段。比如设置一个触发词(比如ctor),输入后自动生成无参构造;或者利用片段的变量捕获功能,自动读取当前类的字段生成带参构造。
内容的提问来源于stack exchange,提问作者Hugo Alvarez
相关产品推荐
相关产品推荐

