Version 0.25.3 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.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 the relevant Font Lock keyword highlighting routines for compatibility with minor modes such as Prettify Symbols. Minor improvements to hole highlighting ─────────────────────────────────────── Sweep now uses a slightly smaller “box” around holes to highlight them in Prolog code, such that holes are displayed with the same dimensions of any other text. This avoids small visual jitter when inserting or removing holes in a buffer. Version 0.24.1 on 2023-09-09 ════════════════════════════ Refine checks for extracting goals to separate predicates ───────────────────────────────────────────────────────── Sweep now checks that the selected region is a goal at a callable position, rather than a data term, before suggesting to extract the region to a separate predicate in `sweeprolog-insert-term-dwim' (`M-RET') and in the right-click context menu. Version 0.24.0 on 2023-09-08 ════════════════════════════ New command `sweeprolog-extract-region-to-predicate' ──────────────────────────────────────────────────── This command lets you select a part of the body of a clause and extract it into a separate predicate. The command `sweeprolog-insert-term-dwim' (`M-RET') now invokes `sweeprolog-extract-region-to-predicate' if the region is active. … …