Version 0.8.0 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 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>. Version 0.8.0 on 2022-10-22 ═══════════════════════════ New command `sweeprolog-insert-term-dwim' in `sweeprolog-mode' buffers ────────────────────────────────────────────────────────────────────── This version introduces a new mechanism for context-based term insertion which revolves around a new command `sweeprolog-insert-term-dwim', bound to `C-M-m'. When invoked after a fullstop ending a predicate clause, this command inserts a new clause for the same predicate. When called with point over a call to an undefined predicate, this command insert a definition for that predicate after the current predicate definition. New command `sweeprolog-forward-hole' in `sweeprolog-mode' buffers ────────────────────────────────────────────────────────────────── This command, bound to `C-c C-i' in `sweeprolog-mode-map', moves the cursor and marks the next hole (placeholder variable) inserted by `sweeprolog-insert-term-dwim' for the user to fill it. References to Prolog library files are now linkified in help buffers ──────────────────────────────────────────────────────────────────── The HTML rendering `sweep' performs to display Prolog documentation in `*Help*' buffers now also recognizes reference to Prolog library files, such as `library(list)', in Prolog documentation. Clicking on such reference opens the corresponding file from the local Prolog library. Version 0.7.2 on 2022-10-20 ═══════════════════════════ `sweep-module' is now loaded on-demand ────────────────────────────────────── Previously, loading `sweeprolog.el' with e.g. `(require 'sweeprolog)' would cause Emacs to also load `sweep-module' immediately, unless the user option `sweeprolog-init-on-load' had been explicitly set by the user to nil. This version implements lazy loading of `sweep-module', which makes loading `sweeprolog.el' a lot faster and circumvents potential problems with byte-compiling Elisp files that depend on `sweeprolog.el' but do not have `sweep-module' available at compile time. Newly deprecated user option `sweeprolog-init-on-load' ────────────────────────────────────────────────────── The embedded Prolog is now loaded and initiated lazily, regardless of the value of `sweeprolog-init-on-load', which is now obsolete. Version 0.7.1 on 2022-10-19 ═══════════════════════════ Jumping to source works also for built-in predicates defined in C ───────────────────────────────────────────────────────────────── `sweep' now knows how to find and jump to the definitions of native built-in SWI-Prolog predicates defined in C, under the condition that the user has the SWI-Prolog sources checked out locally. See `C-h v sweeprolog-swipl-sources' and the new section “Built-in Native Predicates” in the manual for more information about this feature. Fixes and improvements to `sweeprolog-describe-predicate' ───────────────────────────────────────────────────────── This version fixes some compatibility issues with Emacs versions prior to 29 in `sweeprolog-describe-predicate'. Reported by Jan Wielemaker. Version 0.7.0 on 2022-10-17 ═══════════════════════════ New command `sweeprolog-describe-predicate' ─────────────────────────────────────────── Similarly to `sweeprolog-describe-module', this command renders the full `PlDoc' documentation of the specified Prolog predicate in a `help-mode' buffer. Prolog `*Help*' buffers are now cross-referenced ──────────────────────────────────────────────── References to Prolog predicates in the `*Help*' buffer produced by `sweeprolog-describe-module' and `sweeprolog-describe-predicate' are now “buttonized” such that pressing `RET' on them shows the description of the referenced predicate. Version 0.6.3 on 2022-10-16 ═══════════════════════════ New command `sweeprolog-describe-module' ──────────────────────────────────────── Experimental. Renders the full `PlDoc' documentation of the specified Prolog module in a `help-mode' buffer. Bug fix affecting `sweeprolog-document-predicate-at-point' ────────────────────────────────────────────────────────── This version includes a fix in `sweeprolog-beginning-of-top-term', which is used to locate the beginning of the current clause. Previously this function could hang when invoked with point before the first term on the buffer. This affected commands that depend of this function, … …