File tree Expand file tree Collapse file tree 4 files changed +13
-5
lines changed
Expand file tree Collapse file tree 4 files changed +13
-5
lines changed Original file line number Diff line number Diff line change @@ -21,6 +21,12 @@ pub fn extractor_cli_config(_attr: TokenStream, item: TokenStream) -> TokenStrea
2121 #id: bool ,
2222 } ;
2323 }
24+ if p. path . segments . len ( ) == 1 && p. path . segments [ 0 ] . ident == "Option" {
25+ return quote ! {
26+ #[ arg( long) ]
27+ #id: #ty,
28+ } ;
29+ }
2430 }
2531 if id == & format_ident ! ( "verbose" ) {
2632 quote ! {
Original file line number Diff line number Diff line change @@ -37,6 +37,7 @@ pub struct Config {
3737 pub scratch_dir : PathBuf ,
3838 pub trap_dir : PathBuf ,
3939 pub source_archive_dir : PathBuf ,
40+ pub target_dir : Option < PathBuf > ,
4041 pub extract_dependencies : bool ,
4142 pub verbose : u8 ,
4243 pub compression : Compression ,
Original file line number Diff line number Diff line change @@ -130,8 +130,11 @@ fn main() -> anyhow::Result<()> {
130130 }
131131 extractor. extract_without_semantics ( file, "no manifest found" ) ;
132132 }
133+ let target_dir = & cfg
134+ . target_dir
135+ . unwrap_or_else ( || cfg. scratch_dir . join ( "target" ) ) ;
133136 for ( manifest, files) in map. values ( ) . filter ( |( _, files) | !files. is_empty ( ) ) {
134- if let Some ( ( ref db, ref vfs) ) = RustAnalyzer :: load_workspace ( manifest, & cfg . scratch_dir ) {
137+ if let Some ( ( ref db, ref vfs) ) = RustAnalyzer :: load_workspace ( manifest, target_dir ) {
135138 let semantics = Semantics :: new ( db) ;
136139 for file in files {
137140 let Some ( id) = path_to_file_id ( file, vfs) else {
Original file line number Diff line number Diff line change @@ -45,13 +45,11 @@ pub struct ParseResult<'a> {
4545impl < ' a > RustAnalyzer < ' a > {
4646 pub fn load_workspace (
4747 project : & ProjectManifest ,
48- scratch_dir : & Path ,
48+ target_dir : & Path ,
4949 ) -> Option < ( RootDatabase , Vfs ) > {
5050 let config = CargoConfig {
5151 sysroot : Some ( RustLibSource :: Discover ) ,
52- target_dir : ra_ap_paths:: Utf8PathBuf :: from_path_buf ( scratch_dir. to_path_buf ( ) )
53- . map ( |x| x. join ( "target" ) )
54- . ok ( ) ,
52+ target_dir : ra_ap_paths:: Utf8PathBuf :: from_path_buf ( target_dir. to_path_buf ( ) ) . ok ( ) ,
5553 ..Default :: default ( )
5654 } ;
5755 let progress = |t| ( log:: trace!( "progress: {}" , t) ) ;
You can’t perform that action at this time.
0 commit comments