clojure-emacs / clojure-emacs/cider
Figure out how to encode nil and an empty list differently
- Dominant language
- Emacs Lisp
- Stars
- 3.7k
- Forks
- 651
- Avg merge
- 11h 6m
- Merged PRs (30d)
- 33
Description
One big pain when working with nREPL today is that in Emacs a `nil` and an empty list are the same thing. This means that nils and empty lists get encoded the same way (as empty lists) in nREPL requests and we can't differentiate them in the nREPL middlewares.
We need to figure out a some special way to encode nil to avoid problems like https://github.com/clojure-emacs/cider/issues/2357 down the road.
@vspinu Any thoughts on this? I was thinking we might just treat some symbol specially - e.g. `nrepl/nil` or something like this. It's extremely unlikely something like this would come up in user code.
Contributor guide
Research direction
Start by examining how nREPL requests encode nil and empty lists, then read the related CIDER issue 2357 and the middleware handling involved. Done means the protocol can distinguish nil from an empty list without creating ambiguity with user code.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- clojure, emacs-lisp
- Domain
- api, developer-experience
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100