微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有没有办法在 Monaco Editor Margin 中放置文本而不是图标类?

如何解决有没有办法在 Monaco Editor Margin 中放置文本而不是图标类?

我知道如何将 glyphMarginClassName、linesdecorationsClassName 和 inlineClassName 添加到 Monaco 编辑器的选项中。但是有没有办法将字母字符添加到边距中?像这样:

Screen shot of Monaco Editor showing text in margin created by editing HTML with Chrome Debugger

解决方法

你可以这样做,是的。但是,不是使用动态文本,而是将 ::before 或 ::after 元素附加到该边距节点。

首先在行装饰中设置自定义 CSS 类名称:

            let ids = this.backend.deltaDecorations(sourceIDs,[{
                range: new Range(this.startLine,1,this.startLine,model.getLineLength(this.startLine)),options: {
                    stickiness: Monaco.TrackedRangeStickiness.GrowsOnlyWhenTypingBefore,isWholeLine: false,linesDecorationsClassName: `editorPromptFirst.${this.language}`,},}]);

并在您的 CSS 中添加如下文本:

.codeEditor .editorPromptFirst.sql::before,.codeEditor .editorPromptFirst.mysql::before {
    content: "sql>";
    display: block;
    margin-left: 4px;
    font-size: 0.9rem;
    color: #db8f00;
}

导致此显示:

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。