* lisp/progmodes/ruby-mode.el (ruby-beginning-of-defun)
(ruby-end-of-defun, ruby-move-to-block): Bind `case-fold-search' to nil. (ruby-end-of-defun): Remove the unused arg, change the docstring to reflect that this function is only used as the value of `end-of-defun-function'. (ruby-beginning-of-defun): Remove "top-level" from the docstring, to reflect an earlier change that beginning/end-of-defun functions jump between methods in a class definition, as well as top-level functions.
This commit is contained in:
parent
21e8fe2f85
commit
fb549d640a
3 changed files with 62 additions and 10 deletions
|
@ -1,3 +1,16 @@
|
|||
2013-04-15 Dmitry Gutov <dgutov@yandex.ru>
|
||||
|
||||
* progmodes/ruby-mode.el (ruby-beginning-of-defun)
|
||||
(ruby-end-of-defun, ruby-move-to-block): Bind `case-fold-search'
|
||||
to nil.
|
||||
(ruby-end-of-defun): Remove the unused arg, change the docstring
|
||||
to reflect that this function is only used as the value of
|
||||
`end-of-defun-function'.
|
||||
(ruby-beginning-of-defun): Remove "top-level" from the docstring,
|
||||
to reflect an earlier change that beginning/end-of-defun functions
|
||||
jump between methods in a class definition, as well as top-level
|
||||
functions.
|
||||
|
||||
2013-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* minibuffer.el (minibuffer-complete): Don't just scroll
|
||||
|
|
|
@ -847,22 +847,24 @@ Can be one of `heredoc', `modifier', `expr-qstr', `expr-re'."
|
|||
indent))))
|
||||
|
||||
(defun ruby-beginning-of-defun (&optional arg)
|
||||
"Move backward to the beginning of the current top-level defun.
|
||||
"Move backward to the beginning of the current defun.
|
||||
With ARG, move backward multiple defuns. Negative ARG means
|
||||
move forward."
|
||||
(interactive "p")
|
||||
(and (re-search-backward (concat "^\\s *" ruby-defun-beg-re "\\_>")
|
||||
nil t (or arg 1))
|
||||
(beginning-of-line)))
|
||||
(let (case-fold-search)
|
||||
(and (re-search-backward (concat "^\\s *" ruby-defun-beg-re "\\_>")
|
||||
nil t (or arg 1))
|
||||
(beginning-of-line))))
|
||||
|
||||
(defun ruby-end-of-defun (&optional arg)
|
||||
"Move forward to the end of the current top-level defun.
|
||||
With ARG, move forward multiple defuns. Negative ARG means
|
||||
move backward."
|
||||
(defun ruby-end-of-defun ()
|
||||
"Move point to the end of the current defun.
|
||||
The defun begins at or after the point. This function is called
|
||||
by `end-of-defun'."
|
||||
(interactive "p")
|
||||
(ruby-forward-sexp)
|
||||
(when (looking-back (concat "^\\s *" ruby-block-end-re))
|
||||
(forward-line 1)))
|
||||
(let (case-fold-search)
|
||||
(when (looking-back (concat "^\\s *" ruby-block-end-re))
|
||||
(forward-line 1))))
|
||||
|
||||
(defun ruby-beginning-of-indent ()
|
||||
"Backtrack to a line which can be used as a reference for
|
||||
|
@ -881,6 +883,7 @@ current block, a sibling block, or an outer block. Do that (abs N) times."
|
|||
(depth (or (nth 2 (ruby-parse-region (line-beginning-position)
|
||||
(line-end-position)))
|
||||
0))
|
||||
case-fold-search
|
||||
down done)
|
||||
(when (< (* depth signum) 0)
|
||||
;; Moving end -> end or beginning -> beginning.
|
||||
|
|
|
@ -487,6 +487,42 @@ VALUES-PLIST is a list with alternating index and value elements."
|
|||
(ruby-beginning-of-block)
|
||||
(should (= 1 (line-number-at-pos)))))
|
||||
|
||||
(ert-deftest ruby-move-to-block-does-not-fold-case ()
|
||||
(ruby-with-temp-buffer
|
||||
(ruby-test-string
|
||||
"foo do
|
||||
| Module.to_s
|
||||
|end")
|
||||
(end-of-buffer)
|
||||
(let ((case-fold-search t))
|
||||
(ruby-beginning-of-block))
|
||||
(should (= 1 (line-number-at-pos)))))
|
||||
|
||||
(ert-deftest ruby-beginning-of-defun-does-not-fold-case ()
|
||||
(ruby-with-temp-buffer
|
||||
(ruby-test-string
|
||||
"class C
|
||||
| def bar
|
||||
| Class.to_s
|
||||
| end
|
||||
|end")
|
||||
(goto-line 4)
|
||||
(let ((case-fold-search t))
|
||||
(beginning-of-defun))
|
||||
(should (= 2 (line-number-at-pos)))))
|
||||
|
||||
(ert-deftest ruby-end-of-defun-skips-to-next-line-after-the-method ()
|
||||
(ruby-with-temp-buffer
|
||||
(ruby-test-string
|
||||
"class D
|
||||
| def tee
|
||||
| 'ho hum'
|
||||
| end
|
||||
|end")
|
||||
(goto-line 2)
|
||||
(end-of-defun)
|
||||
(should (= 5 (line-number-at-pos)))))
|
||||
|
||||
(provide 'ruby-mode-tests)
|
||||
|
||||
;;; ruby-mode-tests.el ends here
|
||||
|
|
Loading…
Add table
Reference in a new issue