widget小部件
ContentWidget内容部件
显示在编辑器上方,可穿透,且位置完全由position
属性定义,无法使用style
自定义
见https://microsoft.github.io/monaco-editor/docs.html#interfaces/editor.IContentWidget.html
使用
var contentWidget = {
domNode: null,
getId: function () {
return 'my.content.widget';
},
getDomNode: function () {
if (!this.domNode) {
this.domNode = document.createElement('div');
this.domNode.innerHTML = 'My content widget';
this.domNode.style.background = 'red';
}
return this.domNode;
},
getPosition: function () {
return {
position: {
lineNumber: 17,
column: 18
},
preference: [
monaco.editor.ContentWidgetPositionPreference.ABOVE,
monaco.editor.ContentWidgetPositionPreference.BELOW
]
};
}
};
editor.addContentWidget(contentWidget);
Properties
allowEditorOverflow
是否允许小部件溢出Editor容器
suppressMouseDown
禁止小部件的mousedown
的默认事件(相当于e.preventDefault()
)
Methods
afterRender
beforeRender
getDomNode
返回HTMLElement
getId
返回一个string
作为小部件的唯一id
getPosition
获取内容小部件的位置。如果返回 null,内容小部件将被放置在屏幕之外
返回IContentWidgetPosition
对象, 包含:
- position: {
column
: 列(从1开始),lineNumber
: 行号(从1开始)}, 必选项 - preference 首选项,是个数组,判断
position
位置是内容相对行列
的位置, 必选项- monaco.editor.ContentWidgetPositionPreference.ABOVE 内容在
position
的上方 - monaco.editor.ContentWidgetPositionPreference.BELOW 内容在
position
的下方 - monaco.editor.ContentWidgetPositionPreference.EXACT 内容覆盖到
position
内容上面
- monaco.editor.ContentWidgetPositionPreference.ABOVE 内容在
OverlayWidget 蒙版部件
显示在编辑器内容上方,不可穿透,会挡住编辑器内容
见https://microsoft.github.io/monaco-editor/docs.html#interfaces/editor.IOverlayWidget.html
使用
var overlayWidget = {
domNode: null,
getId: function () {
return 'my.overlay.widget';
},
getDomNode: function () {
if (!this.domNode) {
this.domNode = document.createElement('div');
this.domNode.innerHTML = 'My overlay widget';
this.domNode.style.background = 'grey';
this.domNode.style.right = '30px';
this.domNode.style.top = '50px';
}
return this.domNode;
},
getPosition: function () {
return null;
}
};
editor.addOverlayWidget(overlayWidget);
Methods
- getDomNode
- getId
- getPosition