dev: merging from main
This commit is contained in:
parent
c241f11ed1
commit
e2cd50cd0c
45 changed files with 232 additions and 296 deletions
|
@ -13,7 +13,7 @@ Includes:
|
||||||
[Install](#install) • [Documentation] • [FAQ] • [Screenshots] • [Contribute](#contribute)
|
[Install](#install) • [Documentation] • [FAQ] • [Screenshots] • [Contribute](#contribute)
|
||||||
|
|
||||||

|

|
||||||

|

|
||||||

|

|
||||||

|

|
||||||
[][Discord]
|
[][Discord]
|
||||||
|
@ -107,7 +107,7 @@ Check out [the FAQ][FAQ] for answers to common questions about the project.
|
||||||
|
|
||||||
# Prerequisites
|
# Prerequisites
|
||||||
- Git 2.23+
|
- Git 2.23+
|
||||||
- Emacs 27.1–29.2 (**Recommended: 29.2 +
|
- Emacs 27.1–29.3 (**Recommended: 29.3 +
|
||||||
[native-comp](https://www.emacswiki.org/emacs/GccEmacs)**)
|
[native-comp](https://www.emacswiki.org/emacs/GccEmacs)**)
|
||||||
- [ripgrep] 11.0+
|
- [ripgrep] 11.0+
|
||||||
- GNU `find`
|
- GNU `find`
|
||||||
|
|
|
@ -315,39 +315,36 @@ list remains lean."
|
||||||
(doom-packages--cli-recipes-update))
|
(doom-packages--cli-recipes-update))
|
||||||
(condition-case-unless-debug e
|
(condition-case-unless-debug e
|
||||||
(let ((straight-vc-git-post-clone-hook
|
(let ((straight-vc-git-post-clone-hook
|
||||||
(cons (lambda! (&key repo-dir commit)
|
(cons (lambda! (&key commit)
|
||||||
(print-group!
|
(print-group!
|
||||||
(if-let (pin (cdr (assoc package pinned)))
|
(if-let (pin (cdr (assoc package pinned)))
|
||||||
(print! (item "Pinned to %s") pin)
|
(print! (item "Pinned to %s") pin)
|
||||||
(when commit
|
(when commit
|
||||||
(print! (item "Checked out %s") commit))))
|
(print! (item "Checked out %s") commit)))))
|
||||||
;; HACK: Line encoding issues can plague
|
|
||||||
;; repos with dirty worktree prompts
|
|
||||||
;; when updating packages or "Local
|
|
||||||
;; variables entry is missing the
|
|
||||||
;; suffix" errors when installing them
|
|
||||||
;; (see #2637), so have git handle
|
|
||||||
;; conversion by force.
|
|
||||||
(when (and doom--system-windows-p (stringp repo-dir))
|
|
||||||
(let ((default-directory repo-dir))
|
|
||||||
(when (file-in-directory-p default-directory straight-base-dir)
|
|
||||||
(straight--process-run "git" "config" "core.autocrlf" "true")))))
|
|
||||||
straight-vc-git-post-clone-hook)))
|
straight-vc-git-post-clone-hook)))
|
||||||
(straight-use-package (intern package))
|
(straight-use-package (intern package))
|
||||||
|
(when (file-in-directory-p repo-dir straight-base-dir)
|
||||||
;; HACK: Straight can sometimes fail to clone a repo,
|
;; HACK: Straight can sometimes fail to clone a repo,
|
||||||
;; leaving behind an empty directory which, in future
|
;; leaving behind an empty directory which, in
|
||||||
;; invocations, it will assume indicates a successful
|
;; future invocations, it will assume indicates a
|
||||||
;; clone (causing load errors later).
|
;; successful clone (causing load errors later).
|
||||||
(let ((try 0))
|
(let ((try 0))
|
||||||
(while (or (not (file-directory-p repo-dir))
|
(while (not (file-directory-p (doom-path repo-dir ".git")))
|
||||||
(directory-empty-p repo-dir))
|
|
||||||
(when (= try 3)
|
(when (= try 3)
|
||||||
(error "Failed to clone package"))
|
(error "Failed to clone package"))
|
||||||
(print! "Failed to clone %S, trying again (attempt #%d)..." package (1+ try))
|
(print! (warn "Failed to clone %S, trying again (attempt #%d)...") package (1+ try))
|
||||||
(delete-directory repo-dir t)
|
(delete-directory repo-dir t)
|
||||||
(delete-directory build-dir t)
|
(delete-directory build-dir t)
|
||||||
(straight-use-package (intern package))
|
(straight-use-package (intern package))
|
||||||
(cl-incf try))))
|
(cl-incf try)))
|
||||||
|
;; HACK: Line encoding issues can plague repos with
|
||||||
|
;; dirty worktree prompts when updating packages or
|
||||||
|
;; "Local variables entry is missing the suffix"
|
||||||
|
;; errors when installing them (see #2637), so have
|
||||||
|
;; git handle conversion by force.
|
||||||
|
(when doom--system-windows-p
|
||||||
|
(let ((default-directory repo-dir))
|
||||||
|
(straight--process-run "git" "config" "core.autocrlf" "true")))))
|
||||||
(error
|
(error
|
||||||
(signal 'doom-package-error (list package e)))))))
|
(signal 'doom-package-error (list package e)))))))
|
||||||
(progn
|
(progn
|
||||||
|
|
|
@ -34,7 +34,7 @@ following shell commands:
|
||||||
(let* ((force? (doom-cli-context-suppress-prompts-p context))
|
(let* ((force? (doom-cli-context-suppress-prompts-p context))
|
||||||
(sync-cmd (append '("sync" "-u")
|
(sync-cmd (append '("sync" "-u")
|
||||||
(if nobuild? '("-B"))
|
(if nobuild? '("-B"))
|
||||||
(if jobs `("-j" ,num)))))
|
(if jobs `("-j" ,jobs)))))
|
||||||
(cond
|
(cond
|
||||||
(packages?
|
(packages?
|
||||||
;; HACK It's messy to use straight to upgrade straight, due to the
|
;; HACK It's messy to use straight to upgrade straight, due to the
|
||||||
|
|
|
@ -936,7 +936,7 @@ VARIABLES is a list of variable settings of the form (VAR VALUE),
|
||||||
where VAR is the name of the variable (a string) and VALUE
|
where VAR is the name of the variable (a string) and VALUE
|
||||||
is its value (also a string).
|
is its value (also a string).
|
||||||
|
|
||||||
The previous values will be be restored upon exit."
|
The previous values will be restored upon exit."
|
||||||
(declare (indent 1) (debug (sexp body)))
|
(declare (indent 1) (debug (sexp body)))
|
||||||
(unless (consp variables)
|
(unless (consp variables)
|
||||||
(error "Invalid VARIABLES: %s" variables))
|
(error "Invalid VARIABLES: %s" variables))
|
||||||
|
|
|
@ -95,7 +95,6 @@ want to change your symbol font, use `doom-symbol-font'.")
|
||||||
(inhibit-redisplay t))
|
(inhibit-redisplay t))
|
||||||
(run-hooks 'doom-switch-buffer-hook)))
|
(run-hooks 'doom-switch-buffer-hook)))
|
||||||
|
|
||||||
(defvar doom--last-frame nil)
|
|
||||||
(defun doom-run-switch-window-or-frame-hooks-h (&optional _)
|
(defun doom-run-switch-window-or-frame-hooks-h (&optional _)
|
||||||
(let ((gc-cons-threshold most-positive-fixnum)
|
(let ((gc-cons-threshold most-positive-fixnum)
|
||||||
(inhibit-redisplay t))
|
(inhibit-redisplay t))
|
||||||
|
|
163
lisp/doom.el
163
lisp/doom.el
|
@ -201,7 +201,7 @@
|
||||||
"Current version of Doom Emacs core.")
|
"Current version of Doom Emacs core.")
|
||||||
|
|
||||||
;; DEPRECATED: Remove these when the modules are moved out of core.
|
;; DEPRECATED: Remove these when the modules are moved out of core.
|
||||||
(defconst doom-modules-version "24.03.0-pre"
|
(defconst doom-modules-version "24.04.0-pre"
|
||||||
"Current version of Doom Emacs.")
|
"Current version of Doom Emacs.")
|
||||||
|
|
||||||
(defvar doom-init-time nil
|
(defvar doom-init-time nil
|
||||||
|
@ -352,12 +352,12 @@ users).")
|
||||||
;;; Startup optimizations
|
;;; Startup optimizations
|
||||||
|
|
||||||
;; Here are Doom's hackiest (and least offensive) startup optimizations. They
|
;; Here are Doom's hackiest (and least offensive) startup optimizations. They
|
||||||
;; exploit implementation details and unintended side-effects, and will change
|
;; exploit implementation details and unintended side-effects in Emacs' startup
|
||||||
;; often between major Emacs releases. However, I disable them if this is a
|
;; process, and will change often between major Emacs releases. However, I
|
||||||
;; daemon session (where startup time matters less).
|
;; disable them if this is a daemon session (where startup time matters less).
|
||||||
;;
|
;;
|
||||||
;; Most of these have been tested on Linux and on fairly fast machines (with
|
;; Most of these have been tested on Linux and on fairly fast machines (with
|
||||||
;; SSDs), so your mileage may vary depending on your hardware.
|
;; SSDs), so your mileage may vary depending on hardware and `window-system'.
|
||||||
(unless (daemonp)
|
(unless (daemonp)
|
||||||
;; PERF: `file-name-handler-alist' is consulted on each call to `require',
|
;; PERF: `file-name-handler-alist' is consulted on each call to `require',
|
||||||
;; `load', or various file/io functions (like `expand-file-name' or
|
;; `load', or various file/io functions (like `expand-file-name' or
|
||||||
|
@ -366,14 +366,13 @@ users).")
|
||||||
(let ((old-value (default-toplevel-value 'file-name-handler-alist)))
|
(let ((old-value (default-toplevel-value 'file-name-handler-alist)))
|
||||||
(set-default-toplevel-value
|
(set-default-toplevel-value
|
||||||
'file-name-handler-alist
|
'file-name-handler-alist
|
||||||
;; HACK: If the bundled elisp for this Emacs install isn't byte-compiled
|
;; HACK: The libraries bundled with Emacs can either be compiled,
|
||||||
;; (but is compressed), then leave the gzip file handler there so Emacs
|
;; compressed, or neither. We use calc-loaddefs.el as a heuristic to
|
||||||
;; won't forget how to read read them.
|
;; guess what state all these libraries are in. If they're compressed, we
|
||||||
;;
|
;; need to leave the gzip file handler in `file-name-handler-alist' so
|
||||||
;; calc-loaddefs.el is our heuristic for this because it is built-in to
|
;; Emacs knows how to load them. If they're compiled or neither, we can
|
||||||
;; all supported versions of Emacs, and calc.el explicitly loads it
|
;; omit the gzip handler altogether (at least during startup) for a boost
|
||||||
;; uncompiled. This ensures that the only other, possible fallback would
|
;; in startup and package load time.
|
||||||
;; be calc-loaddefs.el.gz.
|
|
||||||
(if (eval-when-compile
|
(if (eval-when-compile
|
||||||
(locate-file-internal "calc-loaddefs.el" load-path))
|
(locate-file-internal "calc-loaddefs.el" load-path))
|
||||||
nil
|
nil
|
||||||
|
@ -395,55 +394,46 @@ users).")
|
||||||
(unless noninteractive
|
(unless noninteractive
|
||||||
;; PERF: Resizing the Emacs frame (to accommodate fonts that are smaller or
|
;; PERF: Resizing the Emacs frame (to accommodate fonts that are smaller or
|
||||||
;; larger than the system font) appears to impact startup time
|
;; larger than the system font) appears to impact startup time
|
||||||
;; dramatically. The larger the delta in font size, the greater the delay.
|
;; dramatically. The larger the delta, the greater the delay. Even trivial
|
||||||
;; Even trivial deltas can yield a ~1000ms loss, though it varies wildly
|
;; deltas can yield up to a ~1000ms loss, depending on font size and
|
||||||
;; depending on font size.
|
;; `window-system'. PGTK seems least affected and NS/MAC the most.
|
||||||
(setq frame-inhibit-implied-resize t)
|
(setq frame-inhibit-implied-resize t)
|
||||||
|
|
||||||
;; PERF,UX: Reduce *Message* noise at startup. An empty scratch buffer (or
|
;; PERF: A fair bit of startup time goes into initializing the splash and
|
||||||
;; the dashboard) is more than enough, and faster to display.
|
;; scratch buffers in the typical Emacs session (b/c they activate a
|
||||||
|
;; non-trivial major mode, generate the splash buffer, and trigger
|
||||||
|
;; premature frame redraws by writing to *Messages*). These hacks prevent
|
||||||
|
;; most of this work from happening for some decent savings in startup
|
||||||
|
;; time. Our dashboard and `doom/open-scratch-buffer' provide a faster
|
||||||
|
;; (and more useful) alternative anyway.
|
||||||
(setq inhibit-startup-screen t
|
(setq inhibit-startup-screen t
|
||||||
inhibit-startup-echo-area-message user-login-name)
|
inhibit-startup-echo-area-message user-login-name
|
||||||
;; PERF,UX: Remove "For information about GNU Emacs..." message at startup.
|
initial-major-mode 'fundamental-mode
|
||||||
;; It's redundant with our dashboard and incurs a premature redraw.
|
initial-scratch-message nil)
|
||||||
|
;; PERF,UX: Prevent "For information about GNU Emacs..." line in *Messages*.
|
||||||
(advice-add #'display-startup-echo-area-message :override #'ignore)
|
(advice-add #'display-startup-echo-area-message :override #'ignore)
|
||||||
;; PERF: Suppress the vanilla startup screen completely. We've disabled it
|
;; PERF: Suppress the vanilla startup screen completely. We've disabled it
|
||||||
;; with `inhibit-startup-screen', but it would still initialize anyway.
|
;; with `inhibit-startup-screen', but it would still initialize anyway.
|
||||||
;; This involves some file IO and/or bitmap work (depending on the frame
|
;; This involves file IO and/or bitmap work (depending on the frame type)
|
||||||
;; type) that we can no-op for a free 50-100ms boost in startup time.
|
;; that we can no-op for a free 50-100ms saving in startup time.
|
||||||
(advice-add #'display-startup-screen :override #'ignore)
|
(advice-add #'display-startup-screen :override #'ignore)
|
||||||
|
|
||||||
;; PERF: Shave seconds off startup time by starting the scratch buffer in
|
|
||||||
;; `fundamental-mode', rather than, say, `org-mode' or `text-mode', which
|
|
||||||
;; pull in a ton of packages. This buffer is created whether or not we're
|
|
||||||
;; in an interactive session. Plus, `doom/open-scratch-buffer' provides a
|
|
||||||
;; better scratch buffer, so keep the initial one blank.
|
|
||||||
(setq initial-major-mode 'fundamental-mode
|
|
||||||
initial-scratch-message nil)
|
|
||||||
|
|
||||||
(unless initial-window-system
|
(unless initial-window-system
|
||||||
;; PERF: Inexplicably, `tty-run-terminal-initialization' can sometimes
|
;; PERF: `tty-run-terminal-initialization' can take 2-3s when starting up
|
||||||
;; take 2-3s when starting up Emacs in the terminal. Whatever slows it
|
;; TTY Emacs (non-daemon sessions), depending on your TERM, TERMINFO,
|
||||||
;; down at startup doesn't appear to affect it if it's called a little
|
;; and TERMCAP, but this work isn't very useful on modern systems (the
|
||||||
;; later in the startup process, so that's what I do.
|
;; type I expect Doom's users to be using). The function seems less
|
||||||
;; REVIEW: This optimization is not well understood. Investigate it!
|
;; expensive if run later in the startup process, so I defer it.
|
||||||
|
;; REVIEW: This may no longer be needed in 29+. Needs testing!
|
||||||
(define-advice tty-run-terminal-initialization (:override (&rest _) defer)
|
(define-advice tty-run-terminal-initialization (:override (&rest _) defer)
|
||||||
(advice-remove #'tty-run-terminal-initialization #'tty-run-terminal-initialization@defer)
|
(advice-remove #'tty-run-terminal-initialization #'tty-run-terminal-initialization@defer)
|
||||||
(add-hook 'window-setup-hook
|
(add-hook 'window-setup-hook
|
||||||
(doom-partial #'tty-run-terminal-initialization
|
(doom-partial #'tty-run-terminal-initialization
|
||||||
(selected-frame) nil t))))
|
(selected-frame) nil t))))
|
||||||
|
|
||||||
;; PERF,UX: Site files tend to use `load-file', which emits "Loading X..."
|
;; PERF: `load-suffixes' and `load-file-rep-suffixes' are consulted on each
|
||||||
;; messages in the echo area. Writing to the echo-area triggers a
|
;; `require' and `load'. Doom won't load any modules this early, so omit
|
||||||
;; redisplay, which can be expensive during startup. This may also cause
|
;; .so for a tiny startup boost. Is later restored in doom-start.
|
||||||
;; an flash of white when creating the first frame. Needs to be undo
|
|
||||||
;; later, though.
|
|
||||||
(define-advice load-file (:override (file) silence)
|
|
||||||
(load file nil 'nomessage))
|
|
||||||
|
|
||||||
;; PERF: `load-suffixes' and `load-file-rep-suffixes' are consulted on
|
|
||||||
;; each `require' and `load'. Doom won't load any modules this early, so
|
|
||||||
;; omit .so for a tiny startup boost. Is later restored in doom-start.
|
|
||||||
(put 'load-suffixes 'initial-value (default-toplevel-value 'load-suffixes))
|
(put 'load-suffixes 'initial-value (default-toplevel-value 'load-suffixes))
|
||||||
(put 'load-file-rep-suffixes 'initial-value (default-toplevel-value 'load-file-rep-suffixes))
|
(put 'load-file-rep-suffixes 'initial-value (default-toplevel-value 'load-file-rep-suffixes))
|
||||||
(set-default-toplevel-value 'load-suffixes '(".elc" ".el"))
|
(set-default-toplevel-value 'load-suffixes '(".elc" ".el"))
|
||||||
|
@ -455,35 +445,34 @@ users).")
|
||||||
(setq load-suffixes (get 'load-suffixes 'initial-value)
|
(setq load-suffixes (get 'load-suffixes 'initial-value)
|
||||||
load-file-rep-suffixes (get 'load-file-rep-suffixes 'initial-value))))
|
load-file-rep-suffixes (get 'load-file-rep-suffixes 'initial-value))))
|
||||||
|
|
||||||
;; PERF: Doom uses `defcustom' to indicate variables that users are
|
;; PERF: Doom uses `defcustom' merely to announce variables that users may
|
||||||
;; expected to reconfigure. Trouble is it fires off initializers meant
|
;; reconfigure. Trouble is it fires off initializers meant to accommodate
|
||||||
;; to accommodate any user attempts to configure them before they were
|
;; any user attempts to configure them *before* they are defined, which
|
||||||
;; defined. This is unnecessary work before $DOOMDIR/init.el is loaded,
|
;; isn't possible since the user's first opportunity to modify them comes
|
||||||
;; so I disable them until it is.
|
;; long after they're defined (in $DOOMDIR/init.el), so this is
|
||||||
|
;; unnecessary work. To spare Emacs the startup time, I disable this
|
||||||
|
;; behavior until $DOOMDIR is loaded.
|
||||||
(setq custom-dont-initialize t)
|
(setq custom-dont-initialize t)
|
||||||
(add-hook! 'doom-before-init-hook
|
(add-hook! 'doom-before-init-hook
|
||||||
(defun doom--reset-custom-dont-initialize-h ()
|
(defun doom--reset-custom-dont-initialize-h ()
|
||||||
(setq custom-dont-initialize nil)))
|
(setq custom-dont-initialize nil)))
|
||||||
|
|
||||||
;; PERF: Doom disables the UI elements by default, so that there's less
|
;; PERF: The mode-line procs a couple dozen times during startup, before the
|
||||||
;; for the frame to initialize. However, the toolbar is still populated
|
;; user can even see the first mode-line. This is normally fast, but we
|
||||||
;; regardless, so I lazy load it until tool-bar-mode is actually used.
|
;; can't predict what the user (or packages) will put into the mode-line.
|
||||||
(advice-add #'tool-bar-setup :override #'ignore)
|
;; Also, mode-line packages have a bad habit of throwing performance to
|
||||||
|
;; the wind, so best we just disable the mode-line until we can see one.
|
||||||
;; PERF: The mode-line procs a couple dozen times during startup. This is
|
|
||||||
;; normally quite fast, but disabling the default mode-line and reducing
|
|
||||||
;; the update delay timer seems to stave off ~30-50ms.
|
|
||||||
(put 'mode-line-format 'initial-value (default-toplevel-value 'mode-line-format))
|
(put 'mode-line-format 'initial-value (default-toplevel-value 'mode-line-format))
|
||||||
(setq-default mode-line-format nil)
|
(setq-default mode-line-format nil)
|
||||||
(dolist (buf (buffer-list))
|
(dolist (buf (buffer-list))
|
||||||
(with-current-buffer buf (setq mode-line-format nil)))
|
(with-current-buffer buf (setq mode-line-format nil)))
|
||||||
;; PERF,UX: Premature redisplays can substantially affect startup times
|
;; PERF,UX: Premature redisplays/redraws can substantially affect startup
|
||||||
;; and/or produce ugly flashes of unstyled Emacs.
|
;; times and/or flash a white/unstyled Emacs frame during startup, so I
|
||||||
|
;; try real hard to suppress them until we're sure the session is ready.
|
||||||
(setq-default inhibit-redisplay t
|
(setq-default inhibit-redisplay t
|
||||||
inhibit-message t)
|
inhibit-message t)
|
||||||
;; COMPAT: Then reset with advice, because `startup--load-user-init-file'
|
;; COMPAT: If the above vars aren't reset, Emacs could appear frozen or
|
||||||
;; will never be interrupted by errors. And if these settings are left
|
;; garbled after startup (or in case of an startup error).
|
||||||
;; set, Emacs could appear frozen or garbled.
|
|
||||||
(defun doom--reset-inhibited-vars-h ()
|
(defun doom--reset-inhibited-vars-h ()
|
||||||
(setq-default inhibit-redisplay nil
|
(setq-default inhibit-redisplay nil
|
||||||
;; Inhibiting `message' only prevents redraws and
|
;; Inhibiting `message' only prevents redraws and
|
||||||
|
@ -491,35 +480,43 @@ users).")
|
||||||
(redraw-frame))
|
(redraw-frame))
|
||||||
(add-hook 'after-init-hook #'doom--reset-inhibited-vars-h)
|
(add-hook 'after-init-hook #'doom--reset-inhibited-vars-h)
|
||||||
|
|
||||||
;; PERF,UX: An annoying aspect of site-lisp files is that they're often
|
;; PERF: Doom disables the UI elements by default, so that there's less for
|
||||||
;; noisy (they emit load messages or other output to stdout). These
|
;; the frame to initialize. However, `tool-bar-setup' is still called and
|
||||||
;; queue unnecessary redraws at startup, cost startup time, and pollute
|
;; it does some non-trivial work to set up the toolbar before we can
|
||||||
;; the logs. I get around it by suppressing it until we can load it
|
;; disable it. To side-step this work, I disable the function and call it
|
||||||
;; manually, later (in the `startup--load-user-init-file' advice below).
|
;; later (see `startup--load-user-init-file@undo-hacks').
|
||||||
|
(advice-add #'tool-bar-setup :override #'ignore)
|
||||||
|
|
||||||
|
;; PERF,UX: site-lisp files are often obnoxiously noisy (emitting load
|
||||||
|
;; messages or other output to *Messages* or stdout). These queue
|
||||||
|
;; unnecessary redraws at startup which impact startup time depending on
|
||||||
|
;; window system. It also pollutes the logs. By suppressing it now, I can
|
||||||
|
;; load it myself, later, in a more controlled way (see
|
||||||
|
;; `startup--load-user-init-file@undo-hacks').
|
||||||
(put 'site-run-file 'initial-value site-run-file)
|
(put 'site-run-file 'initial-value site-run-file)
|
||||||
(setq site-run-file nil)
|
(setq site-run-file nil)
|
||||||
|
|
||||||
(define-advice startup--load-user-init-file (:around (fn &rest args) undo-inhibit-vars)
|
(define-advice startup--load-user-init-file (:around (fn &rest args) undo-hacks)
|
||||||
(let (--init--)
|
"Undo Doom's startup optimizations to prep for the user's session."
|
||||||
|
(let (init)
|
||||||
(unwind-protect
|
(unwind-protect
|
||||||
(progn
|
(progn
|
||||||
;; COMPAT: Onces startup is sufficiently complete, undo some
|
|
||||||
;; optimizations to reduce the scope of potential edge cases.
|
|
||||||
(advice-remove #'load-file #'load-file@silence)
|
|
||||||
(advice-remove #'tool-bar-setup #'ignore)
|
|
||||||
(add-transient-hook! 'tool-bar-mode (tool-bar-setup))
|
|
||||||
(when (setq site-run-file (get 'site-run-file 'initial-value))
|
(when (setq site-run-file (get 'site-run-file 'initial-value))
|
||||||
(let ((inhibit-startup-screen inhibit-startup-screen))
|
(let ((inhibit-startup-screen inhibit-startup-screen))
|
||||||
(letf! (defun load (file &optional noerror _nomessage &rest args)
|
(letf! ((defun load-file (file) (load file nil 'nomessage))
|
||||||
(apply load file noerror t args))
|
(defun load (file &optional noerror _nomessage &rest args)
|
||||||
|
(apply load file noerror t args)))
|
||||||
(load site-run-file t t))))
|
(load site-run-file t t))))
|
||||||
;; Then startup as normal.
|
(apply fn args) ; start up as normal
|
||||||
(apply fn args)
|
(setq init t))
|
||||||
(setq --init-- t))
|
(when (or (not init) init-file-had-error)
|
||||||
(when (or (not --init--) init-file-had-error)
|
|
||||||
;; If we don't undo our inhibit-{message,redisplay} and there's an
|
;; If we don't undo our inhibit-{message,redisplay} and there's an
|
||||||
;; error, we'll see nothing but a blank Emacs frame.
|
;; error, we'll see nothing but a blank Emacs frame.
|
||||||
(doom--reset-inhibited-vars-h))
|
(doom--reset-inhibited-vars-h))
|
||||||
|
;; COMPAT: Once startup is sufficiently complete, undo our earlier
|
||||||
|
;; optimizations to reduce the scope of potential edge cases.
|
||||||
|
(advice-remove #'tool-bar-setup #'ignore)
|
||||||
|
(add-transient-hook! 'tool-bar-mode (tool-bar-setup))
|
||||||
(unless (default-toplevel-value 'mode-line-format)
|
(unless (default-toplevel-value 'mode-line-format)
|
||||||
(setq-default mode-line-format (get 'mode-line-format 'initial-value))))))
|
(setq-default mode-line-format (get 'mode-line-format 'initial-value))))))
|
||||||
|
|
||||||
|
|
|
@ -487,24 +487,31 @@ If FORCE-P, overwrite the destination file if it exists, without confirmation."
|
||||||
(defun doom/sudo-find-file (file)
|
(defun doom/sudo-find-file (file)
|
||||||
"Open FILE as root."
|
"Open FILE as root."
|
||||||
(interactive "FOpen file as root: ")
|
(interactive "FOpen file as root: ")
|
||||||
(find-file (doom--sudo-file-path (expand-file-name file))))
|
;; HACK: Disable auto-save in temporary tramp buffers because it could trigger
|
||||||
|
;; processes that hang silently in the background, making those buffers
|
||||||
|
;; inoperable for the rest of that session (Tramp caches them).
|
||||||
|
(let ((auto-save-default nil)
|
||||||
|
;; REVIEW: use only these when we drop 28 support
|
||||||
|
(remote-file-name-inhibit-auto-save t)
|
||||||
|
(remote-file-name-inhibit-auto-save-visited t))
|
||||||
|
(find-file (doom--sudo-file-path (expand-file-name file)))))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun doom/sudo-this-file ()
|
(defun doom/sudo-this-file ()
|
||||||
"Open the current file as root."
|
"Open the current file as root."
|
||||||
(interactive)
|
(interactive)
|
||||||
(find-file
|
(doom/sudo-find-file
|
||||||
(doom--sudo-file-path
|
(or (buffer-file-name (buffer-base-buffer))
|
||||||
(or buffer-file-name
|
|
||||||
(when (or (derived-mode-p 'dired-mode)
|
(when (or (derived-mode-p 'dired-mode)
|
||||||
(derived-mode-p 'wdired-mode))
|
(derived-mode-p 'wdired-mode))
|
||||||
default-directory)))))
|
default-directory)
|
||||||
|
(user-error "Cannot determine the file path of the current buffer"))))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun doom/sudo-save-buffer ()
|
(defun doom/sudo-save-buffer ()
|
||||||
"Save this file as root."
|
"Save this file as root."
|
||||||
(interactive)
|
(interactive)
|
||||||
(let ((file (doom--sudo-file-path buffer-file-name)))
|
(let ((file (doom--sudo-file-path (buffer-file-name (buffer-base-buffer)))))
|
||||||
(if-let (buffer (find-file-noselect file))
|
(if-let (buffer (find-file-noselect file))
|
||||||
(let ((origin (current-buffer)))
|
(let ((origin (current-buffer)))
|
||||||
(copy-to-buffer buffer (point-min) (point-max))
|
(copy-to-buffer buffer (point-min) (point-max))
|
||||||
|
@ -593,7 +600,12 @@ see), and if nil, defaults to `find-sibling-rules'."
|
||||||
(nconc
|
(nconc
|
||||||
results
|
results
|
||||||
(mapcar #'expand-file-name
|
(mapcar #'expand-file-name
|
||||||
(file-expand-wildcards expansion nil t)))))))))
|
;; `file-expand-wildcards' has a new REGEXP
|
||||||
|
;; argument in 29+ that is needed here. This swap
|
||||||
|
;; makes it behave as if REGEXP == t.
|
||||||
|
(letf! (defun wildcard-to-regexp (wildcard)
|
||||||
|
(concat "\\`" wildcard "\\'"))
|
||||||
|
(file-expand-wildcards expansion nil))))))))))
|
||||||
;; Delete the file itself (in case it matched), and remove
|
;; Delete the file itself (in case it matched), and remove
|
||||||
;; duplicates, in case we have several expansions and some match
|
;; duplicates, in case we have several expansions and some match
|
||||||
;; the same subsets of files.
|
;; the same subsets of files.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
;; -*- no-byte-compile: t; -*-
|
;; -*- no-byte-compile: t; -*-
|
||||||
;;; completion/company/packages.el
|
;;; completion/company/packages.el
|
||||||
|
|
||||||
(package! company :pin "02903bd7088d65a87df0ae0f0d0a7118de147b69")
|
(package! company :pin "b0a522ac5bf8ba3d2f4f22e3aa846a4f82978a16")
|
||||||
(package! company-dict :pin "cd7b8394f6014c57897f65d335d6b2bd65dab1f4")
|
(package! company-dict :pin "cd7b8394f6014c57897f65d335d6b2bd65dab1f4")
|
||||||
(when (modulep! +childframe)
|
(when (modulep! +childframe)
|
||||||
(package! company-box :pin "b6f53e26adf948aca55c3ff6c22c21a6a6614253"))
|
(package! company-box :pin "c4f2e243fba03c11e46b1600b124e036f2be7691"))
|
||||||
|
|
|
@ -212,6 +212,14 @@ A few variables may be set to change behavior of this module:
|
||||||
Whether to prefer navigating org tables over cycling candidates when pressing
|
Whether to prefer navigating org tables over cycling candidates when pressing
|
||||||
[[kbd:][TAB]] and [[kbd:][S-TAB]].
|
[[kbd:][TAB]] and [[kbd:][S-TAB]].
|
||||||
|
|
||||||
|
** Turning off auto-completion
|
||||||
|
To disable idle (as-you-type) completion, unset ~corfu-auto~:
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
;;; in $DOOMDIR/config.el
|
||||||
|
(after! corfu
|
||||||
|
(setq corfu-auto nil))
|
||||||
|
#+end_src
|
||||||
|
|
||||||
** Adding CAPFs to a mode
|
** Adding CAPFs to a mode
|
||||||
To add other CAPFs on a mode-per-mode basis, put either of the following in your
|
To add other CAPFs on a mode-per-mode basis, put either of the following in your
|
||||||
~config.el~:
|
~config.el~:
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
;; -*- no-byte-compile: t; -*-
|
;; -*- no-byte-compile: t; -*-
|
||||||
;;; completion/corfu/packages.el
|
;;; completion/corfu/packages.el
|
||||||
|
|
||||||
(package! corfu :pin "c1e7b6190b00158e67347b4db0a8f7964e5d2f8b")
|
(package! corfu :pin "35cd5a0f3cba89766072e3e933d1fe2ee02f2289")
|
||||||
(package! cape :pin "a397a0c92de38277b7f835fa999fac400a764908")
|
(package! cape :pin "e01e4430234850263d326ad4521849cd46e64059")
|
||||||
(when (modulep! +icons)
|
(when (modulep! +icons)
|
||||||
(package! nerd-icons-corfu :pin "7077bb76fefc15aed967476406a19dc5c2500b3c"))
|
(package! nerd-icons-corfu :pin "7077bb76fefc15aed967476406a19dc5c2500b3c"))
|
||||||
(when (and (not (modulep! :completion vertico))
|
(when (and (not (modulep! :completion vertico))
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
;; -*- no-byte-compile: t; -*-
|
;; -*- no-byte-compile: t; -*-
|
||||||
;;; completion/helm/packages.el
|
;;; completion/helm/packages.el
|
||||||
|
|
||||||
(package! helm :pin "f34ea6b702648e5c7535a704bdb6c4d7afb4b3b8")
|
(package! helm :pin "28f62344fed0d8be0bcef5aa8a018ba58198ba0c")
|
||||||
(package! helm-company :pin "4622b82353220ee6cc33468f710fa5b6b253b7f1")
|
(package! helm-company :pin "4622b82353220ee6cc33468f710fa5b6b253b7f1")
|
||||||
(package! helm-c-yasnippet :pin "c5880e740da101fde7a995e94a7b16c330e57583")
|
(package! helm-c-yasnippet :pin "c5880e740da101fde7a995e94a7b16c330e57583")
|
||||||
(package! helm-descbinds :pin "b72515982396b6e336ad7beb6767e95a80fca192")
|
(package! helm-descbinds :pin "ca03f02da4e54a1d0a2d5498b86e1639aa808d8c")
|
||||||
(package! helm-describe-modes :pin "11fb36af119b784539d31c6160002de1957408aa")
|
(package! helm-describe-modes :pin "11fb36af119b784539d31c6160002de1957408aa")
|
||||||
(package! helm-projectile :pin "e2e38825c975269a4971df25e79b2ae98929624e")
|
(package! helm-projectile :pin "e2e38825c975269a4971df25e79b2ae98929624e")
|
||||||
(package! helm-rg :pin "ee0a3c09da0c843715344919400ab0a0190cc9dc")
|
(package! helm-rg :pin "ee0a3c09da0c843715344919400ab0a0190cc9dc")
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
;; -*- no-byte-compile: t; -*-
|
;; -*- no-byte-compile: t; -*-
|
||||||
;;; completion/ivy/packages.el
|
;;; completion/ivy/packages.el
|
||||||
|
|
||||||
(package! swiper :pin "8c30f4cab5948aa8d942a3b2bbf5fb6a94d9441d")
|
(package! swiper :pin "1f88e5499046d166d22bf733a3877aec3b424947")
|
||||||
(package! ivy)
|
(package! ivy)
|
||||||
(package! ivy-hydra)
|
(package! ivy-hydra)
|
||||||
(package! ivy-avy)
|
(package! ivy-avy)
|
||||||
|
@ -13,7 +13,7 @@
|
||||||
(package! wgrep :pin "208b9d01cfffa71037527e3a324684b3ce45ddc4")
|
(package! wgrep :pin "208b9d01cfffa71037527e3a324684b3ce45ddc4")
|
||||||
|
|
||||||
(if (modulep! +prescient)
|
(if (modulep! +prescient)
|
||||||
(package! ivy-prescient :pin "4b875be52e75f7b81e68a16b62cfbb2f2584042c")
|
(package! ivy-prescient :pin "c39bf07c56b427bf41aafd7d20eaef5cf3c312b5")
|
||||||
(when (modulep! +fuzzy)
|
(when (modulep! +fuzzy)
|
||||||
(package! flx :pin "4b1346eb9a8a76ee9c9dede69738c63ad97ac5b6")))
|
(package! flx :pin "4b1346eb9a8a76ee9c9dede69738c63ad97ac5b6")))
|
||||||
|
|
||||||
|
|
|
@ -207,6 +207,9 @@ orderless."
|
||||||
"C-x C-d" #'consult-dir
|
"C-x C-d" #'consult-dir
|
||||||
"C-x C-j" #'consult-dir-jump-file))
|
"C-x C-j" #'consult-dir-jump-file))
|
||||||
:config
|
:config
|
||||||
|
;; DEPRECATED: Remove when Doom core replaces projectile with project.el
|
||||||
|
(setq consult-dir-project-list-function #'consult-dir-projectile-dirs)
|
||||||
|
|
||||||
(when (modulep! :tools docker)
|
(when (modulep! :tools docker)
|
||||||
;; TODO: Replace with `tramp-container--completion-function' when we drop
|
;; TODO: Replace with `tramp-container--completion-function' when we drop
|
||||||
;; support for <29
|
;; support for <29
|
||||||
|
|
|
@ -1,19 +1,19 @@
|
||||||
;; -*- no-byte-compile: t; -*-
|
;; -*- no-byte-compile: t; -*-
|
||||||
;;; completion/vertico/packages.el
|
;;; completion/vertico/packages.el
|
||||||
|
|
||||||
(package! vertico :pin "68cbd47589446e9674921bae0b98ff8fbe28be23")
|
(package! vertico :pin "68e51fda552a2f91caab69e83564bc91275b09b1")
|
||||||
|
|
||||||
(package! orderless :pin "dc7a781acf2e58ac7d20d1b522be0cde5213e057")
|
(package! orderless :pin "ac4aeb66f331f4c4a430d5556071e33177304c37")
|
||||||
|
|
||||||
(package! consult :pin "b48ff6bf0527baeb6bfd07c6da9d303ff0b79c3d")
|
(package! consult :pin "c87b0bf06de0c3cb60bc8d257c770cb981ddcd19")
|
||||||
(package! consult-dir :pin "3f5f4b71ebe819392cb090cda71bd39a93bd830a")
|
(package! consult-dir :pin "3f5f4b71ebe819392cb090cda71bd39a93bd830a")
|
||||||
(when (and (modulep! :checkers syntax)
|
(when (and (modulep! :checkers syntax)
|
||||||
(not (modulep! :checkers syntax +flymake)))
|
(not (modulep! :checkers syntax +flymake)))
|
||||||
(package! consult-flycheck :pin "754f5497d827f7d58009256a21af614cc44378a3"))
|
(package! consult-flycheck :pin "754f5497d827f7d58009256a21af614cc44378a3"))
|
||||||
(package! embark :pin "c93abadc8220c0caa6fea805f7a736c346d47e7e")
|
(package! embark :pin "d3c9d1b4c890cf365846cc2b418f37341999e79f")
|
||||||
(package! embark-consult :pin "c93abadc8220c0caa6fea805f7a736c346d47e7e")
|
(package! embark-consult :pin "d3c9d1b4c890cf365846cc2b418f37341999e79f")
|
||||||
|
|
||||||
(package! marginalia :pin "f6fe86b989a177355ab3ff7e97a384e10a7b0bb1")
|
(package! marginalia :pin "3275d1f85cb020280979a050054b843f7563aea2")
|
||||||
|
|
||||||
(package! wgrep :pin "208b9d01cfffa71037527e3a324684b3ce45ddc4")
|
(package! wgrep :pin "208b9d01cfffa71037527e3a324684b3ce45ddc4")
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
;; -*- no-byte-compile: t; -*-
|
;; -*- no-byte-compile: t; -*-
|
||||||
;;; editor/evil/packages.el
|
;;; editor/evil/packages.el
|
||||||
|
|
||||||
(package! evil :pin "5995f6f21f662484440ed67a28ce59e365feb9ad")
|
(package! evil :pin "88d073c9d03ca223564e7e8589f44ecc87c98153")
|
||||||
(package! evil-args :pin "2671071a4a57eaee7cc8c27b9e4b6fc60fd2ccd3")
|
(package! evil-args :pin "a8151556f63c9d45d0c44c8a7ef9e5a542f3cdc7")
|
||||||
(package! evil-easymotion :pin "f96c2ed38ddc07908db7c3c11bcd6285a3e8c2e9")
|
(package! evil-easymotion :pin "f96c2ed38ddc07908db7c3c11bcd6285a3e8c2e9")
|
||||||
(package! evil-embrace :pin "3081d37811b6a3dfaaf01d578c7ab7a746c6064d")
|
(package! evil-embrace :pin "3081d37811b6a3dfaaf01d578c7ab7a746c6064d")
|
||||||
(package! evil-escape
|
(package! evil-escape
|
||||||
|
@ -11,10 +11,10 @@
|
||||||
(package! evil-exchange :pin "5f0a2d41434c17c6fb02e4f744043775de1c63a2")
|
(package! evil-exchange :pin "5f0a2d41434c17c6fb02e4f744043775de1c63a2")
|
||||||
(package! evil-indent-plus :pin "f392696e4813f1d3a92c7eeed333248914ba6dae")
|
(package! evil-indent-plus :pin "f392696e4813f1d3a92c7eeed333248914ba6dae")
|
||||||
(package! evil-lion :pin "1e838a53b8f18a3c8bdf3e952186abc2ee9cb98e")
|
(package! evil-lion :pin "1e838a53b8f18a3c8bdf3e952186abc2ee9cb98e")
|
||||||
(package! evil-nerd-commenter :pin "3b197a2b559b06a7cf39978704b196f53dac802a")
|
(package! evil-nerd-commenter :pin "ae52c5070a48793e2c24474c9c8dbf20175d18a0")
|
||||||
(package! evil-numbers :pin "7a1b62afc12da2b582bf84d722e7b10ca8b97065")
|
(package! evil-numbers :pin "7a1b62afc12da2b582bf84d722e7b10ca8b97065")
|
||||||
(package! evil-snipe :pin "c2108d3932fcd2f75ac3e48250d6badd668f5b4f")
|
(package! evil-snipe :pin "c2108d3932fcd2f75ac3e48250d6badd668f5b4f")
|
||||||
(package! evil-surround :pin "c7116cdc774b1e259eaf3e9e7a318a6c99c2da17")
|
(package! evil-surround :pin "da05c60b0621cf33161bb4335153f75ff5c29d91")
|
||||||
(package! evil-textobj-anyblock
|
(package! evil-textobj-anyblock
|
||||||
:recipe (:host github
|
:recipe (:host github
|
||||||
:repo "willghatch/evil-textobj-anyblock"
|
:repo "willghatch/evil-textobj-anyblock"
|
||||||
|
@ -35,4 +35,4 @@
|
||||||
(package! neotree)
|
(package! neotree)
|
||||||
(autoload 'neotree-make-executor "neotree" nil nil 'macro))
|
(autoload 'neotree-make-executor "neotree" nil nil 'macro))
|
||||||
|
|
||||||
(package! evil-collection :pin "8c84f9bc89fe56e71b56519f886085ddcbc671cf"))
|
(package! evil-collection :pin "e0982fcbb6f1694b27074565553fac0e736a30b4"))
|
||||||
|
|
|
@ -78,6 +78,18 @@ Targets `vimmish-fold', `hideshow', `ts-fold' and `outline' folds."
|
||||||
((+fold--hideshow-fold-p) (+fold-from-eol (hs-toggle-hiding)))
|
((+fold--hideshow-fold-p) (+fold-from-eol (hs-toggle-hiding)))
|
||||||
((+fold--ts-fold-p) (ts-fold-toggle)))))
|
((+fold--ts-fold-p) (ts-fold-toggle)))))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun +fold/open-rec ()
|
||||||
|
"Recursively open the folded region at point.
|
||||||
|
|
||||||
|
Targets `vimmish-fold', `hideshow', `ts-fold' and `outline' folds."
|
||||||
|
(interactive)
|
||||||
|
(save-excursion
|
||||||
|
(cond ((+fold--vimish-fold-p) (vimish-fold-unfold))
|
||||||
|
((+fold--outline-fold-p) (outline-show-subtree))
|
||||||
|
((+fold--hideshow-fold-p) (+fold-from-eol (hs-show-block)))
|
||||||
|
((+fold--ts-fold-p) (ts-fold-open)))))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun +fold/open ()
|
(defun +fold/open ()
|
||||||
"Open the folded region at point.
|
"Open the folded region at point.
|
||||||
|
@ -87,7 +99,7 @@ Targets `vimmish-fold', `hideshow', `ts-fold' and `outline' folds."
|
||||||
(save-excursion
|
(save-excursion
|
||||||
(cond ((+fold--vimish-fold-p) (vimish-fold-unfold))
|
(cond ((+fold--vimish-fold-p) (vimish-fold-unfold))
|
||||||
((+fold--outline-fold-p)
|
((+fold--outline-fold-p)
|
||||||
(outline-show-children)
|
(outline-show-branches)
|
||||||
(outline-show-entry))
|
(outline-show-entry))
|
||||||
((+fold--hideshow-fold-p) (+fold-from-eol (hs-show-block)))
|
((+fold--hideshow-fold-p) (+fold-from-eol (hs-show-block)))
|
||||||
((+fold--ts-fold-p) (ts-fold-open)))))
|
((+fold--ts-fold-p) (ts-fold-open)))))
|
||||||
|
@ -111,7 +123,7 @@ Targets `vimmish-fold', `hideshow', `ts-fold' and `outline' folds."
|
||||||
(list (if current-prefix-arg (prefix-numeric-value current-prefix-arg))))
|
(list (if current-prefix-arg (prefix-numeric-value current-prefix-arg))))
|
||||||
(cond ((+fold--ts-fold-p)
|
(cond ((+fold--ts-fold-p)
|
||||||
(ts-fold-open-all))
|
(ts-fold-open-all))
|
||||||
((featurep 'vimish-fold)
|
((and (featurep 'vimish-fold) (+fold--vimish-fold-p))
|
||||||
(vimish-fold-unfold-all))
|
(vimish-fold-unfold-all))
|
||||||
((save-excursion
|
((save-excursion
|
||||||
(+fold--ensure-hideshow-mode)
|
(+fold--ensure-hideshow-mode)
|
||||||
|
@ -138,8 +150,12 @@ Targets `vimmish-fold', `hideshow', `ts-fold' and `outline' folds."
|
||||||
(+fold--ensure-hideshow-mode)
|
(+fold--ensure-hideshow-mode)
|
||||||
(hs-life-goes-on
|
(hs-life-goes-on
|
||||||
(if (integerp level)
|
(if (integerp level)
|
||||||
(hs-hide-level-recursive (1- level) (point-min) (point-max))
|
(progn
|
||||||
(hs-hide-all)))))))
|
(outline--show-headings-up-to-level (1+ level))
|
||||||
|
(hs-hide-level-recursive (1- level) (point-min) (point-max)))
|
||||||
|
(hs-hide-all)
|
||||||
|
(when (fboundp 'outline-hide-sublevels)
|
||||||
|
(outline-show-only-headings))))))))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun +fold/next (count)
|
(defun +fold/next (count)
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
[remap evil-toggle-fold] #'+fold/toggle
|
[remap evil-toggle-fold] #'+fold/toggle
|
||||||
[remap evil-close-fold] #'+fold/close
|
[remap evil-close-fold] #'+fold/close
|
||||||
[remap evil-open-fold] #'+fold/open
|
[remap evil-open-fold] #'+fold/open
|
||||||
[remap evil-open-fold-rec] #'+fold/open
|
[remap evil-open-fold-rec] #'+fold/open-rec
|
||||||
[remap evil-close-folds] #'+fold/close-all
|
[remap evil-close-folds] #'+fold/close-all
|
||||||
[remap evil-open-folds] #'+fold/open-all)
|
[remap evil-open-folds] #'+fold/open-all)
|
||||||
(after! evil
|
(after! evil
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
;; -*- no-byte-compile: t; -*-
|
;; -*- no-byte-compile: t; -*-
|
||||||
;;; editor/snippets/packages.el
|
;;; editor/snippets/packages.el
|
||||||
|
|
||||||
(package! yasnippet :pin "297546f0853a6a51f5b05e954d0c6aea8caa5ec2")
|
(package! yasnippet :pin "33587a8551b8f6991b607d3532062a384c010ce1")
|
||||||
(package! auto-yasnippet :pin "6a9e406d0d7f9dfd6dff7647f358cb05a0b1637e")
|
(package! auto-yasnippet :pin "6a9e406d0d7f9dfd6dff7647f358cb05a0b1637e")
|
||||||
(package! doom-snippets
|
(package! doom-snippets
|
||||||
:recipe (:host github
|
:recipe (:host github
|
||||||
:repo "doomemacs/snippets"
|
:repo "doomemacs/snippets"
|
||||||
:files (:defaults "*"))
|
:files (:defaults "*"))
|
||||||
:pin "f022984ee1318a4015d5d081b3c3dab5a60dc6ff")
|
:pin "07b3bdaf60b74080f899b12c3d46594c7fa75e04")
|
||||||
|
|
|
@ -6,9 +6,9 @@
|
||||||
(package! smerge-mode :built-in t)
|
(package! smerge-mode :built-in t)
|
||||||
|
|
||||||
(package! browse-at-remote :pin "76aa27dfd469fcae75ed7031bb73830831aaccbf")
|
(package! browse-at-remote :pin "76aa27dfd469fcae75ed7031bb73830831aaccbf")
|
||||||
(package! git-commit :pin "b68e0a3c3388af8daac662f25ccfd3e980590e12")
|
(package! git-commit :pin "b5637d665c1e5bd5b76ffb072dbac387f37a5f63")
|
||||||
(package! git-timemachine
|
(package! git-timemachine
|
||||||
;; The original lives on codeberg.org; which has uptime issues.
|
;; The original lives on codeberg.org; which has uptime issues.
|
||||||
:recipe (:host github :repo "emacsmirror/git-timemachine")
|
:recipe (:host github :repo "emacsmirror/git-timemachine")
|
||||||
:pin "ac933e5cd29583c131401f3bd991d98129c316df")
|
:pin "5ed73c3831cf6da10ba941e6abba708a86853e8f")
|
||||||
(package! git-modes :pin "3cc94974c09c43462dfbfbe20396a414352dbb92")
|
(package! git-modes :pin "3cc94974c09c43462dfbfbe20396a414352dbb92")
|
||||||
|
|
|
@ -75,6 +75,7 @@ is non-nil."
|
||||||
(setq mu4e-get-mail-command "offlineimap -o -q")))
|
(setq mu4e-get-mail-command "offlineimap -o -q")))
|
||||||
|
|
||||||
(setq mu4e-update-interval nil
|
(setq mu4e-update-interval nil
|
||||||
|
mu4e-notification-support t
|
||||||
mu4e-sent-messages-behavior 'sent
|
mu4e-sent-messages-behavior 'sent
|
||||||
mu4e-hide-index-messages t
|
mu4e-hide-index-messages t
|
||||||
;; configuration for sending mail
|
;; configuration for sending mail
|
||||||
|
@ -671,77 +672,3 @@ See `+mu4e-msg-gmail-p' and `mu4e-sent-messages-behavior'.")
|
||||||
(`refile (mu4e-action-retag-message msg "-\\Inbox"))
|
(`refile (mu4e-action-retag-message msg "-\\Inbox"))
|
||||||
(`flag (mu4e-action-retag-message msg "+\\Starred"))
|
(`flag (mu4e-action-retag-message msg "+\\Starred"))
|
||||||
(`unflag (mu4e-action-retag-message msg "-\\Starred"))))))))
|
(`unflag (mu4e-action-retag-message msg "-\\Starred"))))))))
|
||||||
|
|
||||||
;;
|
|
||||||
;;; Alerts
|
|
||||||
|
|
||||||
(use-package! mu4e-alert
|
|
||||||
:after mu4e
|
|
||||||
:config
|
|
||||||
(setq doom-modeline-mu4e t)
|
|
||||||
|
|
||||||
(mu4e-alert-enable-mode-line-display)
|
|
||||||
(mu4e-alert-enable-notifications)
|
|
||||||
|
|
||||||
(when (version<= "1.6" mu4e-mu-version)
|
|
||||||
(defadvice! +mu4e-alert-filter-repeated-mails-fixed-a (mails)
|
|
||||||
"Filters the MAILS that have been seen already\nUses :message-id not :docid."
|
|
||||||
:override #'mu4e-alert-filter-repeated-mails
|
|
||||||
(cl-remove-if (lambda (mail)
|
|
||||||
(prog1 (and (not mu4e-alert-notify-repeated-mails)
|
|
||||||
(ht-get mu4e-alert-repeated-mails
|
|
||||||
(plist-get mail :message-id)))
|
|
||||||
(ht-set! mu4e-alert-repeated-mails
|
|
||||||
(plist-get mail :message-id)
|
|
||||||
t)))
|
|
||||||
mails)))
|
|
||||||
|
|
||||||
(when (featurep :system 'linux)
|
|
||||||
(mu4e-alert-set-default-style 'libnotify)
|
|
||||||
|
|
||||||
(defvar +mu4e-alert-bell-cmd '("paplay" . "/usr/share/sounds/freedesktop/stereo/message.oga")
|
|
||||||
"Cons list with command to play a sound, and the sound file to play.
|
|
||||||
Disabled when set to nil.")
|
|
||||||
|
|
||||||
(setq mu4e-alert-email-notification-types '(subjects))
|
|
||||||
(defun +mu4e-alert-grouped-mail-notification-formatter-with-bell (mail-group _all-mails)
|
|
||||||
"Default function to format MAIL-GROUP for notification.
|
|
||||||
ALL-MAILS are the all the unread emails"
|
|
||||||
(when +mu4e-alert-bell-cmd
|
|
||||||
(start-process "mu4e-alert-bell" nil (car +mu4e-alert-bell-cmd) (cdr +mu4e-alert-bell-cmd)))
|
|
||||||
(if (> (length mail-group) 1)
|
|
||||||
(let* ((mail-count (length mail-group))
|
|
||||||
(first-mail (car mail-group))
|
|
||||||
(title-prefix (format "You have %d unread emails"
|
|
||||||
mail-count))
|
|
||||||
(field-value (mu4e-alert--get-group first-mail))
|
|
||||||
(title-suffix (format (pcase mu4e-alert-group-by
|
|
||||||
(`:from "from %s:")
|
|
||||||
(`:to "to %s:")
|
|
||||||
(`:maildir "in %s:")
|
|
||||||
(`:priority "with %s priority:")
|
|
||||||
(`:flags "with %s flags:"))
|
|
||||||
field-value))
|
|
||||||
(title (format "%s %s" title-prefix title-suffix)))
|
|
||||||
(list :title title
|
|
||||||
:body (s-join "\n"
|
|
||||||
(mapcar (lambda (mail)
|
|
||||||
(format "%s<b>%s</b> • %s"
|
|
||||||
(cond
|
|
||||||
((plist-get mail :in-reply-to) "⮩ ")
|
|
||||||
((string-match-p "\\`Fwd:"
|
|
||||||
(plist-get mail :subject)) " ⮯ ")
|
|
||||||
(t " "))
|
|
||||||
(truncate-string-to-width (or (caar (plist-get mail :from))
|
|
||||||
(cdar (plist-get mail :from)))
|
|
||||||
20 nil nil t)
|
|
||||||
(truncate-string-to-width
|
|
||||||
(replace-regexp-in-string "\\`Re: \\|\\`Fwd: " ""
|
|
||||||
(plist-get mail :subject))
|
|
||||||
40 nil nil t)))
|
|
||||||
mail-group))))
|
|
||||||
(let* ((new-mail (car mail-group))
|
|
||||||
(subject (plist-get new-mail :subject))
|
|
||||||
(sender (caar (plist-get new-mail :from))))
|
|
||||||
(list :title sender :body subject))))
|
|
||||||
(setq mu4e-alert-grouped-mail-notification-formatter #'+mu4e-alert-grouped-mail-notification-formatter-with-bell)))
|
|
||||||
|
|
|
@ -3,5 +3,3 @@
|
||||||
|
|
||||||
(when (modulep! +org)
|
(when (modulep! +org)
|
||||||
(package! org-msg :pin "0b65f0f77a7a71881ddfce19a8cdc60465bda057"))
|
(package! org-msg :pin "0b65f0f77a7a71881ddfce19a8cdc60465bda057"))
|
||||||
|
|
||||||
(package! mu4e-alert :pin "6beda20fc69771f2778f507c4a9e069dbaf1b628")
|
|
||||||
|
|
|
@ -78,7 +78,8 @@ This is ignored by ccls.")
|
||||||
:return "return"
|
:return "return"
|
||||||
:yield "#require")
|
:yield "#require")
|
||||||
|
|
||||||
(add-to-list 'find-sibling-rules '("/\\([^/]+\\)\\.c\\(c\\|pp\\)\\'" "\\1.\\(h\\|hh\\|hpp\\)"))
|
(add-to-list 'find-sibling-rules '("/\\([^/]+\\)\\.c\\(c\\|pp\\)?\\'" "\\1.h\\(h\\|pp\\)?\\'"))
|
||||||
|
(add-to-list 'find-sibling-rules '("/\\([^/]+\\)\\.h\\(h\\|pp\\)?\\'" "\\1.c\\(c\\|pp\\)?\\'"))
|
||||||
|
|
||||||
(when (modulep! +tree-sitter)
|
(when (modulep! +tree-sitter)
|
||||||
(add-hook! '(c-mode-local-vars-hook
|
(add-hook! '(c-mode-local-vars-hook
|
||||||
|
|
|
@ -174,3 +174,8 @@
|
||||||
:defer t
|
:defer t
|
||||||
:init
|
:init
|
||||||
(add-to-list 'sly-contribs 'sly-asdf 'append))
|
(add-to-list 'sly-contribs 'sly-asdf 'append))
|
||||||
|
|
||||||
|
(use-package! sly-stepper
|
||||||
|
:defer t
|
||||||
|
:init
|
||||||
|
(add-to-list 'sly-contribs 'sly-stepper))
|
||||||
|
|
|
@ -3,6 +3,9 @@
|
||||||
|
|
||||||
(when (package! sly :pin "ed17d2c2bd7aead0fbb09c3d22861c80a522a097")
|
(when (package! sly :pin "ed17d2c2bd7aead0fbb09c3d22861c80a522a097")
|
||||||
(package! sly-asdf :pin "6f9d751469bb82530db1673c22e7437ca6c95f45")
|
(package! sly-asdf :pin "6f9d751469bb82530db1673c22e7437ca6c95f45")
|
||||||
|
(package! sly-quicklisp :pin "34c73d43dd9066262387c626c17a9b486db07b2d")
|
||||||
|
(package! sly-stepper :recipe (:host github :repo "joaotavora/sly-stepper"
|
||||||
|
:files (:defaults "*.lisp" "*.asd")))
|
||||||
(package! sly-macrostep :pin "5113e4e926cd752b1d0bcc1508b3ebad5def5fad")
|
(package! sly-macrostep :pin "5113e4e926cd752b1d0bcc1508b3ebad5def5fad")
|
||||||
(package! sly-repl-ansi-color :pin "b9cd52d1cf927bf7e08582d46ab0bcf1d4fb5048")
|
(package! sly-repl-ansi-color :pin "b9cd52d1cf927bf7e08582d46ab0bcf1d4fb5048")
|
||||||
(package! sly-overlay :pin "916b50297a1f3bb110f840b89b8717d194623e5f"))
|
(package! sly-overlay :pin "916b50297a1f3bb110f840b89b8717d194623e5f"))
|
||||||
|
|
|
@ -91,7 +91,7 @@ query GetContinents($continentCode: String!) {
|
||||||
With this module, there are 3 ways to view schemas:
|
With this module, there are 3 ways to view schemas:
|
||||||
+ =+graphql-doc-open-config= which uses a local [[https://github.com/jimkyndemeyer/graphql-config-examples][=.graphqlconfig=]] file to seed endpoints to query
|
+ =+graphql-doc-open-config= which uses a local [[https://github.com/jimkyndemeyer/graphql-config-examples][=.graphqlconfig=]] file to seed endpoints to query
|
||||||
+ =graphql-doc= which prompts you to select an endpoint based on ones added manually by =graphql-doc-add-api=
|
+ =graphql-doc= which prompts you to select an endpoint based on ones added manually by =graphql-doc-add-api=
|
||||||
+ =graphql-doc-open-url= which prompts to to manually enter an endpoint url
|
+ =graphql-doc-open-url= which prompts to manually enter an endpoint url
|
||||||
|
|
||||||
When using the doc viewer, there are a few bindings for navigating around.
|
When using the doc viewer, there are a few bindings for navigating around.
|
||||||
|
|
||||||
|
|
|
@ -1188,7 +1188,7 @@ between the two."
|
||||||
:hook (org-mode . org-eldoc-load)
|
:hook (org-mode . org-eldoc-load)
|
||||||
:init (setq org-eldoc-breadcrumb-separator " → ")
|
:init (setq org-eldoc-breadcrumb-separator " → ")
|
||||||
:config
|
:config
|
||||||
;; HACK Fix #2972: infinite recursion when eldoc kicks in in 'org' or 'python'
|
;; HACK Fix #2972: infinite recursion when eldoc kicks in 'org' or 'python'
|
||||||
;; src blocks.
|
;; src blocks.
|
||||||
;; TODO Should be reported upstream!
|
;; TODO Should be reported upstream!
|
||||||
(puthash "org" #'ignore org-eldoc-local-functions-cache)
|
(puthash "org" #'ignore org-eldoc-local-functions-cache)
|
||||||
|
|
|
@ -54,35 +54,4 @@
|
||||||
(lambda (path)
|
(lambda (path)
|
||||||
(if (file-in-directory-p path org-download-image-dir)
|
(if (file-in-directory-p path org-download-image-dir)
|
||||||
(file-relative-name path org-download-image-dir)
|
(file-relative-name path org-download-image-dir)
|
||||||
path)))
|
path))))
|
||||||
|
|
||||||
(defadvice! +org--fix-org-download-delete-a (fn beg end &optional times)
|
|
||||||
"Fix `org-download-delete' for a non-standard `org-download-link-format'."
|
|
||||||
:around #'org-download--delete
|
|
||||||
(save-excursion
|
|
||||||
(save-match-data
|
|
||||||
(goto-char beg)
|
|
||||||
(let ((times (or times most-positive-fixnum))
|
|
||||||
(linkname
|
|
||||||
(or (and (string-match "\\[\\[\\(\\w+\\):" org-download-link-format)
|
|
||||||
(match-string 1 org-download-link-format))
|
|
||||||
"file")))
|
|
||||||
(while (and (>= (cl-decf times) 0)
|
|
||||||
(re-search-forward (format "\\[\\[%s:\\([^]]*\\)\\]\\]"
|
|
||||||
(regexp-quote linkname))
|
|
||||||
end t))
|
|
||||||
(let ((str (match-string-no-properties 2)))
|
|
||||||
(delete-region beg (match-end 0))
|
|
||||||
(when (file-exists-p str)
|
|
||||||
(delete-file str))))))))
|
|
||||||
|
|
||||||
(defadvice! +org--dragndrop-then-display-inline-images-a (_link filename)
|
|
||||||
:after #'org-download-insert-link
|
|
||||||
(when (image-type-from-file-name filename)
|
|
||||||
(save-excursion
|
|
||||||
(org-display-inline-images
|
|
||||||
t t
|
|
||||||
(progn (org-back-to-heading-or-point-min t) (point))
|
|
||||||
(progn (org-end-of-subtree t t)
|
|
||||||
(when (and (org-at-heading-p) (not (eobp))) (backward-char 1))
|
|
||||||
(point)))))))
|
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
;; -*- no-byte-compile: t; -*-
|
;; -*- no-byte-compile: t; -*-
|
||||||
;;; lang/scala/packages.el
|
;;; lang/scala/packages.el
|
||||||
|
|
||||||
(package! sbt-mode :pin "9fe1e8807c22cc1dc56a6233e000969518907f4d")
|
(package! sbt-mode :pin "bcf8d6040021013430b39d6f6766ce1aab0b691a")
|
||||||
(package! scala-mode :pin "4c6d636b86e3bb1d95de819dc48dda92abdfbcf4")
|
(package! scala-mode :pin "4c6d636b86e3bb1d95de819dc48dda92abdfbcf4")
|
||||||
|
|
||||||
(when (and (modulep! +lsp)
|
(when (and (modulep! +lsp)
|
||||||
(not (modulep! :tools lsp +eglot)))
|
(not (modulep! :tools lsp +eglot)))
|
||||||
(package! lsp-metals :pin "da7e54ed65f4e153c94b9c54689908dce142ef37"))
|
(package! lsp-metals :pin "e55d544996f7321622e1eeafdc3dd128f8e72ce5"))
|
||||||
|
|
|
@ -8,7 +8,8 @@ be aligned.
|
||||||
|
|
||||||
If set to `nil', disable all the above behaviors.")
|
If set to `nil', disable all the above behaviors.")
|
||||||
|
|
||||||
(add-to-list 'find-sibling-rules '("/\\([^/]+\\)\\.\\(\\(s[ac]\\|le\\)ss\\|styl\\)\\'" "\\1\\.css"))
|
(add-to-list 'find-sibling-rules '("/\\([^/]+\\)\\.\\(\\(s[ac]\\|le\\)ss\\|styl\\)\\'" "\\1\\.css\\'"))
|
||||||
|
(add-to-list 'find-sibling-rules '("/\\([^/]+\\)\\.css\\'" "\\1\\.\\(\\(s[ac]\\|le\\)ss\\|styl\\)\\'"))
|
||||||
|
|
||||||
|
|
||||||
;;
|
;;
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
;; -*- no-byte-compile: t; -*-
|
;; -*- no-byte-compile: t; -*-
|
||||||
;;; term/eshell/packages.el
|
;;; term/eshell/packages.el
|
||||||
|
|
||||||
(package! eshell-up :pin "ff84e6069b98f2ed00857a0f78bff19d96e4955c")
|
(package! eshell-up :pin "1999afaa509204b780db44e99ac9648fe7d92d32")
|
||||||
(package! eshell-z :pin "337cb241e17bd472bd3677ff166a0800f684213c")
|
(package! eshell-z :pin "337cb241e17bd472bd3677ff166a0800f684213c")
|
||||||
(package! shrink-path :pin "c14882c8599aec79a6e8ef2d06454254bb3e1e41")
|
(package! shrink-path :pin "c14882c8599aec79a6e8ef2d06454254bb3e1e41")
|
||||||
(package! esh-help :pin "417673ed18a983930a66a6692dbfb288a995cb80")
|
(package! esh-help :pin "417673ed18a983930a66a6692dbfb288a995cb80")
|
||||||
(package! eshell-did-you-mean :pin "80cd8c4b186a2fb29621cf634bcf2bcd914f1e3d")
|
(package! eshell-did-you-mean :pin "80cd8c4b186a2fb29621cf634bcf2bcd914f1e3d")
|
||||||
(package! eshell-syntax-highlighting :pin "4ac27eec6595ba116a6151dfaf0b0e0440101e10")
|
(package! eshell-syntax-highlighting :pin "1d25386bf7d1a97e083d33750a98fbd1c6598138")
|
||||||
|
|
||||||
(unless (featurep :system 'windows)
|
(unless (featurep :system 'windows)
|
||||||
(package! fish-completion :pin "d34d0b96fde63feedf13c4288183d8d4d4d748cf")
|
(package! fish-completion :pin "006c613ff7f846b7d0a14422f2bdcc28b21205b8")
|
||||||
(package! bash-completion :pin "f1daac0386c24cbe8a244a62c7588cc6847b07ae"))
|
(package! bash-completion :pin "f1daac0386c24cbe8a244a62c7588cc6847b07ae"))
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
;; -*- no-byte-compile: t; -*-
|
;; -*- no-byte-compile: t; -*-
|
||||||
;;; tools/ansible/packages.el
|
;;; tools/ansible/packages.el
|
||||||
|
|
||||||
(package! ansible :recipe (:nonrecursive t) :pin "d89ac0ee57742cca0f0e0a3453d9dcc521575690")
|
(package! ansible :recipe (:nonrecursive t) :pin "1d7de8d3ddac980715eebd87ee66859f8665b101")
|
||||||
(package! ansible-doc :pin "86083a7bb2ed0468ca64e52076b06441a2f8e9e0")
|
(package! ansible-doc :pin "86083a7bb2ed0468ca64e52076b06441a2f8e9e0")
|
||||||
(package! jinja2-mode :pin "03e5430a7efe1d163a16beaf3c82c5fd2c2caee1")
|
(package! jinja2-mode :pin "03e5430a7efe1d163a16beaf3c82c5fd2c2caee1")
|
||||||
(package! yaml-mode :pin "5b58248ab255dff6cfa4c4057a191bc4446ee5b6")
|
(package! yaml-mode :pin "7b5ce294fb15c2c8926fa476d7218aa415550a2a")
|
||||||
|
|
||||||
(when (modulep! :completion company)
|
(when (modulep! :completion company)
|
||||||
(package! company-ansible :pin "79dd421b161efa49fbdffad57fa40edb41f484a3"))
|
(package! company-ansible :pin "338922601cf9e8ada863fe6f2dd9d5145d9983b0"))
|
||||||
|
|
|
@ -2,16 +2,16 @@
|
||||||
;;; tools/biblio/packages.el
|
;;; tools/biblio/packages.el
|
||||||
|
|
||||||
(when (modulep! :completion ivy)
|
(when (modulep! :completion ivy)
|
||||||
(package! bibtex-completion :pin "bf184cc311c9e1724f8b2eaf75b9e202c3aedd16")
|
(package! bibtex-completion :pin "8b71b4f5ce62eeaf18067f57faaddc06449fbe1c")
|
||||||
(package! ivy-bibtex :pin "bf184cc311c9e1724f8b2eaf75b9e202c3aedd16"))
|
(package! ivy-bibtex :pin "8b71b4f5ce62eeaf18067f57faaddc06449fbe1c"))
|
||||||
(when (modulep! :completion helm)
|
(when (modulep! :completion helm)
|
||||||
(package! bibtex-completion :pin "bf184cc311c9e1724f8b2eaf75b9e202c3aedd16")
|
(package! bibtex-completion :pin "8b71b4f5ce62eeaf18067f57faaddc06449fbe1c")
|
||||||
(package! helm-bibtex :pin "bf184cc311c9e1724f8b2eaf75b9e202c3aedd16"))
|
(package! helm-bibtex :pin "8b71b4f5ce62eeaf18067f57faaddc06449fbe1c"))
|
||||||
(when (modulep! :completion vertico)
|
(when (modulep! :completion vertico)
|
||||||
(package! citar :pin "885b86f6733fd70f42c32dd7791d3447f93db990")
|
(package! citar :pin "885b86f6733fd70f42c32dd7791d3447f93db990")
|
||||||
(package! citar-embark :pin "885b86f6733fd70f42c32dd7791d3447f93db990")
|
(package! citar-embark :pin "885b86f6733fd70f42c32dd7791d3447f93db990")
|
||||||
(when (modulep! :lang org +roam2)
|
(when (modulep! :lang org +roam2)
|
||||||
(package! citar-org-roam :pin "7d67dccf80065a88cb86ce9a8274383a9e8269c1")))
|
(package! citar-org-roam :pin "82d47b5df1926627f56a09055c69b49b31cbbb9f")))
|
||||||
|
|
||||||
(package! parsebib :pin "ace9df707108b17759c004c7387655277122d4c1")
|
(package! parsebib :pin "ace9df707108b17759c004c7387655277122d4c1")
|
||||||
(package! citeproc :pin "c61c98b9d230ea28b2ca49498134803e1f8ea526")
|
(package! citeproc :pin "44f90cb296766e03fffc28b7892521ab0e8709f1")
|
||||||
|
|
|
@ -6,5 +6,5 @@
|
||||||
(package! realgud-trepan-ni :pin "0ec088ea343835e24ae73da09bea96bfb02a3130")))
|
(package! realgud-trepan-ni :pin "0ec088ea343835e24ae73da09bea96bfb02a3130")))
|
||||||
|
|
||||||
(when (modulep! +lsp)
|
(when (modulep! +lsp)
|
||||||
(package! dap-mode :pin "2f0c5b28578ce65ec746e4084ba72ba5c652ea79")
|
(package! dap-mode :pin "c95537c58e8f3ceac9c827ddf89e4928b24a1cc7")
|
||||||
(package! posframe :pin "017deece88360c7297265680d78a0bb316470716"))
|
(package! posframe :pin "017deece88360c7297265680d78a0bb316470716"))
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
;; -*- no-byte-compile: t; -*-
|
;; -*- no-byte-compile: t; -*-
|
||||||
;;; tools/direnv/packages.el
|
;;; tools/direnv/packages.el
|
||||||
|
|
||||||
(package! envrc :pin "1385e72a730924664697a0961d43516a47a977d7")
|
(package! envrc :pin "8eb7401700b0080902ce200ad610ff8d2f2dcc27")
|
||||||
|
|
|
@ -5,4 +5,4 @@
|
||||||
;; tramp-container (included with Emacs 29+) replaces docker-tramp
|
;; tramp-container (included with Emacs 29+) replaces docker-tramp
|
||||||
(when (< emacs-major-version 29)
|
(when (< emacs-major-version 29)
|
||||||
(package! docker-tramp :pin "19d0771db4e6b89e19c00af5806438e315779c15"))
|
(package! docker-tramp :pin "19d0771db4e6b89e19c00af5806438e315779c15"))
|
||||||
(package! dockerfile-mode :pin "52c6c00da1d31c0b6c29c74335b3af63ed6bf06c")
|
(package! dockerfile-mode :pin "39a012a27fcf6fb629c447d13b6974baf906714c")
|
||||||
|
|
|
@ -3,4 +3,4 @@
|
||||||
|
|
||||||
(package! editorconfig
|
(package! editorconfig
|
||||||
:recipe (:nonrecursive t)
|
:recipe (:nonrecursive t)
|
||||||
:pin "c3666c093f3a2a80fb42e513bf0a10d597497c18")
|
:pin "d73b6392ded0476af93ec7ba75cca2909aa8d2dc")
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
;; -*- no-byte-compile: t; -*-
|
;; -*- no-byte-compile: t; -*-
|
||||||
;;; tools/eval/packages.el
|
;;; tools/eval/packages.el
|
||||||
|
|
||||||
(package! quickrun :pin "248149b0261051bd9eec8bdbc21c22d18d7b1b11")
|
(package! quickrun :pin "373634cf5143f9680164e27fa844d3b02408e917")
|
||||||
(when (modulep! +overlay)
|
(when (modulep! +overlay)
|
||||||
(package! eros :pin "a9a92bdc6be0521a6a06eb464be55ed61946639c"))
|
(package! eros :pin "a9a92bdc6be0521a6a06eb464be55ed61946639c"))
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
|
|
||||||
(when (modulep! +dictionary)
|
(when (modulep! +dictionary)
|
||||||
(if (featurep :system 'macos)
|
(if (featurep :system 'macos)
|
||||||
(package! osx-dictionary :pin "1f5a74f3e5d7f3c443f07433951512cd99e820a6")
|
(package! osx-dictionary :pin "6abfd6908b0dc773020466225c908000870b383b")
|
||||||
(package! define-word :pin "31a8c67405afa99d0e25e7c86a4ee7ef84a808fe")
|
(package! define-word :pin "31a8c67405afa99d0e25e7c86a4ee7ef84a808fe")
|
||||||
;; REVIEW: This fork fixes SavchenkoValeriy/emacs-powerthesaurus#40.
|
;; REVIEW: This fork fixes SavchenkoValeriy/emacs-powerthesaurus#40.
|
||||||
(package! powerthesaurus
|
(package! powerthesaurus
|
||||||
|
|
|
@ -3,14 +3,14 @@
|
||||||
|
|
||||||
(if (modulep! +eglot)
|
(if (modulep! +eglot)
|
||||||
(progn
|
(progn
|
||||||
(package! eglot :pin "24f2bf7b28c33e1d677b547956ade5560d27f55f")
|
(package! eglot :pin "678610fdc544f10ac757ab7acf88ac7c5815ed5a")
|
||||||
(when (modulep! :completion vertico)
|
(when (modulep! :completion vertico)
|
||||||
(package! consult-eglot :pin "049c6319b8a48ff66189d49592c7759f0b356596"))
|
(package! consult-eglot :pin "64262e72452f8fe6dd49d31bcdd4bd577b7d682d"))
|
||||||
(when (and (modulep! :checkers syntax)
|
(when (and (modulep! :checkers syntax)
|
||||||
(not (modulep! :checkers syntax +flymake)))
|
(not (modulep! :checkers syntax +flymake)))
|
||||||
(package! flycheck-eglot :pin "114e1315aaf0dc3196da67da426bbe2b46384fe2")))
|
(package! flycheck-eglot :pin "114e1315aaf0dc3196da67da426bbe2b46384fe2")))
|
||||||
(package! lsp-mode :pin "a5f5ca9a8a4b2ceaf236457bf2524f94c183c2f2")
|
(package! lsp-mode :pin "8861252880f6c2f6374a7bca2b945e6447eebd5a")
|
||||||
(package! lsp-ui :pin "bc58c6664577d1d79060c6b32b7ad20e70ee19d0")
|
(package! lsp-ui :pin "942eeecc3d9a23ad006a3476885dfa7cbb5e207e")
|
||||||
(when (modulep! :completion ivy)
|
(when (modulep! :completion ivy)
|
||||||
(package! lsp-ivy :pin "9ecf4dd9b1207109802bd1882aa621eb1c385106"))
|
(package! lsp-ivy :pin "9ecf4dd9b1207109802bd1882aa621eb1c385106"))
|
||||||
(when (modulep! :completion helm)
|
(when (modulep! :completion helm)
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
;; -*- no-byte-compile: t; -*-
|
;; -*- no-byte-compile: t; -*-
|
||||||
;;; tools/magit/packages.el
|
;;; tools/magit/packages.el
|
||||||
|
|
||||||
(when (package! magit :pin "0e8f25a8d8011328f2bf082232c720b24c2a12c2")
|
(when (package! magit :pin "b5637d665c1e5bd5b76ffb072dbac387f37a5f63")
|
||||||
(when (modulep! +forge)
|
(when (modulep! +forge)
|
||||||
(package! forge :pin "2a3b41eb6235b3f39c017c1f86b3928a45c5a64d")
|
(package! forge :pin "ad94b5665de357347bfc52910eef46a79f74988d")
|
||||||
(package! code-review
|
(package! code-review
|
||||||
:recipe (:host github
|
:recipe (:host github
|
||||||
:repo "doomelpa/code-review"
|
:repo "doomelpa/code-review"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
;; -*- no-byte-compile: t; -*-
|
;; -*- no-byte-compile: t; -*-
|
||||||
;;; tools/pdf/packages.el
|
;;; tools/pdf/packages.el
|
||||||
|
|
||||||
(package! pdf-tools :pin "c69e7656a4678fe25afbd29f3503dd19ee7f9896")
|
(package! pdf-tools :pin "93e74924517d39483b432d6c3c9b8f8b8f0eb50c")
|
||||||
(package! saveplace-pdf-view :pin "abfb5e1f463cffc18218a0f7f2fa141a271b1813")
|
(package! saveplace-pdf-view :pin "ee95460cd934080338f03a16f95b549577425216")
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
;; -*- no-byte-compile: t; -*-
|
;; -*- no-byte-compile: t; -*-
|
||||||
;;; tools/terraform/packages.el
|
;;; tools/terraform/packages.el
|
||||||
|
|
||||||
(package! terraform-mode :pin "e8b57df8c2a3d3171f3768f60eb84067f553289c")
|
(package! terraform-mode :pin "a645c32a8f0f0d04034262ae5fea330d5c7a33c6")
|
||||||
(when (modulep! :completion company)
|
(when (modulep! :completion company)
|
||||||
(package! company-terraform :pin "8d5a16d1bbeeb18ca49a8fd57b5d8cd30c8b8dc7"))
|
(package! company-terraform :pin "8d5a16d1bbeeb18ca49a8fd57b5d8cd30c8b8dc7"))
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
;;; tools/tree-sitter/packages.el
|
;;; tools/tree-sitter/packages.el
|
||||||
|
|
||||||
(package! tree-sitter :pin "3cfab8a0e945db9b3df84437f27945746a43cc71")
|
(package! tree-sitter :pin "3cfab8a0e945db9b3df84437f27945746a43cc71")
|
||||||
(package! tree-sitter-langs :pin "c56cb511045d50e30f78508c54494e025d6af2cb")
|
(package! tree-sitter-langs :pin "b7895ca759563f3c7c3b928eb4f816bb4099d866")
|
||||||
(package! tree-sitter-indent :pin "4ef246db3e4ff99f672fe5e4b416c890f885c09e")
|
(package! tree-sitter-indent :pin "4ef246db3e4ff99f672fe5e4b416c890f885c09e")
|
||||||
|
|
||||||
(when (modulep! :editor evil +everywhere)
|
(when (modulep! :editor evil +everywhere)
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
neo-mode-line-type 'none
|
neo-mode-line-type 'none
|
||||||
neo-window-width 30
|
neo-window-width 30
|
||||||
neo-show-updir-line nil
|
neo-show-updir-line nil
|
||||||
neo-theme 'icons
|
neo-theme 'nerd
|
||||||
neo-banner-message nil
|
neo-banner-message nil
|
||||||
neo-confirm-create-file #'off-p
|
neo-confirm-create-file #'off-p
|
||||||
neo-confirm-create-directory #'off-p
|
neo-confirm-create-directory #'off-p
|
||||||
|
|
|
@ -106,7 +106,7 @@ the buffer is visible, then set another timer and try again later."
|
||||||
(param (if (memq side '(left right))
|
(param (if (memq side '(left right))
|
||||||
'window-width
|
'window-width
|
||||||
'window-height)))
|
'window-height)))
|
||||||
(setq list (assq-delete-all 'size alist))
|
(setq alist (assq-delete-all 'size alist))
|
||||||
(setf (alist-get param alist) size))
|
(setf (alist-get param alist) size))
|
||||||
(setf (alist-get 'window-parameters alist)
|
(setf (alist-get 'window-parameters alist)
|
||||||
parameters)
|
parameters)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue