zed/crates
Thorsten Ball faebce8cd0
Inline git blame (#10398)
This adds so-called "inline git blame" to the editor that, when turned
on, shows `git blame` information about the current line inline:


![screenshot-2024-04-15-11 29
35@2x](https://github.com/zed-industries/zed/assets/1185253/21cef7be-3283-4556-a9f0-cc349c4e1d75)


When the inline information is hovered, a new tooltip appears that
contains more information on the current commit:


![screenshot-2024-04-15-11 28
24@2x](https://github.com/zed-industries/zed/assets/1185253/ee128460-f6a2-48c2-a70d-e03ff90a737f)

The commit message in this tooltip is rendered as Markdown, is
scrollable and clickable.

The tooltip is now also the tooltip used in the gutter:

![screenshot-2024-04-15-11 28
51@2x](https://github.com/zed-industries/zed/assets/1185253/42be3d63-91d0-4936-8183-570e024beabe)


## Settings

1. The inline git blame information can be turned on and off via
settings:
```json
{
  "git": {
    "inline_blame": {
      "enabled": true
    }
  }
}
```
2. Optionally, a delay can be configured. When a delay is set, the
inline blame information will only show up `x milliseconds` after a
cursor movement:
```json
{
  "git": {
    "inline_blame": {
      "enabled": true,
      "delay_ms": 600
    }
  }
}
```
3. It can also be turned on/off for the current buffer with `editor:
toggle git blame inline`.

## To be done in follow-up PRs

- [ ] Add link to pull request in tooltip
- [ ] Add avatars of users if possible

## Release notes

Release Notes:

- Added inline `git blame` information the editor. It can be turned on
in the settings with `{"git": { "inline_blame": "on" } }` for every
buffer or, temporarily for the current buffer, with `editor: toggle git
blame inline`.
2024-04-15 14:21:52 +02:00
..
activity_indicator Add auto-update system for extensions (#9890) 2024-03-28 15:41:22 -04:00
anthropic Check license generation for every PR to avoid license-less crate additions (#10033) 2024-04-01 12:16:16 +03:00
assets Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
assistant Remove if-not-else patterns (#10402) 2024-04-11 03:48:06 -04:00
audio Introduce InlineCompletionProvider (#9777) 2024-03-26 13:28:06 +01:00
auto_update Refactor workspace notifications to use explicit NotificationId type (#10342) 2024-04-10 17:21:23 -04:00
breadcrumbs Use buffer font when rendering editor breadcrumbs and diagnostics (#10488) 2024-04-12 12:29:00 -07:00
call WIP: remoting (#10085) 2024-04-11 15:36:35 -06:00
channel Semantic Index (#10329) 2024-04-12 11:40:59 -06:00
cli Windows: Enable clippy deny warnings (#9920) 2024-03-28 11:55:35 -04:00
client WIP: remoting (#10085) 2024-04-11 15:36:35 -06:00
clock Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
collab Inline git blame (#10398) 2024-04-15 14:21:52 +02:00
collab_ui Inline git blame (#10398) 2024-04-15 14:21:52 +02:00
collections gpui: Add SVG rendering to img element and generic asset cache (#9931) 2024-03-29 17:09:49 -07:00
color Fix hex_to_hsla inside the color crate (#9412) 2024-03-15 16:58:46 -04:00
command_palette Encapsulate CommandPaletteFilter and CommandPaletteInterceptor (#9402) 2024-03-15 12:37:25 -04:00
command_palette_hooks Introduce InlineCompletionProvider (#9777) 2024-03-26 13:28:06 +01:00
copilot Revert "Revert "language: Remove buffer fingerprinting (#9007)"" (#9671) 2024-04-12 18:40:35 +02:00
copilot_ui Refactor workspace notifications to use explicit NotificationId type (#10342) 2024-04-10 17:21:23 -04:00
db Fix issues with extension API that come up when moving Svelte into an extension (#9611) 2024-03-22 17:29:06 -07:00
diagnostics Add preview tabs (#9125) 2024-04-11 23:09:12 +02:00
editor Inline git blame (#10398) 2024-04-15 14:21:52 +02:00
extension Extract Vue extension (#10486) 2024-04-12 14:39:27 -04:00
extension_api Improve extension API documentation (#10322) 2024-04-09 10:38:29 -04:00
extension_cli Add git blame (#8889) 2024-03-28 18:32:11 +01:00
extensions_ui Extract Vue extension (#10486) 2024-04-12 14:39:27 -04:00
feature_flags WIP: remoting (#10085) 2024-04-11 15:36:35 -06:00
feedback Refactor workspace notifications to use explicit NotificationId type (#10342) 2024-04-10 17:21:23 -04:00
file_finder Add preview tabs (#9125) 2024-04-11 23:09:12 +02:00
file_icons tasks: Use icons instead of secondary text in a modal (#10264) 2024-04-08 11:41:54 +02:00
fs Fix git blame not working correctly with submodules (#10114) 2024-04-03 13:49:12 +02:00
fsevent Add rs-notify implementation of fs::watch (#9040) 2024-03-08 22:18:44 -08:00
fuzzy Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
git Add git blame error reporting with notification (#10408) 2024-04-12 07:20:34 +02:00
go_to_line Line numbers short mode (#10354) 2024-04-10 12:08:07 +02:00
google_ai Fix licensing errors 2024-03-20 15:52:02 +01:00
gpui blade: Fix incorrect texture format (#10524) 2024-04-14 11:46:31 -07:00
gpui_macros gpui-macros: Hide autogenerated action types/functions (#10417) 2024-04-11 15:38:47 +02:00
headless WIP: remoting (#10085) 2024-04-11 15:36:35 -06:00
image_viewer Add preview tabs (#9125) 2024-04-11 23:09:12 +02:00
install_cli Fix flickering (#9012) 2024-03-11 10:45:57 +01:00
journal Add the ability for extensions to provide language settings (#10296) 2024-04-08 19:17:12 -04:00
language Inline git blame (#10398) 2024-04-15 14:21:52 +02:00
language_selector Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
language_tools Add preview tabs (#9125) 2024-04-11 23:09:12 +02:00
languages Merge Zed task context providing logic (#10544) 2024-04-15 11:52:15 +03:00
live_kit_client Add a schema to extensions, to prevent installing extensions on too old of a Zed version (#9599) 2024-03-20 17:33:26 -04:00
live_kit_server Merge prost dependecies (#9522) 2024-03-18 20:33:20 -06:00
lsp Show status of LSP actions (#9818) 2024-04-06 19:48:11 -07:00
markdown_preview Add preview tabs (#9125) 2024-04-11 23:09:12 +02:00
media Revert "Revert "Revert dependency updates in #9836 (#10089)"" 2024-04-02 13:12:38 -06:00
menu Fix the linux keymap (#9829) 2024-03-26 16:10:09 -07:00
multi_buffer vim: Don’t allow edits in the read-only state (#10404) 2024-04-11 18:19:49 -06:00
node_runtime Allow extensions to define more of the methods in the LspAdapter trait (#9554) 2024-03-20 12:47:04 -07:00
notifications Fix mention notifications are not updated after message change and not removed after a message is deleted (#9847) 2024-04-02 20:40:00 -06:00
open_ai Semantic Index (#10329) 2024-04-12 11:40:59 -06:00
outline Restore --all-targets for clippy (#9346) 2024-03-14 12:39:45 -04:00
picker tab_switcher: Add tab close buttons (#9968) 2024-04-03 17:28:51 +02:00
prettier Fix prettier-plugin-organize-imports plugin removes used imports (#9598) 2024-03-21 08:23:15 +01:00
project Inline git blame (#10398) 2024-04-15 14:21:52 +02:00
project_panel Fix Auto folded dirs performance issues (#8556) 2024-04-12 11:26:26 -07:00
project_symbols Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
quick_action_bar Improve Find/Replace shortcuts (#10297) 2024-04-08 22:07:59 -07:00
recent_projects Remove if-not-else patterns (#10402) 2024-04-11 03:48:06 -04:00
refineable Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
release_channel Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
rich_text chat panel: Add timestamp in tooltip to edited message (#10444) 2024-04-12 14:26:41 +02:00
rope Revert "Revert "language: Remove buffer fingerprinting (#9007)"" (#9671) 2024-04-12 18:40:35 +02:00
rpc Semantic Index (#10329) 2024-04-12 11:40:59 -06:00
search Inline git blame (#10398) 2024-04-15 14:21:52 +02:00
semantic_index Semantic Index (#10329) 2024-04-12 11:40:59 -06:00
semantic_version Extract SemanticVersion into its own crate (#9956) 2024-03-29 12:11:57 -04:00
settings Remove if-not-else patterns (#10402) 2024-04-11 03:48:06 -04:00
snippet Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
sqlez Remove if-not-else patterns (#10402) 2024-04-11 03:48:06 -04:00
sqlez_macros Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
story Enable clippy::eq_op (#9369) 2024-03-14 17:05:07 -04:00
storybook windows: Support compiling with MinGW toolchain (part 2) (#9843) 2024-03-28 10:40:07 -07:00
sum_tree Compute scrollbar markers asynchronously (#10080) 2024-04-03 12:21:17 +02:00
tab_switcher Add preview tabs (#9125) 2024-04-11 23:09:12 +02:00
task Display more specific tasks above in the modal (#10485) 2024-04-12 20:19:11 +02:00
tasks_ui Merge Zed task context providing logic (#10544) 2024-04-15 11:52:15 +03:00
telemetry_events Extract SemanticVersion into its own crate (#9956) 2024-03-29 12:11:57 -04:00
terminal Only emit resize event when size changed (#10419) 2024-04-12 12:18:56 -07:00
terminal_view Use buffer font when rendering editor breadcrumbs and diagnostics (#10488) 2024-04-12 12:29:00 -07:00
text Improve the ergonomics of creating local buffers (#10347) 2024-04-10 08:32:51 -06:00
theme Add the ability for extensions to provide language settings (#10296) 2024-04-08 19:17:12 -04:00
theme_importer themes: Add pane_group.border color (#9986) 2024-04-01 12:07:26 -04:00
theme_selector Add support for applying theme after extension is installed (#9529) 2024-03-20 11:13:58 -04:00
time_format Inline git blame (#10398) 2024-04-15 14:21:52 +02:00
ui Inline git blame (#10398) 2024-04-15 14:21:52 +02:00
ui_text_field Update TextField (#10415) 2024-04-11 10:03:36 -04:00
util Semantic Index (#10329) 2024-04-12 11:40:59 -06:00
vcs_menu Refactor workspace notifications to use explicit NotificationId type (#10342) 2024-04-10 17:21:23 -04:00
vim Make BufferSearch less wide (#10459) 2024-04-11 23:07:29 -06:00
welcome Add preview tabs (#9125) 2024-04-11 23:09:12 +02:00
workspace Use buffer font when rendering editor breadcrumbs and diagnostics (#10488) 2024-04-12 12:29:00 -07:00
worktree Fix Auto folded dirs performance issues (#8556) 2024-04-12 11:26:26 -07:00
zed WIP: remoting (#10085) 2024-04-11 15:36:35 -06:00
zed_actions Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00