Function: ruby-do-end-to-brace
ruby-do-end-to-brace is a byte-compiled function defined in
ruby-mode.el.gz.
Signature
(ruby-do-end-to-brace ORIG END)
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/ruby-mode.el.gz
(defun ruby-do-end-to-brace (orig end)
(let (beg-marker end-marker beg-pos end-pos)
(goto-char (- end 3))
(when (looking-at ruby-block-end-re)
(delete-char 3)
(setq end-marker (point-marker))
(insert "}")
(goto-char orig)
(delete-char 2)
(insert "{")
(if (looking-at "\\s +|")
(progn
(just-one-space (if ruby-toggle-block-space-before-parameters 1 0))
(setq beg-marker (point-marker))
(forward-char)
(re-search-forward "|" (line-end-position) t))
(setq beg-marker (point-marker)))
(save-excursion
(skip-chars-forward " \t\n\r")
(setq beg-pos (point))
(goto-char end-marker)
(skip-chars-backward " \t\n\r")
(setq end-pos (point)))
(when (or
(< end-pos beg-pos)
(and (= (line-number-at-pos beg-pos) (line-number-at-pos end-pos))
(< (+ (current-column) (- end-pos beg-pos) 2) fill-column)))
(just-one-space -1)
(goto-char end-marker)
(just-one-space -1))
(goto-char beg-marker)
t)))