tpope / vim-fireplace

fireplace.vim: Clojure REPL support
https://www.vim.org/scripts/script.php?script_id=4978
1.74k stars 139 forks source link

Enable Unix domain socket support #418

Open chancerussell opened 1 month ago

chancerussell commented 1 month ago

Resolves #417.

The socket support can be tested by starting a repl with a command like clj -Srepro -Sdeps '{:deps {nrepl/nrepl {:mvn/version "1.1.1"}}}' -M -m nrepl.cmdline --socket /tmp/my_socket then connecting to it in Vim with :FireplaceConnect /tmp/my_socket.

This patch allows users to connect to nREPL servers running on Unix domain sockets by modifying :FireplaceConnect to let users provide a connection string pointing to a socket file on the filesystem.

This is accomplished by modifying the setup code to identify such connection strings and skip the URL building process and updating the Python script to look for non-URL strings and attempt to connect to them as socket type AF_UNIX.

For now, socket connections are assumed to be using the nrepl scheme, and the current directory (or b:java_root) is used to populate the "Scope connection to: " prompt.

Also removes the vestigial second argument to the Python script.