[英]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.