Монако - незарегистрированная языковая функция - PullRequest
0 голосов
/ 05 апреля 2020

Я добавляю собственный язык в Монако, например:

 monaco.languages.register({ id: 'someLanguage' });
 monaco.languages.registerCompletionItemProvider('someLanguage', { 
   provideCompletionItems: function () {...}
 }

Я делаю это в среде разработчиков, которая выполняет горячую перезагрузку при изменениях и, таким образом, использует горячую перезагрузку. Один и тот же код запускается снова каждый раз, когда содержимое сохраняется. Вызывая приведенный выше код для многократного вызова и, таким образом, Монако снова и снова регистрирует одни и те же функции. В этом примере поставщика завершения все мои предыдущие поставщики сохраняются при добавлении нового после горячей перезагрузки сценария.

Есть ли у нас какой-либо способ отменить регистрацию языка для его повторной регистрации?

Спасибо

1 Ответ

1 голос
/ 26 апреля 2020

registerCompletionItemProvider возвращает объект с функцией dispose. Просто позвоните, чтобы отменить регистрацию слушателя.

const { dispose } = registerCompletionItemProvider( ... )

dispose();
...