Replace RVM and Robe with Ctags
This commit is contained in:
parent
d6994b931b
commit
078fa05f0e
2 changed files with 44 additions and 26 deletions
|
|
@ -23,21 +23,19 @@
|
||||||
(global-company-mode 1)
|
(global-company-mode 1)
|
||||||
(yas-global-mode 1)
|
(yas-global-mode 1)
|
||||||
|
|
||||||
(setq-default company-backends '(company-capf ;; Backend for default complete-at-point function
|
(setq-default company-backends '(company-tern ;; Javascript
|
||||||
company-tern ;; Javascript
|
(company-yasnippet ;; Snippets for all programming languages
|
||||||
(company-keywords ;; Keyword list for all languages
|
company-etags) ;; Ctags for any language
|
||||||
company-yasnippet ;; Snippets for all programming languages
|
|
||||||
company-etags ;; Ctags
|
|
||||||
)
|
|
||||||
company-elisp ; Emacs Lisp
|
company-elisp ; Emacs Lisp
|
||||||
company-clang company-cmake ;; C
|
company-clang company-cmake ;; C
|
||||||
company-lsp ;; Language server protocol
|
company-lsp ;; Language server protocol
|
||||||
company-robe ;; Ruby
|
|
||||||
company-ansible ;; Ansible
|
company-ansible ;; Ansible
|
||||||
alchemist-company ;; Elixir
|
alchemist-company ;; Elixir
|
||||||
company-racer ;; Rust
|
company-racer ;; Rust
|
||||||
company-web-html ;; HTML
|
company-web-html ;; HTML
|
||||||
(company-dabbrev-code company-dabbrev company-abbrev) ;; abbrev
|
(company-dabbrev-code company-dabbrev company-abbrev) ;; abbrev
|
||||||
|
company-capf ;; Backend for default complete-at-point function
|
||||||
|
company-keywords ;; Keywords for all languages
|
||||||
company-files ; files & directory
|
company-files ; files & directory
|
||||||
))
|
))
|
||||||
|
|
||||||
|
|
@ -52,3 +50,35 @@
|
||||||
|
|
||||||
(define-key text-mode-map (kbd "C-c y") 'company-yasnippet)
|
(define-key text-mode-map (kbd "C-c y") 'company-yasnippet)
|
||||||
(define-key text-mode-map (kbd "<f13>") 'company-yasnippet)
|
(define-key text-mode-map (kbd "<f13>") 'company-yasnippet)
|
||||||
|
|
||||||
|
;; Sentinel function for capturing ctags
|
||||||
|
(defun ctags-process-callback (process event)
|
||||||
|
"Show status of asynchronous ctags-process after it finishes."
|
||||||
|
(cond
|
||||||
|
((string-equal event "finished\n")
|
||||||
|
(message "Creating tag files...completed")
|
||||||
|
(kill-buffer (get-buffer "*ctags*"))
|
||||||
|
(visit-tags-table (format "%sTAGS" (projectile-project-root))))
|
||||||
|
(t
|
||||||
|
(message "Creating tags file...failed")
|
||||||
|
(pop-to-buffer (get-buffer "*ctags*"))
|
||||||
|
)))
|
||||||
|
|
||||||
|
;; (setq ctags-commands
|
||||||
|
;; '(("emacs-lisp-mode" . "Some string"))
|
||||||
|
;; ("enh-ruby-mode" . "Some other string")
|
||||||
|
;; )
|
||||||
|
|
||||||
|
;; (defun buffer-mode-as-string (&optional-buffer)
|
||||||
|
;; "Get current mode from &OPTIONAL-BUFFER or current buffer."
|
||||||
|
;; (when option)
|
||||||
|
|
||||||
|
;; (message "%s"
|
||||||
|
;; (cdr
|
||||||
|
;; (assoc
|
||||||
|
;; (format "%s" (buffer-local-value 'major-mode
|
||||||
|
;; (current-buffer))) ctags-commands)))
|
||||||
|
|
||||||
|
;; (message (format "%s" (buffer-local-value 'major-mode (current-buffer))))
|
||||||
|
|
||||||
|
;; (message ())
|
||||||
|
|
|
||||||
24
20ruby.el
24
20ruby.el
|
|
@ -1,37 +1,25 @@
|
||||||
;; Start rvm before starting robe
|
;; Require Enhanced Ruby Mode
|
||||||
(require 'enh-ruby-mode)
|
(require 'enh-ruby-mode)
|
||||||
|
|
||||||
(defadvice inf-ruby-console-auto (before activate-rvm-for-robe activate)
|
|
||||||
(rvm-activate-corresponding-ruby))
|
|
||||||
|
|
||||||
;; Refresh tags in Ruby projects
|
;; Refresh tags in Ruby projects
|
||||||
(defun ruby-refresh-etags ()
|
(defun ruby-refresh-etags ()
|
||||||
"Recreate ctags for ruby"
|
"Recreate ctags for Ruby."
|
||||||
(interactive)
|
(interactive)
|
||||||
|
|
||||||
(message "Refreshing Ruby ctags.")
|
(message "Starting ctags process")
|
||||||
|
(start-process-shell-command "ctags" "*ctags*"
|
||||||
(shell-command
|
(format "ctags -e -R --languages=ruby -f %sTAGS %s. $(bundle list --paths)"
|
||||||
(format "ctags -e -R --languages=ruby --exclude=.git --exclude=log -f %sTAGS %s. $(bundle list --paths)"
|
|
||||||
(projectile-project-root) (projectile-project-root)))
|
(projectile-project-root) (projectile-project-root)))
|
||||||
|
(set-process-sentinel (get-process "ctags") 'ctags-process-callback))
|
||||||
(visit-tags-table (format "%sTAGS" (projectile-project-root)))
|
|
||||||
|
|
||||||
(message "Refresh finished."))
|
|
||||||
|
|
||||||
;; Ruby specific key bindings
|
;; 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 E") 'ruby-refresh-etags)
|
||||||
(define-key enh-ruby-mode-map (kbd "C-c \\") 'nil)
|
(define-key enh-ruby-mode-map (kbd "C-c \\") 'nil)
|
||||||
|
|
||||||
(add-hook 'ruby-mode-hook 'enh-ruby-mode)
|
(add-hook 'ruby-mode-hook 'enh-ruby-mode)
|
||||||
(add-hook 'enh-ruby-mode-hook 'robe-mode)
|
|
||||||
(add-hook 'enh-ruby-mode-hook 'rspec-mode)
|
(add-hook 'enh-ruby-mode-hook 'rspec-mode)
|
||||||
(add-hook 'enh-ruby-mode-hook 'ruby-end-mode)
|
(add-hook 'enh-ruby-mode-hook 'ruby-end-mode)
|
||||||
|
|
||||||
(eval-after-load 'company
|
|
||||||
'(push 'company-robe company-backends))
|
|
||||||
|
|
||||||
(eval-after-load 'rspec-mode
|
(eval-after-load 'rspec-mode
|
||||||
'(rspec-install-snippets))
|
'(rspec-install-snippets))
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue