MCPcopy Index your code
hub / github.com/encounter/objdiff / symbol_ui

Function symbol_ui

objdiff-gui/src/views/symbol_diff.rs:548–662  ·  view source on GitHub ↗
(
    ui: &mut Ui,
    ctx: SymbolDiffContext<'_>,
    symbol: &Symbol,
    symbol_diff: &SymbolDiff,
    symbol_idx: usize,
    section: Option<&Section>,
    state: &SymbolViewState,
    appearance:

Source from the content-addressed store, hash-verified

546
547#[must_use]
548fn symbol_ui(
549 ui: &mut Ui,
550 ctx: SymbolDiffContext<'_>,
551 symbol: &Symbol,
552 symbol_diff: &SymbolDiff,
553 symbol_idx: usize,
554 section: Option<&Section>,
555 state: &SymbolViewState,
556 appearance: &Appearance,
557 column: usize,
558 diff_config: &DiffObjConfig,
559) -> Option<DiffViewAction> {
560 let mut ret = None;
561 let mut job = LayoutJob::default();
562 let name: &str =
563 if let Some(demangled) = &symbol.demangled_name { demangled } else { &symbol.name };
564 let mut selected = false;
565 if let Some(sym_ref) =
566 if column == 0 { state.highlighted_symbol.0 } else { state.highlighted_symbol.1 }
567 {
568 selected = symbol_idx == sym_ref;
569 }
570 if !symbol.flags.is_empty() {
571 write_text("[", appearance.text_color, &mut job, appearance.code_font.clone());
572 if symbol.flags.contains(SymbolFlag::Common) {
573 write_text("c", appearance.replace_color, &mut job, appearance.code_font.clone());
574 } else if symbol.flags.contains(SymbolFlag::Global) {
575 write_text("g", appearance.insert_color, &mut job, appearance.code_font.clone());
576 } else if symbol.flags.contains(SymbolFlag::Local) {
577 write_text("l", appearance.text_color, &mut job, appearance.code_font.clone());
578 }
579 if symbol.flags.contains(SymbolFlag::Weak) {
580 write_text("w", appearance.text_color, &mut job, appearance.code_font.clone());
581 }
582 if symbol.flags.contains(SymbolFlag::HasExtra) {
583 write_text("e", appearance.text_color, &mut job, appearance.code_font.clone());
584 }
585 if symbol.flags.contains(SymbolFlag::Hidden) {
586 write_text(
587 "h",
588 appearance.deemphasized_text_color,
589 &mut job,
590 appearance.code_font.clone(),
591 );
592 }
593 write_text("] ", appearance.text_color, &mut job, appearance.code_font.clone());
594 }
595 if let Some(match_percent) = symbol_diff.match_percent {
596 write_text("(", appearance.text_color, &mut job, appearance.code_font.clone());
597 write_text(
598 &format!("{:.0}%", match_percent.floor()),
599 match_color_for_symbol(match_percent, appearance),
600 &mut job,
601 appearance.code_font.clone(),
602 );
603 write_text(") ", appearance.text_color, &mut job, appearance.code_font.clone());
604 }
605 write_text(name, appearance.highlight_color, &mut job, appearance.code_font.clone());

Callers 1

symbol_list_uiFunction · 0.85

Calls 6

write_textFunction · 0.85
match_color_for_symbolFunction · 0.85
symbol_hover_uiFunction · 0.85
symbol_context_menu_uiFunction · 0.85
enter_pressedFunction · 0.85
uiMethod · 0.80

Tested by

no test coverage detected