I personally like to use human readable files for configuration files, game levels, etc. The advantage is that one can always pop open a text editor and make a change, look for corruption, edit the file before there is a UI to do so, etc.
While Codea doesn’t have files or a filesystem, per se, it does have the storage APIs which are a suitable replacement… except that I can’t open and read/edit them manually.
So I would like to suggest a new feature where data stored by the Storage API, that is in text form, and be opened and edited in the Codea UI. So that way if I used Project Data to store a level in a game, I could open it up and make a tweak, or create levels before I have created a level editor, etc
@JockM you’ve predicted my intentions. I really want to work on an arbitrary data store that works with a visual picker. As well as a viewer/editor and Dropbox sync. It’s still not fully formed in my mind how this UI will look and behave, though.
@Simeon thats understandable. It isn’t the most obvious nut to crack. In addition to editing from the Codea UI, it might be interesting to have a
editXXXData() API (were XXX is Local, Project, or Global), which would pop up a modal editor.
This wouldn’t be a replacement for being able to edit in the UI, but it would be handy in a number of cases.
Thinking out loud - maybe we could simply expose the project/global storage as a tab? I mean, they’re just plist files internally.
This is a step away from something I’ve wished for in the past - to be able to treat the Projects and Tabs as a filesystem, and use regular lua file i/o on them. Self-modifying code, anyone?
@Bortels that was my first thought when I had it, and then I thought of one of the projects I am working on that has dozens of Project Data “files” that would get hard to deal with quickly.
So I I think that @Simeon is on the right track with wanting some kind of separate interface for viewing/editing those files.
And Self-Modifying code? If you thought I had strong opinions on namespaces, well that is peanuts to self modifying code…