Developer documentation
Performance
Use the same pattern that made request tabs fast: keep hot state in memory and mutate only the small visible part that changed.
Fast path vs slow path
Fast pathUse
ctx.dollar(...).val(), ui.setValue, ui.setText, ui.hide, ui.show, and targeted runtime mutations.Slow pathWriting pluginData and rebuilding every plugin on every click, tab switch, keystroke, hover, or temporary selection.
// Frequent visible update:
ctx.dollar("#requestNameInput").val("Fast update");
return ctx.dollar("#requestNameInput");
// Durable setting:
return { __action: "setPluginData", key: "myPlugin.settings", value: { enabled: true } };
// Structural change:
// Change app.pluginData, then render the new structure in transformApp.