emacs-diffs
[Top][All Lists]
Advanced

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

master 1e776d7: ruby-add-log-current-method: Support methods with symbol


From: Dmitry Gutov
Subject: master 1e776d7: ruby-add-log-current-method: Support methods with symbolic names
Date: Mon, 4 Jan 2021 14:14:05 -0500 (EST)

branch: master
commit 1e776d7d6a5672de15b2ee9c75f5637ca1756280
Author: Dmitry Gutov <dgutov@yandex.ru>
Commit: Dmitry Gutov <dgutov@yandex.ru>

    ruby-add-log-current-method: Support methods with symbolic names
    
    * lisp/progmodes/ruby-mode.el (ruby-add-log-current-method):
    Support methods with symbolic names.
---
 lisp/progmodes/ruby-mode.el            | 9 ++++++---
 test/lisp/progmodes/ruby-mode-tests.el | 3 ++-
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el
index 3effb6ed..cd9d087 100644
--- a/lisp/progmodes/ruby-mode.el
+++ b/lisp/progmodes/ruby-mode.el
@@ -1598,13 +1598,16 @@ See `add-log-current-defun-function'."
         (let* ((indent 0) mname mlist
                (start (point))
                (make-definition-re
-                (lambda (re)
+                (lambda (re &optional method-name?)
                   (concat "^[ \t]*" re "[ \t]+"
                           "\\("
                           ;; \\. and :: for class methods
-                          "\\([A-Za-z_]" ruby-symbol-re "*[?!]?\\|\\.\\|::" 
"\\)"
+                          "\\([A-Za-z_]" ruby-symbol-re "*[?!]?"
+                          (when method-name? "\\|")
+                          (when method-name? ruby-operator-re)
+                          "\\|\\.\\|::" "\\)"
                           "+\\)")))
-               (definition-re (funcall make-definition-re ruby-defun-beg-re))
+               (definition-re (funcall make-definition-re ruby-defun-beg-re t))
                (module-re (funcall make-definition-re "\\(class\\|module\\)")))
           ;; Get the current method definition (or class/module).
           (when (re-search-backward definition-re nil t)
diff --git a/test/lisp/progmodes/ruby-mode-tests.el 
b/test/lisp/progmodes/ruby-mode-tests.el
index 67b592e..42a011c 100644
--- a/test/lisp/progmodes/ruby-mode-tests.el
+++ b/test/lisp/progmodes/ruby-mode-tests.el
@@ -497,7 +497,8 @@ VALUES-PLIST is a list with alternating index and value 
elements."
 (ert-deftest ruby-add-log-current-method-examples ()
   (let ((pairs '(("foo" . "#foo")
                  ("C.foo" . ".foo")
-                 ("self.foo" . ".foo"))))
+                 ("self.foo" . ".foo")
+                 ("<<" . "#<<"))))
     (dolist (pair pairs)
       (let ((name  (car pair))
             (value (cdr pair)))



reply via email to

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