Version 0.8.10 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 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.8.10 on 2022-11-21 ════════════════════════════ `sweeprolog-top-level-signal-current' now calls `trace/0' by default ──────────────────────────────────────────────────────────────────── Calling `sweeprolog-top-level-signal-current' (e.g. with `C-c C-c') now signals the top-level thread with the goal specified by the user option `sweeprolog-top-level-signal-default-goal', instead of prompting for a goal. By default this user option is set to `"trace"', causing the top-level thread to enter trace mode. To have `sweeprolog-top-level-signal-current' prompt for a different goal on invocation, call it with a prefix argument, i.e. `C-u C-c C-c'. Fixes ───── • Fixed insertion of new clauses with `sweeprolog-insert-term-dwim' when the predicate at point is a DCG non-terminal or a predicate defined with SSU rules. `sweeprolog-insert-term-dwim' now detects and inserts the correct neck (`:-', `-->' or `=>') based on the previous clauses. Version 0.8.9 on 2022-11-19 ═══════════════════════════ Predicate completions now use holes for arguments ───────────────────────────────────────────────── When completing a predicate with `completion-at-point' (`C-M-i') and choosing a predicate that takes arguments, holes are inserted is place of each required argument. Syntax errors are now less intrusive ──────────────────────────────────── Syntax errors that occur due to incomplete terms are no longer immediately highlighted as such. `auto-insert' now leaves point at start of module summary ───────────────────────────────────────────────────────── Fixes ───── • Fixed error in `sweeprolog-export-predicate' (`C-c C-e') in presence of exported predicates. Reported by Jan Wielemaker. Version 0.8.8 on 2022-11-16 ═══════════════════════════ Added electric layout minor mode ──────────────────────────────── This version includes a new minor mode `sweeprolog-electric-layout-mode' that adjusts whitespace around point as you type to adhere to Prolog layout conventions. The top-level server in now started on-demand ───────────────────────────────────────────── The TCP server that accepts connections from top-level buffers is now only started on the first invocation of `sweeprolog-top-level', instead of being started already in `sweeprolog-init'. Fixed issue with syntax error highlighting at the end of the buffer ─────────────────────────────────────────────────────────────────── Syntax error highlighting is now removed more reliably when the syntax error is resolved. Version 0.8.7 on 2022-11-12 ═══════════════════════════ Revised predicate completion-at-point and added atom completion ─────────────────────────────────────────────────────────────── `sweep'’s completion at point now detects when predicate completion is appropriate based on the context of point. If point is at a non-callable position, atom completion is provided instead. Version 0.8.6 on 2022-11-11 ═══════════════════════════ New user option `sweeprolog-new-predicate-location-function' ──────────────────────────────────────────────────────────── This user option specifies a function to be called from `sweeprolog-insert-term-dwim' when defining a new predicate to choose the location of the new predicate definition. The default value of the option is a function `sweeprolog-default-new-predicate-location' which preserves the current behavior of placing the new predicate right below the current predicate. Other options include the new function `sweeprolog-new-predicate-location-above-current' which places the new predicate above the current one. Fixes ───── • Fixed issue where `sweeprolog-describe-predicate' would throw an error when describing predicates that were cross referenced but not loaded. Version 0.8.5 on 2022-11-10 ═══════════════════════════ New command `sweeprolog-xref-project-source-files' ────────────────────────────────────────────────── This command updates `sweep'’s cross reference data for all Prolog source files in the current project. Bound to `X' in `sweeprolog-prefix-map'. Minor bug fixes ─────────────── • Fixed issue where `sweeprolog-predicate-location' sometimes returned a file importing the predicate in question, rather than actually defining it. • Fixed issue where the `kill-buffer-hook' of top-level buffers would … …