[英]Add Line Bookmarks to Monaco-Editor
有什么方法可以在摩纳哥编辑器中为一行添加书签,类似于 VSCode 书签? 似乎没有这样的内置功能。 如果是这样,我怎样才能在一行前面显示一个标记? 像断点这样的东西也是可以接受的。
我在下面为以后需要此功能的任何人找到了解决方案。
CSS:
<head>
<style>
.BookmarkGlyphMarginClass {
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAGlJREFUOE9jZKAQMKLp/0+keXB9owYwMIyGwWAPg3sMDAwF0KQ9gYGBQQkpmeNNyt8ZGBi6GBgYOhgYGH5ANXEyMDCUQzEHA5LX0dPBZgYGhnwGBgaQ7dgAyBUTGRgYfGGS6BYQmRkRygCJrhYRt46k9gAAAABJRU5ErkJggg==');
background-size: contain;
}
.BookmarkLine {
background: #FDFD96;
}
</style>
</head>
Javascript:
function ToggleBookmarkCurrentLine() {
var line = editor.getPosition().lineNumber;
current_bookmarks = [];
editor.getLineDecorations(line).forEach(decoration=>
{
if (decoration.options.className === 'BookmarkLine') {
current_bookmarks.push(decoration.id);
}
});
if (current_bookmarks.length == 0) {
decorationsId = editor.deltaDecorations(
[],
[
{
range: new monaco.Range(line, 1, line, Infinity),
options: {
isWholeLine: true,
className: 'BookmarkLine',
glyphMarginClassName: 'BookmarkGlyphMarginClass',
stickiness: monaco.editor.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges
}
}
]
);
}
else {
editor.deltaDecorations(current_bookmarks, [] );
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.