ZIm/crates/collab/src
Kyle Kelley 221edfc267
Bring Jupyter to Zed Editing (#12062)
Run any Jupyter kernel in Zed on any buffer (editor):

<img width="1074" alt="image"
src="https://github.com/zed-industries/zed/assets/836375/eac8ed69-d02b-4d46-b379-6186d8f59470">

## TODO

### Lifecycle

* [x] Launch kernels on demand
* [x] Wait for kernel to be started
* [x] Request Kernel info on start
* [x] Show in progress indicator
* [ ] Allow picking kernel (it defaults to first matching language name)
* [ ] Menu for interrupting and shutting down the kernel
* [ ] Drop running kernels once editor is dropped

### Media Outputs

* [x] Render text and tracebacks with ANSI color handling
* [x] Render markdown as text
* [x] Render PNG and JPEG images using an explicit height based on
line-height
* ~~Render SVG~~ -- not happening for this PR due to lack of text in SVG
support
* [ ] Process `update_display_data` message and related `display_id`
* [x] Process `page` data from payloads as outputs
* [ ] Render markdown as, well, rendered markdown -- Note: unsure if we
can get line heights here

### Document

* [x] Select code and run
* [x] Run current line
* [x] Clear previous overlapping runs
* [ ] Support running markdown code blocks
* [ ] Action to export session as notebook or output files
* [ ] Action to clear all outputs
* [ ] Delete outputs when lines are deleted

## Other missing features

The following is a list of missing functionality or expectations that
are out of scope for this PR.

### Python Environments

Detecting python environments should probably be done in a separate PR
in tandem with how they're used with LSP. Users likely want to pick an
environment for their project, whether a virtualenv, conda env, pyenv,
poetry backed virtualenv, or the system. Related issues:

* https://github.com/zed-industries/zed/issues/7646
* https://github.com/zed-industries/zed/issues/7808
* https://github.com/zed-industries/zed/issues/7296

### LSP Integration

* Submit `complete_request` messages for completions to interleave
interactive variables with LSP
* LSP for IPython semantics (`%%timeit`, `!ls`, `get_ipython`, etc.)

## Future release notes

- Run code in any editor, whether it's a script or a markdown document

Release Notes:

- N/A
2024-06-17 10:02:31 -07:00
..
api Add os_name and os_version to all event types (#13063) 2024-06-14 16:38:08 -04:00
bin Make it (a tiny bit) easier to run your own collab (#9557) 2024-03-20 21:00:02 -06:00
db Bring Jupyter to Zed Editing (#12062) 2024-06-17 10:02:31 -07:00
rpc open new buffer (#11203) 2024-04-30 16:09:43 -06:00
tests assistant: Add diagnostics slash command (#12998) 2024-06-14 17:14:50 +02:00
ai.rs New revision of the Assistant Panel (#10870) 2024-04-23 16:23:26 -07:00
api.rs Rust 1.78 (#11314) 2024-05-05 15:02:50 +02:00
auth.rs Enable linux tests (#12493) 2024-06-13 16:38:53 -07:00
completion.rs Supermaven (#10788) 2024-05-03 12:50:42 -07:00
db.rs Reduce DB load upon initial connection due to channel loading (#12500) 2024-05-30 13:02:55 -07:00
env.rs Add an extensions API to the collaboration server (#7807) 2024-02-15 12:53:57 -08:00
errors.rs Remove more unused code related to GitHub auth and errors 2022-04-21 08:57:49 -06:00
executor.rs Remove 2 suffix for collab, rope, settings, menu 2024-01-03 12:29:16 -08:00
lib.rs Supermaven (#10788) 2024-05-03 12:50:42 -07:00
main.rs Semantic Index (#10329) 2024-04-12 11:40:59 -06:00
rate_limiter.rs Fix logic errors in RateLimiter (#12421) 2024-05-29 12:05:40 +02:00
rpc.rs lsp: Add support for linked editing range edits (HTML tag autorenaming) (#12769) 2024-06-11 15:52:38 +02:00
seed.rs Make it (a tiny bit) easier to run your own collab (#9557) 2024-03-20 21:00:02 -06:00
tests.rs WIP: remoting (#10085) 2024-04-11 15:36:35 -06:00