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)