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

如何设置monaco-editor中首个变量hover不显示前置注释?

解决 Monaco Editor 中变量悬停显示前置注释的问题

方案一:调整注释位置(最简单)

TypeScript 语言服务会自动把紧邻变量声明的单行注释关联到该变量,导致悬停时一并显示。只要在注释和变量之间加一个空行,就能让注释变成独立的文件级注释,不会被绑定到后续变量:

// 这里是不会被关联到变量的注释

const myVar = 'test';

方案二:自定义悬停提供者(灵活适配复杂场景)

如果没法调整注释位置,可以通过注册自定义的悬停提供者,过滤掉不需要的注释内容:

// 给TypeScript注册自定义悬停逻辑
monaco.languages.registerHoverProvider('typescript', {
  async provideHover(model, position) {
    // 获取TS语言服务的默认悬停信息
    const worker = await monaco.languages.typescript.getTypeScriptWorker();
    const client = await worker(model.uri);
    const quickInfo = await client.getQuickInfoAtPosition(model.uri.toString(), model.getOffsetAt(position));

    if (!quickInfo) return null;

    // 过滤掉注释内容(根据你的实际注释格式调整判断逻辑)
    const cleanContent = quickInfo.displayParts
      .filter(part => !part.text.includes('你要隐藏的注释关键词'))
      .map(part => part.text)
      .join('');

    return {
      contents: [{ value: cleanContent }]
    };
  }
});

这个方法需要你根据注释的实际内容调整过滤规则,确保只移除目标注释,保留变量本身的类型提示。

内容的提问来源于stack exchange,提问作者Jiao Lu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 16:27:13