VSCode悬浮提示怎么显示Markdown格式?富文本渲染方法

千枫姑娘_5844

千枫姑娘_5844

2026-11-03

892人浏览

原创

VSCode悬浮提示默认不渲染Markdown,仅支持有限HTML标签如、、等,Markdown语法如加粗或链接原样显示;需手动转换为白名单标签且禁用样式与交互。

vscode悬浮提示怎么显示markdown格式?富文本渲染方法

VSCode悬浮提示默认不渲染Markdown

VSCode 的 hover 提示(鼠标悬停时弹出的 tooltip)原生只支持纯文本和极简 HTML 标签(如 、
),不解析 Markdown 语法。写 **加粗** 或 [链接](#),它就原样显示字符串,不会变粗、不会跳转、也不会换行——这不是配置没开,是语言服务器或编辑器本身没这个能力。

常见错误现象:
• 写了 /** @returns {string} 返回值说明:**支持中文** */,悬停里看到的是字面量 **支持中文**
• 在 TypeScript 的 JSDoc 里用 ```ts 包代码块,结果整段当一行文本挤在一起
• 用 markdown-it 渲染好 HTML 字符串传给 HoverProvider,但发现

、
    等标签被过滤或忽略

    要让 hover 显示富文本,必须返回 HTML 字符串并遵守白名单规则

    VSCode 的 HoverProvider.provideHover 接口允许返回 MarkedString[] 或 Hover 对象,其中内容字段若为字符串,会被当作「支持有限 HTML」的富文本处理。但注意:
    • 只有 、

    、、、
    、

    、
      、
        、
      1. 等少数标签被保留
        • 所有属性(如 class、style、onclick)一律被剥离
        • 标签不生效,无法点击跳转

        实操建议:
        • 不要用 marked 或 markdown-it 直接输出完整 HTML——它们生成的

        、
        全部被删,只剩文本
        • 手动映射常用 Markdown 元素到白名单标签:
         – **text** → text
         – *text* → text
         – 代码块用
        <code>...</code>
        ,别嵌套
        • 换行必须显式写
        ,Markdown 的空行或双空格无效
        • 中文标点、Unicode 符号可直接使用,无需转义

        自定义 HoverProvider 时容易漏掉的兼容点

        如果你在写插件或 Language Server,返回 Hover 对象时,以下细节直接影响渲染效果:
        • contents 字段如果是 MarkedString 数组,每个元素会被拼接,但换行需靠
        或

        ,不能依赖数组分隔
        • 若含 Location(比如想让 hover 里带跳转链接),VSCode 仅在 vscode:// 协议下支持,且只响应 Location,不响应 HTML 里的
        • 字体大小、颜色、行高完全由 VSCode 主题控制,无法通过内联 style 覆盖
        • 长文本会自动截断并显示“…”——没有 API 控制展开,只能精简内容

        一个最小可行示例(TypeScript):

        Convert Markdown To HTML And PDF - Markdown和HTML、PDF互转
        Convert Markdown To HTML And PDF - Markdown和HTML、PDF互转

        实现 Markdown↔ HTML 互转,支持导出 PDF,用于用户请求的文档格式转换。

        下载
        provideHover(document, position, token) {<br>  const range = document.getWordRangeAtPosition(position);<br>  const word = document.getText(range);<br>  return new Hover([<br>    '<p><strong>参数名</strong>:</p>',<br>    '<p>类型:<code>string</code><br>用途:标识用户 ID</p>',<br>    '<pre class="brush:php;toolbar:false;"><code>getUser("123")</code>
        '
        ]);
        }

        真正难的不是怎么写 HTML,而是判断哪些信息值得放进 hover——它空间极小、无交互、不可滚动。公式、表格、多级列表、Mermaid 图表,全都不适合放进去。这类内容应该引导用户去预览页或文档页,而不是硬塞进 tooltip。

      2. 相关文章

        PHP速学视频免费教程(入门到精通)
        PHP速学视频免费教程(入门到精通)

        PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

        下载

        本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

        相关专题

        更多
        vscode是什么_vscode怎么安装配置
        vscode是什么_vscode怎么安装配置

        VS Code(Visual Studio Code)是一款免费、开源的跨平台代码编辑器,由微软开发和维护。它被广泛用于软件开发和编程,支持多种编程语言和框架。VS Code 同时提供了丰富的功能和扩展性,使开发者可以高效地编写、编辑和调试代码。

        2023.06.30

        1535

        18

        vscode怎么运行代码
        vscode怎么运行代码

        vscode是一个运行于MacOS X、Windows和Linux之上的,针对于编写现代Web和云应用的跨平台源代码编辑器;vscode免费而且功能强大,对JavaScript和NodeJS的支持非常好,自带很多功能,例如代码格式化,代码智能提示补全、Emmet插件等。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

        2023.07.21

        3292

        3

        vscode使用的框架介绍
        vscode使用的框架介绍

        VSCode是一款跨平台代码编辑器,它基于Electron框架和Monaco Editor构建。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

        2024.03.14

        2089

        12

        vscode一般用来写什么语言
        vscode一般用来写什么语言

        VSCode是一款功能强大的代码编辑器,支持多种编程语言和文件格式。它内置对 JavaScript、Python、Java、C++、TypeScript、HTML/CSS、Go 等语言的支持。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

        2024.03.14

        1767

        8

        vscode可以写什么语言
        vscode可以写什么语言

        vscode是一款强大的代码编辑器,支持多种编程语言的开发。通过安装扩展,可以为 JavaScript/TypeScript、Python、Java、C#、PHP、Go、Ruby、Rust、HTML/CSS 等语言提供智能代码补全、调试和格式化等功能。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

        2024.03.15

        2627

        12

        vscode中文设置方法
        vscode中文设置方法

        方法一:在设置页面中,搜索“locale”,并选择“zh-cn”。方法二:按“Ctrl Shift P”快捷键,输入“Configure Display Language”,将语言修改为“zh-cn”。如果上述方法无效,可考虑安装中文插件。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

        2024.03.15

        1858

        14

        vscode用途介绍
        vscode用途介绍

        Visual Studio Code(VSCode)是一款由 Microsoft 开发的多功能文本编辑器,适用于各种编程语言。作为一款开源软件,VSCode 拥有代码高亮、自动补全、调试、Git 集成等强大功能,成为程序员不可或缺的工具。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

        2024.03.15

        1282

        10

        vscode和visualstudio的区别
        vscode和visualstudio的区别

        Visual Studio是一款功能强大的集成开发环境(IDE),适用于专业开发人员进行复杂项目的构建。而VSCode则是一款轻量级的代码编辑器,更适合各种规模的项目开发。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

        2024.03.15

        1156

        8

        vscode设置中文界面不生效解决方法
        vscode设置中文界面不生效解决方法

        vscode设置中文界面不生效解决方法:安装中文语言包、通过命令面板设置语言、检查 locale.json 设置、重新安装中文语言包、检查 VSCode 版本和更新、排除插件冲突、检查系统语言设置、查看 VSCode 日志和错误消息、重置 VSCode 设置、查看官方文档和社区支持。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

        2024.03.15

        554

        5

        热门下载

        更多
        网站特效
        /
        网站源码
        /
        网站素材
        /
        前端模板

        精品课程

        更多
        相关推荐
        /
        热门推荐
        /
        最新课程