Optionalcan_Whether this plugin opts into per-column style controls in the
settings sidebar. When true, the StyleTab is shown for active
columns and the plugin's column_config_schema is queried for
the per-column field set. When false or omitted, no StyleTab
is shown.
OptionalcategoryCategory in the plugin picker menu.
Optionalconfig_Named column slots. Named columns have replace/swap behavior in
drag/drop rather than insert. The length must be at least
min_config_columns.
Optionalconnects_true when this plugin CONNECTS its points in row order, so the
View's row order is visible in the drawing: an unsorted config
renders the table's natural order, which reads as a tangle unless
the rows already arrive ordered along the axis. Declared rather
than inferred, because "unsorted" is not itself a mistake — a
pre-ordered table needs no sort, and the point plugins
(scatter, density) do not care at all.
Optionalgroup_What group_by MEANS visually for this plugin, e.g. "X Axis"
for the Y-series charts or "Hierarchy" for treemap/sunburst.
None where the field has no visual role of its own and is a
plain aggregation key (the X/Y charts, whose axes both come from
columns).
This is the group_by counterpart of [Self::config_column_names]:
the same declaration that names the positional columns slots
should say what the other view fields draw, so that consumers —
the settings UI's field labels, and the agent's list_plugins
contract — read one source instead of restating the mapping.
Optionalgroup_Group-rollup modes the plugin accepts, in preference order. The first entry that matches a feature flag becomes the default.
Optionalmax_Soft limit on the number of cells (rows × columns) the plugin will render. Triggers the "Rendering N of M" warning when the view exceeds this value (until dismissed).
Optionalmax_Soft limit on the number of columns the plugin will render. Triggers the "Rendering N of M" warning when the view exceeds this value (until dismissed).
Optionalmin_Minimum number of columns the plugin requires to render. Mostly
affects drag/drop and column-remove button behavior. undefined
is treated identically to 1.
The unique key for this plugin. Used as the plugin field in a
ViewerConfig and as the display name key in the
<perspective-viewer> UI.
OptionalpriorityPlugin load priority. Higher numbers win; ties resolve in
registration order. The highest-priority plugin is loaded by
default unless restore({ plugin }) overrides it.
Optionalselect_Column add/remove behavior. "select" exclusively selects the
added column, removing other columns. "toggle" toggles the
column on or off based on its current state, leaving other
columns alone.
Optionalsplit_What split_by MEANS visually for this plugin, e.g. "Series".
See [Self::group_by_role].
Optionalsplit_Split-rollup modes the plugin accepts, in preference order. The first entry that matches a feature flag becomes the default.
Static, immutable configuration for a plugin.
Returned once per plugin from
get_static_config()at registration time and cached in [crate::renderer::PluginRecord]. Consumers (renderer, session, queries, components) read these fields off the renderer's active-plugin metadata rather than calling back into JS.<perspective-viewer>reads this exactly once per plugin (atregisterPlugintime) and caches it for the lifetime of the application. The result must be stable; do not mutate any field after registration.