Emily

Emily

I’m just starting out with Elixir in Visual Studio, coming from Python using PyCharm to develop.

In PyCharm there was a 1 click compiler & debugger. So far I can’t find anything like that for Elixir for Visual Studio?

Am I missing something?

If you’re debugging in Visual Studio how are you compiling/debugging code snippets?

Showing Posts 1 to 10

imetallica

imetallica

You mean Visual Studio Code?

There is no integration. If you are using a Mix project, a simple mix compile on the command line should do the trick. Then to run your application, a simple iex -S mix should load an Elixir shell and your application, so you can do commands from there.

gon782

gon782

This will be an unpopular opinion to some, I’m sure, but I’m of the opinion that classic “step debugging” is largely useless in BEAM applications. The problems you encounter will more often than not have something to do with how you’ve laid out your actual process infrastructure.

What step debugging means for execution in processes is that you’ll be holding up a process live system, so it in fact doesn’t help for the actually important issues you’ll be investigating, as they’ll probably show up mostly under load where several processes need to interact. Obviously, if you freeze a process that might need to interact with other processes and as such won’t be responding to requests from elsewhere, you’re now actually the one breaking the system and your debugging has caused effects far beyond what a normal bug could.

It’s something akin to how you can’t determine the spin of an atom (?) without stopping it, thus actually influencing it.

There are other, better ways of debugging, like tracing, that will actually intercept messages between processes and give you information about the state changes in those processes.

If you’re not referring to debugging in the sense previously mentioned, could you please clarify what it is you mean?

Emily

Emily OP

Anyone know of a Visual Studio Code extension that will compile the current open Elixir window without having to type out the compile command each time?

NobbZ

NobbZ

I do not know about such a plugin. But you could use eye_drops to have a compile on save. Or anything similar. Guard from the ruby world will do as well but might be hard to integrate correctly.

OvermindDL1

OvermindDL1

If VSCode can take Atom plugins (wasn’t there a plugin for VSCode that lets you run a bulk set of Atom plugins?), all I do in Atom is hit save (Ctrl+s), that will then compile the file, run credo over it, and a few other things, with all errors and warnings appearing in the linter view that pops up at the bottom if there are any issues. :slight_smile:

Emily

Emily OP

Is there an Elixir IDE that has the functionality to highlight code, and run just that highlighted code?

OvermindDL1

OvermindDL1

How would that work beyond anything more complex than 1+1 or so? Macros can transform code (a viewer for that would be awesome though!) you’d not know which things to import without basically ‘running’ the rest of the file, etc… etc…

Emily

Emily OP

I’m looking for some kind of bridge to quick test a function without writing a formal test or running all the code in the file. And a quick way to iterate writing a small piece of code, running a quick test of that snippet, then writing the entire module, finally building a formal test. Basically a way to iterate between writing & running code without friction or extra keystrokes.

OvermindDL1

OvermindDL1

Hmm, well a def is just a macro that takes the body and creates an AST to pass to the module body, it itself does nothing (and this is why you cannot def something in the REPL), and the defmodule call just takes its whole body and passes it to the internal elixir call that creates a new module. Even just a single line of code unless entirely self contained (no imports or aliases or so) seems very difficult to just ‘run’, especially considering how the environment can be transformed around it with macros..

Would it not be easier just to run an iex session of the project and execute them that way? That is what I do, combined with a real-time code reloader it makes it pretty trivial to do?

sasajuric

sasajuric

Author of Elixir In Action

Not exactly what you’re looking for, but maybe this could be extended?

You can have an .exs file and run it with elixir your_file_name.exs. You don’t need modules or functions in that (but you can have them if you want). This is what I personally use for quick iterations/experiments.

So combining that with the previous link, I guess (but don’t know for sure, since I’m not familiar with VSCode) that it should be possible to create a task which runs the current file using the elixir command and outputs the result.

Where Next? Top

Trending in Questions Top

Blokh
Hey guys, I’ve got a huge CSV ( around 10 GB ) that needs to be processed hourly Do you guys have any suggestions what is the best prac...
New
kszambelanczyk
Hello! Could someone please give me a help/sample code, how to delete a file from s3 using waffle/waffle_ecto from Phoenix app. I creat...
New
Trolleger
What approach to take when sending live updates to “random” users Hi! I have a question, I have a little chat app, and when I create a DM...
New
RemyXRenard
I’m seeing that a list inside a Kino.DataTable will be interpreted as a charlist, even if the Kino.configure() is set to charlists: :as_l...
New
matt-savvy
Anyone here using Honeybadger? My Honeybadger account is being overwhelmed with noise from some bots. Seeing a lot of Bandit.HTTPError...
New
samoloth
Hi, I’ve just set up an application with ash_authentication. There is only magic link strategy for now, so there is no confirmation add o...
New
velrest
So my question is quite simple and i have found no conclusive answer on forum, google or AI. Should we use :erlang.float for Integer to ...
New

Other Trending Topics Top

mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
mcass19
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve. They are GUI (Emerge) and State management (S...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
wintermeyer
There are three potential reasons for members of this forum to have a look at https://vutuv.de You are tired or annoyed of LinkedIn. Yo...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews