Emily

Emily OP

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?

First 10 of 13 Posts Switch mode

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

stjefim
Hello! Suppose you are building workflow (order / task / payment) processing system with the following requirements: Each workflow con...
New
jonnycharles
I’m in search of an Elixir library that offers PDF generation capabilities similar to Ruby’s Prawn. While there have been discussions abo...
New
spammy
I’m looking to build a personal workflow to quickly deploy web applications written in elixir/phoenix, for local consumption (ie not on t...
New
dli
Before I dive in myself, did anyone successfully sprinkle Hologram into their existing LiveView app? Looking for hints regarding: Addi...
New
bottlenecked
Hi all, I wanted to ask how the community is dealing with post-release steps. Today we have Ecto migrations, which make sure that the db...
New
roeland
Kia ora, We have been using elixir-google-api to connect to Google Drive. However, with the updates to Tesla due to CVEs this is now bro...
New
rahultumpala
Hello, I have an Elixir backend that implements a custom protocol over TCP. I want to load test the backend and assess the performance o...
New

Other Trending Topics Top

JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
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
ausimian
Emily is an Elixir library that runs Nx computations on Apple’s MLX. Install it as the default Nx backend and Nx, defn, Axon, Nx.Serving,...
New
juhalehtonen
There has been a thread to discuss the Stack Overflow Developer Survey on this forum every year since 2018, so here’s yet another one for...
New

We're in Beta

About us Mission Statement