Sift: один инструмент для форматирования, линтинга и LSP для трёх диалектов Lisp

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

Sift — это идемпотентный форматтер, линтер с 92 правилами и языковой сервер для Scheme, Emacs Lisp и Common Lisp. Он читает файл как дерево форм с позициями в исходнике, поэтому форматирование не теряет комментарии, пустые строки и датум-комментарии, а повторный запуск ничего не меняет. Каждый диалект разбирается по своим правилам, а не по усреднённому компромиссу. Реализован на Guile 3.0 без зависимостей от C, распространяется под лицензией MIT.

Сохранение без потерь — это весь аргумент, а остальное следует из него: diff, чьи хунки и есть изменение, исправление, заменяющее один диапазон, правило, которое можно заглушить, не редактируя код, на который оно жалуется.
  1. vegnus

    Как человек, изучающий Scheme ради удовольствия, — спасибо

  2. stackghost

    Здорово! Я рад, что инструментарий для Lisp развивается, хотя необходимость устанавливать guile ради одного инструмента, вероятно, станет непреодолимым препятствием для обычных лисперов.

    Как обстоят дела с совместимостью с Sly/Slime?

  3. sargstuff

    Что!?! Нет поддержки форматирования BLC[0] PIC[1]? :-) (см. раздел Programs(BLC)[0] с примерами форматирования.)

    -------

    [0] : blc : https://esolangs.org/wiki/Binary_lambda_calculus

    [1] : PIC : https://en.wikipedia.org/wiki/PIC_(markup_language)

Ещё за этот день

2026-11-13