22import { reduce } from "conditional-reduce" ;
33import * as path from "path" ;
44import * as vscode from "vscode" ;
5- import { WebResourceType , wrDefinitionsStoreKey } from "../utils/Constants" ;
5+ import { extensionPrefix , WebResourceType , wrDefinitionsStoreKey } from "../utils/Constants" ;
66import { ErrorMessages } from "../utils/ErrorMessages" ;
77import { decodeFromBase64 , encodeToBase64 , extractGuid } from "../utils/ExtensionMethods" ;
88import { copyFolderOrFile , createTempDirectory , getFileExtension , getFileName , getRelativeFilePath , getWorkspaceFolder , readFileAsBase64Sync , readFileSync , writeFileSync } from "../utils/FileSystem" ;
@@ -360,6 +360,7 @@ export class WebResourceHelper {
360360 }
361361 writeFileSync ( linkerFile . fsPath , jsonToXML ( linkerFileDataJson ) ) ;
362362 vscode . commands . executeCommand ( "dvdt.explorer.webresources.loadWebResources" ) ;
363+ await this . updateLinkedResourcesContext ( ) ;
363364 return resc ;
364365 }
365366 }
@@ -379,6 +380,7 @@ export class WebResourceHelper {
379380 }
380381 writeFileSync ( linkerFile . fsPath , jsonToXML ( linkerFileDataJson ) ) ;
381382 vscode . commands . executeCommand ( "dvdt.explorer.webresources.loadWebResources" ) ;
383+ await this . updateLinkedResourcesContext ( ) ;
382384 return newResc ;
383385 }
384386 }
@@ -405,6 +407,7 @@ export class WebResourceHelper {
405407 }
406408 writeFileSync ( linkerFile . fsPath , jsonToXML ( linkerFileDataJson ) ) ;
407409 vscode . commands . executeCommand ( "dvdt.explorer.webresources.loadWebResources" ) ;
410+ await this . updateLinkedResourcesContext ( ) ;
408411 }
409412 }
410413
@@ -577,15 +580,17 @@ export class WebResourceHelper {
577580 return { displayname : wrDisplayNameUR , name : `${ prefix } _${ wrNameUR } ` , webresourcetype : wrType , content : wrContent , solutionid : solId , description : solName } ;
578581 }
579582 }
583+ }
580584
581- //#endregion Private
582-
583- // Ask for
584- // Display Name
585- // Name
586- // Web Resource Type (infer it from file extension)
587- // Content (get it from the file & convert it to base64)
585+ /**
586+ * Update the VS Code context for linked resources to enable/disable context menu items
587+ */
588+ private async updateLinkedResourcesContext ( ) : Promise < void > {
589+ const linkedFileNames = await this . getLinkedResourceStrings ( "@_localFileName" ) ;
590+ await vscode . commands . executeCommand ( "setContext" , `${ extensionPrefix } .linkedResources` , linkedFileNames ) ;
588591 }
592+
593+ //#endregion Private
589594}
590595
591596/**
0 commit comments