mirror of
https://github.com/astral-sh/ruff.git
synced 2025-11-03 05:03:33 +00:00
Separate red_knot into CLI and red_knot_workspace crates (#12623)
## Summary This PR separates the current `red_knot` crate into two crates: 1. `red_knot` - This will be similar to the `ruff` crate, it'll act as the CLI crate 2. `red_knot_workspace` - This includes everything except for the CLI functionality from the existing `red_knot` crate Note that the code related to the file watcher is in `red_knot_workspace` for now but might be required to extract it out in the future. The main motivation for this change is so that we can have a `red_knot server` command. This makes it easier to test the server out without making any changes in the VS Code extension. All we need is to specify the `red_knot` executable path in `ruff.path` extension setting. ## Test Plan - `cargo build` - `cargo clippy --workspace --all-targets --all-features` - `cargo shear --fix`
This commit is contained in:
parent
966563c79b
commit
9aa43d5f91
290 changed files with 66 additions and 25 deletions
|
|
@ -10,7 +10,7 @@ exclude: |
|
||||||
crates/ruff_python_formatter/tests/snapshots/.*|
|
crates/ruff_python_formatter/tests/snapshots/.*|
|
||||||
crates/ruff_python_resolver/resources/.*|
|
crates/ruff_python_resolver/resources/.*|
|
||||||
crates/ruff_python_resolver/tests/snapshots/.*|
|
crates/ruff_python_resolver/tests/snapshots/.*|
|
||||||
crates/red_knot/resources/.*
|
crates/red_knot_workspace/resources/.*
|
||||||
)$
|
)$
|
||||||
|
|
||||||
repos:
|
repos:
|
||||||
|
|
|
||||||
23
Cargo.lock
generated
23
Cargo.lock
generated
|
|
@ -1945,13 +1945,10 @@ dependencies = [
|
||||||
"crossbeam",
|
"crossbeam",
|
||||||
"ctrlc",
|
"ctrlc",
|
||||||
"filetime",
|
"filetime",
|
||||||
"notify",
|
|
||||||
"rayon",
|
"rayon",
|
||||||
"red_knot_module_resolver",
|
"red_knot_module_resolver",
|
||||||
"red_knot_python_semantic",
|
"red_knot_workspace",
|
||||||
"ruff_db",
|
"ruff_db",
|
||||||
"ruff_python_ast",
|
|
||||||
"rustc-hash 2.0.0",
|
|
||||||
"salsa",
|
"salsa",
|
||||||
"tempfile",
|
"tempfile",
|
||||||
"tracing",
|
"tracing",
|
||||||
|
|
@ -1999,6 +1996,22 @@ dependencies = [
|
||||||
"tracing",
|
"tracing",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "red_knot_workspace"
|
||||||
|
version = "0.0.0"
|
||||||
|
dependencies = [
|
||||||
|
"anyhow",
|
||||||
|
"crossbeam",
|
||||||
|
"notify",
|
||||||
|
"red_knot_module_resolver",
|
||||||
|
"red_knot_python_semantic",
|
||||||
|
"ruff_db",
|
||||||
|
"ruff_python_ast",
|
||||||
|
"rustc-hash 2.0.0",
|
||||||
|
"salsa",
|
||||||
|
"tracing",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "redox_syscall"
|
name = "redox_syscall"
|
||||||
version = "0.4.1"
|
version = "0.4.1"
|
||||||
|
|
@ -2137,7 +2150,7 @@ dependencies = [
|
||||||
"codspeed-criterion-compat",
|
"codspeed-criterion-compat",
|
||||||
"mimalloc",
|
"mimalloc",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"red_knot",
|
"red_knot_workspace",
|
||||||
"ruff_db",
|
"ruff_db",
|
||||||
"ruff_linter",
|
"ruff_linter",
|
||||||
"ruff_python_ast",
|
"ruff_python_ast",
|
||||||
|
|
|
||||||
|
|
@ -35,9 +35,9 @@ ruff_source_file = { path = "crates/ruff_source_file" }
|
||||||
ruff_text_size = { path = "crates/ruff_text_size" }
|
ruff_text_size = { path = "crates/ruff_text_size" }
|
||||||
ruff_workspace = { path = "crates/ruff_workspace" }
|
ruff_workspace = { path = "crates/ruff_workspace" }
|
||||||
|
|
||||||
red_knot = { path = "crates/red_knot" }
|
|
||||||
red_knot_module_resolver = { path = "crates/red_knot_module_resolver" }
|
red_knot_module_resolver = { path = "crates/red_knot_module_resolver" }
|
||||||
red_knot_python_semantic = { path = "crates/red_knot_python_semantic" }
|
red_knot_python_semantic = { path = "crates/red_knot_python_semantic" }
|
||||||
|
red_knot_workspace = { path = "crates/red_knot_workspace" }
|
||||||
|
|
||||||
aho-corasick = { version = "1.1.3" }
|
aho-corasick = { version = "1.1.3" }
|
||||||
annotate-snippets = { version = "0.9.2", features = ["color"] }
|
annotate-snippets = { version = "0.9.2", features = ["color"] }
|
||||||
|
|
|
||||||
|
|
@ -13,19 +13,16 @@ license.workspace = true
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
red_knot_module_resolver = { workspace = true }
|
red_knot_module_resolver = { workspace = true }
|
||||||
red_knot_python_semantic = { workspace = true }
|
red_knot_workspace = { workspace = true }
|
||||||
|
|
||||||
ruff_db = { workspace = true, features = ["os", "cache"] }
|
ruff_db = { workspace = true, features = ["os", "cache"] }
|
||||||
ruff_python_ast = { workspace = true }
|
|
||||||
|
|
||||||
anyhow = { workspace = true }
|
anyhow = { workspace = true }
|
||||||
clap = { workspace = true, features = ["wrap_help"] }
|
clap = { workspace = true, features = ["wrap_help"] }
|
||||||
countme = { workspace = true, features = ["enable"] }
|
countme = { workspace = true, features = ["enable"] }
|
||||||
crossbeam = { workspace = true }
|
crossbeam = { workspace = true }
|
||||||
ctrlc = { version = "3.4.4" }
|
ctrlc = { version = "3.4.4" }
|
||||||
notify = { workspace = true }
|
|
||||||
rayon = { workspace = true }
|
rayon = { workspace = true }
|
||||||
rustc-hash = { workspace = true }
|
|
||||||
salsa = { workspace = true }
|
salsa = { workspace = true }
|
||||||
tracing = { workspace = true }
|
tracing = { workspace = true }
|
||||||
tracing-subscriber = { workspace = true }
|
tracing-subscriber = { workspace = true }
|
||||||
|
|
|
||||||
|
|
@ -9,10 +9,10 @@ use tracing_subscriber::layer::{Context, Filter, SubscriberExt};
|
||||||
use tracing_subscriber::{Layer, Registry};
|
use tracing_subscriber::{Layer, Registry};
|
||||||
use tracing_tree::time::Uptime;
|
use tracing_tree::time::Uptime;
|
||||||
|
|
||||||
use red_knot::db::RootDatabase;
|
use red_knot_workspace::db::RootDatabase;
|
||||||
use red_knot::watch;
|
use red_knot_workspace::watch;
|
||||||
use red_knot::watch::WorkspaceWatcher;
|
use red_knot_workspace::watch::WorkspaceWatcher;
|
||||||
use red_knot::workspace::WorkspaceMetadata;
|
use red_knot_workspace::workspace::WorkspaceMetadata;
|
||||||
use ruff_db::program::{ProgramSettings, SearchPathSettings};
|
use ruff_db::program::{ProgramSettings, SearchPathSettings};
|
||||||
use ruff_db::system::{OsSystem, System, SystemPathBuf};
|
use ruff_db::system::{OsSystem, System, SystemPathBuf};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,11 +6,11 @@ use std::time::Duration;
|
||||||
use anyhow::{anyhow, Context};
|
use anyhow::{anyhow, Context};
|
||||||
use salsa::Setter;
|
use salsa::Setter;
|
||||||
|
|
||||||
use red_knot::db::RootDatabase;
|
|
||||||
use red_knot::watch;
|
|
||||||
use red_knot::watch::{directory_watcher, WorkspaceWatcher};
|
|
||||||
use red_knot::workspace::WorkspaceMetadata;
|
|
||||||
use red_knot_module_resolver::{resolve_module, ModuleName};
|
use red_knot_module_resolver::{resolve_module, ModuleName};
|
||||||
|
use red_knot_workspace::db::RootDatabase;
|
||||||
|
use red_knot_workspace::watch;
|
||||||
|
use red_knot_workspace::watch::{directory_watcher, WorkspaceWatcher};
|
||||||
|
use red_knot_workspace::workspace::WorkspaceMetadata;
|
||||||
use ruff_db::files::{system_path_to_file, File, FileError};
|
use ruff_db::files::{system_path_to_file, File, FileError};
|
||||||
use ruff_db::program::{Program, ProgramSettings, SearchPathSettings, TargetVersion};
|
use ruff_db::program::{Program, ProgramSettings, SearchPathSettings, TargetVersion};
|
||||||
use ruff_db::source::source_text;
|
use ruff_db::source::source_text;
|
||||||
|
|
|
||||||
31
crates/red_knot_workspace/Cargo.toml
Normal file
31
crates/red_knot_workspace/Cargo.toml
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
[package]
|
||||||
|
name = "red_knot_workspace"
|
||||||
|
version = "0.0.0"
|
||||||
|
edition.workspace = true
|
||||||
|
rust-version.workspace = true
|
||||||
|
homepage.workspace = true
|
||||||
|
documentation.workspace = true
|
||||||
|
repository.workspace = true
|
||||||
|
authors.workspace = true
|
||||||
|
license.workspace = true
|
||||||
|
|
||||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
red_knot_module_resolver = { workspace = true }
|
||||||
|
red_knot_python_semantic = { workspace = true }
|
||||||
|
|
||||||
|
ruff_db = { workspace = true, features = ["os", "cache"] }
|
||||||
|
ruff_python_ast = { workspace = true }
|
||||||
|
|
||||||
|
anyhow = { workspace = true }
|
||||||
|
crossbeam = { workspace = true }
|
||||||
|
notify = { workspace = true }
|
||||||
|
rustc-hash = { workspace = true }
|
||||||
|
salsa = { workspace = true }
|
||||||
|
tracing = { workspace = true }
|
||||||
|
|
||||||
|
[dev-dependencies]
|
||||||
|
|
||||||
|
[lints]
|
||||||
|
workspace = true
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue