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