I’ve been using Codea for a long time now and for better or for worse (but likely for the better), it is the environment I’m growing up in as a coder.
• I find myself more and more drawn to writing shaders as —if you wish to exert full control over what ends up on the screen— the real meat happens in shaders.
• I wish for my code to be in one place, easy to organize and jump to what’s relevant at any moment. when I need some class I wrote before, I don’t import, I copy/paste the whole thing into a new tab so I can expand it as needed for the new application. Ending up with dozens of tabs becomes very inconvenient though..
so here’s a few things that would make my experience better and likely improve my productivity (and sanity) as my projects get bigger..:
-
something better than tabs!
• I’m imagining tabs to be collapsible code blocks floating around in a larger space, free to arrange as I please, kinda like your other program Shade (which I don’t really use as it turns out I’d rather stare at [[red]] code blocks without any syntax highlighting if that means I can see my shader code between the rest of my code.
more on that later.). few more ideas for this tab-space:
• globals should be visible in this space(attached to the tabs that contain them) to keep good track of them.
• avoid excess spaghetti by visualizing it connecting code blocks (can toggle off)
• snap to grid for the reimagined codeblock-tabs
• of course for technical reasons we still need to control the ordering of the tabs, that could be a separate view mode where they could all shown as a vertical stack (you can see longer tab titles that way) also simply display the order as numbering.
• import external projects to this tab-space, add option to turn an imported tab into a local copy. (could be the default behavior if you go in and start tweaking it, or just ask.? “save edits to the original or make a local copy?”) -
I wish for syntax highlighting and function suggestions/auto-complete in those [[double brackets]] shader code sections. the syntax colors should still be distinct from the codea/lua code to keep that visual distinction between glsl and lua.
-
I don’t own an apple pencil but I’d also like to make draw on my code. I feel like that feature should not be exclusive to owning a specific input device.
• also would like to scribble in the above suggested tab-space.
• annotation-mode could just be a button tab away?
• would then be useful to be able to pinch-zoom to make fine annotations using a crude tool for the job👉 (this works fine, just look at an app like Inkflow for example)
• lasso tool to select and move around scribbles.
• colors? (though would have to do some clever inverting colors between light and dark mode) -
sometimes I end up breaking a bunch of stuff and wishing I could go back in time (in case I can’t undo anymore due to having closed to project or the undo stack limit was exceeded) for that reason I’d really like some version history.. like making a save of a video game it should keep a few autosaves plus any manual saves you wish to make.
-
better nested brackets give each level of opening and closing brackets its own color, I once saw that in a different IDE and I’ve wanted it in Codea ever since. it brings so much more clarity to complex nested calls, tables, calculations..
-
I’m increasingly using AI (mostly gemini) to help me code. but it often doesn’t know which function libraries are present and will call things that don’t exist often. if it could be integrated with Codea it could avoid a lot of those issues. (but that said, my feelings about AI everywhere are …turbulent)
okay.. that was a lot. I hope to see at least some of these things in the future!
Thanks for making Codea!