Version 0.19.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.el'),
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].
[https://eshelyaron.com/sweep.html] <https://eshelyaron.com/sweep.html>
Version 0.19.0 on 2023-06-08
════════════════════════════
Greatly improved support for DCG grammar rules
──────────────────────────────────────────────
This version includes an overhaul of Sweep’s treatment of DCG grammar
rules. Crucially, commands that suggest the predicate at point as a
default option now correctly recognize and format grammar rules as
such. Furthermore, `sweeprolog-describe-predicate' now correctly
displays the documentation for grammar rules.
Bug fix in `context-menu-mode' integration
──────────────────────────────────────────
In previous versions, Sweep would change the global value of
`context-menu-functions' which caused non-Prolog buffers to be
analyzed as such. This was never intended, and now Sweep only changes
`context-menu-functions' locally in Prolog buffers.
Version 0.18.4 on 2023-06-06
════════════════════════════
Highlighting and tooltip info for string-style DCG terminals
────────────────────────────────────────────────────────────
Sweep now highlights and annotates DCG terminals written as quoted
strings in grammar rule definitions.
Improved exporting of DCG non-terminals
───────────────────────────────────────
The command `sweeprolog-export-predicate' now exports DCG
non-terminals as such, using the `F//N' notation, instead of `F/N+2'.
Version 0.18.3 on 2023-06-01
════════════════════════════
Semantic highlighting and tooltip info for declaration options
──────────────────────────────────────────────────────────────
Sweep now highlights declaration options, such as the `volatile'
keyword in the following definition:
┌────
│ :- dynamic foo/1 as volatile.
└────
Declaration options use the new face `sweeprolog-declaration-option'.
Furthermore, Sweep now adds the `help-echo' property to declaration
options, providing additional information about specific declarations
on hover.
Backward compatibility for `sweeprolog-make-example-usage-comment'
──────────────────────────────────────────────────────────────────
The new command `sweeprolog-make-example-usage-comment', added to
Sweep in version 0.18.2, can now be used also with Emacs 27. (The
prior version of this command relied on an Emacs function that has
only been introduced in Emacs 28.)
Version 0.18.2 on 2023-05-30
════════════════════════════
New command `sweeprolog-make-example-usage-comment'
───────────────────────────────────────────────────
This command, bound to `C-c C-%' in `sweeprolog-mode' buffers, lets
you capture and insert top-level interaction logs demonstrating your
code’s usage as source code comments. See the new “Example Usage
Comments” in the manual for more details.
Version 0.18.1 on 2023-05-26
════════════════════════════
Support for SWI-Prolog’s new macros mechanism
─────────────────────────────────────────────
SWI-Prolog recently introduced a new mechanism for using macros,
implemented in `library(macros)'. Sweep now provides semantic
highlighting and tooltip information for these macros, as well as a
new command `sweeprolog-expand-macro-at-point' for replacing macro
invocations with their replacements in source buffers.
Fixed issue with tokenization of adjacent distinct operators in Elisp
─────────────────────────────────────────────────────────────────────
Version 0.18.0 on 2023-05-24
════════════════════════════
Faster predicate completion in large projects
─────────────────────────────────────────────
Completing predicates in `sweeprolog-mode' buffers now pre-filters
candidates based on the text around point, making the entire process
much faster in large projects with many defined predicates.
Removed the `-face' suffix from names of defined faces
──────────────────────────────────────────────────────
Sweep defines many faces for highlighting different kinds of text. In
prior versions, these faces were given names such as
`sweeprolog-foo-face'. This version removes the redundant `-face'
suffix from all face names. (So the same face would now be called
simply `sweeprolog-foo'.)
Version 0.17.0 on 2023-02-16
════════════════════════════
New user option `sweeprolog-dependency-directive'
─────────────────────────────────────────────────
This user option determines the preferred Prolog directive to use in
`sweeprolog-update-dependencies' for adding new explicit dependencies
in the buffer. See the documentation for possible values. … …