emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/sweeprolog 0e324b3216: Announce recent changes in NEWS.org


From: ELPA Syncer
Subject: [nongnu] elpa/sweeprolog 0e324b3216: Announce recent changes in NEWS.org and bump version to 0.9.4
Date: Tue, 6 Dec 2022 15:59:47 -0500 (EST)

branch: elpa/sweeprolog
commit 0e324b3216ff031104fefbdb23e081d88ed1e7f6
Author: Eshel Yaron <me@eshelyaron.com>
Commit: Eshel Yaron <me@eshelyaron.com>

    Announce recent changes in NEWS.org and bump version to 0.9.4
---
 NEWS.org            | 17 +++++++++++++++++
 README.org          | 36 +++++++++++++++++++++++++++---------
 sweeprolog-tests.el | 32 ++++++++++++++++++++++++++++++++
 sweeprolog.el       |  2 +-
 4 files changed, 77 insertions(+), 10 deletions(-)

diff --git a/NEWS.org b/NEWS.org
index 0d1a0eb46a..8f785a5e25 100644
--- a/NEWS.org
+++ b/NEWS.org
@@ -11,6 +11,23 @@ SWI-Prolog in Emacs.
 For further details, please consult the manual:
 <https://eshelyaron.com/sweep.html>.
 
+* 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+)
diff --git a/README.org b/README.org
index 03115c0e9b..e3b19e9a27 100644
--- a/README.org
+++ b/README.org
@@ -158,9 +158,8 @@ corresponds to =argv[0]=.
 #+VINDEX: sweeprolog-init-args
 ~sweep~ loads and initializes Prolog on-demand at the first invocation
 of a command that requires the embedded Prolog.  The arguments used to
-initialize Prolog in case are determined by the value of the
-user-option ~sweeprolog-init-args~ which the user is free to extend with
-e.g.:
+initialize Prolog are then determined by the value of the user-option
+~sweeprolog-init-args~ which the user is free to extend with e.g.:
 
 #+begin_src emacs-lisp
   (add-to-list 'sweeprolog-init-args "--stack-limit=512m")
@@ -171,6 +170,31 @@ The default value of ~sweeprolog-init-args~ is set to load 
the Prolog
 helper library =sweep.pl= and to create a boolean Prolog flag ~sweep~, set
 to ~true~, which indicates to SWI-Prolog that it is running under ~sweep~.
 
+#+CINDEX: command line arguments
+#+FINDEX: sweeprolog-handle-command-line-args
+It is also possible to specify initialization arguments to SWI-Prolog
+by passing them as command line arguments to Emacs, which can be
+convenient when using Emacs and =sweep= as an alternative for the common
+shell-based interaction with SWI-Prolog.  This is achieved by adding
+the flag ~--swipl-args~ followed by any number of arguments intended for
+SWI-Prolog, with a single semicolon (";") argument marking the end of
+the SWI-Prolog arguments, after which further arguments are processed
+by Emacs as usual (see [[info:emacs#Emacs Invocation][Emacs Invocation]] for 
more information about
+Emacs's command line options), for example:
+
+#+begin_src sh
+  emacs --some-emacs-option --swipl-args -l foobar.pl \; --more-emacs-options
+#+end_src
+
+In order for =sweep= to be able to handle Emacs's command line
+arguments, the function ~sweeprolog-handle-command-line-args~ must be
+called before Emacs processes the ~--swipl-args~ argument.  This can be
+ensured by calling it from the command line as well:
+
+#+begin_src sh
+  emacs -f sweeprolog-handle-command-line-args --swipl-args -l foobar.pl \;
+#+end_src
+
 #+FINDEX: sweeprolog-restart
 The embedded Prolog runtime can be reset using the command
 ~sweeprolog-restart~.  This command cleans up the the Prolog state and
@@ -1712,12 +1736,6 @@ there some further improvements that we want to pursue:
   directories containing SWI-Prolog =pack.pl= package definitions as
   root project directories.
 
-- Add command line arguments handling for Prolog flags :: ~sweep~ should
-  make it easy to specify Prolog initialization arguments (see 
[[#prolog-init][Prolog
-  initialization and cleanup]]) already in the Emacs command line
-  invocation.  One way to achieve that would be to extend
-  ~command-line-functions~ with a custom command line arguments handler.
-
 - Extend the provided Elisp-Prolog interface :: Currently, the Elisp
   interface that ~sweep~ provides for querying Prolog only allows
   calling directly to predicates of arity 2 (see [[#querying-prolog][Querying 
Prolog]]),
diff --git a/sweeprolog-tests.el b/sweeprolog-tests.el
index 46a4c612a4..43abff1745 100644
--- a/sweeprolog-tests.el
+++ b/sweeprolog-tests.el
@@ -762,6 +762,38 @@ bar(X) :- permutation(X, [1,2,3]).
 "
                      ))))
 
+(ert-deftest update-dependencies-autoload-from-package ()
+  "Tests making implicit autoloads from a package explicit."
+  (let ((temp (make-temp-file "sweeprolog-test"
+                              nil
+                              "pl"
+                              "
+:- module(foo, [bar/1]).
+
+/** <module> Foo
+
+*/
+
+bar(X) :- http_open(X, X, X).
+"
+                              )))
+    (find-file-literally temp)
+    (sweeprolog-mode)
+    (call-interactively #'sweeprolog-update-dependencies)
+    (should (string= (buffer-string)
+                     "
+:- module(foo, [bar/1]).
+
+/** <module> Foo
+
+*/
+
+:- autoload(library(http/http_open), [ http_open/3
+                                     ]).
+
+bar(X) :- http_open(X, X, X).
+"))))
+
 (ert-deftest update-dependencies ()
   "Tests making implicit autoloads explicit."
   (let ((temp (make-temp-file "sweeprolog-test"
diff --git a/sweeprolog.el b/sweeprolog.el
index 88fde91240..3fd1765650 100644
--- a/sweeprolog.el
+++ b/sweeprolog.el
@@ -6,7 +6,7 @@
 ;; Maintainer: Eshel Yaron <~eshel/dev@lists.sr.ht>
 ;; Keywords: prolog languages extensions
 ;; URL: https://git.sr.ht/~eshel/sweep
-;; Package-Version: 0.9.3
+;; Package-Version: 0.9.4
 ;; Package-Requires: ((emacs "28.1"))
 
 ;; This file is NOT part of GNU Emacs.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]