Settings

Theme

Sift: LSP, Lint, Format Lisp, Scheme and Emacs Lisp

github.com

83 points by jjba23 · 14 comments

Reader

5 threads
widdershins

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

    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

      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

        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.

  • jjba23OP

    appreciate your tip, thanks

vindarel

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

As someone learning Scheme for fun, thank you

stackghost

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

    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

  • jjba23OP

    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

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)

  • jjba23OP

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

    • sargstuff

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

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection