I think I just need to re-tool my implementation and come at it from a different angle. Thanks for the discussion
- Brian On Sun, Jul 21, 2024 at 10:23 AM José Valim <jose.va...@dashbit.co> wrote: > 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 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/CAGnRm4KyRuO1BFG5kutOy1Jf7bX%3Dz-2cE6sfzy3kustDea_LiQ%40mail.gmail.com > <https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4KyRuO1BFG5kutOy1Jf7bX%3Dz-2cE6sfzy3kustDea_LiQ%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/CADtMk1hq8t_kX34CxnXSTDH4DDm7NBGx_qasSFtThtZ6VOf7zA%40mail.gmail.com.