Version 0.25.5 of package Sweeprolog has just been released in NonGNU ELPA.
You can now find it in M-x list-packages RET.
Sweeprolog describes itself as:
===================
Embedded SWI-Prolog
===================
More at https://elpa.nongnu.org/nongnu/sweeprolog.html
## Summary:
Sweep is an embedding of SWI-Prolog in Emacs. It uses the C
interfaces of both SWI-Prolog and Emacs Lisp to let you query
Prolog directly from Elisp. On top of this tight integration,
Sweep provides an advanced development environment for SWI-Prolog
in Emacs.
## Recent NEWS:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SWEEP NEWS – HISTORY OF USER-VISIBLE CHANGES
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
This file contains the release notes for Sweep, an embedding of
SWI-Prolog in Emacs.
For further details, please consult the manual:
[https://eshelyaron.com/sweep.html].
[https://eshelyaron.com/sweep.html] <https://eshelyaron.com/sweep.html>
Version 0.25.5 on 2023-10-20
════════════════════════════
Improved predicate completion candidate sorting
───────────────────────────────────────────────
Sweep now sorts predicate completion candidates more intelligently,
placing predicates with a shorter functor ahead in the candidate list.
The top-level now uses ANSI escape sequences for output coloring
────────────────────────────────────────────────────────────────
For Sweep top-levels that use a pty (the default on Unix systems), the
top-level output now includes ANSI escape sequences that Emacs
automatically translates to text properties (colors, etc.). To have
Emacs filter out these escape sequences without applying the
corresponding text properties, set `ansi-color-for-comint-mode' to the
symbol `filter'.
Minor documentation improvements and bug fixes
──────────────────────────────────────────────
Version 0.25.4 on 2023-10-08
════════════════════════════
Fix recent issue with `sweeprolog-extract-region-to-predicate'
──────────────────────────────────────────────────────────────
This is a bug-fix release, addressing an issue with
`sweeprolog-extract-region-to-predicate' that was introduced in
version 0.25.3. The issue prevented goal extraction from the start or
middle of right-associative binary operator chains, including `,/2'
and thus affecting extraction from common conjunction chains.
Version 0.25.3 on 2023-10-07
════════════════════════════
`sweeprolog-extract-region-to-predicate' now supports lambda terms and existentially quantified goals
─────────────────────────────────────────────────────────────────────────────────────────────────────
The command `sweeprolog-extract-region-to-predicate' now supports
extracting `library(yall)' lambda terms to separate predicate
definitions. The new `sweeprolog-extract-region-to-predicate' also
improves the handling of existentially quantified goals (`X^Y^Goal'),
and in-clause disjunctions.
Various minor bug fixes and documentation improvements
──────────────────────────────────────────────────────
Version 0.25.2 on 2023-09-23
════════════════════════════
`sweeprolog-extract-region-to-predicate' can now replace all occurrences of the extracted goal in the buffer
────────────────────────────────────────────────────────────────────────────────────────────────────────────
You can now invoke `sweeprolog-extract-region-to-predicate' with a
prefix argument to have it check for other goals in the buffer that
are subsumed by the extracted goal, and suggest replacing them as well
with calls to the newly created predicate.
Version 0.25.1 on 2023-09-22
════════════════════════════
New command `sweeprolog-query-replace-term'
───────────────────────────────────────────
This commands lets you replace terms in the current buffer by
transforming them interactively. You can use to perform very precise
yet highly flexible code transformations. See the new manual section
“Term Replace” or type `C-h f sweeprolog-query-replace-term' for more
details.
Faster `sweeprolog-term-search'
───────────────────────────────
This version includes a reimplementation of the
`sweeprolog-term-search' command that is both simpler and much more
performant.
Version 0.25.0 on 2023-09-17
════════════════════════════
Snappier query highlighting in Sweep top-levels
───────────────────────────────────────────────
Sweep now highlights the query you insert in the top-level immediately
as you type it. In previous versions, query highlighting relied on a
short timer, that could lead to a small delay before Sweep would
update the highlighting when you change the query.
Sweep top-levels can now communicate via pty instead of local TCP
─────────────────────────────────────────────────────────────────
Sweep top-level buffers can now communicate with their corresponding
top-level threads via a pseudo-terminal (pty) device, instead of a
local TCP connection. Local TCP connections remain supported for
systems where Emacs cannot use a pty, such as MS Windows. On Unix
systems, top-levels now use pty by default.
Compatibility with and support for Prettify Symbols mode
────────────────────────────────────────────────────────
Sweep Prolog mode is now compatible with the Prettify Symbols minor
mode. Prettify Symbols mode, and similar features, rely on
`font-lock-add-keywords' to add highlighting patterns. Sweep does not
use Font Lock keywords for its highlighting, but now it does invoke …
…