将行书签添加到摩纳哥编辑器



是否有任何方法可以在Monaco编辑器中为一行添加书签,类似于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, [] );
}   
}

最新更新