dev: merge branch 'master' into emenel
This commit is contained in:
commit
5147ec7d73
78 changed files with 365 additions and 360 deletions
|
@ -36,25 +36,25 @@ emacs="$EMACS -q --no-site-file --batch"
|
|||
# on it to provide TMPDIR. And can second as a quick existence check for Emacs.
|
||||
TMPDIR="${TMPDIR:-$($emacs --eval '(princ (temporary-file-directory))' 2>/dev/null)}"
|
||||
if [ -z "$TMPDIR" ]; then
|
||||
>&2 echo "Error: failed to run Emacs with command '$EMACS'"
|
||||
>&2 echo
|
||||
>&2 echo "Are you sure Emacs is installed and in your \$PATH?"
|
||||
echo "Error: failed to run Emacs with command '$EMACS'"
|
||||
echo
|
||||
echo "Are you sure Emacs is installed and in your \$PATH?"
|
||||
exit 1
|
||||
fi
|
||||
fi >&2
|
||||
|
||||
# Doom respects $EMACSDIR to tell it where Doom lives. If it fails, then this is
|
||||
# either isn't bash, or it's a posix shell being directly sourced with sh, which
|
||||
# is unsupported.
|
||||
export EMACSDIR="${EMACSDIR:-$(CDPATH='' cd -- "$(dirname -- "${BASH_SOURCE:-$0}")/.." && pwd)}"
|
||||
if [ ! -f "$EMACSDIR/early-init.el" ]; then
|
||||
>&2 echo "Error: cannot load $EMACSDIR/early-init.el."
|
||||
>&2 echo
|
||||
>&2 echo "Either the file doesn't exist (indicating a broken or missing Doom install)"
|
||||
>&2 echo "or that doomscript is being source directly (which is unsupported)."
|
||||
>&2 echo
|
||||
>&2 echo "Set \$EMACSDIR to the path of an existing Doom installation."
|
||||
echo "Error: cannot load $EMACSDIR/early-init.el."
|
||||
echo
|
||||
echo "Either the file doesn't exist (indicating a broken or missing Doom install)"
|
||||
echo "or that doomscript is being source directly (which is unsupported)."
|
||||
echo
|
||||
echo "Set \$EMACSDIR to the path of an existing Doom installation."
|
||||
exit 1
|
||||
fi
|
||||
fi >&2
|
||||
# Some state that Doom's CLI framework needs to know about the terminal. Read
|
||||
# the comments at the top of bin/doom for explanations.
|
||||
export __DOOMPID="${__DOOMPID:-$$}"
|
||||
|
@ -75,8 +75,8 @@ $emacs --load "$EMACSDIR/early-init" \
|
|||
-- "$@"
|
||||
exit=$?
|
||||
|
||||
# To simulate execve syscalls, Doom generates a temporary exit-script if a
|
||||
# Doomscript returns a 254 exit code.
|
||||
# To simulate execve syscalls (which replaces the running process), Doom
|
||||
# generates a temporary exit-script if a Doomscript returns a 254 exit code.
|
||||
if [ "${exit:-0}" -eq 254 ]; then
|
||||
# The user may have a noexec flag set on /tmp, so the exit-script should be
|
||||
# passed to /bin/sh rather than executed directly.
|
||||
|
|
|
@ -64,8 +64,8 @@ are great, but this file exists to add demos for Doom's API and beyond.
|
|||
(after! helm ...)
|
||||
|
||||
;; An unquoted list of package symbols (i.e. BODY is evaluated once both magit
|
||||
;; and git-gutter have loaded)
|
||||
(after! (magit git-gutter) ...)
|
||||
;; and diff-hl have loaded)
|
||||
(after! (magit diff-hl) ...)
|
||||
|
||||
;; An unquoted, nested list of compound package lists, using any combination of
|
||||
;; :or/:any and :and/:all
|
||||
|
|
|
@ -730,11 +730,12 @@ on."
|
|||
;; a less intrusive `delete-trailing-whitespaces' on save
|
||||
:hook (doom-first-buffer . ws-butler-global-mode)
|
||||
:config
|
||||
;; ws-butler normally preserves whitespace in the buffer (but strips it from
|
||||
;; the written file). While sometimes convenient, this behavior is not
|
||||
;; intuitive. To the average user it looks like whitespace cleanup is failing,
|
||||
;; which causes folks to redundantly install their own.
|
||||
(setq ws-butler-keep-whitespace-before-point nil))
|
||||
(pushnew! ws-butler-global-exempt-modes
|
||||
'special-mode
|
||||
'comint-mode
|
||||
'term-mode
|
||||
'eshell-mode
|
||||
'diff-mode))
|
||||
|
||||
(provide 'doom-editor)
|
||||
;;; doom-editor.el ends here
|
||||
|
|
|
@ -87,7 +87,7 @@ and Emacs states, and for non-evil users.")
|
|||
;; 1. Quit active states; e.g. highlights, searches, snippets, iedit,
|
||||
;; multiple-cursors, recording macros, etc.
|
||||
;; 2. Close popup windows remotely (if it is allowed to)
|
||||
;; 3. Refresh buffer indicators, like git-gutter and flycheck
|
||||
;; 3. Refresh buffer indicators, like diff-hl and flycheck
|
||||
;; 4. Or fall back to `keyboard-quit'
|
||||
;;
|
||||
;; And it should do these things incrementally, rather than all at once. And it
|
||||
|
|
|
@ -641,8 +641,8 @@ is:
|
|||
(after! (:and package-a package-b ...) BODY...)
|
||||
(after! (:and package-a (:or package-b package-c) ...) BODY...)
|
||||
- An unquoted list of package symbols (i.e. BODY is evaluated once both magit
|
||||
and git-gutter have loaded)
|
||||
(after! (magit git-gutter) BODY...)
|
||||
and diff-hl have loaded)
|
||||
(after! (magit diff-hl) BODY...)
|
||||
If :or/:any/:and/:all are omitted, :and/:all are implied.
|
||||
|
||||
This emulates `eval-after-load' with a few key differences:
|
||||
|
|
|
@ -351,9 +351,9 @@ If ENABLED-ONLY, return nil if the containing module isn't enabled."
|
|||
(and (or (null enabled-only)
|
||||
(doom-module-p category module))
|
||||
(cons category module))))
|
||||
((file-in-directory-p path doom-core-dir)
|
||||
((string-match (concat "^" (regexp-quote doom-core-dir)) path)
|
||||
(cons :core nil))
|
||||
((file-in-directory-p path doom-user-dir)
|
||||
((string-match (concat "^" (regexp-quote doom-user-dir)) path)
|
||||
(cons :user nil))))))
|
||||
|
||||
(defun doom-module-load-path (&optional module-load-path)
|
||||
|
|
|
@ -242,7 +242,7 @@ windows, switch to `doom-fallback-buffer'. Otherwise, delegate to original
|
|||
;;; Fringes
|
||||
|
||||
;; Reduce the clutter in the fringes; we'd like to reserve that space for more
|
||||
;; useful information, like git-gutter and flycheck.
|
||||
;; useful information, like diff-hl and flycheck.
|
||||
(setq indicate-buffer-boundaries nil
|
||||
indicate-empty-lines nil)
|
||||
|
||||
|
|
|
@ -79,7 +79,7 @@
|
|||
(when (< emacs-major-version 27)
|
||||
(user-error
|
||||
(concat
|
||||
"Detected Emacs " emacs-version ", but Doom requires 27.1 or newer (28.1 is\n\n"
|
||||
"Detected Emacs " emacs-version ", but Doom requires 27.1 or newer (29.3 is\n\n"
|
||||
"recommended). The current Emacs executable in use is:\n\n " (car command-line-args)
|
||||
"\n\nA guide for installing a newer version of Emacs can be found at:\n\n "
|
||||
(format "https://docs.doomemacs.org/-/install/%s"
|
||||
|
@ -201,7 +201,7 @@
|
|||
"Current version of Doom Emacs core.")
|
||||
|
||||
;; DEPRECATED: Remove these when the modules are moved out of core.
|
||||
(defconst doom-modules-version "24.04.0-pre"
|
||||
(defconst doom-modules-version "24.07.0-pre"
|
||||
"Current version of Doom Emacs.")
|
||||
|
||||
(defvar doom-init-time nil
|
||||
|
|
|
@ -169,7 +169,6 @@ non-nil, treat FILES as pre-generated autoload files instead."
|
|||
(when (and (not (seq-find (doom-rpartial #'string-match-p file) exclude))
|
||||
(file-readable-p file))
|
||||
(doom-log "loaddefs:scan: %s" file)
|
||||
(setq file (file-truename file))
|
||||
(with-temp-buffer
|
||||
(if literal
|
||||
(insert-file-contents file)
|
||||
|
|
|
@ -538,7 +538,7 @@ which case it will save it without prompting."
|
|||
(when (or (derived-mode-p 'dired-mode)
|
||||
(derived-mode-p 'wdired-mode))
|
||||
default-directory)
|
||||
(user-error "Cannot determine the file path of the current buffer"))))
|
||||
(user-error "Current buffer isn't visiting a file"))))
|
||||
|
||||
;;;###autoload
|
||||
(defun doom/sudo-save-buffer ()
|
||||
|
|
|
@ -29,7 +29,6 @@ The font will be normalized (i.e. :weight, :slant, and :width will set to
|
|||
|
||||
FONT can be a `font-spec', a font object, an XFT font string, or an XLFD font
|
||||
string."
|
||||
(cl-check-type font (or font string vector))
|
||||
(when (and (stringp font)
|
||||
(string-prefix-p "-" font))
|
||||
(setq font (x-decompose-font-name font)))
|
||||
|
@ -45,7 +44,8 @@ string."
|
|||
((vectorp font)
|
||||
(dolist (i '(1 2 3) (x-compose-font-name font))
|
||||
(unless (aref font i)
|
||||
(aset font i "normal"))))))
|
||||
(aset font i "normal"))))
|
||||
((signal 'wrong-type-of-argument (list '(font string vectorp) font)))))
|
||||
(font (x-resolve-font-name font))
|
||||
(font (font-spec :name font)))
|
||||
(unless (font-get font :size)
|
||||
|
|
|
@ -232,10 +232,12 @@ Must be run from a magit diff buffer."
|
|||
:test #'equal)))
|
||||
(save-excursion
|
||||
(while (re-search-forward "^-" nil t)
|
||||
(cl-pushnew (read-package) before :test #'equal)))
|
||||
(when-let (pkg (read-package))
|
||||
(cl-pushnew pkg before :test #'equal))))
|
||||
(save-excursion
|
||||
(while (re-search-forward "^+" nil t)
|
||||
(cl-pushnew (read-package) after :test #'equal)))
|
||||
(when-let (pkg (read-package))
|
||||
(cl-pushnew pkg after :test #'equal))))
|
||||
(unless (= (length before) (length after))
|
||||
(user-error "Uneven number of packages being bumped"))
|
||||
(dolist (p1 before)
|
||||
|
|
|
@ -92,8 +92,8 @@ and `format!' into colored output, where COLOR is any car of this list (or
|
|||
(not (stringp str))
|
||||
(string-blank-p str))
|
||||
str
|
||||
(let ((dir (or dir (file-truename default-directory)))
|
||||
(str (file-truename str)))
|
||||
(let* ((dir (or dir default-directory))
|
||||
(str (expand-file-name str dir)))
|
||||
(if (file-in-directory-p str dir)
|
||||
(file-relative-name str dir)
|
||||
(abbreviate-file-name str))))))
|
||||
|
@ -118,6 +118,12 @@ Any of these classes can be called like functions from within `format!' and
|
|||
|
||||
Accepts `ansi' and `text-properties'. `nil' means don't render styles at all.")
|
||||
|
||||
(defvar doom-print-stream nil
|
||||
"The default value for `standard-output' for Doom's print API.
|
||||
|
||||
If non-nil, this is used instead of `standard-output' because changes to that
|
||||
variable don't survive translation units.")
|
||||
|
||||
(defvar doom-print-level 'notice
|
||||
"The current, default logging level.")
|
||||
|
||||
|
@ -143,11 +149,11 @@ Accepts `ansi' and `text-properties'. `nil' means don't render styles at all.")
|
|||
(format nil)
|
||||
(level doom-print-level)
|
||||
(newline t)
|
||||
(stream standard-output))
|
||||
(stream (or doom-print-stream standard-output)))
|
||||
"Print OUTPUT to stdout.
|
||||
|
||||
Unlike `message', this:
|
||||
- Respects the value of `standard-output'.
|
||||
- Respects the value of `standard-output' (if `doom-print-stream' is nil).
|
||||
- Indents according to `doom-print-indent' (if FORMAT is non-nil).
|
||||
- Prints to stdout instead of stderr in batch mode.
|
||||
- Recognizes more terminal escape codes (only in batch mode).
|
||||
|
@ -236,7 +242,7 @@ based on the print level of the message. For example:
|
|||
`(letf! ((,sym ,streamspec)
|
||||
(standard-output (doom-print--redirect-standard-output ,sym t))
|
||||
(#'message (doom-print--redirect-message ,sym (if noninteractive 'debug 'notice)))
|
||||
(doom-print--output-depth (1+ doom-print--output-depth)))
|
||||
(doom-print-stream standard-output))
|
||||
,@body)))
|
||||
|
||||
|
||||
|
@ -260,8 +266,8 @@ based on the print level of the message. For example:
|
|||
(get (car spec) 'print-level)))
|
||||
(cadr spec)))))
|
||||
|
||||
(defun doom-print--redirect-standard-output (streamspec level)
|
||||
(let ((old standard-output)
|
||||
(defun doom-print--redirect-standard-output (streamspec level &optional old-stream)
|
||||
(let ((old (or old-stream standard-output))
|
||||
(streams (doom-print--redirect-streams streamspec level)))
|
||||
(lambda (ch)
|
||||
(let ((str (char-to-string ch)))
|
||||
|
@ -273,7 +279,8 @@ based on the print level of the message. For example:
|
|||
|
||||
(defun doom-print--redirect-message (streamspec level)
|
||||
(let ((old (symbol-function #'message))
|
||||
(streams (doom-print--redirect-streams streamspec level)))
|
||||
(streams (doom-print--redirect-streams streamspec level))
|
||||
(doom-print--output-depth (1+ doom-print--output-depth)))
|
||||
(lambda (message &rest args)
|
||||
(when message
|
||||
(let ((output (apply #'doom-print--format message args)))
|
||||
|
|
|
@ -29,20 +29,16 @@
|
|||
|
||||
;; doom-editor.el
|
||||
(package! better-jumper :pin "47622213783ece37d5337dc28d33b530540fc319")
|
||||
(package! dtrt-indent :pin "5d1b44f9a1a484ca229cc14f8062609a10ef4891")
|
||||
(package! helpful :pin "a32a5b3d959a7fccf09a71d97b3d7c888ac31c69")
|
||||
(package! dtrt-indent :pin "939c5e374ac0175bb7d561542e22e47a72d04aa8")
|
||||
(package! helpful :pin "4ba24cac9fb14d5fdc32582cd947572040e82b2c")
|
||||
(package! pcre2el :pin "380723b2701cceb75c266440fb8db918f3340d50")
|
||||
(package! smartparens :pin "a5c68cac1bea737b482a37aa92de4f6efbf7580b")
|
||||
(package! ws-butler
|
||||
;; Use my fork of ws-butler, which has a few choice improvements and
|
||||
;; optimizations (the original has been abandoned).
|
||||
:recipe (:host github :repo "hlissner/ws-butler")
|
||||
:pin "572a10c11b6cb88293de48acbb59a059d36f9ba5")
|
||||
(package! smartparens :pin "f7cf316715e5018186c226aab8242c9e5ce131c8")
|
||||
(package! ws-butler :pin "e3a38d93e01014cd47bf5af4924459bd145fd7c4")
|
||||
|
||||
;; doom-projects.el
|
||||
(package! projectile :pin "0163b335a18af0f077a474d4dc6b36e22b5e3274")
|
||||
(package! project :pin "93aa1872e93a681a44cae03fecb8df4101719897")
|
||||
(package! project :pin "bf4c3cfcfbf3423d79170aa880a1abb332ed942e")
|
||||
|
||||
;; doom-keybinds.el
|
||||
(package! general :pin "826bf2b97a0fb4a34c5eb96ec2b172d682fd548f")
|
||||
(package! which-key :pin "1e89fa000e9ba9549f15ef57abccd118d5f2fe1a")
|
||||
(package! which-key :pin "ed389312170df955aaf10c2e120cc533ed5c509e")
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
;; -*- no-byte-compile: t; -*-
|
||||
;;; completion/company/packages.el
|
||||
|
||||
(package! company :pin "b0a522ac5bf8ba3d2f4f22e3aa846a4f82978a16")
|
||||
(package! company :pin "1a0fc12a9c3d25e28c22f319e7b097f435b1c27d")
|
||||
(package! company-dict :pin "cd7b8394f6014c57897f65d335d6b2bd65dab1f4")
|
||||
(when (modulep! +childframe)
|
||||
(package! company-box :pin "c4f2e243fba03c11e46b1600b124e036f2be7691"))
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
;; -*- no-byte-compile: t; -*-
|
||||
;;; completion/corfu/packages.el
|
||||
|
||||
(package! corfu :pin "35cd5a0f3cba89766072e3e933d1fe2ee02f2289")
|
||||
(package! cape :pin "e01e4430234850263d326ad4521849cd46e64059")
|
||||
(package! corfu :pin "cdc3e13ad312f5f12b3f78f842fff0b398eb4473")
|
||||
(package! cape :pin "f61da109a9e4491614938c300291060fd8855c1b")
|
||||
(when (modulep! +icons)
|
||||
(package! nerd-icons-corfu :pin "7077bb76fefc15aed967476406a19dc5c2500b3c"))
|
||||
(when (and (not (modulep! :completion vertico))
|
||||
|
@ -14,4 +14,4 @@
|
|||
(when (modulep! :os tty)
|
||||
(package! corfu-terminal :pin "501548c3d51f926c687e8cd838c5865ec45d03cc"))
|
||||
(when (modulep! :editor snippets)
|
||||
(package! yasnippet-capf :pin "9043f8275176a8f198ce8e81fadab1870fa165bb"))
|
||||
(package! yasnippet-capf :pin "744dedb7837d0c7e07817d36ec752a0cd813f55c"))
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
;; -*- no-byte-compile: t; -*-
|
||||
;;; completion/helm/packages.el
|
||||
|
||||
(package! helm :pin "28f62344fed0d8be0bcef5aa8a018ba58198ba0c")
|
||||
(package! helm :pin "f8949afd9b44de4a8149874ef40e1250826d40bd")
|
||||
(package! helm-company :pin "4622b82353220ee6cc33468f710fa5b6b253b7f1")
|
||||
(package! helm-c-yasnippet :pin "c5880e740da101fde7a995e94a7b16c330e57583")
|
||||
(package! helm-descbinds :pin "ca03f02da4e54a1d0a2d5498b86e1639aa808d8c")
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
;; -*- no-byte-compile: t; -*-
|
||||
;;; completion/ivy/packages.el
|
||||
|
||||
(package! swiper :pin "1f88e5499046d166d22bf733a3877aec3b424947")
|
||||
(package! swiper :pin "2a25a6fb5b081cb141c5eccac8ee58ab1feeb747")
|
||||
(package! ivy)
|
||||
(package! ivy-hydra)
|
||||
(package! ivy-avy)
|
||||
|
@ -13,7 +13,7 @@
|
|||
(package! wgrep :pin "208b9d01cfffa71037527e3a324684b3ce45ddc4")
|
||||
|
||||
(if (modulep! +prescient)
|
||||
(package! ivy-prescient :pin "c39bf07c56b427bf41aafd7d20eaef5cf3c312b5")
|
||||
(package! ivy-prescient :pin "0765418e4362099db8788fcb745ce9b7602aa001")
|
||||
(when (modulep! +fuzzy)
|
||||
(package! flx :pin "4b1346eb9a8a76ee9c9dede69738c63ad97ac5b6")))
|
||||
|
||||
|
@ -21,4 +21,4 @@
|
|||
(package! ivy-posframe :pin "533a8e368fcabfd534761a5c685ce713376fa594"))
|
||||
|
||||
(when (modulep! +icons)
|
||||
(package! nerd-icons-ivy-rich :pin "7197614b27fd562e64b11c91d41bed4443aded90"))
|
||||
(package! nerd-icons-ivy-rich :pin "86a896bb48fed543993f96e4b288047aa7e013c9"))
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
;; -*- no-byte-compile: t; -*-
|
||||
;;; completion/vertico/packages.el
|
||||
|
||||
(package! vertico :pin "68e51fda552a2f91caab69e83564bc91275b09b1")
|
||||
(package! vertico :pin "ba650a7ab90d66686ba787937ac9e71f749c598e")
|
||||
|
||||
(package! orderless :pin "ac4aeb66f331f4c4a430d5556071e33177304c37")
|
||||
(package! orderless :pin "53f5204ad3f541e11eb6eeb9b86584964b7a3678")
|
||||
|
||||
(package! consult :pin "c87b0bf06de0c3cb60bc8d257c770cb981ddcd19")
|
||||
(package! consult-dir :pin "3f5f4b71ebe819392cb090cda71bd39a93bd830a")
|
||||
(package! consult :pin "fe4852280006e61be7f1374d021ee06155ce5a26")
|
||||
(package! consult-dir :pin "15891383f34d43acc5bb82bda92239b1f54cf178")
|
||||
(when (and (modulep! :checkers syntax)
|
||||
(not (modulep! :checkers syntax +flymake)))
|
||||
(package! consult-flycheck :pin "754f5497d827f7d58009256a21af614cc44378a3"))
|
||||
(package! embark :pin "d3c9d1b4c890cf365846cc2b418f37341999e79f")
|
||||
(package! embark-consult :pin "d3c9d1b4c890cf365846cc2b418f37341999e79f")
|
||||
(package! embark :pin "9c166c4b96a0b1e85401bcc6fb95ce021e7b5013")
|
||||
(package! embark-consult :pin "9c166c4b96a0b1e85401bcc6fb95ce021e7b5013")
|
||||
|
||||
(package! marginalia :pin "3275d1f85cb020280979a050054b843f7563aea2")
|
||||
(package! marginalia :pin "da72da4622c7b38741e6968678028f7e0564816c")
|
||||
|
||||
(package! wgrep :pin "208b9d01cfffa71037527e3a324684b3ce45ddc4")
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
(evil-ex-define-cmd "gstage" #'magit-stage)
|
||||
(evil-ex-define-cmd "gunstage" #'magit-unstage)
|
||||
(evil-ex-define-cmd "gblame" #'magit-blame)
|
||||
(evil-ex-define-cmd "grevert" #'git-gutter:revert-hunk)
|
||||
(evil-ex-define-cmd "grevert" #'+vc-gutter/revert-hunk)
|
||||
|
||||
;;; Dealing with buffers
|
||||
(evil-ex-define-cmd "k[ill]" #'doom/kill-current-buffer)
|
||||
|
|
|
@ -111,6 +111,7 @@ variable for an explanation of the defaults (in comments). See
|
|||
consult
|
||||
corfu
|
||||
crdt
|
||||
(csv "csv-mode")
|
||||
(custom cus-edit)
|
||||
cus-theme
|
||||
dashboard
|
||||
|
@ -128,6 +129,7 @@ variable for an explanation of the defaults (in comments). See
|
|||
distel
|
||||
doc-view
|
||||
docker
|
||||
eat
|
||||
ebib
|
||||
ebuku
|
||||
edbi
|
||||
|
@ -182,6 +184,7 @@ variable for an explanation of the defaults (in comments). See
|
|||
info
|
||||
ivy
|
||||
js2-mode
|
||||
,@(if (>= emacs-major-version 30) '(kmacro))
|
||||
leetcode
|
||||
lispy
|
||||
lms
|
||||
|
@ -193,6 +196,7 @@ variable for an explanation of the defaults (in comments). See
|
|||
macrostep
|
||||
man
|
||||
(magit magit-repos magit-submodule)
|
||||
magit-repos
|
||||
magit-section
|
||||
magit-todos
|
||||
markdown-mode
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
;; -*- no-byte-compile: t; -*-
|
||||
;;; editor/evil/packages.el
|
||||
|
||||
(package! evil :pin "0251080640e0da6f0eec2b7d8dd70e9c9b9915d7")
|
||||
(package! evil :pin "0ad84c52169068021ec3372bf52503631f2261de")
|
||||
(package! evil-args :pin "a8151556f63c9d45d0c44c8a7ef9e5a542f3cdc7")
|
||||
(package! evil-easymotion :pin "f96c2ed38ddc07908db7c3c11bcd6285a3e8c2e9")
|
||||
(package! evil-embrace :pin "3081d37811b6a3dfaaf01d578c7ab7a746c6064d")
|
||||
|
@ -12,7 +12,7 @@
|
|||
(package! evil-indent-plus :pin "f392696e4813f1d3a92c7eeed333248914ba6dae")
|
||||
(package! evil-lion :pin "1e838a53b8f18a3c8bdf3e952186abc2ee9cb98e")
|
||||
(package! evil-nerd-commenter :pin "ae52c5070a48793e2c24474c9c8dbf20175d18a0")
|
||||
(package! evil-numbers :pin "7a1b62afc12da2b582bf84d722e7b10ca8b97065")
|
||||
(package! evil-numbers :pin "c7899894515d6be40dfcd589fb27c1801c5b199c")
|
||||
(package! evil-snipe :pin "c2108d3932fcd2f75ac3e48250d6badd668f5b4f")
|
||||
(package! evil-surround :pin "da05c60b0621cf33161bb4335153f75ff5c29d91")
|
||||
(package! evil-textobj-anyblock
|
||||
|
@ -35,4 +35,4 @@
|
|||
(package! neotree)
|
||||
(autoload 'neotree-make-executor "neotree" nil nil 'macro))
|
||||
|
||||
(package! evil-collection :pin "ca977acb83c0dd01fc57dbc6f3d3111e89f4ec9d"))
|
||||
(package! evil-collection :pin "acb056b1d0d3aad2f32b1ca9c019a9a2e976f03e"))
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
;; -*- no-byte-compile: t; -*-
|
||||
;;; editor/file-templates/packages.el
|
||||
|
||||
(package! yasnippet :pin "297546f0853a6a51f5b05e954d0c6aea8caa5ec2")
|
||||
(package! yasnippet :pin "eb5ba2664c3a68ae4a53bb38b85418dd131b208f")
|
||||
|
|
|
@ -7,5 +7,5 @@
|
|||
(when (modulep! :editor evil)
|
||||
(package! evil-vimish-fold :pin "b6e0e6b91b8cd047e80debef1a536d9d49eef31a"))
|
||||
(when (modulep! :tools tree-sitter)
|
||||
(package! ts-fold :pin "0627723e5f962fc72b238d4cf99a7f217e72aa3e"
|
||||
(package! ts-fold :pin "6ce584d1ac39f1e2bc2f66f815964e3047bd6f16"
|
||||
:recipe (:host github :repo "emacs-tree-sitter/ts-fold")))
|
||||
|
|
|
@ -82,6 +82,6 @@ This is controlled by `+format-on-save-disabled-modes'."
|
|||
(save-excursion
|
||||
(font-lock-fontify-region web-mode-scan-beg web-mode-scan-end)))))
|
||||
|
||||
(defun +format--refresh-git-gutter-h ()
|
||||
(defun +format--refresh-vc-gutter-h ()
|
||||
(when (fboundp '+vc-gutter-update-h)
|
||||
(+vc-gutter-update-h))))
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
;; -*- no-byte-compile: t; -*-
|
||||
;;; editor/format/packages.el
|
||||
|
||||
(package! apheleia :pin "96a9805ecb75aac2adde7568d26b3e3b3ffc19af")
|
||||
(package! apheleia :pin "61766b50b24fa16be519d77795dc63522e04dce8")
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
(defun +god--configure-cursor-and-modeline-h ()
|
||||
"Configure cursor type, cursor color and doom-modeline bar color depending on mode."
|
||||
(let* ((is-fill-overflow (> (current-column) fill-column))
|
||||
(previous-cursor-color (face-background 'cursor))
|
||||
(previous-cursor-color (frame-parameter nil 'cursor-color))
|
||||
(previous-modeline-color (and (facep 'doom-modeline-bar)
|
||||
(face-background 'doom-modeline-bar)))
|
||||
(is-god-mode (bound-and-true-p god-local-mode))
|
||||
|
@ -26,7 +26,7 @@
|
|||
(cond (buffer-read-only +god-read-only-mode-color)
|
||||
(is-fill-overflow +god-fill-overflow-color)
|
||||
(overwrite-mode +god-overwrite-mode-color)
|
||||
(t previous-cursor-color))))
|
||||
((or previous-cursor-color (face-background 'cursor))))))
|
||||
(setq cursor-type next-cursor-type)
|
||||
(unless (eq previous-cursor-color next-cursor-and-modeline-color)
|
||||
(set-cursor-color next-cursor-and-modeline-color))
|
||||
|
|
|
@ -6,4 +6,4 @@
|
|||
(package! evil-multiedit :pin "23b53bc8743fb82a8854ba907b1d277374c93a79")
|
||||
(package! evil-mc :pin "bdf893ea6f52fd0f10bece8ddae813658e17bbb4"))
|
||||
|
||||
((package! multiple-cursors :pin "234806c832994cadedb42596fe235e91bbd59e8c")))
|
||||
((package! multiple-cursors :pin "c870c18462461df19382ecd2f9374c8b902cd804")))
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
;; -*- no-byte-compile: t; -*-
|
||||
;;; editor/parinfer/packages.el
|
||||
|
||||
(package! parinfer-rust-mode :pin "e9a23e136b8c5f1fb718af93c19cd6ed22d8c98c")
|
||||
(package! parinfer-rust-mode :pin "a96c768e9dc4427c9ea18812a2f09e209a5e1a5e")
|
||||
|
|
|
@ -7,4 +7,4 @@
|
|||
:recipe (:host github
|
||||
:repo "doomemacs/snippets"
|
||||
:files (:defaults "*"))
|
||||
:pin "c1384cc7975ee7ca7d551eb56c104d768440c3cb")
|
||||
:pin "3a0b029c5d104521ede8dcbeaff2972f56f067dc")
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
;; -*- no-byte-compile: t; -*-
|
||||
;;; editor/word-wrap/packages.el
|
||||
|
||||
(package! adaptive-wrap :pin "70005d2012ab57c20be03c05aebd49318fe49c99")
|
||||
(package! adaptive-wrap :pin "a3b179ea21aeb4e8cfaf5646bb66d9d045263780")
|
||||
(package! visual-fill-column
|
||||
:recipe (:host github :repo "emacsmirror/visual-fill-column")
|
||||
:pin "5e74afe39d0afb911dae51af4e7a60ccdf9701f3")
|
||||
:pin "e04d3521b6dc2435de4c4a4b9cac5feb194f0d5b")
|
||||
|
|
|
@ -13,13 +13,17 @@ This module provides reasonable defaults and augmentations for dired.
|
|||
- +icons ::
|
||||
Enables the display of fancy icons depending on file types in dired buffers.
|
||||
- +ranger ::
|
||||
Enables dired to be more like [[https://github.com/ranger/ranger][ranger]].
|
||||
Enables dired to be more like [[https://github.com/ranger/ranger][ranger]]. Incompatible with =+dirvish=.
|
||||
- +dirvish ::
|
||||
Enables [[https://github.com/alexluigit/dirvish][dirvish]] integration. Incompatible with =+ranger=.
|
||||
|
||||
** Packages
|
||||
- [[doom-package:nerd-icons-dired]] if [[doom-module:+icons]]
|
||||
- [[doom-package:dired-git-info]]
|
||||
- [[doom-package:diff-hl]]
|
||||
- [[doom-package:diredfl]]
|
||||
- [[doom-package:dired-rsync]]
|
||||
- [[doom-package:dirvish]] if [[doom-module:+dirvish]]
|
||||
- [[doom-package:fd-dired]]
|
||||
- [[doom-package:ranger]] if [[doom-module:+ranger]]
|
||||
|
||||
|
|
|
@ -145,12 +145,15 @@ we have to clean it up ourselves."
|
|||
(when (modulep! +icons)
|
||||
(push +dired-dirvish-icon-provider dirvish-attributes))
|
||||
(map! :map dirvish-mode-map
|
||||
:n "b" #'dirvish-goto-bookmark
|
||||
:n "z" #'dirvish-show-history
|
||||
:n "b" #'dirvish-quick-access
|
||||
:n "z" #'dirvish-history-jump
|
||||
:n "f" #'dirvish-file-info-menu
|
||||
:n "F" #'dirvish-toggle-fullscreen
|
||||
:n "F" #'dirvish-layout-toggle
|
||||
:n "l" #'dired-find-file
|
||||
:n "h" #'dired-up-directory
|
||||
:n "TAB" #'dirvish-subtree-toggle
|
||||
:n "gh" #'dirvish-subtree-up
|
||||
:n "gl" #'dirvish-subtree-down
|
||||
:localleader
|
||||
"h" #'dired-omit-mode))
|
||||
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
;;; emacs/undo/packages.el
|
||||
|
||||
(if (modulep! +tree)
|
||||
(package! undo-tree :pin "f9e7eac16f674aa7ed8fa065401d26c0258a84f8")
|
||||
(package! undo-fu :pin "04961ba775142627c5fa4bb94c3e507afedaecd1")
|
||||
(package! undo-fu-session :pin "2b355c9d39b2688f859a762f2289f23fd16fadc4")
|
||||
(package! undo-tree :pin "5e9f4c92348b3cfd6f140c1730294017dca4bc05")
|
||||
(package! undo-fu :pin "ea902716f39c725db1b90dbb285b44404b3bd6df")
|
||||
(package! undo-fu-session :pin "75d78310c86901f01b35d47f3ac1a5c8368abba4")
|
||||
(when (> emacs-major-version 27) ; unsupported in 27
|
||||
(package! vundo :pin "10d011fb05a9db0cc2f641e5b5bebe4b5fb81b6f")))
|
||||
(package! vundo :pin "a18d63a9a15d363c11e2405934e709723e472d86")))
|
||||
|
|
|
@ -242,6 +242,82 @@ as deleted: Auto-Expunge off - Wait for the client to update the server." and
|
|||
"When a message is marked as deleted and expunged from the last visible IMAP
|
||||
folder: Move the message to the trash" for the integrations to work as expected.
|
||||
|
||||
** Sending mail (SMTP)
|
||||
Once you're able to fetch your mail, the next step is to configure =mu4e= to
|
||||
send mail via SMTP. All of the following snippets are meant to be part of your
|
||||
~set-email-account!~ block:
|
||||
|
||||
*** SMTP server configuration
|
||||
#+begin_src emacs-lisp
|
||||
;; In `set-email-account!'
|
||||
(smtpmail-smtp-user . "foo@bar.com") ; or just 'foo', depending on your provider
|
||||
(smtpmail-smtp-server . "smtp.bar.com") ; depends on your provider
|
||||
#+end_src
|
||||
|
||||
*** Authentication
|
||||
Most SMTP servers require you to authenticate with your username and a password
|
||||
before sending mail. Emacs will prompt you for this password when you attempt to
|
||||
send mail. You can store this password as described in [[elisp:(info "(emacs) Authentication")][the relevant info node]].
|
||||
|
||||
Alternately, if you're already using =pass= to store your passwords, you can use
|
||||
the [[doom-module::tools pass +auth]] module as an auth source. The corresponding
|
||||
entry in your password store should have the same name as your SMTP server (for
|
||||
example, it might be called =smtp.bar.com=). You may also need to run the function
|
||||
~auth-source-pass-enable~ at some point.
|
||||
|
||||
Emacs will first attempt to send mail without supplying credentials, and expects
|
||||
the server to communicate that needs credentials. Some servers (eg. Gmail) will
|
||||
instead abort with an error if they don't recieve credentials on the first
|
||||
attempt. To get around this, you can set
|
||||
~smtpmail-servers-requiring-authorization~ to a regex matching the name of your
|
||||
server:
|
||||
#+begin_src emacs-lisp
|
||||
;; In `set-email-account!'
|
||||
(smtpmail-servers-requiring-authorization . "smtp\\.bar\\.com")
|
||||
#+end_src
|
||||
|
||||
**** Gmail
|
||||
Gmail does not support standard SMTP authentication by default, instead
|
||||
expecting applications to perform OAuth. However, it still supports a much
|
||||
simpler method - it allows you to generate an 'app password', which can be used
|
||||
as a regular SMTP password. You will need to generate an app password in Gmail's
|
||||
settings.
|
||||
|
||||
*** Connection type
|
||||
Emacs supports three types of SMTP connections: ~plain~ (unencrypted,
|
||||
conventionally port 25), ~ssl~ (conventionally port 465), and ~starttls~
|
||||
(conventionally port 587). This module defaults to ~starttls~, which is the most
|
||||
modern and recommended option. However, some servers may not support it (you'll
|
||||
usually get a 'connection closed' or 'connection reset' error in this case), or
|
||||
a firewall somewhere in your network may be blocking the port (you'll get a
|
||||
'network unreachable' error, or similar). In such a case, you may want to change
|
||||
the defaults:
|
||||
#+begin_src emacs-lisp
|
||||
;; In `set-email-account!'
|
||||
;; example: ssl on port 465
|
||||
(smtpmail-smtp-service . 465)
|
||||
(smtpmail-stream-type . ssl)
|
||||
#+end_src
|
||||
|
||||
*** Sending mail asynchronously
|
||||
Normally, =mu4e= will block Emacs while sending mail, which can be annoying when
|
||||
you're on a slow connection and the mail takes a long time to send. There is a
|
||||
workaround [[elisp:(info "(mu4e) Writing messages")][in mu4e's manual]] that uses the [[doom-package:async]] library. To use it,
|
||||
you need to include it in your ~set-email-account!~ block:
|
||||
#+begin_src emacs-lisp
|
||||
;; In `set-email-account!'
|
||||
(send-mail-function . async-smtpmail-send-it)
|
||||
(message-send-mail-function . async-smtpmail-send-it)
|
||||
#+end_src
|
||||
|
||||
If you're using [[doom-module::tools pass +auth]], you also need to ensure that the child
|
||||
Emacs process can access your password-store:
|
||||
#+begin_src emacs-lisp
|
||||
;; This goes OUTSIDE your `set-email-account!' block!
|
||||
(require 'smtpmail-async)
|
||||
(add-hook 'async-smtpmail-before-send-hook #'auth-source-pass-enable)
|
||||
#+end_src
|
||||
|
||||
** OrgMsg
|
||||
With the [[doom-module:+org]] flag, [[doom-package:org-msg]] is installed, and ~org-msg-mode~ is enabled before
|
||||
composing the first message. To disable ~org-msg-mode~ by default:
|
||||
|
|
|
@ -50,11 +50,13 @@
|
|||
"^List-.*:"
|
||||
"^Received-SPF:"
|
||||
"^DKIM-.*:"
|
||||
"^DomainKey-Signature:"
|
||||
"^DomainKey-.*:"
|
||||
"^SPF-.*:"
|
||||
"^Autocrypt:"
|
||||
"^ARC-.*:"
|
||||
"^Authentication-Results:")
|
||||
"^Authentication-Results:"
|
||||
"^UI-.*:"
|
||||
"^IronPort.*:")
|
||||
wl-message-visible-field-list
|
||||
'("^Message-Id:"
|
||||
"^User-Agent:"
|
||||
|
@ -84,6 +86,13 @@
|
|||
|
||||
(setq wl-message-id-domain wl-local-domain))
|
||||
|
||||
;; We're living in the world where UTF-8 is de facto default charset.
|
||||
(setq-default mime-charset-for-write 'utf-8)
|
||||
(setq-default mime-transfer-level 8)
|
||||
(setq charsets-mime-charset-alist
|
||||
'(((ascii) . us-ascii)
|
||||
((unicode) . utf-8)))
|
||||
|
||||
;; Use x-face only when compface installed
|
||||
(when (modulep! +xface)
|
||||
(autoload 'x-face-decode-message-header "x-face-e21")
|
||||
|
|
|
@ -4,11 +4,11 @@
|
|||
;; HACK These are wanderlust's dependencies (wanderlust depends on semi, semi
|
||||
;; depends on flim, flim on apel), but they all have non-standard default
|
||||
;; branches which straight cannot detect without our help.
|
||||
(package! apel :recipe (:branch "apel-wl") :pin "82eb2325bd149dc57b43a9ce9402c6c6183e4052")
|
||||
(package! flim :recipe (:branch "flim-1_14-wl") :pin "abdd2315006eb31476249223569808adb1c0f7b2")
|
||||
(package! semi :recipe (:branch "semi-1_14-wl") :pin "9063a4485b148a767ea924f0e7cc78d3524ba256")
|
||||
(package! apel :recipe (:branch "apel-wl") :pin "1a6fd3bab2cc6b0a450c2d801f77a1c9da0f72fb")
|
||||
(package! flim :recipe (:branch "flim-1_14-wl") :pin "23bb29d70a13cada2eaab425ef80071564586a6d")
|
||||
(package! semi :recipe (:branch "semi-1_14-wl") :pin "85a52b899ac89be504d9e38d8d406bba98f4b0b3")
|
||||
|
||||
(package! wanderlust :pin "c15e8ece4f34f10479e17cda19d10b98f6be3ec1")
|
||||
(package! wanderlust :pin "8a0ea2146ee919a5344bb25f198d45016bc716d9")
|
||||
|
||||
(when (modulep! +xface)
|
||||
(package! x-face-e21
|
||||
|
|
|
@ -28,8 +28,8 @@
|
|||
:desc "Next buffer" "è" #'next-buffer)
|
||||
(:prefix-map ("g" . "git")
|
||||
(:when (modulep! :ui vc-gutter)
|
||||
:desc "Jump to previous hunk" "é" #'git-gutter:previous-hunk
|
||||
:desc "Jump to next hunk" "è" #'git-gutter:next-hunk))))
|
||||
:desc "Jump to previous hunk" "é" #'+vc-gutter/previous-hunk
|
||||
:desc "Jump to next hunk" "è" #'+vc-gutter/next-hunk))))
|
||||
|
||||
(defun +layout-remap-evil-keys-for-azerty-h ()
|
||||
(map! :nv "à" #'evil-execute-macro
|
||||
|
@ -48,8 +48,8 @@
|
|||
:m "èy" #'+evil:c-string-encode
|
||||
:m "éy" #'+evil:c-string-decode
|
||||
(:when (modulep! :ui vc-gutter)
|
||||
:m "èd" #'git-gutter:next-hunk
|
||||
:m "éd" #'git-gutter:previous-hunk)
|
||||
:m "èd" #'+vc-gutter/next-hunk
|
||||
:m "éd" #'+vc-gutter/previous-hunk)
|
||||
(:when (modulep! :ui hl-todo)
|
||||
:m "èt" #'hl-todo-next
|
||||
:m "ét" #'hl-todo-previous)
|
||||
|
|
|
@ -54,8 +54,8 @@ In all cases, 'h' functions go to 'c' and 'l' ones go to 'r' so the navigation k
|
|||
:desc "Jump to documentation" "S" #'+lookup/documentation)
|
||||
(:prefix-map ("g" . "git")
|
||||
(:when (modulep! :ui vc-gutter)
|
||||
:desc "Jump to next hunk" ")" #'git-gutter:next-hunk
|
||||
:desc "Jump to previous hunk" "(" #'git-gutter:previous-hunk))
|
||||
:desc "Jump to next hunk" ")" #'+vc-gutter/next-hunk
|
||||
:desc "Jump to previous hunk" "(" #'+vc-gutter/previous-hunk))
|
||||
(:prefix-map ("p" . "project")
|
||||
:desc "Browse other project" "»" #'doom/browse-in-other-project)))
|
||||
|
||||
|
|
|
@ -3,17 +3,17 @@
|
|||
|
||||
;; Major modes
|
||||
(package! rjsx-mode :pin "b697fe4d92cc84fa99a7bcb476f815935ea0d919")
|
||||
(package! typescript-mode :pin "4fcb4594819caf472ae42ea068a1c7795cf07f46")
|
||||
(package! typescript-mode :pin "fc3a4f3b275e8cf6cf41aa0c9ef42e25ef908feb")
|
||||
|
||||
;; Tools
|
||||
(package! js2-refactor :pin "a0977c4ce1918cc266db9d6cd7a2ab63f3a76b9a")
|
||||
(package! npm-mode :pin "3ee7c0bad5b7a041d4739ef3aaa06a3dc764e5eb")
|
||||
|
||||
;; Eval
|
||||
(package! nodejs-repl :pin "3b841055cad00f442e4a9159b1056f59411b6646")
|
||||
(package! nodejs-repl :pin "03d0b64768b40b71ae54de1b50eb58719e615746")
|
||||
(package! skewer-mode :pin "e5bed351939c92a1f788f78398583c2f83f1bb3c")
|
||||
|
||||
;; Programming environment
|
||||
(package! tide :pin "b38dfc3f8fb754e64e48e76fc92d472cb3d1a3dc")
|
||||
(when (modulep! :tools lookup)
|
||||
(package! xref-js2 :pin "fd6b723e7f1f9793d189a815e1904364dc026b03"))
|
||||
(package! xref-js2 :pin "e215af9eedac69b40942fff9d5514704f9f4d43e"))
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
#+since: 2.0.4 (#128)
|
||||
|
||||
* Description :unfold:
|
||||
This module adds [[https://ocaml.org/][OCaml]] support to Doom Emacs, powered by [[doom-package:tuareg-mode]].
|
||||
This module adds [[https://ocaml.org/][OCaml]] support to Doom Emacs, powered by [[doom-package:tuareg]].
|
||||
|
||||
- Code completion, documentation look-up, code navigation and refactoring
|
||||
([[doom-package:merlin]])
|
||||
|
@ -14,6 +14,7 @@ This module adds [[https://ocaml.org/][OCaml]] support to Doom Emacs, powered by
|
|||
- Auto-indentation ([[doom-package:ocp-indent]])
|
||||
- Code formatting ([[doom-package:ocamlformat]])
|
||||
- Dune file format ([[doom-package:dune]])
|
||||
- Opam switch selection ([[doom-package:opam-switch-mode]])
|
||||
|
||||
** Maintainers
|
||||
*This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]
|
||||
|
@ -31,6 +32,7 @@ This module adds [[https://ocaml.org/][OCaml]] support to Doom Emacs, powered by
|
|||
- [[doom-package:ocamlformat]] if [[doom-module::editor format]]
|
||||
- [[doom-package:ocp-indent]]
|
||||
- [[doom-package:tuareg]]
|
||||
- [[doom-package:opam-switch-mode]]
|
||||
- [[doom-package:utop]] if [[doom-module::tools eval]]
|
||||
- unless [[doom-module:+lsp]]
|
||||
- [[doom-package:flycheck-ocaml]] if [[doom-module::checkers syntax]]
|
||||
|
@ -42,7 +44,7 @@ This module adds [[https://ocaml.org/][OCaml]] support to Doom Emacs, powered by
|
|||
- ~set-ligatures!~ is called with the full tuareg prettify symbol list, this can
|
||||
cause columns to change as certain keywords are shortened (e.g. =fun= becomes
|
||||
\lambda).
|
||||
- ~tuareg-opam-update-env~ is called the first time [[doom-package:tuareg]] is loaded
|
||||
- ~opam-switch-set-switch~ is called the first time [[doom-package:tuareg]] and subsequently [[doom-package:opam-switch-mode]] are loaded
|
||||
|
||||
** TODO Changelog
|
||||
# This section will be machine generated. Don't edit it by hand.
|
||||
|
@ -80,6 +82,7 @@ This module requires the following packages available through [[http://opam.ocam
|
|||
| ~merlin-iedit-occurrences~ | [[kbd:][v R]] | visual refactor identifier under point (multiple cursors) |
|
||||
| ~utop~ | [[kbd:][SPC o r]] | open =utop= as REPL |
|
||||
| ~utop-eval-region~ | [[kbd:][SPC c e]] | evaluate selected region in =utop= |
|
||||
| ~opam-switch-set-switch~ | [[kbd:][<localleader> w]] | evaluate selected region in =utop= |
|
||||
|
||||
* TODO Configuration
|
||||
#+begin_quote
|
||||
|
|
|
@ -20,10 +20,6 @@
|
|||
;; harmless if `prettify-symbols-mode' isn't active
|
||||
(setq tuareg-prettify-symbols-full t)
|
||||
|
||||
;; Use opam to set environment
|
||||
(setq tuareg-opam-insinuate t)
|
||||
(tuareg-opam-update-env (tuareg-opam-current-compiler))
|
||||
|
||||
(setq-hook! 'tuareg-mode-hook
|
||||
comment-line-break-function #'+ocaml/comment-indent-new-line)
|
||||
|
||||
|
@ -123,6 +119,22 @@
|
|||
(setq-local ocamlformat-file-kind 'interface)))))
|
||||
(setq-local +format-with 'ocamlformat))))
|
||||
|
||||
(use-package! opam-switch-mode
|
||||
:hook (tuareg-mode-local-vars . +ocaml-init-opam-switch-h)
|
||||
:init
|
||||
(map! :localleader
|
||||
:map tuareg-mode-map
|
||||
"w" #'opam-switch-set-switch)
|
||||
|
||||
(defun +ocaml-init-opam-switch-h ()
|
||||
"Activate `opam-switch-mode' if the opam executable exists."
|
||||
(when (executable-find "opam")
|
||||
(opam-switch-mode)))
|
||||
:config
|
||||
;; Use opam to set environment
|
||||
(setq tuareg-opam-insinuate t)
|
||||
(opam-switch-set-switch (tuareg-opam-current-compiler)))
|
||||
|
||||
;; Tree sitter
|
||||
(eval-when! (modulep! +tree-sitter)
|
||||
(add-hook! 'tuareg-mode-local-vars-hook #'tree-sitter!))
|
||||
|
|
|
@ -3,6 +3,8 @@
|
|||
|
||||
(package! tuareg :pin "1d53723e39f22ab4ab76d31f2b188a2879305092")
|
||||
|
||||
(package! opam-switch-mode :pin "1069e56a662f23ea09d4e05611bdedeb99257012")
|
||||
|
||||
(unless (modulep! +lsp)
|
||||
(package! merlin :pin "8404f96693727f7b0edc0d0b14db57843d79e27b")
|
||||
(package! merlin-eldoc :pin "bf8edc63d85b35e4def352fa7ce4ea39f43e1fd8")
|
||||
|
|
|
@ -49,6 +49,6 @@ properties and font-locking et all)."
|
|||
(+org--yank-html-buffer (markdown)))
|
||||
(_
|
||||
;; Omit after/before-string overlay properties in htmlized regions, so we
|
||||
;; don't get fringe characters for things like flycheck or git-gutter.
|
||||
;; don't get fringe characters for things like flycheck or diff-hl
|
||||
(letf! (defun htmlize-add-before-after-strings (_beg _end text) text)
|
||||
(ox-clip-formatted-copy beg end)))))
|
||||
|
|
|
@ -31,14 +31,14 @@
|
|||
(format "(defun org-git-version (&rest _) \"%s-??-%s\")\n"
|
||||
version (cdr (doom-call-process "git" "rev-parse" "--short" "HEAD")))
|
||||
"(provide 'org-version)\n")))))
|
||||
:pin "5bdfc02c6fa1b9ad4f075ac1ad1e4086ead310db")
|
||||
:pin "39272e2165ad9c49cfa9b5d749a5bb528dbadd87")
|
||||
(package! org-contrib
|
||||
:recipe (:host github
|
||||
:repo "emacsmirror/org-contrib")
|
||||
:pin "d4056ce5d5611e1c971c151f182a2d407226fdb1")
|
||||
:pin "ccd4212866fb1be70d1f15a41264c45a281901ad")
|
||||
|
||||
(package! avy)
|
||||
(package! htmlize :pin "09d43dfa44899f194095bb3500a45ec5b34d59c6")
|
||||
(package! htmlize :pin "ed5e5b05fd260e8f161a488d56f10e7f6e01fb75")
|
||||
(package! org-yt
|
||||
:recipe (:host github :repo "TobiasZawada/org-yt")
|
||||
:pin "56166f48e04d83668f70ed84706b7a4d8b1e5438")
|
||||
|
@ -49,7 +49,7 @@
|
|||
;; TODO Adjust when this is added to GNU ELPA
|
||||
(when (modulep! +contacts)
|
||||
(package! org-contacts
|
||||
:pin "6660db078f7687af3bc31f702e3e957d4d7654bd"
|
||||
:pin "d0cb221502c9e104b6e3c358128b28761ffddb55"
|
||||
:recipe (:host nil
|
||||
:type git
|
||||
:repo "https://repo.or.cz/org-contacts.git")))
|
||||
|
@ -71,9 +71,9 @@
|
|||
(when (modulep! :tools pdf)
|
||||
(package! org-pdftools :pin "4e420233a153a9c4ab3d1a7e1d7d3211c836f0ac"))
|
||||
(when (modulep! :tools magit)
|
||||
(package! orgit :pin "a57beefa24712430fe6b5016b9273129931a8287")
|
||||
(package! orgit :pin "ca3bf7aa20074e25fee37b71cfef127b93a3dde7")
|
||||
(when (modulep! :tools magit +forge)
|
||||
(package! orgit-forge :pin "f2ff9e5ad68b3e860379a1d368ad6d8a9696b719")))
|
||||
(package! orgit-forge :pin "7b010465ab96bea6d380ae1cfbd7999d528f1de9")))
|
||||
(when (modulep! +brain)
|
||||
(package! org-brain :pin "2bad7732aae1a3051e2a14de2e30f970bbe43c25"))
|
||||
(when (modulep! +dragndrop)
|
||||
|
@ -84,11 +84,11 @@
|
|||
(when (modulep! +ipython) ; DEPRECATED
|
||||
(package! ob-ipython :pin "7147455230841744fb5b95dcbe03320313a77124"))
|
||||
(when (modulep! +jupyter)
|
||||
(package! jupyter :pin "2059d79b2fecf6d25a6c796b69ab954645ec37d1"))
|
||||
(package! jupyter :pin "b279c90295ed7ef89832d655cf8d9077233f1098"))
|
||||
(when (modulep! +journal)
|
||||
(package! org-journal :pin "17b34ce8df9649a73b715c13698220bde1628668"))
|
||||
(when (modulep! +noter)
|
||||
(package! org-noter :pin "9e4f57957b8f54db20a4e13bf8d6b32e004ab3e8"))
|
||||
(package! org-noter :pin "68646b685a0d8c02419234922a9e2d885d6419df"))
|
||||
(when (modulep! +pomodoro)
|
||||
(package! org-pomodoro :pin "3f5bcfb80d61556d35fc29e5ddb09750df962cc6"))
|
||||
(when (modulep! +pretty)
|
||||
|
@ -100,11 +100,11 @@
|
|||
:recipe (:host github :repo "anler/centered-window-mode")
|
||||
:pin "80965f6c6afe8d918481433984b493de72af5399")
|
||||
(package! org-tree-slide :pin "e2599a106a26ce5511095e23df4ea04be6687a8a")
|
||||
(package! org-re-reveal :pin "1944ac53d4cdd0fb250cc575447d5e6320fd5f81")
|
||||
(package! org-re-reveal :pin "77c805a89e09a46000932c8c609bf5d34cbe81cb")
|
||||
(package! revealjs
|
||||
:recipe (:host github :repo "hakimel/reveal.js"
|
||||
:files ("css" "dist" "js" "plugin"))
|
||||
:pin "6410c756ea91ded3fa5f6b40a872523e7b8fe723"))
|
||||
:pin "472535065c7525abf0cc9df51c66f19fd2d2204f"))
|
||||
(cond
|
||||
((modulep! +roam)
|
||||
(package! org-roam
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
;; -*- no-byte-compile: t; -*-
|
||||
;;; tools/ansible/packages.el
|
||||
|
||||
(package! ansible :recipe (:nonrecursive t) :pin "1d7de8d3ddac980715eebd87ee66859f8665b101")
|
||||
(package! ansible :recipe (:nonrecursive t) :pin "b4dca00f89334392d770a7a67fffc935ec7354aa")
|
||||
(package! ansible-doc :pin "86083a7bb2ed0468ca64e52076b06441a2f8e9e0")
|
||||
(package! jinja2-mode :pin "03e5430a7efe1d163a16beaf3c82c5fd2c2caee1")
|
||||
(package! yaml-mode :pin "7b5ce294fb15c2c8926fa476d7218aa415550a2a")
|
||||
|
|
|
@ -8,10 +8,10 @@
|
|||
(package! bibtex-completion :pin "8b71b4f5ce62eeaf18067f57faaddc06449fbe1c")
|
||||
(package! helm-bibtex :pin "8b71b4f5ce62eeaf18067f57faaddc06449fbe1c"))
|
||||
(when (modulep! :completion vertico)
|
||||
(package! citar :pin "885b86f6733fd70f42c32dd7791d3447f93db990")
|
||||
(package! citar-embark :pin "885b86f6733fd70f42c32dd7791d3447f93db990")
|
||||
(package! citar :pin "07d2a63c99fe35cbd468f8e6a322de05f1a29469")
|
||||
(package! citar-embark :pin "07d2a63c99fe35cbd468f8e6a322de05f1a29469")
|
||||
(when (modulep! :lang org +roam2)
|
||||
(package! citar-org-roam :pin "82d47b5df1926627f56a09055c69b49b31cbbb9f")))
|
||||
|
||||
(package! parsebib :pin "ace9df707108b17759c004c7387655277122d4c1")
|
||||
(package! citeproc :pin "44f90cb296766e03fffc28b7892521ab0e8709f1")
|
||||
(package! citeproc :pin "cfa30b6c95c7465a05da98eccf273608880b22d7")
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
;; -*- no-byte-compile: t; -*-
|
||||
;;; tools/collab/packages.el
|
||||
|
||||
(package! crdt :pin "4a18cd8539c8f3364e3ae903580328dd8b05fa78")
|
||||
(package! crdt :pin "9bf99e2ce35d23c3d60ad245b77ab3b5313184d4")
|
||||
|
|
|
@ -6,5 +6,5 @@
|
|||
(package! realgud-trepan-ni :pin "0ec088ea343835e24ae73da09bea96bfb02a3130")))
|
||||
|
||||
(when (modulep! +lsp)
|
||||
(package! dap-mode :pin "11431a26bc4c8ca92b097dbdbcbdc9e3d7fb5583")
|
||||
(package! dap-mode :pin "b407773ebca56e3bd8e6a4643854e91cbde0c35e")
|
||||
(package! posframe :pin "f4e9e509ba96ceb3c2b2b054957291607fb52651"))
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
;; -*- no-byte-compile: t; -*-
|
||||
;;; tools/direnv/packages.el
|
||||
|
||||
(package! envrc :pin "8eb7401700b0080902ce200ad610ff8d2f2dcc27")
|
||||
(package! envrc :pin "2316e004c1574234fe4d991bd75a254cdeaa83ae")
|
||||
|
|
|
@ -3,4 +3,4 @@
|
|||
|
||||
(package! editorconfig
|
||||
:recipe (:nonrecursive t)
|
||||
:pin "d73b6392ded0476af93ec7ba75cca2909aa8d2dc")
|
||||
:pin "1651294334f3987d749eeb287f11d256cf2ba5b1")
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;; -*- no-byte-compile: t; -*-
|
||||
;;; tools/eval/packages.el
|
||||
|
||||
(package! quickrun :pin "373634cf5143f9680164e27fa844d3b02408e917")
|
||||
(package! quickrun :pin "c58e2e4be58416fbb467b3bb191470a61408751c")
|
||||
(when (modulep! +overlay)
|
||||
(package! eros :pin "a9a92bdc6be0521a6a06eb464be55ed61946639c"))
|
||||
|
|
|
@ -263,29 +263,41 @@ current buffer."
|
|||
(< pt end))))))))
|
||||
|
||||
(defun +lookup-ffap-backend-fn (identifier)
|
||||
"Tries to locate the file at point (or in active selection).
|
||||
Uses find-in-project functionality (provided by ivy, helm, or project),
|
||||
otherwise falling back to ffap.el (find-file-at-point)."
|
||||
(let ((guess
|
||||
"Tries to locate the file or URL at point (or in active selection).
|
||||
|
||||
See `ffap-alist' for ways to tweak how files are resolved. Falls back to
|
||||
whatever find-in-project functionality is available in your active completion
|
||||
framework (ivy, helm, vertico, etc), otherwise falling back to
|
||||
`find-file-at-point''s file prompt."
|
||||
(let ((initial-buffer (current-buffer))
|
||||
(guess
|
||||
(cond (identifier)
|
||||
((doom-region-active-p)
|
||||
(buffer-substring-no-properties
|
||||
(doom-region-beginning)
|
||||
(doom-region-end)))
|
||||
((if (require 'ffap) (ffap-guesser)))
|
||||
((if (require 'ffap) (ffap-guesser))) ; Powerful! See `ffap-alist'
|
||||
((thing-at-point 'filename t)))))
|
||||
(cond ((and (stringp guess)
|
||||
(or (file-exists-p guess)
|
||||
(ffap-url-p guess)))
|
||||
(find-file-at-point guess))
|
||||
((and (modulep! :completion ivy)
|
||||
(doom-project-p))
|
||||
;; Walk the file tree up to the project's root for relative paths.
|
||||
((and (stringp guess)
|
||||
;; Only do this with paths that contain segments, to reduce
|
||||
;; false positives.
|
||||
(string-match-p "/" guess)
|
||||
(when-let ((dir (locate-dominating-file default-directory guess)))
|
||||
(when (file-in-directory-p dir (doom-project-root))
|
||||
(find-file (doom-path dir guess))
|
||||
t))))
|
||||
;; Fallback prompters
|
||||
((and (modulep! :completion ivy) (doom-project-p))
|
||||
(counsel-file-jump guess (doom-project-root)))
|
||||
((and (modulep! :completion vertico)
|
||||
(doom-project-p))
|
||||
((and (modulep! :completion vertico) (doom-project-p))
|
||||
(+vertico/consult-fd-or-find (doom-project-root) guess))
|
||||
((find-file-at-point (ffap-prompter guess))))
|
||||
t))
|
||||
(not (eq initial-buffer (current-buffer)))))
|
||||
|
||||
(defun +lookup-bug-reference-backend-fn (_identifier)
|
||||
"Searches for a bug reference in user/repo#123 or #123 format and opens it in
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
(package! helm))
|
||||
|
||||
;;
|
||||
(package! dumb-jump :pin "ede6a04187e79a29ef31d14760ac0d8d4c5f4cc5")
|
||||
(package! dumb-jump :pin "3c2ab8dfff3a10d3c5f2efd69cfbc81fb5dbbd39")
|
||||
(when (modulep! :completion ivy)
|
||||
(package! ivy-xref :pin "a82e8e117d2dd62c28b6a3e3d6e4cfb11c0bda38"))
|
||||
(when (modulep! :completion helm)
|
||||
|
|
|
@ -3,13 +3,13 @@
|
|||
|
||||
(if (modulep! +eglot)
|
||||
(progn
|
||||
(package! eglot :pin "e7e49c789c4019dd4cd4ab3880517d01592d81f9")
|
||||
(package! eglot :pin "850cbd043084d7cc571e1090a4812db6e3f7d0bc")
|
||||
(when (modulep! :completion vertico)
|
||||
(package! consult-eglot :pin "64262e72452f8fe6dd49d31bcdd4bd577b7d682d"))
|
||||
(when (and (modulep! :checkers syntax)
|
||||
(not (modulep! :checkers syntax +flymake)))
|
||||
(package! flycheck-eglot :pin "114e1315aaf0dc3196da67da426bbe2b46384fe2")))
|
||||
(package! lsp-mode :pin "acad044ebc343c1eff0d9a875a13fb34ad113a9e")
|
||||
(package! lsp-mode :pin "cec9e56390e90d7ced3b18a922ab954e782b8628")
|
||||
(package! lsp-ui :pin "00f1fecdfb41c30428734cf27e492f26f46627fb")
|
||||
(when (modulep! :completion ivy)
|
||||
(package! lsp-ivy :pin "9ecf4dd9b1207109802bd1882aa621eb1c385106"))
|
||||
|
|
|
@ -108,7 +108,7 @@ modified."
|
|||
|
||||
;;;###autoload
|
||||
(defun +magit-revert-buffer-maybe-h ()
|
||||
"Update `vc' and `git-gutter' if out of date."
|
||||
"Update `vc' and `diff-hl' if out of date."
|
||||
(when +magit--stale-p
|
||||
(+magit--revert-buffer (current-buffer))))
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
;; -*- no-byte-compile: t; -*-
|
||||
;;; tools/magit/packages.el
|
||||
|
||||
(when (package! magit :pin "f9268a959828d0c6ab26171dd2fb1ffc55e5ae70")
|
||||
(when (package! magit :pin "ea0f07e54967197ac0b072a69ba314314a4080c1")
|
||||
(when (modulep! +forge)
|
||||
(package! forge :pin "c3675fd068767c694177a310d4fa0a01f81bb2d3")
|
||||
(package! forge :pin "4adb94d23c8f28ea3b15757936c2203b3376586a")
|
||||
(package! code-review
|
||||
:recipe (:host github
|
||||
:repo "doomelpa/code-review"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;; -*- no-byte-compile: t; -*-
|
||||
;;; tools/pdf/packages.el
|
||||
|
||||
(package! pdf-tools :pin "a1048bceb2bd3f635437b0f2bfac27cae8c2dabc")
|
||||
(package! pdf-tools :pin "30b50544e55b8dbf683c2d932d5c33ac73323a16")
|
||||
(package! saveplace-pdf-view :pin "ee95460cd934080338f03a16f95b549577425216")
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;; -*- no-byte-compile: t; -*-
|
||||
;;; tools/rgb/packages.el
|
||||
|
||||
(package! rainbow-mode :pin "70ed10d410ef00c82c49b2ba41647930626d6218")
|
||||
(package! rainbow-mode :pin "0740f31f300982534183a2f60b1918de418a6f2c")
|
||||
(package! kurecolor :pin "fbf98e1e384dd11bbb5764ae54b36353f0691d1e")
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
;; -*- no-byte-compile: t; -*-
|
||||
;;; tools/tree-sitter/packages.el
|
||||
|
||||
(package! tree-sitter :pin "3cfab8a0e945db9b3df84437f27945746a43cc71")
|
||||
(package! tree-sitter-langs :pin "b7895ca759563f3c7c3b928eb4f816bb4099d866")
|
||||
(package! tree-sitter :recipe (:branch "master") :pin "02fe7b86d92b1aab954045146469b7893f0ab371")
|
||||
(package! tree-sitter-langs :pin "a06804e13fc1d24d0099b44ce23d6ac5e6bac5b8")
|
||||
(package! tree-sitter-indent :pin "4ef246db3e4ff99f672fe5e4b416c890f885c09e")
|
||||
|
||||
(when (modulep! :editor evil +everywhere)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
;; -*- no-byte-compile: t; -*-
|
||||
;;; ui/deft/packages.el
|
||||
|
||||
(package! deft :pin "bb1a16b87c3e0fe70fade6227e47dd7712b89bf6")
|
||||
(package! deft :pin "b369d7225d86551882568788a23c5497b232509c")
|
||||
|
|
|
@ -8,7 +8,6 @@ This module gives Doom its signature look: powered by the [[doom-package:doom-th
|
|||
(loosely inspired by [[https://github.com/atom/one-dark-syntax][Atom's One Dark theme]]) and [[doom-package:solaire-mode]]. Includes:
|
||||
|
||||
- A custom folded-region indicator for [[doom-package:hideshow]].
|
||||
- "Thin bar" fringe bitmaps for [[doom-package:git-gutter-fringe]].
|
||||
- File-visiting buffers are slightly brighter (thanks to [[doom-package:solaire-mode]]).
|
||||
|
||||
** Maintainers
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;; -*- no-byte-compile: t; -*-
|
||||
;;; ui/doom/packages.el
|
||||
|
||||
(package! doom-themes :pin "3b2422b208d28e8734b300cd3cc6a7f4af5eba55")
|
||||
(package! doom-themes :pin "816fb54d60a7012b9b12cd995831d4226982b487")
|
||||
(package! solaire-mode :pin "8ccdceeb9298b3c4e35f630914f467bf164f39ad")
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
;; -*- no-byte-compile: t; -*-
|
||||
;;; ui/hl-todo/packages.el
|
||||
|
||||
(package! hl-todo :pin "f1fef158f99a70746926ef52c59f4863a29b7ed7")
|
||||
(package! hl-todo :pin "dd46d426c0501b5e8ed976a834d3e54ae85731f7")
|
||||
|
|
|
@ -70,7 +70,7 @@ Note that this will keep all ligatures in `+ligatures-prog-mode-list' active, as
|
|||
;; NOTE: Doom enforces `ligature-composition-table' to have a single mode per key in the alist.
|
||||
;; This is less efficient than what ligature.el can do (i.e. use a list of modes, or `t' as a key),
|
||||
;; but holding this invariant allows resetting with `(set-font-ligatures! 'mode nil)` to work reliably.
|
||||
(if (null ligatures)
|
||||
(if (or (null ligatures) (equal ligatures '(nil)))
|
||||
(dolist (mode (ensure-list modes))
|
||||
(delq! mode ligature-composition-table 'assq))
|
||||
(after! ligature
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
;; -*- no-byte-compile: t; -*-
|
||||
;;; ui/minimap/packages.el
|
||||
|
||||
(package! minimap :pin "90aeeb5798ff2fa8b08bd4965af5e43806e01645")
|
||||
(package! minimap :pin "4898d277686c2829c2e91416082f4252c1bb0ceb")
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
;;; ui/modeline/packages.el
|
||||
|
||||
(unless (modulep! +light)
|
||||
(package! doom-modeline :pin "e09b8e989fa5fc1d98320aaa29d7138631b20ae5"))
|
||||
(package! doom-modeline :pin "11ae6c193cd9cb8d7ff7996058e6df2c0d1e408b"))
|
||||
(package! anzu :pin "26fb50b429ee968eb944b0615dd0aed1dd66172c")
|
||||
(when (modulep! :editor evil)
|
||||
(package! evil-anzu :pin "d1e98ee6976437164627542909a25c6946497899"))
|
||||
|
|
|
@ -5,10 +5,11 @@
|
|||
|
||||
* Description :unfold:
|
||||
This module provides op-hints (operation hinting), i.e. visual feedback for
|
||||
certain operations. It highlights regions of text that the last operation (like
|
||||
yank) acted on.
|
||||
certain editing operations. It highlights regions of text that the last
|
||||
operation (like yank) acted on.
|
||||
|
||||
Uses [[doom-package:evil-goggles]] for evil users and [[doom-package:volatile-highlights]] otherwise.
|
||||
Uses [[doom-package:evil-goggles]] for evil users and [[doom-package:goggles]]
|
||||
otherwise.
|
||||
|
||||
** Maintainers
|
||||
- [[doom-user:][@hlissner]]
|
||||
|
@ -20,7 +21,7 @@ Uses [[doom-package:evil-goggles]] for evil users and [[doom-package:volatile-hi
|
|||
|
||||
** Packages
|
||||
- [[doom-package:evil-goggles]] if [[doom-module::editor evil]]
|
||||
- [[doom-package:volatile-highlights]] unless [[doom-module::editor evil]]
|
||||
- [[doom-package:goggles]] unless [[doom-module::editor evil]]
|
||||
|
||||
** Hacks
|
||||
/No hacks documented for this module./
|
||||
|
|
|
@ -63,11 +63,11 @@
|
|||
:switch evil-goggles-enable-join
|
||||
:advice evil-goggles--join-advice))))
|
||||
|
||||
|
||||
(use-package! volatile-highlights
|
||||
(use-package! goggles
|
||||
:unless (modulep! :editor evil)
|
||||
:hook (doom-first-input . volatile-highlights-mode)
|
||||
:hook ((prog-mode text-mode) . goggles-mode)
|
||||
:config
|
||||
(after! undo-fu
|
||||
(vhl/define-extension 'undo-fu 'undo-fu-only-undo 'undo-fu-only-redo)
|
||||
(vhl/install-extension 'undo-fu)))
|
||||
(goggles-define +goggles-general-undo undo) ; goggles only supports `primitive-undo' by default
|
||||
(goggles-define +goggles-register-paste insert-register)
|
||||
(goggles-define +goggles-kill-word backward-kill-word kill-word)
|
||||
(goggles-define +goggles-undo-fu undo-fu-only-undo undo-fu-only-redo))
|
||||
|
|
|
@ -3,4 +3,4 @@
|
|||
|
||||
(if (modulep! :editor evil)
|
||||
(package! evil-goggles :pin "34ca276a85f615d2b45e714c9f8b5875bcb676f3")
|
||||
(package! volatile-highlights :pin "fcf6e2778454ce514c189a7d1fe70e03ad81c325"))
|
||||
(package! goggles :pin "41d3669d7ae7b73bd39d298e5373ece48b656ce3"))
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
;;; Packages
|
||||
|
||||
(use-package! centaur-tabs
|
||||
:hook (doom-first-file . centaur-tabs-mode)
|
||||
:defer t
|
||||
:init
|
||||
(setq centaur-tabs-set-icons t
|
||||
centaur-tabs-gray-out-icons 'buffer
|
||||
|
@ -24,6 +24,10 @@
|
|||
;; prevents that.
|
||||
centaur-tabs-cycle-scope 'tabs)
|
||||
|
||||
(if (daemonp)
|
||||
(add-hook 'server-after-make-frame-hook #'centaur-tabs-mode)
|
||||
(add-hook 'doom-first-file-hook #'centaur-tabs-mode))
|
||||
|
||||
:config
|
||||
(add-hook! '(+doom-dashboard-mode-hook +popup-buffer-mode-hook)
|
||||
(defun +tabs-disable-centaur-tabs-mode-maybe-h ()
|
||||
|
@ -31,19 +35,11 @@
|
|||
(when (centaur-tabs-mode-on-p)
|
||||
(centaur-tabs-local-mode))))
|
||||
|
||||
;; HACK: `centaur-tabs-buffer-update-groups' is both expensive and called too
|
||||
;; frequently. There really is no reason to call it more than 10 times per
|
||||
;; second, as buffers rarely change groups more frequently than that.
|
||||
(let ((time (float-time)))
|
||||
(defadvice! +tabs--rate-limit-buffer-update-groups-a (fn)
|
||||
:around #'centaur-tabs-buffer-update-groups
|
||||
(let ((now (float-time)))
|
||||
(if-let ((buf (and (< now (+ time +tabs-buffer-update-groups-delay))
|
||||
(assq (current-buffer) centaur-tabs--buffers))))
|
||||
(car (nth 2 buf))
|
||||
(setq time now)
|
||||
(funcall fn))))))
|
||||
|
||||
(add-hook! 'doom-load-theme-hook
|
||||
(defun +tabs-reload-centaur-tabs-h ()
|
||||
(when (bound-and-true-p centaur-tabs-mode)
|
||||
(centaur-tabs-mode -1)
|
||||
(centaur-tabs-mode +1)))))
|
||||
|
||||
;; TODO tab-bar-mode (emacs 27)
|
||||
;; TODO tab-line-mode (emacs 27)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
;; -*- no-byte-compile: t; -*-
|
||||
;;; ui/tabs/packages.el
|
||||
|
||||
(package! centaur-tabs :pin "0bb1aa18d475319df85f192dce3327802866c3c3")
|
||||
(package! centaur-tabs :pin "4a121a175e663295fcd295512642dae4d2ff9db3")
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
;; -*- no-byte-compile: t; -*-
|
||||
;;; ui/treemacs/packages.el
|
||||
|
||||
(package! treemacs :pin "8c6df39f01a4d47fda2cc943645fa067f771b748")
|
||||
(package! treemacs :pin "54ef590b7621032a76f8f3e307032fc13c802371")
|
||||
(package! treemacs-nerd-icons :pin "9876cb478145a0ec4e36f64ff6583f3de7126216")
|
||||
;; These packages have no :pin because they're in the same repo
|
||||
(when (modulep! :editor evil +everywhere)
|
||||
|
@ -13,4 +13,4 @@
|
|||
(package! treemacs-persp))
|
||||
(when (and (modulep! +lsp)
|
||||
(not (modulep! :tools lsp +eglot)))
|
||||
(package! lsp-treemacs :pin "e54e74deb8150964e3c3024e1ec14295a34e2a3b"))
|
||||
(package! lsp-treemacs :pin "1d43e9e0307f84496a4a7ddf9dba481000391dbd"))
|
||||
|
|
|
@ -13,44 +13,32 @@ Supports Git, Svn, Hg, and Bzr.
|
|||
[[doom-contrib-maintainer:][Become a maintainer?]]
|
||||
|
||||
** Module flags
|
||||
- +diff-hl ::
|
||||
Use [[doom-package:diff-hl]] instead of git-gutter to power the VC gutter. It is a little
|
||||
faster, but is slightly more prone to visual glitching. [[doom-package:diff-hl]] is intended to
|
||||
replace git-gutter at some point in the future.
|
||||
- +pretty ::
|
||||
Apply some stylistic defaults to the fringe, enabling thin bars in the fringe.
|
||||
This look takes after the modern look of git-gutter in VSCode and Sublime
|
||||
Text, without sacrificing on fringe width (which squeeze other indicators,
|
||||
like flycheck's, flymake's, or flyspell's). However, this will look bad with
|
||||
themes that invert the foreground/background of either git-gutter's or
|
||||
diff-hl's faces (like modus-themes does).
|
||||
Apply some stylistic defaults to the fringe that present the diff in the
|
||||
fringe as thin bars, taking after the modern look of the git-gutter plugin in
|
||||
VSCode and Sublime Text. However, this will look bad with themes that invert
|
||||
the foreground/background of diff-hl's faces (like modus-themes does).
|
||||
|
||||
** Packages
|
||||
- [[doom-package:git-gutter-fringe]] unless [[doom-module:+diff-hl]]
|
||||
- [[doom-package:diff-hl]] if [[doom-module:+diff-hl]]
|
||||
- [[doom-package:diff-hl]]
|
||||
|
||||
** Hacks
|
||||
- The VC gutter will be updated when pressing ESC, leaving insert mode (evil
|
||||
users), or refocusing the frame or window where it is active.
|
||||
- If [[doom-module:+pretty]] is enabled
|
||||
- The fringes that both git-gutter-fringe and diff-hl define will be replaced
|
||||
with a set of thin bars. This achieves a slicker look closer to git-gutter's
|
||||
appearance in VSCode or Sublime Text, but may look weird for themes that
|
||||
swap their faces' :foreground and :background (like modus-themes).
|
||||
- The fringes that diff-hl define will be replaced with a set of thin bars.
|
||||
This achieves a slicker look closer to git-gutter's appearance in VSCode or
|
||||
Sublime Text, but may look weird for themes that swap their faces'
|
||||
:foreground and :background (like modus-themes).
|
||||
- The fringes are moved to the outside of the margins (closest to the frame
|
||||
edge), so they have some breathing space away from the buffer's contents.
|
||||
- If [[doom-package:+diff-hl]] is enabled:
|
||||
- ~diff-hl-revert-hunk~ displays a preview popup of the hunk being reverted.
|
||||
It takes up ~50% of the frame, by default, whether you're reverting 2 lines
|
||||
or 20. Since this isn't easily customized, it has been advised to shrink
|
||||
this popup to the side of its contents.
|
||||
- ~diff-hl-revert-hunk~ will sometimes move the cursor to an unexpected
|
||||
location (the bounds of hunks, is my guess), but this is not intuitive and
|
||||
often unexpected. Cursor movements have been suppressed for it.
|
||||
- If +diff-hl is *not* enabled:
|
||||
- Sometimes, ~git-gutter:next-hunk~ and ~git-gutter:previous-hunk~ get
|
||||
confused about the order of hunks. They have been advised to fix this
|
||||
(although the hack is a little inefficient).
|
||||
- ~diff-hl-revert-hunk~ displays a preview popup of the hunk being reverted.
|
||||
It takes up ~50% of the frame, by default, whether you're reverting 2 lines
|
||||
or 20. Since this isn't easily customized, it has been advised to shrink
|
||||
this popup to the side of its contents.
|
||||
- ~diff-hl-revert-hunk~ will sometimes move the cursor to an unexpected
|
||||
location (the bounds of hunks, is my guess), but this is not intuitive and
|
||||
often unexpected. Cursor movements have been suppressed for it.
|
||||
|
||||
** TODO Changelog
|
||||
# This section will be machine generated. Don't edit it by hand.
|
||||
|
|
|
@ -1,11 +1,22 @@
|
|||
;;; ui/vc-gutter/autoload/diff-hl.el -*- lexical-binding: t; -*-
|
||||
;;;###if (modulep! +diff-hl)
|
||||
|
||||
;;;###autoload
|
||||
(defalias '+vc-gutter/stage-hunk #'diff-hl-stage-current-hunk)
|
||||
;;;###autoload
|
||||
(defalias '+vc-gutter/revert-hunk #'diff-hl-revert-hunk)
|
||||
;;;###autoload
|
||||
(defalias '+vc-gutter/next-hunk #'diff-hl-next-hunk)
|
||||
;;;###autoload
|
||||
(defalias '+vc-gutter/previous-hunk #'diff-hl-previous-hunk)
|
||||
|
||||
(defvar vc-suppress-confirm)
|
||||
;;;###autoload
|
||||
(defun +vc-gutter/revert-hunk (&optional no-prompt)
|
||||
"Invoke `diff-hl-revert-hunk'."
|
||||
(interactive "P")
|
||||
(let ((vc-suppress-confirm (if no-prompt t)))
|
||||
(call-interactively #'diff-hl-revert-hunk)))
|
||||
|
||||
;;;###autoload
|
||||
(defun +vc-gutter/save-and-revert-hunk ()
|
||||
"Invoke `diff-hl-revert-hunk' with `vc-suppress-confirm' set."
|
||||
(interactive)
|
||||
(+vc-gutter/revert-hunk t))
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
;;; ui/vc-gutter/autoload/vc-gutter.el -*- lexical-binding: t; -*-
|
||||
;;;###if (not (modulep! +diff-hl))
|
||||
|
||||
;;;###autoload
|
||||
(defalias '+vc-gutter/stage-hunk #'git-gutter:stage-hunk)
|
||||
;;;###autoload
|
||||
(defalias '+vc-gutter/revert-hunk #'git-gutter:revert-hunk)
|
||||
;;;###autoload
|
||||
(defalias '+vc-gutter/next-hunk #'git-gutter:next-hunk)
|
||||
;;;###autoload
|
||||
(defalias '+vc-gutter/previous-hunk #'git-gutter:previous-hunk)
|
|
@ -1,13 +1,5 @@
|
|||
;;; ui/vc-gutter/config.el -*- lexical-binding: t; -*-
|
||||
|
||||
;; TODO Implement me
|
||||
(defvar +vc-gutter-in-margin nil
|
||||
"If non-nil, use the margin for diffs instead of the fringe.")
|
||||
|
||||
(defvar +vc-gutter-in-remote-files nil
|
||||
"If non-nil, enable the vc gutter in remote files (e.g. open through TRAMP).")
|
||||
|
||||
|
||||
;;
|
||||
;;; Default styles
|
||||
|
||||
|
@ -23,36 +15,28 @@
|
|||
;; having to shrink the fringe and sacrifice precious space for other fringe
|
||||
;; indicators (like flycheck or flyspell).
|
||||
;; REVIEW: Extract these into a package with faces that themes can target.
|
||||
(if (not (modulep! +diff-hl))
|
||||
(after! git-gutter-fringe
|
||||
(define-fringe-bitmap 'git-gutter-fr:added [224]
|
||||
nil nil '(center repeated))
|
||||
(define-fringe-bitmap 'git-gutter-fr:modified [224]
|
||||
nil nil '(center repeated))
|
||||
(define-fringe-bitmap 'git-gutter-fr:deleted [128 192 224 240]
|
||||
nil nil 'bottom))
|
||||
(defadvice! +vc-gutter-define-thin-bitmaps-a (&rest args)
|
||||
:override #'diff-hl-define-bitmaps
|
||||
(define-fringe-bitmap 'diff-hl-bmp-middle [224] nil nil '(center repeated))
|
||||
(define-fringe-bitmap 'diff-hl-bmp-delete [240 224 192 128] nil nil 'top))
|
||||
(defun +vc-gutter-type-face-fn (type _pos)
|
||||
(intern (format "diff-hl-%s" type)))
|
||||
(defun +vc-gutter-type-at-pos-fn (type _pos)
|
||||
(if (eq type 'delete)
|
||||
'diff-hl-bmp-delete
|
||||
'diff-hl-bmp-middle))
|
||||
(advice-add #'diff-hl-fringe-bmp-from-pos :override #'+vc-gutter-type-at-pos-fn)
|
||||
(advice-add #'diff-hl-fringe-bmp-from-type :override #'+vc-gutter-type-at-pos-fn)
|
||||
(setq diff-hl-draw-borders nil)
|
||||
(add-hook! 'diff-hl-mode-hook
|
||||
(defun +vc-gutter-fix-diff-hl-faces-h ()
|
||||
(mapc (doom-rpartial #'set-face-background nil)
|
||||
'(diff-hl-insert
|
||||
diff-hl-delete
|
||||
diff-hl-change)))))
|
||||
(defadvice! +vc-gutter-define-thin-bitmaps-a (&rest args)
|
||||
:override #'diff-hl-define-bitmaps
|
||||
(define-fringe-bitmap 'diff-hl-bmp-middle [224] nil nil '(center repeated))
|
||||
(define-fringe-bitmap 'diff-hl-bmp-delete [240 224 192 128] nil nil 'top))
|
||||
(defun +vc-gutter-type-face-fn (type _pos)
|
||||
(intern (format "diff-hl-%s" type)))
|
||||
(defun +vc-gutter-type-at-pos-fn (type _pos)
|
||||
(if (eq type 'delete)
|
||||
'diff-hl-bmp-delete
|
||||
'diff-hl-bmp-middle))
|
||||
(advice-add #'diff-hl-fringe-bmp-from-pos :override #'+vc-gutter-type-at-pos-fn)
|
||||
(advice-add #'diff-hl-fringe-bmp-from-type :override #'+vc-gutter-type-at-pos-fn)
|
||||
(setq diff-hl-draw-borders nil)
|
||||
(add-hook! 'diff-hl-mode-hook
|
||||
(defun +vc-gutter-fix-diff-hl-faces-h ()
|
||||
(mapc (doom-rpartial #'set-face-background nil)
|
||||
'(diff-hl-insert
|
||||
diff-hl-delete
|
||||
diff-hl-change))))
|
||||
|
||||
;; FIX: To minimize overlap between flycheck indicators and git-gutter/diff-hl
|
||||
;; indicators in the left fringe.
|
||||
;; FIX: To minimize overlap between flycheck indicators and diff-hl indicators
|
||||
;; in the left fringe.
|
||||
(after! flycheck
|
||||
;; Let diff-hl have left fringe, flycheck can have right fringe
|
||||
(setq flycheck-indication-mode 'right-fringe)
|
||||
|
@ -61,99 +45,10 @@
|
|||
[16 48 112 240 112 48 16] nil nil 'center)))
|
||||
|
||||
|
||||
;;
|
||||
;;; git-gutter
|
||||
|
||||
(use-package! git-gutter
|
||||
:unless (modulep! +diff-hl)
|
||||
:commands git-gutter:revert-hunk git-gutter:stage-hunk git-gutter:previous-hunk git-gutter:next-hunk
|
||||
:init
|
||||
(add-hook! 'find-file-hook
|
||||
(defun +vc-gutter-init-maybe-h ()
|
||||
"Enable `git-gutter-mode' in the current buffer.
|
||||
If the buffer doesn't represent an existing file, `git-gutter-mode's activation
|
||||
is deferred until the file is saved. Respects `git-gutter:disabled-modes'."
|
||||
(let ((file-name (buffer-file-name (buffer-base-buffer))))
|
||||
(cond
|
||||
((and (file-remote-p (or file-name default-directory))
|
||||
(not +vc-gutter-in-remote-files)))
|
||||
;; UX: If not a valid file, wait until it is written/saved to activate
|
||||
;; git-gutter.
|
||||
((not (and file-name (vc-backend file-name)))
|
||||
(add-hook 'after-save-hook #'+vc-gutter-init-maybe-h nil 'local))
|
||||
;; UX: Allow git-gutter or git-gutter-fringe to activate based on the
|
||||
;; type of frame we're in. This allows git-gutter to work for silly
|
||||
;; geese who open both tty and gui frames from the daemon.
|
||||
((if (and (display-graphic-p)
|
||||
(require 'git-gutter-fringe nil t))
|
||||
(setq-local git-gutter:init-function #'git-gutter-fr:init
|
||||
git-gutter:view-diff-function #'git-gutter-fr:view-diff-infos
|
||||
git-gutter:clear-function #'git-gutter-fr:clear
|
||||
git-gutter:window-width -1)
|
||||
(setq-local git-gutter:init-function 'nil
|
||||
git-gutter:view-diff-function #'git-gutter:view-diff-infos
|
||||
git-gutter:clear-function #'git-gutter:clear-diff-infos
|
||||
git-gutter:window-width 1))
|
||||
(unless (memq major-mode git-gutter:disabled-modes)
|
||||
(git-gutter-mode +1)
|
||||
(remove-hook 'after-save-hook #'+vc-gutter-init-maybe-h 'local)))))))
|
||||
|
||||
;; UX: Disable in Org mode, as per syl20bnr/spacemacs#10555 and
|
||||
;; syohex/emacs-git-gutter#24. Apparently, the mode-enabling function for
|
||||
;; global minor modes gets called for new buffers while they are still in
|
||||
;; `fundamental-mode', before a major mode has been assigned. I don't know
|
||||
;; why this is the case, but adding `fundamental-mode' here fixes the issue.
|
||||
(setq git-gutter:disabled-modes '(fundamental-mode image-mode pdf-view-mode))
|
||||
:config
|
||||
(set-popup-rule! "^\\*git-gutter" :select nil :size '+popup-shrink-to-fit)
|
||||
|
||||
;; PERF: Only enable the backends that are available, so it doesn't have to
|
||||
;; check when opening each buffer.
|
||||
(setq git-gutter:handled-backends
|
||||
(cons 'git (cl-remove-if-not #'executable-find (list 'hg 'svn 'bzr)
|
||||
:key #'symbol-name)))
|
||||
|
||||
;; UX: update git-gutter on focus (in case I was using git externally)
|
||||
(add-hook 'focus-in-hook #'git-gutter:update-all-windows)
|
||||
|
||||
;; Stop git-gutter doing things when we don't want
|
||||
(remove-hook 'post-command-hook #'git-gutter:post-command-hook)
|
||||
(advice-remove #'quit-window #'git-gutter:quit-window)
|
||||
(advice-remove #'switch-to-buffer #'git-gutter:switch-to-buffer)
|
||||
|
||||
(add-hook! '(doom-escape-hook doom-switch-window-hook) :append
|
||||
(defun +vc-gutter-update-h (&rest _)
|
||||
"Refresh git-gutter on ESC. Return nil to prevent shadowing other
|
||||
`doom-escape-hook' hooks."
|
||||
(ignore (or (memq this-command '(git-gutter:stage-hunk
|
||||
git-gutter:revert-hunk))
|
||||
inhibit-redisplay
|
||||
(if git-gutter-mode
|
||||
(git-gutter)
|
||||
(+vc-gutter-init-maybe-h))))))
|
||||
;; UX: update git-gutter when using magit commands
|
||||
(advice-add #'magit-stage-file :after #'+vc-gutter-update-h)
|
||||
(advice-add #'magit-unstage-file :after #'+vc-gutter-update-h)
|
||||
|
||||
;; UX: update git-gutter after reverting a buffer
|
||||
(add-hook 'after-revert-hook #'+vc-gutter-update-h)
|
||||
|
||||
;; FIX: stop git-gutter:{next,previous}-hunk from jumping to random hunks.
|
||||
(defadvice! +vc-gutter--fix-linearity-of-hunks-a (diffinfos is-reverse)
|
||||
:override #'git-gutter:search-near-diff-index
|
||||
(cl-position-if (let ((lineno (line-number-at-pos))
|
||||
(fn (if is-reverse #'> #'<)))
|
||||
(lambda (line) (funcall fn lineno line)))
|
||||
diffinfos
|
||||
:key #'git-gutter-hunk-start-line
|
||||
:from-end is-reverse)))
|
||||
|
||||
|
||||
;;
|
||||
;;; diff-hl
|
||||
|
||||
(use-package! diff-hl
|
||||
:when (modulep! +diff-hl)
|
||||
:hook (find-file . diff-hl-mode)
|
||||
:hook (vc-dir-mode . diff-hl-dir-mode)
|
||||
:hook (dired-mode . diff-hl-dired-mode)
|
||||
|
@ -162,8 +57,6 @@ is deferred until the file is saved. Respects `git-gutter:disabled-modes'."
|
|||
:config
|
||||
(set-popup-rule! "^\\*diff-hl" :select nil :size '+popup-shrink-to-fit)
|
||||
|
||||
;; PERF: reduce load on remote
|
||||
(defvaralias 'diff-hl-disable-on-remote '+vc-gutter-in-remote-files)
|
||||
;; PERF: A slightly faster algorithm for diffing.
|
||||
(setq vc-git-diff-switches '("--histogram"))
|
||||
;; PERF: Slightly more conservative delay before updating the diff
|
||||
|
@ -185,7 +78,7 @@ is deferred until the file is saved. Respects `git-gutter:disabled-modes'."
|
|||
:n "{" #'diff-hl-show-hunk-previous
|
||||
:n "}" #'diff-hl-show-hunk-next
|
||||
:n "S" #'diff-hl-show-hunk-stage-hunk))
|
||||
;; UX: Refresh git-gutter on ESC or refocusing the Emacs frame.
|
||||
;; UX: Refresh gutter on ESC or refocusing the Emacs frame.
|
||||
(add-hook! '(doom-escape-hook doom-switch-window-hook) :append
|
||||
(defun +vc-gutter-update-h (&rest _)
|
||||
"Return nil to prevent shadowing other `doom-escape-hook' hooks."
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
;; -*- no-byte-compile: t; -*-
|
||||
;;; ui/vc-gutter/packages.el
|
||||
|
||||
(if (modulep! +diff-hl)
|
||||
(package! diff-hl :pin "96620839430c1205cbb8c92dd54973397f70f9d2")
|
||||
(package! git-gutter-fringe :pin "648cb5b57faec55711803cdc9434e55a733c3eba"))
|
||||
(package! diff-hl :pin "11f3113e790526d5ee00f61f8e7cd0d01e323b2e")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue