我正在向摩纳哥添加自定义语言,如下所示:
monaco.languages.register({ id: 'someLanguage' });
monaco.languages.registerCompletionItemProvider('someLanguage', {
provideCompletionItems: function () { /* ... */ }
});
Run Code Online (Sandbox Code Playgroud)
我在开发环境中执行此操作,该环境会在更改时热重新加载,因此它使用热重新加载。每次保存内容时都会再次运行相同的代码。导致上面的代码被多次调用,从而monaco一次又一次地注册相同的函数。在这个完成提供程序的示例中,当在脚本热重新加载后添加新的提供程序时,我以前的所有提供程序都会被保留。
我们有没有办法取消注册一种语言以便再次注册它?
谢谢
Nic*_*ick 11
registerCompletionItemProvider返回一个带有函数的对象dispose。只需调用它即可取消注册您的侦听器。
const { dispose } = registerCompletionItemProvider( ... )
dispose();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1590 次 |
| 最近记录: |