Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/project-model/src/project_json.rs')
-rw-r--r--crates/project-model/src/project_json.rs11
1 files changed, 11 insertions, 0 deletions
diff --git a/crates/project-model/src/project_json.rs b/crates/project-model/src/project_json.rs
index a7fba69362..536f170e11 100644
--- a/crates/project-model/src/project_json.rs
+++ b/crates/project-model/src/project_json.rs
@@ -246,6 +246,10 @@ 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
@@ -349,6 +353,7 @@ pub struct Runnable {
/// The kind of runnable.
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum RunnableKind {
+ /// `cargo check`, basically, with human-readable output.
Check,
/// Can run a binary.
@@ -356,6 +361,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,
}
#[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq)]
@@ -462,6 +471,7 @@ pub struct RunnableData {
#[derive(Debug, Clone, PartialEq, Eq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub enum RunnableKindData {
+ Flycheck,
Check,
Run,
TestOne,
@@ -532,6 +542,7 @@ impl From<RunnableKindData> for RunnableKind {
RunnableKindData::Check => RunnableKind::Check,
RunnableKindData::Run => RunnableKind::Run,
RunnableKindData::TestOne => RunnableKind::TestOne,
+ RunnableKindData::Flycheck => RunnableKind::Flycheck,
}
}
}