diff --git a/Cargo.lock b/Cargo.lock index eb2faf6..f71a337 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -238,7 +238,7 @@ dependencies = [ [[package]] name = "assets" -version = "1.0.0-beta" +version = "1.0.0-beta1" dependencies = [ "anyhow", "gpui", @@ -535,7 +535,7 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "auto_update" -version = "1.0.0-beta" +version = "1.0.0-beta1" dependencies = [ "anyhow", "common", @@ -986,7 +986,7 @@ dependencies = [ [[package]] name = "chat" -version = "1.0.0-beta" +version = "1.0.0-beta1" dependencies = [ "anyhow", "common", @@ -1009,7 +1009,7 @@ dependencies = [ [[package]] name = "chat_ui" -version = "1.0.0-beta" +version = "1.0.0-beta1" dependencies = [ "anyhow", "chat", @@ -1240,7 +1240,7 @@ dependencies = [ [[package]] name = "common" -version = "1.0.0-beta" +version = "1.0.0-beta1" dependencies = [ "anyhow", "bech32", @@ -1325,7 +1325,7 @@ dependencies = [ [[package]] name = "coop" -version = "1.0.0-beta" +version = "1.0.0-beta1" dependencies = [ "anyhow", "assets", @@ -1668,7 +1668,7 @@ dependencies = [ [[package]] name = "device" -version = "1.0.0-beta" +version = "1.0.0-beta1" dependencies = [ "anyhow", "common", @@ -4823,7 +4823,7 @@ dependencies = [ [[package]] name = "person" -version = "1.0.0-beta" +version = "1.0.0-beta1" dependencies = [ "anyhow", "common", @@ -5560,7 +5560,7 @@ checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" [[package]] name = "relay_auth" -version = "1.0.0-beta" +version = "1.0.0-beta1" dependencies = [ "anyhow", "common", @@ -6243,7 +6243,7 @@ dependencies = [ [[package]] name = "settings" -version = "1.0.0-beta" +version = "1.0.0-beta1" dependencies = [ "anyhow", "common", @@ -6512,7 +6512,7 @@ dependencies = [ [[package]] name = "state" -version = "1.0.0-beta" +version = "1.0.0-beta1" dependencies = [ "anyhow", "common", @@ -6851,7 +6851,7 @@ dependencies = [ [[package]] name = "theme" -version = "1.0.0-beta" +version = "1.0.0-beta1" dependencies = [ "anyhow", "gpui", @@ -6988,7 +6988,7 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "title_bar" -version = "1.0.0-beta" +version = "1.0.0-beta1" dependencies = [ "anyhow", "common", @@ -7359,7 +7359,7 @@ dependencies = [ [[package]] name = "ui" -version = "1.0.0-beta" +version = "1.0.0-beta1" dependencies = [ "anyhow", "common", diff --git a/Cargo.toml b/Cargo.toml index b37f671..4d2591e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,7 +5,7 @@ default-members = ["crates/coop"] [workspace.package] version = "1.0.0-beta1" -edition = "2021" +edition = "2024" publish = false [workspace.dependencies] diff --git a/crates/chat/src/lib.rs b/crates/chat/src/lib.rs index 8eeea4c..12bd9bc 100644 --- a/crates/chat/src/lib.rs +++ b/crates/chat/src/lib.rs @@ -570,10 +570,10 @@ impl ChatRegistry { // Process each event and group by room hash for raw in events.into_iter() { - if let Ok(rumor) = UnsignedEvent::from_json(&raw.content) { - if rumor.tags.public_keys().peekable().peek().is_some() { - grouped.entry(rumor.uniq_id()).or_default().push(rumor); - } + if let Ok(rumor) = UnsignedEvent::from_json(&raw.content) + && rumor.tags.public_keys().peekable().peek().is_some() + { + grouped.entry(rumor.uniq_id()).or_default().push(rumor); } } @@ -619,12 +619,11 @@ impl ChatRegistry { match self.rooms.iter().find(|e| e.read(cx).id == message.room) { Some(room) => { room.update(cx, |this, cx| { - if this.kind == RoomKind::Request { - if let Some(public_key) = signer.public_key() { - if message.rumor.pubkey == public_key { - this.set_ongoing(cx); - } - } + if this.kind == RoomKind::Request + && let Some(public_key) = signer.public_key() + && message.rumor.pubkey == public_key + { + this.set_ongoing(cx); } this.push_message(message, cx); }); @@ -682,10 +681,10 @@ async fn try_unwrap( gift_wrap: &Event, ) -> Result { // Try with the device signer first - if let Some(signer) = device_signer { - if let Ok(unwrapped) = try_unwrap_with(gift_wrap, signer).await { - return Ok(unwrapped); - }; + if let Some(signer) = device_signer + && let Ok(unwrapped) = try_unwrap_with(gift_wrap, signer).await + { + return Ok(unwrapped); }; // Try with the user's signer diff --git a/crates/chat_ui/src/lib.rs b/crates/chat_ui/src/lib.rs index 6c1719c..7377bdc 100644 --- a/crates/chat_ui/src/lib.rs +++ b/crates/chat_ui/src/lib.rs @@ -475,10 +475,10 @@ impl ChatPanel { /// Get a message by its ID fn message(&self, id: &EventId) -> Option<&RenderedMessage> { self.messages.iter().find_map(|msg| { - if let Message::User(rendered) = msg { - if &rendered.id == id { - return Some(rendered); - } + if let Message::User(rendered) = msg + && &rendered.id == id + { + return Some(rendered); } None }) diff --git a/crates/coop/src/sidebar/entry.rs b/crates/coop/src/sidebar/entry.rs index 6c5c0ea..a64af30 100644 --- a/crates/coop/src/sidebar/entry.rs +++ b/crates/coop/src/sidebar/entry.rs @@ -148,26 +148,27 @@ impl RenderOnce for RoomEntry { this.on_click(move |event, window, cx| { handler(event, window, cx); - if let Some(public_key) = public_key { - if self.kind != Some(RoomKind::Ongoing) && screening { - let screening = screening::init(public_key, window, cx); + if let Some(public_key) = public_key + && self.kind != Some(RoomKind::Ongoing) + && screening + { + let screening = screening::init(public_key, window, cx); - window.open_modal(cx, move |this, _window, _cx| { - this.confirm() - .child(screening.clone()) - .button_props( - ModalButtonProps::default() - .cancel_text("Ignore") - .ok_text("Response"), - ) - .on_cancel(move |_event, window, cx| { - window.dispatch_action(Box::new(ClosePanel), cx); - // Prevent closing the modal on click - // modal will be automatically closed after closing panel - false - }) - }); - } + window.open_modal(cx, move |this, _window, _cx| { + this.confirm() + .child(screening.clone()) + .button_props( + ModalButtonProps::default() + .cancel_text("Ignore") + .ok_text("Response"), + ) + .on_cancel(move |_event, window, cx| { + window.dispatch_action(Box::new(ClosePanel), cx); + // Prevent closing the modal on click + // modal will be automatically closed after closing panel + false + }) + }); } }) }) diff --git a/crates/coop/src/sidebar/mod.rs b/crates/coop/src/sidebar/mod.rs index 13969f9..902c28b 100644 --- a/crates/coop/src/sidebar/mod.rs +++ b/crates/coop/src/sidebar/mod.rs @@ -366,7 +366,11 @@ impl Sidebar { self.new_requests = false; } - fn render_list_items(&self, range: Range, cx: &Context) -> Vec { + fn render_list_items( + &self, + range: Range, + cx: &Context, + ) -> Vec> { let chat = ChatRegistry::global(cx); let rooms = chat.read(cx).rooms(self.filter.read(cx), cx); @@ -398,7 +402,11 @@ impl Sidebar { } /// Render the contact list - fn render_results(&self, range: Range, cx: &Context) -> Vec { + fn render_results( + &self, + range: Range, + cx: &Context, + ) -> Vec> { let persons = PersonRegistry::global(cx); // Get the contact list @@ -431,7 +439,11 @@ impl Sidebar { } /// Render the contact list - fn render_contacts(&self, range: Range, cx: &Context) -> Vec { + fn render_contacts( + &self, + range: Range, + cx: &Context, + ) -> Vec> { let persons = PersonRegistry::global(cx); // Get the contact list @@ -641,7 +653,7 @@ impl Render for Sidebar { uniform_list( "rooms", results.len(), - cx.processor(|this, range, _window, cx| { + cx.processor(move |this, range, _window, cx| { this.render_results(range, cx) }), ) @@ -668,7 +680,7 @@ impl Render for Sidebar { uniform_list( "contacts", contacts.len(), - cx.processor(move |this, range, _window, cx| { + cx.processor(|this, range, _window, cx| { this.render_contacts(range, cx) }), ) diff --git a/crates/coop/src/workspace.rs b/crates/coop/src/workspace.rs index 869cd1e..099bde9 100644 --- a/crates/coop/src/workspace.rs +++ b/crates/coop/src/workspace.rs @@ -228,14 +228,14 @@ impl Workspace { where P: PanelView, { - if let Some(root) = window.root::().flatten() { - if let Ok(workspace) = root.read(cx).view().clone().downcast::() { - workspace.update(cx, |this, cx| { - this.dock.update(cx, |this, cx| { - this.add_panel(Arc::new(panel), placement, window, cx); - }); + if let Some(root) = window.root::().flatten() + && let Ok(workspace) = root.read(cx).view().clone().downcast::() + { + workspace.update(cx, |this, cx| { + this.dock.update(cx, |this, cx| { + this.add_panel(Arc::new(panel), placement, window, cx); }); - } + }); } } @@ -582,7 +582,7 @@ impl Workspace { window.push_notification(note, cx); } - fn titlebar_left(&mut self, _window: &mut Window, cx: &mut Context) -> impl IntoElement { + fn titlebar_left(&mut self, cx: &mut Context) -> impl IntoElement { let nostr = NostrRegistry::global(cx); let signer = nostr.read(cx).signer(); let current_user = signer.public_key(); @@ -661,7 +661,7 @@ impl Workspace { }) } - fn titlebar_right(&mut self, _window: &mut Window, cx: &mut Context) -> impl IntoElement { + fn titlebar_right(&mut self, cx: &mut Context) -> impl IntoElement { let relay_connected = self.relay_connected; let inbox_connected = self.inbox_connected; @@ -802,8 +802,8 @@ impl Render for Workspace { let notification_layer = Root::render_notification_layer(window, cx); // Titlebar elements - let left = self.titlebar_left(window, cx).into_any_element(); - let right = self.titlebar_right(window, cx).into_any_element(); + let left = self.titlebar_left(cx).into_any_element(); + let right = self.titlebar_right(cx).into_any_element(); // Update title bar children self.titlebar.update(cx, |this, _cx| { diff --git a/crates/device/src/lib.rs b/crates/device/src/lib.rs index 22b41ca..61dc1b3 100644 --- a/crates/device/src/lib.rs +++ b/crates/device/src/lib.rs @@ -728,10 +728,10 @@ struct DeviceNotification; /// Verify the author of an event async fn verify_author(client: &Client, event: &Event) -> bool { - if let Some(signer) = client.signer() { - if let Ok(public_key) = signer.get_public_key().await { - return public_key == event.pubkey; - } + if let Some(signer) = client.signer() + && let Ok(public_key) = signer.get_public_key().await + { + return public_key == event.pubkey; } false } diff --git a/crates/person/src/person.rs b/crates/person/src/person.rs index ffa06ee..53e5a5d 100644 --- a/crates/person/src/person.rs +++ b/crates/person/src/person.rs @@ -123,16 +123,16 @@ impl Person { /// Get profile name pub fn name(&self) -> SharedString { - if let Some(display_name) = self.metadata().display_name.as_ref() { - if !display_name.is_empty() { - return SharedString::from(display_name); - } + if let Some(display_name) = self.metadata().display_name.as_ref() + && !display_name.is_empty() + { + return SharedString::from(display_name); } - if let Some(name) = self.metadata().name.as_ref() { - if !name.is_empty() { - return SharedString::from(name); - } + if let Some(name) = self.metadata().name.as_ref() + && !name.is_empty() + { + return SharedString::from(name); } SharedString::from(shorten_pubkey(self.public_key(), 4)) diff --git a/crates/state/src/lib.rs b/crates/state/src/lib.rs index 85c465a..e7f5d60 100644 --- a/crates/state/src/lib.rs +++ b/crates/state/src/lib.rs @@ -657,11 +657,11 @@ impl NostrRegistry { let mut results: Vec = Vec::with_capacity(FIND_LIMIT); // Return early if the query is a valid NIP-05 address - if let Some(task) = address_task { - if let Ok(public_key) = task.await { - results.push(public_key); - return Ok(results); - } + if let Some(task) = address_task + && let Ok(public_key) = task.await + { + results.push(public_key); + return Ok(results); } // Return early if the query is a valid public key diff --git a/crates/ui/src/dock/dock.rs b/crates/ui/src/dock/dock.rs index 619385d..df302bd 100644 --- a/crates/ui/src/dock/dock.rs +++ b/crates/ui/src/dock/dock.rs @@ -271,22 +271,22 @@ impl Dock { let mut right_dock_size = px(0.0); // Get the size of the left dock if it's open and not the current dock - if let Some(left_dock) = &dock_area.left_dock { - if left_dock.entity_id() != cx.entity().entity_id() { - let left_dock_read = left_dock.read(cx); - if left_dock_read.is_open() { - left_dock_size = left_dock_read.size; - } + if let Some(left_dock) = &dock_area.left_dock + && left_dock.entity_id() != cx.entity().entity_id() + { + let left_dock_read = left_dock.read(cx); + if left_dock_read.is_open() { + left_dock_size = left_dock_read.size; } } // Get the size of the right dock if it's open and not the current dock - if let Some(right_dock) = &dock_area.right_dock { - if right_dock.entity_id() != cx.entity().entity_id() { - let right_dock_read = right_dock.read(cx); - if right_dock_read.is_open() { - right_dock_size = right_dock_read.size; - } + if let Some(right_dock) = &dock_area.right_dock + && right_dock.entity_id() != cx.entity().entity_id() + { + let right_dock_read = right_dock.read(cx); + if right_dock_read.is_open() { + right_dock_size = right_dock_read.size; } } diff --git a/crates/ui/src/dock/stack_panel.rs b/crates/ui/src/dock/stack_panel.rs index b79e442..c8e68b6 100644 --- a/crates/ui/src/dock/stack_panel.rs +++ b/crates/ui/src/dock/stack_panel.rs @@ -70,10 +70,10 @@ impl StackPanel { return false; } - if let Some(parent) = &self.parent { - if let Some(parent) = parent.upgrade() { - return parent.read(cx).is_last_panel(cx); - } + if let Some(parent) = &self.parent + && let Some(parent) = parent.upgrade() + { + return parent.read(cx).is_last_panel(cx); } true @@ -297,12 +297,11 @@ impl StackPanel { /// Find the first top left in the stack. pub fn left_top_tab_panel(&self, check_parent: bool, cx: &App) -> Option> { - if check_parent { - if let Some(parent) = self.parent.as_ref().and_then(|parent| parent.upgrade()) { - if let Some(panel) = parent.read(cx).left_top_tab_panel(true, cx) { - return Some(panel); - } - } + if check_parent + && let Some(parent) = self.parent.as_ref().and_then(|parent| parent.upgrade()) + && let Some(panel) = parent.read(cx).left_top_tab_panel(true, cx) + { + return Some(panel); } let first_panel = self.panels.first(); @@ -321,12 +320,11 @@ impl StackPanel { /// Find the first top right in the stack. pub fn right_top_tab_panel(&self, check_parent: bool, cx: &App) -> Option> { - if check_parent { - if let Some(parent) = self.parent.as_ref().and_then(|parent| parent.upgrade()) { - if let Some(panel) = parent.read(cx).right_top_tab_panel(true, cx) { - return Some(panel); - } - } + if check_parent + && let Some(parent) = self.parent.as_ref().and_then(|parent| parent.upgrade()) + && let Some(panel) = parent.read(cx).right_top_tab_panel(true, cx) + { + return Some(panel); } let panel = if self.axis.is_vertical() { diff --git a/crates/ui/src/dock/tab_panel.rs b/crates/ui/src/dock/tab_panel.rs index 50a8f78..3de9409 100644 --- a/crates/ui/src/dock/tab_panel.rs +++ b/crates/ui/src/dock/tab_panel.rs @@ -232,14 +232,13 @@ impl TabPanel { .any(|p| p.panel_id(cx) == panel.panel_id(cx)) { // Set the active panel to the matched panel - if active { - if let Some(ix) = self + if active + && let Some(ix) = self .panels .iter() .position(|p| p.panel_id(cx) == panel.panel_id(cx)) - { - self.set_active_ix(ix, window, cx); - } + { + self.set_active_ix(ix, window, cx); } return; @@ -372,12 +371,11 @@ impl TabPanel { /// Return true if self or parent only have last panel. fn is_last_panel(&self, cx: &App) -> bool { - if let Some(parent) = &self.stack_panel { - if let Some(stack_panel) = parent.upgrade() { - if !stack_panel.read(cx).is_last_panel(cx) { - return false; - } - } + if let Some(parent) = &self.stack_panel + && let Some(stack_panel) = parent.upgrade() + && !stack_panel.read(cx).is_last_panel(cx) + { + return false; } self.panels.len() <= 1 @@ -1103,10 +1101,10 @@ impl TabPanel { window: &mut Window, cx: &mut Context, ) { - if self.panels.len() > 1 { - if let Some(panel) = self.active_panel(cx) { - self.remove_panel(&panel, window, cx); - } + if self.panels.len() > 1 + && let Some(panel) = self.active_panel(cx) + { + self.remove_panel(&panel, window, cx); } } } diff --git a/crates/ui/src/input/element.rs b/crates/ui/src/input/element.rs index 589db65..b77329a 100644 --- a/crates/ui/src/input/element.rs +++ b/crates/ui/src/input/element.rs @@ -2,10 +2,10 @@ use std::ops::Range; use std::rc::Rc; use gpui::{ - fill, point, px, relative, size, App, Bounds, Corners, Element, ElementId, ElementInputHandler, - Entity, GlobalElementId, Hitbox, IntoElement, LayoutId, MouseButton, MouseMoveEvent, Path, - Pixels, Point, ShapedLine, SharedString, Size, Style, TextAlign, TextRun, UnderlineStyle, - Window, + App, Bounds, Corners, Element, ElementId, ElementInputHandler, Entity, GlobalElementId, Hitbox, + IntoElement, LayoutId, MouseButton, MouseMoveEvent, Path, Pixels, Point, ShapedLine, + SharedString, Size, Style, TextAlign, TextRun, UnderlineStyle, Window, fill, point, px, + relative, size, }; use rope::Rope; use smallvec::SmallVec; @@ -348,10 +348,10 @@ impl TextElement { let mut rev_line_corners = line_corners.iter().rev().peekable(); while let Some(corners) = rev_line_corners.next() { points.push(corners.top_left); - if let Some(next) = rev_line_corners.peek() { - if next.top_left.x > corners.top_left.x { - points.push(point(next.top_left.x, corners.top_left.y)); - } + if let Some(next) = rev_line_corners.peek() + && next.top_left.x > corners.top_left.x + { + points.push(point(next.top_left.x, corners.top_left.y)); } } @@ -376,10 +376,10 @@ impl TextElement { ) -> Option> { let state = self.state.read(cx); let mut selected_range = state.selected_range; - if let Some(ime_marked_range) = &state.ime_marked_range { - if !ime_marked_range.is_empty() { - selected_range = (ime_marked_range.end..ime_marked_range.end).into(); - } + if let Some(ime_marked_range) = &state.ime_marked_range + && !ime_marked_range.is_empty() + { + selected_range = (ime_marked_range.end..ime_marked_range.end).into(); } if selected_range.is_empty() { return None; @@ -830,11 +830,12 @@ impl Element for TextElement { } // Paint blinking cursor - if focused && show_cursor { - if let Some(mut cursor_bounds) = prepaint.cursor_bounds.take() { - cursor_bounds.origin.y += prepaint.cursor_scroll_offset.y; - window.paint_quad(fill(cursor_bounds, cx.theme().cursor)); - } + if focused + && show_cursor + && let Some(mut cursor_bounds) = prepaint.cursor_bounds.take() + { + cursor_bounds.origin.y += prepaint.cursor_scroll_offset.y; + window.paint_quad(fill(cursor_bounds, cx.theme().cursor)); } // Paint line numbers diff --git a/crates/ui/src/input/mask_pattern.rs b/crates/ui/src/input/mask_pattern.rs index 0af15df..b1022f0 100644 --- a/crates/ui/src/input/mask_pattern.rs +++ b/crates/ui/src/input/mask_pattern.rs @@ -225,13 +225,12 @@ impl MaskPattern { } // check if the fraction part is valid - if let Some(frac) = frac_part { - if !frac + if let Some(frac) = frac_part + && !frac .chars() .all(|ch| ch.is_ascii_digit() || Some(ch) == *separator) - { - return false; - } + { + return false; } true @@ -255,10 +254,10 @@ impl MaskPattern { if token.is_sep() { // If next token is match, it's valid - if let Some(next_token) = tokens.get(pos + 1) { - if next_token.is_match(ch) { - return true; - } + if let Some(next_token) = tokens.get(pos + 1) + && next_token.is_match(ch) + { + return true; } } } diff --git a/crates/ui/src/input/state.rs b/crates/ui/src/input/state.rs index f18a876..f715830 100644 --- a/crates/ui/src/input/state.rs +++ b/crates/ui/src/input/state.rs @@ -4,11 +4,11 @@ use std::time::Duration; use gpui::prelude::FluentBuilder as _; use gpui::{ - actions, div, point, px, Action, App, AppContext, Bounds, ClipboardItem, Context, Entity, - EntityInputHandler, EventEmitter, FocusHandle, Focusable, InteractiveElement as _, IntoElement, - KeyBinding, KeyDownEvent, MouseButton, MouseDownEvent, MouseMoveEvent, MouseUpEvent, - ParentElement as _, Pixels, Point, Render, ScrollHandle, ScrollWheelEvent, SharedString, - Styled as _, Subscription, UTF16Selection, Window, WrappedLine, + Action, App, AppContext, Bounds, ClipboardItem, Context, Entity, EntityInputHandler, + EventEmitter, FocusHandle, Focusable, InteractiveElement as _, IntoElement, KeyBinding, + KeyDownEvent, MouseButton, MouseDownEvent, MouseMoveEvent, MouseUpEvent, ParentElement as _, + Pixels, Point, Render, ScrollHandle, ScrollWheelEvent, SharedString, Styled as _, Subscription, + UTF16Selection, Window, WrappedLine, actions, div, point, px, }; use lsp_types::Position; use rope::{OffsetUtf16, Rope}; @@ -25,9 +25,9 @@ use super::mask_pattern::MaskPattern; use super::mode::{InputMode, TabSize}; use super::rope_ext::RopeExt; use super::text_wrapper::{LineItem, TextWrapper}; +use crate::Root; use crate::history::History; use crate::input::element::RIGHT_MARGIN; -use crate::Root; #[derive(Action, Clone, PartialEq, Eq, Deserialize)] #[action(namespace = input, no_json)] @@ -521,16 +521,16 @@ impl InputState { let new_row = new_row as usize; if new_row >= last_layout.visible_range.start { let visible_row = new_row.saturating_sub(last_layout.visible_range.start); - if let Some(line) = last_layout.lines.get(visible_row) { - if let Ok(x) = line.closest_index_for_position( + if let Some(line) = last_layout.lines.get(visible_row) + && let Ok(x) = line.closest_index_for_position( Point { x: preferred_x, y: px(0.), }, last_layout.line_height, - ) { - new_offset = line_start_offset + x; - } + ) + { + new_offset = line_start_offset + x; } } } @@ -1355,10 +1355,10 @@ impl InputState { ) { // If there have IME marked range and is empty (Means pressed Esc to abort IME typing) // Clear the marked range. - if let Some(ime_marked_range) = &self.ime_marked_range { - if ime_marked_range.is_empty() { - self.ime_marked_range = None; - } + if let Some(ime_marked_range) = &self.ime_marked_range + && ime_marked_range.is_empty() + { + self.ime_marked_range = None; } self.selecting = true; @@ -1842,23 +1842,21 @@ impl InputState { fn previous_boundary(&self, offset: usize) -> usize { let mut offset = self.text.clip_offset(offset.saturating_sub(1), Bias::Left); - if let Some(ch) = self.text.char_at(offset) { - if ch == '\r' { - offset -= 1; - } + if let Some(ch) = self.text.char_at(offset) + && ch == '\r' + { + offset -= 1; } - offset } fn next_boundary(&self, offset: usize) -> usize { let mut offset = self.text.clip_offset(offset + 1, Bias::Right); - if let Some(ch) = self.text.char_at(offset) { - if ch == '\r' { - offset += 1; - } + if let Some(ch) = self.text.char_at(offset) + && ch == '\r' + { + offset += 1; } - offset } @@ -1927,10 +1925,10 @@ impl InputState { return true; } - if let Some(validate) = &self.validate { - if !validate(new_text, cx) { - return false; - } + if let Some(validate) = &self.validate + && !validate(new_text, cx) + { + return false; } if !self.mask_pattern.is_valid(new_text) { @@ -1979,19 +1977,19 @@ impl InputState { self.input_bounds = new_bounds; // Update text_wrapper wrap_width if changed. - if let Some(last_layout) = self.last_layout.as_ref() { - if wrap_width_changed { - let wrap_width = if !self.soft_wrap { - // None to disable wrapping (will use Pixels::MAX) - None - } else { - last_layout.wrap_width - }; + if let Some(last_layout) = self.last_layout.as_ref() + && wrap_width_changed + { + let wrap_width = if !self.soft_wrap { + // None to disable wrapping (will use Pixels::MAX) + None + } else { + last_layout.wrap_width + }; - self.text_wrapper.set_wrap_width(wrap_width, cx); - self.mode.update_auto_grow(&self.text_wrapper); - cx.notify(); - } + self.text_wrapper.set_wrap_width(wrap_width, cx); + self.mode.update_auto_grow(&self.text_wrapper); + cx.notify(); } } @@ -2209,20 +2207,18 @@ impl EntityInputHandler for InputState { break; } - if start_origin.is_none() { - if let Some(p) = + if start_origin.is_none() + && let Some(p) = line.position_for_index(range.start.saturating_sub(index_offset), line_height) - { - start_origin = Some(p + point(px(0.), y_offset)); - } + { + start_origin = Some(p + point(px(0.), y_offset)); } - if end_origin.is_none() { - if let Some(p) = + if end_origin.is_none() + && let Some(p) = line.position_for_index(range.end.saturating_sub(index_offset), line_height) - { - end_origin = Some(p + point(px(0.), y_offset)); - } + { + end_origin = Some(p + point(px(0.), y_offset)); } index_offset += line.len() + 1; diff --git a/crates/ui/src/list/list.rs b/crates/ui/src/list/list.rs index 5aab352..22df82d 100644 --- a/crates/ui/src/list/list.rs +++ b/crates/ui/src/list/list.rs @@ -3,21 +3,21 @@ use std::time::Duration; use gpui::prelude::FluentBuilder; use gpui::{ - div, px, size, uniform_list, App, AppContext, AvailableSpace, ClickEvent, Context, - DefiniteLength, EdgesRefinement, Entity, EventEmitter, FocusHandle, Focusable, - InteractiveElement, IntoElement, KeyBinding, Length, ListSizingBehavior, MouseButton, - ParentElement, Render, RenderOnce, ScrollStrategy, SharedString, StatefulInteractiveElement, - StyleRefinement, Styled, Subscription, Task, UniformListScrollHandle, Window, + App, AppContext, AvailableSpace, ClickEvent, Context, DefiniteLength, EdgesRefinement, Entity, + EventEmitter, FocusHandle, Focusable, InteractiveElement, IntoElement, KeyBinding, Length, + ListSizingBehavior, MouseButton, ParentElement, Render, RenderOnce, ScrollStrategy, + SharedString, StatefulInteractiveElement, StyleRefinement, Styled, Subscription, Task, + UniformListScrollHandle, Window, div, px, size, uniform_list, }; use smol::Timer; use theme::ActiveTheme; use crate::actions::{Cancel, Confirm, SelectDown, SelectUp}; use crate::input::{InputEvent, InputState, TextInput}; -use crate::list::cache::{MeasuredEntrySize, RowEntry, RowsCache}; use crate::list::ListDelegate; +use crate::list::cache::{MeasuredEntrySize, RowEntry, RowsCache}; use crate::scroll::{Scrollbar, ScrollbarHandle}; -use crate::{v_flex, Icon, IconName, IndexPath, Selectable, Sizable, Size, StyledExt}; +use crate::{Icon, IconName, IndexPath, Selectable, Sizable, Size, StyledExt, v_flex}; pub(crate) fn init(cx: &mut App) { let context: Option<&str> = Some("List"); @@ -578,10 +578,10 @@ where self.prepare_items_if_needed(window, cx); // Scroll to the selected item if it is set. - if let Some((ix, strategy)) = self.deferred_scroll_to_index.take() { - if let Some(item_ix) = self.rows_cache.position_of(&ix) { - self.scroll_handle.scroll_to_item(item_ix, strategy); - } + if let Some((ix, strategy)) = self.deferred_scroll_to_index.take() + && let Some(item_ix) = self.rows_cache.position_of(&ix) + { + self.scroll_handle.scroll_to_item(item_ix, strategy); } let loading = self.delegate().loading(cx); diff --git a/crates/ui/src/menu/popup_menu.rs b/crates/ui/src/menu/popup_menu.rs index 4638cda..4f2b7ac 100644 --- a/crates/ui/src/menu/popup_menu.rs +++ b/crates/ui/src/menu/popup_menu.rs @@ -719,13 +719,13 @@ impl PopupMenu { } pub(crate) fn active_submenu(&self) -> Option> { - if let Some(ix) = self.selected_index { - if let Some(item) = self.menu_items.get(ix) { - return match item { - PopupMenuItem::Submenu { menu, .. } => Some(menu.clone()), - _ => None, - }; - } + if let Some(ix) = self.selected_index + && let Some(item) = self.menu_items.get(ix) + { + return match item { + PopupMenuItem::Submenu { menu, .. } => Some(menu.clone()), + _ => None, + }; } None @@ -965,12 +965,11 @@ impl PopupMenu { cx: &mut Context, ) { // Do not dismiss, if click inside the parent menu - if let Some(parent) = self.parent_menu.as_ref() { - if let Some(parent) = parent.upgrade() { - if parent.read(cx).bounds.contains(position) { - return; - } - } + if let Some(parent) = self.parent_menu.as_ref() + && let Some(parent) = parent.upgrade() + && parent.read(cx).bounds.contains(position) + { + return; } self.dismiss(&Cancel, window, cx); diff --git a/crates/ui/src/modal.rs b/crates/ui/src/modal.rs index a974ab2..45b8c3f 100644 --- a/crates/ui/src/modal.rs +++ b/crates/ui/src/modal.rs @@ -296,10 +296,10 @@ impl RenderOnce for Modal { let on_close = on_close.clone(); move |_, window, cx| { - if let Some(on_ok) = &on_ok { - if !on_ok(&ClickEvent::default(), window, cx) { - return; - } + if let Some(on_ok) = &on_ok + && !on_ok(&ClickEvent::default(), window, cx) + { + return; } on_close(&ClickEvent::default(), window, cx); diff --git a/crates/ui/src/resizable/mod.rs b/crates/ui/src/resizable/mod.rs index ce66f14..4456718 100644 --- a/crates/ui/src/resizable/mod.rs +++ b/crates/ui/src/resizable/mod.rs @@ -1,7 +1,7 @@ use std::ops::Range; use gpui::{ - px, Along, App, Axis, Bounds, Context, ElementId, EventEmitter, IsZero, Pixels, Window, + Along, App, Axis, Bounds, Context, ElementId, EventEmitter, IsZero, Pixels, Window, px, }; mod panel; @@ -142,10 +142,10 @@ impl ResizableState { pub(crate) fn remove_panel(&mut self, panel_ix: usize, cx: &mut Context) { self.panels.remove(panel_ix); self.sizes.remove(panel_ix); - if let Some(resizing_panel_ix) = self.resizing_panel_ix { - if resizing_panel_ix > panel_ix { - self.resizing_panel_ix = Some(resizing_panel_ix - 1); - } + if let Some(resizing_panel_ix) = self.resizing_panel_ix + && resizing_panel_ix > panel_ix + { + self.resizing_panel_ix = Some(resizing_panel_ix - 1); } self.adjust_to_container_size(cx); } diff --git a/crates/ui/src/root.rs b/crates/ui/src/root.rs index e6189ae..ce323f0 100644 --- a/crates/ui/src/root.rs +++ b/crates/ui/src/root.rs @@ -92,7 +92,7 @@ impl Root { pub fn render_notification_layer( window: &mut Window, cx: &mut App, - ) -> Option { + ) -> Option> { let root = window.root::()??; Some( @@ -105,7 +105,10 @@ impl Root { } /// Render the modal layer. - pub fn render_modal_layer(window: &mut Window, cx: &mut App) -> Option { + pub fn render_modal_layer( + window: &mut Window, + cx: &mut App, + ) -> Option> { let root = window.root::()??; let active_modals = root.read(cx).active_modals.clone(); @@ -139,10 +142,10 @@ impl Root { }) .collect::>(); - if let Some(ix) = show_overlay_ix { - if let Some(modal) = modals.get_mut(ix) { - modal.overlay_visible = true; - } + if let Some(ix) = show_overlay_ix + && let Some(modal) = modals.get_mut(ix) + { + modal.overlay_visible = true; } Some(div().children(modals))