GLMakie plotting in VSCode?

Hello,

I just updated my project’s dependencies and suddenly GLMakie displays my interactive plots in VSCode’s plot pane. Both Makie and GLMakie are at the latest versions. Was there any change as to how VSCode or GLMakie treats GLMalkie Screens ?

1 Like

Basically, this MWE used to open a window, now it does not if you enter this in VSCode’s REPL:

julia> Pkg.activate(temp=true)
  Activating new project at `C:\Users\Henri\AppData\Local\Temp\jl_KqLPC6`

julia> Pkg.add("GLMakie"); using GLMakie; lines(rand(10))

It still opens a window if used in a standard terminal like powershell.

1 Like

That’s actually amazing :heart_eyes: Thanks for making me discover it

Okay thank you. I don’t mind the change really but I think a warning message on package loading could be a simple way to tell users that this is not a bug. Because there’s no reason to interpret that as an intended change. It would also avoid you the burden of the many of us asking the question :s

I too noticed this. Thanks for explanation, @sdanisch . As some people mentioned in the GitHub issue, this is undesired behaviour when your plot is interactive. I notice you suggest a solution:

You can force it to always open a window by either disabling the plotpane or running GLMakie.activate!(inline=false)

Placing GLMakie.activate!(inline=false) directly before fig = Figure() fixed the issue for me. Thanks again.

2 Likes

I found this thread on Google having the opposite problem. So just to be sure, Makie (unlike Plots) defaults to opening separate windows for figures and does not use the VSCode plot pane by default, and if I want to use it I have to add GLMakie.activate!(inline=true) to my scripts?

You might have seen it already, but last message in thread:

States that the intended behaviour is now to by default open a new window, so yes, you would have to do the opposite.

Kind regards

It’s not Makie, it’s GLMakie. Because it is the only backend that has its own windows and it has far fewer features if it opts to use any other displays from the display stack. The other backends just use the display stack. Makie.inline!(true) effectively means “use the display stack”

1 Like

Ah, I guess last time I tried Makie I was using CairoMakie, that’s probably why I was surprised. What features do I lose when using the display stack?

In glmakie? All interactivity, it just gives you pngs then

I never noticed that they were interactive :smiley: