Fix projectile tag regeneration to happen after project switch

This commit is contained in:
Maciej Szlosarczyk 2017-10-06 16:39:49 +03:00
parent 7278df5a57
commit 2e3d7df705
No known key found for this signature in database
GPG key ID: 94798DD7F02D70C1
3 changed files with 50 additions and 25 deletions

View file

@ -160,28 +160,6 @@
;; Do not required match to continue typing
(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
(require 'evil)
(require 'evil-leader)
@ -191,4 +169,51 @@
;; Add magit for git
(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

View file

@ -48,8 +48,8 @@
(evil-leader/set-key "pc" 'projectile-invalidate-cache)
(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 "jh" 'pop-tag-mark); Jump back from declaration
(evil-leader/set-key "j;" 'dumb-jump-go); Jump to declaration
(evil-leader/set-key "jh" 'dumb-jump-back); Jump back from declaration
;; Dash integration
(require 'dash-at-point)

View file

@ -48,7 +48,7 @@
;; Initalize completion
(set (make-local-variable 'company-backends)
'((company-robe company-dabbrev-code company-yasnippet company-etags))))
'((company-etags company-yasnippet company-files))))
;;========== Hooks ================================
(add-hook 'ruby-mode-hook 'editor-ruby-mode-config)