or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

analysis.mdconfiguration.mdeditor-integration.mdformatting.mdindex.mdutilities.md
tile.json

tessl/cargo-dprint

Binary for dprint code formatter—a pluggable and configurable code formatting platform.

Workspace
tessl
Visibility
Public
Created
Last updated
Describes

pkg:cargo/dprint@0.50.x

To install, run

npx @tessl/cli install tessl/cargo-dprint@0.50.0

index.mddocs/

dprint

dprint is a pluggable and configurable code formatting platform that provides comprehensive code formatting capabilities through a powerful command-line interface. It supports multiple programming languages via a plugin architecture and offers advanced features like incremental formatting, LSP integration, and editor services.

Package Information

  • Package Name: dprint
  • Package Type: cargo
  • Language: Rust
  • Installation: cargo install dprint

Core Usage

Installation

# Via Cargo
cargo install dprint

# Via Homebrew (macOS)
brew install dprint

Basic Usage

# Initialize configuration
dprint config init

# Format all files in current directory
dprint fmt

# Check if files are properly formatted
dprint check

# Format specific files
dprint fmt src/*.rs

# Format with diff output
dprint fmt --diff

Architecture

dprint is built around several key components:

  • CLI Interface: Comprehensive command-line tool with subcommands for different operations
  • Plugin System: WebAssembly and process-based plugins for different languages
  • Configuration Engine: Flexible JSON/JSONC configuration with discovery and resolution
  • Incremental Engine: Fast formatting through change detection and caching
  • LSP Server: Language Server Protocol implementation for editor integration
  • Editor Services: Background services for real-time editor integration

Capabilities

Core Formatting Commands

Primary formatting operations for checking and applying code formatting across multiple files and languages.

# Format files (write changes)
dprint fmt [OPTIONS] [FILES...]

# Check formatting (read-only validation)  
dprint check [OPTIONS] [FILES...]

Formatting Commands

Configuration Management

Tools for initializing, updating, and managing dprint configuration files and plugins.

# Initialize new configuration
dprint config init

# Add plugin to configuration
dprint config add [PLUGIN]

# Update existing plugins
dprint config update [--yes]

Configuration

Information and Utility Commands

Commands for version information, help, shell completions, and system utilities.

# Display version information
dprint version

# Show help information
dprint help

# Generate shell completions
dprint completions <SHELL>

# Clear formatting and plugin cache
dprint clear-cache

Utilities

Editor Integration

Advanced services for integrating dprint with code editors through LSP and background services.

# Start Language Server Protocol server
dprint lsp

# Start editor service with parent process monitoring
dprint editor-service <PARENT_PID>

# Output editor integration information
dprint editor-info

Editor Integration

Output and Analysis Commands

Commands for analyzing file patterns, configuration resolution, and performance timing.

# Output files that would be formatted
dprint output-file-paths [OPTIONS] [FILES...]

# Output resolved configuration as JSON
dprint output-resolved-config

# Output timing information for formatting operations
dprint output-format-times [OPTIONS] [FILES...]

Analysis Commands

Global Options

Configuration Options

# Specify configuration file path
--config <PATH>

# Override plugin selection
--plugins <PLUGINS>

# Control configuration discovery
# Environment: DPRINT_CONFIG_DISCOVERY=default|ignore-descendants|false

Logging and Output

# Set logging verbosity
--log-level <LEVEL>    # silent, info, debug, trace
--verbose              # Enable verbose logging

File Pattern Options

# Include specific file patterns (glob support)
--includes <PATTERNS>

# Exclude specific file patterns (glob support)  
--excludes <PATTERNS>

# Allow formatting in node_modules directories
--allow-node-modules

# Only process staged files (git integration)
--staged

Error Handling

dprint uses specific exit codes for different error conditions:

# Exit Code Reference
10  # Argument parsing errors
11  # Configuration resolution errors
12  # Plugin resolution errors  
13  # No plugins found errors
14  # No files found errors
20  # Check command failures (files not formatted)

Types

File Pattern Arguments

struct FilePatternArgs {
    include_patterns: Vec<String>,
    include_pattern_overrides: Option<Vec<String>>,
    exclude_patterns: Vec<String>, 
    exclude_pattern_overrides: Option<Vec<String>>,
    allow_node_modules: bool,
    only_staged: bool,
}

Configuration Discovery

enum ConfigDiscovery {
    Default,           // Search ancestors and descendants
    IgnoreDescendants, // Search ancestors only  
    Disabled,          // No automatic discovery
}