Was thinking, it might be cool to add FTP/SFTP support to something like this. It would make it a little more attractive to hosting companies that don't host their control panels on the same server as the actual user content as the files could be fetched via FTP rather than having to use an NFS mount (these can be pretty flaky sometimes).
It looks like the majority of the filesystem operations are separated out and abstracted, so it likely won't be too hard (with the exception of file_exists() getting used everywhere, but this shouldn't be too hard to deal with) to write alternate wrappers and a set of configuration parameters for operation/authentication.
I've also been giving some consideration to how to optimize the syntax highlighting. Does this currently work by re-evaluating the entire file on every keypress event? If so, there might be some room to make that better by limiting the area it edits the highlighting of. I'm also thinking that a good option might be to not highlight on every keypress, but to use a timeout that does the highlighting when the user has stopped typing.
Any thoughts from anyone? I likely won't be able to get dirty with it for a while (other pressing stuff at work), but I'm keenly interested in making this neat editor better.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2010-09-29
I think the whole project could use an overhaul, but time has too be found to do it…
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I take full responsibility for all the bad code in ecoder.
all the highlighting is done by editarea, the version included probably needs updating..
Wim is really the man to talk to about code updates.. I'd be interested to help with any design / usability issues - but I've already made the code about as good as I personally can.. time for some real coders to take over!
let me know if I can be of any further help.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2010-09-29
You shouldn't, Murray. You did a great job starting ecoder. True, the code could improve a lot, but, speaking for myself, I never really got on with this improvements. Was thinking, just before this discussion opened, to start developing again. From scratch. If there's any interest in further development of this project, please reply with improvements and such. If anyone wants to help, please reply too. I can try to "lead" an update, but I probably won't be able to do it all by myself. I'll make a first new concept draft and post it here in a few hours, probably.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I must admit, I use WordPress a lot these days, mostly creating custom blogs for client, and while I rarely use the in-built code editor, I still would love to see ecoder somehow ported into WordPress, I guess firstly as a plugin extra.
If it worked well, it sure would be a great way to get the program more widely known and used… but, I guess that's just a pipe dream, for know.
I think, if the project sticks more or less to the same idea - a easy to configure online code editor.. then the majority of the upgrades should be on the code base.. the interface, language options.. plugins? lots of other wistful ideas come to mind.. but the foundations needs to be solid first…
well.. I must be hungry, as I'm rambling.. back after some food!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2010-09-29
(A bit faster then I had expected)
Ecoder v0.5.0
Main goal: updating ecoder and making it more then just a file editor.
Rough lines from the normal users' point of view:
-User opens ecoder instance and sees treeview of root directory (and possibly also a welcoming screen defined by local instance (html file))
-User clicks on a folder, and the folder opens in the same folder-subscreen
-User leftclicks on a file, and the file viewing mode opens in a new subscreen
-User rightclicks on a file (in folder subscreen) and gets options such as edit and view info. View info opens info subscreen, and has ability of deleting, editing, …
-Via a button, the user can switch between info, view and edit modes.
-Configuration and installation via ecoder itself
Internal workings:
-Subscreens can be moved and resized on a grid (jquery, prototype?)
-Should have possibility to have plugin-like things that can add file editing and viewing modes
Plugins:
-Via plugins, authors can define new file types that can be edited and viewed. This way an ecoder installation can get configured easily.
-To avoid multiple copies of, for example editarea, on each plugin, external code would be loaded via compontent-like things.
Something to decide on : PHP minimum requirement. Suggestions?
I'm probably forgetting lots of things, that will get added as I go along. Suggestions/feedback are welcome. Would need new design (Murray?)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Well, the reason I'm interested is that I'm a developer for a hosting company, and the code editor we currently use is in dire need of replacement. This particular project you guys have is fairly rare. Most of the online IDEs I've seen are full services and do not meet our requirements since we need to be able to host the editor in-house.
I'd like to stress that I can't really do a lot right now. There are a ton of things that need doing before I can settle in to an open source project. However you should know that I've shown a local demo copy of the project to a few people around the office and everyone seems to really like it. Even if the highlighting can't be made usable with large files, I find the actual editor functionality to be very solid and stable.
As for UI components, there are certain things that could use improvements in some of the dialogs (deleting a file for example replaces the editor area with a confirmation, it probably shouldn't do that). Uploading files could probably be made much better by use of swfuploader.
My department head did cringe a bit when I showed him that it was a procedural project as opposed to OOP, but my cursory review of the internals shows that care was taken to address possible security concerns. It appears to be laid out well enough in the directory stucture to figure out what is going on without too much head banging. He did mention it would be fun to refactor/rewrite it in to an OO codebase.
Don't beat yourself up for the codebase, loveunit. In my 10 years of php, and 7 years as an OP in ##php on freenode, I've seen much, much worse. I agree with wim that you did a good job getting it started.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2010-09-29
Well, the above mentioned 0.5.0 will be OOP. I was thinking of making the switch to namespaces too, but I don't think that would benefit the project, so keeping it php 5.0/5.2 as minimum spec.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I must admit I don't really know what you mean by "procedural project as opposed to OOP", mostly as I'm not sure I've got any experience of either.. ( I'm a self taught coder, in case you've not guessed yet !)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I must admit I don't really know what you mean by "procedural project as opposed to OOP"
Procedural means that functionality is all implemented by loose functions. OOP (object oriented programming) means that you use classes and objects, as well as proper class composition. There are some advantages to OOP that can make projects easier to maintain.
Also, if one wanted to go the route of adding a unit testing suite to it, it's better if you're using an OO project so you can set up things like dependency injections. Don't worry too much if you don't understand it all - it essentially boils down to code cleanup to make it easier to work on.
Well, the above mentioned 0.5.0 will be OOP. I was thinking of making the switch to namespaces too, but I don't think that would benefit the project, so keeping it php 5.0/5.2 as minimum spec.
Sorry, I made my post after you did (page was not yet refreshed), this sounds good. For the most part people I've been in contact with through the ##php channel have gone to 5, though you are always going to have stragglers on 4. I agree that focusing on php 5.3.0 features is a bit premature. It usually takes a while for people to adopt new versions anyway.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Also I have some suggestion:
- I dont use 'home' tab and file. Why is it necessary? Could it be disable from config?
- when I switch between tabs, the cursor always jump to the first line. It would be nice to store cursor position for every tab
- close: it should ask for save when file changed and not saved
- Save all: it would be very nice function
Thanks for you ecoder project, I enjoy very much to edit with it!!!
Zoltán
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I made Hungarian sites, which consist specail accented letters. I use HTML codes to show it on browser (for example: ö -> ö or ö)
When I save the file everythink work correct.
Next time I opened/loaded the file these codes are converted to simple letters, so next save make a wrong file.
How can I switch off this conversion?
Thanks your help,
Zoltán
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi folks.
I started using editarea in a project I have been working on and when DreamHost decided to put this on it's One Click installs I was estatic. editArea is an extremely easy to use online editor. So, now that this project is underway I am going to scrap what I have been working on and incorporate this.
I am working on a subscriber based online editor for the opencobol.org group. Yes I said COBOL. But, this is the perfect project to show how marrying php/java and COBOL can be an excellent Saas platform.
if anyone is interested I will be happy to share what I do. Any coding I do to enhance eCoder using java or php I will definitely share with you.
Cheers!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
- Option to make the tab key insert a certain number of spaces instead of a tab character
- The "ctrl-1", "ctrl-2", etc. shortcuts are already defined (at least in firefox) to switch to the corresponding tab (ie ctrl-1 switches to the first tab in the window)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Was thinking, it might be cool to add FTP/SFTP support to something like this. It would make it a little more attractive to hosting companies that don't host their control panels on the same server as the actual user content as the files could be fetched via FTP rather than having to use an NFS mount (these can be pretty flaky sometimes).
It looks like the majority of the filesystem operations are separated out and abstracted, so it likely won't be too hard (with the exception of file_exists() getting used everywhere, but this shouldn't be too hard to deal with) to write alternate wrappers and a set of configuration parameters for operation/authentication.
I've also been giving some consideration to how to optimize the syntax highlighting. Does this currently work by re-evaluating the entire file on every keypress event? If so, there might be some room to make that better by limiting the area it edits the highlighting of. I'm also thinking that a good option might be to not highlight on every keypress, but to use a timeout that does the highlighting when the user has stopped typing.
Any thoughts from anyone? I likely won't be able to get dirty with it for a while (other pressing stuff at work), but I'm keenly interested in making this neat editor better.
I think the whole project could use an overhaul, but time has too be found to do it…
I take full responsibility for all the bad code in ecoder.
all the highlighting is done by editarea, the version included probably needs updating..
Wim is really the man to talk to about code updates.. I'd be interested to help with any design / usability issues - but I've already made the code about as good as I personally can.. time for some real coders to take over!
let me know if I can be of any further help.
You shouldn't, Murray. You did a great job starting ecoder. True, the code could improve a lot, but, speaking for myself, I never really got on with this improvements. Was thinking, just before this discussion opened, to start developing again. From scratch. If there's any interest in further development of this project, please reply with improvements and such. If anyone wants to help, please reply too. I can try to "lead" an update, but I probably won't be able to do it all by myself. I'll make a first new concept draft and post it here in a few hours, probably.
I must admit, I use WordPress a lot these days, mostly creating custom blogs for client, and while I rarely use the in-built code editor, I still would love to see ecoder somehow ported into WordPress, I guess firstly as a plugin extra.
If it worked well, it sure would be a great way to get the program more widely known and used… but, I guess that's just a pipe dream, for know.
I think, if the project sticks more or less to the same idea - a easy to configure online code editor.. then the majority of the upgrades should be on the code base.. the interface, language options.. plugins? lots of other wistful ideas come to mind.. but the foundations needs to be solid first…
well.. I must be hungry, as I'm rambling.. back after some food!
(A bit faster then I had expected)
Ecoder v0.5.0
Main goal: updating ecoder and making it more then just a file editor.
Rough lines from the normal users' point of view:
-User opens ecoder instance and sees treeview of root directory (and possibly also a welcoming screen defined by local instance (html file))
-User clicks on a folder, and the folder opens in the same folder-subscreen
-User leftclicks on a file, and the file viewing mode opens in a new subscreen
-User rightclicks on a file (in folder subscreen) and gets options such as edit and view info. View info opens info subscreen, and has ability of deleting, editing, …
-Via a button, the user can switch between info, view and edit modes.
-Configuration and installation via ecoder itself
Internal workings:
-Subscreens can be moved and resized on a grid (jquery, prototype?)
-Should have possibility to have plugin-like things that can add file editing and viewing modes
Plugins:
-Via plugins, authors can define new file types that can be edited and viewed. This way an ecoder installation can get configured easily.
-To avoid multiple copies of, for example editarea, on each plugin, external code would be loaded via compontent-like things.
Something to decide on : PHP minimum requirement. Suggestions?
I'm probably forgetting lots of things, that will get added as I go along. Suggestions/feedback are welcome. Would need new design (Murray?)
Well, the reason I'm interested is that I'm a developer for a hosting company, and the code editor we currently use is in dire need of replacement. This particular project you guys have is fairly rare. Most of the online IDEs I've seen are full services and do not meet our requirements since we need to be able to host the editor in-house.
I'd like to stress that I can't really do a lot right now. There are a ton of things that need doing before I can settle in to an open source project. However you should know that I've shown a local demo copy of the project to a few people around the office and everyone seems to really like it. Even if the highlighting can't be made usable with large files, I find the actual editor functionality to be very solid and stable.
As for UI components, there are certain things that could use improvements in some of the dialogs (deleting a file for example replaces the editor area with a confirmation, it probably shouldn't do that). Uploading files could probably be made much better by use of swfuploader.
My department head did cringe a bit when I showed him that it was a procedural project as opposed to OOP, but my cursory review of the internals shows that care was taken to address possible security concerns. It appears to be laid out well enough in the directory stucture to figure out what is going on without too much head banging. He did mention it would be fun to refactor/rewrite it in to an OO codebase.
Don't beat yourself up for the codebase, loveunit. In my 10 years of php, and 7 years as an OP in ##php on freenode, I've seen much, much worse. I agree with wim that you did a good job getting it started.
Well, the above mentioned 0.5.0 will be OOP. I was thinking of making the switch to namespaces too, but I don't think that would benefit the project, so keeping it php 5.0/5.2 as minimum spec.
hey,
I must admit I don't really know what you mean by "procedural project as opposed to OOP", mostly as I'm not sure I've got any experience of either.. ( I'm a self taught coder, in case you've not guessed yet !)
Procedural means that functionality is all implemented by loose functions. OOP (object oriented programming) means that you use classes and objects, as well as proper class composition. There are some advantages to OOP that can make projects easier to maintain.
Also, if one wanted to go the route of adding a unit testing suite to it, it's better if you're using an OO project so you can set up things like dependency injections. Don't worry too much if you don't understand it all - it essentially boils down to code cleanup to make it easier to work on.
Sorry, I made my post after you did (page was not yet refreshed), this sounds good. For the most part people I've been in contact with through the ##php channel have gone to 5, though you are always going to have stragglers on 4. I agree that focusing on php 5.3.0 features is a bit premature. It usually takes a while for people to adopt new versions anyway.
Hy,
I am using ecoder and I love it!
Fantastic.
Also I have some suggestion:
- I dont use 'home' tab and file. Why is it necessary? Could it be disable from config?
- when I switch between tabs, the cursor always jump to the first line. It would be nice to store cursor position for every tab
- close: it should ask for save when file changed and not saved
- Save all: it would be very nice function
Thanks for you ecoder project, I enjoy very much to edit with it!!!
Zoltán
Hi Zoltan,
Thanks for your suggestions. They're very useful.
Development is going a bit slow at the moment, as we all have other prioritary projects to handle, but we will be back sooner or later :).
Kind Regards,
Wim Tibackx
ecoder developer
Question of accented HTML codes.
I made Hungarian sites, which consist specail accented letters. I use HTML codes to show it on browser (for example: ö -> ö or ö)
When I save the file everythink work correct.
Next time I opened/loaded the file these codes are converted to simple letters, so next save make a wrong file.
How can I switch off this conversion?
Thanks your help,
Zoltán
Hi folks.
I started using editarea in a project I have been working on and when DreamHost decided to put this on it's One Click installs I was estatic. editArea is an extremely easy to use online editor. So, now that this project is underway I am going to scrap what I have been working on and incorporate this.
I am working on a subscriber based online editor for the opencobol.org group. Yes I said COBOL. But, this is the perfect project to show how marrying php/java and COBOL can be an excellent Saas platform.
if anyone is interested I will be happy to share what I do. Any coding I do to enhance eCoder using java or php I will definitely share with you.
Cheers!
Some other possible improvements:
- Option to make the tab key insert a certain number of spaces instead of a tab character
- The "ctrl-1", "ctrl-2", etc. shortcuts are already defined (at least in firefox) to switch to the corresponding tab (ie ctrl-1 switches to the first tab in the window)