Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Display and Output Configuration

This chapter covers configuration options that control how debtmap displays analysis results and formats output. These settings affect terminal rendering, verbosity levels, color modes, and evidence display for multi-signal classification.

Quick Reference

Key display and output configuration options (from src/config/display.rs):

ConfigurationDefaultPurpose
Display Settings
tieredtrueUse tiered priority display
items_per_tier5Items shown per priority tier
verbositydetailedOutput verbosity level
Output Settings
evidence_verbosityminimalMulti-signal evidence detail
min_confidence_warning0.80Minimum confidence for warnings
Color Mode
colorautoColor output control
Formatting
show_splitsfalseShow god object split recommendations
max_callers5Maximum callers to display
max_callees5Maximum callees to display

Display Settings

The [display] section controls how analysis results are organized and presented. These settings are defined in the DisplayConfig struct (src/config/display.rs:56-68).

Basic Display Configuration

[display]
# Use tiered priority display for organizing results
tiered = true

# Maximum items to show per tier
items_per_tier = 5

# Verbosity level (summary, detailed, comprehensive)
verbosity = "detailed"

Verbosity Levels

The VerbosityLevel enum (src/config/display.rs:7-15) controls how much detail appears in output:

LevelDescriptionUse Case
summaryEssential information onlyQuick health checks
detailedIncludes module structure detailsNormal development use
comprehensiveAll available analysis dataDebugging and deep analysis

Example:

[display]
# Summary mode - minimal output
verbosity = "summary"
[display]
# Comprehensive mode - all details
verbosity = "comprehensive"

The default is detailed, which provides a balance between information density and readability.

Tiered Priority Display

When tiered = true, debtmap organizes debt items by priority tier (Critical, High, Medium, Low) and limits output to items_per_tier items per tier:

[display]
tiered = true
items_per_tier = 10  # Show up to 10 items per tier

This prevents output from being overwhelming when analyzing large codebases with many debt items.

Output Format Configuration

The format field in [display] sets the default output format:

[display]
# Default output format (terminal, json, markdown, html)
format = "terminal"

Available formats (from src/cli/args.rs:574-583):

FormatDescription
terminalInteractive colored output for terminals
jsonMachine-readable structured data
markdownDocumentation-friendly reports
htmlInteractive web dashboard
dotGraphviz DOT format for dependency visualization

See Output Formats for detailed format documentation.

Color and Terminal Options

Color Mode

The ColorMode enum (src/formatting/mod.rs:6-11) controls color output:

ModeBehavior
autoDetect terminal color support automatically
alwaysForce colors on (even when piping)
neverDisable colors entirely
[display]
# Color configuration is typically handled via CLI or environment
# but can be set in config
plain = false  # false = colors enabled (when supported)

Environment Variable Controls

Debtmap respects standard environment variables for color control (src/formatting/mod.rs:67-90):

VariableEffect
NO_COLORIf set, disables colors (per no-color.org)
CLICOLOR=0Disables colors
CLICOLOR_FORCE=1Forces colors even when not a TTY
TERM=dumbDisables colors for dumb terminals

Precedence (highest to lowest):

  1. CLICOLOR_FORCE=1 - Forces colors on
  2. NO_COLOR or CLICOLOR=0 - Disables colors
  3. Terminal detection - Auto-detect based on TTY status

Plain Mode

For environments without color support or when piping output:

[display]
plain = true  # ASCII-only, no colors, no emoji

Or via CLI: debtmap analyze . --plain

Evidence Display Configuration

Multi-signal classification produces evidence that can be displayed at varying levels of detail. The OutputConfig struct (src/config/display.rs:122-145) controls evidence output.

Evidence Verbosity

The EvidenceVerbosity enum (src/config/display.rs:18-30) maps to -v flag counts:

Level-v CountDescription
minimal0Category and confidence only
standard1Signal summary
verbose2Detailed breakdown
very_verbose3All signals including low-weight ones
[output]
# Set evidence verbosity in config
evidence_verbosity = "standard"

# Minimum confidence for showing warnings
min_confidence_warning = 0.80

Signal Filters

The SignalFilterConfig (src/config/display.rs:152-190) controls which classification signals appear in output:

[output.signal_filters]
# Show I/O detection signal
show_io_detection = true

# Show call graph signal
show_call_graph = true

# Show type signatures signal
show_type_signatures = true

# Show purity signal
show_purity = true

# Show framework signal
show_framework = true

# Show name heuristics signal (low weight, hidden by default)
show_name_heuristics = false

Signal Filter Defaults:

FilterDefaultPurpose
show_io_detectiontrueI/O operation detection signals
show_call_graphtrueCall graph analysis signals
show_type_signaturestrueType signature analysis
show_puritytrueFunction purity classification
show_frameworktrueFramework pattern detection
show_name_heuristicsfalseLow-weight naming heuristics

Name heuristics are hidden by default because they are a low-weight fallback signal.

Formatting Configuration

The FormattingConfig struct (src/formatting/mod.rs:32-48) controls advanced formatting options.

Caller/Callee Display

Configure how call graph relationships are displayed:

[display.formatting]
# Maximum number of callers to display per function
max_callers = 5

# Maximum number of callees to display per function
max_callees = 5

# Show calls to external crates
show_external = false

# Show standard library calls
show_std_lib = false

These settings are defined in CallerCalleeConfig (src/config/classification.rs:7-23).

Show Splits

Enable detailed god object module split recommendations:

[display.formatting]
# Show detailed module split recommendations
show_splits = false

When enabled, debtmap provides specific recommendations for breaking down god objects into smaller modules. This is defined in FormattingConfig (src/formatting/mod.rs:36-37).

Complete Configuration Example

Here’s a complete [display] configuration section showing all options:

# Display and output configuration
[display]
# Output format (terminal, json, markdown, html)
format = "terminal"

# Verbosity level (0-3 or named: summary, detailed, comprehensive)
verbosity = "detailed"

# Use compact output format
compact = false

# Use summary format with tiered priority display
summary = false

# Enable tiered priority display
tiered = true

# Items per priority tier
items_per_tier = 5

# Group output by debt category
group_by_category = false

# Show complexity attribution details
show_attribution = false

# Detail level (summary, standard, comprehensive, debug)
detail_level = "standard"

# Disable TUI progress visualization
no_tui = false

# Plain output mode (ASCII-only, no colors, no emoji)
plain = false

# Formatting options
[display.formatting]
# Show dependency information (callers/callees)
show_dependencies = false

# Maximum callers to display
max_callers = 5

# Maximum callees to display
max_callees = 5

# Show external crate calls
show_external = false

# Show standard library calls
show_std_lib = false

# Show god object split recommendations
show_splits = false

# Evidence and output configuration
[output]
# Evidence verbosity for multi-signal classification
evidence_verbosity = "minimal"

# Minimum confidence for showing warnings (0.0-1.0)
min_confidence_warning = 0.80

# Signal filters for evidence display
[output.signal_filters]
show_io_detection = true
show_call_graph = true
show_type_signatures = true
show_purity = true
show_framework = true
show_name_heuristics = false

CLI Flag Overrides

Many display settings can be overridden via CLI flags:

Config OptionCLI Flag
format-f, --format
plain--plain
verbosity-v (repeatable)
summary--summary
compact--compact
show_dependencies--show-dependencies
show_splits--show-splits
tiered--tiered

Precedence: CLI flags override config file settings.

See Also