Recognize let-go as a known nREPL runtime#3926
Merged
Merged
Conversation
let-go (https://github.com/nooga/let-go) is a Clojure dialect implemented in Go that ships an nREPL server. Connections work today via plain `cider-connect-clj`, but `cider-runtime` reported `generic` for them, so the connection info line was bare (no runtime version). Add a `cider--let-go-version` helper that reads the `let-go` key from the `describe` response's `versions` map (let-go reports separate `major`/`minor` fields rather than a `version-string`, hence the custom format). Wire it into `cider-runtime`, the capability table in `cider--connected-handler`, and the `cider--connection-info` runtime cond. Also list let-go on the "Other Platforms" docs page. Verified end-to-end against a running let-go 2.0.2 nREPL: connection info reads `CLJ project@localhost:2137 (let-go 1.0)` and a simple `(+ 1 2)` round-trips as expected.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
let-go is a Clojure dialect implemented in Go that ships an nREPL server. Connections work today via plain
cider-connect-clj, butcider-runtimereportedgeneric, so the connection info line was bare.This PR teaches CIDER about the runtime:
cider--let-go-versionreads thelet-gokey from thedescriberesponse'sversionsmap. let-go reports separatemajor/minorfields rather than aversion-string, so the helper formatsMAJOR.MINOR.cider-runtimereturnslet-gofor these connections.cider--set-connection-capabilitiesaddslet-goto the capability list (informational only, matching the babashka/nbb/scittle pattern).cider--connection-infogets a new clause so the info line shows(let-go 1.0)instead of falling through to the bare format.Verified end-to-end against let-go 2.0.2: connection info reads
CLJ project@localhost:2137 (let-go 1.0)and a basic(+ 1 2)eval round-trips.let-go's nREPL supports the core ops (
clone,close,eval,load-file,describe,completions,complete,info,lookup,ls-sessions,interrupt) but not the cider-nrepl middleware, so the feature set you get is bare nREPL plus inline completion/info. The "Other Platforms" page already documents that limitation.