Often I see in the forum requests for new functionality in netbeans which could easily be added by the user if there was a way to run a script directly from netbeans.
In example, recently an user asked to be able to synchronize files between the server and the workstation before starting work, it could be easily solved if the user was able to run a simple bash script calling rsync.
In Komodo there is a panel called toolbox, similar to netbeans' palette, where the user can add shortcuts to run external programs or scripts, urls, etc. (and of course store code snippets). If I'm not mistaken, a similar functionality was also available in Quanta+, with the ability to create a toolbar with custom buttons.
How it should work:
The user creates a toolbox item that calls a specific program or script passing parameters in the form of variables (such as current file name and path, selected files, currently selected text, etc.).
A parameter specifies if the output should be passed to the output panel, to the editor, or just ignored.
This will allow the user, in example, to run simple scripts to:
- Run wc to count the characters in the currently selected text;
- Run a php script that converts special chars in html entities in the selected text;
- Run a script to synchronize changes with a remote server;
- Search for the currently selected text on Google;
- Open a selected file in a different editor or program;
- Make a backup copy for the whole project;
- Zip and email the selected files;
- Delete all Thumb.db, __MACOSX, .DS_Store and other backup files from the project;
- chown or chmod selected files;
Possibilities and infinite, even better would be the ability to decide if an item should always appear in the toolbox or just for a specific project.
The toolbox would also allow the netbeans developers to focus on the editor and other complex plugins leaving the user to add simple functionality on their own. To help the process a public space where users can share toolbox items could be made available (something like the plugin portal).