Update: I remembered that Repl it already has templates, but I'm asking for something totally different.
Hereafter, within this document, the word "template" contains no connection whatsoever to Repl.it's current use of templates, and therefore does not refer to them at all, but instead refers to a concept that I thought op one day and wrote about it for a few hours. The writing that consumed those precious hours of my time is recorded within this post.
For those of you how are used to class orientated languages, (C++, Java, D) think of these "templates" as classes that create Repls. If we were to view a Repl as a class, and clicking "create a repl" as activating it's constructor, then this is the idea of creating the Repl's class.
Until we have user-defined languages, can we create our own language templates for Repl it?
Like the pre-existing languages, I would prefer If I could just click on one of these "language templates" and automatically create a new file of my own language, which the languages would've been named in the template of course.
For example, the language template will have a section that is only run on instantiation, or creation of the new Repl. Maybe this could be setting up the interpreter / compiler for the language on the Repl, or just doing stuff that only needs to happen once.
For example, Clang and G++ are only setup on C / C++ Repls, it is inaccessible from a Node JS Repl. It is this phase where something like this is setup.
The next section would be the ".replit" and ".env" files, we would have to power to configure and fine tune what happens when the user presses the "Run" button and set op the environment for the program.
What files are locked and hidden. Just like how the main or index file cannot be deleted on any other Repl, I would prefer being able to chose what can and cannot be simply delete by clicking 'x' and "delete file." Also I would like the ".replit" file from earlier to be hidden from the viewpoint of the user, as they shouldn't need to worry about anything except their code in the "main" file.
If I had downloaded and installed a ( compiler / interpreter / transpiler ) for a language that Repl doesn't support upon instantiation, I would probably want that to be marked as "hidden" too.
Startup files, folders, and initial boilerplate code. You can't have an empty main file, can you? Remember, we may have chosen to call "main" anything of our choosing. Ex: "main.df," "index.qwerty," "start.cpp," "temp.xml," "program.main.a," it shouldn't matter what we name it, but we deserve the power do so.
This has multiple uses for applicability, among them: setting up a normal Repl, but with modified "main" code and some user defined header files, this language template can be reused over and over again for use in every project.
Let's use C++ as an example; I build my own extremely complex functions and objects, I put them in an "*.hpp" (header) file. The file is literally so helpful and general that I want to use it in every single project I ever do again. Unfortunately, I have to copy and paste that code into every Repl I ever make, this slows development down.
For all you know, I plan on making a ".txt" Repl "language template" if this is done.
This can be done already, but it's pretty hard, and feels like cheating the system, by deleting main and overriding the .replit.
The Repl developers will have to choose their own original, name, as they already use the name "template" to refer to normal Repls that have already been setup with some content.
Lastly, there should be a separate section for these "language templates." They should be either private or public (based on hacker plan), they should be multiplayer (optionally), they should be able to be stared so other users will see them at the top of the user's list of language templates, etc. all of the normal Repl.it feature's we've grown to love should be available as well.
If I star a language template it should not take up one of my 5 positions for normal coding projects, but if I star a Repl created from that language template, then it will, because the thing that is created from a "language template" is a normal Repl.
If people make whole new languages from this idea, and they think, "Hey, this is cool, I want to tell my friends!", then they should be able to share it, except that as it it's not really code, it should go in a separate section to divide a normal shared project and a Repl.it language template.
This should work with any Repl type that I start from, meaning if I based a language template off of the HTML Repl, but instead used a whole different file type instead of ".html", the repl will send the file I configured it to send, for example, an XML or JSON Repl, without having to setup a whole server to send, as Repl will automatically host it normally.