在摩纳哥(ctrl +单击)中是否存在链接模型的首选方法?我正在实现一个带有外部标签管理+文件树的代码编辑器,一个编辑器,多个模型之间进行交换。对于用户来说,能够按住Ctrl键并单击包含项(对其他模型的引用,例如:@include 'abc'
)并使它们“可跟随”将是理想的选择。
我目前正在做的是注册代码透镜以打开所述模型。在镜头定义中,我执行model.findMatches(regexp)
,匹配include
语句,从匹配组中获取include文件名,并注册open命令。目前,这是可行的,但是我不知道有没有比每次生成镜头时都要扫描模型视口以寻找匹配的方法(最好通过ctrl + click)更好,更标准,更省力的方式来具有此功能({{1} }。
答案 0 :(得分:0)
四个月后在这里回答我自己的问题。是的,您不希望镜头注册链接,而是希望通过您的语言 registerLinkProvider
注册它们,以便用户可以像往常一样CTRL + click
。
为此,请使用 monaco.languages.registerLinkProvider
方法,该方法返回具有两个方法 provideLinks
和 resolveLink
的对象。
provideLinks
是您要进行解析和捕获链接的地方,无论您在此方法中返回什么,它都会传递给 resolveLink
。
resolveLink
将接受您从 provideLinks
返回的任何内容,以便您可以处理链接逻辑。
希望这有助于其他人并记住,this is your best Monaco friend。