pub struct ColumnDef {
pub id: &'static str,
pub label: &'static str,
pub default_visible: bool,
pub priority: u16,
pub requires_feature: Option<&'static str>,
}Expand description
A single optional column in the MR table.
Plugins register their columns via inventory::submit!(ColumnDef { … }) — no
change to config.rs, mod.rs or storage.rs is needed when a new column
is added by a plugin crate.
§Display order
Columns are sorted by priority (ascending) when collect_all_columns is called.
Convention:
0–99→ built-in columns (Activity, Target, Labels, Milestone, Notes, Diff)100–199→ first-party tracker plugin columns (Redmine Ticket, Jira Issue, …)200+→ community / third-party plugin columns
Fields§
§id: &'static strUnique machine-readable identifier (e.g. "activity", "tracker_ticket").
Used as the persistence key in projects.toml — must be stable across versions.
label: &'static strHuman-readable label shown in the column picker popup (e.g. "Activity").
default_visible: boolWhether this column is visible by default on a fresh install.
priority: u16Display order — lower values appear first in the column picker.
requires_feature: Option<&'static str>When Some, the column is only shown when the runtime condition is met
(e.g. a tracker provider is configured). The closure receives a single bool
context value whose meaning is defined per-column in the orchestrator.
None means the column is always available regardless of runtime state.