From c8ee8a25c5e943bf4254ee6c8f0274518a4e3b2d Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Fri, 24 Jun 2022 10:10:22 +0200 Subject: [PATCH] adopt snippets with profile change (#153079) * adopt snippets with profile change * feedback --- extensions/configuration-editing/package.json | 3 ++- .../contrib/snippets/browser/snippetsService.ts | 13 ++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/extensions/configuration-editing/package.json b/extensions/configuration-editing/package.json index c14ee2080ae..fdd714a55c2 100644 --- a/extensions/configuration-editing/package.json +++ b/extensions/configuration-editing/package.json @@ -52,7 +52,8 @@ ".devcontainer.json" ], "filenamePatterns": [ - "**/User/snippets/*.json" + "**/User/snippets/*.json", + "**/User/profiles/*/snippets/*.json" ] }, { "id": "json", diff --git a/src/vs/workbench/contrib/snippets/browser/snippetsService.ts b/src/vs/workbench/contrib/snippets/browser/snippetsService.ts index b3c768fe663..366ed64536b 100644 --- a/src/vs/workbench/contrib/snippets/browser/snippetsService.ts +++ b/src/vs/workbench/contrib/snippets/browser/snippetsService.ts @@ -350,9 +350,16 @@ class SnippetsService implements ISnippetsService { } private async _initUserSnippets(): Promise { - const userSnippetsFolder = this._userDataProfileService.currentProfile.snippetsHome; - await this._fileService.createFolder(userSnippetsFolder); - return await this._initFolderSnippets(SnippetSource.User, userSnippetsFolder, this._disposables); + const disposables = new DisposableStore(); + const updateUserSnippets = async () => { + disposables.clear(); + const userSnippetsFolder = this._userDataProfileService.currentProfile.snippetsHome; + await this._fileService.createFolder(userSnippetsFolder); + await this._initFolderSnippets(SnippetSource.User, userSnippetsFolder, disposables); + }; + this._disposables.add(disposables); + this._disposables.add(this._userDataProfileService.onDidChangeCurrentProfile(() => this._pendingWork.push(updateUserSnippets()))); + await updateUserSnippets(); } private _initFolderSnippets(source: SnippetSource, folder: URI, bucket: DisposableStore): Promise {