355
edits
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 == |
edits