diff options
author | Dmitry Gutov <dgutov@yandex.ru> | 2021-01-04 21:13:33 +0200 |
---|---|---|
committer | Dmitry Gutov <dgutov@yandex.ru> | 2021-01-04 21:13:53 +0200 |
commit | 1e776d7d6a5672de15b2ee9c75f5637ca1756280 (patch) | |
tree | 451ad256b3b156a8252215bbe0cc531ed9ca4dcf | |
parent | 97226aacfde717ec48fa8931c870497e089da17b (diff) | |
download | emacs-1e776d7d6a5672de15b2ee9c75f5637ca1756280.tar.gz |
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.
-rw-r--r-- | lisp/progmodes/ruby-mode.el | 9 | ||||
-rw-r--r-- | 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 3effb6ed662..cd9d087856c 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 67b592e9070..42a011c8bcd 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))) |