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

stjefim
Hello! Suppose you are building workflow (order / task / payment) processing system with the following requirements: Each workflow con...
New
itzmidinesh
Hi all, I’m working on a Phoenix project where I need to make external HTTP requests and I’m trying to choose between Req and HTTPoison....
New
pragdave
How do I tell Hologram not to escape HTML when substituting into templates? {Textile.render(@product.long_description)} escapes the HTM...
New
leoschweizer
Hi, we run different LLM models across a cluster, with each node loading a configurable subset. Model-specific queues let nodes consume ...
New
rlipscombe
I’d like to create a file with 600 permissions (rw-------), but there’s a race condition if I create it and then change the permissions. ...
New
saleyn
Is there a way to import record definitions in the iex shell for pretty printing (similar to the rr command in the erl shell)? This woul...
New
rlipscombe
When I use Mix.install with a git dependency, using git@github.com:... how do I change the SSH identity used? I’ve got two Github accoun...
New

Other Trending Topics Top

dominicletz
Hey there, I haven’t seen a list of useful Elixir specific skills for the popular AI tools yet so I’m starting one here with my first. ...
New
raa-ziq
Hi everyone :waving_hand: I wanted to share something I’ve been building — NowBlind, a random chat app designed to help people discover ...
New
mudasobwa
I fully migrated to my own harness from Anthropic/Gemini and I think it’s time to share it. Welcome DSH, the DeepSeek Harness, fully writ...
New
KristerV
Hey. Is there anyone here who creates agents in their apps? Not talking about using agents, but creating them. I’m finding it pretty diff...
New
OndrejValenta
(I just needed to vent somewhere and LinkedIn is full of hope, or hype, I’m not sure which exactly) AI dream has many faces, but general...
New
kip
Localize is the next generation localisation library for Elixir. Think of it as ex_cldr version 3.0. The first version will be released ...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews