diff --git a/gpui/src/app.rs b/gpui/src/app.rs index 4da09387b8..631ae8ab2c 100644 --- a/gpui/src/app.rs +++ b/gpui/src/app.rs @@ -5,7 +5,7 @@ use crate::{ platform::{self, App as _, WindowOptions}, presenter::Presenter, util::post_inc, - AssetCache, AssetSource, FontCache, + AssetCache, AssetSource, FontCache, TextLayoutCache, }; use anyhow::{anyhow, Result}; use keymap::MatchResult; @@ -624,10 +624,11 @@ impl MutableAppContext { ) { Err(e) => log::error!("error opening window: {}", e), Ok(mut window) => { + let text_layout_cache = TextLayoutCache::new(self.platform.fonts()); let presenter = Rc::new(RefCell::new(Presenter::new( window_id, self.font_cache.clone(), - self.platform.fonts(), + text_layout_cache, self.assets.clone(), self, ))); diff --git a/gpui/src/presenter.rs b/gpui/src/presenter.rs index dc7db60412..900c9750c2 100644 --- a/gpui/src/presenter.rs +++ b/gpui/src/presenter.rs @@ -22,7 +22,7 @@ impl Presenter { pub fn new( window_id: usize, font_cache: Arc, - fonts: Arc, + text_layout_cache: TextLayoutCache, asset_cache: Arc, app: &MutableAppContext, ) -> Self { @@ -31,7 +31,7 @@ impl Presenter { rendered_views: app.render_views(window_id).unwrap(), parents: HashMap::new(), font_cache, - text_layout_cache: TextLayoutCache::new(fonts), + text_layout_cache, asset_cache, } } diff --git a/gpui/src/text_layout.rs b/gpui/src/text_layout.rs index eda4e775e1..2c3ae12ff5 100644 --- a/gpui/src/text_layout.rs +++ b/gpui/src/text_layout.rs @@ -1,24 +1,16 @@ use crate::{ color::ColorU, - fonts::{FontCache, FontId, GlyphId}, + fonts::{FontId, GlyphId}, geometry::rect::RectF, platform, scene, PaintContext, }; -use core_foundation::{ - attributed_string::CFMutableAttributedString, - base::{CFRange, TCFType}, - string::CFString, -}; -use core_text::{font::CTFont, line::CTLine, string_attributes::kCTFontAttributeName}; use ordered_float::OrderedFloat; use parking_lot::{Mutex, RwLock, RwLockUpgradableReadGuard}; -use pathfinder_geometry::vector::{vec2f, Vector2F}; +use pathfinder_geometry::vector::Vector2F; use smallvec::SmallVec; use std::{ borrow::Borrow, - char, collections::HashMap, - convert::TryFrom, hash::{Hash, Hasher}, ops::Range, sync::Arc, diff --git a/zed/src/editor/buffer/mod.rs b/zed/src/editor/buffer/mod.rs index 1de4f5781e..1d476ceb27 100644 --- a/zed/src/editor/buffer/mod.rs +++ b/zed/src/editor/buffer/mod.rs @@ -1907,7 +1907,7 @@ mod tests { use gpui::App; use std::{cell::RefCell, rc::Rc}; - let mut app = App::test((), |mut app| async move { + App::test((), |mut app| async move { let buffer_1_events = Rc::new(RefCell::new(Vec::new())); let buffer_2_events = Rc::new(RefCell::new(Vec::new())); diff --git a/zed/src/editor/buffer_view.rs b/zed/src/editor/buffer_view.rs index 899cda7ce3..6c41426d9f 100644 --- a/zed/src/editor/buffer_view.rs +++ b/zed/src/editor/buffer_view.rs @@ -996,7 +996,6 @@ impl BufferView { .each( layouts.chunks_mut(chunk_size as usize).enumerate(), |(ix, chunk)| { - let font_cache = &font_cache; let chunk_start = rows.start as usize + ix * chunk_size; let chunk_end = cmp::min(chunk_start + chunk_size, rows.end as usize); @@ -1363,11 +1362,9 @@ mod tests { #[test] fn test_layout_line_numbers() -> Result<()> { - use gpui::{fonts::FontCache, text_layout::TextLayoutCache}; - App::test((), |mut app| async move { - let font_cache = FontCache::new(app.platform().fonts()); let layout_cache = TextLayoutCache::new(app.platform().fonts()); + let font_cache = app.font_cache(); let buffer = app.add_model(|_| Buffer::new(0, sample_text(6, 6))); diff --git a/zed/src/workspace/mod.rs b/zed/src/workspace/mod.rs index 95bb71289e..c997934d06 100644 --- a/zed/src/workspace/mod.rs +++ b/zed/src/workspace/mod.rs @@ -53,7 +53,7 @@ fn open_paths(params: &OpenParams, app: &mut MutableAppContext) { mod tests { use super::*; use crate::{settings, test::*}; - use gpui::{App, FontCache}; + use gpui::App; use serde_json::json; #[test] diff --git a/zed/src/workspace/workspace_view.rs b/zed/src/workspace/workspace_view.rs index a5b586091d..feb58a39a7 100644 --- a/zed/src/workspace/workspace_view.rs +++ b/zed/src/workspace/workspace_view.rs @@ -325,7 +325,7 @@ mod tests { use super::{pane, Workspace, WorkspaceView}; use crate::{settings, test::temp_tree, workspace::WorkspaceHandle as _}; use anyhow::Result; - use gpui::{App, FontCache}; + use gpui::App; use serde_json::json; #[test]