Version 0.9.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: 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.9.3 on 2022-11-27 ═══════════════════════════ Added repeat keymap for `sweeprolog-forward-hole' (Emacs 28+) ───────────────────────────────────────────────────────────── This allows repeating the command after the first invocation with `TAB'. Predicate completion now names inserted holes based on the predicate’s documentation ──────────────────────────────────────────────────────────────────────────────────── Completing predicate invocations with `C-M-i' (`completion-at-point') now infers specific names for the holes inserted as argument placeholders based on the predicate’s `PlDoc' specification, when present. Version 0.9.2 on 2022-11-26 ═══════════════════════════ New command `sweeprolog-update-dependencies' ──────────────────────────────────────────── Bound to `C-c C-u' in `sweeprolog-mode' buffers, this command analyzes the current buffer looking for calls to implicitly autoloaded predicates, and adds or updates `autoload/2' and `use_module/2' directives to make the dependencies on these predicates explicit. New user option `sweeprolog-note-implicit-autoloads' ──────────────────────────────────────────────────── Boolean flag, when non-nil `flymake' also reports implicitly autoloaded predicates in `sweeprolog-mode' buffers. Enabled by default. Version 0.9.1 on 2022-11-25 ═══════════════════════════ Predicate completion adjusts candidates arity according to the context ────────────────────────────────────────────────────────────────────── Completing predicate invocations with `completion-at-point' now takes into account the number of arguments that will be implicitly added to the created predicate call by the context, and adjusts the completion candidates appropriately. This applies both to DCG non-terminal bodies (where two implicit arguments are normally added to all predicate invocations), and to meta-calls such as `include(foo, L0, L)' where the sole argument of `foo/1' is implicitly passed by `include/3'. Variable highlighting now excludes anonymous variables ────────────────────────────────────────────────────── Unlike other variables, occurrences of anonymous variables (`_') are no longer highlighted when the cursor enters one, since being anonymous they are semantically unrelated to each other. Version 0.9.0 on 2022-11-23 ═══════════════════════════ New command for creating `PlUnit' test blocks ───────────────────────────────────────────── The new command `sweeprolog-plunit-testset-skeleton', accessible from the `Sweep' menu-bar entry, inserts a template for a block of unit tests at the location of the cursor. Fixes ───── • Fixed and added regression tests for an issue where `sweeprolog-beginning-of-next-top-term' would get confused by multi-line comments starting at the beginning of a line. Version 0.8.13 on 2022-11-23 ════════════════════════════ This is a bug-fix release, solving an issue introduced in version 0.8.12 where highlighting goals qualified with a variable module would throw an error. 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 ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ … …