-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
cormacrelf
wants to merge
24
commits into
rust-lang:master
Choose a base branch
from
cormacrelf:feature/rust-project-discovery
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+583
−131
Open
Changes from all commits
Commits
Show all changes
24 commits
Select commit
Hold shift + click to select a range
408973f
PackageToRestart (kinda works?)
cormacrelf 5893442
$label placeholder in overrideCommand
cormacrelf e67e75a
flycheck::PackageSpecifier
cormacrelf e697333
Fix flycheck running on a random downstream crate
cormacrelf 07f2ac4
project_json_flycheck
cormacrelf 5d69431
If $label in check command, only flycheck crates with a label in rust…
cormacrelf 108ebb9
use explicit_check_command
cormacrelf 98fc4b9
Early return in flycheck
cormacrelf 8e5e8f7
return crate by reference
cormacrelf 995500b
Use runnable + substitutions to do override commands
cormacrelf 9aa4b0b
RunnableKindData::Flycheck
cormacrelf 52d3d33
Document FlycheckActor.manifest_path
cormacrelf a3815ce
Always allow flychecking single crate if there is a build label from …
cormacrelf 7322f78
flycheck: notifications show full command when configured in a rust-p…
cormacrelf dc85a4d
Pretty-print the custom flycheck command with fewer quote characters
cormacrelf 52354dc
Better debug logging in flycheck
cormacrelf ac3b604
Also notify the full command if you set check.overrideCommand
cormacrelf 48cbf73
FlycheckScope, never look for downstream deps if check.workspace is f…
cormacrelf c24bf18
Set iteration order of reverse deps to be topological
cormacrelf 1d3cac1
flycheck.cannot_run_workspace
cormacrelf cb9440e
Fix using the non-canonical target name sometimes for flychecks
cormacrelf 65c60e1
Target -> BinTarget refactor, embed it in flycheck::PackageSpecifier:…
cormacrelf 6c0ab17
BinTarget avoids attaching --bin when the package is one other than t…
cormacrelf 09ef79a
Make the fake flycheck path work on windows
cormacrelf File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -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. | ||
|
@@ -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>, | ||
|
@@ -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
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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 |
||
} | ||
|
||
#[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq)] | ||
|
@@ -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, | ||
|
@@ -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, | ||
} | ||
} | ||
} | ||
|
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ayyy, that is a very sus line in retrospect, pretty sure this is wrong. This needs tests.