Slightly less errors in terminal_element2

This commit is contained in:
Kirill Bulatov 2023-11-27 16:55:48 +02:00
parent 56d3d663a5
commit cd4ea344a6

View File

@ -1,8 +1,11 @@
// #![allow(unused)] // todo!()
// use editor::{Cursor, HighlightedRange, HighlightedRangeLine}; // use editor::{Cursor, HighlightedRange, HighlightedRangeLine};
// use gpui::{ // use gpui::{
// point, transparent_black, AnyElement, AppContext, Bounds, Component, CursorStyle, Element, // point, transparent_black, AnyElement, AppContext, Bounds, Component, CursorStyle, Element,
// FontStyle, FontWeight, HighlightStyle, Hsla, LayoutId, Line, ModelContext, MouseButton, // ElementId, FontStyle, FontWeight, HighlightStyle, Hsla, IntoElement, IsZero, LayoutId,
// Overlay, Pixels, Point, Quad, TextStyle, Underline, ViewContext, WeakModel, WindowContext, // ModelContext, Overlay, Pixels, Point, Quad, TextRun, TextStyle, TextSystem, Underline,
// ViewContext, WeakModel, WindowContext,
// }; // };
// use itertools::Itertools; // use itertools::Itertools;
// use language::CursorShape; // use language::CursorShape;
@ -15,15 +18,10 @@
// index::Point as AlacPoint, // index::Point as AlacPoint,
// term::{cell::Flags, TermMode}, // term::{cell::Flags, TermMode},
// }, // },
// // mappings::colors::convert_color,
// terminal_settings::TerminalSettings, // terminal_settings::TerminalSettings,
// IndexedCell, // IndexedCell, Terminal, TerminalContent, TerminalSize,
// Terminal,
// TerminalContent,
// TerminalSize,
// }; // };
// use theme::ThemeSettings; // use theme::ThemeSettings;
// use workspace::ElementId;
// use std::mem; // use std::mem;
// use std::{fmt::Debug, ops::RangeInclusive}; // use std::{fmt::Debug, ops::RangeInclusive};
@ -40,7 +38,7 @@
// size: TerminalSize, // size: TerminalSize,
// mode: TermMode, // mode: TermMode,
// display_offset: usize, // display_offset: usize,
// hyperlink_tooltip: Option<AnyElement<TerminalView>>, // hyperlink_tooltip: Option<AnyElement>,
// gutter: f32, // gutter: f32,
// } // }
@ -183,9 +181,9 @@
// grid: &Vec<IndexedCell>, // grid: &Vec<IndexedCell>,
// text_style: &TextStyle, // text_style: &TextStyle,
// terminal_theme: &TerminalStyle, // terminal_theme: &TerminalStyle,
// text_layout_cache: &TextLayoutCache, // text_system: &TextSystem,
// font_cache: &FontCache,
// hyperlink: Option<(HighlightStyle, &RangeInclusive<AlacPoint>)>, // hyperlink: Option<(HighlightStyle, &RangeInclusive<AlacPoint>)>,
// cx: &mut WindowContext<'_>,
// ) -> (Vec<LayoutCell>, Vec<LayoutRect>) { // ) -> (Vec<LayoutCell>, Vec<LayoutRect>) {
// let mut cells = vec![]; // let mut cells = vec![];
// let mut rects = vec![]; // let mut rects = vec![];
@ -252,15 +250,15 @@
// fg, // fg,
// terminal_theme, // terminal_theme,
// text_style, // text_style,
// font_cache, // text_system,
// hyperlink, // hyperlink,
// ); // );
// let layout_cell = text_layout_cache.layout_str( // let layout_cell = text_system.layout_line(
// cell_text, // cell_text,
// text_style.font_size, // text_style.font_size.to_pixels(cx.rem_size()),
// &[(cell_text.len(), cell_style)], // &[(cell_text.len(), cell_style)],
// ); // )?;
// cells.push(LayoutCell::new( // cells.push(LayoutCell::new(
// AlacPoint::new(line_index as i32, cell.point.column.0 as i32), // AlacPoint::new(line_index as i32, cell.point.column.0 as i32),
@ -311,24 +309,27 @@
// fg: terminal::alacritty_terminal::ansi::Color, // fg: terminal::alacritty_terminal::ansi::Color,
// style: &TerminalStyle, // style: &TerminalStyle,
// text_style: &TextStyle, // text_style: &TextStyle,
// font_cache: &FontCache, // text_system: &TextSystem,
// hyperlink: Option<(HighlightStyle, &RangeInclusive<AlacPoint>)>, // hyperlink: Option<(HighlightStyle, &RangeInclusive<AlacPoint>)>,
// ) -> RunStyle { // ) -> TextRun {
// let flags = indexed.cell.flags; // let flags = indexed.cell.flags;
// let fg = convert_color(&fg, &style); // let fg = convert_color(&fg, &style);
// let mut underline = flags // let mut underline = flags
// .intersects(Flags::ALL_UNDERLINES) // .intersects(Flags::ALL_UNDERLINES)
// .then(|| Underline { // .then(|| Underline {
// color: Some(fg), // color: fg,
// squiggly: flags.contains(Flags::UNDERCURL), // thickness: Pixels::from(1.0).scale(1.0),
// thickness: OrderedFloat(1.), // order: todo!(),
// bounds: todo!(),
// content_mask: todo!(),
// wavy: flags.contains(Flags::UNDERCURL),
// }) // })
// .unwrap_or_default(); // .unwrap_or_default();
// if indexed.cell.hyperlink().is_some() { // if indexed.cell.hyperlink().is_some() {
// if underline.thickness == OrderedFloat(0.) { // if underline.thickness.is_zero() {
// underline.thickness = OrderedFloat(1.); // underline.thickness = Pixels::from(1.0).scale(1.0);
// } // }
// } // }
@ -340,11 +341,11 @@
// properties = *properties.style(FontStyle::Italic); // properties = *properties.style(FontStyle::Italic);
// } // }
// let font_id = font_cache // let font_id = text_system
// .select_font(text_style.font_family, &properties) // .select_font(text_style.font_family, &properties)
// .unwrap_or(text_style.font_id); // .unwrap_or(text_style.font_id);
// let mut result = RunStyle { // let mut result = TextRun {
// color: fg, // color: fg,
// font_id, // font_id,
// underline, // underline,
@ -353,7 +354,7 @@
// if let Some((style, range)) = hyperlink { // if let Some((style, range)) = hyperlink {
// if range.contains(&indexed.point) { // if range.contains(&indexed.point) {
// if let Some(underline) = style.underline { // if let Some(underline) = style.underline {
// result.underline = underline; // result.underline = Some(underline);
// } // }
// if let Some(color) = style.color { // if let Some(color) = style.color {
@ -365,22 +366,23 @@
// result // result
// } // }
// fn generic_button_handler<E>( // // todo!()
// connection: WeakModel<Terminal>, // // fn generic_button_handler<E>(
// origin: Point<Pixels>, // // connection: WeakModel<Terminal>,
// f: impl Fn(&mut Terminal, Point<Pixels>, E, &mut ModelContext<Terminal>), // // origin: Point<Pixels>,
// ) -> impl Fn(E, &mut TerminalView, &mut EventContext<TerminalView>) { // // f: impl Fn(&mut Terminal, Point<Pixels>, E, &mut ModelContext<Terminal>),
// move |event, _: &mut TerminalView, cx| { // // ) -> impl Fn(E, &mut TerminalView, &mut EventContext<TerminalView>) {
// cx.focus_parent(); // // move |event, _: &mut TerminalView, cx| {
// if let Some(conn_handle) = connection.upgrade() { // // cx.focus_parent();
// conn_handle.update(cx, |terminal, cx| { // // if let Some(conn_handle) = connection.upgrade() {
// f(terminal, origin, event, cx); // // conn_handle.update(cx, |terminal, cx| {
// // f(terminal, origin, event, cx);
// cx.notify(); // // cx.notify();
// }) // // })
// } // // }
// } // // }
// } // // }
// fn attach_mouse_handlers( // fn attach_mouse_handlers(
// &self, // &self,
@ -389,144 +391,144 @@
// mode: TermMode, // mode: TermMode,
// cx: &mut ViewContext<TerminalView>, // cx: &mut ViewContext<TerminalView>,
// ) { // ) {
// let connection = self.terminal; // // todo!()
// // let connection = self.terminal;
// let mut region = MouseRegion::new::<Self>(cx.view_id(), 0, visible_bounds); // // let mut region = MouseRegion::new::<Self>(cx.view_id(), 0, visible_bounds);
// // Terminal Emulator controlled behavior: // // // Terminal Emulator controlled behavior:
// region = region // // region = region
// // Start selections // // // Start selections
// .on_down(MouseButton::Left, move |event, v: &mut TerminalView, cx| { // // .on_down(MouseButton::Left, move |event, v: &mut TerminalView, cx| {
// let terminal_view = cx.handle(); // // let terminal_view = cx.handle();
// cx.focus(&terminal_view); // // cx.focus(&terminal_view);
// v.context_menu.update(cx, |menu, _cx| menu.delay_cancel()); // // v.context_menu.update(cx, |menu, _cx| menu.delay_cancel());
// if let Some(conn_handle) = connection.upgrade() { // // if let Some(conn_handle) = connection.upgrade() {
// conn_handle.update(cx, |terminal, cx| { // // conn_handle.update(cx, |terminal, cx| {
// terminal.mouse_down(&event, origin); // // terminal.mouse_down(&event, origin);
// cx.notify(); // // cx.notify();
// }) // // })
// } // // }
// }) // // })
// // Update drag selections // // // Update drag selections
// .on_drag(MouseButton::Left, move |event, _: &mut TerminalView, cx| { // // .on_drag(MouseButton::Left, move |event, _: &mut TerminalView, cx| {
// if event.end { // // if event.end {
// return; // // return;
// } // // }
// if cx.is_self_focused() { // // if cx.is_self_focused() {
// if let Some(conn_handle) = connection.upgrade() { // // if let Some(conn_handle) = connection.upgrade() {
// conn_handle.update(cx, |terminal, cx| { // // conn_handle.update(cx, |terminal, cx| {
// terminal.mouse_drag(event, origin); // // terminal.mouse_drag(event, origin);
// cx.notify(); // // cx.notify();
// }) // // })
// } // // }
// } // // }
// }) // // })
// // Copy on up behavior // // // Copy on up behavior
// .on_up( // // .on_up(
// MouseButton::Left, // // MouseButton::Left,
// TerminalElement::generic_button_handler( // // TerminalElement::generic_button_handler(
// connection, // // connection,
// origin, // // origin,
// move |terminal, origin, e, cx| { // // move |terminal, origin, e, cx| {
// terminal.mouse_up(&e, origin, cx); // // terminal.mouse_up(&e, origin, cx);
// }, // // },
// ), // // ),
// ) // // )
// // Context menu // // // Context menu
// .on_click( // // .on_click(
// MouseButton::Right, // // MouseButton::Right,
// move |event, view: &mut TerminalView, cx| { // // move |event, view: &mut TerminalView, cx| {
// let mouse_mode = if let Some(conn_handle) = connection.upgrade() { // // let mouse_mode = if let Some(conn_handle) = connection.upgrade() {
// conn_handle.update(cx, |terminal, _cx| terminal.mouse_mode(event.shift)) // // conn_handle.update(cx, |terminal, _cx| terminal.mouse_mode(event.shift))
// } else { // // } else {
// // If we can't get the model handle, probably can't deploy the context menu // // // If we can't get the model handle, probably can't deploy the context menu
// true // // true
// }; // // };
// if !mouse_mode { // // if !mouse_mode {
// view.deploy_context_menu(event.position, cx); // // view.deploy_context_menu(event.position, cx);
// } // // }
// }, // // },
// ) // // )
// .on_move(move |event, _: &mut TerminalView, cx| { // // .on_move(move |event, _: &mut TerminalView, cx| {
// if cx.is_self_focused() { // // if cx.is_self_focused() {
// if let Some(conn_handle) = connection.upgrade() { // // if let Some(conn_handle) = connection.upgrade() {
// conn_handle.update(cx, |terminal, cx| { // // conn_handle.update(cx, |terminal, cx| {
// terminal.mouse_move(&event, origin); // // terminal.mouse_move(&event, origin);
// cx.notify(); // // cx.notify();
// }) // // })
// } // // }
// } // // }
// }) // // })
// .on_scroll(move |event, _: &mut TerminalView, cx| { // // .on_scroll(move |event, _: &mut TerminalView, cx| {
// if let Some(conn_handle) = connection.upgrade() { // // if let Some(conn_handle) = connection.upgrade() {
// conn_handle.update(cx, |terminal, cx| { // // conn_handle.update(cx, |terminal, cx| {
// terminal.scroll_wheel(event, origin); // // terminal.scroll_wheel(event, origin);
// cx.notify(); // // cx.notify();
// }) // // })
// } // // }
// }); // // });
// // Mouse mode handlers: // // // Mouse mode handlers:
// // All mouse modes need the extra click handlers // // // All mouse modes need the extra click handlers
// if mode.intersects(TermMode::MOUSE_MODE) { // // if mode.intersects(TermMode::MOUSE_MODE) {
// region = region // // region = region
// .on_down( // // .on_down(
// MouseButton::Right, // // MouseButton::Right,
// TerminalElement::generic_button_handler( // // TerminalElement::generic_button_handler(
// connection, // // connection,
// origin, // // origin,
// move |terminal, origin, e, _cx| { // // move |terminal, origin, e, _cx| {
// terminal.mouse_down(&e, origin); // // terminal.mouse_down(&e, origin);
// }, // // },
// ), // // ),
// ) // // )
// .on_down( // // .on_down(
// MouseButton::Middle, // // MouseButton::Middle,
// TerminalElement::generic_button_handler( // // TerminalElement::generic_button_handler(
// connection, // // connection,
// origin, // // origin,
// move |terminal, origin, e, _cx| { // // move |terminal, origin, e, _cx| {
// terminal.mouse_down(&e, origin); // // terminal.mouse_down(&e, origin);
// }, // // },
// ), // // ),
// ) // // )
// .on_up( // // .on_up(
// MouseButton::Right, // // MouseButton::Right,
// TerminalElement::generic_button_handler( // // TerminalElement::generic_button_handler(
// connection, // // connection,
// origin, // // origin,
// move |terminal, origin, e, cx| { // // move |terminal, origin, e, cx| {
// terminal.mouse_up(&e, origin, cx); // // terminal.mouse_up(&e, origin, cx);
// }, // // },
// ), // // ),
// ) // // )
// .on_up( // // .on_up(
// MouseButton::Middle, // // MouseButton::Middle,
// TerminalElement::generic_button_handler( // // TerminalElement::generic_button_handler(
// connection, // // connection,
// origin, // // origin,
// move |terminal, origin, e, cx| { // // move |terminal, origin, e, cx| {
// terminal.mouse_up(&e, origin, cx); // // terminal.mouse_up(&e, origin, cx);
// }, // // },
// ), // // ),
// ) // // )
// } // // }
// cx.scene().push_mouse_region(region); // // cx.scene().push_mouse_region(region);
// } // }
// } // }
// impl Element<TerminalView> for TerminalElement { // impl Element for TerminalElement {
// type ElementState = LayoutState; // type State = LayoutState;
// fn layout( // fn layout(
// &mut self, // &mut self,
// view_state: &mut TerminalView, // element_state: Option<Self::State>,
// element_state: Option<Self::ElementState>, // cx: &mut WindowContext<'_>,
// cx: &mut ViewContext<TerminalView>, // ) -> (LayoutId, Self::State) {
// ) -> (LayoutId, Self::ElementState) {
// let settings = ThemeSettings::get_global(cx); // let settings = ThemeSettings::get_global(cx);
// let terminal_settings = TerminalSettings::get_global(cx); // let terminal_settings = TerminalSettings::get_global(cx);
@ -535,7 +537,7 @@
// let link_style = settings.theme.editor.link_definition; // let link_style = settings.theme.editor.link_definition;
// let tooltip_style = settings.theme.tooltip.clone(); // let tooltip_style = settings.theme.tooltip.clone();
// let font_cache = cx.font_cache(); // let text_system = cx.text_system();
// let font_size = font_size(&terminal_settings, cx).unwrap_or(settings.buffer_font_size(cx)); // let font_size = font_size(&terminal_settings, cx).unwrap_or(settings.buffer_font_size(cx));
// let font_family_name = terminal_settings // let font_family_name = terminal_settings
// .font_family // .font_family
@ -545,30 +547,37 @@
// .font_features // .font_features
// .as_ref() // .as_ref()
// .unwrap_or(&settings.buffer_font_features); // .unwrap_or(&settings.buffer_font_features);
// let family_id = font_cache // let family_id = text_system
// .load_family(&[font_family_name], &font_features) // .load_family(&[font_family_name], &font_features)
// .log_err() // .log_err()
// .unwrap_or(settings.buffer_font_family); // .unwrap_or(settings.buffer_font_family);
// let font_id = font_cache // let font_id = text_system
// .select_font(family_id, &Default::default()) // .select_font(family_id, &Default::default())
// .unwrap(); // .unwrap();
// let text_style = TextStyle { // let text_style = TextStyle {
// color: settings.theme.editor.text_color, // color: settings.theme.editor.text_color,
// font_family_id: family_id, // font_family_id: family_id,
// font_family_name: font_cache.family_name(family_id).unwrap(), // font_family_name: text_system.family_name(family_id).unwrap(),
// font_id, // font_id,
// font_size, // font_size,
// font_properties: Default::default(), // font_properties: Default::default(),
// underline: Default::default(), // underline: Default::default(),
// soft_wrap: false, // soft_wrap: false,
// font_family: todo!(),
// font_features: todo!(),
// line_height: todo!(),
// font_weight: todo!(),
// font_style: todo!(),
// background_color: todo!(),
// white_space: todo!(),
// }; // };
// let selection_color = settings.theme.editor.selection.selection; // let selection_color = settings.theme.editor.selection.selection;
// let match_color = settings.theme.search.match_background; // let match_color = settings.theme.search.match_background;
// let gutter; // let gutter;
// let dimensions = { // let dimensions = {
// let line_height = text_style.font_size * terminal_settings.line_height.value(); // let line_height = text_style.font_size * terminal_settings.line_height.value();
// let cell_width = font_cache.em_advance(text_style.font_id, text_style.font_size); // let cell_width = text_system.em_advance(text_style.font_id, text_style.font_size);
// gutter = cell_width; // gutter = cell_width;
// let size = constraint.max - point(gutter, 0.); // let size = constraint.max - point(gutter, 0.);
@ -645,11 +654,11 @@
// cells, // cells,
// &text_style, // &text_style,
// &terminal_theme, // &terminal_theme,
// cx.text_layout_cache(), // &cx.text_system(),
// cx.font_cache(),
// last_hovered_word // last_hovered_word
// .as_ref() // .as_ref()
// .map(|last_hovered_word| (link_style, &last_hovered_word.word_match)), // .map(|last_hovered_word| (link_style, &last_hovered_word.word_match)),
// cx,
// ); // );
// //Layout cursor. Rectangle is used for IME, so we should lay it out even // //Layout cursor. Rectangle is used for IME, so we should lay it out even
@ -667,18 +676,18 @@
// terminal_theme.foreground // terminal_theme.foreground
// }; // };
// cx.text_layout_cache().layout_str( // cx.text_system().layout_line(
// &str_trxt, // &str_trxt,
// text_style.font_size, // text_style.font_size,
// &[( // &[(
// str_trxt.len(), // str_trxt.len(),
// RunStyle { // TextRun {
// font_id: text_style.font_id, // font_id: text_style.font_id,
// color, // color,
// underline: Default::default(), // underline: Default::default(),
// }, // },
// )], // )],
// ) // )?
// }; // };
// let focused = self.focused; // let focused = self.focused;
@ -709,7 +718,7 @@
// //Done! // //Done!
// ( // (
// constraint.max, // constraint.max,
// Self::ElementState { // Self::State {
// cells, // cells,
// cursor, // cursor,
// background_color, // background_color,
@ -725,93 +734,89 @@
// } // }
// fn paint( // fn paint(
// &mut self, // self,
// bounds: Bounds<Pixels>, // bounds: Bounds<Pixels>,
// view_state: &mut TerminalView, // element_state: &mut Self::State,
// element_state: &mut Self::ElementState, // cx: &mut WindowContext<'_>,
// cx: &mut ViewContext<TerminalView>,
// ) { // ) {
// let visible_bounds = bounds.intersection(visible_bounds).unwrap_or_default(); // // todo!()
// // let visible_bounds = bounds.intersection(visible_bounds).unwrap_or_default();
// //Setup element stuff // // //Setup element stuff
// let clip_bounds = Some(visible_bounds); // // let clip_bounds = Some(visible_bounds);
// cx.paint_layer(clip_bounds, |cx| { // // cx.paint_layer(clip_bounds, |cx| {
// let origin = bounds.origin + point(element_state.gutter, 0.); // // let origin = bounds.origin + point(element_state.gutter, 0.);
// // Elements are ephemeral, only at paint time do we know what could be clicked by a mouse // // // Elements are ephemeral, only at paint time do we know what could be clicked by a mouse
// self.attach_mouse_handlers(origin, visible_bounds, element_state.mode, cx); // // self.attach_mouse_handlers(origin, visible_bounds, element_state.mode, cx);
// cx.scene().push_cursor_region(gpui::CursorRegion { // // cx.scene().push_cursor_region(gpui::CursorRegion {
// bounds, // // bounds,
// style: if element_state.hyperlink_tooltip.is_some() { // // style: if element_state.hyperlink_tooltip.is_some() {
// CursorStyle::AlacPointingHand // // CursorStyle::AlacPointingHand
// } else { // // } else {
// CursorStyle::IBeam // // CursorStyle::IBeam
// }, // // },
// }); // // });
// cx.paint_layer(clip_bounds, |cx| { // // cx.paint_layer(clip_bounds, |cx| {
// //Start with a background color // // //Start with a background color
// cx.scene().push_quad(Quad { // // cx.scene().push_quad(Quad {
// bounds, // // bounds,
// background: Some(element_state.background_color), // // background: Some(element_state.background_color),
// border: Default::default(), // // border: Default::default(),
// corner_radii: Default::default(), // // corner_radii: Default::default(),
// }); // // });
// for rect in &element_state.rects { // // for rect in &element_state.rects {
// rect.paint(origin, element_state, view_state, cx); // // rect.paint(origin, element_state, view_state, cx);
// } // // }
// }); // // });
// //Draw Highlighted Backgrounds // // //Draw Highlighted Backgrounds
// cx.paint_layer(clip_bounds, |cx| { // // cx.paint_layer(clip_bounds, |cx| {
// for (relative_highlighted_range, color) in // // for (relative_highlighted_range, color) in
// element_state.relative_highlighted_ranges.iter() // // element_state.relative_highlighted_ranges.iter()
// { // // {
// if let Some((start_y, highlighted_range_lines)) = to_highlighted_range_lines( // // if let Some((start_y, highlighted_range_lines)) = to_highlighted_range_lines(
// relative_highlighted_range, // // relative_highlighted_range,
// element_state, // // element_state,
// origin, // // origin,
// ) { // // ) {
// let hr = HighlightedRange { // // let hr = HighlightedRange {
// start_y, //Need to change this // // start_y, //Need to change this
// line_height: element_state.size.line_height, // // line_height: element_state.size.line_height,
// lines: highlighted_range_lines, // // lines: highlighted_range_lines,
// color: color.clone(), // // color: color.clone(),
// //Copied from editor. TODO: move to theme or something // // //Copied from editor. TODO: move to theme or something
// corner_radius: 0.15 * element_state.size.line_height, // // corner_radius: 0.15 * element_state.size.line_height,
// }; // // };
// hr.paint(bounds, cx); // // hr.paint(bounds, cx);
// } // // }
// } // // }
// }); // // });
// //Draw the text cells // // //Draw the text cells
// cx.paint_layer(clip_bounds, |cx| { // // cx.paint_layer(clip_bounds, |cx| {
// for cell in &element_state.cells { // // for cell in &element_state.cells {
// cell.paint(origin, element_state, visible_bounds, view_state, cx); // // cell.paint(origin, element_state, visible_bounds, view_state, cx);
// } // // }
// }); // // });
// //Draw cursor // // //Draw cursor
// if self.cursor_visible { // // if self.cursor_visible {
// if let Some(cursor) = &element_state.cursor { // // if let Some(cursor) = &element_state.cursor {
// cx.paint_layer(clip_bounds, |cx| { // // cx.paint_layer(clip_bounds, |cx| {
// cursor.paint(origin, cx); // // cursor.paint(origin, cx);
// }) // // })
// } // // }
// } // // }
// if let Some(element) = &mut element_state.hyperlink_tooltip { // // if let Some(element) = &mut element_state.hyperlink_tooltip {
// element.paint(origin, visible_bounds, view_state, cx) // // element.paint(origin, visible_bounds, view_state, cx)
// } // // }
// }); // // });
// }
// fn element_id(&self) -> Option<ElementId> {
// todo!()
// } // }
// // todo!() remove? // // todo!() remove?
@ -822,7 +827,7 @@
// // fn debug( // // fn debug(
// // &self, // // &self,
// // _: Bounds<Pixels>, // // _: Bounds<Pixels>,
// // _: &Self::ElementState, // // _: &Self::State,
// // _: &Self::PaintState, // // _: &Self::PaintState,
// // _: &TerminalView, // // _: &TerminalView,
// // _: &gpui::ViewContext<TerminalView>, // // _: &gpui::ViewContext<TerminalView>,
@ -837,7 +842,7 @@
// // _: Range<usize>, // // _: Range<usize>,
// // bounds: Bounds<Pixels>, // // bounds: Bounds<Pixels>,
// // _: Bounds<Pixels>, // // _: Bounds<Pixels>,
// // layout: &Self::ElementState, // // layout: &Self::State,
// // _: &Self::PaintState, // // _: &Self::PaintState,
// // _: &TerminalView, // // _: &TerminalView,
// // _: &gpui::ViewContext<TerminalView>, // // _: &gpui::ViewContext<TerminalView>,
@ -855,10 +860,16 @@
// // } // // }
// } // }
// impl Component<TerminalView> for TerminalElement { // impl IntoElement for TerminalElement {
// fn render(self) -> AnyElement<TerminalView> { // type Element = Self;
// fn element_id(&self) -> Option<ElementId> {
// todo!() // todo!()
// } // }
// fn into_element(self) -> Self::Element {
// self
// }
// } // }
// fn is_blank(cell: &IndexedCell) -> bool { // fn is_blank(cell: &IndexedCell) -> bool {
@ -952,3 +963,8 @@
// .font_size // .font_size
// .map(|size| theme::adjusted_font_size(size, cx)) // .map(|size| theme::adjusted_font_size(size, cx))
// } // }
// // mappings::colors::convert_color
// fn convert_color(fg: &terminal::alacritty_terminal::ansi::Color, style: &TerminalStyle) -> Hsla {
// todo!()
// }