Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Configure flycheck using workspace.discoverConfig #18043

Open
wants to merge 24 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 17 commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
408973f
PackageToRestart (kinda works?)
cormacrelf Sep 4, 2024
5893442
$label placeholder in overrideCommand
cormacrelf Sep 4, 2024
e67e75a
flycheck::PackageSpecifier
cormacrelf Sep 4, 2024
e697333
Fix flycheck running on a random downstream crate
cormacrelf Sep 4, 2024
07f2ac4
project_json_flycheck
cormacrelf Sep 4, 2024
5d69431
If $label in check command, only flycheck crates with a label in rust…
cormacrelf Sep 4, 2024
108ebb9
use explicit_check_command
cormacrelf Sep 4, 2024
98fc4b9
Early return in flycheck
cormacrelf Sep 4, 2024
8e5e8f7
return crate by reference
cormacrelf Sep 4, 2024
995500b
Use runnable + substitutions to do override commands
cormacrelf Sep 4, 2024
9aa4b0b
RunnableKindData::Flycheck
cormacrelf Sep 4, 2024
52d3d33
Document FlycheckActor.manifest_path
cormacrelf Sep 4, 2024
a3815ce
Always allow flychecking single crate if there is a build label from …
cormacrelf Sep 4, 2024
7322f78
flycheck: notifications show full command when configured in a rust-p…
cormacrelf Sep 4, 2024
dc85a4d
Pretty-print the custom flycheck command with fewer quote characters
cormacrelf Sep 4, 2024
52354dc
Better debug logging in flycheck
cormacrelf Sep 4, 2024
ac3b604
Also notify the full command if you set check.overrideCommand
cormacrelf Sep 4, 2024
48cbf73
FlycheckScope, never look for downstream deps if check.workspace is f…
cormacrelf Sep 4, 2024
c24bf18
Set iteration order of reverse deps to be topological
cormacrelf Sep 5, 2024
1d3cac1
flycheck.cannot_run_workspace
cormacrelf Sep 5, 2024
cb9440e
Fix using the non-canonical target name sometimes for flychecks
cormacrelf Sep 5, 2024
65c60e1
Target -> BinTarget refactor, embed it in flycheck::PackageSpecifier:…
cormacrelf Sep 5, 2024
6c0ab17
BinTarget avoids attaching --bin when the package is one other than t…
cormacrelf Sep 5, 2024
09ef79a
Make the fake flycheck path work on windows
cormacrelf Sep 5, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 12 additions & 3 deletions crates/project-model/src/project_json.rs
Original file line number Diff line number Diff line change
Expand Up @@ -183,12 +183,11 @@ impl ProjectJson {
&self.project_root
}

pub fn crate_by_root(&self, root: &AbsPath) -> Option<Crate> {
pub fn crate_by_root(&self, root: &AbsPath) -> Option<&Crate> {
self.crates
.iter()
.filter(|krate| krate.is_workspace_member)
.find(|krate| krate.root_module == root)
.cloned()
}

/// Returns the path to the project's manifest, if it exists.
Expand Down Expand Up @@ -219,13 +218,17 @@ impl ProjectJson {
pub fn runnables(&self) -> &[Runnable] {
&self.runnables
}

pub fn runnable_template(&self, kind: RunnableKind) -> Option<&Runnable> {
self.runnables().iter().find(|r| r.kind == kind)
}
}

/// A crate points to the root module of a crate and lists the dependencies of the crate. This is
/// useful in creating the crate graph.
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct Crate {
pub(crate) display_name: Option<CrateDisplayName>,
pub display_name: Option<CrateDisplayName>,
pub root_module: AbsPathBuf,
pub(crate) edition: Edition,
pub(crate) version: Option<String>,
Expand Down Expand Up @@ -319,6 +322,10 @@ pub enum RunnableKind {

/// Run a single test.
TestOne,

/// Template for checking a target, emitting rustc JSON diagnostics.
/// May include {label} which will get the label from the `build` section of a crate.
Flycheck,
Comment on lines +326 to +328
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think that you need to add a new enum variant called Flycheck—I always intended the RunnableKind::Check variant to be used for Flycheck, but I never actually wired it up. Happy to have Check be renamed to Flycheck if Check can be (briefly) deserialized.

}

#[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq)]
Expand Down Expand Up @@ -420,6 +427,7 @@ pub struct RunnableData {
#[derive(Debug, Clone, PartialEq, Eq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub enum RunnableKindData {
Flycheck,
Check,
Run,
TestOne,
Expand Down Expand Up @@ -490,6 +498,7 @@ impl From<RunnableKindData> for RunnableKind {
RunnableKindData::Check => RunnableKind::Check,
RunnableKindData::Run => RunnableKind::Run,
RunnableKindData::TestOne => RunnableKind::TestOne,
RunnableKindData::Flycheck => RunnableKind::Flycheck,
}
}
}
Expand Down
Loading