dev: merging from master:

This commit is contained in:
Matt Nish-Lapidus 2024-09-07 22:24:35 -04:00
commit 30782f0cb3
58 changed files with 208 additions and 160 deletions

View file

@ -180,6 +180,14 @@ If set to nil, only display benchmark if a CLI explicitly requested with a
non-nil :benchmark property.
If set to `always', show the benchmark no matter what.")
(defvar doom-cli-shell
(pcase (getenv "__DOOMSH")
("ps1" 'pwsh)
(_ 'sh))
"What shell environment Doom has been started with.
Can be `pwsh' if invoked via bin/doom.ps1, or `sh' in unix environments.")
;;; Internal variables
(defvar doom-cli--context nil)
(defvar doom-cli--exit-code 255)
@ -1121,9 +1129,9 @@ Emacs' batch library lacks an implementation of the exec system call."
(error "__DOOMSTEP envvar missing; extended `exit!' functionality will not work"))
(let* ((pid (doom-cli-context-pid context))
(step (doom-cli-context-step context))
(shtype (or (getenv "__DOOMSH") "sh"))
(shext (if (eq doom-cli-shell 'pwsh) "ps1" "sh"))
(context-file (format (doom-path temporary-file-directory "doom.%s.%s.context") pid step))
(script-file (format (doom-path temporary-file-directory "doom.%s.%s.%s") pid step shtype))
(script-file (format (doom-path temporary-file-directory "doom.%s.%s.%s") pid step shext))
(command (if (listp args) (combine-and-quote-strings (remq nil args)) args))
(persistent-files
(combine-and-quote-strings (delq nil (list script-file context-file))))
@ -1163,20 +1171,20 @@ Emacs' batch library lacks an implementation of the exec system call."
(doom-log "restart: writing post-script to %s" script-file)
(doom-file-write
script-file
(pcase-exhaustive shtype
("sh" `(,(if (featurep :system 'android)
"#!/bin/sh\n"
"#!/usr/bin/env sh\n")
"trap _doomcleanup EXIT\n"
"_doomcleanup() {\n rm -f " ,persistent-files "\n}\n"
"_doomrun() {\n " ,command "\n}\n"
,(cl-loop for (var . val) in persisted-env
concat (format "%s=%s \\\n" var (shell-quote-argument val)))
,(format "PATH=\"%s%s$PATH\" \\\n"
(doom-path doom-emacs-dir "bin")
path-separator)
"_doomrun \"$@\"\n"))
("ps1" `("try {\n"
(pcase-exhaustive doom-cli-shell
(`sh `(,(if (featurep :system 'android)
"#!/bin/sh\n"
"#!/usr/bin/env sh\n")
"trap _doomcleanup EXIT\n"
"_doomcleanup() {\n rm -f " ,persistent-files "\n}\n"
"_doomrun() {\n " ,command "\n}\n"
,(cl-loop for (var . val) in persisted-env
concat (format "%s=%s \\\n" var (shell-quote-argument val)))
,(format "PATH=\"%s%s$PATH\" \\\n"
(doom-path doom-emacs-dir "bin")
path-separator)
"_doomrun \"$@\"\n"))
(`pwsh `("try {\n"
,(cl-loop for (var . val) in persisted-env
concat (format " $__%s = $env:%s; $env:%s = %S\n "
var var var val))
@ -1286,7 +1294,7 @@ Arguments don't have to be switches either."
ARGS are options passed to less. If DOOMPAGER is set, ARGS are ignored."
(let ((pager (or doom-cli-pager (getenv "DOOMPAGER"))))
(cond ((equal (getenv "__DOOMSH") "ps1")
(cond ((eq doom-cli-shell 'pwsh)
;; Pager isn't supported in powershell
(doom-cli--exit 0 context))
@ -1322,16 +1330,18 @@ ARGS are options passed to less. If DOOMPAGER is set, ARGS are ignored."
ARGS are options passed to less. If DOOMPAGER is set, ARGS are ignored."
(doom-cli--exit
(let ((threshold (ceiling (* (doom-cli-context-height context)
doom-cli-pager-ratio))))
(if (>= (let ((stdout (doom-cli-context-stdout context)))
(if (fboundp 'buffer-line-statistics)
(car (buffer-line-statistics stdout))
(with-current-buffer stdout
(count-lines (point-min) (point-max)))))
threshold)
(cons :pager args)
0))
(if (eq doom-cli-shell 'pwsh)
0
(let ((threshold (ceiling (* (doom-cli-context-height context)
doom-cli-pager-ratio))))
(if (>= (let ((stdout (doom-cli-context-stdout context)))
(if (fboundp 'buffer-line-statistics)
(car (buffer-line-statistics stdout))
(with-current-buffer stdout
(count-lines (point-min) (point-max)))))
threshold)
(cons :pager args)
0)))
context))
;; (defun doom-cli--exit-editor (args context)) ; TODO Launch $EDITOR

View file

@ -73,6 +73,17 @@ and Emacs states, and for non-evil users.")
(key-binding (vconcat (cl-subseq keys 0 -1) [C-i]) nil t)))
[C-i] [?\C-i])))
;; HACK: Same as C-i, but C-m is a little harder. There is no workaround for
;; this for the terminal.
(define-key input-decode-map
[?\C-m] (cmd! (if (when-let ((keys (this-single-command-raw-keys)))
(and (display-graphic-p)
(not (cl-position 'return keys))
(not (cl-position 'kp-return keys))
;; Fall back if no <C-m> keybind can be found.
(key-binding (vconcat (cl-subseq keys 0 -1) [C-m]) nil t)))
[C-m] [?\C-m])))
;;
;;; Universal, non-nuclear escape

View file

@ -183,7 +183,7 @@ And if it's a function, evaluate it."
(put 'projectile-git-submodule-command 'initial-value projectile-git-submodule-command)
(setq projectile-git-submodule-command nil
;; Include and follow symlinks in file listings.
projectile-git-fd-args (concat "-L -tl " projectile-git-fd-args)
projectile-git-fd-args (concat "-tl " projectile-git-fd-args)
projectile-indexing-method 'hybrid
projectile-generic-command
(lambda (_)

View file

@ -270,7 +270,7 @@ These files should not be shared across systems. By default, it is used by
(defvar doom-data-dir
(if doom-profile
(if doom--system-windows-p
(expand-file-name "doomemacs/data/" (getenv-internal "APPDATA"))
(expand-file-name "doomemacs/data/" (getenv-internal "LOCALAPPDATA"))
(expand-file-name "doom/" (or (getenv-internal "XDG_DATA_HOME") "~/.local/share")))
;; DEPRECATED: .local will be removed entirely in 3.0
(file-name-concat doom-local-dir "etc/"))
@ -289,7 +289,7 @@ For profile-local data files, use `doom-profile-data-dir' instead.")
(defvar doom-cache-dir
(if doom-profile
(if doom--system-windows-p
(expand-file-name "doomemacs/cache/" (getenv-internal "APPDATA"))
(expand-file-name "doomemacs/cache/" (getenv-internal "LOCALAPPDATA"))
(expand-file-name "doom/" (or (getenv-internal "XDG_CACHE_HOME") "~/.cache")))
;; DEPRECATED: .local will be removed entirely in 3.0
(file-name-concat doom-local-dir "cache/"))
@ -308,7 +308,7 @@ For profile-local cache files, use `doom-profile-cache-dir' instead.")
(defvar doom-state-dir
(if doom-profile
(if doom--system-windows-p
(expand-file-name "doomemacs/state/" (getenv-internal "APPDATA"))
(expand-file-name "doomemacs/state/" (getenv-internal "LOCALAPPDATA"))
(expand-file-name "doom/" (or (getenv-internal "XDG_STATE_HOME") "~/.local/state")))
;; DEPRECATED: .local will be removed entirely in 3.0
(file-name-concat doom-local-dir "state/"))

View file

@ -91,12 +91,12 @@ If no project is active, return all buffers."
;;;###autoload
(defun doom-special-buffer-p (buf)
"Returns non-nil if BUF's name starts and ends with an *."
(equal (substring (buffer-name buf) 0 1) "*"))
(char-equal ?* (aref (buffer-name buf) 0)))
;;;###autoload
(defun doom-temp-buffer-p (buf)
"Returns non-nil if BUF is temporary."
(equal (substring (buffer-name buf) 0 1) " "))
(char-equal ?\s (aref (buffer-name buf) 0)))
;;;###autoload
(defun doom-visible-buffer-p (buf)
@ -111,12 +111,14 @@ If no project is active, return all buffers."
;;;###autoload
(defun doom-non-file-visiting-buffer-p (buf)
"Returns non-nil if BUF does not have a value for `buffer-file-name'."
(not (buffer-file-name buf)))
(not (buffer-file-name (or (buffer-base-buffer buf) buf))))
;;;###autoload
(defun doom-real-buffer-list (&optional buffer-list)
"Return a list of buffers that satisfy `doom-real-buffer-p'."
(cl-remove-if-not #'doom-real-buffer-p (or buffer-list (doom-buffer-list))))
(cl-loop for buf in (or buffer-list (doom-buffer-list))
if (doom-real-buffer-p buf)
collect buf))
;;;###autoload
(defun doom-real-buffer-p (buffer-or-name)
@ -160,15 +162,13 @@ See `doom-real-buffer-p' for details on what that means."
"Return a list of buffers whose `major-mode' is `eq' to MODE(S).
If DERIVED-P, test with `derived-mode-p', otherwise use `eq'."
(let ((modes (ensure-list modes)))
(cl-remove-if-not (if derived-p
(lambda (buf)
(apply #'provided-mode-derived-p
(buffer-local-value 'major-mode buf)
modes))
(lambda (buf)
(memq (buffer-local-value 'major-mode buf) modes)))
(or buffer-list (doom-buffer-list)))))
(cl-loop with modes = (ensure-list modes)
for buf in (or buffer-list (doom-buffer-list))
for mode = (buffer-local-value 'major-mode buf)
if (if derived-p
(apply #'provided-mode-derived-p mode modes)
(memq mode modes))
collect buf))
;;;###autoload
(defun doom-visible-windows (&optional window-list)
@ -187,20 +187,23 @@ If DERIVED-P, test with `derived-mode-p', otherwise use `eq'."
if (window-list frame)
nconc (mapcar #'window-buffer it)))))
(if buffer-list
(cl-delete-if (lambda (b) (memq b buffer-list))
buffers)
(delete-dups buffers))))
(cl-loop for buf in buffers
unless (memq buf buffer-list)
collect buffers)
buffers)))
;;;###autoload
(defun doom-buried-buffers (&optional buffer-list)
"Get a list of buffers that are buried."
(cl-remove-if #'get-buffer-window (or buffer-list (doom-buffer-list))))
(cl-loop for buf in (or buffer-list (doom-buffer-list))
unless (doom-visible-buffer-p buf)
collect buf))
;;;###autoload
(defun doom-matching-buffers (pattern &optional buffer-list)
"Get a list of all buffers that match the regex PATTERN."
(cl-loop for buf in (or buffer-list (doom-buffer-list))
when (string-match-p pattern (buffer-name buf))
if (string-match-p pattern (buffer-name buf))
collect buf))
;;;###autoload

View file

@ -78,8 +78,8 @@ And jumps to your `doom!' block."
(format "%s sync -B -e"
;; /usr/bin/env doesn't exist on Android
(if (featurep :system 'android)
"sh %%s"
"%%s"))
"sh %s"
"%s"))
"Command that `doom/reload' runs.")
;;;###autoload
(defun doom/reload ()
@ -147,8 +147,8 @@ imported into Emacs."
(format "%s upgrade -B --force"
;; /usr/bin/env doesn't exist on Android
(if (featurep :system 'android)
"sh %%s"
"%%s"))
"sh %s"
"%s"))
"Command that `doom/upgrade' runs.")
;;;###autoload
(defun doom/upgrade ()

View file

@ -45,6 +45,7 @@ This is used by `file-exists-p!' and `project-file-exists-p!'."
Ignores `nil' elements in SEGMENTS, and is intended as a fast compromise between
`expand-file-name' (slow, but accurate), `file-name-concat' (fast, but
inaccurate)."
(declare (side-effect-free t))
;; PERF: An empty `file-name-handler-alist' = faster `expand-file-name'.
(let (file-name-handler-alist)
(expand-file-name
@ -69,7 +70,9 @@ If the glob ends in a slash, only returns matching directories."
file-name-handler-alist
(path (apply #'file-name-concat segments)))
(if (string-suffix-p "/" path)
(cl-delete-if-not #'file-directory-p (file-expand-wildcards (substring path 0 -1)))
(cl-loop for file in (file-expand-wildcards (substring path 0 -1))
if (file-directory-p file)
collect file)
(file-expand-wildcards path))))
;;;###autoload

View file

@ -334,7 +334,7 @@
(:when (modulep! :checkers syntax)
:desc "Flycheck" "f" #'flycheck-mode)
(:when (modulep! :ui indent-guides)
:desc "Indent guides" "i" #'highlight-indent-guides-mode)
:desc "Indent guides" "i" #'indent-bars-mode)
(:when (modulep! :ui minimap)
:desc "Minimap mode" "m" #'minimap-mode)
(:when (modulep! :lang org +present)

View file

@ -843,7 +843,7 @@
:desc "Frame fullscreen" "F" #'toggle-frame-fullscreen
:desc "Evil goggles" "g" #'evil-goggles-mode
(:when (modulep! :ui indent-guides)
:desc "Indent guides" "i" #'highlight-indent-guides-mode)
:desc "Indent guides" "i" #'indent-bars-mode)
:desc "Indent style" "I" #'doom/toggle-indent-style
:desc "Line numbers" "l" #'doom/toggle-line-numbers
(:when (modulep! :ui minimap)

View file

@ -366,13 +366,4 @@ and complains if a module is loaded too early (during startup)."
(dolist (mode evil-collection-mode-list)
(dolist (req (or (cdr-safe mode) (list mode)))
(with-eval-after-load req
(+evil-collection-init mode +evil-collection-disabled-list)))))
;; HACK: The Diff options in `save-some-buffers's prompt should persist after
;; you quit view-mode, but evil-collection-view's bindings on q/Q break
;; this, so these are here to restore them.
;; REVIEW: PR this upstream!
(map! :after (view evil-collection-view)
:map view-mode-map
:n "q" #'View-quit
:n "Q" #'View-quit-all))
(+evil-collection-init mode +evil-collection-disabled-list))))))

View file

@ -35,4 +35,4 @@
(package! neotree)
(autoload 'neotree-make-executor "neotree" nil nil 'macro))
(package! evil-collection :pin "772571fc6762b6cd1d35cc869e266de9a5c6022b"))
(package! evil-collection :pin "6365e7c8ae728f7a26294db261b6778d089a6263"))

View file

@ -124,6 +124,16 @@ Fixes #3939: unsortable dired entries on Windows."
(setq dirvish-subtree-always-show-state t)
(appendq! dirvish-attributes '(nerd-icons subtree-state)))
;; HACK: Fixes #8038. Because `dirvish-reuse-session' is unset above, when
;; walking a directory tree, previous dired buffers are killed along the
;; way, which is jarring for folks who expect to be able to switch back to
;; those buffers before their dired session ends. As long as we retain
;; those, Dirvish will still clean them up on `dirvish-quit'.
(defadvice! +dired--retain-buffers-on-dirvish-find-entry-a (fn &rest args)
:around #'dirvish-find-entry-a
(let ((dirvish-reuse-session t))
(apply fn args)))
;; HACK: Makes `dirvish-hide-details' and `dirvish-hide-cursor' accept a list
;; of symbols to instruct Dirvish in what contexts they should be enabled.
;; The accepted values are:

View file

@ -6,11 +6,11 @@
:recipe (:host github :repo "agda/agda"
:files ("src/data/emacs-mode/agda-input.el")
:nonrecursive t)
:pin "fbf9d159c3c874b8328ccdc78a0d57d57a310234")
:pin "4f82f9b90afbcc72e528ebde08ff6b9bef5b6a9a")
(package! agda2-mode
:recipe (:host github :repo "agda/agda"
:files ("src/data/emacs-mode/*.el"
(:exclude "agda-input.el"))
:nonrecursive t)
:pin "fbf9d159c3c874b8328ccdc78a0d57d57a310234"))
:pin "4f82f9b90afbcc72e528ebde08ff6b9bef5b6a9a"))

View file

@ -4,4 +4,4 @@
(package! beancount
:recipe (:host github
:repo "beancount/beancount-mode")
:pin "71c16222461d947b82e45e4b986d01880b492bbb")
:pin "7b437abcf00f68d1c6ff032e118af09fcd6486a5")

View file

@ -4,9 +4,9 @@
(package! cmake-mode
:recipe (:host github :repo "emacsmirror/cmake-mode" :files (:defaults "*"))
:pin "b08b5d9045308362a623a4f576896d55ffecfd52")
(package! cuda-mode :pin "7dd07a20c36b41c8cb38cdec989673b73d03e144")
(package! cuda-mode :pin "c3dae31b3d1abedf4d0b98840127e2cac73d6ad8")
(package! demangle-mode :pin "04f545adab066708d6151f13da65aaf519f8ac4e")
(package! disaster :pin "16bba9afb92aacf06c088c29ba47813b65a80d87")
(package! disaster :pin "b20f8e1ef96167a7beed5eb4fc6ef72488bd3662")
(unless (modulep! +tree-sitter)
(package! modern-cpp-font-lock :pin "43c6b68ff58fccdf9deef11674a172e4eaa8455c"))
(package! opencl-mode :pin "204d5d9e0f5cb2cbe810f2933230eb08fe2c7695")

View file

@ -6,7 +6,7 @@
;; git server with shallow clones disabled.
(package! paredit
:recipe (:host github :repo "emacsmirror/paredit")
:pin "9a2c4b37fc8c1c7bdbb1f86fdec874c0d0652e64")
:pin "037b9b8acbca75151f133b6c0f7f3ff97d9042e5")
;; HACK Forward declare these clj-refactor/cider deps so that their deps are
;; byte-compiled first.
@ -16,11 +16,11 @@
;;; Core packages
(package! clojure-mode :pin "59888c84b61081e9b0085e388f55132925a66e7a")
(package! clj-refactor :pin "dc1bbc8cdaa723bdbb6669ea7d280625c370755d")
(package! cider :pin "105da319b09a436552f1b3c6194cbbc833017dd2")
(package! cider :pin "8fdb53e8be764704f5023fa024d023bffedf5a8b")
(when (and (modulep! :checkers syntax)
(not (modulep! :checkers syntax +flymake)))
(package! flycheck-clj-kondo :pin "e38c67ba9db1ea1cbe1b61ab39b506c05efdcdbf"))
(package! jet :pin "7d5157aac692fc761d8ed7a9f820fa6522136254")
(package! jet :pin "c9a92675efd802f37df5e3eab7858dbbeced6ea4")
(package! neil
:recipe (:host github :repo "babashka/neil" :files ("*.el"))
:pin "a38be9f0821b828f7c75a527bc4cfb256f6aa8af")
:pin "6728367eff5f03e4e3e13d1b155aef77a5297bea")

View file

@ -1,11 +1,11 @@
;; -*- no-byte-compile: t; -*-
;;; lang/common-lisp/packages.el
(when (package! sly :pin "ba40c8f054ec3b7040a6c36a1ef3e9596b936421")
(when (package! sly :pin "742355f7554ab6c46e5c1c9bdb89068f55359eaa")
(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-repl-ansi-color :pin "b9cd52d1cf927bf7e08582d46ab0bcf1d4fb5048")
(package! sly-overlay :pin "4c6135c26051fa4cc87d57d7d127aaae5bd40860"))
(package! sly-overlay :pin "d62945059035f8097a6f222ed2700cfd99609d11"))

View file

@ -1,5 +1,5 @@
;; -*- no-byte-compile: t; -*-
;;; lang/coq/packages.el
(package! proof-general :pin "99f91e873ec2fdc41079555db1130f07d9a9ce89")
(package! proof-general :pin "3a99da275523c8f844fdfa3dd073295eece939f3")
(package! company-coq :pin "5affe7a96a25df9101f9e44bac8a828d8292c2fa")

View file

@ -5,8 +5,8 @@
(when (and (modulep! +lsp)
(not (modulep! :tools lsp +eglot)))
(package! lsp-dart :pin "1f52e81c9371055ff9188117ace81f009d1c79f2"))
(package! lsp-dart :pin "9ffbafb7dcea3ef3d9e29bafb51d5167f0585d2c"))
(when (modulep! +flutter)
(package! flutter :pin "004c91e070a9b4a2a5042f5bb20015ec65453acf")
(package! flutter :pin "e71235d400787d977da7ed792709437899c2a03c")
(package! hover :pin "4ca0638a14a8b304ac2b46e7b342b8d8732ad199"))

View file

@ -1,4 +1,4 @@
;; -*- no-byte-compile: t; -*-
;;; lang/data/packages.el
(package! csv-mode :pin "cdb73a771b0b9fa3cbae66dde5b934be6550a8b1")
(package! csv-mode :pin "6979fc18ebe133cfe2fca02efda9a9f0cd13428a")

View file

@ -18,4 +18,4 @@
(package! flycheck-cask :pin "0eeec5197e9d31bfcfc39380b262d65259a87d91"))
;; Libraries
(package! buttercup :pin "a1a86b027ffe030e1c78a9f43c50cd20a6fed19a")
(package! buttercup :pin "bf01a33f8bc2d3664121d3b20f7496e67ce55e6a")

View file

@ -40,7 +40,7 @@ This module requires Erlang be installed (which includes ~erlang-mode~). Check
your distribution's package manager or a version management tool such as [[https://github.com/kerl/kerl][kerl]].
- [[https://github.com/erlang/sourcer][sourcer]] when [[doom-module::tools lsp]] & [[doom-module:+lsp]]
- [[https://github.com/sile/efmt][efmt]] when [[doom-module::editor format]]
- [[https://github.com/erlang/rebar3][rebar3]] with [[https://github.com/WhatsApp/erlfmt][erlfmt]] when [[doom-module::editor format]]
* TODO Usage
#+begin_quote

View file

@ -5,7 +5,7 @@
:mode ("/rebar\\.config\\(?:\\.script\\)?\\'" . erlang-mode)
:mode ("/\\(?:app\\|sys\\)\\.config\\'" . erlang-mode)
:config
(set-formatter! 'efmt '("efmt" "-") :modes '(erlang-mode))
(set-formatter! 'erlfmt '("rebar3" "fmt" "-") :modes '(erlang-mode))
(when (modulep! +lsp)
(add-hook 'erlang-mode-local-vars-hook #'lsp! 'append))

View file

@ -6,5 +6,5 @@
"This module requires (:tools lsp)")
(when (modulep! :editor format)
(unless (executable-find "efmt")
(warn! "Couldn't find efmt. Formatting will be disabled.")))
(unless (and (executable-find "rebar3") (zerop (car (doom-call-process "rebar3" "fmt" "-v"))))
(warn! "Couldn't find erlfmt. Formatting will be disabled.")))

View file

@ -1,4 +1,4 @@
;; -*- no-byte-compile: t; -*-
;;; lang/erlang/packages.el
(package! erlang :pin "2a64588d4a369ae40dd243aedaa62af68954ce1f")
(package! erlang :pin "c66bf53cde597f595a3ce5fb4ddc1b0caa9996ce")

View file

@ -1,4 +1,4 @@
;; -*- no-byte-compile: t; -*-
;;; lang/factor/packages.el
(package! fuel :pin "d1430077782d83b9acd17a959dda554afe3faa6e")
(package! fuel :pin "31dc1a386b06bbde4062f57c12bb4efe3fc635db")

View file

@ -2,7 +2,7 @@
;;; lang/go/packages.el
(package! go-eldoc :pin "cbbd2ea1e94a36004432a9ac61414cb5a95a39bd")
(package! go-mode :pin "636d36e37a0d2b6adb2e12d802ff4794ccbba336")
(package! go-mode :pin "602d73e22646b1b98b2eb97927fd426c0d1d2f92")
(package! gorepl-mode :pin "6a73bf352e8d893f89cad36c958c4db2b5e35e07")
(package! go-tag :pin "33f2059551d5298ca228d90f525b99d1a8d70364")
(package! go-gen-test :pin "af00a9abbaba2068502327ecdef574fd894a884b")

View file

@ -2,7 +2,7 @@
;;; lang/graphql/packages.el
(package! graphql-mode :pin "ef4aecaeada77f46d1f0465ab62b9e9f537ec260")
(package! graphql-doc :pin "d37140267e0c426c7c18aff31900aa1650257394")
(package! graphql-doc :pin "17755a2466a1acef68eac664093fcd13cd51494a")
(unless (modulep! +lsp)
(package! company-graphql
:recipe (:host github :repo "thaenalpha/company-graphql")

View file

@ -5,4 +5,4 @@
(when (and (modulep! +lsp)
(not (modulep! :tools lsp +eglot)))
(package! lsp-haskell :pin "18a7c7881fb249d9b4cb5f376dfa84682022dc83"))
(package! lsp-haskell :pin "ba49fa9822556aff58aa47929cd426e9427baaea"))

View file

@ -1,4 +1,4 @@
;; -*- no-byte-compile: t; -*-
;;; lang/idris/packages.el
(package! idris-mode :pin "38dd2380dca5025311cee669cce2361fb8725f51")
(package! idris-mode :pin "09de86a8f056c61de72c678386039894779a9375")

View file

@ -19,5 +19,5 @@
;; enabled (i.e. lsp-treemacs isn't installed). This needs to be tackled
;; upstream, but for now:
(unless (alist-get 'lsp-treemacs doom-packages)
(package! lsp-treemacs :pin "1d43e9e0307f84496a4a7ddf9dba481000391dbd"))
(package! lsp-java :pin "4909c14b9012eed669a9c3f11a8df055d5bb8a0e")))
(package! lsp-treemacs :pin "fb1a07ae0a3d781dea8ac78da2933e0173eb48a4"))
(package! lsp-java :pin "868600bf7f47faefe0e5971060dc6e73026cda38")))

View file

@ -10,4 +10,4 @@
(package! lsp-julia :pin "c869b2f6c05a97e5495ed3cc6710a33b4faf41a2")))
(when (modulep! +snail)
(package! julia-snail :pin "f7784c50078332aeeb8e388bf5b8f13042b7406b"))
(package! julia-snail :pin "dff92c4250e40a6cc106f0ea993f9631ad55eb7c"))

View file

@ -4,8 +4,8 @@
(package! auctex
:recipe (:files ("*.el" "*.info" "dir"
"doc" "etc" "images" "latex" "style"))
:pin "451b0f08b04d66ff4ffd2a5fac4ee646730c0720")
(package! adaptive-wrap :pin "f5bc153273f4c3cd03966dbf568dd921b01323ec")
:pin "08881d08ce4161383b2e5666e5b388e13312188f")
(package! adaptive-wrap :pin "d75665b9c88e65f91dadd1e5880905bbdb7c09b7")
(package! latex-preview-pane :pin "5297668a89996b50b2b62f99cba01cc544dbed2e")
(when (modulep! :editor evil +everywhere)
(package! evil-tex :pin "2a3177c818f106e6c11032ac261f8691f5e11f74"))

View file

@ -1,7 +1,7 @@
;; -*- no-byte-compile: t; -*-
;;; lang/ledger/packages.el
(package! ledger-mode :pin "b0e65f74a5a0db98fd1aea2bd87fcf9e489cdacb")
(package! ledger-mode :pin "a6be7a2d79281a442ce5abd3f073b6c20d7d11d8")
(when (modulep! :editor evil)
(package! evil-ledger :pin "7a9f9f5d39c42fffdba8004f8982642351f2b233"))

View file

@ -12,7 +12,7 @@
:pin "fcb99e5efcf31db05f236f02eaa575986a57172d")))
(when (modulep! +fennel)
(package! fennel-mode :pin "a4ddd1750fd397eb6bb3aa481d25cb9e056e712f"))
(package! fennel-mode :pin "f4bd34e1c3b14313c20af94dd34430b40c0ef35f"))
(when (modulep! :completion company)
(package! company-lua :pin "29f6819de4d691e5fd0b62893a9f4fbc1c6fcb52"))

View file

@ -1,7 +1,7 @@
;; -*- no-byte-compile: t; -*-
;;; lang/markdown/packages.el
(package! markdown-mode :pin "8aab017f4790f7a1e0d8403239cce989c88412f6")
(package! markdown-mode :pin "6102ac5b7301b4c4fc0262d9c6516693d5a33f2b")
(package! markdown-toc :pin "3d724e518a897343b5ede0b976d6fb46c46bcc01")
;; Required by `markdown-mode', or it will install it via package.el if it isn't
@ -9,7 +9,7 @@
(package! edit-indirect :pin "82a28d8a85277cfe453af464603ea330eae41c05")
(when (modulep! +grip)
(package! grip-mode :pin "7c42b8f61d148305dd3949d247903f9daa951eb4"))
(package! grip-mode :pin "9adac9c98902e42d73a64788b69f2c07e21f7851"))
(when (modulep! :editor evil +everywhere)
(package! evil-markdown

View file

@ -6,12 +6,12 @@
(package! ocp-indent :pin "f38578c25d62701847b1bcb45099a9020e2032fe")
(package! dune
:recipe (:host github :repo "ocaml/dune" :files ("editor-integration/emacs/*.el"))
:pin "96ed5fb42f2c534578cb77191887f8d5a7bf5529")
:pin "a7924e322e724d9e604eb0c6f5fd9712d4dee3a0")
(unless (modulep! +lsp)
(package! merlin :pin "9fa77dbe81c893476646d873c5ac5106b94b7107")
(package! merlin :pin "e016abfac6da88ff7a6b49a42ca37854a4378ace")
(package! merlin-eldoc :pin "bf8edc63d85b35e4def352fa7ce4ea39f43e1fd8")
(package! merlin-company :pin "9fa77dbe81c893476646d873c5ac5106b94b7107")
(package! merlin-company :pin "e016abfac6da88ff7a6b49a42ca37854a4378ace")
(when (and (modulep! :checkers syntax)
(not (modulep! :checkers syntax +flymake)))
(package! flycheck-ocaml :pin "77f8ddbd9bfc3a11957ac7ec7e45d5fa9179b192")))

View file

@ -31,7 +31,7 @@
(format "(defun org-git-version (&rest _) \"%s-??-%s\")\n"
version (cdr (doom-call-process "git" "rev-parse" "--short" "HEAD")))
"(provide 'org-version)\n")))))
:pin "f398724bd53eb6af3cf4187c864ec6f89a22ef59")
:pin "6a5d0ed342efeb3a4c402672fbe9bfebd80af8b6") ; release_9.7.11
(package! org-contrib
:recipe (:host github
:repo "emacsmirror/org-contrib")
@ -46,7 +46,7 @@
;; TODO Adjust when this is added to GNU ELPA
(when (modulep! +contacts)
(package! org-contacts
:pin "d0cb221502c9e104b6e3c358128b28761ffddb55"
:pin "f0a430442b2ae60035dcd74fc6a76299875694f3"
:recipe (:host nil
:type git
:repo "https://repo.or.cz/org-contacts.git")))
@ -76,14 +76,14 @@
(when (modulep! +dragndrop)
(package! org-download :pin "19e166f0a8c539b4144cfbc614309d47a9b2a9b7"))
(when (modulep! +gnuplot)
(package! gnuplot :pin "7138b139d2dca9683f1a81325c643b2744aa1ea3")
(package! gnuplot :pin "4c6b18f71ff7604e2640033207f5a882ddce78af")
(package! gnuplot-mode :pin "601f6392986f0cba332c87678d31ae0d0a496ce7"))
(when (modulep! +jupyter)
(package! jupyter :pin "f97f4b5d8c83e0b901020f835183dde8a2bf649e"))
(when (modulep! +journal)
(package! org-journal :pin "17b34ce8df9649a73b715c13698220bde1628668"))
(when (modulep! +noter)
(package! org-noter :pin "68646b685a0d8c02419234922a9e2d885d6419df"))
(package! org-noter :pin "6f292d7f1efb11222c09f3a91c902ea6e4dbfa33"))
(when (modulep! +pomodoro)
(package! org-pomodoro :pin "3f5bcfb80d61556d35fc29e5ddb09750df962cc6"))
(when (modulep! +pretty)
@ -95,7 +95,7 @@
:recipe (:host github :repo "anler/centered-window-mode")
:pin "80965f6c6afe8d918481433984b493de72af5399")
(package! org-tree-slide :pin "e2599a106a26ce5511095e23df4ea04be6687a8a")
(package! org-re-reveal :pin "dbd8ffb3e57719324491ae47b05fa22ff725744e")
(package! org-re-reveal :pin "91610ba9b010b05c52ae7ab77a7890851222db06")
(package! revealjs
:recipe (:host github :repo "hakimel/reveal.js"
:files ("css" "dist" "js" "plugin"))
@ -110,7 +110,7 @@
;; FIXME A :recipe isn't strictly necessary, but without it, our package
;; bumper fails to distinguish between org-roam v1 and v2.
:recipe (:host github :repo "org-roam/org-roam")
:pin "8667e441876cd2583fbf7282a65796ea149f0e5f")))
:pin "0b9fcbc97b65b349826e63bad89ca121a08fd2be")))
;;; Babel
(package! ob-async :pin "9aac486073f5c356ada20e716571be33a350a982")

View file

@ -13,7 +13,7 @@
(when (modulep! +hack)
(package! hack-mode
:recipe (:host github :repo "hhvm/hack-mode")
:pin "ccf20511f0f2ed45d00d423c703bb91ab6a8b80c"))
:pin "343e45f2a616c726f20ba099f3f98a1a01cec405"))
;; For building php-extras
(package! async :pin "f317b0c9c3e60a959f45d035ed5e31a78f1263ac")
(package! async :pin "43f97d7e689eea65043ded1464747a2f3ce7661c")

View file

@ -1,4 +1,4 @@
;; -*- no-byte-compile: t; -*-
;;; lang/racket/packages.el
(package! racket-mode :pin "40ecb87f409a9ef9a4e58c1e51243cce948ab3d7")
(package! racket-mode :pin "dba66c45365de20bc053507c97df746c0cf94203")

View file

@ -6,7 +6,7 @@
(package! yard-mode :pin "de1701753a64544c3376b015805f3661136d8038")
;; REPL
(package! inf-ruby :pin "0cfe8b2fb1ab222ed423a8e6f339d398fa32966f")
(package! inf-ruby :pin "b234625c85a48cc71e7045f5d48f079f410d576a")
(when (modulep! :completion company)
(package! company-inf-ruby :pin "fe3e4863bc971fbb81edad447efad5795ead1b17"))

View file

@ -1,5 +1,5 @@
;; -*- no-byte-compile: t; -*-
;;; lang/rust/packages.el
(package! rust-mode :pin "a529a4518120bd1c662edc31b82062f41bbfb990")
(package! rust-mode :pin "c87f6f82bd484fb1c15009c8a3518ebb62942605")
(package! rustic :pin "d765680373234a6c231acf20c76b07422afcfdf9")

View file

@ -2,8 +2,8 @@
;;; lang/scala/packages.el
(package! sbt-mode :pin "cc68728a6ef0600aad369157b3a2d0ce56afba9b")
(package! scala-mode :pin "4c6d636b86e3bb1d95de819dc48dda92abdfbcf4")
(package! scala-mode :pin "bd0638c32ab0f2eadacf2809329abf5388211760")
(when (and (modulep! +lsp)
(not (modulep! :tools lsp +eglot)))
(package! lsp-metals :pin "fa4072cbe7a7061cdb218b9a3619979f7facba0e"))
(package! lsp-metals :pin "0dc938be1190d147e7013e3dce08ac8bff5d1662"))

View file

@ -6,7 +6,7 @@
:recipe (:host gitlab :repo "flatwhatson/scheme-mode")
:pin "51e586e5f1ddb5ea71d2cac8d401faf718c4627e"))
(when (package! geiser :pin "b6b4ac070d136345345c80ff649f0084e3c512a5")
(when (package! geiser :pin "97ce88463f346ff0dab147334fa0ce7b81569d7c")
(package! macrostep-geiser :pin "f6a2d5bb96ade4f23df557649af87ebd0cc45125")
(when (modulep! +chez)
(package! geiser-chez :pin "605a81ff7b2d2b275a3ec68e3ce7e5b50f85014d"))
@ -19,7 +19,7 @@
(when (modulep! +gauche)
(package! geiser-gauche :pin "8ff743f6416f00751e24aef8b9791501a40f5421"))
(when (modulep! +guile)
(package! geiser-guile :pin "d5175439c01b177d4f27686e5d6dfdae0505ee1f")
(package! geiser-guile :pin "5a856c2982030ff77e2d151ead4fcd991512f362")
(when (and (modulep! :checkers syntax)
(not (modulep! :checkers syntax +flymake)))
(package! flycheck-guile

View file

@ -8,4 +8,4 @@
(package! fish-mode :pin "2526b1803b58cf145bc70ff6ce2adb3f6c246f89"))
(when (modulep! +powershell)
(package! powershell :pin "f2da15857e430206e215a3c65289b4058ae3c976"))
(package! powershell :pin "38727f1cdaf0c937a62b68ee52ec7196b8149f93"))

View file

@ -1,7 +1,7 @@
;; -*- no-byte-compile: t; -*-
;;; lang/sml/packages.el
(package! sml-mode :pin "d114e5a27f3d213b3e32c02f9320cd2041b6376b")
(package! sml-mode :pin "021233f60adfe86b2a29460c1afdf76a9b3c20d0")
(when (modulep! :completion company)
(package! company-mlton
:recipe (:host github :repo "MatthewFluet/company-mlton" :files ("*.el" "*.basis"))

View file

@ -5,7 +5,7 @@
(if (modulep! +lsp)
(unless (modulep! :tools lsp +eglot)
(package! lsp-sourcekit :pin "bb2b7e027824b8690cc6f95181d7abcec3c34a01"))
(package! lsp-sourcekit :pin "63ff1ab638b655089077d17fdd728a48f8906e02"))
(when (modulep! :completion company)
(package! company-sourcekit :pin "a1860ad4dd3a542acd2fa0dfac2a388cbdf4af0c"))
(when (and (modulep! :checkers syntax)

View file

@ -6,7 +6,7 @@
(package! haml-mode :pin "a64d58df8f098f858c6c11fa1629a90969f9c7e8")
(package! pug-mode :pin "73f8c2f95eba695f701df20c8436f49abadebdc1")
(package! slim-mode :pin "8c92169817f2fa59255f547f0a9fb4fbb8309db9")
(when (package! web-mode :pin "005aa62d6f41fbf9bc045cac3b3b772716ee8ba7")
(when (package! web-mode :pin "0c83581d1e93d1d802c730a1d5e90cd1c740e1b2")
(when (modulep! :completion company)
(package! company-web :pin "863fb84b81ed283474e50330cd8d27b1ca0d74f1")))
@ -17,7 +17,7 @@
(package! sass-mode :pin "247a0d4b509f10b28e4687cd8763492bca03599b")
(package! stylus-mode :pin "1ad7c51f3c6a6ae64550d9510c5e4e8470014375")
(package! sws-mode :pin "1ad7c51f3c6a6ae64550d9510c5e4e8470014375")
(package! rainbow-mode :pin "0740f31f300982534183a2f60b1918de418a6f2c")
(package! rainbow-mode :pin "2e6b18609c2fdd1a2dc513937a64d276fd6cf24c")
(when (modulep! :completion ivy)
(package! counsel-css :pin "8e9c0515fc952452eee786d8ebb43d48ea86c9f8"))
(when (modulep! :completion helm)

View file

@ -8,8 +8,8 @@
(package! bibtex-completion :pin "8b71b4f5ce62eeaf18067f57faaddc06449fbe1c")
(package! helm-bibtex :pin "8b71b4f5ce62eeaf18067f57faaddc06449fbe1c"))
(when (modulep! :completion vertico)
(package! citar :pin "07d2a63c99fe35cbd468f8e6a322de05f1a29469")
(package! citar-embark :pin "07d2a63c99fe35cbd468f8e6a322de05f1a29469")
(package! citar :pin "0f1786b7fee58452a3225e4b9b7c94176fff9b5a")
(package! citar-embark :pin "0f1786b7fee58452a3225e4b9b7c94176fff9b5a")
(when (modulep! :lang org +roam2)
(package! citar-org-roam :pin "82d47b5df1926627f56a09055c69b49b31cbbb9f")))

View file

@ -7,4 +7,4 @@
(when (modulep! +lsp)
(package! dap-mode :pin "496dd3a60f71a396df7e9a5ff6c500127d00ec03")
(package! posframe :pin "493b17f74ad41104d0c4d648e8c96dc495279ac8"))
(package! posframe :pin "570273bcf6c21641f02ccfcc9478607728f0a2a2"))

View file

@ -3,13 +3,13 @@
(if (modulep! +eglot)
(progn
(package! eglot :pin "3a5240d8fd3e936aaa452285db087988a438dc81")
(package! eglot :pin "6b9c4faa5201915ab81fe470a872ebce8921fe51")
(when (modulep! :completion vertico)
(package! consult-eglot :pin "64262e72452f8fe6dd49d31bcdd4bd577b7d682d"))
(when (and (modulep! :checkers syntax)
(not (modulep! :checkers syntax +flymake)))
(package! flycheck-eglot :pin "09e37f4c726d9b565b040ba9e89215158d3bd6b6")))
(package! lsp-mode :pin "12befaabe4a1bf8a548bc820faa192be8ee89533")
(package! lsp-mode :pin "dd61303b2dc989a58f7dddd4c754f828a3f52107")
(package! lsp-ui :pin "072bb29152038518c2478813b82c8d04d07df84c")
(when (modulep! :completion ivy)
(package! lsp-ivy :pin "9ecf4dd9b1207109802bd1882aa621eb1c385106"))

View file

@ -21,7 +21,6 @@ This module provides Magit, an interface to the Git version control system.
- [[doom-package:forge]] if [[doom-module:+forge]]
- [[doom-package:code-review]] if [[doom-module:+forge]]
- [[doom-package:magit]]
- [[doom-package:magit-todos]]
** Hacks
- [[doom-package:magit]] has been modified to recognize =$XDG_CACHE_HOME/git/credential/socket=.

View file

@ -1,12 +1,9 @@
;; -*- no-byte-compile: t; -*-
;;; tools/magit/packages.el
;; NOTE: Always bump magit and forge to HEAD~1, not HEAD, because the latest
;; commit on their melpa branches are auto-generated and moved to HEAD every
;; time there's a commit to its main branch.
(package! magit :pin "0aa26864e3fc4e6949711a4821caf6819e7ab171")
(package! magit :pin "0aa26864e3fc4e6949711a4821caf6819e7ab171") ; 4.1.0
(when (modulep! +forge)
(package! forge :pin "35cc600d62a01d50699a529b0caa7d40e642d62a")
(package! forge :pin "d4e88507bf0d256fd92c8d5ccdbee8f7ccbb99b3") ; 0.4.3
(package! code-review
:recipe (:host github
:repo "doomelpa/code-review"

View file

@ -2,9 +2,9 @@
;;; tools/tree-sitter/packages.el
(package! tree-sitter :recipe (:branch "master") :pin "02fe7b86d92b1aab954045146469b7893f0ab371")
(package! tree-sitter-langs :pin "1c3d95d018c6ab09dbe0b31530bfb1865fac2e5f")
(package! tree-sitter-langs :pin "365a4f7bf5184d04b5cc48175d93d7af7b8bbeb4")
(package! tree-sitter-indent :pin "4ef246db3e4ff99f672fe5e4b416c890f885c09e")
(when (modulep! :editor evil +everywhere)
(package! evil-textobj-tree-sitter
:pin "041fcb9fbb00deac92a4e58b5fca03f7dc0a32e8"))
:pin "b4ef204ff80ed00b03cf8839ee29101ed867dd58"))

View file

@ -13,7 +13,7 @@
/This module has no flags./
** Packages
- [[doom-package:highlight-indent-guides]]
- [[doom-package:indent-bars]]
** Hacks
/No hacks documented for this module./

View file

@ -1,11 +1,10 @@
;;; ui/indent-guides/config.el -*- lexical-binding: t; -*-
(defcustom +indent-guides-inhibit-functions nil
(defcustom +indent-guides-inhibit-functions ()
"A list of predicate functions.
Each function will be run in the context of a buffer where
`highlight-indent-guides-mode' should be enabled. If any function returns
non-nil, the mode will not be activated."
Each function will be run in the context of a buffer where `indent-bars' should
be enabled. If any function returns non-nil, the mode will not be activated."
:type 'hook
:group '+indent-guides)
@ -13,17 +12,25 @@ non-nil, the mode will not be activated."
;;
;;; Packages
(use-package! highlight-indent-guides
(use-package! indent-bars
:hook ((prog-mode text-mode conf-mode) . +indent-guides-init-maybe-h)
:init
(setq highlight-indent-guides-method 'character
highlight-indent-guides-bitmap-function #'highlight-indent-guides--bitmap-line)
(defun +indent-guides-init-maybe-h ()
"Enable `highlight-indent-guides-mode'.
Consults `+indent-guides-inhibit-functions'."
"Enable `indent-bars-mode' depending on `+indent-guides-inhibit-functions'."
(unless (run-hook-with-args-until-success '+indent-guides-inhibit-functions)
(highlight-indent-guides-mode +1)))
(indent-bars-mode +1)))
:config
;; Bitmap performance is inconsistent across display systems (pgtk, ns, mac,
;; gtk, etc). There's also a bitmap init bug in PGTK builds of Emacs before
;; v30 that could cause crashes (see jdtsmith/indent-bars#3). If you use PGTK
;; and reverse this setting, you've been warned!
(setq indent-bars-prefer-character t)
;; TODO: Uncomment once we support treesit
;; (setq indent-bars-treesit-support (modulep! :tools tree-sitter))
(unless (boundp 'enable-theme-functions)
(add-hook 'doom-load-theme-hook #'indent-bars-reset-styles))
(add-hook! '+indent-guides-inhibit-functions
;; Org's virtual indentation messes up indent-guides.
@ -33,12 +40,23 @@ Consults `+indent-guides-inhibit-functions'."
;; notebooks.
(defun +indent-guides-in-ein-notebook-p ()
(and (bound-and-true-p ein:notebook-mode)
(bound-and-true-p ein:output-area-inlined-images))))
:config
;; HACK: If this package is loaded too early (by the user, and in terminal
;; Emacs), then `highlight-indent-guides-auto-set-faces' will have been
;; called much too early to set its faces correctly. To get around this, we
;; need to call it again, but at a time when I can ensure a frame exists an
;; the current theme is loaded.
(when (doom-context-p 'init)
(add-hook 'doom-first-buffer-hook #'highlight-indent-guides-auto-set-faces)))
(bound-and-true-p ein:output-area-inlined-images)))
;; Don't display indent guides in childframe popups (not helpful in
;; completion or eldoc popups).
;; REVIEW: Swap with `frame-parent' when 27 support is dropped
(defun +indent-guides-in-childframe-p ()
(frame-parameter nil 'parent-frame)))
;; HACK: Out of the box, indent-bars offers no way to fully disable
;; "highlighting the current line", so I advise on in, since the feature is
;; unnecessary work (and allocation of timers) for users that don't want it,
;; and for our performance-leaning defaults.
(setq indent-bars-depth-update-delay nil)
(defadvice! +indent-guides--disable-highlight-current-line-a (fn &rest args)
:around #'indent-bars-setup
(letf! (defun indent-bars--highlight-current-depth ()
(when indent-bars-depth-update-delay
(funcall indent-bars--highlight-current-depth)))
(prog1 (apply fn args)
(unless indent-bars-depth-update-delay
(remove-hook 'post-command-hook #'indent-bars--highlight-current-depth t))))))

View file

@ -1,4 +1,6 @@
;; -*- no-byte-compile: t; -*-
;;; ui/indent-guides/packages.el
(package! highlight-indent-guides :pin "cf352c85cd15dd18aa096ba9d9ab9b7ab493e8f6")
(package! indent-bars
:recipe (:host github :repo "jdtsmith/indent-bars")
:pin "c8376cf4373a6444ca88e88736db7576dedb51d6")

View file

@ -31,6 +31,10 @@
;; `org'
(add-hook 'org-follow-link-hook #'+nav-flash-delayed-blink-cursor-h)
;; `persp-mode'
(after! persp-mode
(add-hook 'persp-activated-functions #'+nav-flash-delayed-blink-cursor-h))
;; `saveplace'
(advice-add #'save-place-find-file-hook :after #'+nav-flash-blink-cursor-a)