monaco-editor - Monaco Editor 悬停消息未显示

标签 monaco-editor

我正在尝试向我的 Monaco Editor Web 组件添加错误注释。我有以下被调用的代码。但我找不到悬停消息的痕迹 - 我想我必须将鼠标放在代码的第 1 行上 - 在屏幕上或开发控制台 dom 查看器中更靠前?

我错过了什么?

// this is a function that lit-element 3.0 requires
firstUpdated() {
    let mbDomNode = document.querySelector("#code-area");
    let codeArea = mbDomNode ? (mbDomNode as HTMLElement) : undefined;

    this.editor = monaco.editor.create(this.container.value!, {
        value: this.getCode(),
        language: this.getLang(),
        theme: this.getTheme(),
        automaticLayout: true,
        minimap: {
            enabled: false,
        },
        // lineNumbers: "off",
        // ariaContainerElement essential for Elm virtual dom
        ariaContainerElement: codeArea,
        glyphMargin: true,
    });
    monaco.languages.register({ id: "mix" });
    monaco.languages.setMonarchTokensProvider("mix", mixLang);
}

addError(err: { row: number; message: string }) {
    // `!` is the non-null assertion operator.
    this.editor!.deltaDecorations(
        [],
        [
            {
                range: new monaco.Range(err.row, 1, err.row, 30),
                options: {
                    isWholeLine: true,
                    // class for line of code
                    // className: "error-decoration",
                    // class for space between code and line numbers
                    linesDecorationsClassName: "error-decoration",
                    // FIXME somehow???
                    hoverMessage: { value: err.message },
                    // class for space to left of line numbers
                    // glyphMarginClassName: "error-decoration",
                    // glyphMarginHoverMessage: { value: err.message },
                },
            },
        ]
    );
}

类已正确添加,但当我悬停时没有消息

enter image description here

在官方网站上,我可以看到它有效 - https://microsoft.github.io/monaco-editor/playground.html#interacting-with-the-editor-line-and-inline-decorations

区别似乎在于官方网站上的 monaco 正在创建一个带有类 overflowingContentWidgets 的 div,其中有很多子节点。在我的实现中,这个 div 仍然是空的。但我不知道为什么? (事实是,我正在 Web 组件的 Shadow dom 中完成工作,而 MSFT 正在使用 iframe)

enter image description here

最佳答案

好吧,问题是我试图阻止所有语言支持的编译

import * as monaco from "monaco-editor";
// import * as monaco from "monaco-editor/esm/vs/editor/editor.api";

此更改中的某个地方也减少了编辑器功能

更新:当我迁移到 Monaco 0.37 时,问题又出现了 - 目前没有解决方案:-(

关于monaco-editor - Monaco Editor 悬停消息未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69616905/

相关文章:

reactjs - 为什么代码的随机部分突出显示?

git - git diff前后获取文件

jestjs - "Identifier ' 全局 ' has already been declared at compileFunction"错误在升级到 monaco-editor 0.21.0 后的 Jest 测试中

monaco-editor - Monaco Editor registerCompletionItemProvider 移除默认的局部变量完成

jquery - 使用 RESTful Webservice 完成 Monaco 编辑器代码

javascript - 引用错误 : monaco is not defined

validation - Monaco Editor 中自定义语言的语法验证

monaco-editor - Monaco Editor 匹配括号不突出显示

javascript - TypeScript + Monaco 编辑器中的未知类型是什么?

monaco-editor - 如何将 Windows 的 EOL 设置为 LF,以便 API 使用\n 获得值(value)。不是\r\n