You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 11:37:17