diff --git a/Cargo.lock b/Cargo.lock index 1a25626a00..216e3f115a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -633,7 +633,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c" dependencies = [ "lazy_static", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -642,7 +642,7 @@ version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fde0e0ec90c9dfb3b4b1a0891a7dcd0e2bffde2f7efed5fe7c9bb00e5bfb915e" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -1007,7 +1007,7 @@ dependencies = [ "libc", "option-ext", "redox_users", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -1093,7 +1093,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -1523,9 +1523,9 @@ dependencies = [ [[package]] name = "ignore" -version = "0.4.23" +version = "0.4.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d89fd380afde86567dfba715db065673989d6253f42b88179abd3eae47bda4b" +checksum = "81776e6f9464432afcc28d03e52eb101c93b6f0566f52aef2427663e700f0403" dependencies = [ "crossbeam-deque", "globset", @@ -1690,7 +1690,7 @@ checksum = "e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9" dependencies = [ "hermit-abi", "libc", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -1754,7 +1754,7 @@ dependencies = [ "portable-atomic", "portable-atomic-util", "serde", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -3545,7 +3545,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -3941,7 +3941,7 @@ dependencies = [ "getrandom 0.3.4", "once_cell", "rustix", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -5021,7 +5021,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] diff --git a/crates/ruff_db/src/system/os.rs b/crates/ruff_db/src/system/os.rs index b9f7e6e3db..92513b72d8 100644 --- a/crates/ruff_db/src/system/os.rs +++ b/crates/ruff_db/src/system/os.rs @@ -200,7 +200,12 @@ impl System for OsSystem { /// The walker ignores files according to [`ignore::WalkBuilder::standard_filters`] /// when setting [`WalkDirectoryBuilder::standard_filters`] to true. fn walk_directory(&self, path: &SystemPath) -> WalkDirectoryBuilder { - WalkDirectoryBuilder::new(path, OsDirectoryWalker {}) + WalkDirectoryBuilder::new( + path, + OsDirectoryWalker { + cwd: self.current_directory().to_path_buf(), + }, + ) } fn glob( @@ -454,7 +459,9 @@ struct ListedDirectory { } #[derive(Debug)] -struct OsDirectoryWalker; +struct OsDirectoryWalker { + cwd: SystemPathBuf, +} impl DirectoryWalker for OsDirectoryWalker { fn walk( @@ -473,6 +480,7 @@ impl DirectoryWalker for OsDirectoryWalker { }; let mut builder = ignore::WalkBuilder::new(first.as_std_path()); + builder.current_dir(self.cwd.as_std_path()); builder.standard_filters(standard_filters); builder.hidden(hidden); diff --git a/crates/ruff_server/src/session/index/ruff_settings.rs b/crates/ruff_server/src/session/index/ruff_settings.rs index 93dc739d87..7fc1a99ad9 100644 --- a/crates/ruff_server/src/session/index/ruff_settings.rs +++ b/crates/ruff_server/src/session/index/ruff_settings.rs @@ -255,6 +255,10 @@ impl RuffSettingsIndex { // Add any settings within the workspace itself let mut builder = WalkBuilder::new(root); + if let Ok(cwd) = std::env::current_dir() { + builder.current_dir(cwd); + } + builder.standard_filters( respect_gitignore.unwrap_or_else(|| fallback.file_resolver.respect_gitignore), ); diff --git a/crates/ruff_workspace/src/resolver.rs b/crates/ruff_workspace/src/resolver.rs index 1452583fcd..1740cc184a 100644 --- a/crates/ruff_workspace/src/resolver.rs +++ b/crates/ruff_workspace/src/resolver.rs @@ -480,6 +480,11 @@ pub fn python_files_in_path<'a>( .ok_or_else(|| anyhow!("Expected at least one path to search for Python files"))?; // Create the `WalkBuilder`. let mut builder = WalkBuilder::new(first_path); + + if let Ok(cwd) = std::env::current_dir() { + builder.current_dir(cwd); + } + for path in rest_paths { builder.add(path); }