Folder Tabs

So a while ago I stopped using Codea, but have recently returned to it, deciding instead to try to limit the complexity of what I am writing (which also fits with my recent life style, as the complexity of the code I work with at my current job leaves me with less bandwidth for complexity in hobby projects). I’m also making greater use of dependencies, to try to reduce the number of files in one project, but even the simplest things get unwieldy if I use proper object oriented programming methods (i.e. don’t force too much code into one object).

So the one thing I still really, really need is a way to better organize the separate files.

Would it be possible to add a “New Folder” option to “New Class” and “New Blank File”? That would create a new tab that represents a folder. Touching the folder tab would replace all of the tabs with tabs for the files (or folders!) within that folder, in addition to a single “Go Up a Level” (or “Exit Folder” or “Go to parent-folder-name-here”) tab to navigate up. Alternately, you can handle go-up-a-folder navigation (while within a folder) by changing the X to close the project to a ^ to go up a level, or else add “Go up a level” to the “Do” menu. File execution sequence would be intuitive (when you hit the folder, execute all files in the folder in order, then continue as normal).

If this would be doable, it would be a huge, huge boon to how I work, and how far I can go with Codea.

i share the need. simply allowing multiple rows of tabs might work for me.

One further use for this, although it’s only an idea, and could be really hard to implement, depending on your underlying code structure…

You could also make each dependency a tab, which would behave just like a folder, although when you go into the folder for a dependency, you are really going into that project. That’s what could make it really hard to implement on your end, depending entirely on the finicky little details of exactly how you did this and that.

But that would make it really easy to go into and tweak dependencies. It’s not a killer to have to go open the project to make changes, and it’s not something I need to do often, but this would be handy (especially just to go back and review the code, for instance to remember exactly what the parameter list is for an object’s method call). Dependencies would probably need to go at the front (left), unless you also wanted to provide the ability to let those tabs be reordered (by dragging, as with any other), in which case you’ve also added the ability to control the execution order of dependencies within a project’s code. I’m not sure that has value, though, as dependencies need to be stand alone, so it really only makes sense for them to execute first, in a well-defined order.

To make things even nicer (and this would be handy!), you could provide an option to turn a folder into a dependency, i.e. automatically copy the code into a separate project, and set the new project up as a dependency of the original project. This would make refactoring as a project grows a lot easier.

In fact, while I far prefer the “Folder Tabs” method described above, this is a second best approach, if it is easier/quicker to implement. At least this way, as I complete a block of code, I could more easily migrate it and all related files out into a “subproject”, so it doesn’t clutter everything else. I don’t know if this would get tedious in the long run, having to constantly switch projects to adjust certain things, but it would make me more likely to use more dependencies and so keep each individual code base more compact.

BTW, in spite of my constant requests for improvements, Codea really is a fantastic accomplishment. That fact that I keep coming back to it, and coming up with ideas to improve it, shows you how much it’s inspired a great level of interest in me. Kudos.