Remove dash/f dependencies; use cl-lib & subr-x more
This commit is contained in:
parent
704099a7b9
commit
2d5d826177
11 changed files with 83 additions and 123 deletions
|
@ -61,50 +61,49 @@ workgroup."
|
|||
(persp-buffer-list-restricted))
|
||||
(t (buffer-list))))
|
||||
(project-root (and (not all-p) (doom-project-root t))))
|
||||
(append (if project-root
|
||||
(funcall (if (eq all-p 'not) '-remove '-filter)
|
||||
(lambda (b) (projectile-project-buffer-p b project-root))
|
||||
buffers)
|
||||
buffers)
|
||||
(list doom-fallback-buffer))))
|
||||
(if project-root
|
||||
(funcall (if (eq all-p 'not) 'cl-remove-if 'cl-remove-if-not)
|
||||
(lambda (b) (projectile-project-buffer-p b project-root))
|
||||
buffers)
|
||||
buffers)))
|
||||
|
||||
;;;###autoload
|
||||
(defun doom-real-buffers-list (&optional buffer-list)
|
||||
"Get a list of all buffers (in the current workgroup OR in BUFFER-LIST) that
|
||||
`doom-real-buffer-p' returns non-nil for."
|
||||
(-filter #'doom-real-buffer-p (or buffer-list (doom-buffer-list))))
|
||||
(cl-remove-if-not 'doom-real-buffer-p (or buffer-list (doom-buffer-list))))
|
||||
|
||||
;;;###autoload
|
||||
(defun doom-buffers-in-mode (modes &optional buffer-list)
|
||||
"Get a list of all buffers (in the current workgroup OR in BUFFER-LIST) whose
|
||||
`major-mode' is one of MODES."
|
||||
(--filter (memq (buffer-local-value 'major-mode it) modes)
|
||||
(or buffer-list (doom-buffer-list))))
|
||||
(cl-remove-if-not (lambda (buf) (memq (buffer-local-value 'major-mode it) modes))
|
||||
(or buffer-list (doom-buffer-list))))
|
||||
|
||||
;;;###autoload
|
||||
(defun doom-visible-windows (&optional window-list)
|
||||
"Get a list of the visible windows in the current frame (that aren't popups),
|
||||
OR return only the visible windows in WINDOW-LIST."
|
||||
(-remove #'doom-popup-p (or window-list (window-list))))
|
||||
(cl-remove-if 'doom-popup-p (or window-list (window-list))))
|
||||
|
||||
;;;###autoload
|
||||
(defun doom-visible-buffers (&optional buffer-list)
|
||||
"Get a list of unburied buffers in the current project and workgroup, OR
|
||||
return only the unburied buffers in BUFFER-LIST (a list of BUFFER-OR-NAMEs)."
|
||||
(-filter #'get-buffer-window (or buffer-list (doom-buffer-list))))
|
||||
(cl-remove-if-not 'get-buffer-window (or buffer-list (doom-buffer-list))))
|
||||
|
||||
;;;###autoload
|
||||
(defun doom-buried-buffers (&optional buffer-list)
|
||||
"Get a list of buried buffers in the current project and workgroup, OR return
|
||||
only the buried buffers in BUFFER-LIST (a list of BUFFER-OR-NAMEs)."
|
||||
(-remove 'get-buffer-window (or buffer-list (doom-buffer-list))))
|
||||
(cl-remove-if 'get-buffer-window (or buffer-list (doom-buffer-list))))
|
||||
|
||||
;;;###autoload
|
||||
(defun doom-matching-buffers (pattern &optional buffer-list)
|
||||
"Get a list of all buffers (in the current workgroup OR in BUFFER-LIST) that
|
||||
match the regex PATTERN."
|
||||
(--filter (string-match-p pattern (buffer-name it))
|
||||
(or buffer-list (doom-buffer-list))))
|
||||
(cl-remove-if-not (lambda (buf) (string-match-p pattern (buffer-name buf)))
|
||||
(or buffer-list (doom-buffer-list))))
|
||||
|
||||
(defun doom--cycle-real-buffers (&optional n)
|
||||
"Switch to the next buffer N times (previous, if N < 0), skipping over special
|
||||
|
@ -148,14 +147,14 @@ a) it isn't a popup (or temporary) window
|
|||
b) it isn't a special buffer (e.g. scratch or *messages* buffer)
|
||||
c) and its major-mode or buffer-name-matching regexp isn't in
|
||||
`doom-buffers-unreal'."
|
||||
(let ((buffer (window-normalize-buffer buffer-or-name)))
|
||||
(when (buffer-live-p buffer)
|
||||
(not (or (doom-popup-p (get-buffer-window buffer))
|
||||
(eq (buffer-name buffer) doom-fallback-buffer)
|
||||
(--any? (and (stringp it) (string-match-p it (buffer-name buffer)))
|
||||
doom-buffers-unreal)
|
||||
(with-current-buffer buffer
|
||||
(apply 'derived-mode-p (-filter 'symbolp doom-buffers-unreal))))))))
|
||||
(when-let (buffer (ignore-errors (window-normalize-buffer buffer-or-name)))
|
||||
(or (eq buffer (doom-fallback-buffer))
|
||||
(not (or (doom-popup-p (get-buffer-window buffer))
|
||||
(cl-some (lambda (rule)
|
||||
(and (stringp rule) (string-match-p rule (buffer-name buffer))))
|
||||
doom-buffers-unreal)
|
||||
(with-current-buffer buffer
|
||||
(apply 'derived-mode-p (cl-remove-if-not 'symbolp doom-buffers-unreal))))))))
|
||||
|
||||
;;;###autoload
|
||||
(defun doom/next-buffer ()
|
||||
|
@ -222,9 +221,11 @@ See `doom-real-buffer-p' for what 'real' means."
|
|||
(when (and assoc
|
||||
(not (string= process-name "server"))
|
||||
(process-live-p p)
|
||||
(not (--any? (let ((mode (buffer-local-value 'major-mode it)))
|
||||
(eq mode (cdr assoc)))
|
||||
buffer-list)))
|
||||
(not (cl-some
|
||||
(lambda (buf)
|
||||
(let ((mode (buffer-local-value 'major-mode it)))
|
||||
(eq mode (cdr assoc))))
|
||||
buffer-list)))
|
||||
(delete-process p)
|
||||
(setq n (1+ n)))))
|
||||
n))
|
||||
|
|
|
@ -58,7 +58,7 @@ If already there, do nothing."
|
|||
(insert "\t")
|
||||
(let* ((movement (% (current-column) tab-width))
|
||||
(spaces (if (= 0 movement) tab-width (- tab-width movement))))
|
||||
(insert (s-repeat spaces " ")))))
|
||||
(insert (make-string spaces ? )))))
|
||||
|
||||
;;;###autoload
|
||||
(defun doom/dumb-dedent ()
|
||||
|
@ -157,9 +157,9 @@ from a commented line."
|
|||
((sp-point-in-comment)
|
||||
(cond ((eq major-mode 'js2-mode)
|
||||
(js2-line-break))
|
||||
((-contains? '(java-mode php-mode) major-mode)
|
||||
((memq major-mode '(java-mode php-mode))
|
||||
(c-indent-new-comment-line))
|
||||
((-contains? '(c-mode c++-mode objc-mode css-mode scss-mode js2-mode) major-mode)
|
||||
((memq major-mode '(c-mode c++-mode objc-mode css-mode scss-mode js2-mode))
|
||||
(newline-and-indent)
|
||||
(insert "* ")
|
||||
(indent-according-to-mode))
|
||||
|
|
|
@ -50,7 +50,7 @@ Examples:
|
|||
(defun doom-mplist-get (plist &rest keys)
|
||||
"TODO"
|
||||
(if (cdr keys)
|
||||
(let ((keys (--map (memq it plist) keys))
|
||||
(let ((keys (mapcar (lambda (key) (memq key plist)) keys))
|
||||
values)
|
||||
(dolist (forms keys)
|
||||
(when forms
|
||||
|
@ -60,6 +60,6 @@ Examples:
|
|||
|
||||
;;;###autoload
|
||||
(defun doom-mplist-member (plist &rest keys)
|
||||
(--any-p (memq it plist) keys))
|
||||
(cl-some (lambda (key) (memq key plist)) keys))
|
||||
|
||||
|
||||
|
|
|
@ -237,7 +237,7 @@ appropriate."
|
|||
(defun doom/packages-update ()
|
||||
"Interactive command for updating packages."
|
||||
(interactive)
|
||||
(let ((packages (cl-sort (doom-get-outdated-packages) 'doom--sort-alpha)))
|
||||
(let ((packages (sort (doom-get-outdated-packages) 'doom--sort-alpha)))
|
||||
(cond ((not packages)
|
||||
(message "Everything is up-to-date"))
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ possible rules."
|
|||
;;;###autoload
|
||||
(defun doom-popup-windows ()
|
||||
"Get a list of open poups."
|
||||
(-filter 'doom-popup-p (window-list)))
|
||||
(cl-remove-if-not 'doom-popup-p (window-list)))
|
||||
|
||||
;;;###autoload
|
||||
(defun doom/popup-restore ()
|
||||
|
@ -76,8 +76,9 @@ possible rules."
|
|||
"Closes all open popups. If DONT-KILL is non-nil, don't kill their buffers."
|
||||
(interactive)
|
||||
(let* ((orig-win (selected-window))
|
||||
(popups (--filter (and (doom-popup-p it) (not (eq it orig-win)))
|
||||
(window-list))))
|
||||
(popups (cl-remove-if-not (lambda (win) (and (doom-popup-p win)
|
||||
(not (eq win orig-win))))
|
||||
(window-list))))
|
||||
(when popups
|
||||
(setq doom-popup-history (mapcar 'doom--popup-data (doom-popup-windows)))
|
||||
(let (doom-popup-remember-history)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue