Sift brings one formatter, linter and language server to Scheme, Emacs Lisp and Common Lisp

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

Sift is a Guile 3.0 tool that reads Lisp source as a tree of forms and rewrites only whitespace, guaranteeing byte-exact preservation of comments and idempotent formatting. It handles Scheme, Emacs Lisp and Common Lisp by each dialect's own rules, ships 92 documented lint rules with single-range fixes, and doubles as an LSP server for Emacs, Neovim and other clients. It installs via Guix or Nix and is MIT licensed.

A square bracket is a vector in one of them and a clause in the next, and sift does not average the two.
  1. vegnus

    As someone learning Scheme for fun, thank you

  2. 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?

  3. 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)

More from this day

2026-11-13