Plugin Development
From FlashDevelop
Plugin Development in C#
FlashDevelop can be extended with plugins. Plugins are .NET DLLs, which means that they should be developed in a .NET language, such as C#. You will need FlashDevelop installed in order to compile and test plugins.
If you want to learn how to make plugins, checking the source code of FlashDevelop's plugins may be a huge help. Sample Plugin might be particularly useful for starters.
Setting up a plugin development environment using Microsoft Visual C# 2005/2008 Express
Microsoft provides a C# IDE and compiler for free. You can create FlashDevelop plugins using it.
Open the Visual Studio and create a new empty project. If you are using the 2008 version, you ought to right-click, select "Properties" and change "Target Framework" to "2.0". Then go to the "References" folder and remove the references marked with a "Warning" sign. In the "References" folder, add "System.Drawing", "System.Windows.Forms" and "PluginCore.dll" from FlashDevelop's install location.
Setting up a plugin development environment using SharpDevelop
TODO: Instructions should be very similar to Microsoft Visual C#.
The plugin system
TODO: Explain how FlashDevelop interacts with plugins. Should include event and docking description.
Starting the plugin
You will need a class with the main functions of plugins to start developing. TODO: Specify import statements to use The class should extend (using the ':' sign) the interface "IPlugin". TODO: Explain "Name", "Guid", "Author", "Description", "Help" and "Settings".
Assigning tasks to the plugin
TODO: Describe "Initialize", "Dispose" and "HandleEvent".
Testing the plugin in FlashDevelop
Once your plugin is built, pick the DLL and copy it to Flash Develop's Plugin folder(inside FlashDevelop's Application Data folder). Then, just run FlashDevelop.
Dealing with files
TODO: Explain FileSwitch and SciControl.
Syntax highlighting and auto-completion
TODO: Explain syntax highlighting and auto-completion - how to add support for a new language in FlashDevelop.