Open huacnlee opened 1 month ago
Thread "main" panicked with "point Point { row: 0, column: 2 } 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:83:29
5: <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/alloc/src/boxed.rs:2029:9
std::panicking::rust_panic_with_hook
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/std/src/panicking.rs:785:13
6: std::panicking::begin_panic_handler::{{closure}}
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/std/src/panicking.rs:659:13
7: std::sys_common::backtrace::__rust_end_short_backtrace
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/std/src/sys_common/backtrace.rs:171:18
8: rust_begin_unwind
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/std/src/panicking.rs:647:5
9: core::panicking::panic_fmt
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/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/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/option.rs:1126: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:1778:9
15: <multi_buffer::MultiBufferSnapshot>::point_to_offset
at crates/multi_buffer/src/multi_buffer.rs:2391:20
16: <rope::point::Point as multi_buffer::ToOffset>::to_offset
at crates/multi_buffer/src/multi_buffer.rs:4366:9
17: <multi_buffer::MultiBufferSnapshot>::anchor_at::<rope::point::Point>
at crates/multi_buffer/src/multi_buffer.rs:2874:22
18: <editor::element::EditorElement>::update_visible_cursor
at crates/editor/src/element.rs:667:21
19: <editor::element::EditorElement>::mouse_moved
at crates/editor/src/element.rs:638:17
20: <editor::element::EditorElement>::paint_mouse_listeners::{closure#2}::{closure#0}
at crates/editor/src/element.rs:3178: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:3579: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:3167: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:2703: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/aedd173a2c086e558c2b66d3743b344f977621a7/library/alloc/src/boxed.rs:2022:9
26: <gpui::window::WindowContext>::dispatch_mouse_event
at crates/gpui/src/window.rs:2936:17
27: <gpui::window::WindowContext>::dispatch_event
at crates/gpui/src/window.rs:2902:13
28: <gpui::window::Window>::new::{closure#7}::{closure#0}
at crates/gpui/src/window.rs:734:46
29: <gpui::app::AppContext as gpui::Context>::update_window::<gpui::window::DispatchEventResult, <gpui::window::Window>::new::{closure#7}::{closure#0}>::{closure#0}
at crates/gpui/src/app.rs:1322: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#7}::{closure#0}>::{closure#0}>
at crates/gpui/src/app.rs:363:22
31: <gpui::app::AppContext as gpui::Context>::update_window::<gpui::window::DispatchEventResult, <gpui::window::Window>::new::{closure#7}::{closure#0}>
at crates/gpui/src/app.rs:1313:9
32: <gpui::app::async_context::AsyncAppContext as gpui::Context>::update_window::<gpui::window::DispatchEventResult, <gpui::window::Window>::new::{closure#7}::{closure#0}>
at crates/gpui/src/app/async_context.rs:94:9
33: <gpui::window::AnyWindowHandle>::update::<gpui::app::async_context::AsyncAppContext, gpui::window::DispatchEventResult, <gpui::window::Window>::new::{closure#7}::{closure#0}>
at crates/gpui/src/window.rs:4411:9
34: <gpui::window::Window>::new::{closure#7}
at crates/gpui/src/window.rs:733: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/aedd173a2c086e558c2b66d3743b344f977621a7/library/alloc/src/boxed.rs:2022:9
36: gpui::platform::mac::window::handle_view_event
at crates/gpui/src/platform/mac/window.rs:1459:13
37: <unknown>
38: <unknown>
39: <unknown>
40: <unknown>
41: <unknown>
42: <(*mut objc::runtime::Object,) 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
43: objc::message::platform::send_super_unverified::<objc::runtime::Object, (*mut objc::runtime::Object,), ()>
at /Users/jason/.cargo/registry/src/index.crates.io-6f17d22bba15001f/objc-0.2.7/src/message/apple/mod.rs:38:9
44: objc::message::send_super_message::<objc::runtime::Object, (*mut objc::runtime::Object,), ()>
at /Users/jason/.cargo/registry/src/index.crates.io-6f17d22bba15001f/objc-0.2.7/src/message/mod.rs:205:5
gpui::platform::mac::platform::send_event
at crates/gpui/src/platform/mac/platform.rs:1073:9
45: <unknown>
46: <unknown>
47: <() 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
48: 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
49: 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
50: <gpui::platform::mac::platform::MacPlatform as gpui::platform::Platform>::run
at crates/gpui/src/platform/mac/platform.rs:389:13
51: <gpui::app::App>::run::<Zed::init_ui::{closure#3}>
at crates/gpui/src/app.rs:142:9
52: Zed::init_ui
at crates/zed/src/main.rs:233:5
53: Zed::main
at crates/zed/src/main.rs:442:9
54: <fn() as core::ops::function::FnOnce<()>>::call_once
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/ops/function.rs:250:5
55: std::sys_common::backtrace::__rust_begin_short_backtrace::<fn(), ()>
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/std/src/sys_common/backtrace.rs:155:18
56: std::rt::lang_start::<()>::{closure#0}
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/std/src/rt.rs:166:18
57: core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/ops/function.rs:284:13
std::panicking::try::do_call
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/std/src/panicking.rs:554:40
std::panicking::try
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/std/src/panicking.rs:518:19
std::panic::catch_unwind
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/std/src/panic.rs:142:14
std::rt::lang_start_internal::{{closure}}
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/std/src/rt.rs:148:48
std::panicking::try::do_call
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/std/src/panicking.rs:554:40
std::panicking::try
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/std/src/panicking.rs:518:19
std::panic::catch_unwind
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/std/src/panic.rs:142:14
std::rt::lang_start_internal
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/std/src/rt.rs:148:20
58: std::rt::lang_start::<()>
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/std/src/rt.rs:165:17
59: _main
Thread "main" panicked with "point Point { row: 0, column: 2 } is inside of character '等'" at crates/rope/src/rope.rs:794:21
This crash not by this PR changes, I have checkout the previous commit, the crash is still happened.
😂 For this I spend 2 hours.
https://github.com/zed-industries/zed/commit/aeff468e9c45a53c079de2aed830c499179a1c7a
The second commit is updated to match the exist test cases.
https://github.com/zed-industries/zed/blob/v0.134.1-pre/crates/editor/src/editor_tests.rs#L1272
But in this way, the URL cannot be forcibly truncated, as shown below. Compared with my previous video, the new changes have a little issue compared to the previous video.
However, at least most of the previous details will be retained (because I did not modify the previous test cases).
The third commit update to add special chars for word check.
Now text wrap is better, especially the URL.
good job!
Thanks for this PR! Really appreciate the attention to detail on other languages and I'd like to get it merged.
Added more support:
Latin-1 Supplement, Extended-A,B,C, Cyrillic
Ref:
Given the increase in ergonomics, and the coverage for the languages we're capable of supporting, I think it's good to try this one out. Thank you!
Ahh, seems there's an issue with the macOS tests :)
Test now passed
Hi @mikayla-maki, how about this PR
Release Notes:
Demo
https://github.com/zed-industries/zed/assets/5518/c6695bb4-b170-4ce0-9a84-c36b051de438
Fix issues: #4623 #11202
Render case