adobe/elixir-styler
72.2
Strong · 3 October 2026
3.1k
lines of production code
Elixir
primary language
2
measurements over time
What this system is
Styler is an Elixir code formatter plugin that automatically rewrites source code to enforce consistent style rules. It handles structural transformations such as alias lifting, block simplification, and deprecation updates, while also managing configuration sorting and comment directives. The system integrates directly into the Elixir build process via \mix format\ and includes experimental tasks for inlining attributes and removing unused imports.
Features
New code style rules for blocks, configuration, and module directives
The \lib/style\ library introduces several new formatting styles: \Blocks\ rewrites single-clause \case\ statements to assignments, simplifies \with\ statements to \if\ or \case\, and standardizes \cond\ final clauses to use \true\; \Configs\ automatically sorts and groups \config\ stanzas in \.exs\ files to help identify duplicate settings; \ModuleDirectives\ expands multi-aliases, sorts directive groups (like \alias\, \import\, \require\), and enforces a strict layout order; \CommentDirectives\ adds support for the \\# styler:sort\ comment to maintain sorted wordlists and lists; and \Deprecations\ handles Elixir 1.16+ and 1.17+ changes such as rewriting \:timer.hours/minutes/seconds\ to \to\_timeout/1\ and \DateTime.add\ to \DateTime.shift\.
lib/style · high confidence
Behavioural changes
Experimental styling tasks added; legacy \`mix style\` task removed
The library introduces two new experimental Mix tasks: \mix styler.inline\_attrs\, which inlines single-reference module attributes (with a warning that it may produce invalid code), and \mix styler.remove\_unused\, which automatically removes unused imports, aliases, and requires by parsing compiler warnings. Concurrently, the legacy \mix style\ task has been removed from the codebase.
lib/mix · high confidence
New configuration system for alias lifting exclusions and Elixir version support
Styler now introduces a dedicated configuration module that allows users to specify which modules should be excluded from alias lifting via the \alias\_lifting\_exclude\ setting, supporting both standard atoms and \Elixir.\-prefixed atoms. Additionally, users can define a \minimum\_supported\_elixir\_version\ to ensure compatibility checks are performed against a specific Elixir version, with the system validating that the running version meets this requirement.
lib/styler · high confidence
Styler is now a formatter plugin with improved error handling and alias resolution
Styler now implements the Mix.Tasks.Format behavior, allowing it to function as a native Elixir formatter plugin that processes .ex and .exs files. The core styling engine has been refactored to pass a context (containing comments and file information) to style runs, enabling better comment handling and line number maintenance during AST transformations. A new AliasEnv module has been introduced to track and resolve module aliases during traversal, supporting features like alias lifting. Additionally, error handling has been improved: the Styler.StyleError now provides a formatted message with a direct link to the GitHub issues page, and the main styling loop is configured to skip individual style failures and continue processing rather than crashing the entire file.
lib · high confidence
Styler is now a formatter plugin with new configuration options
Styler has transitioned from a standalone \mix style\ task to an Elixir formatter plugin. Users must now add \plugins: \[Styler\]\ to their \.formatter.exs\ file and run \mix format\ to apply Styler's rewrites. The plugin configuration now supports \alias\_lifting\_exclude\ to specify modules to ignore during alias lifting, and \minimum\_supported\_elixir\_version\ to control deprecation rewrites based on the target Elixir version. Additionally, the \.tool-versions\ file has been added to specify Elixir 1.19.5 and Erlang 28.4 as the development environment.
(repo-wide) · high confidence
Test coverage
Added tests for alias lifting in module directives; Enhanced test support with idempotency checks and detailed AST debugging; Expanded test coverage for alias resolution, configuration, and comment handling; Expanded test coverage for style rewrites and directives.
Dependencies
Release v1.12.2 with Elixir 1.15 requirement and documentation updates
This release bumps the version to 1.12.2 and raises the minimum required Elixir version from 1.14 to 1.15. It introduces \ex\_doc\ as a development-only dependency for documentation generation and updates the package metadata to include a link to the changelog. The documentation configuration has been expanded to organize extra files into a 'Features' group and includes specific pages for styles, comment directives, control flow macros, deprecations, mix configs, module directives, pipe chains, and Credo integration.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 72 → 72 (+0.6)
- Rubric changed (rubric-2026.09.15 → rubric-2026.10.1) — scores are not directly comparable.
Lenses
- Code Health 97 → 97 (+0.0)
- Architecture 99 → 99 (+0.3)
- Maturity 59 → 59 (+0.0)
- Readiness 67 → 69 (+2.4)
- Security 100 → 100 (+0.0)
Findings
- No change — the same findings as the prior survey.
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
adobe/elixir-styler was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 3 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit e6ac04a482cbd9732d85b3a13b57d0d3fea48e60 — the exact code this score is about.
- Scored under rubric-2026.10.1 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-8fe32cd45d00.