Version 0.9.6 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.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 find the up-to-date location of predicate definitions. • Fixed possible infinite loop in `sweeprolog-beginning-of-predicate-at-point' near the beginning of the buffer. This issue could be seen by calling `sweeprolog-document-predicate-at-point' (`C-c C-d') with point in the first clause of the buffer. Version 0.9.4 on 2022-12-06 ═══════════════════════════ New minor mode for moving to holes with `TAB' ───────────────────────────────────────────── This version introduces a new minor mode `sweeprolog-forward-hole-on-tab-mode', which binds `TAB' to a command that moves either indents the current line or moves to the next hole in the buffer, in a DWIM fashion. Fixes and minor improvements ──────────────────────────── • Automatic indentation is improved to accommodate for DCG RHS contexts and SSU guards. • `sweeprolog-identifier-at-point' now qualifies head terms with according to the current module (e.g. `foo:bar/2' is returned when point is over `bar(_, _)' in module `foo'). 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 … …