mirror of
https://github.com/zed-industries/zed.git
synced 2024-11-08 07:35:01 +03:00
Use buffer font when rendering editor breadcrumbs and diagnostics (#10488)
Before: <img width="592" alt="Screenshot 2024-04-12 at 12 00 00 PM" src="https://github.com/zed-industries/zed/assets/2280405/3251743e-4f2c-4ca3-9bc5-88f37660f7b9"> After: <img width="673" alt="Screenshot 2024-04-12 at 12 11 37 PM" src="https://github.com/zed-industries/zed/assets/2280405/6a8ac597-261a-45d9-bf2a-a673b6f26b0e"> Release Notes: - N/A
This commit is contained in:
parent
104558115f
commit
065f15e9a6
@ -52,12 +52,19 @@ impl Render for Breadcrumbs {
|
|||||||
Some(BreadcrumbText {
|
Some(BreadcrumbText {
|
||||||
text: "⋯".into(),
|
text: "⋯".into(),
|
||||||
highlights: None,
|
highlights: None,
|
||||||
|
font: None,
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
let highlighted_segments = segments.into_iter().map(|segment| {
|
let highlighted_segments = segments.into_iter().map(|segment| {
|
||||||
let mut text_style = cx.text_style();
|
let mut text_style = cx.text_style();
|
||||||
|
if let Some(font) = segment.font {
|
||||||
|
text_style.font_family = font.family;
|
||||||
|
text_style.font_features = font.features;
|
||||||
|
text_style.font_style = font.style;
|
||||||
|
text_style.font_weight = font.weight;
|
||||||
|
}
|
||||||
text_style.color = Color::Muted.color(cx);
|
text_style.color = Color::Muted.color(cx);
|
||||||
|
|
||||||
StyledText::new(segment.text.replace('\n', ""))
|
StyledText::new(segment.text.replace('\n', ""))
|
||||||
|
@ -10593,6 +10593,11 @@ pub fn diagnostic_block_renderer(diagnostic: Diagnostic, _is_valid: bool) -> Ren
|
|||||||
|
|
||||||
let mut text_style = cx.text_style().clone();
|
let mut text_style = cx.text_style().clone();
|
||||||
text_style.color = diagnostic_style(diagnostic.severity, true, cx.theme().status());
|
text_style.color = diagnostic_style(diagnostic.severity, true, cx.theme().status());
|
||||||
|
let theme_settings = ThemeSettings::get_global(cx);
|
||||||
|
text_style.font_family = theme_settings.buffer_font.family.clone();
|
||||||
|
text_style.font_style = theme_settings.buffer_font.style;
|
||||||
|
text_style.font_features = theme_settings.buffer_font.features;
|
||||||
|
text_style.font_weight = theme_settings.buffer_font.weight;
|
||||||
|
|
||||||
let multi_line_diagnostic = diagnostic.message.contains('\n');
|
let multi_line_diagnostic = diagnostic.message.contains('\n');
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ use std::{
|
|||||||
sync::Arc,
|
sync::Arc,
|
||||||
};
|
};
|
||||||
use text::{BufferId, Selection};
|
use text::{BufferId, Selection};
|
||||||
use theme::Theme;
|
use theme::{Theme, ThemeSettings};
|
||||||
use ui::{h_flex, prelude::*, Label};
|
use ui::{h_flex, prelude::*, Label};
|
||||||
use util::{paths::PathExt, ResultExt, TryFutureExt};
|
use util::{paths::PathExt, ResultExt, TryFutureExt};
|
||||||
use workspace::item::{BreadcrumbText, FollowEvent, FollowableItemHandle};
|
use workspace::item::{BreadcrumbText, FollowEvent, FollowableItemHandle};
|
||||||
@ -827,13 +827,18 @@ impl Item for Editor {
|
|||||||
.map(|path| path.to_string_lossy().to_string())
|
.map(|path| path.to_string_lossy().to_string())
|
||||||
.unwrap_or_else(|| "untitled".to_string());
|
.unwrap_or_else(|| "untitled".to_string());
|
||||||
|
|
||||||
|
let settings = ThemeSettings::get_global(cx);
|
||||||
|
|
||||||
let mut breadcrumbs = vec![BreadcrumbText {
|
let mut breadcrumbs = vec![BreadcrumbText {
|
||||||
text: filename,
|
text: filename,
|
||||||
highlights: None,
|
highlights: None,
|
||||||
|
font: Some(settings.buffer_font.clone()),
|
||||||
}];
|
}];
|
||||||
|
|
||||||
breadcrumbs.extend(symbols.into_iter().map(|symbol| BreadcrumbText {
|
breadcrumbs.extend(symbols.into_iter().map(|symbol| BreadcrumbText {
|
||||||
text: symbol.text,
|
text: symbol.text,
|
||||||
highlights: Some(symbol.highlight_ranges),
|
highlights: Some(symbol.highlight_ranges),
|
||||||
|
font: Some(settings.buffer_font.clone()),
|
||||||
}));
|
}));
|
||||||
Some(breadcrumbs)
|
Some(breadcrumbs)
|
||||||
}
|
}
|
||||||
|
@ -861,6 +861,7 @@ impl Item for TerminalView {
|
|||||||
Some(vec![BreadcrumbText {
|
Some(vec![BreadcrumbText {
|
||||||
text: self.terminal().read(cx).breadcrumb_text.clone(),
|
text: self.terminal().read(cx).breadcrumb_text.clone(),
|
||||||
highlights: None,
|
highlights: None,
|
||||||
|
font: None,
|
||||||
}])
|
}])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ use client::{
|
|||||||
use futures::{channel::mpsc, StreamExt};
|
use futures::{channel::mpsc, StreamExt};
|
||||||
use gpui::{
|
use gpui::{
|
||||||
AnyElement, AnyView, AppContext, Entity, EntityId, EventEmitter, FocusHandle, FocusableView,
|
AnyElement, AnyView, AppContext, Entity, EntityId, EventEmitter, FocusHandle, FocusableView,
|
||||||
HighlightStyle, Model, Pixels, Point, SharedString, Task, View, ViewContext, WeakView,
|
Font, HighlightStyle, Model, Pixels, Point, SharedString, Task, View, ViewContext, WeakView,
|
||||||
WindowContext,
|
WindowContext,
|
||||||
};
|
};
|
||||||
use project::{Project, ProjectEntryId, ProjectPath};
|
use project::{Project, ProjectEntryId, ProjectPath};
|
||||||
@ -122,6 +122,7 @@ pub enum ItemEvent {
|
|||||||
pub struct BreadcrumbText {
|
pub struct BreadcrumbText {
|
||||||
pub text: String,
|
pub text: String,
|
||||||
pub highlights: Option<Vec<(Range<usize>, HighlightStyle)>>,
|
pub highlights: Option<Vec<(Range<usize>, HighlightStyle)>>,
|
||||||
|
pub font: Option<Font>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, Copy)]
|
#[derive(Debug, Clone, Copy)]
|
||||||
|
Loading…
Reference in New Issue
Block a user