diff --git a/extensions/emmet/src/emmetCommon.ts b/extensions/emmet/src/emmetCommon.ts index d3bf6412b43..e13f51377b0 100644 --- a/extensions/emmet/src/emmetCommon.ts +++ b/extensions/emmet/src/emmetCommon.ts @@ -17,7 +17,7 @@ import { fetchEditPoint } from './editPoint'; import { fetchSelectItem } from './selectItem'; import { evaluateMathExpression } from './evaluateMathExpression'; import { incrementDecrement } from './incrementDecrement'; -import { LANGUAGE_MODES, getMappingForIncludedLanguages, updateEmmetExtensionsPath } from './util'; +import { LANGUAGE_MODES, getMappingForIncludedLanguages, updateEmmetExtensionsPath, getPathBaseName } from './util'; import { reflectCssValue } from './reflectCssValue'; export function activateEmmetExtension(context: vscode.ExtensionContext) { @@ -134,6 +134,13 @@ export function activateEmmetExtension(context: vscode.ExtensionContext) { updateEmmetExtensionsPath(); } })); + + context.subscriptions.push(vscode.workspace.onDidSaveTextDocument((e) => { + const basefileName: string = getPathBaseName(e.fileName); + if (basefileName.startsWith('snippets') && basefileName.endsWith('.json')) { + updateEmmetExtensionsPath(); + } + })); } /** diff --git a/extensions/emmet/src/util.ts b/extensions/emmet/src/util.ts index 8ef33e97a83..a92638e2a90 100644 --- a/extensions/emmet/src/util.ts +++ b/extensions/emmet/src/util.ts @@ -647,3 +647,9 @@ export function isNumber(obj: any): obj is number { export function toLSTextDocument(doc: vscode.TextDocument): LSTextDocument { return LSTextDocument.create(doc.uri.toString(), doc.languageId, doc.version, doc.getText()); } + +export function getPathBaseName(path: string): string { + const pathAfterSlashSplit = path.split('/').pop(); + const pathAfterBackslashSplit = pathAfterSlashSplit ? pathAfterSlashSplit.split('\\').pop() : ''; + return pathAfterBackslashSplit ?? ''; +}