From 052b746fbd66a5c908b7185c703052818d1c84b5 Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Mon, 28 Oct 2024 21:55:38 +0100 Subject: [PATCH] language_selector: Fix debug_assert firing off on context menu creation for LSP view (#19854) Closes #ISSUE Release Notes: - N/A --- crates/language_tools/src/lsp_log.rs | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/crates/language_tools/src/lsp_log.rs b/crates/language_tools/src/lsp_log.rs index a5f77ec55f..e57d5dbc4a 100644 --- a/crates/language_tools/src/lsp_log.rs +++ b/crates/language_tools/src/lsp_log.rs @@ -1237,6 +1237,22 @@ impl Render for LspLogToolbarItemView { view.show_rpc_trace_for_server(row.server_id, cx); }), ); + if server_selected && row.selected_entry == LogKind::Rpc { + let selected_ix = menu.select_last(); + // Each language server has: + // 1. A title. + // 2. Server logs. + // 3. Server trace. + // 4. RPC messages. + // 5. Server capabilities + // Thus, if nth server's RPC is selected, the index of selected entry should match this formula + let _expected_index = ix * 5 + 3; + debug_assert_eq!( + Some(_expected_index), + selected_ix, + "Could not scroll to a just added LSP menu item" + ); + } menu = menu.entry( SERVER_CAPABILITIES, None, @@ -1244,14 +1260,6 @@ impl Render for LspLogToolbarItemView { view.show_capabilities_for_server(row.server_id, cx); }), ); - if server_selected && row.selected_entry == LogKind::Rpc { - let selected_ix = menu.select_last(); - debug_assert_eq!( - Some(ix * 4 + 3), - selected_ix, - "Could not scroll to a just added LSP menu item" - ); - } } menu })