zed/crates
Kyle Kelley c77ea47f43
Runtimes UI Starter (#13625)
Initial runtimes UI panel. The main draw here is that all message
subscription occurs with two background tasks that run for the life of
the kernel. Follow on to #12062

* [x] Disable previous cmd-enter behavior only if runtimes are enabled
in settings
* [x] Only show the runtimes panel if it is enabled via settings
* [x] Create clean UI for the current sessions

### Running Kernels UI

<img width="205" alt="image"
src="https://github.com/zed-industries/zed/assets/836375/814ae79b-0807-4e23-bc95-77ce64f9d732">

* [x] List running kernels
* [x] Implement shutdown
* [x] Delete connection file on `drop` of `RunningKernel`
* [x] Implement interrupt

#### Project-specific Kernel Settings

- [x] Modify JupyterSettings to include a `kernel_selections` field
(`HashMap<String, String>`).
- [x] Implement saving and loading of kernel selections to/from
`.zed/settings.json` (by default, rather than global settings?)

#### Kernel Selection Persistence

- [x] Save the selected kernel for each language when the user makes a
choice.
- [x] Load these selections when the RuntimePanel is initialized.

#### Use Selected Kernels

- [x] Modify kernel launch to use the selected kernel for the detected
language.
- [x] Fallback to default behavior if no selection is made.

### Empty states

- [x] Create helpful UI for when the user has 0 kernels they can launch
and/or 0 kernels running

<img width="694" alt="image"
src="https://github.com/zed-industries/zed/assets/836375/d6a75939-e4e4-40fb-80fe-014da041cc3c">

## Future work

### Kernel Discovery

- Improve the kernel discovery process to handle various installation
methods (system, virtualenv, poetry, etc.).
- Create a way to refresh the available kernels on demand

### Documentation:

- Update documentation to explain how users can configure kernels for
their projects.
- Provide examples of .zed/settings.json configurations for kernel
selection.

### Kernel Selection UI

- Implement a new section in the RuntimePanel to display available
kernels.
- Group on the language name from the kernel specification 
- Create a dropdown for each language group to select the default
kernel.


Release Notes:

- N/A

---------

Co-authored-by: Kirill <kirill@zed.dev>
2024-07-05 08:15:50 -07:00
..
activity_indicator Make LSP task cancellation discoverable (#13226) 2024-06-18 12:44:35 -07:00
anthropic Make Claude 3.5 the default Anthropic model (#13324) 2024-06-21 18:47:38 +02:00
assets Move from Zed fonts to IBM Plex (#13596) 2024-06-27 14:36:44 -06:00
assistant assistant: Limit amount of concurrent completion requests (#13856) 2024-07-05 14:52:45 +02:00
assistant_slash_command assistant: Include worktree name in diagnostics slash command (#13354) 2024-06-21 11:48:52 +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-updates: Do not poll for updates on dev channel (#13311) 2024-06-20 15:00:54 +02:00
breadcrumbs Add more menus to Zed (#12940) 2024-06-18 12:16:54 -07:00
call Remove never-used client parameter from message handler functions (#13406) 2024-06-22 16:07:36 -07:00
channel Remove never-used client parameter from message handler functions (#13406) 2024-06-22 16:07:36 -07:00
cli Stop relying on binary location to be in libexec on Linux (#13374) 2024-06-26 13:00:52 -06:00
client Send telemetry events for pnpm usage (#13748) 2024-07-02 13:59:26 -04:00
clock Use iterators instead of loops in clock.rs (#13561) 2024-06-27 09:30:21 +03:00
collab Remove unused ids query parameter from GET /extensions endpoint (#13802) 2024-07-03 19:03:49 -04:00
collab_ui Linux window decorations (#13611) 2024-07-03 11:28:09 -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 paths: Replace lazy_static! with OnceLock (#13213) 2024-06-18 12:22:37 -04:00
db paths: Replace lazy_static! with OnceLock (#13213) 2024-06-18 12:22:37 -04:00
dev_server_projects Remove never-used client parameter from message handler functions (#13406) 2024-06-22 16:07:36 -07:00
diagnostics vim: Empty pane improvements (#13624) 2024-06-27 21:54:03 -06:00
editor Runtimes UI Starter (#13625) 2024-07-05 08:15:50 -07:00
extension Use a dedicated test extension in extension tests (#13781) 2024-07-03 11:10:51 -04:00
extension_api Allow extensions to define providers for indexing docs (#13755) 2024-07-02 19:49:20 -04:00
extension_cli extension_cli: Allow building without dynamically linking WebRTC (#13080) 2024-06-14 20:13:31 -04:00
extensions_ui ui: Use PopoverMenu::new for constructing PopoverMenus (#13178) 2024-06-17 18:14:37 -04:00
feature_flags assistant: Feature flag terminal inline assistant (#13732) 2024-07-02 11:47:11 +02:00
feedback Refine inline transformation UX (#12939) 2024-06-13 08:35:22 +02:00
file_finder Fix a prompt typo (#13416) 2024-06-23 07:39:01 -04:00
file_icons Make tests less noisy (#12463) 2024-05-29 18:06:45 -07:00
fs paths: Replace lazy_static! with OnceLock (#13213) 2024-06-18 12:22:37 -04: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 Add more menus to Zed (#12940) 2024-06-18 12:16:54 -07:00
google_ai Respect requested gemini model (#13427) 2024-06-23 14:10:31 -06:00
gpui Fix delay when changing scrolling direction (#13867) 2024-07-05 11:11:43 -04:00
gpui_macros gpui_macros: Disable doctests (#13015) 2024-06-13 18:45:28 -04:00
headless Remove never-used client parameter from message handler functions (#13406) 2024-06-22 16:07:36 -07:00
html_to_markdown Publish html_to_markdown (#13718) 2024-07-01 17:18:58 -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
indexed_docs assistant: Add /docs slash command (#13794) 2024-07-03 17:04:08 -04:00
inline_completion_button paths: Replace lazy_static! with OnceLock (#13213) 2024-06-18 12:22:37 -04: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 tasks: Add experimental support for user-defined task variables (#13699) 2024-07-01 15:59:19 +02:00
language_selector Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
language_tools ui: Use PopoverMenu::new for constructing PopoverMenus (#13178) 2024-06-17 18:14:37 -04:00
languages windows: Fix package-version-server (#13821) 2024-07-04 12:49:17 +02:00
live_kit_client extension_cli: Allow building without dynamically linking WebRTC (#13080) 2024-06-14 20:13:31 -04:00
live_kit_server Vendor LiveKit protocol (#11672) 2024-05-10 14:18:40 -04:00
lsp Demote LSP request time log to trace level 2024-06-22 15:59:53 -07:00
markdown Move from Zed fonts to IBM Plex (#13596) 2024-06-27 14:36:44 -06:00
markdown_preview Refine inline transformation UX (#12939) 2024-06-13 08:35:22 +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 Combine multiple buffer update count fields into one (#13449) 2024-06-23 22:20:10 -07:00
node_runtime JSON: Show package.json dependency tooltips on hover (#13481) 2024-06-25 14:59:29 +02:00
notifications Remove never-used client parameter from message handler functions (#13406) 2024-06-22 16:07:36 -07:00
ollama Allow Ollama Model KeepAlive to be None, defaulting to indefinite (#13059) 2024-06-14 10:33:28 -07:00
open_ai Change tool_calls to be an Option in response (#13778) 2024-07-03 11:07:11 -04:00
outline Add more menus to Zed (#12940) 2024-06-18 12:16:54 -07:00
outline_panel Slightly improve project panel ergonomics (#13704) 2024-07-01 19:36:20 +03:00
paths settings: Load .zed/settings.json even if .gitignored (#13370) 2024-06-21 18:39:14 +02:00
picker Fix: Picker select_last not scrolling to item index (#13393) 2024-06-23 09:36:52 +02:00
prettier Fix Prettier parser values when formatting files with paths (#13666) 2024-06-29 11:37:22 +03:00
project tasks: Add experimental support for user-defined task variables (#13699) 2024-07-01 15:59:19 +02:00
project_panel project panel: Respect y offset of a click-and-drag on a scrollbar (#13506) 2024-06-25 14:20:37 +02:00
project_symbols Add more menus to Zed (#12940) 2024-06-18 12:16:54 -07:00
proto Allow canceling in-progress language server work (e.g. cargo check) (#13173) 2024-06-17 17:58:47 -07:00
quick_action_bar Reorganize Quick Action Bar (#13476) 2024-06-24 15:34:22 -04:00
recent_projects Move from Zed fonts to IBM Plex (#13596) 2024-06-27 14:36:44 -06:00
refineable Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
release_channel auto-updates: Do not poll for updates on dev channel (#13311) 2024-06-20 15:00:54 +02:00
repl Runtimes UI Starter (#13625) 2024-07-05 08:15:50 -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 Dynamicer builds (#13074) 2024-06-21 16:32:32 -07:00
search Use user-defined font weight, where appropriate (#13653) 2024-07-01 09:45:01 -04: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 paths: Replace lazy_static! with OnceLock (#13213) 2024-06-18 12:22:37 -04:00
snippet html: Add support for autoclosing of tags (#11761) 2024-05-20 17:00:27 +02:00
sqlez Dynamicer builds (#13074) 2024-06-21 16:32:32 -07:00
sqlez_macros Dynamicer builds (#13074) 2024-06-21 16:32:32 -07:00
story Introduce a new markdown crate (#11556) 2024-05-09 11:03:33 +02:00
storybook Extract title_bar crate (#13597) 2024-06-27 19:14:13 -04: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 paths: Replace lazy_static! with OnceLock (#13213) 2024-06-18 12:22:37 -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 Add metrics_id to editor_events (#13525) 2024-06-25 16:47:55 -04:00
terminal Add terminal inline assistant (#13638) 2024-07-01 20:53:56 +02:00
terminal_view Fix focusing terminal when running tasks (#13675) 2024-07-02 10:57:54 +03:00
text Refine inline transformation UX (#12939) 2024-06-13 08:35:22 +02:00
theme Linux window decorations (#13611) 2024-07-03 11:28:09 -07: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
title_bar Linux window decorations (#13611) 2024-07-03 11:28:09 -07:00
ui ui: Don't show tooltip when ButtonLike is selected (#13857) 2024-07-05 14:27:53 +02:00
ui_text_field Allow UI font weight to be assigned in settings (#12333) 2024-05-26 23:06:58 -06:00
util Associate logs from log_err with the calling crate (#13617) 2024-06-27 17:03:47 -07:00
vcs_menu vcs_menu: Fix header taking up too much space (#12646) 2024-06-04 19:13:21 +02:00
vim vim: Support for q and @ (#13761) 2024-07-03 09:03:39 -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 Configurable window decorations (#13866) 2024-07-05 16:54:33 +02:00
worktree Fix a bug introduced by #13479 (#13516) 2024-06-25 10:03:29 -07:00
zed Runtimes UI Starter (#13625) 2024-07-05 08:15:50 -07:00
zed_actions Add more menus to Zed (#12940) 2024-06-18 12:16:54 -07:00