diff --git a/assets/icons/circle_help.svg b/assets/icons/circle_help.svg new file mode 100644 index 0000000000..1a004bfff8 --- /dev/null +++ b/assets/icons/circle_help.svg @@ -0,0 +1 @@ + diff --git a/crates/debugger_ui/src/debugger_panel.rs b/crates/debugger_ui/src/debugger_panel.rs index c4d35455cf..bb035afe26 100644 --- a/crates/debugger_ui/src/debugger_panel.rs +++ b/crates/debugger_ui/src/debugger_panel.rs @@ -605,6 +605,12 @@ impl DebugPanel { } }) }; + let documentation_button = || { + IconButton::new("debug-open-documentation", IconName::CircleHelp) + .icon_size(IconSize::Small) + .on_click(move |_, _, cx| cx.open_url("https://zed.dev/docs/debugger")) + .tooltip(Tooltip::text("Open Documentation")) + }; Some( div.border_b_1() @@ -840,7 +846,10 @@ impl DebugPanel { ), ) .justify_around() - .when(is_side, |this| this.child(new_session_button())), + .when(is_side, |this| { + this.child(new_session_button()) + .child(documentation_button()) + }), ) .child( h_flex() @@ -881,7 +890,10 @@ impl DebugPanel { window, cx, )) - .when(!is_side, |this| this.child(new_session_button())), + .when(!is_side, |this| { + this.child(new_session_button()) + .child(documentation_button()) + }), ), ), ) diff --git a/crates/icons/src/icons.rs b/crates/icons/src/icons.rs index c7ea321dce..67aee6327a 100644 --- a/crates/icons/src/icons.rs +++ b/crates/icons/src/icons.rs @@ -60,6 +60,7 @@ pub enum IconName { ChevronUpDown, Circle, CircleOff, + CircleHelp, Clipboard, Close, Cloud, diff --git a/docs/src/debugger.md b/docs/src/debugger.md index ebe634dc38..2ffe585614 100644 --- a/docs/src/debugger.md +++ b/docs/src/debugger.md @@ -6,26 +6,29 @@ It allows Zed to support various debuggers without needing to implement language This protocol enables features like setting breakpoints, stepping through code, inspecting variables, and more, in a consistent manner across different programming languages and runtime environments. +> We currently offer onboarding support for users. We are eager to hear from you if you encounter any issues or have suggestions for improvement for our debugging experience. +> You can schedule a call via [Cal.com](https://cal.com/team/zed-research/debugger) + ## Supported Debug Adapters -Zed supports a variety of debug adapters for different programming languages: +Zed supports a variety of debug adapters for different programming languages out of the box: -- JavaScript (node): Enables debugging of Node.js applications, including setting breakpoints, stepping through code, and inspecting variables in JavaScript. +- JavaScript ([vscode-js-debug](https://github.com/microsoft/vscode-js-debug.git)): Enables debugging of Node.js applications, including setting breakpoints, stepping through code, and inspecting variables in JavaScript. -- Python (debugpy): Provides debugging capabilities for Python applications, supporting features like remote debugging, multi-threaded debugging, and Django/Flask application debugging. +- Python ([debugpy](https://github.com/microsoft/debugpy.git)): Provides debugging capabilities for Python applications, supporting features like remote debugging, multi-threaded debugging, and Django/Flask application debugging. -- LLDB: A powerful debugger for C, C++, Objective-C, and Swift, offering low-level debugging features and support for Apple platforms. +- LLDB ([CodeLLDB](https://github.com/vadimcn/codelldb.git)): A powerful debugger for C, C++, Objective-C, and Swift, offering low-level debugging features and support for Apple platforms. -- GDB: The GNU Debugger, which supports debugging for multiple programming languages including C, C++, Go, and Rust, across various platforms. +- GDB ([GDB](https://sourceware.org/gdb/)): The GNU Debugger, which supports debugging for multiple programming languages including C, C++, Go, and Rust, across various platforms. -- Go (dlv): Delve, a debugger for the Go programming language, offering both local and remote debugging capabilities with full support for Go's runtime and standard library. +- Go ([Delve](https://github.com/go-delve/delve)): Delve, a debugger for the Go programming language, offering both local and remote debugging capabilities with full support for Go's runtime and standard library. -- PHP (xdebug): Provides debugging and profiling capabilities for PHP applications, including remote debugging and code coverage analysis. +- PHP ([Xdebug](https://xdebug.org/)): Provides debugging and profiling capabilities for PHP applications, including remote debugging and code coverage analysis. + +- Ruby ([rdbg](https://github.com/ruby/debug)): Provides debugging for Ruby. These adapters enable Zed to provide a consistent debugging experience across multiple languages while leveraging the specific features and capabilities of each debugger. -Additionally, Ruby support (via rdbg) is being actively worked on. - ## Getting Started For basic debugging, you can set up a new configuration by opening the `New Session Modal` either via the `debugger: start` (default: f4) or by clicking the plus icon at the top right of the debug panel.