Julia support for Geany (WIP)

Dear community,

thanks to efforts by @getzze, Julia support is coming to Geany. Geany is a lighweight crossplatform IDE that is somewhere between VIM and vscode.

Feedback / testers / contributers welcome!

https://github.com/geany/geany/pull/2584

Happy new year!
Andreas

25 Likes

If that works, then Julia is available through Scintilla in a bunch of other editors as well.

4 Likes

Thanks so much for posting this! I love geany and getting proper julia support will be great!

5 Likes

Thanks for the positive feedback!

REPL-style UTF-8 auto-completions like \:cat:<tab> work with a modified wordchars and [Julia] section in your snippets.conf:

https://github.com/AndiMD/geany/blob/julia_lexer/data/snippets.conf

1 Like

Just an update on that, Julia is supported by Geany since version 1.38!
https://github.com/geany/geany/releases/tag/1.38.0
Support for Scintilla was also added:
https://github.com/ScintillaOrg/lexilla/pull/13

Enjoy!

6 Likes

That is fantastic! Thanks.
I was just yesterday on my way to learn vim, to use it as an IDE on my Raspberry Pi. With Geany comming pre-installed, and with a friendlier look than vim, this is just perfect.

1 Like

So it turns out that the Geany version on my raspberry is 1.37. When I tried upgrading, it said that I have the latest version. When I tried to google my problems, I read something about debian having a conservative release cycle, and that it can take up to 2 years before the version that is automatically installed is updated.

But this is all my first time using Linux. Do you have any idea when it should be possible to update the pre-installed Geany version on Rasberry Pi OS (Raspian) ?

The short answer is that unfortunately, if you want the newest version you will need to compile it yourself. I did it specifically for this feature, and it’s not too hard (it took me about an hour). The TLDR of the steps is

  1. Install the dependencies. For me, this was the hardest part
  2. Download the source code
  3. configure and make
    Geany has somewhat detailed instructions. Feel free to ask me if you have any questions.

Thanks for your helpfullness. Ill see if I get arpund to it. Also concidering giving Vim a go, but it seems difficult to get running. Probably easier to build Geany myself xD

Hello fellow coders

I’ve used Julia previously, presently
though, I’m attempting to set up three
IDES .
In particular; VSCode, Codium and Geany.

As I’m using Ubuntu, for Geany I’ve set
the Edit,Preferences,Tools,Terminal to:
gnome-terminal -e “/bin/sh %c”

As I have libvte installed I set
Edit,Preferences,Terminal to:
Execute programs in the VTE

Now having done that I’m able to run the following
Julia script in Geany :

using Random

using GLMakie
GLMakie.activate!()
Makie.inline!(false) # Probably unnecessary?

function scatters_in_3D()
Random.seed!(123)
n = 10
x, y, z = randn(n), randn(n), randn(n)
aspect=(1, 1, 1)
perspectiveness=0.5
# the figure
fig = Figure(; resolution=(1200, 400))
ax1 = Axis3(fig[1, 1]; aspect, perspectiveness)
ax2 = Axis3(fig[1, 2]; aspect, perspectiveness)
ax3 = Axis3(fig[1, 3]; aspect=:data, perspectiveness)
scatter!(ax1, x, y, z; markersize=15)
meshscatter!(ax2, x, y, z; markersize=0.25)
hm = meshscatter!(ax3, x, y, z; markersize=0.25,
marker=Rect3f(Vec3f(0), Vec3f(1)), color=1:n,
colormap=:plasma, transparency=false)
Colorbar(fig[1, 4], hm, label=“values”, height=Relative(0.5))
colgap!(fig.layout, 5)
display(fig)
end

scatters_in_3D()

sleep(200) # may not be necessary

However this Julia script, within Geany,
doesn’t produce the expected graphical output :

using FileIO
using GLMakie

brain = load(assetpath(“brain.stl”))
GLMakie.activate!(inline=false)
fig = Figure(; resolution = (1000, 1000))
fig.mesh(
brain,
color = [tri[1][2] for tri in brain for i in 1:3],
colormap = Reverse(:Spectral),
figure = (resolution = (1000, 1000),)
)
#msh
display(fig)

sleep(200) # may not be necessary

exit()

Likely due to my unfamiliarity with the mesh
command.
Any suggestions ?

This code now runs mostly as expected.

Upon closing the window though, the exit() command doesn’t
return the vte terminal to the base directory; how do I do this
from within the code.

brainy

#using Shell
#useshell(“powershell”)
run(“ls”)

using FileIO
using GLMakie
GLMakie.activate!()
Makie.inline!(false) # Probably unnecessary?
using Random

brain = load(assetpath(“brain.stl”))

function fxyz()

mesh(
brain,
color = [tri[1][2] for tri in brain for i in 1:3],
colormap = Reverse(:Spectral),
figure = (resolution=(1000, 1000),)
)

end
#begin
fig=fxyz()
display(fig)
wait()
#sleep()
#exit()

#end

The previous code runs okay even if you don’t use vte and
just stay with gnome-terminal.

At least you’re able to exit that terminal by just clicking the close
tab.