mirror of
https://github.com/zed-industries/zed.git
synced 2026-04-18 07:47:53 +00:00
79473da756
Closes #4526 Adds basic bookmark functionality to the editor, allowing users to mark lines and later navigate between them. ### What's new **Toggling bookmarks** Users can toggle a bookmark on the current line(s) via the `editor: toggle bookmark` action. A bookmark icon appears in the gutter for each bookmarked line. **Navigation** Two new actions, `editor: go to next bookmark` and `editor: go to previous bookmark`, navigate between bookmarks in the current buffer, wrapping around at the ends of the buffer. **Viewing all bookmarks** `editor: view bookmarks` opens all bookmarks across the project in a multibuffer, similar to how references and diagnostics are surfaced. **Clearing bookmarks** `workspace: clear bookmarks` removes all bookmarks in the current project. **Persistence** Bookmarks are persisted to the workspace database and restored when the workspace is reopened. They are stored as `(path, row)` pairs and resolved back to text anchors. Out of range or unresolvable bookmarks are skipped with a logged warning. **Gutter rendering** Bookmark icons are rendered in the gutter using the existing gutter button layout system, consistent with breakpoints. They are suppressed on lines that already show a breakpoint or phantom breakpoint indicator. A new `gutter.bookmarks` setting (defaulting to `true`) controls their visibility. ### What's left - [x] Lazily load buffers that have bookmarks - [x] Clean up test boilerplate - [ ] Assign default keybindings - [ ] Compare line of saved bookmarks with current buffer (gray out the "stale" bookmarks) ### What's next (and nice to haves) - [ ] Resilience against external edits - [ ] Save column position with the bookmark - [ ] Bookmarks attached to syntactic structures? - [ ] Labeled bookmarks? --- Release Notes: - Added bookmarks: toggle bookmarks on lines with `editor: toggle bookmark`, navigate with `editor: go to next bookmark` / `editor: go to previous bookmark`, view all bookmarks with `editor: view bookmarks`, and clear with `workspace: clear bookmarks`. Bookmarks are shown in the gutter and persisted across sessions. --------- Co-authored-by: Yara <git@yara.blue>
2 lines
23 B
TOML
2 lines
23 B
TOML
words = ["breakpoint"]
|