marcandre

marcandre

How to get a simple path from `xref graph`?

Why is mix xref graph with a source and a sink giving me all these useless branches?

There happens to be a single path from my source to my sink, yet I get a 800+ line output.
There is only a single line where my sink appears.

Maybe this is due to some cycles? Even then most leaves don’t seem pertinent…

$ mix xref graph  --source lib/bobby/underwriting/rule/life/xyz_test.ex --sink lib/bobby_web/views/documents/life_view.ex

lib/bobby/underwriting/rule/life/xyz_test.ex
└── lib/bobby/underwriting/rule.ex (compile)
    ├── lib/bobby/policies/policy_application.ex
    │   ├── lib/bobby/accounts/account.ex
    │   │   ├── lib/bobby/accounts/midoconline_code.ex
    │   │   │   └── lib/bobby/accounts/account.ex
    │   │   ├── lib/bobby/accounts/user.ex
    │   │   │   ├── lib/bobby/accounts/account.ex
    │   │   │   ├── lib/bobby/accounts/credential.ex
    │   │   │   │   ├── lib/bobby/accounts/user.ex
    │   │   │   │   └── lib/bobby_web/endpoint.ex
    │   │   │   │       └── lib/bobby_web/router.ex
    │   │   │   │           ├── lib/bobby/Plug/authentication.ex (compile)
    │   │   │   │           │   └── lib/bobby_web/views/error_view.ex
    │   │   │   │           ├── lib/bobby/accounts.ex
    │   │   │   │           │   ├── lib/bobby/accounts/account.ex (export)
#...
    │   │   │   │           │   │   │   ├── lib/bobby/accounts/credential.ex
    │   │   │   │           │   │   │   └── lib/bobby/segment_events/event.ex (compile)
    │   │   │   │           │   │   └── lib/bobby/segment_events/suspended_account_event.ex
    │   │   │   │           │   │       ├── lib/bobby/accounts/account.ex
    │   │   │   │           │   │       └── lib/bobby/segment_events/event.ex (compile)
    │   │   │   │           │   └── lib/bobby_web/endpoint.ex
    │   │   │   │           ├── lib/bobby/policies.ex
    │   │   │   │           │   ├── lib/bobby/documents.ex
    │   │   │   │           │   │   ├── lib/bobby/documents/storage_documents.ex (export)
#...
    │   │   │   │           │   │   ├── lib/bobby_web/views/documents/life_view.ex <<<<
    │   │   │   │           │   │   │   ├── lib/bobby/accounts.ex
    │   │   │   │           │   │   │   ├── lib/bobby/policies.ex
    │   │   │   │           │   │   │   └── lib/bobby_web/views/component/component_helpers.ex (export)
    │   │   │   │           │   │   └── lib/bobby_web/views/documents/quake_view.ex
    │   │   │   │           │   │       ├── lib/bobby/accounts.ex
    │   │   │   │           │   │       ├── lib/bobby/documents.ex
#... 600 more lines that are not relevant to me!

Is there a way to get the output I want:

lib/bobby/underwriting/rule/life/AIDS_test.ex
└── lib/bobby/underwriting/rule.ex (compile)
    └── lib/bobby/policies/policy_application.ex
        └── lib/bobby/accounts/account.ex
            └── lib/bobby/accounts/user.ex
                └── lib/bobby/accounts/credential.ex
                    └── lib/bobby_web/endpoint.ex
                        └── lib/bobby_web/router.ex
                            └── lib/bobby/policies.ex
                                └── lib/bobby/documents.ex
                                    └── lib/bobby_web/views/documents/life_view.ex

(Elixir 1.11.4, Erlang/OTP 23)

Marked As Solved

josevalim

josevalim

Creator of Elixir

There are likely multiple paths and perhaps even cycles, as you mentioned. We may need to add a —shortest option or similar.

Where Next?

Popular in Questions Top

greenz1
I have a phoenix application from which a user can download multiple(5-6) files of size 1MB. I couldn’t find anything related to sending ...
New
JeremM34
Hello, how can I check the Phoenix version ? Thanks !
New
shahryarjb
Hello, I have map which I want to convert it to string like this: the map: %{last_name: "tavakkoli", name: "shahryar"} the string I ne...
New
jononomo
I am trying to figure out how Mix knows whether the environment is test, dev, or prod – where is this set? Thanks.
New
stefanchrobot
What’s the safe way to decode a JSON string into a struct? I want to avoid calling String.to_atom. Jason.decode can give me a map with st...
New
aalberti333
As the title describes, I’m trying to run Enum.map() over a list of key/value pairs, where the value is a map. My data looks like this: ...
New
bsollish-terakeet
Credo is smart enough to check for (something like) this: assert length(the_list) == 0 with this response: Checking if an enum is empt...
New
rms.mrcs
Hi, I need to transform a list of numbers into a map where the keys are the indexes and the values are the original values of the list. ...
New
JorisKok
I have a server on AWS, and was running a load test using artillery. When looking at the Phoenix dashboard I see the Ports going to 100% ...
New
vegabook
I’m brand new to Phoenix and I have stripped one of the demo applications to the bone. I just want to get an svg up on the screen. Here i...
New

Other popular topics Top

WestKeys
Currently suffering from paralysis by [HTTP client] analysis. This is rather unusual in Elixirland as there tends to be consensus on the ...
New
mcarvalho
What is the difference between System.get_env and Application.get_env? For example, what are best practices to use one versus another.
New
stefanluptak
Hello everybody, usually, I use a 29" ultra-wide monitor for VSCode which can easily accomodate explorer (files panel) + file with code ...
New
freewebwithme
Using vs code and installed ElixirLS: support and debugger. And I got an error popped up on start up says Failed to run ‘elixir’ comma...
New
aesmail
Hello guys, I have finally made it. I created an admin interface for a framework. It’s been on my todo list for years and with the curre...
New
KronicDeth
Elixir plugin for JetBrain’s IntelliJ Platform (including Rubymine) This is a plugin that adds support for Elixir to JetBrains IntelliJ...
289 36432 110
New
boundedvariable
I am going through the kafka architecture. All the features what the kafka is providing are already in Erlang. I would like hear your opi...
New
JakeBecker
TL;DR: I’ve just released an implementation of Microsoft’s IDE-independent Language Server Protocol for Elixir. It adds language support ...
1144 54250 245
New
JorisKok
I have a server on AWS, and was running a load test using artillery. When looking at the Phoenix dashboard I see the Ports going to 100% ...
New
lanycrost
Hi everyone! I need implement if…else if…else condition from my elixir code, and anymore of this control flow structures not work proper...
New

We're in Beta

About us Mission Statement