Version 0.22.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.el'), which provides an embedded SWI-Prolog runtime inside of Emacs. Table of Contents ───────────────── Overview .. Main Features .. Architecture .. Alternatives Installation Getting Started Discovering Sweep Initialization Querying Prolog .. Elisp to Prolog .. Prolog to Elisp .. Example Query .. Call Back to Elisp Editing Prolog Code .. Indentation ..... Indentation Rules .. Highlighting ..... PceEmacs Theme ..... Highlight Variables ..... Quasi-Quotation .. Hover for Help .. Code Layout ..... Aligning Spaces ..... Electric Layout mode .. Term-based Editing ## 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.22.0 on 2023-07-20 ════════════════════════════ New in-buffer completion implementation ─────────────────────────────────────── This version of Sweep includes an overhaul of the way the `completion-at-point' command (`C-M-i') works in `sweeprolog-mode' buffers. Sweep now performs a more refined analysis of the code around point when you invoke `completion-at-point' to determine what kind of completion candidates to provide. This results in the following improvements: • Completion now works also for quoted atoms and functors • Completion now avoids inserting parentheses and arguments after completing a compound term when the opening parenthesis is already in place before you invoke `completion-at-point' • Completion now takes into account the qualifying module (if any) when completing predicate calls, and suggests only predicates defined in that module Version 0.21.0 on 2023-06-27 ════════════════════════════ New `sweeprolog-pce' custom theme ───────────────────────────────── This version of Sweep adds a custom theme called `sweeprolog-pce' that mimics the highlighting of SWI-Prolog’s built-in editor, PceEmacs. This theme obsoletes the “faces styles” feature that Sweep provided thus far for the purpose of emulating PceEmacs highlighting. For backward compatibility, the user option `sweeprolog-faces-style' is retained for the next few versions. Also, if you have `sweeprolog-faces-style' set to `light' or `dark', Sweep tries to respect that by enabling the `sweeprolog-pce' theme for you when you first open a Prolog buffer, which should achieve the same result of mimicking PceEmacs highlighting. Descriptions for module completion candidates ───────────────────────────────────────────── Commands that read a Prolog module name in the minibuffer now provide enhanced information about completion candidates. Namely, the annotation for documented modules now also includes the module’s one line description. `C-x 4 a' in Prolog buffers finds the predicate indicator at point ────────────────────────────────────────────────────────────────── Sweep now defines a dedicated `add-log-current-defun-function' for `sweeprolog-mode' buffers. This allows `C-x 4 a' and related commands to correctly identify the predicate definition at point for inclusion in commit messages and change log entries. Version 0.20.0 on 2023-06-19 ════════════════════════════ New user option `sweeprolog-top-level-persistent-history' ───────────────────────────────────────────────────────── This option controls if and where Sweep top-level buffers store their input history persistently. Persistent history is off by default, refer to the “Top-level History” section in the manual for more details. Version 0.19.1 on 2023-06-14 ════════════════════════════ New user option `sweeprolog-predicate-visible-p-function' ───────────────────────────────────────────────────────── This option specifies a function that is used for filtering completion candidates in commands that prompt for a predicate. By default, it is set to a function that hides predicates whose functor begin with the character `$'. Further improvements in DCG support ─────────────────────────────────── DCG completion at point argument names ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ Sweep is now able to use the argument names from the documentation of DCG grammar rules to give more indicative names for holes when completing a DCG invocation. Documenting DCGs with `C-c C-d' ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ The command `sweeprolog-document-predicate-at-point' (`C-c C-d') now correctly handles documenting DCG grammar rules. Minor code simplifications and bug fixes ──────────────────────────────────────── 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 … …