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

VSCode 1.59.1版本Linux系统下自定义扩展hover功能失效问题

失效原因及修复方案

1. 配置格式不符合1.59版本新增的强校验规则

VSCode 1.59版本新增了扩展声明能力的强校验逻辑,且Linux平台下的配置校验严格度高于Windows和macOS:

  • 你当前package.json中contributes.capabilities.hoverProvider配置为字符串类型的"true",不符合VSCode API要求的布尔值类型。1.58及更早版本会自动做类型转换兼容,1.59版本在Linux下会直接判定该能力声明无效,导致hoverProvider注册不生效。
  • 修复方案:对于直接调用vscode.languages.registerHoverProvider注册的悬浮能力,不需要额外在contributes.capabilities里声明,直接删除该段配置即可;如果要保留声明,把字符串"true"改为布尔值true。

2. 单词范围识别规则的平台差异

VSCode 1.59版本调整了document.getWordRangeAtPosition方法的默认单词分割正则,Linux平台下默认会拆分包含下划线的连续字符串,导致无法完整识别ABSORBING_BOUNDARIES这类带下划线的目标单词。

  • 修复方案:调用方法时显式传入匹配目标单词规则的自定义正则:
const range = document.getWordRangeAtPosition(position, /[A-Z_]+/);

3. 语言ID关联校验变严

1.59版本在Linux下调整了onLanguage激活事件的触发逻辑,只有文件明确关联到yales2test语言ID时才会触发扩展激活。如果没有配置文件后缀和语言ID的关联,打开对应文件时扩展不会激活,hover自然不会生效。

  • 修复方案:在package.json的contributes中补充语言关联配置,示例如下:
"contributes": {
  "languages": [
    {
      "id": "yales2test",
      "extensions": [".yales2", ".y2"] // 替换为你的实际文件后缀
    }
  ]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 06:45:04