Fix projectile tag regeneration to happen after project switch
This commit is contained in:
parent
7278df5a57
commit
2e3d7df705
3 changed files with 50 additions and 25 deletions
69
behaviour.el
69
behaviour.el
|
|
@ -160,28 +160,6 @@
|
||||||
;; Do not required match to continue typing
|
;; Do not required match to continue typing
|
||||||
(setq company-require-match 'never)
|
(setq company-require-match 'never)
|
||||||
|
|
||||||
; Add project management
|
|
||||||
(require 'projectile)
|
|
||||||
(projectile-mode)
|
|
||||||
(setq projectile-enable-caching t)
|
|
||||||
(setq projectile-globally-ignored-directories (
|
|
||||||
append '("node_modules" ".svn") projectile-globally-ignored-directories))
|
|
||||||
(projectile-mode t)
|
|
||||||
(require 'helm-projectile)
|
|
||||||
|
|
||||||
;; Reload tags when switching projects
|
|
||||||
(setq tags-revert-without-query 1)
|
|
||||||
|
|
||||||
(with-eval-after-load 'helm-projectile
|
|
||||||
(defvar helm-source-file-not-found
|
|
||||||
(helm-build-dummy-source
|
|
||||||
"Create file"
|
|
||||||
:action (lambda (cand) (find-file cand))))
|
|
||||||
(add-to-list 'helm-projectile-sources-list helm-source-file-not-found t))
|
|
||||||
|
|
||||||
;; Show projectile lists by most recently active
|
|
||||||
(setq projectile-sort-order (quote recently-active))
|
|
||||||
|
|
||||||
; Use VIM mode
|
; Use VIM mode
|
||||||
(require 'evil)
|
(require 'evil)
|
||||||
(require 'evil-leader)
|
(require 'evil-leader)
|
||||||
|
|
@ -191,4 +169,51 @@
|
||||||
;; Add magit for git
|
;; Add magit for git
|
||||||
(require 'evil-magit)
|
(require 'evil-magit)
|
||||||
|
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;; Projectile ;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
(require 'projectile)
|
||||||
|
(projectile-mode)
|
||||||
|
|
||||||
|
|
||||||
|
(defun projectile-regenerate-tags-if-exist ()
|
||||||
|
"Only regenerate tags if a tag file is present in the folder."
|
||||||
|
(interactive)
|
||||||
|
(let ((default-directory (projectile-project-root)))
|
||||||
|
(when (or (file-exists-p (expand-file-name "TAGS"))
|
||||||
|
(file-exists-p (expand-file-name projectile-tags-file-name)))
|
||||||
|
(projectile-regenerate-tags))))
|
||||||
|
|
||||||
|
(setq projectile-enable-caching t)
|
||||||
|
;; Expire cache after 5 minutes
|
||||||
|
(setq projectile-file-exists-local-cache-expire (* 2 60))
|
||||||
|
|
||||||
|
;; Always create a new tag table list and reload without asking
|
||||||
|
(setq tags-revert-without-query t)
|
||||||
|
(setq tags-add-tables nil)
|
||||||
|
|
||||||
|
;; Enable idle timer
|
||||||
|
;; TODO: Does not work properly
|
||||||
|
(setq projectile-enable-idle-timer t)
|
||||||
|
(add-hook 'projectile-idle-timer-hook 'projectile-regenerate-tags-if-exist)
|
||||||
|
(setq projectile-idle-timer-seconds 15)
|
||||||
|
|
||||||
|
;; Run the tags if project was changed
|
||||||
|
(add-hook 'projectile-after-switch-project-hook
|
||||||
|
'projectile-regenerate-tags-if-exist)
|
||||||
|
|
||||||
|
;; Show projectile lists by most recently active
|
||||||
|
(setq projectile-sort-order (quote recently-active))
|
||||||
|
|
||||||
|
(setq projectile-globally-ignored-directories
|
||||||
|
(append '("node_modules" ".svn") projectile-globally-ignored-directories))
|
||||||
|
|
||||||
|
(require 'helm-projectile)
|
||||||
|
|
||||||
|
(with-eval-after-load 'helm-projectile
|
||||||
|
(defvar helm-source-file-not-found
|
||||||
|
(helm-build-dummy-source
|
||||||
|
"Create file"
|
||||||
|
:action (lambda (cand) (find-file cand))))
|
||||||
|
(add-to-list 'helm-projectile-sources-list helm-source-file-not-found t))
|
||||||
|
|
||||||
;;; behaviour.el ends here
|
;;; behaviour.el ends here
|
||||||
|
|
|
||||||
|
|
@ -48,8 +48,8 @@
|
||||||
(evil-leader/set-key "pc" 'projectile-invalidate-cache)
|
(evil-leader/set-key "pc" 'projectile-invalidate-cache)
|
||||||
(evil-leader/set-key "b" 'helm-buffers-list)
|
(evil-leader/set-key "b" 'helm-buffers-list)
|
||||||
|
|
||||||
(evil-leader/set-key "jl" 'etags-select-find-tag-at-point); Jump to declaration
|
(evil-leader/set-key "j;" 'dumb-jump-go); Jump to declaration
|
||||||
(evil-leader/set-key "jh" 'pop-tag-mark); Jump back from declaration
|
(evil-leader/set-key "jh" 'dumb-jump-back); Jump back from declaration
|
||||||
|
|
||||||
;; Dash integration
|
;; Dash integration
|
||||||
(require 'dash-at-point)
|
(require 'dash-at-point)
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@
|
||||||
|
|
||||||
;; Initalize completion
|
;; Initalize completion
|
||||||
(set (make-local-variable 'company-backends)
|
(set (make-local-variable 'company-backends)
|
||||||
'((company-robe company-dabbrev-code company-yasnippet company-etags))))
|
'((company-etags company-yasnippet company-files))))
|
||||||
|
|
||||||
;;========== Hooks ================================
|
;;========== Hooks ================================
|
||||||
(add-hook 'ruby-mode-hook 'editor-ruby-mode-config)
|
(add-hook 'ruby-mode-hook 'editor-ruby-mode-config)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue