6 ms·
What would take Node integration in Emacs to the next level would be to do something like the various Lisp implementations and their Emacs modes (SLIME, Geiser,
by davexunit 11y ago
What would take Node integration in Emacs to the next level would be to do something like the various Lisp implementations and their Emacs modes (SLIME, Geiser, etc.) do: Talk to a running program to get information.
When I develop Scheme with Geiser, it knows which module I'm working in currently and it knows how to jump to the definition of any symbol by inspecting the source information attached to any Scheme object. I can quickly jump to the REPL or evaluate arbitrary expressions. No ctags/etags or other static analysis tools, just a REPL. It's a really productive way to write and debug code.
- barrkel 11y agoThat's how I write Ruby in Emacs. I have pry running in one pane, where I can write code with full context, then pull it across into the implementation.
- davexunit 11y agoThis doesn't sound like the same thing. Do you use an Emacs mode that is able to talk to the Pry REPL and retrieve information about the code you are working with? In addition to the other stuff I mentioned, Geiser also gives me symbol autocompletion, automatically shows me the printed representation of the value under the point, shows me the signature for the current procedure I'm working with, and shows docstrings if I press a special key combo. Maybe I didn't make this clear in my previous post, but Geiser does all of these things in the source buffers themselves, not just in the REPL buffer. If there's anything resembling this for Ruby or JavaScript I would love to know about because those are the two languages I am paid to work with.
- barrkel 11y agoFor me, coding in a debugger is a superior experience to coding with static type info - because I have data too, not just types. Ie completion isn't the big win - seeing live results of processing data is.
- davexunit 11y agoI can't tell if you are agreeing with me or if we are miscommunicating. Seeing live results of processing data is exactly the type of thing I do with Geiser in Emacs. No static analysis.
- barrkel 11y agoIf the information includes local variables and parameters, then we are agreeing; if not, then we are disagreeing.
- jeremiep 11y agoThat's exactly how I use ClojureScript and one of the main reasons why I'll never go back to JavaScript. :)