One can always edit imscp code manually (via vim or similar), but it's usually easier to code with an IDE. Since imscp is opensource, the company behind phpstorm allows their developers to have a license, here is a guide on how to setup phpstorm to develop in imscp from linux.
Get the sofware from http://www.jetbrains.com/phpstorm/, this guide is based on the current (as of today v6)
There is a test of 30 days for the software (or if you are form the dev team, just ask for the key)
Create a new project in you computer (even when the server is on another place)
Quick Start -> Check out from Version Control -> github
Git Repository URL - http://github.com/USERNAME/imscp.git Parent directory - /home/USERNAME/Desktop/phpstorm Directory name - imscp
This will do a git checkout of your personal fork into /home/USERNAME/Desktop/phpstorm/imscp
Once the project is create, you have to link it to the server (virtual machine) where imscp is installed To setup this you have to got into Tools → Deployment, in there you will have to create two different entries (with the + button above left )
Connection Name - SERVER (/usr/local/src) Connection - SFTP Root path - / Mappings Local Path - /home/USERNAME/Desktop/phpstorm/imscp Deployment Path - /usr/local/src/imscp
Connection Name - SERVER (/var/www/imscp) Connection - SFTP Root path - / Mappings Local Path - /home/USERNAME/Desktop/phpstorm/imscp Deployment Path - /var/www/imscp
By default the changes won't be uploaded to the server automatically, to upload your changes manually:
Right click to the file name -> Upload To.. -> And choose the proper place either "SERVER (/usr/local/src)" or "SERVER (/var/www/imscp)"
Tools -> Deployment -> Automatic upload For gui and engine folders -> "SERVER (/var/www/imscp)" For the rest - "SERVER (/usr/local/src)"