Version 0.8.12 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: SWI-PROLOG EMBEDDED IN EMACS Eshel Yaron m...@eshelyaron.com ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ This manual describes the Emacs package `sweep' (or `sweeprolog'), which provides an embedded SWI-Prolog runtime inside of Emacs. Table of Contents ───────────────── ## 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.12 on 2022-11-22 ════════════════════════════ `sweeprolog-top-level-signal-current' uses the classic top-level interrupt interface ──────────────────────────────────────────────────────────────────────────────────── `sweeprolog-top-level-signal-default-goal' is now set to call the new SWI-Prolog built-in predicate `prolog_interrupt/0'. This predicate invokes the classic SWI-Prolog top-level interrupt interface similarly to pressing `C-c' in a terminal-bound top-level. New user option `sweeprolog-highlight-holes' ──────────────────────────────────────────── When non-nil (the default), holes in Prolog buffers are highlighted with a dedicated face to help visually distinguishing them from regular Prolog variables. `sweeprolog-forward-hole' is now bound in `sweeprolog-top-level' buffers ──────────────────────────────────────────────────────────────────────── Previously this command was only bound in `sweeprolog-mode'. It is now bound to `C-c C-i' in both major modes. Fixes ───── Inserting a new clause for a module-qualified predicate now works as expected ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ Using `sweeprolog-insert-term-dwim' to insert the next clause of a module-qualified predicate definition would previously not work correctly. This use case is now works as expected. Fixed possible non-termination finding the next term, causing Emacs to hang ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ This version fixes an issue where the function `sweeprolog-beginning-of-next-top-term', used by in the `flymake' integration of `sweeprolog-mode', could hang when called near the end of the buffer. Version 0.8.11 on 2022-11-21 ════════════════════════════ `sweeprolog-new-predicate-location-function' signature changed ────────────────────────────────────────────────────────────── The function specified by `sweeprolog-new-predicate-location-function' should now take three arguments, namely the functor, arity and neck of the new predicate, instead of taking only the predicate indicator as a sole argument. `sweeprolog-insert-term-dwim' now supports defining undefined DCG non-terminals ─────────────────────────────────────────────────────────────────────────────── Defining a previously undefined predicate with `sweeprolog-insert-term-dwim' now analyzes the context of the undefined predicate invocation to determine if it is expected to be a DCG non-terminal, in which case an appropriate non-terminal definition is inserted instead of a regular predicate. Version 0.8.10 on 2022-11-21 ════════════════════════════ `sweeprolog-top-level-signal-current' now calls `trace/0' by default ──────────────────────────────────────────────────────────────────── Calling `sweeprolog-top-level-signal-current' (`C-c C-c' in `sweeprolog-top-level' buffers) now signals the top-level thread with the goal specified by the user option `sweeprolog-top-level-signal-default-goal', instead of prompting for a goal. By default this user option is set to `"trace"', causing the top-level thread to enter trace mode. To have `sweeprolog-top-level-signal-current' prompt for a different goal instead, call it with a prefix argument, i.e. `C-u C-c C-c'. Fixes ───── • Fixed insertion of new clauses with `sweeprolog-insert-term-dwim' when the predicate at point is a DCG non-terminal or a predicate defined with SSU rules. `sweeprolog-insert-term-dwim' now detects and inserts the correct neck (`:-', `-->' or `=>') based on the previous clauses. Version 0.8.9 on 2022-11-19 ═══════════════════════════ Predicate completions now uses holes for arguments ────────────────────────────────────────────────── When completing a predicate with `completion-at-point' (`C-M-i') and choosing a predicate that takes arguments, holes are inserted is place of each required argument. Syntax errors are now less intrusive ──────────────────────────────────── Syntax errors that occur due to incomplete terms are no longer immediately highlighted as such. `auto-insert' now leaves point at start of module summary ───────────────────────────────────────────────────────── Fixes ───── • Fixed error in `sweeprolog-export-predicate' (`C-c C-e') in presence of exported predicates. Reported by Jan Wielemaker. Version 0.8.8 on 2022-11-16 ═══════════════════════════ Added electric layout minor mode ──────────────────────────────── … …