mirror of
https://github.com/astral-sh/ruff.git
synced 2025-08-14 23:51:03 +00:00
Add most formatter options to ruff.toml
/ pyproject.toml
(#7566)
This commit is contained in:
parent
82978ac9b5
commit
9d16e46129
24 changed files with 734 additions and 145 deletions
|
@ -17,7 +17,6 @@ use crate::comments::{
|
|||
pub use crate::context::PyFormatContext;
|
||||
pub use crate::options::{MagicTrailingComma, PreviewMode, PyFormatOptions, QuoteStyle};
|
||||
use crate::verbatim::suppressed_node;
|
||||
pub use settings::FormatterSettings;
|
||||
|
||||
pub(crate) mod builders;
|
||||
pub mod cli;
|
||||
|
@ -30,7 +29,6 @@ mod options;
|
|||
pub(crate) mod other;
|
||||
pub(crate) mod pattern;
|
||||
mod prelude;
|
||||
mod settings;
|
||||
pub(crate) mod statement;
|
||||
pub(crate) mod type_param;
|
||||
mod verbatim;
|
||||
|
|
|
@ -5,8 +5,8 @@ use ruff_python_ast::PySourceType;
|
|||
use std::path::Path;
|
||||
use std::str::FromStr;
|
||||
|
||||
/// Resolved options for formatting one individual file. This is different from [`crate::FormatterSettings`] which
|
||||
/// represents the formatting settings for multiple files (the whole project, a subdirectory, ...)
|
||||
/// Resolved options for formatting one individual file. The difference to `FormatterSettings`
|
||||
/// is that `FormatterSettings` stores the settings for multiple files (the entire project, a subdirectory, ..)
|
||||
#[derive(Clone, Debug)]
|
||||
#[cfg_attr(
|
||||
feature = "serde",
|
||||
|
@ -185,6 +185,7 @@ impl FormatOptions for PyFormatOptions {
|
|||
derive(serde::Serialize, serde::Deserialize),
|
||||
serde(rename_all = "kebab-case")
|
||||
)]
|
||||
#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
|
||||
pub enum QuoteStyle {
|
||||
Single,
|
||||
#[default]
|
||||
|
|
|
@ -1,49 +0,0 @@
|
|||
use std::path::PathBuf;
|
||||
|
||||
use ruff_formatter::{FormatOptions, IndentStyle, LineWidth};
|
||||
use ruff_macros::CacheKey;
|
||||
use ruff_python_ast::PySourceType;
|
||||
|
||||
use crate::{MagicTrailingComma, PreviewMode, PyFormatOptions, QuoteStyle};
|
||||
|
||||
#[derive(CacheKey, Clone, Debug)]
|
||||
pub struct FormatterSettings {
|
||||
/// The files that are excluded from formatting (but may be linted).
|
||||
pub exclude: Vec<PathBuf>,
|
||||
|
||||
pub preview: PreviewMode,
|
||||
|
||||
pub line_width: LineWidth,
|
||||
|
||||
pub indent_style: IndentStyle,
|
||||
|
||||
pub quote_style: QuoteStyle,
|
||||
|
||||
pub magic_trailing_comma: MagicTrailingComma,
|
||||
}
|
||||
|
||||
impl FormatterSettings {
|
||||
pub fn to_format_options(&self, source_type: PySourceType) -> PyFormatOptions {
|
||||
PyFormatOptions::from_source_type(source_type)
|
||||
.with_indent_style(self.indent_style)
|
||||
.with_quote_style(self.quote_style)
|
||||
.with_magic_trailing_comma(self.magic_trailing_comma)
|
||||
.with_preview(self.preview)
|
||||
.with_line_width(self.line_width)
|
||||
}
|
||||
}
|
||||
|
||||
impl Default for FormatterSettings {
|
||||
fn default() -> Self {
|
||||
let default_options = PyFormatOptions::default();
|
||||
|
||||
Self {
|
||||
exclude: Vec::default(),
|
||||
preview: PreviewMode::Disabled,
|
||||
line_width: default_options.line_width(),
|
||||
indent_style: default_options.indent_style(),
|
||||
quote_style: default_options.quote_style(),
|
||||
magic_trailing_comma: default_options.magic_trailing_comma(),
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue