博客园

super.hill

记录搬砖中遇到的坑,欢迎批评指导!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

monaco-editor 

当使用多个或者打开多次编辑器时,输入代码,会发现有多个重复提示,

此时 monaco.languages.registerCompletionItemProvider 已经注册多次了,使用一个全局变量控制多次注册

 
// 判断已注册的,避免重复注册
将注册记录可以挂到 函数上 monaco.languages.registerCompletionItemProvider
if(!monaco.languages.registerCompletionItemProvider[language]) {
    monaco.languages.registerCompletionItemProvider[language] = true;
monaco.languages.registerCompletionItemProvider(language, { provideCompletionItems:
async function (model, position) { let suggestions = []; const langLoader = await monaco.languages .getLanguages() .find((item) => { return item.id === language; }) .loader(); const keywords = langLoader.language.keywords; keywords.forEach((item) => { suggestions.push({ label: item, kind: monaco.languages.CompletionItemKind.Snippet, insertText: item, }); }); return { suggestions }; }, }); }

 

posted on 2022-12-19 11:50  超岭  阅读(1227)  评论(0编辑  收藏  举报
博客园