-
-
Notifications
You must be signed in to change notification settings - Fork 65
RFC: Make inferior-julia smarter #106
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RFC: Make inferior-julia smarter #106
Conversation
0e019ff to
a5fd422
Compare
I am probably biased as I maintain julia-repl, but I find it sufficient for my needs (especially with vterm, which is coming soon). I am also enthusiastic @gcv's julia-snail. I would prefer if we kept this package focused on the mode for editing Julia code, mainly because I am not sure anyone is willing to commit to maintaining a REPL so I am concerned about bit rot. If possible, I would suggest that experiments with inferior/REPL solutions happen in other packages. |
|
I'd say that if you have already done the work, go for it. I wrote elsewhere about the multiple packages available for julia REPLs in emacs [1]. It seems like the support for Julia is in a state of flux, so perhaps it is worth a compare-and-contrast of several approaches? |
This commit cleans up the code for inferior-julia and adds highlighting and linking for error messages. It also allows ? ] and ; REPL magic prefixes to work as expected. It also enables compilation-mode in inferior-julia buffers so that you can click on stacktrace lines and be navigated to the relevant file and line.
TODO: - Robustness - Completing properties (e.g. "Pkg.s") - Using inferior-julia-completion-table within julia-mode as well as inferior-julia
a5fd422 to
d93361d
Compare
Should the existing I will note that not having a full-featured |
Yes, I think so. I will open an issue.
Possibly, but that's how it is. All solutions I am aware of are either WIP, have some serious limitations, or both. The way things are set up now, people can keep experimenting with various approaches to interacting with the REPL, while at the same time relying on this package to handle dealing with code. (Incidentally, you list 8 languages including Julia, with 3 of them not having a REPL built-in to the default mode. Calling this unique is a somewhat heterodox use of the word.)
I am fine with anyone using Initially, maybe it would be preferable to use another name while you are working on this project, and in the meantime we can deprecate and remove inferior-julia. |
Ha. I completely forgot about
Good point. Fwiw, I am a bit more committed to this than when I submitted this PR--I think I can have something very nice to use with only 100-200 more lines of code. Since the primary reason I'm not using emacs-jupyter is the difficulty of hacking on it, this is very appealing to me. |
This is not at a point where's it's ready to merge yet.
Basically, I'd like feedback before I put more time into this on whether other people find this useful. Instead of having people using any one of emacs-jupyter, ess, or julia-repl to get a Julia REPL in Emacs, why not just improve the one we already have?
Much of the work in this PR takes its inspiration from the builtin
inferior-octave.This PR implements:
?,], and;REPL modes (I wouldn't be against adding piecemeal support for things like the debugger or perhaps just creating an entirely separate comint-based mode for that).Future work:
inferior-juliainjulia-mode.inferior-julia.eldoc-documentation-functionintegration.I'm submitting this here not because I think it's ready to be merged (the issues in the completion commit need fixed first) but to get feedback on whether others would find value in me putting more time into this or whether everyone finds the existing situation with in-emacs Julia REPLs tolerable. Please try this PR and give any feedback. I'd hate to add a bunch of code that simply sits and rots if I ever lose use for it for whatever reason...
Thoughts? Do we want a full-featured REPL included in
julia-modeor is this better relegated to external packages?