Sift: LSP, Lint, Format Lisp, Scheme and Emacs Lisp
github.comLooks like a nice tool, but please de-AI-ify your README text.
`check` answered the question a pipeline asks, whether anything would change, with a status and a patch, and wrote nothing.
How about a nice straightforward: `check` returns 0 if the formatting is good. If not, it prints a patch to stdout and returns 1. It never modifies your files.
I don't mind people using AI to write code, or even text, but I think taking some pride in how the project is presented (and that's primarily through good writing) is critical to engaging potential users.Another comment said:
> Neat! I’m glad lisp tooling is moving along, though having to install guile for a single tool is probably a nonstarter for common lispers.
But I'd argue that this isn't even moving anything along; I'd be very reluctant to use this given the amount of vibe-codedness-smell that it shows. We have the impression right now that a lot of tooling is moving forward, but it's just slop that's likely to get abandoned in the near future.
It’s interesting that the lack of effort that goes into creating something creates a reduced emotional attachment to ensuring it’s long term success or caretaking.
When everything is shiny and it’s easy to move along to the next project you can complete in a week, everything becomes “abandonware” and yet llms also make it easier than ever to pick up where something was left off and modernize it in a flash, thus making stewardship itself of less value.
Then what even is the value of creating and owning something? I might as well recreate all my dependencies from scratch. The reason I use something like Emacs is because I trust the people maintaining it that they will make choices I agree with or are in my interest most of the time, and that they care about what the create and have taken the time to make sure that it's high quality. Something that another person has cooked up quickly to solve a problem I care about isn't worth anything to me unless it offers a level of quality I wouldn't be able to match with a few hours/days of LLM-whacking.
appreciate your tip, thanks
For CL, see also:
https://github.com/hyotang666/trivial-formatter · https://github.com/eschulte/lisp-format · https://github.com/yitzchak/cl-indentify
https://github.com/fukamachi/mallet "A sensible Common Lisp linter that catches real mistakes, not style"
and ocicl's built-in linter and auto-fixer https://github.com/ocicl/ocicl/
As someone learning Scheme for fun, thank you
Love it if it is useful for you!
Neat! I’m glad lisp tooling is moving along, though having to install guile for a single tool is probably a nonstarter for common lispers.
What’s the interop story with Sly/Slime?
My thought also. I often use local models for Common Lisp and Scheme coding and edit errors on s-expressions are a time-waster. Using sift with appropriate lisp codings skills might improve things. Worth a try.
After my morning coffee I will try an installation using:
brew install guile ; git clone https://github.com/jjba23/sift.git ~/sift ; ln -s ~/sift/bin/sift /usr/local/bin/sift ; sift version ; sift doctor
You can run SLY / Geiser or any other REPL and that will be a compliment to sift, so you will have an even better experience, LSP + REPL is a really killer combo in my opinion and works well. Only you need to tweak your editor to make good decisions for you in some regards like go to definition (you may see duplicates)
What!?! No support for BLC[0] PIC[1] formatting? :-) (see Programs(BLC) section[0] for format examples.)
-------
[0] : blc : https://esolangs.org/wiki/Binary_lambda_calculus
[1] : PIC : https://en.wikipedia.org/wiki/PIC_(markup_language)
Might need to pick my battles into what I can reasonably support, but contribution is welcome, even for more obscure dialects :)
Inspired by HN posts/discussions related to historical programming languages being based on tabular line input.