Version 0.11.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 ## 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.11.0 on 2023-01-05 ════════════════════════════ New command `sweeprolog-term-search' ──────────────────────────────────── _Experimental_ new command, bound to `C-c C-s' in `sweeprolog-mode' buffers, prompts for a Prolog term and searches for terms subsumed by it in the current buffer. All matching terms are temporarily highlighted and the cursor moves to the start of the next occurrence after point. Fix bug where `sweeprolog-forward-predicate' got confused by dynamic predicates ─────────────────────────────────────────────────────────────────────────────── In previous versions, typing `M-n' (`sweeprolog-forward-predicate') would sometimes go to the next dynamic predicate, jumping over regular predicates that come before it. Version 0.10.1 on 2023-01-01 ════════════════════════════ New user option `sweeprolog-read-predicate-documentation-function' ────────────────────────────────────────────────────────────────── This user option control how `C-c C-d' (`sweeprolog-document-predicate-at-point') prompts for initial documentation information, namely argument modes, determinism specification and predicate summary. It specifies a function that `sweeprolog-document-predicate-at-point' calls to get this information. The default value of this option is a new function `sweeprolog-read-predicate-documentation-default-function' that preserves the current behavior of prompting the user to insert the needed information via the minibuffer. An alternative function that uses holes instead is also provided, it is called `sweeprolog-read-predicate-documentation-with-holes'. Improved handling of unbalanced quotes in `sweeprolog-mode' buffers ─────────────────────────────────────────────────────────────────── Previously, unbalanced quotes in a Prolog clause could cause Sweep to treat the entire rest of buffer as part of that clause, causing major slowdowns when inserting Prolog strings and quoted atoms in large buffers. To overcome this issue, this version introduces a mechanism for restricting analysis in such cases to the clauses surrounding the cursor. Version 0.10.0 on 2022-12-25 ════════════════════════════ New command `sweeprolog-insert-term-with-holes' ─────────────────────────────────────────────── This command, bound to `C-c C-m' (or `C-c RET') in `sweeprolog-mode' buffers, inserts a Prolog term at point with a given functor and arity, using holes in place of the term’s arguments. Holes are now always highlighted as such, even in incomplete terms ────────────────────────────────────────────────────────────────── Fix possible crash when resetting `sweep' with `sweeprolog-restart' ─────────────────────────────────────────────────────────────────── Version 0.9.6 on 2022-12-17 ═══════════════════════════ Indentation in `sweeprolog-mode' now respects `indent-tabs-mode' ──────────────────────────────────────────────────────────────── With non-nil `indent-tabs-mode', tabs are now used to indent lines in Prolog code buffers. New command for inferring the indentation style of the current buffer ───────────────────────────────────────────────────────────────────── The new command `sweeprolog-infer-indent-style' can be used to update the buffer-local values of `sweeprolog-indent-offset' and `indent-tabs-mode' according to the buffer’s existing indentation style. Fixes ───── • Fixed issue with `sweeprolog-indent-or-forward-hole', in previous versions it would fail to indent empty lines. Version 0.9.5 on 2022-12-10 ═══════════════════════════ `sweeprolog-align-spaces' now works also in comments ──────────────────────────────────────────────────── You can now use `sweeprolog-align-spaces' (or `cycle-spacing' in Emacs 28+) to get the “right” amount of whitespace around the cursor position inside comments. Improved interaction with `auto-fill-mode' ────────────────────────────────────────── `sweeprolog-mode' now customizes some settings related to text filling to make `auto-fill-mode' work as expected with SWI-Prolog comments. Fixes ───── • In previous versions, using `sweeprolog-predicate-location' on a loaded predicate would give precedence to the location from which a predicate was loaded, even if its source file has since been modified causing its location to differ. This behavior is fixed in the current version, which means that `M-.' and friends should always … …