Settings Reference
This page is generated from Shuck's Rust configuration metadata and lists the supported shuck.toml and .shuck.toml settings.
Use Configuration for discovery, precedence, and examples of how config files are resolved.
[check]
File-level analysis behavior for shuck check.
embedded
Lint supported embedded shell scripts in non-shell files, including GitHub Actions workflow run blocks and composite action steps.
Default value: true
Type: bool
Example usage:
[check]
embedded = false[lint]
Rule selection, per-file ignores, fix eligibility, and rule-specific behavior for shuck check.
extend-fixable
Add rules to the set that can receive automatic fixes when shuck check --fix is enabled.
Default value: []
Type: list[selector]
Example usage:
[lint]
extend-fixable = ["S074"]extend-per-file-ignores
Add more per-file ignores without replacing the existing per-file-ignores table.
Default value: {}
Type: table[str, list[selector]]
Example usage:
[lint]
extend-per-file-ignores = { "vendor/**" = ["ALL"] }extend-select
Enable additional rules on top of the default or explicitly selected rule set.
Default value: []
Type: list[selector]
Example usage:
[lint]
extend-select = ["S"]fixable
Replace the set of rules that can receive automatic fixes when fixes are available.
Default value: ["ALL"]
Type: list[selector]
Example usage:
[lint]
fixable = ["C", "S074"]ignore
Remove rules from the active rule set.
Default value: []
Type: list[selector]
Example usage:
[lint]
ignore = ["S074"]per-file-ignores
Ignore selected rules for files that match a glob pattern.
Default value: {}
Type: table[str, list[selector]]
Example usage:
[lint]
per-file-ignores = { "scripts/*.sh" = ["S074"] }select
Replace the default rule set with the selectors listed here.
Default value: all implemented non-style rules
Type: list[selector]
Example usage:
[lint]
select = ["C", "K"]unfixable
Prevent selected rules from receiving automatic fixes, even when --fix is enabled.
Default value: []
Type: list[selector]
Example usage:
[lint]
unfixable = ["C001"][lint.rule-options]
Rule-specific behavior overrides for diagnostics that intentionally support more than one analysis mode.
[lint.rule-options.c001]
Behavior overrides for C001 unused assignment analysis.
treat-indirect-expansion-targets-as-used
Treat scalar indirect-expansion targets such as ${!name} as a use of the referenced target.
Default value: false
Type: bool
Example usage:
[lint.rule-options.c001]
treat-indirect-expansion-targets-as-used = true[lint.rule-options.c063]
Behavior overrides for C063 overwritten and unreached function analysis.
report-unreached-nested-definitions
Report nested function definitions when no reachable direct call reaches the enclosing function scope before it exits.
Default value: false
Type: bool
Example usage:
[lint.rule-options.c063]
report-unreached-nested-definitions = true