mirror of https://github.com/astral-sh/ruff
[ty] Add truncation policy for displaying overloads on single line
This commit is contained in:
parent
76ffc56e85
commit
3420cdda09
|
|
@ -746,13 +746,23 @@ impl<'db> FmtDetailed<'db> for DisplayRepresentation<'db> {
|
||||||
}
|
}
|
||||||
let separator = if self.settings.multiline { "\n" } else { ", " };
|
let separator = if self.settings.multiline { "\n" } else { ", " };
|
||||||
let mut join = f.join(separator);
|
let mut join = f.join(separator);
|
||||||
for signature in signatures {
|
let display_limit = OVERLOAD_POLICY
|
||||||
|
.display_limit(signatures.len(), self.settings.multiline);
|
||||||
|
for signature in signatures.iter().take(display_limit) {
|
||||||
join.entry(
|
join.entry(
|
||||||
&signature
|
&signature
|
||||||
.bind_self(self.db, Some(typing_self_ty))
|
.bind_self(self.db, Some(typing_self_ty))
|
||||||
.display_with(self.db, self.settings.clone()),
|
.display_with(self.db, self.settings.clone()),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
if !self.settings.multiline {
|
||||||
|
let omitted = signatures.len().saturating_sub(display_limit);
|
||||||
|
join.entry(&DisplayOmitted {
|
||||||
|
count: omitted,
|
||||||
|
singular: "overload",
|
||||||
|
plural: "overloads",
|
||||||
|
});
|
||||||
|
}
|
||||||
join.finish()?;
|
join.finish()?;
|
||||||
if !self.settings.multiline {
|
if !self.settings.multiline {
|
||||||
f.write_str("]")?;
|
f.write_str("]")?;
|
||||||
|
|
@ -1152,9 +1162,19 @@ impl<'db> FmtDetailed<'db> for DisplayFunctionType<'db> {
|
||||||
}
|
}
|
||||||
let separator = if self.settings.multiline { "\n" } else { ", " };
|
let separator = if self.settings.multiline { "\n" } else { ", " };
|
||||||
let mut join = f.join(separator);
|
let mut join = f.join(separator);
|
||||||
for signature in signatures {
|
let display_limit =
|
||||||
|
OVERLOAD_POLICY.display_limit(signatures.len(), self.settings.multiline);
|
||||||
|
for signature in signatures.iter().take(display_limit) {
|
||||||
join.entry(&signature.display_with(self.db, self.settings.clone()));
|
join.entry(&signature.display_with(self.db, self.settings.clone()));
|
||||||
}
|
}
|
||||||
|
if !self.settings.multiline {
|
||||||
|
let omitted = signatures.len().saturating_sub(display_limit);
|
||||||
|
join.entry(&DisplayOmitted {
|
||||||
|
count: omitted,
|
||||||
|
singular: "overload",
|
||||||
|
plural: "overloads",
|
||||||
|
});
|
||||||
|
}
|
||||||
join.finish()?;
|
join.finish()?;
|
||||||
if !self.settings.multiline {
|
if !self.settings.multiline {
|
||||||
f.write_str("]")?;
|
f.write_str("]")?;
|
||||||
|
|
@ -1470,6 +1490,11 @@ impl TupleSpecialization {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const OVERLOAD_POLICY: TruncationPolicy = TruncationPolicy {
|
||||||
|
max: 3,
|
||||||
|
max_when_elided: 2,
|
||||||
|
};
|
||||||
|
|
||||||
impl<'db> CallableType<'db> {
|
impl<'db> CallableType<'db> {
|
||||||
pub(crate) fn display<'a>(&'a self, db: &'db dyn Db) -> DisplayCallableType<'a, 'db> {
|
pub(crate) fn display<'a>(&'a self, db: &'db dyn Db) -> DisplayCallableType<'a, 'db> {
|
||||||
Self::display_with(self, db, DisplaySettings::default())
|
Self::display_with(self, db, DisplaySettings::default())
|
||||||
|
|
@ -1521,9 +1546,19 @@ impl<'db> FmtDetailed<'db> for DisplayCallableType<'_, 'db> {
|
||||||
}
|
}
|
||||||
let separator = if self.settings.multiline { "\n" } else { ", " };
|
let separator = if self.settings.multiline { "\n" } else { ", " };
|
||||||
let mut join = f.join(separator);
|
let mut join = f.join(separator);
|
||||||
for signature in signatures {
|
let display_limit =
|
||||||
|
OVERLOAD_POLICY.display_limit(signatures.len(), self.settings.multiline);
|
||||||
|
for signature in signatures.iter().take(display_limit) {
|
||||||
join.entry(&signature.display_with(self.db, self.settings.clone()));
|
join.entry(&signature.display_with(self.db, self.settings.clone()));
|
||||||
}
|
}
|
||||||
|
if !self.settings.multiline {
|
||||||
|
let omitted = signatures.len().saturating_sub(display_limit);
|
||||||
|
join.entry(&DisplayOmitted {
|
||||||
|
count: omitted,
|
||||||
|
singular: "overload",
|
||||||
|
plural: "overloads",
|
||||||
|
});
|
||||||
|
}
|
||||||
join.finish()?;
|
join.finish()?;
|
||||||
if !self.settings.multiline {
|
if !self.settings.multiline {
|
||||||
f.write_char(']')?;
|
f.write_char(']')?;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue