Display something

Kirill Bulatov created

Change summary

crates/language_tools2/src/lsp_log.rs          | 10 ++++++++--
crates/language_tools2/src/syntax_tree_view.rs | 18 ++++++++++++++----
crates/zed2/src/zed2.rs                        | 11 +++++------
3 files changed, 27 insertions(+), 12 deletions(-)

Detailed changes

crates/language_tools2/src/lsp_log.rs 🔗

@@ -741,11 +741,13 @@ impl Render for LspLogToolbarItemView {
         let _server_selected = current_server.is_some();
 
         let lsp_menu = h_stack()
+            .size_full()
             .child(Self::render_language_server_menu_header(current_server, cx))
             .children(if self.menu_open {
                 Some(
                     overlay().child(
                         v_stack()
+                            .size_full()
                             // todo!()
                             // .scrollable::<LspLogScroll>(0, None, cx)
                             .children(menu_rows.into_iter().map(|row| {
@@ -769,11 +771,11 @@ impl Render for LspLogToolbarItemView {
                        // .with_hoverable(true)
                        // .with_fit_mode(OverlayFitMode::SwitchAnchor)
                        // .with_anchor_corner(AnchorCorner::TopLeft)
-                       // .with_z_index(999),
                 )
             } else {
                 None
-            });
+            })
+            .z_index(99);
 
         let log_cleanup_button = div()
             .child(Label::new("Clear"))
@@ -794,6 +796,7 @@ impl Render for LspLogToolbarItemView {
             .cursor(CursorStyle::PointingHand);
 
         h_stack()
+            .size_full()
             .child(lsp_menu)
             .child(log_cleanup_button)
             .border_1()
@@ -897,6 +900,7 @@ impl LspLogToolbarItemView {
         cx: &mut ViewContext<Self>,
     ) -> Div {
         v_stack()
+            .size_full()
             .child(Label::new(format!("{} ({})", name.0, worktree_root_name)))
             .child(
                 div()
@@ -911,6 +915,7 @@ impl LspLogToolbarItemView {
             )
             .child(
                 h_stack()
+                    .size_full()
                     .child(Label::new(RPC_MESSAGES))
                     .child(
                         Checkbox::new(
@@ -940,6 +945,7 @@ impl LspLogToolbarItemView {
             )
             .border_1()
             .border_color(red())
+            .bg(red())
     }
 }
 

crates/language_tools2/src/syntax_tree_view.rs 🔗

@@ -319,7 +319,7 @@ impl SyntaxTreeView {
             anonymous_node_style.color = color;
         }
 
-        let mut row = h_stack();
+        let mut row = h_stack().size_full();
         if let Some(field_name) = cursor.field_name() {
             let mut field_style = style.clone();
             if let Some(color) = property_color {
@@ -378,6 +378,8 @@ impl Render for SyntaxTreeView {
             self.hover_state_changed(cx);
         }
 
+        let mut rendered = div();
+
         if let Some(layer) = self
             .editor
             .as_ref()
@@ -390,7 +392,7 @@ impl Render for SyntaxTreeView {
             // todo!()
             // let list_hovered = state.hovered();
             let list_hovered = false;
-            uniform_list(
+            let list = uniform_list(
                 cx.view().clone(),
                 "SyntaxTreeView",
                 layer.node().descendant_count(),
@@ -444,9 +446,11 @@ impl Render for SyntaxTreeView {
                 }),
             )
             .text_bg(editor_colors.background);
+
+            rendered = rendered.child(list);
         }
 
-        div()
+        rendered
     }
 }
 
@@ -505,10 +509,12 @@ impl SyntaxTreeToolbarItemView {
 
         Some(
             v_stack()
+                .size_full()
                 .child(Self::render_header(&active_layer, cx))
                 .children(self.menu_open.then(|| {
                     overlay().child(
                         v_stack()
+                            .size_full()
                             .children(active_buffer.syntax_layers().enumerate().map(
                                 |(ix, layer)| Self::render_menu_item(&active_layer, layer, ix, cx),
                             ))
@@ -519,7 +525,8 @@ impl SyntaxTreeToolbarItemView {
                                 }
                             })),
                     )
-                })),
+                }))
+                .z_index(99),
         )
     }
 
@@ -545,6 +552,7 @@ impl SyntaxTreeToolbarItemView {
 
     fn render_header(active_layer: &OwnedSyntaxLayerInfo, cx: &mut ViewContext<Self>) -> Div {
         h_stack()
+            .size_full()
             .child(Label::new(active_layer.language.name()))
             .child(Label::new(format_node_range(active_layer.node())))
             .on_mouse_down(
@@ -567,6 +575,7 @@ impl SyntaxTreeToolbarItemView {
         // todo!() styling
         let _is_selected = layer.node() == active_layer.node();
         h_stack()
+            .size_full()
             .child(Label::new(layer.language.name().to_string()))
             .child(Label::new(format_node_range(layer.node())))
             .cursor(CursorStyle::PointingHand)
@@ -578,6 +587,7 @@ impl SyntaxTreeToolbarItemView {
             )
             .border_1()
             .border_color(red())
+            .bg(red())
     }
 }
 

crates/zed2/src/zed2.rs 🔗

@@ -429,12 +429,11 @@ fn initialize_pane(workspace: &mut Workspace, pane: &View<Pane>, cx: &mut ViewCo
             toolbar.add_item(diagnostic_editor_controls, cx);
             let project_search_bar = cx.build_view(|_| ProjectSearchBar::new());
             toolbar.add_item(project_search_bar, cx);
-            //     let lsp_log_item =
-            //         cx.add_view(|_| language_tools::LspLogToolbarItemView::new());
-            //     toolbar.add_item(lsp_log_item, cx);
-            //     let syntax_tree_item = cx
-            //         .add_view(|_| language_tools::SyntaxTreeToolbarItemView::new());
-            //     toolbar.add_item(syntax_tree_item, cx);
+            let lsp_log_item = cx.build_view(|_| language_tools::LspLogToolbarItemView::new());
+            toolbar.add_item(lsp_log_item, cx);
+            let syntax_tree_item =
+                cx.build_view(|_| language_tools::SyntaxTreeToolbarItemView::new());
+            toolbar.add_item(syntax_tree_item, cx);
         })
     });
 }