I never knew about `binding/0`. Thanks for the tip; `IO.inspect(binding())` definitely does the kind of thing I'm looking for.
On Sat, Oct 14, 2017 at 12:14 AM, José Valim <[email protected]> wrote: > I use IO.inspect(binding()) a lot. > > Although I don't think IO.inspect_vars would be a thing since it would > need to be a macro and having to require it before would probably lose its > appeal (and we don't plan to require anything other than Kernel by default). > > > > *José Valimwww.plataformatec.com.br > <http://www.plataformatec.com.br/>Founder and Director of R&D* > > On Sat, Oct 14, 2017 at 5:44 AM, Myron Marston <[email protected]> > wrote: > >> IO.inspect has long been my go-to technique for troubleshooting code >> that isn’t quite working how I would expect. Since the :label option was >> added in 1.4, I use that all the time, too. The majority of the time, I use >> it to inspect one or more variables like so: >> >> IO.inspect(foo, label: "foo")IO.inspect(bar, label: "bar") >> >> However, I often find my self making simple, dumb mistakes when setting >> this up, such as copying and pasting a prior IO.inspect line, but >> forgetting to update the label, e.g.: >> >> IO.inspect(foo, label: "foo")IO.inspect(bar, label: "foo") # woops, the >> output will label this as `foo`, too! >> >> Given how common this pattern is, it would be really nice if there was a >> function or macro to do this for us. I’m thinking something like: >> >> # inspect each variable in the current scope, labeling each with its >> nameIO.inspect_vars(:all) >> # inspect just the provided variables, labeling eachIO.inspect_vars([foo, >> bar]) >> # inspect all variables in the current scope, except the provided ones, >> labeling eachIO.inspect_vars(except: [foo, bar]) >> >> I can also imagine it supporting a label option, to put a title above >> the list of variables, in order to distinguish multiple variable reports. >> >> Would others find this as useful as I would? Is there interest in it >> being added to Elixir? >> >> Thanks! >> Myron >> >> >> -- >> 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/ms >> gid/elixir-lang-core/fd0d67af-3b5f-4ee9-b067-8b263ccd1666% >> 40googlegroups.com >> <https://groups.google.com/d/msgid/elixir-lang-core/fd0d67af-3b5f-4ee9-b067-8b263ccd1666%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 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/pzs8FVi7bdM/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > To view this discussion on the web visit https://groups.google.com/d/ > msgid/elixir-lang-core/CAGnRm4KSmcNtff772p2vhepaqEHhT > Muz0ntMU%2BX8U5L6Mukg3Q%40mail.gmail.com > <https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4KSmcNtff772p2vhepaqEHhTMuz0ntMU%2BX8U5L6Mukg3Q%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/CADUxQmvu7bmwsQPMY6wQ_5eksd-zvQK7jDzueTFKQb1MQQ%3DmmQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
