Refactor: Extract monospace_attrs() helper to eliminate code duplication

- Add monospace_attrs() function in main.rs to centralize monospace font attributes creation
- Replace duplicated Attrs::new().family(Family::Monospace) calls in:
  * line_number.rs: LineNumberCache::get() method
  * main.rs: App::init() font enumeration
  * tab.rs: EditorTab::new() constructor
- Remove unused imports (Attrs, Family) from line_number.rs
- Resolves TODO comments about code repetition across modules

This change improves maintainability by having a single source of truth
for monospace font configuration.
This commit is contained in:
aquiles 2025-10-05 06:22:37 +00:00
parent 2d6d2d381e
commit 4bf88ae6ad
3 changed files with 10 additions and 7 deletions

View file

@ -1,5 +1,5 @@
use cosmic_text::{
Align, Attrs, AttrsList, BufferLine, Family, FontSystem, LayoutLine, LineEnding, Shaping, Wrap,
Align, AttrsList, BufferLine, FontSystem, LayoutLine, LineEnding, Shaping, Wrap,
};
use std::collections::HashMap;
@ -27,8 +27,7 @@ impl LineNumberCache {
pub fn get(&mut self, font_system: &mut FontSystem, key: LineNumberKey) -> &Vec<LayoutLine> {
self.cache.entry(key).or_insert_with(|| {
//TODO: do not repeat, used in App::init
let attrs = Attrs::new().family(Family::Monospace);
let attrs = crate::monospace_attrs();
let text = format!("{:width$}", key.number, width = key.width);
let mut buffer_line = BufferLine::new(
text,