emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r113436: * lisp/progmodes/ruby-mode.el (ruby-block-b


From: Dmitry Gutov
Subject: [Emacs-diffs] trunk r113436: * lisp/progmodes/ruby-mode.el (ruby-block-beg-keywords): Inline.
Date: Tue, 16 Jul 2013 19:16:44 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 113436
revision-id: address@hidden
parent: address@hidden
committer: Dmitry Gutov <address@hidden>
branch nick: trunk
timestamp: Tue 2013-07-16 23:16:51 +0400
message:
  * lisp/progmodes/ruby-mode.el (ruby-block-beg-keywords): Inline.
  (ruby-font-lock-keyword-beg-re): Extract from
  `ruby-font-lock-keywords'.
modified:
  lisp/ChangeLog                 changelog-20091113204419-o5vbwnq5f7feedwu-1432
  lisp/progmodes/ruby-mode.el    
rubymode.el-20091113204419-o5vbwnq5f7feedwu-8804
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2013-07-16 14:47:23 +0000
+++ b/lisp/ChangeLog    2013-07-16 19:16:51 +0000
@@ -2,6 +2,9 @@
 
        * progmodes/ruby-mode.el (ruby-font-lock-keywords): Do not
        highlight question marks in the method names as strings.
+       (ruby-block-beg-keywords): Inline.
+       (ruby-font-lock-keyword-beg-re): Extract from
+       `ruby-font-lock-keywords'.
 
 2013-07-16  Jan Djärv  <address@hidden>
 

=== modified file 'lisp/progmodes/ruby-mode.el'
--- a/lisp/progmodes/ruby-mode.el       2013-07-16 14:47:23 +0000
+++ b/lisp/progmodes/ruby-mode.el       2013-07-16 19:16:51 +0000
@@ -46,11 +46,6 @@
   :prefix "ruby-"
   :group 'languages)
 
-(defconst ruby-keyword-end-re
-  (if (string-match "\\_>" "ruby")
-      "\\_>"
-    "\\>"))
-
 (defconst ruby-block-beg-keywords
   '("class" "module" "def" "if" "unless" "case" "while" "until" "for" "begin" 
"do")
   "Keywords at the beginning of blocks.")
@@ -60,7 +55,7 @@
   "Regexp to match the beginning of blocks.")
 
 (defconst ruby-non-block-do-re
-  (concat (regexp-opt '("while" "until" "for" "rescue") t) ruby-keyword-end-re)
+  (regexp-opt '("while" "until" "for" "rescue") 'symbols)
   "Regexp to match keywords that nest without blocks.")
 
 (defconst ruby-indent-beg-re
@@ -696,7 +691,7 @@
        ((looking-at (concat "\\_<\\(" ruby-block-beg-re "\\)\\_>"))
         (and
          (save-match-data
-           (or (not (looking-at (concat "do" ruby-keyword-end-re)))
+           (or (not (looking-at "do\\_>"))
                (save-excursion
                  (back-to-indentation)
                  (not (looking-at ruby-non-block-do-re)))))
@@ -1718,14 +1713,16 @@
   "The syntax table to use for fontifying Ruby mode buffers.
 See `font-lock-syntax-table'.")
 
+(defconst ruby-font-lock-keyword-beg-re "\\(?:^\\|address@hidden|\\.\\.\\)")
+
 (defconst ruby-font-lock-keywords
   (list
    ;; functions
    '("^\\s *def\\s +\\(?:[^( \t\n.]*\\.\\)?\\([^( \t\n]+\\)"
      1 font-lock-function-name-face)
+   ;; keywords
    (list (concat
-          "\\(^\\|address@hidden|\\.\\.\\)\\("
-          ;; keywords
+          ruby-font-lock-keyword-beg-re
           (regexp-opt
            '("alias"
              "and"
@@ -1760,11 +1757,14 @@
              "when"
              "while"
              "yield")
-           'symbols)
-          "\\|"
+           'symbols))
+         1 'font-lock-keyword-face)
+   ;; some core methods
+   (list (concat
+          ruby-font-lock-keyword-beg-re
           (regexp-opt
-           ;; built-in methods on Kernel
-           '("__callee__"
+           '(;; built-in methods on Kernel
+             "__callee__"
              "__dir__"
              "__method__"
              "abort"
@@ -1823,20 +1823,17 @@
              "public"
              "refine"
              "using")
-           'symbols)
-          "\\)")
-         2
-         '(if (match-beginning 4)
-              font-lock-builtin-face
-            font-lock-keyword-face))
+           'symbols))
+         1 'font-lock-builtin-face)
    ;; Perl-ish keywords
    "\\_<\\(?:BEGIN\\|END\\)\\_>\\|^__END__$"
    ;; here-doc beginnings
    `(,ruby-here-doc-beg-re 0 (unless (ruby-singleton-class-p (match-beginning 
0))
                                'font-lock-string-face))
    ;; variables
-   '("\\(^\\|address@hidden|\\.\\.\\)\\_<\\(nil\\|self\\|true\\|false\\)\\>"
-     2 font-lock-variable-name-face)
+   `(,(concat ruby-font-lock-keyword-beg-re
+              "\\_<\\(nil\\|self\\|true\\|false\\)\\>")
+     1 font-lock-variable-name-face)
    ;; keywords that evaluate to certain values
    '("\\_<__\\(?:LINE\\|ENCODING\\|FILE\\)__\\_>" 0 
font-lock-variable-name-face)
    ;; symbols
@@ -1852,7 +1849,7 @@
      1 (unless (eq ?\( (char-after)) font-lock-type-face))
    '("\\(^\\s *\\|[\[\{\(,]\\s *\\|\\sw\\s +\\)\\(\\(\\sw\\|_\\)+\\):[^:]" 2 
font-lock-constant-face)
    ;; conversion methods on Kernel
-   (list (concat "\\(?:^\\|address@hidden|\\.\\.\\)"
+   (list (concat ruby-font-lock-keyword-beg-re
                  (regexp-opt '("Array" "Complex" "Float" "Hash"
                                "Integer" "Rational" "String") 'symbols))
          1 font-lock-builtin-face)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]