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
|
||||
(setq-default
|
||||
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-session-load-on-start t
|
||||
wg-mode-line-display-on nil
|
||||
|
@ -45,10 +45,10 @@
|
|||
|
||||
(defvar narf-wg-frames '()
|
||||
"A list of all the frames opened as separate workgroups. See
|
||||
lib/defuns-workgroups.el.")
|
||||
defuns/defuns-workgroups.el.")
|
||||
(defvar narf-wg-names '()
|
||||
"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
|
||||
(add-to-list 'savehist-additional-variables 'narf-wg-names)
|
||||
|
@ -60,8 +60,8 @@ lib/defuns-workgroups.el.")
|
|||
;; Save the session every 20 minutes
|
||||
(defvar narf-wg-autosave-interval 1200)
|
||||
(narf|wg-autosave-enable)
|
||||
(add-hook! focus-out 'narf|wg-autosave-disable)
|
||||
(add-hook! focus-in 'narf|wg-autosave-enable)
|
||||
(add-hook 'focus-out-hook 'narf|wg-autosave-disable)
|
||||
(add-hook 'focus-in-hook 'narf|wg-autosave-enable)
|
||||
|
||||
;; Don't mess with the modeline!
|
||||
(advice-add 'wg-change-modeline :override 'ignore)
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
;;; defuns-workgroup.el
|
||||
|
||||
;;;###autoload
|
||||
(defun narf/wg-helm-switch-to-workgroup (name)
|
||||
(wg-switch-to-workgroup (wg-get-workgroup name)))
|
||||
|
||||
;;;###autoload
|
||||
(defun narf/wg-projectile-switch-project ()
|
||||
|
@ -27,17 +25,26 @@
|
|||
wg-session-file))
|
||||
(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)
|
||||
(evil-define-command narf:workgroup-new (bang name &optional silent)
|
||||
"Create a new workgroup. If BANG, clone the current one to it."
|
||||
(interactive "<!><a>")
|
||||
(unless name
|
||||
(setq name (format "#%s" (length (wg-workgroup-list)))))
|
||||
(if bang
|
||||
(wg-clone-workgroup (wg-current-workgroup) name)
|
||||
(wg-create-workgroup name t))
|
||||
(setq name (format "#%s" (1+ (length (wg-workgroup-list))))))
|
||||
(let ((new-wg (wg-get-workgroup name t)))
|
||||
(when (and new-wg bang)
|
||||
(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
|
||||
(narf--workgroup-display (wg-previous-workgroup)
|
||||
(narf--workgroup-display (wg-previous-workgroup t)
|
||||
(format "Created %s" name)
|
||||
'success)))
|
||||
|
||||
|
@ -63,6 +70,7 @@
|
|||
(when bang
|
||||
(setq wg-name (wg-read-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)
|
||||
(wg-kill-workgroup)
|
||||
(wg-delete-workgroup wg))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue