zed/crates
Kirill Bulatov 8451dba6a7
Introduce an outline panel (#12637)
Adds a new panel: `OutlinePanel` which looks very close to project
panel:

<img width="256" alt="Screenshot 2024-06-10 at 23 19 05"
src="https://github.com/zed-industries/zed/assets/2690773/c66e6e78-44ec-4de8-8d60-43238bb09ae9">

has similar settings and keymap (actions work in the `OutlinePanel`
context and are under `outline_panel::` namespace), with two notable
differences:
* no "edit" actions such as cut/copy/paste/delete/etc.
* directory auto folding is enabled by default

Empty view: 
<img width="841" alt="Screenshot 2024-06-10 at 23 19 11"
src="https://github.com/zed-industries/zed/assets/2690773/dc8bf37c-5a70-4fd5-9b57-76271eb7a40c">


When editor gets active, the panel displays all related files in a tree
(similar to what the project panel does) and all related excerpts'
outlines under each file.
Same as in the project panel, directories can be expanded or collapsed,
unfolded or folded; clicking file entries or outlines scrolls the buffer
to the corresponding excerpt; changing editor's selection reveals the
corresponding outline in the panel.

The panel is applicable to any singleton buffer:
<img width="1215" alt="Screenshot 2024-06-10 at 23 19 35"
src="https://github.com/zed-industries/zed/assets/2690773/a087631f-5c2d-4d4d-ae25-30ab9731d528">

<img width="1728" alt="image"
src="https://github.com/zed-industries/zed/assets/2690773/e4f8082c-d12d-4473-8500-e8fd1051285b">

or any multi buffer:

(search multi buffer)

<img width="1728" alt="Screenshot 2024-06-10 at 23 19 41"
src="https://github.com/zed-industries/zed/assets/2690773/60f768a3-6716-4520-9b13-42da8fd15f50">

(diagnostics multi buffer)
<img width="1728" alt="image"
src="https://github.com/zed-industries/zed/assets/2690773/64e285bd-9530-4bf2-8f1f-10ee5596067c">

Release Notes:
- Added an outline panel to show a "map" of the active editor
2024-06-12 23:22:52 +03:00
..
activity_indicator Rename workspace::Restart action into workspace::Reload (#12672) 2024-06-08 13:23:59 +03:00
anthropic Improve model selection in the assistant (#12472) 2024-05-30 12:36:07 +02:00
assets Make tests less noisy (#12463) 2024-05-29 18:06:45 -07:00
assistant Move rustdoc-related code to rustdoc crate (#12945) 2024-06-12 15:53:05 -04:00
assistant_slash_command Autocomplete commands that don't require access to workspace in prompt library (#12674) 2024-06-05 10:07:43 +02:00
assistant_tooling Bring the Tool Calling README up to date (#11683) 2024-05-12 04:47:19 -07:00
audio Make tests less noisy (#12463) 2024-05-29 18:06:45 -07:00
auto_update Auto updater disabler (#12660) 2024-06-04 15:56:18 -07:00
breadcrumbs Break typography styles out of StyledExt (#11013) 2024-04-25 17:42:53 -04:00
call Don't show backtraces in prompts (#12699) 2024-06-05 15:00:23 -06:00
channel Pull app / OS info out of GPUI, add Linux information, make fallible window initialization (#12869) 2024-06-11 11:43:12 -07:00
cli linux: Use filesystem based unix socket instead of abstract namespace (#12756) 2024-06-11 19:17:07 -06:00
client Pull app / OS info out of GPUI, add Linux information, make fallible window initialization (#12869) 2024-06-11 11:43:12 -07:00
clock Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
collab Pull app / OS info out of GPUI, add Linux information, make fallible window initialization (#12869) 2024-06-11 11:43:12 -07:00
collab_ui Pull app / OS info out of GPUI, add Linux information, make fallible window initialization (#12869) 2024-06-11 11:43:12 -07:00
collections gpui: Add SVG rendering to img element and generic asset cache (#9931) 2024-03-29 17:09:49 -07:00
command_palette Use UpdateGlobal accessors in more places (#11925) 2024-05-16 13:30:04 -04:00
command_palette_hooks Introduce InlineCompletionProvider (#9777) 2024-03-26 13:28:06 +01:00
copilot Remove dependencies from the Worktree crate and make it more focused (#12747) 2024-06-06 11:16:58 -07:00
db Clean up whitespace (#10755) 2024-04-23 13:31:21 -04:00
dev_server_projects Allow ssh connection for setting up zed (#12063) 2024-05-21 22:39:16 -06:00
diagnostics Check validity of new.range too (#12781) 2024-06-07 11:48:23 -06:00
editor Introduce an outline panel (#12637) 2024-06-12 23:22:52 +03:00
extension Pull app / OS info out of GPUI, add Linux information, make fallible window initialization (#12869) 2024-06-11 11:43:12 -07:00
extension_api Block publishing of zed_extension_api v0.0.7 (#12784) 2024-06-07 14:16:21 -04:00
extension_cli Add git blame (#8889) 2024-03-28 18:32:11 +01:00
extensions_ui Show extension download counts with thousands separators (#12857) 2024-06-10 14:19:17 -04:00
feature_flags Make prompt library icon in context panel staff-only for now (#12457) 2024-05-29 16:53:45 -06:00
feedback Pull app / OS info out of GPUI, add Linux information, make fallible window initialization (#12869) 2024-06-11 11:43:12 -07:00
file_finder Tidy up the code (#12116) 2024-05-22 14:36:15 +03:00
file_icons Make tests less noisy (#12463) 2024-05-29 18:06:45 -07:00
fs linux watcher (#12615) 2024-06-03 22:17:10 -06:00
fsevent Retain run loop (#11241) 2024-04-30 23:31:59 -06:00
fuzzy Introduce an outline panel (#12637) 2024-06-12 23:22:52 +03:00
git Introduce an outline panel (#12637) 2024-06-12 23:22:52 +03:00
git_hosting_providers Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
go_to_line Make autoscroll optional when highlighting editor rows (#11950) 2024-05-16 20:28:17 -07:00
google_ai Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
gpui Introduce an outline panel (#12637) 2024-06-12 23:22:52 +03:00
gpui_macros Adjust names of negated style methods (#11453) 2024-05-06 13:56:25 -04:00
headless Make reconnects smoother for dev servers (#12223) 2024-05-23 21:11:14 -06:00
html_to_markdown Move rustdoc-related code to rustdoc crate (#12945) 2024-06-12 15:53:05 -04:00
http zed_extension_api: Add github_release_by_tag_name (#12172) 2024-05-22 20:40:31 -04:00
image_viewer Make tests less noisy (#12463) 2024-05-29 18:06:45 -07:00
inline_completion_button Supermaven (#10788) 2024-05-03 12:50:42 -07: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 Introduce an outline panel (#12637) 2024-06-12 23:22:52 +03:00
language_selector Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
language_tools Pull app / OS info out of GPUI, add Linux information, make fallible window initialization (#12869) 2024-06-11 11:43:12 -07:00
languages Wrap JS/TS runnables in quotes (#12932) 2024-06-12 14:58:04 +02:00
live_kit_client Hoist nanoid to workspace-level (#11029) 2024-04-25 22:37:40 -04:00
live_kit_server Vendor LiveKit protocol (#11672) 2024-05-10 14:18:40 -04:00
lsp Pull app / OS info out of GPUI, add Linux information, make fallible window initialization (#12869) 2024-06-11 11:43:12 -07:00
markdown Pull app / OS info out of GPUI, add Linux information, make fallible window initialization (#12869) 2024-06-11 11:43:12 -07:00
markdown_preview markdown preview: Break up list items into individual blocks (#10852) 2024-04-26 21:34:45 +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 Introduce an outline panel (#12637) 2024-06-12 23:22:52 +03:00
node_runtime node_runtime: Restrict the windows dependency to the Windows target (#12284) 2024-05-25 11:04:22 -04: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
ollama Add missing LICENSE file to ollama crate (#12943) 2024-06-12 15:12:36 -04:00
open_ai Improve model selection in the assistant (#12472) 2024-05-30 12:36:07 +02:00
outline Introduce an outline panel (#12637) 2024-06-12 23:22:52 +03:00
outline_panel Introduce an outline panel (#12637) 2024-06-12 23:22:52 +03:00
picker Update prompt library styles (#12689) 2024-06-05 22:10:02 -04:00
prettier Use language settings' prettier parsers as a fallback for files with no path (#12273) 2024-05-25 10:50:53 +03:00
project Pull app / OS info out of GPUI, add Linux information, make fallible window initialization (#12869) 2024-06-11 11:43:12 -07:00
project_panel project_panel: Don't show file icon during rename when file icons are otherwise hidden (#12910) 2024-06-11 19:45:47 -04:00
project_symbols Pull app / OS info out of GPUI, add Linux information, make fallible window initialization (#12869) 2024-06-11 11:43:12 -07:00
proto lsp: Add support for linked editing range edits (HTML tag autorenaming) (#12769) 2024-06-11 15:52:38 +02:00
quick_action_bar Do not show tooltip for editor controls if clicked (#10679) 2024-04-17 13:20:47 +02:00
recent_projects Reconnect button for remote projects (#12669) 2024-06-10 18:09:47 -06:00
refineable Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
release_channel Pull app / OS info out of GPUI, add Linux information, make fallible window initialization (#12869) 2024-06-11 11:43:12 -07:00
rich_text New revision of the Assistant Panel (#10870) 2024-04-23 16:23:26 -07:00
rope Indent guides (#11503) 2024-05-23 15:50:59 +02:00
rpc Extract a proto crate out of rpc (#12852) 2024-06-10 12:49:53 -06:00
rustdoc Move rustdoc-related code to rustdoc crate (#12945) 2024-06-12 15:53:05 -04:00
search Search in selections (#10831) 2024-06-05 13:42:51 -06:00
semantic_index Refactor: Make it possible to share a remote worktree (#12775) 2024-06-07 12:53:01 -07:00
semantic_version Extract SemanticVersion into its own crate (#9956) 2024-03-29 12:11:57 -04:00
settings Refactor: Make it possible to share a remote worktree (#12775) 2024-06-07 12:53:01 -07:00
snippet html: Add support for autoclosing of tags (#11761) 2024-05-20 17:00:27 +02:00
sqlez Rename RemoteProject -> DevServerProject (#11301) 2024-05-02 11:00:08 -06:00
sqlez_macros Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
story Introduce a new markdown crate (#11556) 2024-05-09 11:03:33 +02:00
storybook Make tests less noisy (#12463) 2024-05-29 18:06:45 -07:00
sum_tree Introduce Editor::insert_flaps and Editor::remove_flaps (#12096) 2024-05-21 20:23:37 +02:00
supermaven Reduce spamming of inline completion discard events (#11999) 2024-05-17 16:37:17 -04:00
supermaven_api Add xtask for finding crates with missing licenses (#11776) 2024-05-13 18:52:12 -04:00
tab_switcher Introduce recent files ambient context for assistant (#11791) 2024-05-14 13:48:36 +02:00
task task: Add re-run task button to terminal title (#12379) 2024-05-29 11:40:43 +02:00
tasks_ui task: Rebind UseSelectedQuery in modal to F2 (#12601) 2024-06-03 12:52:44 +02:00
telemetry_events Pull app / OS info out of GPUI, add Linux information, make fallible window initialization (#12869) 2024-06-11 11:43:12 -07:00
terminal Bump alacritty to fix some file descriptor yuck (#12687) 2024-06-05 09:12:05 -06:00
terminal_view Refactor: Make it possible to share a remote worktree (#12775) 2024-06-07 12:53:01 -07:00
text Remove headers from prompt library picker (#12889) 2024-06-11 15:59:30 +02:00
theme Hoist indexmap to workspace level (#12901) 2024-06-11 15:31:55 -04:00
theme_importer Hoist indexmap to workspace level (#12901) 2024-06-11 15:31:55 -04:00
theme_selector Use UpdateGlobal accessors in more places (#11925) 2024-05-16 13:30:04 -04:00
time_format Inline git blame (#10398) 2024-04-15 14:21:52 +02:00
ui Introduce an outline panel (#12637) 2024-06-12 23:22:52 +03:00
ui_text_field Allow UI font weight to be assigned in settings (#12333) 2024-05-26 23:06:58 -06:00
util Refactor: Make it possible to share a remote worktree (#12775) 2024-06-07 12:53:01 -07:00
vcs_menu vcs_menu: Fix header taking up too much space (#12646) 2024-06-04 19:13:21 +02:00
vim vim: Implement named registers (#12895) 2024-06-12 10:40:27 -06:00
welcome Pull app / OS info out of GPUI, add Linux information, make fallible window initialization (#12869) 2024-06-11 11:43:12 -07:00
workspace Pull app / OS info out of GPUI, add Linux information, make fallible window initialization (#12869) 2024-06-11 11:43:12 -07:00
worktree Introduce an outline panel (#12637) 2024-06-12 23:22:52 +03:00
zed Introduce an outline panel (#12637) 2024-06-12 23:22:52 +03:00
zed_actions Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00