MostlyK
cb13a19d8a
repl: Add initial notebook execution + KernelSession abstraction ( #43553 )
...
Coming from discussion on #25936 and
https://github.com/zed-industries/zed/pull/19756 .
This PR introduces the KernelSession abstraction and adds basic notebook
cell execution inside NotebookEditor.
The following provides a base starter for the development on Notebooks.
What this PR includes today:
Release Notes:
- KernelSession trait extracted. Both REPL and NotebookEditor now share
the same routing mechanism.
- NotebookEditor can launch kernels, execute code cells, and display
outputs.
- Basic cell operations: run current cell, run all, move up/down, add
code/markdown blocks. Keybindings follow Jupyter defaults.
Next Steps:
- [x] Editing support for markdown and code blocks.
- Buffer integration instead of temporary cell text.
- [x] Proper focus behavior when executing or adding cells.
- Kernel control UI.
A little far fetched steps:
- Vim Support
- Cell Handling Improvement and other convenient features and design
from other editors
- Ability to have better parsing for AI Support.
I have attached a video of showcasing some of the features:
https://github.com/user-attachments/assets/37e6f3e5-2022-45f0-a73d-2dd01ebc2932
2026-01-22 09:00:29 -06:00
..
2026-01-22 11:39:46 +00:00
2026-01-21 13:40:42 -03:00
2026-01-22 02:31:14 -05:00
2026-01-15 15:21:57 +00:00
2026-01-22 11:39:46 +00:00
2026-01-22 11:19:32 +00:00
2026-01-15 21:28:33 +00:00
2026-01-22 10:15:53 -03:00
2026-01-22 10:18:13 +00:00
2026-01-15 13:06:45 -05:00
2026-01-08 10:59:03 +00:00
2026-01-14 07:19:13 +00:00
2026-01-20 13:19:24 +00:00
2026-01-20 21:51:54 -05:00
2026-01-07 12:48:24 -08:00
2026-01-07 12:48:24 -08:00
2025-11-11 12:55:19 +00:00
2026-01-15 15:21:57 +00:00
2025-12-17 12:54:57 +01:00
2026-01-06 09:42:00 -03:00
2026-01-22 02:31:14 -05:00
2026-01-07 12:48:24 -08:00
2026-01-07 12:48:24 -08:00
2025-12-16 01:22:41 +00:00
2026-01-15 13:06:45 -05:00
2025-11-10 23:00:55 -07:00
2026-01-15 13:06:45 -05:00
2026-01-16 02:16:34 +00:00
2026-01-16 02:16:34 +00:00
2026-01-20 15:41:31 -05:00
2026-01-21 13:40:42 -03:00
2026-01-14 07:19:13 +00:00
2026-01-20 15:41:31 -05:00
2026-01-07 12:48:24 -08:00
2026-01-15 13:22:03 +01:00
2026-01-14 14:44:13 +00:00
2026-01-14 14:44:13 +00:00
2026-01-14 07:19:13 +00:00
2026-01-07 12:48:24 -08:00
2026-01-14 07:19:13 +00:00
2025-12-08 19:57:02 +01:00
2026-01-14 07:19:13 +00:00
2026-01-07 12:48:24 -08:00
2026-01-20 18:02:03 +00:00
2025-12-18 12:47:34 +00:00
2026-01-16 15:20:48 -08:00
2026-01-15 17:48:15 +00:00
2025-12-18 21:59:05 -05:00
2026-01-20 13:33:43 +00:00
2026-01-22 12:17:55 +00:00
2026-01-16 02:16:34 +00:00
2026-01-06 17:20:25 -05:00
2026-01-22 02:31:14 -05:00
2026-01-22 11:24:23 +00:00
2026-01-07 07:24:46 +00:00
2026-01-20 21:51:54 -05:00
2025-12-18 17:26:20 +01:00
2026-01-19 19:58:10 +00:00
2025-12-17 16:25:07 -08:00
2025-12-08 21:49:26 +01:00
2026-01-19 19:58:10 +00:00
2026-01-07 12:48:24 -08:00
2026-01-22 01:43:55 -05:00
2026-01-07 12:48:24 -08:00
2026-01-22 10:22:29 +01:00
2025-12-26 18:47:53 +00:00
2025-12-08 19:50:20 +01:00
2026-01-14 07:19:13 +00:00
2026-01-05 16:15:21 +00:00
2026-01-22 02:31:14 -05:00
2025-12-17 16:51:16 +00:00
2025-12-17 20:12:40 -06:00
2026-01-22 02:31:14 -05:00
2026-01-14 07:19:13 +00:00
2026-01-07 12:48:24 -08:00
2025-12-09 09:29:40 -08:00
2026-01-20 14:06:21 +00:00
2026-01-21 22:48:30 +01:00
2026-01-20 15:41:31 -05:00
2026-01-07 12:48:24 -08:00
2025-11-19 22:00:58 +00:00
2026-01-16 14:33:28 +00:00
2026-01-15 15:21:57 +00:00
2026-01-22 02:31:14 -05:00
2026-01-17 19:29:19 +00:00
2026-01-20 21:51:54 -05:00
2026-01-21 19:35:08 +00:00
2026-01-07 12:48:24 -08:00
2026-01-22 02:31:14 -05:00
2026-01-22 12:52:14 +01:00
2026-01-16 14:20:23 +00:00
2026-01-22 15:06:02 +02:00
2026-01-21 13:40:42 -03:00
2026-01-21 13:40:42 -03:00
2025-12-30 07:49:01 -03:00
2026-01-15 21:28:33 +00:00
2026-01-14 07:19:13 +00:00
2025-12-18 09:49:32 +00:00
2026-01-22 02:31:14 -05:00
2026-01-06 08:14:34 +00:00
2026-01-21 14:52:44 +00:00
2026-01-07 12:48:24 -08:00
2025-11-11 16:10:47 +01:00
2026-01-21 10:12:29 +00:00
2026-01-21 10:08:59 +00:00
2025-11-24 13:24:26 -05:00
2026-01-14 08:06:55 -03:00
2026-01-22 11:24:23 +00:00
2025-12-10 12:10:43 -08:00
2025-12-30 13:29:44 -03:00
2026-01-07 12:48:24 -08:00
2026-01-22 11:24:23 +00:00
2026-01-20 15:41:31 -05:00
2026-01-22 11:24:23 +00:00
2026-01-14 07:19:13 +00:00
2026-01-22 02:44:47 +05:30
2026-01-20 09:10:18 +00:00
2026-01-20 15:58:35 -05:00
2025-12-15 13:30:13 +00:00
2025-11-27 13:46:43 +00:00
2026-01-22 11:24:23 +00:00
2026-01-21 16:16:03 +05:30
2026-01-22 09:00:29 -06:00
2025-12-09 09:29:40 -08:00
2026-01-20 12:23:17 +00:00
2025-12-29 20:21:59 +00:00
2026-01-20 21:51:54 -05:00
2026-01-15 18:39:06 +00:00
2025-12-16 10:48:14 -05:00
2026-01-15 17:48:15 +00:00
2026-01-14 07:19:13 +00:00
2026-01-22 10:22:04 +01:00
2026-01-22 10:44:31 -03:00
2025-11-21 08:28:17 -07:00
2025-11-07 22:27:14 +00:00
2026-01-22 10:44:31 -03:00
2026-01-11 15:08:34 +02:00
2026-01-14 07:19:13 +00:00
2026-01-22 02:31:14 -05:00
2026-01-04 23:28:18 +00:00
2026-01-04 23:28:18 +00:00
2025-12-27 23:29:36 +00:00
2025-11-24 13:34:04 +01:00
2025-12-16 08:26:29 +00:00
2025-12-04 15:37:32 -05:00
2025-12-09 09:08:59 +01:00
2025-11-24 13:34:04 +01:00
2026-01-19 14:18:53 +01:00
2026-01-15 18:10:21 +00:00
2026-01-19 09:08:45 +01:00
2026-01-15 18:10:21 +00:00
2026-01-15 18:10:21 +00:00
2025-12-01 20:52:57 -07:00
2026-01-19 12:37:40 -03:00
2026-01-07 12:48:24 -08:00
2026-01-21 13:40:42 -03:00
2026-01-22 10:44:31 -03:00
2026-01-15 15:21:57 +00:00
2026-01-22 00:11:29 +00:00
2025-11-07 22:27:14 +00:00
2025-12-17 11:53:48 -07:00
2026-01-22 12:15:24 +01:00
2026-01-22 10:22:04 +01:00
2026-01-07 12:48:24 -08:00
2025-12-08 16:38:34 +01:00
2026-01-22 12:15:24 +01:00
2026-01-20 14:06:21 +00:00
2025-12-13 11:06:30 -05:00
2026-01-20 13:33:43 +00:00
2025-12-06 17:56:49 +00:00
2025-11-07 22:27:14 +00:00
2026-01-17 19:29:19 +00:00
2025-12-05 17:23:06 +00:00