mirror of
https://github.com/astral-sh/ruff.git
synced 2025-10-29 19:17:20 +00:00
Some checks are pending
CI / cargo test (linux) (push) Blocked by required conditions
CI / cargo fuzz build (push) Blocked by required conditions
CI / python package (push) Waiting to run
CI / Determine changes (push) Waiting to run
CI / cargo fmt (push) Waiting to run
CI / cargo clippy (push) Blocked by required conditions
CI / cargo test (linux, release) (push) Blocked by required conditions
CI / cargo test (windows) (push) Blocked by required conditions
CI / cargo test (wasm) (push) Blocked by required conditions
CI / cargo build (release) (push) Waiting to run
CI / cargo build (msrv) (push) Blocked by required conditions
CI / fuzz parser (push) Blocked by required conditions
CI / test scripts (push) Blocked by required conditions
CI / ecosystem (push) Blocked by required conditions
CI / Fuzz for new ty panics (push) Blocked by required conditions
CI / cargo shear (push) Blocked by required conditions
CI / pre-commit (push) Waiting to run
CI / mkdocs (push) Waiting to run
CI / formatter instabilities and black similarity (push) Blocked by required conditions
CI / test ruff-lsp (push) Blocked by required conditions
CI / check playground (push) Blocked by required conditions
CI / benchmarks-instrumented (push) Blocked by required conditions
CI / benchmarks-walltime (push) Blocked by required conditions
[ty Playground] Release / publish (push) Waiting to run
## Summary This PR makes the necessary changes to the server that it can request configurations from the client using the `configuration` request. This PR doesn't make use of the request yet. It only sets up the foundation (mainly the coordination between client and server) so that future PRs could pull specific settings. I plan to use this for pulling the Python environment from the Python extension. Deno does something very similar to this. ## Test Plan Tested that diagnostics are still shown.
27 lines
805 B
Rust
27 lines
805 B
Rust
use lsp_server::RequestId;
|
|
use lsp_types::CancelParams;
|
|
use lsp_types::notification::Cancel;
|
|
|
|
use crate::server::Result;
|
|
use crate::server::api::traits::{NotificationHandler, SyncNotificationHandler};
|
|
use crate::session::Session;
|
|
use crate::session::client::Client;
|
|
|
|
pub(crate) struct CancelNotificationHandler;
|
|
|
|
impl NotificationHandler for CancelNotificationHandler {
|
|
type NotificationType = Cancel;
|
|
}
|
|
|
|
impl SyncNotificationHandler for CancelNotificationHandler {
|
|
fn run(session: &mut Session, client: &Client, params: CancelParams) -> Result<()> {
|
|
let id: RequestId = match params.id {
|
|
lsp_types::NumberOrString::Number(id) => id.into(),
|
|
lsp_types::NumberOrString::String(id) => id.into(),
|
|
};
|
|
|
|
client.cancel(session, id);
|
|
|
|
Ok(())
|
|
}
|
|
}
|