mirror of
https://github.com/astral-sh/ruff.git
synced 2025-07-24 05:25:17 +00:00
Use real file path when available in ruff server
(#11800)
## Summary As-is, we're using the URL path for all files, leading us to use paths like: ``` /c%3A/Users/crmar/workspace/fastapi/tests/main.py ``` This doesn't match against per-file ignores and other patterns in Ruff configuration. This PR modifies the LSP to use the real file path if available, and the virtual file path if not. Closes https://github.com/astral-sh/ruff/issues/11751. ## Test Plan Ran the LSP on Windows. In the FastAPI repo, added: ```toml [tool.ruff.lint.per-file-ignores] "tests/**/*.py" = ["F401"] ``` And verified that an unused import was ignored in `tests` after this change, but not before.
This commit is contained in:
parent
32ca704956
commit
ee1621b2f9
3 changed files with 13 additions and 9 deletions
|
@ -1,8 +1,12 @@
|
|||
use std::borrow::Cow;
|
||||
use std::path::PathBuf;
|
||||
use std::{collections::BTreeMap, path::Path, sync::Arc};
|
||||
|
||||
use anyhow::anyhow;
|
||||
use lsp_types::Url;
|
||||
use rustc_hash::FxHashMap;
|
||||
use std::path::PathBuf;
|
||||
use std::{collections::BTreeMap, path::Path, sync::Arc};
|
||||
|
||||
pub(crate) use ruff_settings::RuffSettings;
|
||||
|
||||
use crate::{
|
||||
edit::{DocumentKey, DocumentVersion, NotebookDocument},
|
||||
|
@ -13,8 +17,6 @@ use super::{settings::ResolvedClientSettings, ClientSettings};
|
|||
|
||||
mod ruff_settings;
|
||||
|
||||
pub(crate) use ruff_settings::RuffSettings;
|
||||
|
||||
type SettingsIndex = BTreeMap<PathBuf, WorkspaceSettings>;
|
||||
|
||||
/// Stores and tracks all open documents in a session, along with their associated settings.
|
||||
|
@ -544,8 +546,10 @@ impl DocumentQuery {
|
|||
/// Get the path for the document selected by this query, ignoring whether the file exists on disk.
|
||||
///
|
||||
/// Returns the URL's path if this is an unsaved (untitled) document.
|
||||
pub(crate) fn virtual_file_path(&self) -> &Path {
|
||||
Path::new(self.file_url().path())
|
||||
pub(crate) fn virtual_file_path(&self) -> Cow<Path> {
|
||||
self.file_path()
|
||||
.map(Cow::Owned)
|
||||
.unwrap_or_else(|| Cow::Borrowed(Path::new(self.file_url().path())))
|
||||
}
|
||||
|
||||
/// Attempt to access the single inner text document selected by the query.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue