Monaco 中自定义 Hover,Hover 效果是指当鼠标移动文字上展示出提示效果,就像页面上的 Tooltip 效果。最终页面的显示效果如下:
通过 registerHoverProvider 注册 Hover 触发时的处理方法
接口中提供了 4 个参数,前两个参数比较重要
- model: 当前文档
- position:当前鼠标位置对应的文字
返回 Hover 内容和 Hover 显示位置
代码实现如下
monaco.languages.registerHoverProvider('javascript', {
provideHover: function (model, position) {
const word = model.getWordAtPosition(position);
if (word) {
return {
range: new monaco.Range(
position.lineNumber,
word.startColumn,
position.lineNumber,
word.endColumn
),
contents: [{ value: '**Hover Content**\n\nThis is a tooltip for ' + word.word }],
};
}
return { contents: [] };
},
});