Version 0.10.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
me@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.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') is `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 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'
────────────────────────────────────────────────────
… …