[ANN] REPLSmuggler.jl: Send code to your Julia REPL, and get Neo-Vim diagnostics in return

This is great! I have also used vim-slime for a long time and incorrect source location is my main gripe too.

Here are some feedback from just playing around a bit:

  • When using vim-slime (or copy-pasting manually) with something like:
    function foo()
        x = 45
        y = x * 3
    end
    
    the Julia REPL look like this after:
    julia> function foo()
               x = 32
               y = x + foo(x)
               return y
           end
    foo (generic function with 1 method)
    
    whereas with REPLSmuggler the indentation is off and you end up with
    julia> function foo()
        x = 32
        y = x + foo(x)
        return y
    end
    foo (generic function with 1 method)
    
    Would it be possible to keep the paste-behavior also with REPLSmuggler?
  • When smuggling a visual range it would be great to let the cursor stay in its original position (see vim-slime#354 for the same issue in vim-slime).
  • One great thing with vim-slime is that you don’t need to do anything in the REPL before sending text. It would be amazing if, when trying to smuggle, using REPLSmuggler; smuggle() could be sent to the target REPL automatically somehow.
  • With vim-slime I often reconfigure the target window (e.g. two Julia REPLs with different Julia versions running). I have it configured so that :SlimeConfig automatically targets the last visited tmux pane. I see that you can reconfigure also with REPLSmuggler but you then have to remember which socket belong to which pane etc. It would be great to make switching like this easier.
  • There seem to be no way to clear the error diagnostics
  • I initially thought that calling functions manually in the REPL would also have errors hooked up to show in the editor, do you think this would be possible?
  • Do you think REPLSmuggler can be used as a debugger frontend?
3 Likes