Labs/Bespin/DesignDocs/PluginAPI: Difference between revisions

no edit summary
No edit summary
No edit summary
Line 12: Line 12:
* First, we need an API that allows you to register and activate new plugin code
* First, we need an API that allows you to register and activate new plugin code
* Second, we need public APIs to let plugins easily get done what they need too, without having to go deep into the code, and accessing APIs that are a known public contract. This is vital to the goal of rapid innovation without constantly breaking plugins.
* Second, we need public APIs to let plugins easily get done what they need too, without having to go deep into the code, and accessing APIs that are a known public contract. This is vital to the goal of rapid innovation without constantly breaking plugins.
== Use Cases ==
We want to drive the design of the plugin API from use cases. Can you think of any?
==== Commands ====
A set of commands, such as a new command store with subcommands (e.g. vcs)
==== Syntax Highlighter ====
Attach a new syntax highlighter
==== Code Processing ====
Such as:
* real-time syntax checking
* special processing for certain types of files
* spell checker type work on code
When you open up a settings file, limit what you can type so it is only "name value" and allow the user to rerun that file
==== Editor Tweaks ====
Add new features to the core editor itself. Mucking with the model.
==== Toolbar ====
Add new buttons and icons to the toolbar
==== Selection ====
When text is selected, hook in
==== Content Changed ====
As soon as the content in the edit buffer has changed, do something (meta with implementations below)
==== Settings ====
Create new settings


== Core Plugin API ==
== Core Plugin API ==
355

edits