branch: elpa/sweeprolog
commit d3e1128ec3e3f2df4f28393f19cdfe7d35c62a27
Merge: 4ca222305f 78d17308c9
Author: Eshel Yaron <m...@eshelyaron.com>
Commit: Eshel Yaron <m...@eshelyaron.com>

    Merge remote-tracking branch 'geoffchurch/underscores-anywhere'
---
 sweeprolog-tests.el | 15 +++++++++++----
 sweeprolog.el       |  6 +++---
 2 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/sweeprolog-tests.el b/sweeprolog-tests.el
index 7827345e32..541bdce108 100644
--- a/sweeprolog-tests.el
+++ b/sweeprolog-tests.el
@@ -281,30 +281,37 @@ foo(Foo) :- bar.
                    "foo(bar, (_->_;_), _):-_.")))
 
 (sweeprolog-deftest rename-variable ()
-  "Tests renaming varialbes."
+  "Tests renaming variables."
   "foo(Bar,Baz) :- spam(Baz,Bar)."
   (goto-char (point-min))
-  (sweeprolog-rename-variable "Bar" "Spam")
+  (sweeprolog-rename-variable "Bar" "_S_p_a_m_")
   (sweeprolog-rename-variable "Baz" "Bar")
-  (sweeprolog-rename-variable "Spam" "Baz")
+  (sweeprolog-rename-variable "_S_p_a_m_" "Baz")
   (should (string= (buffer-string)
                    "foo(Baz,Bar) :- spam(Bar,Baz).")))
 
 (sweeprolog-deftest increment-variable ()
-  "Tests renaming varialbes."
+  "Tests renaming variables."
   "
 foo(Bar0,Bar) :-
+    spam(Bar_0,Bar_1),
     spam(Bar0,Bar1),
+    bar(Bar_1,Bar_2),
     bar(Bar1,Bar2),
+    baz(Bar_2,Bar),
     baz(Bar2, Bar).
 "
   (goto-char (1+ (point-min)))
   (sweeprolog-increment-numbered-variables 1 (point) "Bar1")
+  (sweeprolog-increment-numbered-variables 1 (point) "Bar_2")
   (should (string= (buffer-string)
                    "
 foo(Bar0,Bar) :-
+    spam(Bar_0,Bar_1),
     spam(Bar0,Bar2),
+    bar(Bar_1,Bar_3),
     bar(Bar2,Bar3),
+    baz(Bar_3,Bar),
     baz(Bar3, Bar).
 ")))
 
diff --git a/sweeprolog.el b/sweeprolog.el
index 6bf58de09b..b3d6d49d8a 100644
--- a/sweeprolog.el
+++ b/sweeprolog.el
@@ -1433,7 +1433,7 @@ list even when found in the current clause."
       (goto-char beg)
       (save-match-data
         (while (re-search-forward (rx bow (or "_" upper)
-                                      (* alnum))
+                                      (* (or "_" alnum)))
                                   end t)
           (unless (nth 8 (syntax-ppss))
             (let ((match (match-string-no-properties 0)))
@@ -6807,13 +6807,13 @@ is the name of the variable at point, if any."
     (let ((case-fold-search nil))
       (not
        (not
-        (string-match (rx bos (or "_" upper) (* alnum) eos) string))))))
+        (string-match (rx bos (or "_" upper) (* (or "_" alnum)) eos) 
string))))))
 
 (defun sweeprolog--decode-numbered-variable-name (string)
   "Return t if STRING is valid number variable name."
   (save-match-data
     (let ((case-fold-search nil))
-      (when (string-match (rx bos (group-n 1 (or "_" upper) (or (seq (* alnum) 
letter)
+      (when (string-match (rx bos (group-n 1 (or "_" upper) (or (seq (* (or 
"_" alnum)) letter)
                                                                 ""))
                               (group-n 2 (or "0" (seq (any (?1 . ?9)) (* 
digit)))) eos)
                           string)

Reply via email to