pub struct MD055TablePipeStyle { /* private fields */ }Expand description
Rule MD055: Table pipe style
See docs/md055.md for full documentation, configuration, and examples.
This rule enforces consistent use of leading and trailing pipe characters in Markdown tables, which improves readability and ensures uniform document styling.
§Purpose
- Consistency: Ensures uniform table formatting throughout documents
- Readability: Well-formatted tables are easier to read and understand
- Maintainability: Consistent table syntax makes documents easier to maintain
- Compatibility: Some Markdown processors handle different table styles differently
§Configuration Options
The rule supports the following configuration options:
MD055:
style: "consistent" # Can be "consistent", "leading_and_trailing", or "no_leading_or_trailing"§Style Options
- consistent: All tables must use the same style (default)
- leading_and_trailing: All tables must have both leading and trailing pipes
- no_leading_or_trailing: Tables must not have leading or trailing pipes
§Examples
§Leading and Trailing Pipes
| Header 1 | Header 2 | Header 3 |
|----------|----------|----------|
| Cell 1 | Cell 2 | Cell 3 |
| Cell 4 | Cell 5 | Cell 6 |§No Leading or Trailing Pipes
Header 1 | Header 2 | Header 3
---------|----------|---------
Cell 1 | Cell 2 | Cell 3
Cell 4 | Cell 5 | Cell 6§Behavior Details
- The rule analyzes each table in the document to determine its pipe style
- With “consistent” style, the first table’s style is used as the standard for all others
- The rule handles both the header row, separator row, and content rows
- Tables inside code blocks are ignored
§Fix Behavior
When applying automatic fixes, this rule:
- Adds or removes leading and trailing pipes as needed
- Preserves the content and alignment of table cells
- Maintains proper spacing around pipe characters
- Updates both header and content rows to match the required style
§Performance Considerations
The rule includes performance optimizations:
- Efficient table detection with quick checks before detailed analysis
- Smart line-by-line processing to avoid redundant operations
- Optimized string manipulation for pipe character handling
Enforces consistent use of leading and trailing pipe characters in tables
Implementations§
Source§impl MD055TablePipeStyle
impl MD055TablePipeStyle
pub fn new(style: String) -> Self
pub fn from_config_struct(config: MD055Config) -> Self
Trait Implementations§
Source§impl Clone for MD055TablePipeStyle
impl Clone for MD055TablePipeStyle
Source§fn clone(&self) -> MD055TablePipeStyle
fn clone(&self) -> MD055TablePipeStyle
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for MD055TablePipeStyle
impl Debug for MD055TablePipeStyle
Source§impl Default for MD055TablePipeStyle
impl Default for MD055TablePipeStyle
Source§fn default() -> MD055TablePipeStyle
fn default() -> MD055TablePipeStyle
Returns the “default value” for a type. Read more
Source§impl Rule for MD055TablePipeStyle
impl Rule for MD055TablePipeStyle
fn name(&self) -> &'static str
fn description(&self) -> &'static str
Source§fn should_skip(&self, ctx: &LintContext<'_>) -> bool
fn should_skip(&self, ctx: &LintContext<'_>) -> bool
Check if this rule should quickly skip processing based on content
fn check(&self, ctx: &LintContext<'_>) -> LintResult
fn fix(&self, ctx: &LintContext<'_>) -> Result<String, LintError>
fn as_any(&self) -> &dyn Any
Source§fn default_config_section(&self) -> Option<(String, Value)>
fn default_config_section(&self) -> Option<(String, Value)>
Returns the rule name and default config table if the rule has config.
If a rule implements this, it MUST be defined on the
impl Rule for ... block,
not just the inherent impl.Source§fn from_config(config: &Config) -> Box<dyn Rule>where
Self: Sized,
fn from_config(config: &Config) -> Box<dyn Rule>where
Self: Sized,
Factory: create a rule from config (if present), or use defaults.
Source§fn category(&self) -> RuleCategory
fn category(&self) -> RuleCategory
Get the category of this rule for selective processing
Source§fn config_aliases(&self) -> Option<HashMap<String, String>>
fn config_aliases(&self) -> Option<HashMap<String, String>>
Returns config key aliases for this rule
This allows rules to accept alternative config key names for backwards compatibility
Source§fn fix_capability(&self) -> FixCapability
fn fix_capability(&self) -> FixCapability
Declares the fix capability of this rule
Source§fn cross_file_scope(&self) -> CrossFileScope
fn cross_file_scope(&self) -> CrossFileScope
Declares cross-file analysis requirements for this rule Read more
Source§fn contribute_to_index(
&self,
_ctx: &LintContext<'_>,
_file_index: &mut FileIndex,
)
fn contribute_to_index( &self, _ctx: &LintContext<'_>, _file_index: &mut FileIndex, )
Contribute data to the workspace index during linting Read more
Source§fn cross_file_check(
&self,
_file_path: &Path,
_file_index: &FileIndex,
_workspace_index: &WorkspaceIndex,
) -> LintResult
fn cross_file_check( &self, _file_path: &Path, _file_index: &FileIndex, _workspace_index: &WorkspaceIndex, ) -> LintResult
Perform cross-file validation after all files have been linted Read more
Auto Trait Implementations§
impl Freeze for MD055TablePipeStyle
impl RefUnwindSafe for MD055TablePipeStyle
impl Send for MD055TablePipeStyle
impl Sync for MD055TablePipeStyle
impl Unpin for MD055TablePipeStyle
impl UnwindSafe for MD055TablePipeStyle
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more