I have found this bug while work on PR #11296, this still crash event in latest commit.
Thread "main" panicked with "point Point { row: 0, column: 1 } is inside of character '。'" at crates/rope/src/rope.rs:794:21
0: backtrace::backtrace::libunwind::trace
at /Users/jason/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.69/src/backtrace/libunwind.rs:93:5
backtrace::backtrace::trace_unsynchronized::<<backtrace::capture::Backtrace>::create::{closure#0}>
at /Users/jason/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.69/src/backtrace/mod.rs:66:5
1: backtrace::backtrace::trace::<<backtrace::capture::Backtrace>::create::{closure#0}>
at /Users/jason/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.69/src/backtrace/mod.rs:53:14
2: <backtrace::capture::Backtrace>::create
at /Users/jason/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.69/src/capture.rs:176:9
3: <backtrace::capture::Backtrace>::new
at /Users/jason/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.69/src/capture.rs:140:22
4: Zed::reliability::init_panic_hook::{closure#0}
at crates/zed/src/reliability.rs:54:29
5: <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call
at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/alloc/src/boxed.rs:2034:9
std::panicking::rust_panic_with_hook
at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panicking.rs:783:13
6: std::panicking::begin_panic_handler::{{closure}}
at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panicking.rs:657:13
7: std::sys_common::backtrace::__rust_end_short_backtrace
at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/sys_common/backtrace.rs:171:18
8: rust_begin_unwind
at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panicking.rs:645:5
9: core::panicking::panic_fmt
at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/panicking.rs:72:14
10: <rope::Chunk>::point_to_offset
at crates/rope/src/rope.rs:794:21
11: <rope::Rope>::point_to_offset::{closure#0}
at crates/rope/src/rope.rs:319:36
12: <core::option::Option<&rope::Chunk>>::map_or::<usize, <rope::Rope>::point_to_offset::{closure#0}>
at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/option.rs:1132:24
13: <rope::Rope>::point_to_offset
at crates/rope/src/rope.rs:317:15
14: <text::BufferSnapshot>::point_to_offset
at crates/text/src/text.rs:1786:9
15: <multi_buffer::MultiBufferSnapshot>::point_to_offset
at crates/multi_buffer/src/multi_buffer.rs:2411:20
16: <rope::point::Point as multi_buffer::ToOffset>::to_offset
at crates/multi_buffer/src/multi_buffer.rs:4428:9
17: <multi_buffer::MultiBufferSnapshot>::anchor_at::<rope::point::Point>
at crates/multi_buffer/src/multi_buffer.rs:2900:22
18: <editor::element::EditorElement>::update_visible_cursor
at crates/editor/src/element.rs:692:15
19: <editor::element::EditorElement>::mouse_moved
at crates/editor/src/element.rs:660:17
20: <editor::element::EditorElement>::paint_mouse_listeners::{closure#2}::{closure#0}
at crates/editor/src/element.rs:3286:25
21: <gpui::window::WindowContext as gpui::VisualContext>::update_view::<editor::Editor, (), <editor::element::EditorElement>::paint_mouse_listeners::{closure#2}::{closure#0}>
at crates/gpui/src/window.rs:3651:22
22: <gpui::view::View<editor::Editor>>::update::<gpui::window::WindowContext, (), <editor::element::EditorElement>::paint_mouse_listeners::{closure#2}::{closure#0}>
at crates/gpui/src/view.rs:76:9
23: <editor::element::EditorElement>::paint_mouse_listeners::{closure#2}
at crates/editor/src/element.rs:3275:21
24: <gpui::window::WindowContext>::on_mouse_event::<gpui::interactive::MouseMoveEvent, <editor::element::EditorElement>::paint_mouse_listeners::{closure#2}>::{closure#0}
at crates/gpui/src/window.rs:2775:21
25: <alloc::boxed::Box<dyn for<'a, 'b, 'c> core::ops::function::FnMut<(&'a dyn core::any::Any, gpui::window::DispatchPhase, &'b mut gpui::window::WindowContext<'c>), Output = ()>> as core::ops::function::FnMut<(&dyn core::any::Any, gpui::window::DispatchPhase, &mut gpui::window::WindowContext)>>::call_mut
at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/alloc/src/boxed.rs:2027:9
26: <gpui::window::WindowContext>::dispatch_mouse_event
at crates/gpui/src/window.rs:3008:17
27: <gpui::window::WindowContext>::dispatch_event
at crates/gpui/src/window.rs:2974:13
28: <gpui::window::Window>::new::{closure#8}::{closure#0}
at crates/gpui/src/window.rs:753:46
29: <gpui::app::AppContext as gpui::Context>::update_window::<gpui::window::DispatchEventResult, <gpui::window::Window>::new::{closure#8}::{closure#0}>::{closure#0}
at crates/gpui/src/app.rs:1327:26
30: <gpui::app::AppContext>::update::<core::result::Result<gpui::window::DispatchEventResult, anyhow::Error>, <gpui::app::AppContext as gpui::Context>::update_window<gpui::window::DispatchEventResult, <gpui::window::Window>::new::{closure#8}::{closure#0}>::{closure#0}>
at crates/gpui/src/app.rs:361:22
31: <gpui::app::AppContext as gpui::Context>::update_window::<gpui::window::DispatchEventResult, <gpui::window::Window>::new::{closure#8}::{closure#0}>
at crates/gpui/src/app.rs:1318:9
32: <gpui::app::async_context::AsyncAppContext as gpui::Context>::update_window::<gpui::window::DispatchEventResult, <gpui::window::Window>::new::{closure#8}::{closure#0}>
at crates/gpui/src/app/async_context.rs:91:9
33: <gpui::window::AnyWindowHandle>::update::<gpui::app::async_context::AsyncAppContext, gpui::window::DispatchEventResult, <gpui::window::Window>::new::{closure#8}::{closure#0}>
at crates/gpui/src/window.rs:4483:9
34: <gpui::window::Window>::new::{closure#8}
at crates/gpui/src/window.rs:752:17
35: <alloc::boxed::Box<dyn core::ops::function::FnMut<(gpui::interactive::PlatformInput,), Output = gpui::window::DispatchEventResult>> as core::ops::function::FnMut<(gpui::interactive::PlatformInput,)>>::call_mut
at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/alloc/src/boxed.rs:2027:9
36: gpui::platform::mac::window::handle_view_event
at crates/gpui/src/platform/mac/window.rs:1421:13
37: <unknown>
38: <unknown>
39: <unknown>
40: <unknown>
41: <unknown>
42: <unknown>
43: <unknown>
44: <() as objc::message::MessageArguments>::invoke::<()>
at /Users/jason/.cargo/registry/src/index.crates.io-6f17d22bba15001f/objc-0.2.7/src/message/mod.rs:128:17
45: objc::message::platform::send_unverified::<objc::runtime::Object, (), ()>
at /Users/jason/.cargo/registry/src/index.crates.io-6f17d22bba15001f/objc-0.2.7/src/message/apple/mod.rs:27:9
46: objc::message::send_message::<objc::runtime::Object, (), ()>
at /Users/jason/.cargo/registry/src/index.crates.io-6f17d22bba15001f/objc-0.2.7/src/message/mod.rs:178:5
<*mut objc::runtime::Object as cocoa::appkit::NSApplication>::run
at /Users/jason/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cocoa-0.25.0/src/appkit.rs:603:9
47: <gpui::platform::mac::platform::MacPlatform as gpui::platform::Platform>::run
at crates/gpui/src/platform/mac/platform.rs:371:13
48: <gpui::app::App>::run::<Zed::main::{closure#3}>
at crates/gpui/src/app.rs:140:9
49: Zed::main
at crates/zed/src/main.rs:328:5
50: <fn() as core::ops::function::FnOnce<()>>::call_once
at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/ops/function.rs:250:5
51: std::sys_common::backtrace::__rust_begin_short_backtrace::<fn(), ()>
at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/sys_common/backtrace.rs:155:18
52: std::rt::lang_start::<()>::{closure#0}
at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/rt.rs:166:18
53: core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once
at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/ops/function.rs:284:13
std::panicking::try::do_call
at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panicking.rs:552:40
std::panicking::try
at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panicking.rs:516:19
std::panic::catch_unwind
at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panic.rs:146:14
std::rt::lang_start_internal::{{closure}}
at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/rt.rs:148:48
std::panicking::try::do_call
at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panicking.rs:552:40
std::panicking::try
at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panicking.rs:516:19
std::panic::catch_unwind
at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panic.rs:146:14
std::rt::lang_start_internal
at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/rt.rs:148:20
54: std::rt::lang_start::<()>
at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/rt.rs:165:17
55: _main
Check for existing issues
Describe the bug / provide steps to reproduce it
I have found this bug while work on PR #11296, this still crash event in latest commit.
How to reproduce
Open this file: https://raw.githubusercontent.com/huacnlee/autocorrect/18e18651cd5b30ab10e3843ae7fb4c61dff9e8c4/README.md as example
Mouse point to some Chinese char and scroll up, down again and again.
Then it may crash in sometime.
Environment
OS: aarch64-apple-darwin Zed version: main branch (https://github.com/zed-industries/zed/commit/410c46a5517e397890580c21dab13575e7839d5a)
If applicable, add mockups / screenshots to help explain present your vision of the feature
No response
If applicable, attach your
~/Library/Logs/Zed/Zed.log
file to this issue.No response