aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/progmodes/ruby-mode.el62
2 files changed, 56 insertions, 11 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 9e746b25146..237518c3eea 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
12013-07-03 Dmitry Gutov <dgutov@yandex.ru>
2
3 * progmodes/ruby-mode.el (ruby-font-lock-keywords): Highlight more
4 keywords and built-ins.
5
12013-07-03 Glenn Morris <rgm@gnu.org> 62013-07-03 Glenn Morris <rgm@gnu.org>
2 7
3 * subr.el (y-or-n-p): Handle empty prompts. (Bug#14770) 8 * subr.el (y-or-n-p): Handle empty prompts. (Bug#14770)
diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el
index f5f829ce0e8..5f92d197a66 100644
--- a/lisp/progmodes/ruby-mode.el
+++ b/lisp/progmodes/ruby-mode.el
@@ -1762,31 +1762,67 @@ See `font-lock-syntax-table'.")
1762 "yield") 1762 "yield")
1763 'symbols) 1763 'symbols)
1764 "\\|" 1764 "\\|"
1765 ;; keyword-like methods on Kernel and Module
1766 (regexp-opt 1765 (regexp-opt
1767 '("alias_method" 1766 ;; built-in methods on Kernel
1767 '("__callee__"
1768 "__dir__"
1769 "__method__"
1770 "abort"
1771 "at_exit"
1772 "autoload"
1773 "autoload?"
1774 "binding"
1775 "block_given?"
1776 "caller"
1777 "catch"
1778 "eval"
1779 "exec"
1780 "exit"
1781 "exit!"
1782 "fail"
1783 "fork"
1784 "format"
1785 "lambda"
1786 "load"
1787 "loop"
1788 "open"
1789 "p"
1790 "print"
1791 "printf"
1792 "proc"
1793 "putc"
1794 "puts"
1795 "raise"
1796 "rand"
1797 "readline"
1798 "readlines"
1799 "require"
1800 "require_relative"
1801 "sleep"
1802 "spawn"
1803 "sprintf"
1804 "srand"
1805 "syscall"
1806 "system"
1807 "throw"
1808 "trap"
1809 "warn"
1810 ;; keyword-like private methods on Module
1811 "alias_method"
1768 "autoload" 1812 "autoload"
1769 "attr" 1813 "attr"
1770 "attr_accessor" 1814 "attr_accessor"
1771 "attr_reader" 1815 "attr_reader"
1772 "attr_writer" 1816 "attr_writer"
1773 "catch"
1774 "define_method" 1817 "define_method"
1775 "extend" 1818 "extend"
1776 "fail"
1777 "include" 1819 "include"
1778 "lambda"
1779 "loop"
1780 "module_function" 1820 "module_function"
1821 "prepend"
1781 "private" 1822 "private"
1782 "proc"
1783 "protected" 1823 "protected"
1784 "public" 1824 "public"
1785 "raise"
1786 "refine" 1825 "refine"
1787 "require"
1788 "require_relative"
1789 "throw"
1790 "using") 1826 "using")
1791 'symbols) 1827 'symbols)
1792 "\\)") 1828 "\\)")
@@ -1794,12 +1830,16 @@ See `font-lock-syntax-table'.")
1794 '(if (match-beginning 4) 1830 '(if (match-beginning 4)
1795 font-lock-builtin-face 1831 font-lock-builtin-face
1796 font-lock-keyword-face)) 1832 font-lock-keyword-face))
1833 ;; Perl-ish keywords
1834 "\\_<\\(?:BEGIN\\|END\\)\\_>\\|^__END__$"
1797 ;; here-doc beginnings 1835 ;; here-doc beginnings
1798 `(,ruby-here-doc-beg-re 0 (unless (ruby-singleton-class-p (match-beginning 0)) 1836 `(,ruby-here-doc-beg-re 0 (unless (ruby-singleton-class-p (match-beginning 0))
1799 'font-lock-string-face)) 1837 'font-lock-string-face))
1800 ;; variables 1838 ;; variables
1801 '("\\(^\\|[^.@$]\\|\\.\\.\\)\\_<\\(nil\\|self\\|true\\|false\\)\\>" 1839 '("\\(^\\|[^.@$]\\|\\.\\.\\)\\_<\\(nil\\|self\\|true\\|false\\)\\>"
1802 2 font-lock-variable-name-face) 1840 2 font-lock-variable-name-face)
1841 ;; keywords that evaluate to certain values
1842 '("\\_<__\\(?:LINE\\|ENCODING\\|FILE\\)__\\_>" 0 font-lock-variable-name-face)
1803 ;; symbols 1843 ;; symbols
1804 '("\\(^\\|[^:]\\)\\(:\\([-+~]@?\\|[/%&|^`]\\|\\*\\*?\\|<\\(<\\|=>?\\)?\\|>[>=]?\\|===?\\|=~\\|![~=]?\\|\\[\\]=?\\|@?\\(\\w\\|_\\)+\\([!?=]\\|\\b_*\\)\\|#{[^}\n\\\\]*\\(\\\\.[^}\n\\\\]*\\)*}\\)\\)" 1844 '("\\(^\\|[^:]\\)\\(:\\([-+~]@?\\|[/%&|^`]\\|\\*\\*?\\|<\\(<\\|=>?\\)?\\|>[>=]?\\|===?\\|=~\\|![~=]?\\|\\[\\]=?\\|@?\\(\\w\\|_\\)+\\([!?=]\\|\\b_*\\)\\|#{[^}\n\\\\]*\\(\\\\.[^}\n\\\\]*\\)*}\\)\\)"
1805 2 font-lock-constant-face) 1845 2 font-lock-constant-face)