Polish workgroups integration
This commit is contained in:
parent
a9eaba309d
commit
9ea0821f81
2 changed files with 20 additions and 12 deletions
|
@ -11,7 +11,7 @@
|
||||||
:init
|
:init
|
||||||
(setq-default
|
(setq-default
|
||||||
wg-session-file (expand-file-name "wg-default" narf-temp-dir)
|
wg-session-file (expand-file-name "wg-default" narf-temp-dir)
|
||||||
wg-workgroup-directory (expand-file-name "workgroups" narf-temp-dir)
|
wg-workgroup-directory (expand-file-name "workgroups/" narf-temp-dir)
|
||||||
wg-first-wg-name "*untitled*"
|
wg-first-wg-name "*untitled*"
|
||||||
wg-session-load-on-start t
|
wg-session-load-on-start t
|
||||||
wg-mode-line-display-on nil
|
wg-mode-line-display-on nil
|
||||||
|
@ -45,10 +45,10 @@
|
||||||
|
|
||||||
(defvar narf-wg-frames '()
|
(defvar narf-wg-frames '()
|
||||||
"A list of all the frames opened as separate workgroups. See
|
"A list of all the frames opened as separate workgroups. See
|
||||||
lib/defuns-workgroups.el.")
|
defuns/defuns-workgroups.el.")
|
||||||
(defvar narf-wg-names '()
|
(defvar narf-wg-names '()
|
||||||
"A list of fixed names for workgroups. If a name is set, workgroup names aren't
|
"A list of fixed names for workgroups. If a name is set, workgroup names aren't
|
||||||
automatically renamed to the project name.")
|
automatically renamed to the project name.")
|
||||||
|
|
||||||
;; Remember the set names in between sessions
|
;; Remember the set names in between sessions
|
||||||
(add-to-list 'savehist-additional-variables 'narf-wg-names)
|
(add-to-list 'savehist-additional-variables 'narf-wg-names)
|
||||||
|
@ -60,8 +60,8 @@ lib/defuns-workgroups.el.")
|
||||||
;; Save the session every 20 minutes
|
;; Save the session every 20 minutes
|
||||||
(defvar narf-wg-autosave-interval 1200)
|
(defvar narf-wg-autosave-interval 1200)
|
||||||
(narf|wg-autosave-enable)
|
(narf|wg-autosave-enable)
|
||||||
(add-hook! focus-out 'narf|wg-autosave-disable)
|
(add-hook 'focus-out-hook 'narf|wg-autosave-disable)
|
||||||
(add-hook! focus-in 'narf|wg-autosave-enable)
|
(add-hook 'focus-in-hook 'narf|wg-autosave-enable)
|
||||||
|
|
||||||
;; Don't mess with the modeline!
|
;; Don't mess with the modeline!
|
||||||
(advice-add 'wg-change-modeline :override 'ignore)
|
(advice-add 'wg-change-modeline :override 'ignore)
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
;;; defuns-workgroup.el
|
;;; defuns-workgroup.el
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun narf/wg-helm-switch-to-workgroup (name)
|
|
||||||
(wg-switch-to-workgroup (wg-get-workgroup name)))
|
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun narf/wg-projectile-switch-project ()
|
(defun narf/wg-projectile-switch-project ()
|
||||||
|
@ -27,17 +25,26 @@
|
||||||
wg-session-file))
|
wg-session-file))
|
||||||
(narf/workgroup-display t))
|
(narf/workgroup-display t))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun narf/clear-sessions ()
|
||||||
|
"Delete all session files."
|
||||||
|
(interactive)
|
||||||
|
(mapc 'delete-file (f-glob (expand-file-name "*" wg-workgroup-directory))))
|
||||||
|
|
||||||
;;;###autoload (autoload 'narf:workgroup-new "defuns-workgroup" nil t)
|
;;;###autoload (autoload 'narf:workgroup-new "defuns-workgroup" nil t)
|
||||||
(evil-define-command narf:workgroup-new (bang name &optional silent)
|
(evil-define-command narf:workgroup-new (bang name &optional silent)
|
||||||
"Create a new workgroup. If BANG, clone the current one to it."
|
"Create a new workgroup. If BANG, clone the current one to it."
|
||||||
(interactive "<!><a>")
|
(interactive "<!><a>")
|
||||||
(unless name
|
(unless name
|
||||||
(setq name (format "#%s" (length (wg-workgroup-list)))))
|
(setq name (format "#%s" (1+ (length (wg-workgroup-list))))))
|
||||||
(if bang
|
(let ((new-wg (wg-get-workgroup name t)))
|
||||||
(wg-clone-workgroup (wg-current-workgroup) name)
|
(when (and new-wg bang)
|
||||||
(wg-create-workgroup name t))
|
(wg-delete-workgroup new-wg))
|
||||||
|
(setq new-wg (wg-make-and-add-workgroup name t))
|
||||||
|
(add-to-list 'narf-wg-names (wg-workgroup-uid new-wg))
|
||||||
|
(wg-switch-to-workgroup new-wg))
|
||||||
(unless silent
|
(unless silent
|
||||||
(narf--workgroup-display (wg-previous-workgroup)
|
(narf--workgroup-display (wg-previous-workgroup t)
|
||||||
(format "Created %s" name)
|
(format "Created %s" name)
|
||||||
'success)))
|
'success)))
|
||||||
|
|
||||||
|
@ -63,6 +70,7 @@
|
||||||
(when bang
|
(when bang
|
||||||
(setq wg-name (wg-read-workgroup-name)))
|
(setq wg-name (wg-read-workgroup-name)))
|
||||||
(let ((wg (wg-get-workgroup name)))
|
(let ((wg (wg-get-workgroup name)))
|
||||||
|
(setq narf-wg-names (delete (wg-workgroup-uid wg) narf-wg-names))
|
||||||
(if (eq wg current-wg)
|
(if (eq wg current-wg)
|
||||||
(wg-kill-workgroup)
|
(wg-kill-workgroup)
|
||||||
(wg-delete-workgroup wg))
|
(wg-delete-workgroup wg))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue