I'm sorry, but large portions of this are going to need a rewrite. The truth is that I'm not a very experienced programmer, and having walked away from this for so long I can see massive problems with certain things I did while writing it -- things that are now keeping me from squashing some nasty bugs, because I can't follow my own code. I made it too convoluted, it's as simple as that, and now I need to simplify it up. The point is that it's going to be a little while before I get another version out. You have my apologies.
A regedit-like interface for editing SavedVariables.lua.
If you encounter a bug, especially if the program throws an exception at you, send me the exception data and let me know, generally, how it happened. I promise, I'll fix it!
This program is written in C#, and as such requires the .NET framework (version 1.1) to run.
Caution: Editing your SavedVariables file is risky, and a single syntax error at the wrong place can cause you to lose a large section of your data, or even the entire file -- unless you make a backup first. Before making changes, either by hand or using this tool, make a backup.
Also, using this tool by no means prevents you from damaging your file. Apart from the possibility of bugs, user error is still possible. For example, the program does NOT handle any escape characters for you. Also, it does NOT enforce datatypes. This is not because the program is incomplete, but because this is how I want it to work -- giving full power, and full responsibility, to the user. The thought of a "safe editing mode" has occurred to me, but I have no definite plans to implement such a feature at this time.
Browsing: Allows viewing your SavedVariables.lua file using a tree-and-list interface, like Windows Explorer or regedit
Editing: Privides a simple interface for editing array names, variable names and variable values
Deletion: Allows deletion of variables and arrays, singly and in groups
Addition: Allows addition of new variables and arrays
Copying and Pasting: Move arrays and variables around within files
Basic Export: Allows a single array and all subarrays to be saved to a separate file, with just a few clicks!
Advanced Export: Allows any combination of arrays to be saved to a separate file, with a little extra effort
Basic Import: Loads in the contents of another SV file (a full file or an export output file) and merges them into your file. Option to overwrite existing values or leave them as they are.
Advanced Import: Gives you total control over what parts of a file are imported and what is done with each individual array
Undo/Redo: Stores everything from a single edit to a full import, ready to take back all your mistakes
Searching: Basic feature allowing you to search the file for text strings
Option Saving: Stores a multitude of options in an XML file, so you don't need to change them all again every time you load the program
Colors to help you see which arrays are selected, and fonts to show you at a glance which arrays contain variables
Background Reload: Ability to automatically reload the file if it is modified by another program
Autoloading: Option to auto-load a file on startup: Either the last open file, a file of your specific choosing, or your own SV file (if the program can determine it)
Significant features that I may add, in order of priority: (Probability of eventual addition in parentheses)
Two editing modes - "safe", which enforces data types and takes care of escape characters, and "advanced", which works like the program does now. (6/10)
A rewritten treeview paint function, allowing you to see the checkstate indicator colors even on selected arrays, along with one or two other aesthetic changes. (2/10)
Any questions, comments, bug reports or suggestions are more than welcome.
Changes in 1.4:
Ctrl-A now selects all text in all textboxes
Some minor code refactoring
Slight modifications to the appearance of the Properties dialog
Fixed bug with pasting an array with subarrays over an array without subarrays
Changed the structure used to store variables.
Removed the options related to multi-page views as a result of significant speed increases.
Fixed crash that would occur if you checked the root node in certain circumstances.
Added a search feature. I will probably improve upon it in the future.