Purpose: to allow code in "text" nodes to be searched by OS search utilities which is now hidden in EGP files due to the compression of this information.
Change: Add options to the program's options and the file's options to instruct EG so that when a project is saved, EG saves certain nodes in an un-compressed XML file in the same destination folder as the usual EGP file that is created at save. By text node, we mean either program nodes, "last code submitted" nodes, log nodes, and/or note nodes, etc. The program options would control default behavior of newly created files, where the file's options would override the default-behavior options for the specific file. I would not see this to be used in conjuction with EGP files saved with password encryption.
Motivation: My working group has always used SAS Interactive and Batch and is accustomed to using the OS to perform text searches of their collections of SAS program files. The decision to design EGP files as compressed files with a internal file structure makes these files non searchable in usual, conventional ways. An idea like this can allow an OS to search EGP files as SAS files, if the user chooses.
Other ideals to implement in conjunction with this idea:
store this XML file in the EGP file but not as a non-compressed file in the zip file structure.
Program EG so that when it is called to open an "XML" like this, one that it created, then EG would instead open the accompanying sister EGP file, if it exists -- if it has same modified date.
The XML schema could be simply implemented. One XML tag for each node, with at least the process flow and node names stored. Or a more complicated schema -but- not too complicated.
Or the file is just a text file, not involving XML. But also stored in a away that would prevent these files from being inadvertantly ran like conventional SAS code files.
Allow user to choose which type of text nodes are to be included in the text output XML file: e.g. program nodes, "last code submitted" nodes, log nodes, and/or note nodes, etc.