We could and that's the approach we use in the formatter but we can't use
it generally because it would break stuff like keyword lists (as the first
element is now a tuple __block__ and no longer an atom).


*José Valim*
www.plataformatec.com.br
Skype: jv.ptec
Founder and Director of R&D


On Wed, Apr 3, 2019 at 10:53 PM Arjan Scherpenisse <[email protected]>
wrote:

> One thing that comes to mind for "simple value" cases like this: we could
> use the existing :__block__ ast node with a single child as nodes for
> simple values which have metadata attributes. AFAIK __block__ ast nodes now
> always have > 1 child.
>
> This works:
>
> iex(7)> {:__block__, [], [:a]} |> Macro.to_string
> ":a"
>
> And this as well:
>
> iex(10)> {:__block__, [], [123]} |> Code.eval_quoted()
> {123, []}
>
>
>
> On Wednesday, April 3, 2019 at 9:55:22 PM UTC+2, Arjan Scherpenisse wrote:
>>
>> Thanks José,
>>
>> This is indeed a topic of interest to me. Actually, part of my talk in
>> Prague coming tuesday will be about this. I'll let it simmer for now and
>> maybe we can have a chat during the conference!
>>
>> cheers, Arjan
>>
>> On Wednesday, April 3, 2019 at 9:07:24 PM UTC+2, José Valim wrote:
>>>
>>> Hi Arjan,
>>>
>>> I don't believe there was any progress here. Storing it in the AST would
>>> be hard because some nodes have no metadata slot, so it would be tricky in
>>> situations like this:
>>>
>>> # Let's return just an atom for now
>>> :foo
>>>
>>>
>>> However, we do have the ability to return comments from tokenizer and
>>> the formatter use this feature:
>>>
>>>
>>> https://github.com/elixir-lang/elixir/blob/master/lib/elixir/lib/code/formatter.ex#L205-L206
>>>
>>> Note however those are private APIs but we will be glad to add a new API
>>> or an option to one of the functions in the Code module that return the
>>> AST + comments from a string. Feel free to experiment with the above and
>>> submit a proposal as you see fit.
>>>
>>> *José Valim*
>>> www.plataformatec.com.br
>>> Skype: jv.ptec
>>> Founder and Director of R&D
>>>
>>>
>>> On Wed, Apr 3, 2019 at 8:27 PM Arjan Scherpenisse <[email protected]>
>>> wrote:
>>>
>>>> Hi Steve, just stumbled on this, do you know if anything ever happened
>>>> to this?
>>>>
>>>> On Sunday, September 23, 2018 at 1:10:38 AM UTC+2, Steve Morin wrote:
>>>>>
>>>>> Tried on Slack but I'll try freenode next
>>>>>
>>>>> On Fri, Sep 21, 2018 at 10:47 AM OvermindDL1 <[email protected]>
>>>>> wrote:
>>>>>
>>>>>> #elixir-lang on freenode for note*
>>>>>>
>>>>>> On Friday, September 21, 2018 at 11:47:25 AM UTC-6, OvermindDL1 wrote:
>>>>>>>
>>>>>>> IRC would be a great place to ask.  :-)
>>>>>>>
>>>>>>> On Friday, September 21, 2018 at 10:36:04 AM UTC-6, Steve Morin
>>>>>>> wrote:
>>>>>>>>
>>>>>>>> Anyone know which Elixir AST expert to talk to, about getting tips
>>>>>>>> on a starting point?  Anyone have suggestions on whom to reach out to 
>>>>>>>> for
>>>>>>>> quick email or call?
>>>>>>>>
>>>>>>>> On Wed, Sep 19, 2018 at 10:27 AM Steve Morin <[email protected]>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> Anyone know which Elixir AST expert to talk to, about getting tips
>>>>>>>>> on a starting point?
>>>>>>>>>
>>>>>>>>> On Mon, Sep 17, 2018 at 12:24 PM Steve Morin <[email protected]>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> Yes being part of the metadata would be great.  Need to look
>>>>>>>>>> around/research and see what other people have done.  Just not 
>>>>>>>>>> losing the
>>>>>>>>>> data would be great.
>>>>>>>>>>
>>>>>>>>>> On Sep 17, 2018, at 12:10, José Valim <
>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>
>>>>>>>>>> I don't think we ever stored them in meta. But even if we did, we
>>>>>>>>>> would probably have done it in the formatter, and we should likely 
>>>>>>>>>> move it
>>>>>>>>>> somewhere public.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> *José Valim*
>>>>>>>>>> www.plataformatec.com.br
>>>>>>>>>> Skype: jv.ptec
>>>>>>>>>> Founder and Director of R&D
>>>>>>>>>>
>>>>>>>>>> On Mon, Sep 17, 2018 at 8:37 PM, Louis Pilfold <
>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hey
>>>>>>>>>>>
>>>>>>>>>>> I'm a little out of touch with this area, but isn't this what we
>>>>>>>>>>> previously did? I remember comments being stored in meta during the
>>>>>>>>>>> creation of the formatter. Or did I make that up?
>>>>>>>>>>>
>>>>>>>>>>> Cheers,
>>>>>>>>>>> Louis
>>>>>>>>>>>
>>>>>>>>>>> On Mon, 17 Sep 2018 at 19:17 José Valim <
>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> I like the metadata idea a lot, thanks. We still need someone
>>>>>>>>>>>> to send a detailed proposal, including what will happen with inline
>>>>>>>>>>>> comments, comments inside blocks and comments as the last line of 
>>>>>>>>>>>> a block
>>>>>>>>>>>> with no expression afterwards.
>>>>>>>>>>>>
>>>>>>>>>>>> We also need a discussion on what will happen with nodes that
>>>>>>>>>>>> do not have a metadata entry. Wrapping those in a block is likely 
>>>>>>>>>>>> enough
>>>>>>>>>>>> (but it will break semantics, for example, in keywords lists). So 
>>>>>>>>>>>> it would
>>>>>>>>>>>> need to be an opt-in feature only.
>>>>>>>>>>>>
>>>>>>>>>>>> Once all the details are ironed out, then somebody can go ahead
>>>>>>>>>>>> and fully implement it. :)
>>>>>>>>>>>> --
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> *José Valim*
>>>>>>>>>>>> www.plataformatec.com.br
>>>>>>>>>>>> Skype: jv.ptec
>>>>>>>>>>>> Founder and Director of R&D
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> 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 [email protected].
>>>>>>>>>>>> To view this discussion on the web visit
>>>>>>>>>>>> https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4J4%2BcTqcXH_ESJL2_o7rv5OJxkf_yJDpVAH%3DCjH2mmO7w%40mail.gmail.com
>>>>>>>>>>>> <https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4J4%2BcTqcXH_ESJL2_o7rv5OJxkf_yJDpVAH%3DCjH2mmO7w%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>>>>>>>>>> .
>>>>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> 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 [email protected].
>>>>>>>>>>> To view this discussion on the web visit
>>>>>>>>>>> https://groups.google.com/d/msgid/elixir-lang-core/CABu8xFAk6UQJbbMcD2xkwJFLPM%3DbASSnOqL6ihSdUQEMpuKNGg%40mail.gmail.com
>>>>>>>>>>> <https://groups.google.com/d/msgid/elixir-lang-core/CABu8xFAk6UQJbbMcD2xkwJFLPM%3DbASSnOqL6ihSdUQEMpuKNGg%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>>>>>>>>> .
>>>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> 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 [email protected].
>>>>>>>>>> To view this discussion on the web visit
>>>>>>>>>> https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4LmVcoPq7fRkJY5ErJ4N93Bd8-9erEByNETt%2BLN5DZuYA%40mail.gmail.com
>>>>>>>>>> <https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4LmVcoPq7fRkJY5ErJ4N93Bd8-9erEByNETt%2BLN5DZuYA%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>>>>>>>> .
>>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Steve Morin | Hacker, Entrepreneur, Startup Advisor
>>>>>>>>> twitter.com/SteveMorin | stevemorin.com
>>>>>>>>> *Live the dream start a startup. Make the world ... a better
>>>>>>>>> place.*
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Steve Morin | Hacker, Entrepreneur, Startup Advisor
>>>>>>>> twitter.com/SteveMorin | stevemorin.com
>>>>>>>> *Live the dream start a startup. Make the world ... a better place.*
>>>>>>>>
>>>>>>> --
>>>>>> 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 [email protected].
>>>>>> To view this discussion on the web visit
>>>>>> https://groups.google.com/d/msgid/elixir-lang-core/5f1a035a-527d-4b60-9d24-12f376835e01%40googlegroups.com
>>>>>> <https://groups.google.com/d/msgid/elixir-lang-core/5f1a035a-527d-4b60-9d24-12f376835e01%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>> .
>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Steve Morin | Hacker, Entrepreneur, Startup Advisor
>>>>> twitter.com/SteveMorin | stevemorin.com
>>>>> *Live the dream start a startup. Make the world ... a better place.*
>>>>>
>>>> --
>>>> 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 [email protected].
>>>> To view this discussion on the web visit
>>>> https://groups.google.com/d/msgid/elixir-lang-core/a13ad0ff-4f42-44f9-91f5-8eacaa27450d%40googlegroups.com
>>>> <https://groups.google.com/d/msgid/elixir-lang-core/a13ad0ff-4f42-44f9-91f5-8eacaa27450d%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>> --
> 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 [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/elixir-lang-core/0ab97ebf-39bf-4bcc-a137-49be7ed03f7c%40googlegroups.com
> <https://groups.google.com/d/msgid/elixir-lang-core/0ab97ebf-39bf-4bcc-a137-49be7ed03f7c%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4LrTru%3DL6S8LJpkV_yCkHy7wdh2_9M3BQ1o191h4JNbbQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to