Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Debugging Phoenix projects with Visual Studio Code #151

Open
LuchoTurtle opened this issue Oct 12, 2022 · 0 comments
Open

Debugging Phoenix projects with Visual Studio Code #151

LuchoTurtle opened this issue Oct 12, 2022 · 0 comments

Comments

@LuchoTurtle
Copy link
Member

LuchoTurtle commented Oct 12, 2022

If you're anything like me and are a complete novice when it comes to the Elixir ecosystem and Phoenix, you probably wager that using a proper debugger helps you make sense of the execution flow and interiorize concepts much better.

With this in mind, I thought I'd share my experience setting up a proper environment so one can debug any Phoenix project, making it much easier to make sense of everything! And great news: it's proper simple ☀️ !

  1. Boot up VSCode and install ElixirLS: Elixir support and debugger and Phoenix Framework.
  2. Restart VSCode
  3. Open any Phoenix-based project. Or create your own!
  4. As per Phoenix Framework's docs, add (or create under .vscode) the following to your settings.json file:
"emmet.includeLanguages": {
  "phoenix-heex": "html"
}
  1. You should be sorted! 🎉

Further information

On first run, ElixirLS will run a project analysis and index everything. This might take some time. You can see the progress under Output in VSCode.
index

Sometimes, when 'go-to-reference' doesn't seem to work, it's probably because there was an error indexing (it's what happened to me!). Check the Output and choose ElixirLS in the right combobox and check the traces. Most of the times,deleting the created .elixir_ls folder and re-opening the project will force reindexing and solve the problem 😄 .

Hurray you can now debug!

Now it should be super easy to debug!
Simply go to the side panel and "create a launch.json file".

Screenshot 2022-10-12 at 18 20 00

Now just make sure you have this same configuration and you're done!

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "mix_task",
            "name": "mix (Default task)",
            "request": "launch",
            "task": "phx.server",    // add this 
            "projectDir": "${workspaceRoot}",
			"env": {
				"TEST_VAR": "foo"
			}
        },
        {
            "type": "mix_task",
            "name": "mix test",
            "request": "launch",
            "task": "test",
            "taskArgs": [
                "--trace"
            ],
            "startApps": true,
            "projectDir": "${workspaceRoot}",
            "requireFiles": [
                "test/**/test_helper.exs",
                "test/**/*_test.exs"
            ]
        }
    ]
}

Now you can you can press F5 (or Run > Start debugging) and start debugging! This is what it'll look like!

Screenshot 2022-10-12 at 18 23 23

Happy debugging! 🎉 🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant