Почему в руководстве по расширению 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
- команды были недоступны после отключения в обоих случаях.
Справочник по API кода VS определяет subscriptions
как:
подписки: {dispose} []
Массив, в который можно добавить одноразовые предметы. Когда это расширение деактивировано, одноразовые предметы будут утилизированы.
Означает ли это, что если зарегистрированные команды НЕ удаляются, их слушатели каким-то образом остаются даже после закрытия расширения?
TDLR - Стоит ли подписывать свои команды или нет и почему?
Приветствуются любые объяснения или идеи!