Remix.run Logo
▲ Sift: LSP, Lint, Format Lisp, Scheme and Emacs Lisp(github.com)
83 points by jjba23 2 days ago | 14 comments
▲widdershins a day ago | parent | next [-]

Looks 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.
▲fjdh 14 hours ago | parent | next [-]

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.

▲basch 10 hours ago | parent [-]

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.

▲fjdh 8 hours ago | parent [-]

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.

▲jjba23 a day ago | parent | prev [-]

appreciate your tip, thanks

▲vindarel 17 hours ago | parent | prev | next [-]

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/

▲vegnus a day ago | parent | prev | next [-]

As someone learning Scheme for fun, thank you

▲jjba23 a day ago | parent [-]

Love it if it is useful for you!

▲stackghost a day ago | parent | prev | next [-]

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?

▲mark_l_watson 19 hours ago | parent | next [-]

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

▲jjba23 a day ago | parent | prev [-]

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)

▲sargstuff a day ago | parent | prev [-]

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)

▲jjba23 a day ago | parent [-]

Might need to pick my battles into what I can reasonably support, but contribution is welcome, even for more obscure dialects :)

▲sargstuff 12 hours ago | parent [-]

Inspired by HN posts/discussions related to historical programming languages being based on tabular line input.