Set ctags command based on major mode Set different company backends based on major mode Completely abandon robe in favour of ctags for Ruby Set up Erlang configuration
53 lines
1.8 KiB
EmacsLisp
53 lines
1.8 KiB
EmacsLisp
;; Require Enhanced Ruby Mode
|
|
(require 'enh-ruby-mode)
|
|
|
|
;; Refresh tags in Ruby projects
|
|
(defun ruby-refresh-etags ()
|
|
"Recreate ctags for Ruby."
|
|
(interactive)
|
|
|
|
(message "Starting ctags process")
|
|
(start-process-shell-command "ctags" "*ctags*"
|
|
(format "ctags -e -R --languages=ruby -f %sTAGS %s. $(bundle list --paths)"
|
|
(projectile-project-root) (projectile-project-root)))
|
|
(set-process-sentinel (get-process "ctags") 'ctags-process-callback))
|
|
|
|
;; Ruby specific key bindings
|
|
(define-key enh-ruby-mode-map (kbd "C-c E") 'ruby-refresh-etags)
|
|
(define-key enh-ruby-mode-map (kbd "C-c \\") 'nil)
|
|
|
|
(add-hook 'ruby-mode-hook 'enh-ruby-mode)
|
|
(add-hook 'enh-ruby-mode-hook 'rspec-mode)
|
|
(add-hook 'enh-ruby-mode-hook 'ruby-end-mode)
|
|
|
|
(eval-after-load 'rspec-mode
|
|
'(rspec-install-snippets))
|
|
|
|
(defun activate-ruby-mode ()
|
|
"All things for ruby mode."
|
|
(set-indent 2)
|
|
|
|
;; Set column enforcement at 80 for normal projects, and at 100 for work
|
|
(if (string-match-p "internetee" (buffer-file-name))
|
|
(column-enforce-n 100)
|
|
(column-enforce-n 80))
|
|
|
|
;; Do not insert magic encoding comment at the begining of each file
|
|
(setq ruby-insert-encoding-magic-comment nil)
|
|
|
|
;; Company list override
|
|
(add-to-list (make-local-variable 'company-backends) '(company-etags company-yasnippet))
|
|
|
|
;; Set specific ctags command
|
|
(setq-local ctags-refresh-command
|
|
(format "ctags -e -R --languages=ruby -f %sTAGS %s. $(bundle list --paths)"
|
|
(projectile-project-root) (projectile-project-root))))
|
|
|
|
(add-hook 'enh-ruby-mode-hook 'activate-ruby-mode)
|
|
|
|
;;; ERB specific things
|
|
(add-to-list 'auto-mode-alist '("\\.erb\\'" . web-mode))
|
|
(setq web-mode-extra-auto-pairs
|
|
'(("erb" . (("<%" "%>")
|
|
("beg" "end")))
|
|
))
|