Почему в руководстве по расширению VSCode рекомендуется подписать зарегистрированную команду на context.subscriptions
?
Это не кажется необходимым или полезным из того, что я могу сказать до сих пор.
Вот фрагмент кода из расширения VSCode официальный учебник :
let disposable = vscode.commands.registerCommand('extension.helloWorld', () => {
// The code you place here will be executed every time your command is executed
// Display a message box to the user
vscode.window.showInformationMessage('Hello World!');
});
context.subscriptions.push(disposable);
но, похоже, это само по себе прекрасно работает:
vscode.commands.registerCommand('extension.helloWorld', () => {
vscode.window.showInformationMessage('Hello World!');
});
Также я попытался отключить расширения, которые делают и не добавляют свои зарегистрированные команды в context.subscriptions
- команды были недоступны после отключения в обоих случаях.
Справочник по VS Code API определяет subscriptions
как:
подписки: {dispose} []
Массив, к которому можно добавить одноразовые товары. Когда это расширение деактивировано, одноразовые изделия будут утилизированы.
Означает ли это, что если зарегистрированные команды НЕ удаляются, то их слушатели как-то зависают даже после закрытия расширения?
TDLR - стоит ли подписываться на мои команды или нет, и почему?
Любые объяснения или идеи будут оценены!