From 8c44c1b6a9275f061e1ecb08f96cd46ee848e6e7 Mon Sep 17 00:00:00 2001 From: Maciej Szlosarczyk Date: Mon, 1 Apr 2019 16:39:58 +0300 Subject: [PATCH] Add ctags refresh function to Ruby --- 20ruby.el | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/20ruby.el b/20ruby.el index 8c71ec1..1ad722e 100644 --- a/20ruby.el +++ b/20ruby.el @@ -4,8 +4,24 @@ (defadvice inf-ruby-console-auto (before activate-rvm-for-robe activate) (rvm-activate-corresponding-ruby)) +;; Refresh tags in Ruby projects +(defun ruby-refresh-etags () + "Recreate ctags for ruby" + (interactive) + + (message "Refreshing Ruby ctags.") + + (shell-command + (format "ctags -e -R --languages=ruby --exclude=.git --exclude=log -f %sTAGS %s. $(bundle list --paths)" + (projectile-project-root) (projectile-project-root))) + + (visit-tags-table (format "%sTAGS" (projectile-project-root))) + + (message "Refresh finished.")) + ;; Ruby specific key bindings (define-key enh-ruby-mode-map (kbd "C-c j") 'robe-jump) +(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) @@ -17,7 +33,7 @@ '(push 'company-robe company-backends)) (eval-after-load 'rspec-mode - '(rspec-install-snippets)) + '(rspec-install-snippets)) (defun activate-ruby-mode () "All things for ruby mode."