looking for simple IDE (project tree left, tabs with open files) ?

Would like to have a simple ide for my c online compiler https://pionierland.de/hoverhack

CodeMirror would be nice for the code editor.

  • So just a project tree of all .c and .h files from a root folder to the left
  • and on top of CodeMirror some buttons(tabs) to switch the files.

It would be foolish to code it myself as there should already be such a simple ide.

Please link me to such a CodeMirror fork :slight_smile:
thanks.

It’s PHP based but could try icecoder.net which uses CodeMirror for the editing?

Yes i was able to install it quickly on my vserver.
Of course i want php to load/save the files.
Now i still need to set the root folder and a “.h,.c” white list.

More simplistic would be more to my liking but perhaps i can put all my stuff like selecting different github repos right into the ICEcoder.

Thanks so far for the quick answers.
More ideas are welcome .

Greetings from a snowy Germany :slight_smile:

Update: i have found the root in Settings.Gerneral and a black list in Settings.Security. No White List ?

Update 2: No, ICEcoder is a webdesign editor not meant to be used for something else. I would have to disable so many things like adding new files (security risk), etc. etc. that it would be faster to code my own ide based on codemirror :-/

Thanks for the feedback, can look into extras like adding a whitelist.

Didn’t realize you didn’t want all the extra functionality. :slight_smile: In that case, may be quicker for you to create something especially if you only require static tabs.

Thank you mattpass for answering here. Yes i think i wll put some button-tabs on the top and a simple tree to the left like: https://labs.abeautifulsite.net/archived/phpFileTree/demo/demo_classic.php

I have the feeling that ICEcoder has only been developed for this one purpose. The help menu is already full of topics that no-one needs for a new use case. And i don’t easily how i could disable specific settings.
And somewhere you admit yourself that ICEcoder is only meant for friends and no security for anonymous users. So i fear that there are an endless number of security issues because that IDE was never developed with security in mind. And by now it is too complex to add a simple-level.

My problem is that i simply do not want to develop just another IDE. There are already hundreds of CoderMirror forks. Did really no-one ever made his fork into somehting useful for others to build on ?

Okay here my first 3 hours: http://www.robosoft.de/MinIDE/test.htm
And here the repo: https://github.com/RoboDurden/MinIDE

SetOption("mode","text/x-php"); does not work :-/

Ideas welcome :slight_smile:

2 more hours: now with tabs :slight_smile:

2 more hours: files can be saved. So v 0.1 allready functional

3 more hours: i have added a minimal config.php and implemented a white list for saving files:

https://www.robosoft.de/MinIDE/MinIDE/config.php

Ideas welcome

So my MinIDE is production ready: https://youtu.be/HPFGdvqLtvE :slight_smile:

Is there a way to make strg+F and strg+G work ??

Wow, this is neat!

Are you interested in upgrading it to CodeMirror 6?

Sure, but i only see Version 5.59.2 for download.
It should only need to replace the files in my CodeMirror folder :slight_smile:
Assuming that v6 will be compatible to v5

It isn’t compatible to v5. It has a quite different and more powerful API. It is also broken down into modules, hence not having a download. It would need setting up a bundler.

Since you’re interested I might give a shot at setting up a bundler and making it use CodeMirror 6.

Well as MinIDE should always stay a simple IDE, i don’t know what you mean with “powerful”.
Also do not understand what you mean with “download” and “bundler”.
Yes i automaticly download the needed css and js files…

What i do not like about v5 is that the editor does not stay inside the container.
And it is difficult to make an editable div fill a table-td. no answer to my question: css - contentEditable with overflow:scroll in table cell not working (resizes to full height) - Stack Overflow

So i for sure would like to test v6. But i am not sure if i need to spend lots of hours if there is no need :-/

By powerful I mean that it’s much more flexible than CodeMirror 5. Configuration is much finer grained, and components can be swapped out. It also has really good support for phones. Selection and copy and paste works great.

I think it could help with that issue.

By bundler I mean something like Webpack or Rollup, and the download it’s lacking is a single file that has all you need, like CodeMirror 5 has. That’s for good reason, though, because it’s very modular and typical use will involve 10-30 modules. Webpack, Rollup, and npm takes care of downloading and bundling them.

I think my next step is to try downloading MinIDE and running it, and then looking at adding CodeMirror 6. I should get to it this weekend, if not earlier. It’s pretty neat and MIT license, so I definitely want to check it out!

Would you be interested in running it on a phone?

I am surprised that you think my MinIDE is special. I for sure thought that there must be quite a few simple web IDEs out there.
I will beautify the code a bit in the next three days.
Especially the callbacks to allow a project make use of my ajax server communication.

No my online hoverboard compiler is definitely nothing for phones.

I have taken a quick lookt at CodeMirror 5 to 6 Migration Guide and this looks not intivuitve at all :-/

Had i known that v6 is the future, i would have never started with v5 :frowning:

I am surprised that you think my MinIDE is special.

I do for several reasons. First, you framed the problem nicely, which is also a problem I’m looking to solve, and tried to find a solution that already exists. Second, you quickly created your own when you didn’t find one. Third, you made a video about it.

Had i known that v6 is the future, i would have never started with v5 :frowning:

I think you made the right call to start off with v5. v6 currently has a steep learning curve, and I might have just found a bug. However, it has surpassed v5 in many ways, and I think before long it will be easier to get started with v6 than it is to get started with v5.

I might have just found a bug

It was a :bug:, and it’s been fixed!

you framed the problem nicely, which is also a problem I’m looking to solve

So i made it even more simply to add my MinIDE into a project: how to add MinIDE to your project:-)

Take a look at AjaxDemo.htm and AjaxDemo.php :slight_smile:

1 Like

I am thinking about use cases for such a universal IDE…
If your v6 will be truly modular…
the file extensions could become class selectors !!
And people might add a

  • .jpg + .png → photo editor
  • .svg → vector grafics editor
  • .doc → word editor
  • .pdf → pdf editor
  • .poll → users can submit to a poll
  • .collect → users can send money to xy.collect crowdfunding campaign

Take a look at my github.com/RoboDurden/legal-actions-against-fraud-Zoommaker-or-fraud-fostering-Kickstarter

Basically every “project” consinsts of a project tree and files / items / tasks / issues to be addressed.

For this class action against Kickstarter i need a platform where we need a way more speedy communication channel. And not simple a loose talk but a system where everyone will place a vote within 12 hours and performs some action within 24 hours.
We are living in 20 different time zones! But with 12 hours, everyone can vote after breakfast and do the action before going to bed.

It might be a revolution to have such a universal IDE where a growing community adds lots of plugins which represent a .xyz file extenstion that works as a “class selector” for whatever problem exists.

roland,
the little physicist :slight_smile:

I’m working on something like this. So far it’s working fairly well.

This is what it looks like:

My “solution” for editing multiple files is to just detach the inactive DOM node for the CodeMirror instance when the file is not active, and re-attach it when the file becomes active again. It results in multiple CodeMirror instances offscreen, which will take up memory, but so far this works pretty well. An additional complication is support for real-time collaboration, which is conceptually a lot simpler to deal with if we only ever need to instantiate a CodeMirror instance once per file and never tear it down.

Feedback on the approach is most welcome! I feel like there’s probably a better way to do it…