Elixir allows you to parse the code with information to convert the parsed
code into formatted code. Someone could perhaps implement a patching
mechanism that keeps the code exactly as is, but that is quite complex:

1. If you change, delete, or introduce AST nodes: what does "as is" mean?
2. It will probably take a huge time investment to implement this, if at
all possible

In any case, this is not a concern of Elixir core itself. At the same time
I think we should acknowledge that the formatter has benefits for tools
like Sourceror.

On Sun, Jul 21, 2024 at 11:12 AM Brian Cardarella <bcardare...@gmail.com>
wrote:

> Actually I seem to recall bringing this up with Drogan a few months ago
> and that there is no way to perfectly preserve the original formatting
> converting a parsed file’s AST back to string so I have to find a way
> forward with patch_string
>
>
> - Brian
>
>
> On Sun, Jul 21, 2024 at 9:56 AM Brian Cardarella <bcardare...@gmail.com>
> wrote:
>
>> I've run across too many people that have `mix format` as part of their
>> editor workflow. PRs that include massive reformats. It doesn't happen
>> often but it happens.
>>
>>
>> - Brian
>>
>>
>> On Sun, Jul 21, 2024 at 9:55 AM José Valim <jose.va...@dashbit.co> wrote:
>>
>>> The formatter is opt-in. Elixir does not call "mix format" for you.
>>>
>>> On Sun, Jul 21, 2024 at 10:50 AM Brian Cardarella <bcardare...@gmail.com>
>>> wrote:
>>>
>>>> You're correct that I'm probably coming at this from the wrong end. In
>>>> lieu of not getting Sourceror to accept opting out of the formatter I was
>>>> searching for ways to avoid the formatter from doing anything.
>>>>
>>>> As an aside, I realize the ship has sailed on this but I do wish the
>>>> formatter was opt-in by design. Iteratively build your formatting
>>>> preferences rather than default being anything at all. A single LOC to have
>>>> the current settings, but still opt-in
>>>>
>>>> - Brian
>>>>
>>>>
>>>> On Sun, Jul 21, 2024 at 9:45 AM José Valim <jose.va...@dashbit.co>
>>>> wrote:
>>>>
>>>>> I think there is some confusion happening here.
>>>>>
>>>>> 1. I don't see a reason to allow mix format to be a no-op? If you
>>>>> don't want to run the formatter, you can simply not run "mix format".
>>>>>
>>>>> 2. On the other hand, I don't think turning off the formatter will
>>>>> address Sourceror. I believe it uses the formatting APIs to stitch the 
>>>>> code
>>>>> back together, regardless of mix format.
>>>>>
>>>>> In other words, I don't think the issue you have is mix format. It is
>>>>> with whatever tool that is invoking it.
>>>>>
>>>>> On Sun, Jul 21, 2024 at 10:41 AM Brian Cardarella <
>>>>> bcardare...@gmail.com> wrote:
>>>>>
>>>>>> Yes, I know that Sourceror has `patch_string` but that doesn't solve
>>>>>> all the problems I'm tackling.
>>>>>>
>>>>>> On Sunday, July 21, 2024 at 9:40:42 AM UTC-4 Brian Cardarella wrote:
>>>>>>
>>>>>>> I get that this would work but that feels hacky to me. Would you
>>>>>>> accept a PR to provides an opt-out option? Also, why does `mix format`
>>>>>>> format anything at all if `.formatter` isn't defined? I would have 
>>>>>>> expected
>>>>>>> that to be no-op.
>>>>>>>
>>>>>>> My use cases:
>>>>>>>
>>>>>>> 1. I don't like auto-formatters. We don't need to debate the merits
>>>>>>> of this, just my preference
>>>>>>> 2. Sourceror forces everything through the formatter. When
>>>>>>> converting quoted back to strings despite all of the indentation
>>>>>>> information being included in the AST nodes the formatter is still run. 
>>>>>>> I'd
>>>>>>> much prefer if the project itself opts out of the formatter that this
>>>>>>> doesn't happen and re-format entire files on someone.
>>>>>>>
>>>>>>> On Sunday, July 21, 2024 at 9:36:27 AM UTC-4 José Valim wrote:
>>>>>>>
>>>>>>>> You can probably change its inputs in .formatter.exs to point to a
>>>>>>>> directory that does not exist.
>>>>>>>>
>>>>>>>> On Sun, Jul 21, 2024 at 10:34 AM Brian Cardarella <
>>>>>>>> bcard...@gmail.com> wrote:
>>>>>>>>
>>>>>>>>> I don't see it in the docs, is there a way to turn off formatting
>>>>>>>>> entirely so if `mix format` is run it just turns into a no-op?
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> 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-co...@googlegroups.com.
>>>>>>>>> To view this discussion on the web visit
>>>>>>>>> https://groups.google.com/d/msgid/elixir-lang-core/7ebc1f83-666a-4f5c-b9c5-f9fd04224d3bn%40googlegroups.com
>>>>>>>>> <https://groups.google.com/d/msgid/elixir-lang-core/7ebc1f83-666a-4f5c-b9c5-f9fd04224d3bn%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>>>> .
>>>>>>>>>
>>>>>>>> --
>>>>>> 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 on the web visit
>>>>>> https://groups.google.com/d/msgid/elixir-lang-core/0004d4c0-5aa1-4e68-ae35-9d1f54e30343n%40googlegroups.com
>>>>>> <https://groups.google.com/d/msgid/elixir-lang-core/0004d4c0-5aa1-4e68-ae35-9d1f54e30343n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>> .
>>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to a topic in the
>>>>> Google Groups "elixir-lang-core" group.
>>>>> To unsubscribe from this topic, visit
>>>>> https://groups.google.com/d/topic/elixir-lang-core/SYdxYLcsirM/unsubscribe
>>>>> .
>>>>> To unsubscribe from this group and all its topics, send an email to
>>>>> elixir-lang-core+unsubscr...@googlegroups.com.
>>>>> To view this discussion on the web visit
>>>>> https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4K1JvbNyobyp2mJ3v%2BEgzn4pPriRQHg5ZzQ%2Bfwde32yJw%40mail.gmail.com
>>>>> <https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4K1JvbNyobyp2mJ3v%2BEgzn4pPriRQHg5ZzQ%2Bfwde32yJw%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>>
>>>> --
>>>> 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 on the web visit
>>>> https://groups.google.com/d/msgid/elixir-lang-core/CADtMk1gc4gLpWWsXowJBzNp_t45%2Bx0NeLNQ5_U1AYGKexd5%3DUw%40mail.gmail.com
>>>> <https://groups.google.com/d/msgid/elixir-lang-core/CADtMk1gc4gLpWWsXowJBzNp_t45%2Bx0NeLNQ5_U1AYGKexd5%3DUw%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>> --
>>> You received this message because you are subscribed to a topic in the
>>> Google Groups "elixir-lang-core" group.
>>> To unsubscribe from this topic, visit
>>> https://groups.google.com/d/topic/elixir-lang-core/SYdxYLcsirM/unsubscribe
>>> .
>>> To unsubscribe from this group and all its topics, send an email to
>>> elixir-lang-core+unsubscr...@googlegroups.com.
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4Jnf_gOjX%2BPFvOiW-sS10dHSafg2e20-HXyTQrubjy%3DwA%40mail.gmail.com
>>> <https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4Jnf_gOjX%2BPFvOiW-sS10dHSafg2e20-HXyTQrubjy%3DwA%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>> --
> 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 on the web visit
> https://groups.google.com/d/msgid/elixir-lang-core/CADtMk1ja%2BjCQJVzh%2BbZTOcxzokLieCXPe5QESqeq7Epd7HxwBw%40mail.gmail.com
> <https://groups.google.com/d/msgid/elixir-lang-core/CADtMk1ja%2BjCQJVzh%2BbZTOcxzokLieCXPe5QESqeq7Epd7HxwBw%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
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 on the web visit 
https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4KyRuO1BFG5kutOy1Jf7bX%3Dz-2cE6sfzy3kustDea_LiQ%40mail.gmail.com.

Reply via email to