diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | misc/ruby-electric.el | 33 |
2 files changed, 29 insertions, 9 deletions
@@ -1,3 +1,8 @@ +Fri Apr 24 23:48:45 2015 Akinori MUSHA <knu@iDaemons.org> + + * misc/ruby-electric.el: Import version 2.2.3 from + https://github.com/knu/ruby-electric.el. + Fri Apr 24 10:40:02 2015 NAKAMURA Usaku <usa@ruby-lang.org> * win32/win32.c (rb_w32_{getc,putc}): removed. they are needed for old diff --git a/misc/ruby-electric.el b/misc/ruby-electric.el index 2d84954a77..f54e91ccbc 100644 --- a/misc/ruby-electric.el +++ b/misc/ruby-electric.el @@ -10,7 +10,7 @@ ;; URL: https://github.com/knu/ruby-electric.el ;; Keywords: languages ruby ;; License: The same license terms as Ruby -;; Version: 2.2.2 +;; Version: 2.2.3 ;;; Commentary: ;; @@ -33,6 +33,9 @@ (require 'ruby-mode) +(eval-when-compile + (require 'cl)) + (defgroup ruby-electric nil "Minor mode providing electric editing commands for ruby files" :group 'ruby) @@ -279,19 +282,31 @@ enabled." (t (ruby-electric-space/return-fallback)))) -(defun ruby-electric-code-at-point-p() +(defun ruby-electric--get-faces-at-point () + (let* ((point (point)) + (value (or + (get-text-property point 'read-face-name) + (get-text-property point 'face)))) + (if (listp value) value (list value)))) + +(defun ruby-electric--faces-at-point-include-p (&rest faces) (and ruby-electric-mode - (let* ((properties (text-properties-at (point)))) - (and (null (memq 'font-lock-string-face properties)) - (null (memq 'font-lock-comment-face properties)))))) + (loop for face in faces + with pfaces = (ruby-electric--get-faces-at-point) + thereis (memq face pfaces)))) + +(defun ruby-electric-code-at-point-p() + (not (ruby-electric--faces-at-point-include-p + 'font-lock-string-face + 'font-lock-comment-face))) (defun ruby-electric-string-at-point-p() - (and ruby-electric-mode - (consp (memq 'font-lock-string-face (text-properties-at (point)))))) + (ruby-electric--faces-at-point-include-p + 'font-lock-string-face)) (defun ruby-electric-comment-at-point-p() - (and ruby-electric-mode - (consp (memq 'font-lock-comment-face (text-properties-at (point)))))) + (ruby-electric--faces-at-point-include-p + 'font-lock-comment-face)) (defun ruby-electric-escaped-p() (let ((f nil)) |