diff --git a/src/workgroups-ido.el b/src/workgroups-ido.el deleted file mode 100644 index c5bda3c9764b853081582dc72e3e88f5eb5e1fe3..0000000000000000000000000000000000000000 --- a/src/workgroups-ido.el +++ /dev/null @@ -1,92 +0,0 @@ -;;; workgroups-ido --- ido and iswitchb compatibility -;;; Commentary: -;;; Code: - -(require 'workgroups-variables) -(require 'cl-lib) -(require 'ido) - -(defcustom wg-ido-entry-buffer-replacement-regexp "^ .*Minibuf.*$" - "Regexp matching the name of a buffer to replace `ido-entry-buffer'. -The regexp should match the name of a live buffer that will never -be a completion candidate under normal circumstances. You -probably don't want to change this. See -`wg-get-sneaky-ido-entry-buffer-replacement'." - :type 'regexp - :group 'workgroups) - - -(defun wg-read-buffer-mode () - "Return the buffer switching package (ido or iswitchb) to use, or nil." - (if (eq wg-current-buffer-list-filter-id 'fallback) 'fallback - (cl-case (let (workgroups-mode) (command-remapping 'switch-to-buffer)) - (ido-switch-buffer 'ido) - (otherwise 'fallback)))) - -(defun wg-read-buffer-function (&optional mode) - "Return MODE's or `wg-read-buffer-mode's `read-buffer' function." - (cl-case (or mode (wg-read-buffer-mode)) - (ido 'ido-read-buffer) - (fallback (lambda (prompt &optional default require-match) - (let (read-buffer-function) - (read-buffer prompt default require-match)))))) - -(defun wg-completing-read - (prompt choices &optional pred require-match initial-input history default) - "Do a completing read. The function called depends on what's on." - (cl-ecase (wg-read-buffer-mode) - (ido - (ido-completing-read prompt choices pred require-match - initial-input history default)) - (fallback - (completing-read prompt choices pred require-match - initial-input history default)))) - -(defun wg-get-sneaky-ido-entry-buffer-replacement (&optional regexp) - "Return a live buffer to replace `ido-entry-buffer'. -This is a workaround for an ido misfeature. IMHO, ido should -respect the value of `ido-temp-list' after -`ido-make-buffer-list-hook' has been run, since the user's -preference for the final value of `ido-temp-list', if any, has -been expressed in that hook. But ido conditionally rotates the -first match to the end after the hook has been run, based on the -value of `ido-entry-buffer'. So as a workaround, set -`ido-entry-buffer' to a buffer that will never be a completion -candidate under normal circumstances. See -`wg-ido-entry-buffer-replacement-regexp'." - (wg-get-first-buffer-matching-regexp - (or regexp wg-ido-entry-buffer-replacement-regexp))) - -(defun wg-adjust-buffer-list-default (buflist &optional default) - "Adjust BUFLIST based on DEFAULT. -DEFAULT is the default completion candidate, and defaults to -`wg-buffer-internal-default-buffer'. Non-nil, this gets placed -at the beginning of BUFLIST. Otherwise rotate BUFLIST." - (wg-aif (or default wg-buffer-internal-default-buffer) - (wg-move-elt it buflist 0) - (wg-rotate-list buflist))) - -(defun wg-finalize-buffer-list (buflist) - "Run `wg-buffer-list-finalization-hook' and return -`wg-temp-buffer-list'." - (let ((wg-temp-buffer-list buflist)) - (run-hooks 'wg-buffer-list-finalization-hook) - wg-temp-buffer-list)) - -(defun wg-set-buffer-list-symbol (symbol) - "Set SYMBOL to the filtered buffer-list." - (when (and wg-current-buffer-list-filter-id (boundp symbol)) - (set symbol - (wg-finalize-buffer-list - (wg-adjust-buffer-list-default - (wg-filtered-buffer-list t)))))) - -(defun wg-set-ido-buffer-list () - "Set `ido-temp-list' with `wg-set-buffer-list-symbol'. -Added to `ido-make-buffer-list-hook'." - (wg-set-buffer-list-symbol 'ido-temp-list) - (wg-when-boundp (ido-entry-buffer) - (setq ido-entry-buffer (wg-get-sneaky-ido-entry-buffer-replacement)))) - -(provide 'workgroups-ido) -;;; workgroups-ido.el ends here