helm-ag would formerly add multiple entries to the jump list. It now only adds one, and recenters the window when jumping to an ag match.
126 lines
4.2 KiB
EmacsLisp
126 lines
4.2 KiB
EmacsLisp
;;; core/autoload/ui.el -*- lexical-binding: t; -*-
|
|
|
|
;;;###autoload
|
|
(defun doom/toggle-line-numbers ()
|
|
"Toggle line numbers.
|
|
|
|
Cycles through regular, relative and no line numbers. The order depends on what
|
|
`doom-line-numbers-style' is set to.
|
|
|
|
Uses `display-line-numbers' in Emacs 26+ and `nlinum-mode' everywhere else."
|
|
(interactive)
|
|
(defvar doom--line-number-style doom-line-numbers-style)
|
|
(let* ((styles '(t relative nil))
|
|
(order (cons doom-line-numbers-style (delq doom-line-numbers-style styles)))
|
|
(queue (memq doom--line-number-style order))
|
|
(next (if (= (length queue) 1)
|
|
(car order)
|
|
(car (cdr queue)))))
|
|
(setq doom--line-number-style next)
|
|
(cond ((boundp 'display-line-numbers)
|
|
(when (and (eq next 'relative)
|
|
doom-line-numbers-visual-style)
|
|
(setq next 'visual))
|
|
(setq display-line-numbers next))
|
|
((featurep 'nlinum)
|
|
(pcase next
|
|
(`t (nlinum-relative-off) (nlinum-mode +1))
|
|
(`relative (nlinum-relative-on))
|
|
(`nil (nlinum-mode -1))))
|
|
(t
|
|
(error "No line number plugin detected")))
|
|
(message "Switched to %s line numbers"
|
|
(pcase next
|
|
(`t "normal")
|
|
(`relative "relative")
|
|
(`visual "visual")
|
|
(`nil "disabled")))))
|
|
|
|
;;;###autoload
|
|
(defun doom-resize-window (window new-size &optional horizontal force-p)
|
|
"Resize a window to NEW-SIZE. If HORIZONTAL, do it width-wise.
|
|
If FORCE-P is omitted when `window-size-fixed' is non-nil, resizing will fail."
|
|
(with-selected-window (or window (selected-window))
|
|
(let ((window-size-fixed (unless force-p window-size-fixed)))
|
|
(enlarge-window (- new-size (if horizontal (window-width) (window-height)))
|
|
horizontal))))
|
|
|
|
;;;###autoload
|
|
(defun doom/window-zoom ()
|
|
"Close other windows to focus on this one. Activate again to undo this. If the
|
|
window changes before then, the undo expires.
|
|
|
|
Alternatively, use `doom/window-enlargen'."
|
|
(interactive)
|
|
(if (and (one-window-p)
|
|
(assoc ?_ register-alist))
|
|
(jump-to-register ?_)
|
|
(window-configuration-to-register ?_)
|
|
(delete-other-windows)))
|
|
|
|
(defvar doom--window-enlargened nil)
|
|
;;;###autoload
|
|
(defun doom/window-enlargen ()
|
|
"Enlargen the current window to focus on this one. Does not close other
|
|
windows (unlike `doom/window-zoom') Activate again to undo."
|
|
(interactive)
|
|
(setq doom--window-enlargened
|
|
(if (and doom--window-enlargened
|
|
(assoc ?_ register-alist))
|
|
(ignore (jump-to-register ?_))
|
|
(window-configuration-to-register ?_)
|
|
(maximize-window)
|
|
t)))
|
|
|
|
;;;###autoload
|
|
(defun doom/delete-frame ()
|
|
"Delete the current frame, but ask for confirmation if it isn't empty."
|
|
(interactive)
|
|
(if (cdr (frame-list))
|
|
(when (doom-quit-p "Close frame?")
|
|
(delete-frame))
|
|
(save-buffers-kill-emacs)))
|
|
|
|
;;;###autoload
|
|
(define-minor-mode doom-big-font-mode
|
|
"A global mode that resizes the font, for streams, screen-sharing and
|
|
presentations."
|
|
:init-value nil
|
|
:lighter " BIG"
|
|
:global t
|
|
(unless (fontp doom-big-font)
|
|
(user-error "`doom-big-font' isn't set to a valid font"))
|
|
(if doom-big-font-mode
|
|
(set-frame-font doom-big-font t t)
|
|
(set-frame-font doom-font t t)))
|
|
|
|
;;;###autoload
|
|
(defun doom/reload-theme ()
|
|
"Reset the current color theme and fonts."
|
|
(interactive)
|
|
(let ((theme (or (car-safe custom-enabled-themes) doom-theme)))
|
|
(when theme
|
|
(mapc #'disable-theme custom-enabled-themes))
|
|
(doom|init-theme)
|
|
(doom|init-fonts)))
|
|
|
|
;;;###autoload
|
|
(defun doom/switch-theme (theme)
|
|
"Like `load-theme', but will unload currently loaded themes before switching
|
|
to a new one."
|
|
(interactive
|
|
(list (completing-read
|
|
"Load theme: "
|
|
(mapcar #'symbol-name
|
|
(custom-available-themes)))))
|
|
(condition-case nil
|
|
(progn
|
|
(mapc #'disable-theme custom-enabled-themes)
|
|
(load-theme (intern theme) t)
|
|
(when (fboundp 'powerline-reset)
|
|
(powerline-reset)))
|
|
(error "Problem loading theme %s" x)))
|
|
|
|
;;;###autoload
|
|
(defun doom*recenter (&rest _)
|
|
(recenter))
|