0
(concat "[?$/%(){}#\"'`.:]\\|<<\\|\\[\\|\\]\\|\\<\\("
0
"\\)\\>\\|" ruby-block-end-re
0
- "\\|^=begin\\|" ruby-here-doc-beg-re)
0
+ "\\|^=begin\\|" ruby-here-doc-beg-re))
0
(defconst ruby-negative
0
(concat "^[ \t]*\\(\\(" ruby-block-mid-re "\\)\\>\\|"
0
ruby-block-end-re "\\|}\\|\\]\\)")
0
"Regexp to match where the indentation gets shallower.")
0
-(defconst ruby-operator-chars "-,.+*/%&|^~=<>:")
0
-(defconst ruby-operator-re (concat "[" ruby-operator-chars "]"))
0
+(defconst ruby-operator-re "[-,.+*/%&|^~=<>:]"
0
+ "Regexp to match operators.")
0
-(defconst ruby-symbol-chars "a-zA-Z0-9_")
0
-(defconst ruby-symbol-re (concat "[" ruby-symbol-chars "]"))
0
+(defconst ruby-symbol-chars "a-zA-Z0-9_"
0
+ "List of characters that symbol names may contain.")
0
+(defconst ruby-symbol-re (concat "[" ruby-symbol-chars "]")
0
+ "Regexp to match symbols.")
0
(defvar ruby-mode-abbrev-table nil
0
"Abbrev table in use in ruby-mode buffers.")
0
(define-abbrev-table 'ruby-mode-abbrev-table ())
0
-(defvar ruby-mode-map nil "Keymap used in ruby mode.")
0
- (setq ruby-mode-map (make-sparse-keymap))
0
- (define-key ruby-mode-map "{" 'ruby-electric-brace)
0
- (define-key ruby-mode-map "}" 'ruby-electric-brace)
0
- (define-key ruby-mode-map "\e\C-a" 'ruby-beginning-of-defun)
0
- (define-key ruby-mode-map "\e\C-e" 'ruby-end-of-defun)
0
- (define-key ruby-mode-map "\e\C-b" 'ruby-backward-sexp)
0
- (define-key ruby-mode-map "\e\C-f" 'ruby-forward-sexp)
0
- (define-key ruby-mode-map "\e\C-p" 'ruby-beginning-of-block)
0
- (define-key ruby-mode-map "\e\C-n" 'ruby-end-of-block)
0
- (define-key ruby-mode-map "\e\C-h" 'ruby-mark-defun)
0
- (define-key ruby-mode-map "\e\C-q" 'ruby-indent-exp)
0
- (define-key ruby-mode-map "\t" 'ruby-indent-command)
0
- (define-key ruby-mode-map "\C-c\C-e" 'ruby-insert-end)
0
- (define-key ruby-mode-map "\C-j" 'ruby-reindent-then-newline-and-indent)
0
- (define-key ruby-mode-map "\C-m" 'newline))
0
+ (let ((map (make-sparse-keymap)))
0
+ (define-key map "{" 'ruby-electric-brace)
0
+ (define-key map "}" 'ruby-electric-brace)
0
+ (define-key map "\M-\C-a" 'ruby-beginning-of-defun)
0
+ (define-key map "\M-\C-e" 'ruby-end-of-defun)
0
+ (define-key map "\M-\C-b" 'ruby-backward-sexp)
0
+ (define-key map "\M-\C-f" 'ruby-forward-sexp)
0
+ (define-key map "\M-\C-p" 'ruby-beginning-of-block)
0
+ (define-key map "\M-\C-n" 'ruby-end-of-block)
0
+ (define-key map "\M-\C-h" 'ruby-mark-defun)
0
+ (define-key map "\M-\C-q" 'ruby-indent-exp)
0
+ (define-key map "\t" 'ruby-indent-line)
0
+ (define-key map "\C-c\C-e" 'ruby-insert-end)
0
+ (define-key map "\C-j" 'ruby-reindent-then-newline-and-indent)
0
+ (define-key map "\C-m" 'newline)
0
+ "Keymap used in ruby-mode.")
0
(defvar ruby-mode-syntax-table nil
0
"Syntax table in use in ruby-mode buffers.")
0
-(if ruby-mode-syntax-table
0
- (setq ruby-mode-syntax-table (make-syntax-table))
0
- (modify-syntax-entry ?\' "\"" ruby-mode-syntax-table)
0
- (modify-syntax-entry ?\" "\"" ruby-mode-syntax-table)
0
- (modify-syntax-entry ?\` "\"" ruby-mode-syntax-table)
0
- (modify-syntax-entry ?# "<" ruby-mode-syntax-table)
0
- (modify-syntax-entry ?\n ">" ruby-mode-syntax-table)
0
- (modify-syntax-entry ?\\ "\\" ruby-mode-syntax-table)
0
- (modify-syntax-entry ?$ "." ruby-mode-syntax-table)
0
- (modify-syntax-entry ?? "_" ruby-mode-syntax-table)
0
- (modify-syntax-entry ?_ "_" ruby-mode-syntax-table)
0
- (modify-syntax-entry ?< "." ruby-mode-syntax-table)
0
- (modify-syntax-entry ?> "." ruby-mode-syntax-table)
0
- (modify-syntax-entry ?& "." ruby-mode-syntax-table)
0
- (modify-syntax-entry ?| "." ruby-mode-syntax-table)
0
- (modify-syntax-entry ?% "." ruby-mode-syntax-table)
0
- (modify-syntax-entry ?= "." ruby-mode-syntax-table)
0
- (modify-syntax-entry ?/ "." ruby-mode-syntax-table)
0
- (modify-syntax-entry ?+ "." ruby-mode-syntax-table)
0
- (modify-syntax-entry ?* "." ruby-mode-syntax-table)
0
- (modify-syntax-entry ?- "." ruby-mode-syntax-table)
0
- (modify-syntax-entry ?\; "." ruby-mode-syntax-table)
0
- (modify-syntax-entry ?\( "()" ruby-mode-syntax-table)
0
- (modify-syntax-entry ?\) ")(" ruby-mode-syntax-table)
0
- (modify-syntax-entry ?\{ "(}" ruby-mode-syntax-table)
0
- (modify-syntax-entry ?\} "){" ruby-mode-syntax-table)
0
- (modify-syntax-entry ?\[ "(]" ruby-mode-syntax-table)
0
- (modify-syntax-entry ?\] ")[" ruby-mode-syntax-table)
0
+(defvar ruby-mode-syntax-table
0
+ (let ((table (make-syntax-table)))
0
+ (modify-syntax-entry ?\' "\"" table)
0
+ (modify-syntax-entry ?\" "\"" table)
0
+ (modify-syntax-entry ?\` "\"" table)
0
+ (modify-syntax-entry ?# "<" table)
0
+ (modify-syntax-entry ?\n ">" table)
0
+ (modify-syntax-entry ?\\ "\\" table)
0
+ (modify-syntax-entry ?$ "." table)
0
+ (modify-syntax-entry ?? "_" table)
0
+ (modify-syntax-entry ?_ "_" table)
0
+ (modify-syntax-entry ?< "." table)
0
+ (modify-syntax-entry ?> "." table)
0
+ (modify-syntax-entry ?& "." table)
0
+ (modify-syntax-entry ?| "." table)
0
+ (modify-syntax-entry ?% "." table)
0
+ (modify-syntax-entry ?= "." table)
0
+ (modify-syntax-entry ?/ "." table)
0
+ (modify-syntax-entry ?+ "." table)
0
+ (modify-syntax-entry ?* "." table)
0
+ (modify-syntax-entry ?- "." table)
0
+ (modify-syntax-entry ?\; "." table)
0
+ (modify-syntax-entry ?\( "()" table)
0
+ (modify-syntax-entry ?\) ")(" table)
0
+ (modify-syntax-entry ?\{ "(}" table)
0
+ (modify-syntax-entry ?\} "){" table)
0
+ (modify-syntax-entry ?\[ "(]" table)
0
+ (modify-syntax-entry ?\] ")[" table)
0
+ "Syntax table to use in ruby-mode.")
0
(defcustom ruby-indent-tabs-mode nil
0
"*Indentation can insert tabs in ruby mode if this is non-nil."
0
@@ -250,43 +250,34 @@ Also ignores spaces after parenthesis when 'space."
0
(defun ruby-imenu-create-index ()
0
+ "Create an imenu index of all methods in the buffer."
0
(nreverse (ruby-imenu-create-index-in-block nil (point-min) nil)))
0
(defun ruby-accurate-end-of-block (&optional end)
0
- (or end (setq end (point-max)))
0
+ (end (or end (point-max))))
0
(while (and (setq state (apply 'ruby-parse-partial end state))
0
(>= (nth 2 state) 0) (< (point) end)))))
0
(defun ruby-mode-variables ()
0
+ "Set up initial buffer-local variables for ruby-mode."
0
(set-syntax-table ruby-mode-syntax-table)
0
(setq local-abbrev-table ruby-mode-abbrev-table)
0
- (setq case-fold-search nil)
0
- (make-local-variable 'indent-line-function)
0
- (setq indent-line-function 'ruby-indent-line)
0
- (make-local-variable 'require-final-newline)
0
- (setq require-final-newline t)
0
- (make-variable-buffer-local 'comment-start)
0
- (setq comment-start "# ")
0
- (make-variable-buffer-local 'comment-end)
0
- (make-variable-buffer-local 'comment-column)
0
- (setq comment-column ruby-comment-column)
0
- (make-variable-buffer-local 'comment-start-skip)
0
- (setq comment-start-skip "#+ *")
0
(setq indent-tabs-mode ruby-indent-tabs-mode)
0
- (make-local-variable 'parse-sexp-ignore-comments)
0
- (setq parse-sexp-ignore-comments t)
0
- (make-local-variable 'parse-sexp-lookup-properties)
0
- (setq parse-sexp-lookup-properties t)
0
- (make-local-variable 'paragraph-start)
0
- (setq paragraph-start (concat "$\\|" page-delimiter))
0
- (make-local-variable 'paragraph-separate)
0
- (setq paragraph-separate paragraph-start)
0
- (make-local-variable 'paragraph-ignore-fill-prefix)
0
- (setq paragraph-ignore-fill-prefix t))
0
+ (set (make-local-variable 'indent-line-function) 'ruby-indent-line)
0
+ (set (make-local-variable 'require-final-newline) t)
0
+ (set (make-variable-buffer-local 'comment-start) "# ")
0
+ (set (make-variable-buffer-local 'comment-end) "")
0
+ (set (make-variable-buffer-local 'comment-column) ruby-comment-column)
0
+ (set (make-variable-buffer-local 'comment-start-skip) "#+ *")
0
+ (set (make-local-variable 'parse-sexp-ignore-comments) t)
0
+ (set (make-local-variable 'paragraph-start) (concat "$\\|" page-delimiter))
0
+ (set (make-local-variable 'paragraph-separate) paragraph-start)
0
+ (set (make-local-variable 'paragraph-ignore-fill-prefix) t))
0
(defun ruby-mode-set-encoding ()
0
+ "Insert a magic comment header with the proper encoding if necessary."
0
(goto-char (point-min))
0
@@ -337,11 +328,10 @@ The variable ruby-indent-level controls the amount of indentation.
0
(setq major-mode 'ruby-mode)
0
- (make-local-variable 'imenu-create-index-function)
0
- (setq imenu-create-index-function 'ruby-imenu-create-index)
0
- (make-local-variable 'add-log-current-defun-function)
0
- (setq add-log-current-defun-function 'ruby-add-log-current-method)
0
+ (set (make-local-variable 'imenu-create-index-function)
0
+ 'ruby-imenu-create-index)
0
+ (set (make-local-variable 'add-log-current-defun-function)
0
+ 'ruby-add-log-current-method)
0
(cond ((boundp 'before-save-hook)
0
@@ -492,7 +482,7 @@ The variable ruby-indent-level controls the amount of indentation.
0
(setq in-string (point))
0
@@ -831,7 +821,7 @@ The variable ruby-indent-level controls the amount of indentation.
0
(not (looking-at "do\\>[^_]")))))
0
@@ -1093,7 +1083,7 @@ balanced expression is found."
0
(concat "^[ \t]*\\(def\\|class\\|module\\)[ \t]+"
0
;; \\. and :: for class method
0
- "\\([A-Za-z_]" ruby-symbol-re "*\\|\\.\\|::" "\\)"
0
+ "\\([A-Za-z_]" ruby-symbol-re "*\\|\\.\\|::" "\\)"
0
@@ -1292,7 +1282,8 @@ buffer position `limit' or the end of the buffer."
0
"\\(^\\|[^_:.@$]\\|\\.\\.\\)\\b\\(defined\\?\\|"
0
@@ -1309,10 +1300,14 @@ buffer position `limit' or the end of the buffer."
0
@@ -1326,8 +1321,7 @@ buffer position `limit' or the end of the buffer."
Comments
No one has commented yet.