Fork me on GitHub
#off-topic
<
2020-07-02
>
flowthing09:07:50

I don’t know if there’s a better channel for this sort of thing, but: for the past few months, I’ve been working on making Sublime Text a viable alternative for REPL-driven Clojure development. I’d like to release the first version of my package soonish, but it would be great to have one or two people give it a go before that to weed out the worst bugs. If you’re interested, please DM me for details. Some screenshots and information about features in thread.

👍 3
👏 3
flowthing12:07:52

A partial list of features: • Interact with nREPL servers (Clojure, ClojureScript via Piggieback, Babashka) • REPL-powered symbol lookup (docstring, arglists) • REPL-powered goto definition • REPL-powered completion suggestions • Auto-indentation on newline, indentation on request • The buggiest Paredit implementation you’ll see (but it’s Clojure-oriented) Lookup, goto definition, and completions require nREPL 0.8, which is currently in alpha.

Timur Latypoff12:07:45

This sounds great! I was trying to set up Sublime Text (love its speed) to work with Clojure recently by installing multiple plugins, and found the setup pretty fragile so far.

flowthing12:07:28

Yeah, Tutkain (the package I’m working on) aims to provide a bespoke Clojure experience for Sublime Text. Basically, everything you need to make mayonnaise (see https://lambdaisland.com/blog/2017-12-29-the-bare-minimum-clojure-mayonnaise). I have to go feed my kid now, but if you want to try out the thing I’ve been working on, I can write up some instructions for you later when I get the chance. Or you can clone this repo https://github.com/eerohele/tutkain into your Sublime Text packages directory and give it a whirl. Run the Tutkain: Edit Key Bindings command via the Command Palette to check out the little documentation I’ve had time to write so far.

👍 3
flowthing13:07:22

Tutkain currently doesn’t know how to start an nREPL server, so you have to start one yourself and connect to it from Tutkain. For example:

clojure -Sdeps '{:deps {nrepl {:mvn/version "0.8.0-SNAPSHOT"}}}' -m nrepl.cmdline --port 1234
Or with Leiningen:
lein repl :headless :port 1234
Then run the Tutkain: Connect command.

salam02:07:42

https://mobile.twitter.com/nikitonsky might be interested in this and give you quality feedback.

flowthing16:07:30

@UDCGPTV9R thanks for the suggestion! I reached out to him, but it turns out he’s not doing much Clojure at the moment.

borkdude16:07:03

Is Docker on Windows drastically different from Docker on macOS when it comes to virtualization and performance?

tvaughan18:07:14

In my anecdotal experience, no. Perhaps with large source trees you might see differences with syncing changes between host mounted volumes, especially if you're using a file watcher inside the running container

tvaughan18:07:45

If you're starting from scratch, I recommend looking at multipass.run and http://podman.io instead of Docker™. It's not quite to the point of "install and run" on Windows or macOS yet, but minimizing the client/server architecture of Docker does make a difference with build times and process management

tvaughan19:07:15

An example of using Docker to build, test, and publish a Clojure app: https://gitlab.com/tvaughan/kibit-runner

borkdude19:07:29

Is that related somehow to Windows, or just showing something cool?

tvaughan19:07:04

I just mean to illustrate my point of reference. My comments are based on my experience of using Docker to do something like this

borkdude20:07:49

very cool, thanks

lockejan16:07:09

podman only runs on linux AFAIK. so it’s only possible to use podman as client to a remote linux machine.

tvaughan13:07:58

podman also has a network protocol. On Windows and macOS a podman server can be run inside a multipass VM (mentioned above). It's a pain in the butt to setup, but when setup it performs much better, and eliminating the client/server in production is a big win

👌 3