簡體   English   中英

將行書簽添加到 Monaco-Editor

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM