mirror of
https://github.com/astral-sh/ruff.git
synced 2025-07-24 05:25:17 +00:00
Format Identifier (#5255)
This commit is contained in:
parent
6155fd647d
commit
e47aa468d5
4 changed files with 33 additions and 13 deletions
|
@ -1,7 +1,6 @@
|
||||||
use crate::prelude::*;
|
use crate::prelude::*;
|
||||||
use crate::FormatNodeRule;
|
use crate::FormatNodeRule;
|
||||||
use ruff_formatter::write;
|
use ruff_formatter::write;
|
||||||
use ruff_text_size::{TextLen, TextRange};
|
|
||||||
use rustpython_parser::ast::Arg;
|
use rustpython_parser::ast::Arg;
|
||||||
|
|
||||||
#[derive(Default)]
|
#[derive(Default)]
|
||||||
|
@ -10,21 +9,13 @@ pub struct FormatArg;
|
||||||
impl FormatNodeRule<Arg> for FormatArg {
|
impl FormatNodeRule<Arg> for FormatArg {
|
||||||
fn fmt_fields(&self, item: &Arg, f: &mut PyFormatter) -> FormatResult<()> {
|
fn fmt_fields(&self, item: &Arg, f: &mut PyFormatter) -> FormatResult<()> {
|
||||||
let Arg {
|
let Arg {
|
||||||
range,
|
range: _,
|
||||||
arg,
|
arg,
|
||||||
annotation,
|
annotation,
|
||||||
type_comment: _,
|
type_comment: _,
|
||||||
} = item;
|
} = item;
|
||||||
write!(
|
|
||||||
f,
|
arg.format().fmt(f)?;
|
||||||
[
|
|
||||||
// The name of the argument
|
|
||||||
source_text_slice(
|
|
||||||
TextRange::at(range.start(), arg.text_len()),
|
|
||||||
ContainsNewlines::No
|
|
||||||
)
|
|
||||||
]
|
|
||||||
)?;
|
|
||||||
|
|
||||||
if let Some(annotation) = annotation {
|
if let Some(annotation) = annotation {
|
||||||
write!(f, [text(":"), space(), annotation.format()])?;
|
write!(f, [text(":"), space(), annotation.format()])?;
|
||||||
|
|
28
crates/ruff_python_formatter/src/other/identifier.rs
Normal file
28
crates/ruff_python_formatter/src/other/identifier.rs
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
use crate::prelude::*;
|
||||||
|
use crate::AsFormat;
|
||||||
|
use ruff_formatter::{FormatOwnedWithRule, FormatRefWithRule};
|
||||||
|
use rustpython_parser::ast::{Identifier, Ranged};
|
||||||
|
|
||||||
|
pub struct FormatIdentifier;
|
||||||
|
|
||||||
|
impl FormatRule<Identifier, PyFormatContext<'_>> for FormatIdentifier {
|
||||||
|
fn fmt(&self, item: &Identifier, f: &mut PyFormatter) -> FormatResult<()> {
|
||||||
|
source_text_slice(item.range(), ContainsNewlines::No).fmt(f)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<'ast> AsFormat<PyFormatContext<'ast>> for Identifier {
|
||||||
|
type Format<'a> = FormatRefWithRule<'a, Identifier, FormatIdentifier, PyFormatContext<'ast>>;
|
||||||
|
|
||||||
|
fn format(&self) -> Self::Format<'_> {
|
||||||
|
FormatRefWithRule::new(self, FormatIdentifier)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<'ast> IntoFormat<PyFormatContext<'ast>> for Identifier {
|
||||||
|
type Format = FormatOwnedWithRule<Identifier, FormatIdentifier, PyFormatContext<'ast>>;
|
||||||
|
|
||||||
|
fn into_format(self) -> Self::Format {
|
||||||
|
FormatOwnedWithRule::new(self, FormatIdentifier)
|
||||||
|
}
|
||||||
|
}
|
|
@ -5,6 +5,7 @@ pub(crate) mod arguments;
|
||||||
pub(crate) mod comprehension;
|
pub(crate) mod comprehension;
|
||||||
pub(crate) mod decorator;
|
pub(crate) mod decorator;
|
||||||
pub(crate) mod except_handler_except_handler;
|
pub(crate) mod except_handler_except_handler;
|
||||||
|
pub(crate) mod identifier;
|
||||||
pub(crate) mod keyword;
|
pub(crate) mod keyword;
|
||||||
pub(crate) mod match_case;
|
pub(crate) mod match_case;
|
||||||
pub(crate) mod type_ignore_type_ignore;
|
pub(crate) mod type_ignore_type_ignore;
|
||||||
|
|
|
@ -85,7 +85,7 @@ impl FormatRule<AnyFunctionDefinition<'_>, PyFormatContext<'_>> for FormatAnyFun
|
||||||
[
|
[
|
||||||
text("def"),
|
text("def"),
|
||||||
space(),
|
space(),
|
||||||
dynamic_text(name.as_str(), None),
|
name.format(),
|
||||||
item.arguments().format(),
|
item.arguments().format(),
|
||||||
]
|
]
|
||||||
)?;
|
)?;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue