diff options
Diffstat (limited to 'crates')
| -rw-r--r-- | crates/ra_flycheck/src/lib.rs | 7 | ||||
| -rw-r--r-- | crates/rust-analyzer/src/config.rs | 4 |
2 files changed, 8 insertions, 3 deletions
diff --git a/crates/ra_flycheck/src/lib.rs b/crates/ra_flycheck/src/lib.rs index b54a30ab8..f27252949 100644 --- a/crates/ra_flycheck/src/lib.rs +++ b/crates/ra_flycheck/src/lib.rs | |||
| @@ -24,7 +24,7 @@ pub use crate::conv::url_from_path_with_drive_lowercasing; | |||
| 24 | 24 | ||
| 25 | #[derive(Clone, Debug, PartialEq, Eq)] | 25 | #[derive(Clone, Debug, PartialEq, Eq)] |
| 26 | pub enum FlycheckConfig { | 26 | pub enum FlycheckConfig { |
| 27 | CargoCommand { command: String, all_targets: bool, extra_args: Vec<String> }, | 27 | CargoCommand { command: String, all_targets: bool, all_features: bool, extra_args: Vec<String> }, |
| 28 | CustomCommand { command: String, args: Vec<String> }, | 28 | CustomCommand { command: String, args: Vec<String> }, |
| 29 | } | 29 | } |
| 30 | 30 | ||
| @@ -215,7 +215,7 @@ impl FlycheckThread { | |||
| 215 | self.check_process = None; | 215 | self.check_process = None; |
| 216 | 216 | ||
| 217 | let mut cmd = match &self.config { | 217 | let mut cmd = match &self.config { |
| 218 | FlycheckConfig::CargoCommand { command, all_targets, extra_args } => { | 218 | FlycheckConfig::CargoCommand { command, all_targets, all_features, extra_args } => { |
| 219 | let mut cmd = Command::new(cargo_binary()); | 219 | let mut cmd = Command::new(cargo_binary()); |
| 220 | cmd.arg(command); | 220 | cmd.arg(command); |
| 221 | cmd.args(&["--workspace", "--message-format=json", "--manifest-path"]); | 221 | cmd.args(&["--workspace", "--message-format=json", "--manifest-path"]); |
| @@ -223,6 +223,9 @@ impl FlycheckThread { | |||
| 223 | if *all_targets { | 223 | if *all_targets { |
| 224 | cmd.arg("--all-targets"); | 224 | cmd.arg("--all-targets"); |
| 225 | } | 225 | } |
| 226 | if *all_features { | ||
| 227 | cmd.arg("--all-features"); | ||
| 228 | } | ||
| 226 | cmd.args(extra_args); | 229 | cmd.args(extra_args); |
| 227 | cmd | 230 | cmd |
| 228 | } | 231 | } |
diff --git a/crates/rust-analyzer/src/config.rs b/crates/rust-analyzer/src/config.rs index 8d85c60cf..ccc38e3bb 100644 --- a/crates/rust-analyzer/src/config.rs +++ b/crates/rust-analyzer/src/config.rs | |||
| @@ -89,6 +89,7 @@ impl Default for Config { | |||
| 89 | check: Some(FlycheckConfig::CargoCommand { | 89 | check: Some(FlycheckConfig::CargoCommand { |
| 90 | command: "check".to_string(), | 90 | command: "check".to_string(), |
| 91 | all_targets: true, | 91 | all_targets: true, |
| 92 | all_features: true, | ||
| 92 | extra_args: Vec::new(), | 93 | extra_args: Vec::new(), |
| 93 | }), | 94 | }), |
| 94 | 95 | ||
| @@ -173,12 +174,13 @@ impl Config { | |||
| 173 | } | 174 | } |
| 174 | // otherwise configure command customizations | 175 | // otherwise configure command customizations |
| 175 | _ => { | 176 | _ => { |
| 176 | if let Some(FlycheckConfig::CargoCommand { command, extra_args, all_targets }) | 177 | if let Some(FlycheckConfig::CargoCommand { command, extra_args, all_targets, all_features }) |
| 177 | = &mut self.check | 178 | = &mut self.check |
| 178 | { | 179 | { |
| 179 | set(value, "/checkOnSave/extraArgs", extra_args); | 180 | set(value, "/checkOnSave/extraArgs", extra_args); |
| 180 | set(value, "/checkOnSave/command", command); | 181 | set(value, "/checkOnSave/command", command); |
| 181 | set(value, "/checkOnSave/allTargets", all_targets); | 182 | set(value, "/checkOnSave/allTargets", all_targets); |
| 183 | set(value, "/checkOnSave/allFeatures", all_features); | ||
| 182 | } | 184 | } |
| 183 | } | 185 | } |
| 184 | }; | 186 | }; |
