Skip to content

Instantly share code, notes, and snippets.

@realgenekim
realgenekim / cclsp-setup.md
Last active March 10, 2026 09:48
Setting up clojure-lsp (cclsp) and clojure-mcp for Claude Code — Clojure developer tooling

After watching the Clojure/conj 2025 talk on ECA, I was inspired to try using the clojure-lsp plugin. I stumbled upon the cclsp MCP server, which seemed like the ideal way to use this with Claude Code.

Enclosed below are all the instructions necessary to get them both up and running.

My high-level impressions:

  • Claude Code seems to love having cclsp around when doing large refactorings -- having done several, some with and some without, those with cclsp and clojure-lsp seem to go more smoothly

I'd love to hear your thoughts!

#!/usr/bin/env node
/*
Generate JavaScript stubs for npm dependencies so Cursive can index them
and provide CLJS completions even when node_modules is excluded.
Usage:
node generate-js-stubs.js --output stubs/js --depth 2 --max-props 200 --include-dev false --filter react*,lodash*
*/
const fs = require("fs");
#nginx config
upstream forwardedserver {
server 127.0.0.1:3030;
}
upstream forwardedsockets {
server 127.0.0.1:35729;
}
@ribelo
ribelo / doxa_re_frame.cljs
Last active April 18, 2021 17:02
doxa + re-frame
(require '[ribelo.doxa :as dx])
(require '[re-frame.core :as rf])
;; despite general good practice, in my case it doesn't work to keep all data in
;; one db. in every application I have to save some data and removing from store
;; data concerning ui and other stuff is not cool.
;; declare mutiple db
(def default-db (dx/create-dx))
// by dave @beesandbombs
int[][] result;
float t, c;
float ease(float p) {
return 3*p*p - 2*p*p*p;
}
float ease(float p, float g) {
@roman01la
roman01la / analyze.clj
Created March 18, 2021 01:42
analyzing unused and undefined re-frame subscriptions via clj-kondo
(ns analyze.core
(:require [clj-kondo.core :as clj-kondo]
[clojure.set :as set]))
;; checks re-frame's :<- syntax
;; to mark dependency subscriptions as used
(def analyze-reg-sub
"(require '[clj-kondo.hooks-api :as api])
(fn [{node :node}]
(let [[_ kw & children] (:children node)
@codeasone
codeasone / clojure-require-ordering-via-pre-commit-hook.org
Last active November 11, 2020 14:52
Maintaining order of namespace :require forms via pre-commit hook
@akovalev
akovalev / context.js
Last active December 10, 2023 22:41
Happy Eyeballs implementation using Context
// inspired by https://golang.org/pkg/context/
function noop() {
}
function makeBarrier() {
let open;
const whenOpened = new Promise((resolve, reject) => {
open = resolve;
});
@tomhicks
tomhicks / plink-plonk.js
Last active December 26, 2025 08:35
Listen to your web pages
@Biont
Biont / sway-launcher-desktop.sh
Last active October 12, 2025 12:28
sway-launcher-desktop
#!/usr/bin/env bash
# terminal application launcher for sway, using fzf
# Based on: https://gitlab.com/FlyingWombat/my-scripts/blob/master/sway-launcher
shopt -s nullglob
if [[ "$1" == 'describe' ]]; then
shift
if [[ $2 == 'command' ]]; then
title=$1
readarray arr < <(whatis -l "$1" 2>/dev/null)