ruby-changes:24837
From: nobu <ko1@a...>
Date: Mon, 3 Sep 2012 18:31:49 +0900 (JST)
Subject: [ruby-changes:24837] nobu:r36888 (trunk): ruby-additional.el
nobu 2012-09-03 18:31:37 +0900 (Mon, 03 Sep 2012) New Revision: 36888 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=36888 Log: ruby-additional.el * misc/ruby-additional.el: missing functions in Emacs 24. Added files: trunk/misc/ruby-additional.el Index: misc/ruby-additional.el =================================================================== --- misc/ruby-additional.el (revision 0) +++ misc/ruby-additional.el (revision 36888) @@ -0,0 +1,59 @@ +;; missing functions in Emacs 24. + +(eval-after-load "\\(\\`\\|/\\)ruby-mode\\.elc?\\(\\.gz\\)?\\'" + (progn + (define-key ruby-mode-map "\C-c\C-e" 'ruby-insert-end) + (define-key ruby-mode-map "\C-c{" 'ruby-toggle-block) + + (defun ruby-insert-end () + (interactive) + (if (eq (char-syntax (char-before)) ?w) + (insert " ")) + (insert "end") + (save-excursion + (if (eq (char-syntax (char-after)) ?w) + (insert " ")) + (ruby-indent-line t) + (end-of-line))) + + (defun ruby-brace-to-do-end () + (when (looking-at "{") + (let ((orig (point)) (end (progn (ruby-forward-sexp) (point)))) + (when (eq (char-before) ?\}) + (delete-char -1) + (if (eq (char-syntax (char-before)) ?w) + (insert " ")) + (insert "end") + (if (eq (char-syntax (char-after)) ?w) + (insert " ")) + (goto-char orig) + (delete-char 1) + (if (eq (char-syntax (char-before)) ?w) + (insert " ")) + (insert "do") + (when (looking-at "\\sw\\||") + (insert " ") + (backward-char)) + t)))) + + (defun ruby-do-end-to-brace () + (when (and (or (bolp) + (not (memq (char-syntax (char-before)) '(?w ?_)))) + (looking-at "\\<do\\(\\s \\|$\\)")) + (let ((orig (point)) (end (progn (ruby-forward-sexp) (point)))) + (backward-char 3) + (when (looking-at ruby-block-end-re) + (delete-char 3) + (insert "}") + (goto-char orig) + (delete-char 2) + (insert "{") + (if (looking-at "\\s +|") + (delete-char (- (match-end 0) (match-beginning 0) 1))) + t)))) + + (defun ruby-toggle-block () + (interactive) + (or (ruby-brace-to-do-end) + (ruby-do-end-to-brace))) + )) Property changes on: misc/ruby-additional.el ___________________________________________________________________ Added: svn:eol-style + LF -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/