Bespoke IDE for Julia desperately needed!

Hi Johnh, Thanks for your interest. I am an academic, working across many areas, including Statistics, Machine Learning, Mathematical Modelling, Operations Research, Finance/Econometrics, Optimization.

Thanks in advance for your suggestions and recommendations.

I use Atom and Juno both on Fedora linux and Windows 10
I recently got a new windows 10 laptop and was very pleasantly surprised yesterday that a simple
apm-beta install uber-juno set up everything for me.

The main problems seen on here with Atom are when there are upgrades.
I do understand the you get frustrated. But computers are at their hear rxtremely dumb. If they do not get fed exacrlt the right bits and bytes they fall over.

2 Likes

Yes, maybe what I am talking about is more a need for a Bespoke update/upgrade path if a Bespoke IDE itself is not practical.
If there were any of the IDE client developers who were in direct contact with the Julia developers (so that updates could be ensured to be mutually compatible) that would be great! A big ask, I guess!

Thanks

I think we never had any issues with updates for the VS Code extension. We take great care to ship everything that we need with the extension itself and not rely on anything in the .julia folder, and that generally makes our update story very robust.

5 Likes

That is a strong selling point! I am even more keen to try it now!

I did wrote an IDE in Julia, it’s a bit wonky and hard to install but I still prefer it over the alternatives.

One feature I added recently that is awesome is history autocomplete in the editor, basically you can search in the console history and insert the piece of code in the editor, it’s super useful to recall one liners you’ve used in the past.

4 Likes

Looked cool so I decided to try it.

Unfortunately when I tried to install the dependencies using the links you gave I got:

ERROR: could not find project file in package at https://github.com/jonathanBieler/JuliaWordsUtils.jl.git

ERROR: could not find project file in package at https://github.com/jonathanBieler/GtkTextUtils.jl.git

ERROR: could not find project file in package at https://github.com/jonathanBieler/GtkIDE.jl.git

Any hints?

[If installing only involves pasting these lines then that is not difficult]

Thanks

You’re using v1.4 right ? I’ll try to fix those and message you when it’s done.

Great - thanks.

BTW I tried Julia1.2 and couldn’t get it working either. Perhaps I should install Julia 1.0 to try it (in case you are delayed in updating it)?

Hi. Thanks. This (VS-julia) seems to work for Mac and looks nice.

Unfortunately, I am looking for a solution that would work on my Ubuntu server as well.

I tried installing VS on the server (18.04) but it doesn’t work.
I just get a transparent window. Looking at the postings, there seem to be lots of windowing issues with linux which haven’t been resolved.
I spent an hour or so trying various suggestions posted online, but no luck.
I may have to wait and try this option again later.
Maybe I’ll use it some on my Mac - Thanks!

Maybe the VS Code Remote solution might work for you?

That looks really cool! I’ll have to play around with it!

Thanks again!

I’ve put some screencasts of various LanguageServer.jl + eglot features in the README of eglot-jl.

The minimum installation directions would be:

jupyter-emacs is actually the more fiddly of the two (because of the jupyter installation not because of emacs), but I’ll try to put together minimal config guide later. It can be installed by the same method as eglot-jl above. You just have to mess around with IJulia and your PATH to make sure that when jupyter executes it’s the installation of jupyter which has an IJulia kernelspec installed.

Unless you’re happy with the above vs-code/atom solutions in which case I can save some time for both of us by not doing so. :stuck_out_tongue:

10 Likes

I’ll take this opportunity to ask an eglot question:
Say you are working inside a package you are developing, do you get completions for functions coming from modules which are used by the package, but where the using statements are in another file (e.g. the entry file defining the module has some using statements and includes some other files, and you are working inside one of the other files) ?
Also do you get completions for functions defined in other files which belong to the package you are working on?

Last time I checked I was getting only completions from Base, stuff defined in the current file and packages being loaded in the current file.

Just tested and it’s working for me in the case I tested (once the language server is completely ready including the symbol server having cached all manifest packages). If you have a case where it’s not working, please file a bug against LanguageServer.jl

Yes.

In general in my experience completion reliability of the language server has improved by leaps and bounds in the past 6 months to a year.

3 Likes

Hi and Thanks for that.

I recall that I had tried that, and installed melpa to the archives as instructed.
But had not succeeded beyond there.

Now when I try using M-x package-install (as suggested above), it insists on adding a ‘-’ after install and would not allow the syntax

M-x package-install eglot-jl

Are you sure of the syntax of that? Does it mean I don’t have things installed correctly? Or did you mean M-x package-install-file…?

Thanks again

Run just M-x package-install; afterward it will interactively prompt for the package to be installed. At that point you type “eglot-jl”.

In general, I’d recommend reading through the emacs manual (accessed within emacs by C-h i or by invoking M-x info and selecting the “Emacs” node). Here’s the section on package management:

https://www.gnu.org/software/emacs/manual/html_node/emacs/Packages.html#Packages

2 Likes

OK, that worked - thanks.

Sorry, but could you please tell me where to add
(setq eglot-connect-timeout 120) to init
and (eglot-jl-init) to init
(I assume .emacs is ok to use, but where in that file do
these go?)

Thanks - nearly there, I think!

Your emacs init file is just a series of elisp expressions which are executed sequentially (similar to how a Julia script works but with more parentheses). For those 2 particular expressions, it shouldn’t matter where they’re placed as long as it’s at the top level (not inside any parentheses).

https://www.gnu.org/software/emacs/manual/html_node/emacs/Init-File.html

2 Likes

OK great. Do I need to start the language server from Julia and type M-x eglot or something to get going? I am sorry to be so ignorant, but it seems all the ‘how to’ information online assumes much more understanding than I have. [PS I have been using Emacs since it superseded TECO (which I used to teach at a community college), just not doing very complicated things, but rather doing the basics well.]

Thanks