forked from defunkt/emacs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ruby.el
68 lines (59 loc) · 2.32 KB
/
ruby.el
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
; rinari
(vendor 'rinari)
(setq rinari-tags-file-name "TAGS")
(add-hook 'rinari-minor-mode-hook
(lambda ()
(define-key rinari-minor-mode-map (kbd "A-r") 'rinari-test)))
; rhtml
(setq auto-mode-alist (cons '("\\.html\\.erb" . nxml-mode) auto-mode-alist))
(setq auto-mode-alist (cons '("\\.erb" . nxml-mode) auto-mode-alist))
; ruby
(vendor 'ruby-hacks)
(setq auto-mode-alist (cons '("Rakefile" . ruby-mode) auto-mode-alist))
(setq auto-mode-alist (cons '("Capfile" . ruby-mode) auto-mode-alist))
(setq auto-mode-alist (cons '("\\.rake" . ruby-mode) auto-mode-alist))
(setq auto-mode-alist (cons '("\\.god" . ruby-mode) auto-mode-alist))
(setq auto-mode-alist (cons '("\\.ru" . ruby-mode) auto-mode-alist))
(setq auto-mode-alist (cons '("\\.gemspec" . ruby-mode) auto-mode-alist))
;; no warnings when compiling
(setq ruby-dbg-flags "")
(add-hook 'ruby-mode-hook
(lambda ()
(add-hook 'local-write-file-hooks
'(lambda()
(save-excursion
(untabify (point-min) (point-max)))))
(set (make-local-variable 'indent-tabs-mode) 'nil)
(set (make-local-variable 'tab-width) 2)
(define-key ruby-mode-map "\C-m" 'ruby-reindent-then-newline-and-indent)
(require 'ruby-electric)
(ruby-electric-mode t)))
(defadvice ruby-do-run-w/compilation (before kill-buffer (name cmdlist))
(let ((comp-buffer-name (format "*%s*" name)))
(when (get-buffer comp-buffer-name)
(kill-buffer comp-buffer-name))))
(ad-activate 'ruby-do-run-w/compilation)
; where'd this go?
(defun ruby-reindent-then-newline-and-indent ()
"Reindents the current line then creates an indented newline."
(interactive "*")
(newline)
(save-excursion
(end-of-line 0)
(indent-according-to-mode)
(delete-region (point) (progn (skip-chars-backward " \t") (point))))
(when (ruby-previous-line-is-comment)
(insert "# "))
(indent-according-to-mode))
(defun ruby-previous-line-is-comment ()
"Returns `t' if the previous line is a Ruby comment."
(save-excursion
(forward-line -1)
(ruby-line-is-comment)))
(defun ruby-line-is-comment ()
"Returns `t' if the current line is a Ruby comment."
(save-excursion
(beginning-of-line)
(search-forward "#" (point-at-eol) t)))
; treetop
(vendor 'treetop)