diff options
Diffstat (limited to 'crates/ra_lsp_server/src/project_model')
-rw-r--r-- | crates/ra_lsp_server/src/project_model/cargo_workspace.rs | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/crates/ra_lsp_server/src/project_model/cargo_workspace.rs b/crates/ra_lsp_server/src/project_model/cargo_workspace.rs index 8f7518860..75ae78bca 100644 --- a/crates/ra_lsp_server/src/project_model/cargo_workspace.rs +++ b/crates/ra_lsp_server/src/project_model/cargo_workspace.rs | |||
@@ -1,6 +1,6 @@ | |||
1 | use std::path::{Path, PathBuf}; | 1 | use std::path::{Path, PathBuf}; |
2 | 2 | ||
3 | use cargo_metadata::{metadata_run, CargoOpt}; | 3 | use cargo_metadata::{MetadataCommand, CargoOpt}; |
4 | use ra_syntax::SmolStr; | 4 | use ra_syntax::SmolStr; |
5 | use ra_arena::{Arena, RawId, impl_arena_id}; | 5 | use ra_arena::{Arena, RawId, impl_arena_id}; |
6 | use rustc_hash::FxHashMap; | 6 | use rustc_hash::FxHashMap; |
@@ -117,7 +117,10 @@ impl Target { | |||
117 | 117 | ||
118 | impl CargoWorkspace { | 118 | impl CargoWorkspace { |
119 | pub fn from_cargo_metadata(cargo_toml: &Path) -> Result<CargoWorkspace> { | 119 | pub fn from_cargo_metadata(cargo_toml: &Path) -> Result<CargoWorkspace> { |
120 | let meta = metadata_run(Some(cargo_toml), true, Some(CargoOpt::AllFeatures)) | 120 | let meta = MetadataCommand::new() |
121 | .manifest_path(cargo_toml) | ||
122 | .features(CargoOpt::AllFeatures) | ||
123 | .exec() | ||
121 | .map_err(|e| format_err!("cargo metadata failed: {}", e))?; | 124 | .map_err(|e| format_err!("cargo metadata failed: {}", e))?; |
122 | let mut pkg_by_id = FxHashMap::default(); | 125 | let mut pkg_by_id = FxHashMap::default(); |
123 | let mut packages = Arena::default(); | 126 | let mut packages = Arena::default(); |