ruby: disable robe (use dabbrev-code for now) + use define-project-type

This commit is contained in:
Henrik Lissner 2016-04-19 03:13:35 -04:00
parent aec6ce92eb
commit 2cbcf55a24

View file

@ -1,8 +1,5 @@
;;; module-ruby.el
;; Silence the byte-compiler
(eval-when-compile (require 'defuns-quickrun))
(use-package ruby-mode
:mode ("\\.rb$" "\\.rake$" "\\.gemspec$" "\\.?pryrc$"
"/\\(Gem\\|Cap\\|Vagrant\\|Rake\\)file$")
@ -12,10 +9,10 @@
(define-docset! ruby-mode "rb,ruby,rubygem")
(define-builder! ruby-mode "rake %s" "Rakefile")
(define-env-command! ruby-mode "ruby --version | cut -d' ' -f2")
:config
;; Formatting
(setq ruby-deep-indent-paren t)
(define-company-backend! ruby-mode (dabbrev-code))
:config
(setq ruby-deep-indent-paren t) ; Formatting
(add-hook! ruby-mode
(electric-indent-local-mode +1)
(setq narf-electric-indent-words '("else" "end" "elseif")))
@ -23,17 +20,19 @@
;; Don't interfere with my custom RET behavior
(define-key ruby-mode-map [?\n] nil)
;; Highlight doc comments
(use-package yard-mode :init (add-hook 'ruby-mode-hook 'yard-mode))
(use-package robe
:commands (robe-mode robe-start ruby-load-file company-robe)
:init
(add-hook! ruby-mode
(narf|ruby-load-file)
(add-hook 'after-save-hook 'narf|ruby-load-file nil t))
:config
(require 'company-robe)
(define-company-backend! ruby-mode (robe)))
;; FIXME: Doesn't work
;; (use-package robe
;; :commands (robe-mode robe-start ruby-load-file company-robe)
;; :init
;; (add-hook! ruby-mode
;; (narf|ruby-load-file)
;; (add-hook 'after-save-hook 'narf|ruby-load-file nil t))
;; (define-company-backend! ruby-mode (robe))
;; :config
;; (require 'company-robe))
(use-package ruby-refactor
:init (add-hook 'ruby-mode-hook 'emr-initialize)
@ -58,28 +57,11 @@
(refactor-extract-to-let "extract to let" t)
(refactor-convert-post-conditional "convert post conditional" t)))))
;; Rakefiles ;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-minor-mode rake-mode
"Buffer local minor mode for rake files"
:lighter " Rake" :keymap (make-sparse-keymap)
(add-yas-minor-mode! 'rake-mode))
(associate! rake-mode :match "\\(/Rakefile\\|\\.rake\\)$")
(associate! rake-mode :files ("Rakefile"))
;; Vagrantfiles ;;;;;;;;;;;;;;;;;;;;;;;;
(define-minor-mode vagrant-mode
"Buffer local minor mode for vagrant files"
:lighter " Va" :keymap (make-sparse-keymap)
(add-yas-minor-mode! 'vagrant-mode))
(associate! vagrant-mode :files ("Vagrantfile"))
(use-package rspec-mode
:defer t
:mode ("/\\.rspec$" . text-mode)
:init
(associate! rspec-mode :match "/\\.rspec$")
(associate! rspec-mode :in (ruby-mode yaml-mode) :files ("spec/"))
(defvar rspec-mode-verifiable-map (make-sparse-keymap))
(defvar evilmi-ruby-match-tags
'((("unless" "if") ("elsif" "else") "end")
@ -100,10 +82,17 @@
:commands (inf-ruby inf-ruby-console-auto)
:init
(define-repl! ruby-mode inf-ruby)
:config
(evil-set-initial-state 'inf-ruby-mode 'emacs)
:config
(require 'company-inf-ruby)
(define-company-backend! inf-ruby-mode (inf-ruby)))
;;
(define-project-type! rake "rake"
:files ("Rakefile"))
(define-project-type! vagrant "vagrant"
:files ("Vagrantfile"))
(provide 'module-ruby)
;;; module-ruby.el ends here