Monaco编辑器 - 跟随链接钩子

13

各位程序员:

我很难找到一个'ctrl+click'(跟随链接)的编辑选项。在演示页面上,链接是在新标签页中打开的: https://microsoft.github.io/monaco-editor/index.html

我经过了彻底的谷歌搜索,但没有找到任何有用的信息。我查看了API文档,但只找到了上下文操作,其中不包括跟随链接或ctrl+click操作。

我想要解析文件路径,并触发一些自己的自定义方法,而不是在新标签页中打开。

你们中的任何人找到了在哪里添加/修改这个行为的线索吗?

提前感谢。


这方面有任何消息吗?谢谢! - cancerbero
这个问题有任何最新消息吗? - Allan Martins
这个问题有任何新进展吗?谢谢! - A. Matías Quezada
2个回答

1

你可以重载 IOpenerService的Open 方法,像这样:

var openerService = {
    open: function (resource, options) {
        // do something here, resource will contain the Uri
    }
};

var editor = monaco.editor.create(document.getElementById('container'),
    {
        automaticLayout: true, language: 'plaintext'
    },
    {
        openerService: openerService
    }
);

0

我找不到比钩取 window.open 并检查堆栈跟踪更好的方法。虽然不是理想的,但它能够起作用。

const realopen = window.open;
function openShim(url?: string | URL, target?: string, features?: string) {
    const calledFromMonaco = new Error().stack?.includes("windowOpenNoOpener");
    if (calledFromMonaco) {
        return null;
    }
    return realopen(url, target, features);
}
window.open = openShim;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接