pub struct BuiltinElementIds {Show 135 fields
pub diagnostic_error: ElementId,
pub diagnostic_warning: ElementId,
pub diagnostic_info: ElementId,
pub diagnostic_hint: ElementId,
pub diff_add_sign: ElementId,
pub diff_change_sign: ElementId,
pub diff_remove_sign: ElementId,
pub diff_conflict_sign: ElementId,
pub diff_add_line: ElementId,
pub diff_add_refine_bg: ElementId,
pub diff_remove_refine_bg: ElementId,
pub diff_change_line: ElementId,
pub diff_remove_line: ElementId,
pub diff_deletion_block: ElementId,
pub sticky_context_background: ElementId,
pub sticky_context_line_number: ElementId,
pub sticky_context_active: ElementId,
pub sticky_context_separator: ElementId,
pub diff_conflict_line: ElementId,
pub diff_add_text: ElementId,
pub diff_remove_text: ElementId,
pub magit_sha: ElementId,
pub magit_branch_current: ElementId,
pub magit_ref_decoration: ElementId,
pub magit_rebase_verb: ElementId,
pub magit_author: ElementId,
pub help_key: ElementId,
pub help_command: ElementId,
pub help_action: ElementId,
pub help_literal: ElementId,
pub transient_title: ElementId,
pub transient_group: ElementId,
pub transient_key: ElementId,
pub transient_key_inactive: ElementId,
pub transient_description: ElementId,
pub transient_value: ElementId,
pub transient_border: ElementId,
pub gutter_sign: ElementId,
pub gutter_fold_open: ElementId,
pub gutter_fold_closed: ElementId,
pub gutter_fold_summary: ElementId,
pub pane_status_active: ElementId,
pub pane_status_inactive: ElementId,
pub pane_separator: ElementId,
pub pane_inactive_overlay: ElementId,
pub modeline_active: ElementId,
pub modeline_inactive: ElementId,
pub modeline_mode: ElementId,
pub modeline_path: ElementId,
pub modeline_position: ElementId,
pub modeline_lang: ElementId,
pub modeline_mode_item: ElementId,
pub editor_background: ElementId,
pub editor_foreground: ElementId,
pub editor_cursor: ElementId,
pub ui_popup_background: ElementId,
pub ui_popup_title: ElementId,
pub ui_popup_hint: ElementId,
pub file_tree_dir: ElementId,
pub file_tree_hidden: ElementId,
pub file_tree_file: ElementId,
pub editor_cursor_line: ElementId,
pub messages_timestamp: ElementId,
pub messages_trace: ElementId,
pub messages_debug: ElementId,
pub messages_info: ElementId,
pub messages_warn: ElementId,
pub messages_error: ElementId,
pub syntax_default: ElementId,
pub syntax_comment: ElementId,
pub syntax_line_comment: ElementId,
pub syntax_string: ElementId,
pub syntax_keyword: ElementId,
pub syntax_type: ElementId,
pub syntax_number: ElementId,
pub syntax_function: ElementId,
pub syntax_constant: ElementId,
pub syntax_variable: ElementId,
pub syntax_operator: ElementId,
pub syntax_punctuation: ElementId,
pub syntax_attribute: ElementId,
pub syntax_heading_1: ElementId,
pub syntax_heading_2: ElementId,
pub syntax_heading_3: ElementId,
pub syntax_heading_4: ElementId,
pub syntax_heading_5: ElementId,
pub syntax_heading_6: ElementId,
pub syntax_bold: ElementId,
pub syntax_italic: ElementId,
pub syntax_link: ElementId,
pub syntax_url: ElementId,
pub syntax_markup_raw: ElementId,
pub syntax_code_block: ElementId,
pub syntax_markup: ElementId,
pub whitespace: ElementId,
pub whitespace_trailing: ElementId,
pub indent_guide: ElementId,
pub indent_guide_active: ElementId,
pub search_match: ElementId,
pub search_current: ElementId,
pub selection: ElementId,
pub doc_highlight_read: ElementId,
pub doc_highlight_write: ElementId,
pub doc_highlight_text: ElementId,
pub substitute_preview: ElementId,
pub inlay_hint: ElementId,
pub completion_annotation_kind: ElementId,
pub completion_annotation_doc: ElementId,
pub completion_annotation_keybinding: ElementId,
pub completion_annotation_source: ElementId,
pub completion_annotation_custom: ElementId,
pub completion_annotation_perm_type: ElementId,
pub completion_annotation_perm_read: ElementId,
pub completion_annotation_perm_write: ElementId,
pub completion_annotation_perm_exec: ElementId,
pub completion_annotation_perm_special: ElementId,
pub completion_annotation_perm_none: ElementId,
pub completion_annotation_size: ElementId,
pub completion_annotation_mtime: ElementId,
pub picker_root: ElementId,
pub picker_title: ElementId,
pub picker_prompt: ElementId,
pub picker_count: ElementId,
pub completion_annotation_location_path: ElementId,
pub completion_annotation_location_line: ElementId,
pub completion_annotation_location_col: ElementId,
pub completion_annotation_status_dirty: ElementId,
pub completion_annotation_status_active: ElementId,
pub completion_annotation_latency_reflex: ElementId,
pub completion_annotation_latency_display: ElementId,
pub completion_annotation_latency_background: ElementId,
pub completion_annotation_args: ElementId,
pub completion_annotation_buffer_id: ElementId,
pub completion_annotation_register: ElementId,
pub terminal_ansi: [ElementId; 16],
}Expand description
The interned ElementIds for the builtin elements the renderers
read, captured once at boot from the ThemeRegistry and held
for the process lifetime. Copy + small, so it snapshots into
RenderState per publish for free; a read is then
resolved.get(ids.<elem>) — an array index, no per-frame name
lookup (design §7).
Grown one consumer-group at a time as Thread B migrates renderers
off the flat Theme struct (T.4.a diagnostics → T.4.b diff → …).
Fields§
§diagnostic_error: ElementId§diagnostic_warning: ElementId§diagnostic_info: ElementId§diagnostic_hint: ElementId§diff_add_sign: ElementId§diff_change_sign: ElementId§diff_remove_sign: ElementId§diff_conflict_sign: ElementId§diff_add_line: ElementId§diff_add_refine_bg: ElementIdDR.2: intra-line refinement backgrounds — the sub-range of a changed line that actually differs.
diff_remove_refine_bg: ElementId§diff_change_line: ElementId§diff_remove_line: ElementIdD-fix.3b: removed-line tint for the baseline/left pane.
diff_deletion_block: ElementId§sticky_context_background: ElementIdTC.3b: the sticky context strip’s backdrop.
sticky_context_line_number: ElementIdTC.11: the strip’s gutter line numbers.
sticky_context_active: ElementIdTC.11: the strip’s innermost row — the scope the cursor is in.
sticky_context_separator: ElementIdTC.12: the rule beneath the strip, when context.separator is set.
diff_conflict_line: ElementId§diff_add_text: ElementId§diff_remove_text: ElementId§magit_sha: ElementId§magit_branch_current: ElementId§magit_ref_decoration: ElementId§magit_rebase_verb: ElementId§help_key: ElementId§help_command: ElementId§help_action: ElementId§help_literal: ElementId§transient_title: ElementId§transient_group: ElementId§transient_key: ElementId§transient_key_inactive: ElementId§transient_description: ElementId§transient_value: ElementId§transient_border: ElementId§gutter_sign: ElementIdSG.2b: the fallback tone for a sign whose named element is missing.
gutter_fold_open: ElementId§gutter_fold_closed: ElementId§gutter_fold_summary: ElementIdThe ⋯ N lines summary trailing a collapsed head row. Both
peers read it, so the trailer cannot drift between them.
pane_status_active: ElementId§pane_status_inactive: ElementId§pane_separator: ElementId§pane_inactive_overlay: ElementId§modeline_active: ElementId§modeline_inactive: ElementId§modeline_mode: ElementId§modeline_path: ElementId§modeline_position: ElementId§modeline_lang: ElementId§modeline_mode_item: ElementId§editor_background: ElementId§editor_foreground: ElementId§editor_cursor: ElementId§ui_popup_background: ElementId§ui_popup_title: ElementId§ui_popup_hint: ElementId§file_tree_dir: ElementId§file_tree_file: ElementId§editor_cursor_line: ElementId§messages_timestamp: ElementId§messages_trace: ElementId§messages_debug: ElementId§messages_info: ElementId§messages_warn: ElementId§messages_error: ElementId§syntax_default: ElementId§syntax_comment: ElementId§syntax_line_comment: ElementId§syntax_string: ElementId§syntax_keyword: ElementId§syntax_type: ElementId§syntax_number: ElementId§syntax_function: ElementId§syntax_constant: ElementId§syntax_variable: ElementId§syntax_operator: ElementId§syntax_punctuation: ElementId§syntax_attribute: ElementId§syntax_heading_1: ElementId§syntax_heading_2: ElementId§syntax_heading_3: ElementId§syntax_heading_4: ElementId§syntax_heading_5: ElementId§syntax_heading_6: ElementId§syntax_bold: ElementId§syntax_italic: ElementId§syntax_link: ElementId§syntax_url: ElementId§syntax_markup_raw: ElementId§syntax_code_block: ElementIdMC.1: full-width background tint for fenced/indented code blocks.
syntax_markup: ElementId§whitespace: ElementId§whitespace_trailing: ElementId§indent_guide: ElementIdIG.2: indentation guides. Two ids so the block enclosing the cursor can be drawn against the rest.
indent_guide_active: ElementId§search_match: ElementId§search_current: ElementId§selection: ElementId§doc_highlight_read: ElementId§doc_highlight_write: ElementId§doc_highlight_text: ElementId§substitute_preview: ElementId§inlay_hint: ElementId§completion_annotation_kind: ElementId§completion_annotation_doc: ElementId§completion_annotation_keybinding: ElementId§completion_annotation_source: ElementId§completion_annotation_custom: ElementId§completion_annotation_perm_type: ElementId§completion_annotation_perm_read: ElementId§completion_annotation_perm_write: ElementId§completion_annotation_perm_exec: ElementId§completion_annotation_perm_special: ElementId§completion_annotation_perm_none: ElementId§completion_annotation_size: ElementId§completion_annotation_mtime: ElementId§picker_root: ElementId§picker_title: ElementId§picker_prompt: ElementId§picker_count: ElementId§completion_annotation_location_path: ElementId§completion_annotation_location_line: ElementId§completion_annotation_location_col: ElementId§completion_annotation_status_dirty: ElementId§completion_annotation_status_active: ElementId§completion_annotation_latency_reflex: ElementId§completion_annotation_latency_display: ElementId§completion_annotation_latency_background: ElementId§completion_annotation_args: ElementId§completion_annotation_buffer_id: ElementId§completion_annotation_register: ElementId§terminal_ansi: [ElementId; 16]Implementations§
Source§impl BuiltinElementIds
impl BuiltinElementIds
Sourcepub fn annotation_slot(&self, slot: &str) -> ElementId
pub fn annotation_slot(&self, slot: &str) -> ElementId
MARG §8: map an [Annotation::Styled] segment’s slot KEY to its
interned element id, shared by both renderer peers so a styled
marginalia cell resolves identically. Unknown slots fall back to
completion.annotation.custom (the plugin-annotation default) —
a paint-time styleless-ish read, never a panic. Adding a new
builtin slot is one arm here plus the field/registration; plugin
slots resolve dynamically once the WASM host lands (design §7).
[Annotation::Styled]: lattice-completion’s Annotation::Styled
Sourcepub fn capture(reg: &dyn ThemeRegistry) -> BuiltinElementIds
pub fn capture(reg: &dyn ThemeRegistry) -> BuiltinElementIds
Intern the builtin ids from the registry once at boot. A
missing builtin (a registration bug, never expected) logs once
and falls back to ElementId::INVALID — a styleless read,
never a panic (graceful degradation, paramount-goal-aligned).
Trait Implementations§
Source§impl Clone for BuiltinElementIds
impl Clone for BuiltinElementIds
Source§fn clone(&self) -> BuiltinElementIds
fn clone(&self) -> BuiltinElementIds
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for BuiltinElementIds
Source§impl Debug for BuiltinElementIds
impl Debug for BuiltinElementIds
Source§impl Default for BuiltinElementIds
impl Default for BuiltinElementIds
Source§fn default() -> BuiltinElementIds
fn default() -> BuiltinElementIds
All ElementId::INVALID — the placeholder a default
RenderState carries before the boot capture. Reads against an
empty/default resolved table return Style::empty().
impl Eq for BuiltinElementIds
Source§impl PartialEq for BuiltinElementIds
impl PartialEq for BuiltinElementIds
impl StructuralPartialEq for BuiltinElementIds
Auto Trait Implementations§
impl Freeze for BuiltinElementIds
impl RefUnwindSafe for BuiltinElementIds
impl Send for BuiltinElementIds
impl Sync for BuiltinElementIds
impl Unpin for BuiltinElementIds
impl UnsafeUnpin for BuiltinElementIds
impl UnwindSafe for BuiltinElementIds
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more