如何自定义JSON模式悬停?

时间:2019-04-27 10:37:08

标签: monaco-editor

使用monaco-editor v0.14.3,我们基于JSON模式设置了JSON编辑器,如下所示:

monaco.languages.json.jsonDefaults.setDiagnosticsOptions(
{
  validate: true,
  allowComments: true,
  schemas:
    [
      {
        uri: "https://server/schema.json",
        fileMatch: ["*.json"],
        schema: schema
      }]
});

其中schema是一个JSON模式对象,为此模式中的每个属性都定义了description属性。这个description属性包含一些HTML标记,当将鼠标悬停在JSON编辑器上时,该description的显示没有解释HTML标记,它显示了类似“此属性定义 …”。

我们朝着monaco.languages.registerHoverProvider()方法的方向看,以便自己提供悬停文本,但是无法访问默认的悬停机制,该机制会计算默认的JSON模式属性,以便对其进行自定义并将HTML转换为Markdown:是否可以访问与悬浮文本相关的JSON模式中的description

此外,当使用Markdown或HTML修改JSON模式description属性时,内置的悬停功能会继续将此字段解释为原始文本:是否可以强制默认悬停系统将其解释为降价还是HTML?

1 个答案:

答案 0 :(得分:2)

感谢the guys from Monaco,有一个名为markdownDescription的未记录属性,JSON语言服务使用该属性代替了description。这不是标准的,但是可以。