ZIm/crates/git_ui/src
Evan Simkowitz 607a9445fc
editor: Add minimap (#26893)
## Overview

This PR adds the minimap feature to the Zed editor, closely following
the [design from Visual Studio
Code](https://code.visualstudio.com/docs/getstarted/userinterface#_minimap).
When configured, a second instance of the editor will appear to the left
of the scrollbar. This instance is not interactive and it has a slimmed
down set of annotations, but it is otherwise just a zoomed-out version
of the main editor instance. A thumb shows the line boundaries of the
main viewport, as well as the progress through the document. Clicking on
a section of code in the minimap will jump the editor to that code.
Dragging the thumb will act like the scrollbar, moving sequentially
through the document.

![screenshot of Zed with three editors open and the minimap enabled,
showing the
slider](https://github.com/user-attachments/assets/4178d23a-a5ea-4e38-b871-06dd2a8f9560)

## New settings

This adds a `minimap` section to the editor settings with the following
keys:

### `show`

When to show the minimap in the editor.
This setting can take three values:
1. Show the minimap if the editor's scrollbar is visible: `"auto"`
2. Always show the minimap: `"always"`
3. Never show the minimap: `"never"` (default)

### `thumb`

When to show the minimap thumb.
This setting can take two values:
1. Show the minimap thumb if the mouse is over the minimap: `"hover"`
2. Always show the minimap thumb: `"always"` (default)

### `width`

The width of the minimap in pixels.

Default: `100`

### `font_size`

The font size of the minimap in pixels.

Default: `2`

## Providing feedback

In order to keep the PR focused on development updates, please use the
discussion thread for feature suggestions and usability feedback: #26894


## Features left to add

- [x] fix scrolling performance
- [x] user settings for enable/disable, width, text size, etc.
- [x] show overview of visible lines in minimap
- [x] clicking on minimap should navigate to the corresponding section
of code
- ~[ ] more prominent highlighting in the minimap editor~
- ~[ ] override scrollbar auto setting to always when minimap is set to
always show~

Release Notes:

- Added minimap for high-level overview and quick navigation of editor
contents.

---------

Co-authored-by: MrSubidubi <dev@bahn.sh>
Co-authored-by: Kirill Bulatov <kirill@zed.dev>
2025-05-07 23:11:09 +03:00
..
askpass_modal.rs chore: Bump Rust edition to 2024 (#27800) 2025-03-31 20:55:27 +02:00
blame_ui.rs editor: Move blame popover from hover_tooltip to editor prepaint (#29320) 2025-04-25 01:52:24 +05:30
branch_picker.rs Improve handling of remote-tracking branches in the picker (#29744) 2025-05-01 21:24:26 -04:00
commit_message_prompt.txt git_ui: Try to prompt the model out of including the diff output (#26281) 2025-03-07 15:05:35 +00:00
commit_modal.rs Improve handling of remote-tracking branches in the picker (#29744) 2025-05-01 21:24:26 -04:00
commit_tooltip.rs editor: Move blame popover from hover_tooltip to editor prepaint (#29320) 2025-04-25 01:52:24 +05:30
commit_view.rs Add searchable global tab switcher (#28047) 2025-04-28 09:21:27 +00:00
conflict_view.rs editor: Add minimap (#26893) 2025-05-07 23:11:09 +03:00
git_panel.rs agent: Allow customizing temperature by provider/model (#30033) 2025-05-06 20:36:25 +00:00
git_panel_settings.rs Git tweaks (#28791) 2025-04-28 23:42:23 -06:00
git_ui.rs git_ui: Fix resetting of onboarding banner (#30051) 2025-05-06 23:20:37 +00:00
onboarding.rs chore: Bump Rust edition to 2024 (#27800) 2025-03-31 20:55:27 +02:00
picker_prompt.rs chore: Bump Rust version to 1.86 (#28021) 2025-04-03 23:32:50 +02:00
project_diff.rs Fix toolbar spacing regressions (#29964) 2025-05-05 22:28:35 -03:00
remote_output.rs Fix message on push (#26588) 2025-03-12 20:18:28 +00:00
repository_selector.rs chore: Bump Rust edition to 2024 (#27800) 2025-03-31 20:55:27 +02:00