Neovim中配置jdtls禁用TODO标签却仍显示标记的技术求助
解决JDTLS中TODO任务标签无法禁用的问题
问题场景
配置JDTLS时通过VM参数尝试清空任务标签,但代码中的//TODO标记仍会显示,尝试过多种配置及项目自带的settings文件均无效,当前配置如下:
require('lspconfig')['jdtls'].setup { root_dir = function(fname) return vim.fn.getcwd() end, cmd = { 'jdtls', '-vmargs', '-Dorg.eclipse.jdt.ls.taskTags=', '-Dorg.eclipse.jdt.ls.taskPriorities=' }, }
有效解决方案
- 改用JDTLS内置settings配置:VM参数的配置方式优先级较低,直接在
settings字段中定义任务标签规则才能生效,修改后的配置示例:require('lspconfig')['jdtls'].setup { root_dir = function(fname) return vim.fn.getcwd() end, settings = { java = { tasks = { tags = {}, -- 清空所有预设的任务标签 priorities = {} -- 对应清空优先级配置 } } } } - 排查第三方插件干扰:如果安装了
todo-comments.nvim这类独立的任务标签插件,它们会绕过LSP配置自行检测TODO标记,需要在插件配置中禁用相关规则或关闭插件 - 强制重启LSP服务:修改配置后执行
:LspRestart jdtls,避免旧配置缓存导致新设置不生效
注意事项
JDTLS的任务标签配置优先级为:settings.java.tasks.tags > VM启动参数,因此直接在settings中定义的规则会覆盖默认的TODO、FIXME等标签。
内容的提问来源于stack exchange,提问作者YnwrdCreso
相关产品推荐
相关产品推荐

