doomemacs/init/init-workgroups.el
Henrik Lissner c49a53f9d3 Final update
2015-06-04 18:23:21 -04:00

42 lines
1.6 KiB
EmacsLisp

(use-package workgroups2
:init
(setq wg-session-file (expand-file-name "wg-default" TMP-DIR)
wg-workgroup-directory (expand-file-name "workgroups" TMP-DIR)
wg-first-wg-name "main"
wg-session-load-on-start t
wg-mode-line-display-on nil
;; What to do on Emacs exit / workgroups-mode exit?
wg-emacs-exit-save-behavior 'save ; Options: 'save 'ask nil
wg-workgroups-mode-exit-save-behavior 'save)
:config
(progn
(after "helm"
(defun narf/helm-switch-to-workgroup (name)
(wg-switch-to-workgroup (wg-get-workgroup name)))
(defvar narf/helm-source-wg
'((name . "Workgroups")
(candidates . wg-workgroup-names)
(action . narf/helm-switch-to-workgroup)))
(defun narf:helm-wg ()
(interactive)
(helm :sources '(helm-source-wg))))
;; Turns projectile switch-project interface (or helm's interface to it)
;; create a new workgroup for the new project.
(after "projectile"
(defun narf/wg-projectile-switch-project ()
(let ((workgroup-name (file-name-nondirectory (directory-file-name (narf/project-root)))))
(wg-create-workgroup workgroup-name t)
(helm-projectile-find-file)))
(setq projectile-switch-project-action 'narf/wg-projectile-switch-project))
;; Initialize!
(defun narf|init-workgroups ()
(workgroups-mode +1)
(diminish 'workgroups-mode))
(add-hook 'after-init-hook 'narf|init-workgroups)))
(provide 'init-workgroups)
;;; init-workgroups.el ends here