Version 0.8.4 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.4 on 2022-11-09 ═══════════════════════════ Various bug fixes ───────────────── • Fixed regression in variable highlighting where occurrences of the highlighted variable in adjacent clauses might have been highlighted. • Fixed regression and added a test for clearing the syntax error face immediately when the error is fixed (e.g. a fullstop is inserted at the end of a clause). Version 0.8.3 on 2022-11-07 ═══════════════════════════ New commands that operate on entire predicate definitions ───────────────────────────────────────────────────────── `sweeprolog-mode' now includes dedicated function for acting on predicate definitions that span multiple clauses. The new commands are `sweeprolog-forward-predicate' and `sweeprolog-backward-predicate' bound to `M-n' and `M-p' respectively, and `sweeprolog-mark-predicate' bound to `M-h'. Version 0.8.2 on 2022-11-07 ═══════════════════════════ Renamed `sweeprolog-colourise-*' to `sweeprolog-analyze-*' ────────────────────────────────────────────────────────── The following user options and commands have been renamed to better convey their meaning: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Old symbol name New symbol name ────────────────────────────────────────────────────────────────────────────────────── `sweeprolog-colourise-buffer' `sweeprolog-analyze-buffer' `sweeprolog-colourise-buffer-on-idle' `sweeprolog-analyze-buffer-on-idle' `sweeprolog-colourise-buffer-max-size' `sweeprolog-analyze-buffer-max-size' `sweeprolog-colourise-buffer-min-interval' `sweeprolog-analyze-buffer-min-interval' ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Version 0.8.1 on 2022-10-25 ═══════════════════════════ Added completion-at-point for variable names ──────────────────────────────────────────── When point is preceded by a valid Prolog variable name, invoking `completion-at-point' (with `C-M-i' or `M-TAB') now detects that it needs to complete a variable name and provides other variable names that occur in the same clause as completion candidates. 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' ────────────────────────────────────────────────────── … …