Yes, I tried my hand at one of these. Like Oleg mentions, some sort of automation can dump the load scripts of all .QVW that will allow it (and also collect stand alone .QVS files). (As an example, the Governance Dashboards may do some automation of this nature)
While collecting the scripts wasn’t necessarily simple, it still wasn’t the trickiest part for me. That came when evaluating QV script syntax as data.
There started to enter a lot of considerations about code as data, regarding line numbering, whitespace, statements that span multiple rows, multiple statements within a single row, what programmatic characters signify the types of programmatic actions, how do you tell when those characters are being used as literals and not as part of a command?
The load script began to get insane, but at the end of it, I was able to compare every .QVW script on my entire archive side by side in a pivot table and apply color-coding based on actions.
A few tests and features, this primitive creation (a pretty rough but functional interface) was able to fulfill:
- Verify that a group of .QVW scripts were all programmatically identical in their initialization variables. (to perform this check with ordinary means, I might’ve imported the load scripts individually into a .DIFF program, and evaluated comparison in pairs, but was able to do the DIFF in bulk here all at once, without the external tool
- Verify that a strain of files were all using an active include script (it was able to show immediately which files were lacking the targeted include)
- Identify the verbatim usage of a variable name across multiple .QVW (from choosing a variable from the list box, the pivot table reduced to only columns per script containing that variable, and then the rows reduced to the line/statement numbers where that variable appeared)
You’ll see in the color-coding here, blue entries represent detection of set/let statements for variable tracking, orange indicates a script tab definition, green represented comments. Yellow along the left side indicates more than one variant of syntax has been detected for the that given LINE or STATEMENT when evaluated across all the possible applications in selection. (so in this case in the first shown image, with hundreds of applications in selection, every line is indicating at least some difference. With Line #6 expanded in the pivot table, the sub-dimension itemizes 5 different syntax variants appearing on line 6 of all my applications in selection)