Modifying the workspace
In the course of performing its function, your plug-in may need to make changes to resources in the workspace.
The workspace is an important data model for many plug-ins in the system, many of which rely on keeping up with
the current state of the workspace. Plug-ins may even be concurrently updating the workspace. It's important
for your plug-in to act as a responsible workspace citizen when making changes to resources. What makes a plug-in
a good workspace citizen?
Batching of changes where possible to avoid flooding the system with unnecessary events or triggering
unnecessary processing on an interim state.
Listening to resource change events and updating models as the workspace changes.
Fine-grained locking of the workspace when making modifications instead of locking the entire workspace.
The next few sections look at these concepts in more detail.