Changeset - 7ee46a2cfa4f
[Not reviewed]
0 1 0
Sergey Pashinin - 11 years ago 2014-08-23 16:05:36
sergey@pashinin.com
Docstring fix
1 file changed with 1 insertions and 1 deletions:
0 comments (0 inline, 0 general)
src/workgroups-variables.el
Show inline comments
 
@@ -246,177 +246,177 @@ should take two arguments: a workgroup and a list of live Emacs
 
buffers.  The function should return a new list of live buffers,
 
typically by filtering its second argument in some way.
 

	
 
Default buffer-list-filters include:
 

	
 
`all'           All buffer names
 

	
 
`fallback'      A special case used to fallback to the
 
                original (non-ido/iswitchb) Emacs command.
 
                `fallback' isn't actually a buffer-list-filter
 
                itself, but can be used in
 
                `wg-buffer-list-filter-order-alist' just the
 
                same.
 

	
 
Becomes workgroup-local when set with `wg-set-workgroup-parameter'.
 
Becomes session-local when set with `wg-set-session-parameter'."
 
  :type 'list
 
  :group 'workgroups)
 

	
 
(defcustom wg-buffer-list-filter-order-alist
 
  '((default all fallback))
 
  "Alist defining the order in which filtered buffer-lists are presented.
 

	
 
The car of each entry should be the symbol of the original Emacs
 
command (not the ido or iswitchb remappings) -- i.e. one of
 
`switch-to-buffer', `switch-to-buffer-other-window',
 
`switch-to-buffer-other-frame', `kill-buffer', `next-buffer',
 
`previous-buffer', `display-buffer', `insert-buffer',
 
`read-buffer', or the special symbol `default', which defines the
 
buffer-list-filter order for all commands not present in this
 
alist.
 

	
 
The cdr of each entry should be a list of buffer-list-filter
 
identifiers defining the order in which filtered buffer-lists are
 
presented for the command.  See
 
`wg-buffer-list-filter-definitions'.
 

	
 
Becomes workgroup-local when set with `wg-set-workgroup-parameter'.
 
Becomes session-local when set with `wg-set-session-parameter'."
 
  :type 'alist
 
  :group 'workgroups)
 

	
 
(defcustom wg-center-rotate-buffer-list-display nil
 
  "Non-nil means rotate the buffer list display so that the
 
current buffer is in the center of the list.  This can make it
 
easier to see the where `wg-previous-buffer' will take you, but
 
it doesn't look right if the buffer list display is long enough
 
to wrap in the miniwindow."
 
  :type 'boolean
 
  :group 'workgroups)
 

	
 

	
 
;;; vars
 

	
 
(defvar wg-workgroups-mode-minor-mode-map-entry nil
 
  "Workgroups' minor-mode-map entry.")
 

	
 
(defvar wg-wconfig-kill-ring nil
 
  "Ring of killed or kill-ring-saved wconfigs.")
 

	
 
(defvar wg-last-message nil
 
  "Holds the last message Workgroups sent to the echo area.")
 

	
 
(defvar wg-buffer-uid nil
 
  "Symbol for the current buffer's wg-buf's uid.
 
Every Workgroups buffer object (wg-buf) has a uid.  When
 
Workgroups creates or encounters an Emacs buffer object
 
corresponding to a wg-buf, it tags it with the wg-buf's uid to
 
unambiguously pair the two.")
 
(make-variable-buffer-local 'wg-buffer-uid)
 

	
 

	
 
;; file and modified flag vars
 

	
 
(defvar wg-flag-modified t
 
  "Dynamically bound to nil around destructive operations to
 
temporarily disable flagging `modified'.")
 

	
 

	
 
;; undo vars
 

	
 
(defvar wg-window-configuration-changed nil
 
  "Flag set by `window-configuration-change-hook'.")
 

	
 
(defvar wg-already-updated-working-wconfig nil
 
  "Flag set by `wg-update-working-wconfig-hook'.")
 

	
 
(defvar wg-undoify-window-configuration-change t
 
  "Flag unset when changes to the window config shouldn't cause
 
workgroups' undo info to be updated.")
 

	
 
(defvar wg-current-workgroup nil "Bound to the current workgroup.")
 

	
 
;; wconfig restoration
 

	
 
(defvar wg-window-min-width 2
 
  "Bound to `window-min-width' when restoring wtrees. ")
 
  "Bound to `window-min-width' when restoring wtrees.")
 

	
 
(defvar wg-window-min-height 1
 
  "Bound to `window-min-height' when restoring wtrees.")
 

	
 
(defvar wg-window-min-pad 2
 
  "Added to `wg-window-min-foo' to produce the actual minimum window size.")
 

	
 
(defvar wg-actual-min-width (+ wg-window-min-width wg-window-min-pad)
 
  "Actual minimum window width when creating windows.")
 

	
 
(defvar wg-actual-min-height (+ wg-window-min-height wg-window-min-pad)
 
  "Actual minimum window height when creating windows.")
 

	
 
(defvar wg-min-edges `(0 0 ,wg-actual-min-width ,wg-actual-min-height)
 
  "Smallest allowable edge list of windows created by Workgroups.")
 

	
 
(defvar wg-null-edges '(0 0 0 0) "Null edge list.")
 

	
 
(defvar wg-window-tree-selected-window nil
 
  "Used during wconfig restoration to hold the selected window.")
 

	
 
(defvar wg-update-current-workgroup-working-wconfig-on-select-frame t
 
  "Non-nil means update `selected-frame's current workgroup's
 
working wconfig before `select-frame' selects a new frame.
 
let-bind this to nil around forms in which you don't want this to
 
happen.")
 

	
 
;; Remove after some time
 
(defalias 'wg-switch-to-buffer 'switch-to-buffer)
 

	
 

	
 
;;
 
;; Crazy stuff...
 
;;
 
(defcustom wg-associate-blacklist (list "*helm mini*" "*Messages*" "*scratch*"
 
                                        "*helm action*")
 
  "Do not autoassociate these buffers."
 
  :type 'list
 
  :group 'workgroups)
 

	
 
(defconst wg-buffer-list-original (symbol-function 'buffer-list))
 

	
 
(defun buffer-list (&optional frame)
 
  "Redefinition of `buffer-list'.
 
Pass FRAME to it.
 
Remove file and dired buffers that are not associated with workgroup."
 
  (let ((lst (list))
 
        (res (wg-buffer-list-emacs frame))
 
        ;;(wg-buffers (wg-workgroup-associated-buffers (wg-current-workgroup)))
 
        (wg-buf-uids (wg-workgroup-associated-buf-uids (wg-current-workgroup))))
 

	
 
    (dolist (b res res)
 
      (when (and (or (buffer-file-name b)
 
                     (eq (buffer-local-value 'major-mode b) 'dired-mode))
 
                 ;;(not (member b wg-buffers))
 
                 (not (member (wg-buffer-uid-or-add b) wg-buf-uids)))
 
        (delq b res)))))
 

	
 
(defconst wg-buffer-list-function (symbol-function 'buffer-list))
 
(fset 'buffer-list wg-buffer-list-original)
 
(fset 'wg-buffer-list-emacs wg-buffer-list-original)
 

	
 

	
 
;; locate-dominating-file
 
(defcustom wg-mess-with-buffer-list nil
 
  "Redefine `buffer-list' to show buffers for each workgroup.
 

	
 
Crazy stuff that allows to reduce amount of code, gives new
 
features but is fucking unstable, so disabled by default"
 
  :type 'boolean
 
  :group 'workgroups
 
  :set (lambda (sym val)
 
         (custom-set-default sym val)
 
         (if (and workgroups-mode val)
 
             (fset 'buffer-list wg-buffer-list-function)
 
           (fset 'buffer-list wg-buffer-list-original))))
 
(fset 'buffer-list wg-buffer-list-original)
 

	
 
(provide 'workgroups-variables)
 
;;; workgroups-variables.el ends here
0 comments (0 inline, 0 general)