Related Phoenix.LiveView formatter pull 
request: https://github.com/phoenixframework/phoenix_live_view/pull/3654

On Wednesday, January 29, 2025 at 11:02:31 PM UTC+1 Bart Blast wrote:

> *Problem *
>
> Currently, formatter plugins cannot receive custom options. This 
> limitation becomes problematic in scenarios where plugins need 
> configuration to determine their scope or behavior.
> *Real-world Example *
>
> The Phoenix LiveView formatter plugin formats all ~H sigils in the 
> codebase. However, ~H sigils are general-purpose and can be used by any 
> library (e.g., Hologram uses them for its own purposes). This leads to 
> issues:
>
>    - When Hologram codebase is formatted, the LiveView formatter raises 
>    errors because it incorrectly attempts to parse Hologram's ~H sigils as 
>    HEEx templates 
>    - Currently, there's no way to tell the LiveView formatter which paths 
>    should be formatted and which should be ignored 
>
> *Proposal *
>
> Allow specifying custom options for formatter plugins in .formatter.exs:
>
> Current syntax:
> [
>   # ...
>   formatters: [MyLib1.Formatter, MyLib2.Formatter],
>   # ...
> ] 
>
> Proposed syntax:
> [
>   # ...
>   formatters: [MyLib1.Formatter, {MyLib2.Formatter, a: 1, b: 2}],
>   # ...
> ]
>
> *Benefits *
>    
>    1. Plugins can receive configuration to customize their behavior 
>    2. Solves the LiveView vs Hologram formatter collision by allowing 
>    users to specify which paths should be formatted by which plugin 
>    3. More flexible and configurable formatting system overall 
>
> *Implementation Notes *
>    
>    - The formatter would pass these options to the plugin's formatting 
>    functions 
>    - Plugins not requiring options can still be specified using the 
>    current syntax 
>    - Backward compatible change - existing formatter configurations would 
>    continue to work 
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"elixir-lang-core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elixir-lang-core+unsubscr...@googlegroups.com.
To view this discussion visit 
https://groups.google.com/d/msgid/elixir-lang-core/504b9140-c09a-4937-a330-4587e5965efcn%40googlegroups.com.

Reply via email to