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

如何在LazyVim中禁用TypeScript对象内带~的代码提示?

解决LazyVim中TypeScript提示带~(波浪线)项的问题

方法一:配置tsserver禁用冗余提示

这些带~的提示通常是tsserver返回的重复实现类或冗余补全条目,可通过调整tsserver的LSP配置从源头禁用:

在你的LazyVim配置文件(比如lua/plugins/lsp.lua)中添加以下内容:

require("lazyvim.util").lsp.on_setup(function(server)
  if server.name == "tsserver" then
    server.config.settings = vim.tbl_deep_extend("force", server.config.settings, {
      typescript = {
        completion = {
          -- 排除实现类类型的补全提示
          filteredTypes = { "implementation" },
          -- 禁用自动可选链的冗余补全
          excludeAutomaticOptionalChainCompletions = true,
        },
      },
      javascript = {
        completion = {
          filteredTypes = { "implementation" },
          excludeAutomaticOptionalChainCompletions = true,
        },
      },
    })
  end
end)

方法二:通过nvim-cmp过滤提示项

如果tsserver配置无法解决,可直接在补全层面对带~的条目进行过滤:

在lua/plugins/cmp.lua或自定义配置中添加:

require("cmp").setup({
  sources = vim.tbl_map(function(source)
    if source.name == "nvim_lsp" then
      source.entry_filter = function(entry)
        -- 剔除label末尾带~的补全项
        return not string.match(entry:get_completion_item().label, "~$")
      end
    end
    return source
  end, require("cmp").config.sources),
})

两种方法中,方法一从LSP服务端控制输出,性能更优;方法二是客户端层面的过滤,适配性更广。

内容的提问来源于stack exchange,提问作者Roman Mahotskyi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 21:52:14