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 {