diff options
Diffstat (limited to 'lisp/progmodes/ruby-mode.el')
-rw-r--r-- | lisp/progmodes/ruby-mode.el | 9 |
1 files changed, 6 insertions, 3 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) |