## Summary Closes https://github.com/astral-sh/ruff/issues/10858. `ruff server` now supports `*.ipynb` (aka Jupyter Notebook) files. Extensive internal changes have been made to facilitate this, which I've done some work to contextualize with documentation and an pre-review that highlights notable sections of the code. `*.ipynb` cells should behave similarly to `*.py` documents, with one major exception. The format command `ruff.applyFormat` will only apply to the currently selected notebook cell - if you want to format an entire notebook document, use `Format Notebook` from the VS Code context menu. ## Test Plan The VS Code extension does not yet have Jupyter Notebook support enabled, so you'll first need to enable it manually. To do this, checkout the `pre-release` branch and modify `src/common/server.ts` as follows: Before:  After:  I recommend testing this PR with large, complicated notebook files. I used notebook files from [this popular repository](https://github.com/jakevdp/PythonDataScienceHandbook/tree/master/notebooks) in my preliminary testing. The main thing to test is ensuring that notebook cells behave the same as Python documents, besides the aforementioned issue with `ruff.applyFormat`. You should also test adding and deleting cells (in particular, deleting all the code cells and ensure that doesn't break anything), changing the kind of a cell (i.e. from markup -> code or vice versa), and creating a new notebook file from scratch. Finally, you should also test that source actions work as expected (and across the entire notebook). Note: `ruff.applyAutofix` and `ruff.applyOrganizeImports` are currently broken for notebook files, and I suspect it has something to do with https://github.com/astral-sh/ruff/issues/11248. Once this is fixed, I will update the test plan accordingly. --------- Co-authored-by: nolan <nolan.king90@gmail.com>
23 lines
767 B
Rust
23 lines
767 B
Rust
mod cancel;
|
|
mod did_change;
|
|
mod did_change_configuration;
|
|
mod did_change_notebook;
|
|
mod did_change_watched_files;
|
|
mod did_change_workspace;
|
|
mod did_close;
|
|
mod did_close_notebook;
|
|
mod did_open;
|
|
mod did_open_notebook;
|
|
|
|
use super::traits::{NotificationHandler, SyncNotificationHandler};
|
|
pub(super) use cancel::Cancel;
|
|
pub(super) use did_change::DidChange;
|
|
pub(super) use did_change_configuration::DidChangeConfiguration;
|
|
pub(super) use did_change_notebook::DidChangeNotebook;
|
|
pub(super) use did_change_watched_files::DidChangeWatchedFiles;
|
|
pub(super) use did_change_workspace::DidChangeWorkspace;
|
|
pub(super) use did_close::DidClose;
|
|
pub(super) use did_close_notebook::DidCloseNotebook;
|
|
pub(super) use did_open::DidOpen;
|
|
pub(super) use did_open_notebook::DidOpenNotebook;
|