From 41f31ba9ce406c057732b9788a6d756953b9d759 Mon Sep 17 00:00:00 2001 From: theschmocker Date: Sat, 19 Aug 2023 21:00:15 -0500 Subject: [PATCH 001/523] fix(snippets): fix snippet uuid completion Rather than attempting to read the uuid from a text property on the selected completion -- which gets stripped by vertico (and possibly helm) -- grab it from a lookup alist of completion-candidat->uuid. Essentially the same as the proposed implementation by @jgrey4296 on #4127 Fix: #4127 --- modules/editor/snippets/autoload/snippets.el | 31 ++++++++------------ 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/modules/editor/snippets/autoload/snippets.el b/modules/editor/snippets/autoload/snippets.el index 539a11b80..fdbb678ed 100644 --- a/modules/editor/snippets/autoload/snippets.el +++ b/modules/editor/snippets/autoload/snippets.el @@ -45,25 +45,20 @@ Finds correctly active snippets from parent modes (based on Yas' logic)." return it)) (defun +snippet--completing-read-uuid (prompt all-snippets &rest args) - (plist-get - (text-properties-at - 0 (apply #'completing-read prompt - (cl-loop for (_ . tpl) in (mapcan #'yas--table-templates (if all-snippets - (hash-table-values yas--tables) - (yas--get-snippet-tables))) + (let* ((completion-uuid-alist + (cl-loop for (_ . tpl) in (mapcan #'yas--table-templates + (if all-snippets + (hash-table-values yas--tables) + (yas--get-snippet-tables))) - for txt = (format "%-25s%-30s%s" - (yas--template-key tpl) - (yas--template-name tpl) - (abbreviate-file-name (yas--template-load-file tpl))) - collect - (progn - (set-text-properties 0 (length txt) `(uuid ,(yas--template-uuid tpl) - path ,(yas--template-load-file tpl)) - txt) - txt)) - args)) - 'uuid)) + for txt = (format "%-25s%-30s%s" + (yas--template-key tpl) + (yas--template-name tpl) + (abbreviate-file-name (yas--template-load-file tpl))) + collect + (cons txt (yas--template-uuid tpl)))) + (completion (apply #'completing-read prompt completion-uuid-alist args))) + (alist-get completion completion-uuid-alist nil nil #'string=))) (defun +snippet--abort () (interactive) From 464337626852d5462f61d3456b02255bf05e0757 Mon Sep 17 00:00:00 2001 From: theschmocker Date: Sat, 19 Aug 2023 21:12:05 -0500 Subject: [PATCH 002/523] fix(snippets): fix +snippets/new and +snippets/new-alias file creation When adding a snippet/alias to a mode for the first time, setting `default-directory` before calling `+snippet--ensure-dir` would cause an error due to the directory not existing. As a fix, return the dir from `+snippet--ensure-dir` and bind `default-directory` to that. Additionally, not having a file associated with the buffer caused issues with loading the snippet after using snippet-mode's C-c C-c binding, especially when other directories were added to yasnippet's load paths. As a solution for this, prompt the user for a snippet key and set the buffer's file name to it within the snippet dir. If an existing file would be overwritten, ask user for confirmation. As an additional convenience, set the snippet's key field to the entered value. Finally, replace %alias with doom-snippets-expand in the generated alias snippets. Not aware of any history here, but %alias did not work for me. --- modules/editor/snippets/autoload/snippets.el | 78 ++++++++++++-------- 1 file changed, 46 insertions(+), 32 deletions(-) diff --git a/modules/editor/snippets/autoload/snippets.el b/modules/editor/snippets/autoload/snippets.el index fdbb678ed..3566bab2c 100644 --- a/modules/editor/snippets/autoload/snippets.el +++ b/modules/editor/snippets/autoload/snippets.el @@ -33,7 +33,13 @@ ignored. This makes it easy to override built-in snippets with private ones." (unless (file-directory-p dir) (if (y-or-n-p (format "%S doesn't exist. Create it?" (abbreviate-file-name dir))) (make-directory dir t) - (error "%S doesn't exist" (abbreviate-file-name dir))))) + (error "%S doesn't exist" (abbreviate-file-name dir)))) + dir) + +(defun +snippets--use-snippet-file-name-p (snippet-file-name) + (or (not (file-exists-p snippet-file-name)) + (y-or-n-p (format "%s exists. Overwrite it?" + (abbreviate-file-name snippet-file-name))))) (defun +snippet--get-template-by-uuid (uuid &optional mode) "Look up the template by uuid in child-most to parent-most mode order. @@ -191,22 +197,25 @@ buggy behavior when is pressed in an empty field." (defun +snippets/new () "Create a new snippet in `+snippets-dir'." (interactive) - (let ((default-directory - (expand-file-name (symbol-name major-mode) - +snippets-dir))) - (+snippet--ensure-dir default-directory) - (with-current-buffer (switch-to-buffer "untitled-snippet") - (snippet-mode) - (erase-buffer) - (yas-expand-snippet (concat "# -*- mode: snippet -*-\n" - "# name: $1\n" - "# uuid: $2\n" - "# key: ${3:trigger-key}${4:\n" - "# condition: t}\n" - "# --\n" - "$0")) - (when (bound-and-true-p evil-local-mode) - (evil-insert-state))))) + (let* ((default-directory (+snippet--ensure-dir (expand-file-name + (symbol-name major-mode) + +snippets-dir))) + (snippet-key (read-string "Enter a key for the snippet: ")) + (snippet-file-name (expand-file-name snippet-key))) + (when (+snippets--use-snippet-file-name-p snippet-file-name) + (with-current-buffer (switch-to-buffer snippet-key) + (snippet-mode) + (erase-buffer) + (set-visited-file-name snippet-file-name) + (yas-expand-snippet (concat "# -*- mode: snippet -*-\n" + "# name: $1\n" + "# uuid: $2\n" + "# key: ${3:" snippet-key "}${4:\n" + "# condition: t}\n" + "# --\n" + "$0")) + (when (bound-and-true-p evil-local-mode) + (evil-insert-state)))))) ;;;###autoload (defun +snippets/new-alias (template-uuid) @@ -219,21 +228,26 @@ You will be prompted for a snippet to alias." current-prefix-arg))) (unless (require 'doom-snippets nil t) (user-error "This command requires the `doom-snippets' library bundled with Doom Emacs")) - (let ((default-directory (expand-file-name (symbol-name major-mode) +snippets-dir))) - (+snippet--ensure-dir default-directory) - (with-current-buffer (switch-to-buffer "untitled-snippet") - (snippet-mode) - (erase-buffer) - (yas-expand-snippet - (concat "# -*- mode: snippet -*-\n" - "# name: $1\n" - "# key: ${2:trigger-key}${3:\n" - "# condition: t}\n" - "# type: command\n" - "# --\n" - "(%alias \"${4:" (or template-uuid "uuid") "}\")")) - (when (bound-and-true-p evil-local-mode) - (evil-insert-state))))) + (let* ((default-directory (+snippet--ensure-dir (expand-file-name + (symbol-name major-mode) + +snippets-dir))) + (alias-key (read-string "Enter a key for the alias: ")) + (alias-file-name (expand-file-name alias-key))) + (when (+snippets--use-snippet-file-name-p alias-file-name) + (with-current-buffer (switch-to-buffer alias-key) + (snippet-mode) + (erase-buffer) + (set-visited-file-name alias-file-name) + (yas-expand-snippet + (concat "# -*- mode: snippet -*-\n" + "# name: $1\n" + "# key: ${2:" alias-key "}${3:\n" + "# condition: t}\n" + "# type: command\n" + "# --\n" + "(doom-snippets-expand :uuid \"${4:" (or template-uuid "uuid") "}\")")) + (when (bound-and-true-p evil-local-mode) + (evil-insert-state)))))) ;;;###autoload (defun +snippets/edit (template-uuid) From 363706744d72f11e3ac6de3a178ed56f2fd45480 Mon Sep 17 00:00:00 2001 From: theschmocker Date: Sat, 19 Aug 2023 21:46:32 -0500 Subject: [PATCH 003/523] feat(snippets): select mode for new snippet When there are extra yasnippet modes loaded in the current buffer, prompt user to select one for the new snippet. If a prefix arg is supplied when calling `+snippets/new`, prompt user to select any mode. --- modules/editor/snippets/autoload/snippets.el | 26 +++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/modules/editor/snippets/autoload/snippets.el b/modules/editor/snippets/autoload/snippets.el index 3566bab2c..b10101f87 100644 --- a/modules/editor/snippets/autoload/snippets.el +++ b/modules/editor/snippets/autoload/snippets.el @@ -66,6 +66,18 @@ Finds correctly active snippets from parent modes (based on Yas' logic)." (completion (apply #'completing-read prompt completion-uuid-alist args))) (alist-get completion completion-uuid-alist nil nil #'string=))) +(defun +snippets--snippet-mode-name-completing-read (&optional all-modes) + (if all-modes + (completing-read + "Select snippet mode: " + obarray + (lambda (sym) + (string-match-p "-mode\\'" (symbol-name sym)))) + (if (not (null yas--extra-modes)) + (completing-read "Select snippet mode: " + (cons major-mode yas--extra-modes)) + (symbol-name major-mode)))) + (defun +snippet--abort () (interactive) (set-buffer-modified-p nil) @@ -194,12 +206,14 @@ buggy behavior when is pressed in an empty field." (user-error "Cannot find template with UUID %S" template-uuid))) ;;;###autoload -(defun +snippets/new () - "Create a new snippet in `+snippets-dir'." - (interactive) - (let* ((default-directory (+snippet--ensure-dir (expand-file-name - (symbol-name major-mode) - +snippets-dir))) +(defun +snippets/new (&optional all-modes) + "Create a new snippet in `+snippets-dir'. + +If there are extra yasnippet modes active, or if ALL-MODES is non-nil, you will +be prompted for the mode for which to create the snippet." + (interactive "P") + (let* ((mode (+snippets--snippet-mode-name-completing-read all-modes)) + (default-directory (+snippet--ensure-dir (expand-file-name mode +snippets-dir))) (snippet-key (read-string "Enter a key for the snippet: ")) (snippet-file-name (expand-file-name snippet-key))) (when (+snippets--use-snippet-file-name-p snippet-file-name) From 406594b9af87bc0faae191161950887eaee65486 Mon Sep 17 00:00:00 2001 From: theschmocker Date: Sat, 19 Aug 2023 21:59:48 -0500 Subject: [PATCH 004/523] refactor(snippets): use cond instead of nested if --- modules/editor/snippets/autoload/snippets.el | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/modules/editor/snippets/autoload/snippets.el b/modules/editor/snippets/autoload/snippets.el index b10101f87..59c257dd6 100644 --- a/modules/editor/snippets/autoload/snippets.el +++ b/modules/editor/snippets/autoload/snippets.el @@ -67,16 +67,14 @@ Finds correctly active snippets from parent modes (based on Yas' logic)." (alist-get completion completion-uuid-alist nil nil #'string=))) (defun +snippets--snippet-mode-name-completing-read (&optional all-modes) - (if all-modes - (completing-read - "Select snippet mode: " - obarray - (lambda (sym) - (string-match-p "-mode\\'" (symbol-name sym)))) - (if (not (null yas--extra-modes)) - (completing-read "Select snippet mode: " - (cons major-mode yas--extra-modes)) - (symbol-name major-mode)))) + (cond (all-modes (completing-read + "Select snippet mode: " + obarray + (lambda (sym) + (string-match-p "-mode\\'" (symbol-name sym))))) + ((not (null yas--extra-modes)) (completing-read "Select snippet mode: " + (cons major-mode yas--extra-modes))) + (t (symbol-name major-mode)))) (defun +snippet--abort () (interactive) From 9c2d50d97e88587b419ad4881c1c62a6b71817ff Mon Sep 17 00:00:00 2001 From: Liam Hupfer Date: Sat, 2 Sep 2023 11:44:48 -0500 Subject: [PATCH 005/523] nit: fix docstrings --- modules/editor/file-templates/autoload.el | 6 +++--- modules/lang/org/autoload/org-capture.el | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/editor/file-templates/autoload.el b/modules/editor/file-templates/autoload.el index d11046bbe..7cbd0f343 100644 --- a/modules/editor/file-templates/autoload.el +++ b/modules/editor/file-templates/autoload.el @@ -15,9 +15,9 @@ PRED can either be a regexp string or a major mode symbol. PLIST may contain these properties: :when FUNCTION - Provides a secondary predicate. This function takes no arguments and is - executed from within the target buffer. If it returns nil, this rule will be - skipped over. + Provides a secondary predicate. This function takes the filename as an + argument and is executed from within the target buffer. If it returns nil, + this rule will be skipped over. :trigger STRING|FUNCTION If a string, this is the yasnippet trigger keyword used to trigger the target snippet. diff --git a/modules/lang/org/autoload/org-capture.el b/modules/lang/org/autoload/org-capture.el index ed67ac1d6..1430d2336 100644 --- a/modules/lang/org/autoload/org-capture.el +++ b/modules/lang/org/autoload/org-capture.el @@ -84,7 +84,7 @@ If it is an absolute path return `+org-capture-todo-file' verbatim." ;;;###autoload (defun +org-capture-notes-file () "Expand `+org-capture-notes-file' from `org-directory'. -If it is an absolute path return `+org-capture-todo-file' verbatim." +If it is an absolute path return `+org-capture-notes-file' verbatim." (expand-file-name +org-capture-notes-file org-directory)) (defun +org--capture-local-root (path) From b84403a9faccb81f485b8fa19b96571b84026469 Mon Sep 17 00:00:00 2001 From: Liam Hupfer Date: Sat, 2 Sep 2023 11:44:48 -0500 Subject: [PATCH 006/523] nit: remove superfluous package cookies --- modules/lang/javascript/config.el | 1 - modules/ui/popup/+hacks.el | 4 ---- 2 files changed, 5 deletions(-) diff --git a/modules/lang/javascript/config.el b/modules/lang/javascript/config.el index 212ba6dd0..2e4dbd0c8 100644 --- a/modules/lang/javascript/config.el +++ b/modules/lang/javascript/config.el @@ -299,7 +299,6 @@ to tide." "e" #'skewer-html-eval-tag)) -;;;###package npm-mode (use-package! npm-mode :hook ((js-mode typescript-mode) . npm-mode) :config diff --git a/modules/ui/popup/+hacks.el b/modules/ui/popup/+hacks.el index 8cc6a5fa6..2bcca7243 100644 --- a/modules/ui/popup/+hacks.el +++ b/modules/ui/popup/+hacks.el @@ -148,7 +148,6 @@ the command buffer." (advice-add #'evil-window-move-far-right :around #'+popup-save-a)) -;;;###package help-mode (after! help-mode (defun +popup--switch-from-popup (location) (let (origin enable-local-variables) @@ -254,7 +253,6 @@ the command buffer." (apply fn args))) -;;;###package org (after! org (defadvice! +popup--suppress-delete-other-windows-a (fn &rest args) "Org has a scorched-earth window management policy I'm not fond of. i.e. it @@ -344,7 +342,6 @@ Ugh, such an ugly hack." (+popup--init window nil)))) -;;;###package pdf-tools (after! pdf-tools (setq tablist-context-window-display-action '((+popup-display-buffer-stacked-side-window-fn) @@ -382,7 +379,6 @@ Ugh, such an ugly hack." (advice-add #'wgrep-finish-edit :after #'+popup-close-a)) -;;;###package which-key (after! which-key (when (eq which-key-popup-type 'side-window) (setq which-key-popup-type 'custom From 034da90693774346fea587e39e43788b6ed1903f Mon Sep 17 00:00:00 2001 From: Liam Hupfer Date: Sat, 2 Sep 2023 11:44:48 -0500 Subject: [PATCH 007/523] refactor(eshell): remove wait for esh-module --- modules/term/eshell/config.el | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/modules/term/eshell/config.el b/modules/term/eshell/config.el index 41ca9f523..4b629dcd6 100644 --- a/modules/term/eshell/config.el +++ b/modules/term/eshell/config.el @@ -109,9 +109,7 @@ You should use `set-eshell-alias!' to change this.") ;; or configure `+eshell-aliases' via elisp. (advice-add #'eshell-write-aliases-list :override #'ignore) - ;; REVIEW In Emacs 27 and newer, waiting for esh-module is unnecessary. - (after! esh-module - (add-to-list 'eshell-modules-list 'eshell-tramp)) + (add-to-list 'eshell-modules-list 'eshell-tramp) ;; Visual commands require a proper terminal. Eshell can't handle that, so ;; it delegates these commands to a term buffer. From b261afe59ddba705bd38c9cd0d3aedab904dd2be Mon Sep 17 00:00:00 2001 From: Liam Hupfer Date: Sat, 2 Sep 2023 11:44:48 -0500 Subject: [PATCH 008/523] fix(org): use file URI for org-re-reveal-root Ref: https://gitlab.com/oer/org-re-reveal/-/commit/9c7830e48f8a5e56928973d72d683e2b6b578a0f --- modules/lang/org/contrib/present.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/lang/org/contrib/present.el b/modules/lang/org/contrib/present.el index dd126b0d5..efed47aac 100644 --- a/modules/lang/org/contrib/present.el +++ b/modules/lang/org/contrib/present.el @@ -22,7 +22,7 @@ headings as titles, and you have more freedom to place them wherever you like.") (use-package! org-re-reveal :after ox :config - (setq org-re-reveal-root (expand-file-name "../../" (locate-library "dist/reveal.js" t)) + (setq org-re-reveal-root (concat "file://" (expand-file-name "../../" (locate-library "dist/reveal.js" t))) org-re-reveal-revealjs-version "4")) From 3d82e3d46ded0365463273bcb80487b689ca1016 Mon Sep 17 00:00:00 2001 From: Liam Hupfer Date: Sat, 2 Sep 2023 11:44:48 -0500 Subject: [PATCH 009/523] fix(vertico): gate which-key integration This prevents an error for users disabling which-key. --- modules/completion/vertico/config.el | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/modules/completion/vertico/config.el b/modules/completion/vertico/config.el index c797303e2..1aa68732d 100644 --- a/modules/completion/vertico/config.el +++ b/modules/completion/vertico/config.el @@ -253,14 +253,16 @@ orderless." (set-popup-rule! "^\\*Embark Export:" :size 0.35 :ttl 0 :quit nil) - (defadvice! +vertico--embark-which-key-prompt-a (fn &rest args) - "Hide the which-key indicator immediately when using the completing-read prompter." - :around #'embark-completing-read-prompter - (which-key--hide-popup-ignore-command) - (let ((embark-indicators - (remq #'embark-which-key-indicator embark-indicators))) - (apply fn args))) - (cl-nsubstitute #'+vertico-embark-which-key-indicator #'embark-mixed-indicator embark-indicators) + (after! which-key + (defadvice! +vertico--embark-which-key-prompt-a (fn &rest args) + "Hide the which-key indicator immediately when using the completing-read prompter." + :around #'embark-completing-read-prompter + (which-key--hide-popup-ignore-command) + (let ((embark-indicators + (remq #'embark-which-key-indicator embark-indicators))) + (apply fn args))) + (cl-nsubstitute #'+vertico-embark-which-key-indicator #'embark-mixed-indicator embark-indicators)) + ;; add the package! target finder before the file target finder, ;; so we don't get a false positive match. (let ((pos (or (cl-position From d5f86f179f0a0900d355c1f3c3e03e7004bda7e4 Mon Sep 17 00:00:00 2001 From: Liam Hupfer Date: Sat, 2 Sep 2023 11:44:48 -0500 Subject: [PATCH 010/523] tweak(default): add multi-buffer imenu commands There is no analogous counsel command. --- modules/config/default/+emacs-bindings.el | 3 +++ modules/config/default/+evil-bindings.el | 3 +++ 2 files changed, 6 insertions(+) diff --git a/modules/config/default/+emacs-bindings.el b/modules/config/default/+emacs-bindings.el index b154a0da0..8308daa98 100644 --- a/modules/config/default/+emacs-bindings.el +++ b/modules/config/default/+emacs-bindings.el @@ -126,6 +126,9 @@ :desc "Search .emacs.d" "e" #'+default/search-emacsd :desc "Locate file" "f" #'+lookup/file :desc "Jump to symbol" "i" #'imenu + :desc "Jump to symbol in open buffers" "I" + (cond ((modulep! :completion vertico) #'consult-imenu-multi) + ((modulep! :completion helm) #'helm-imenu-in-all-buffers)) :desc "Jump to visible link" "l" #'link-hint-open-link :desc "Jump to link" "L" #'ffap-menu :desc "Jump to bookmark" "m" #'bookmark-jump diff --git a/modules/config/default/+evil-bindings.el b/modules/config/default/+evil-bindings.el index 9d3d499b5..e8e03a6ba 100644 --- a/modules/config/default/+evil-bindings.el +++ b/modules/config/default/+evil-bindings.el @@ -736,6 +736,9 @@ :desc "Search .emacs.d" "e" #'+default/search-emacsd :desc "Locate file" "f" #'locate :desc "Jump to symbol" "i" #'imenu + :desc "Jump to symbol in open buffers" "I" + (cond ((modulep! :completion vertico) #'consult-imenu-multi) + ((modulep! :completion helm) #'helm-imenu-in-all-buffers)) :desc "Jump to visible link" "l" #'link-hint-open-link :desc "Jump to link" "L" #'ffap-menu :desc "Jump list" "j" #'evil-show-jumps From 088bd387f6c901273ad166b67a14bf1745026c4f Mon Sep 17 00:00:00 2001 From: Liam Hupfer Date: Sat, 2 Sep 2023 11:44:48 -0500 Subject: [PATCH 011/523] tweak(lib): add alpha-background support to opacity setter This is preferred when available because it does not affect foreground content like text and images. Ref: https://git.savannah.gnu.org/cgit/emacs.git/tree/etc/NEWS?h=emacs-29.1#n801 --- lisp/lib/ui.el | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lisp/lib/ui.el b/lisp/lib/ui.el index 8d255255d..ea553c1d1 100644 --- a/lisp/lib/ui.el +++ b/lisp/lib/ui.el @@ -177,9 +177,13 @@ Use `winner-undo' to undo this. Alternatively, use OPACITY is an integer between 0 to 100, inclusive." (interactive (list (read-number "Opacity (0-100): " - (or (frame-parameter nil 'alpha) + (or (frame-parameter + nil (if (> emacs-major-version 28) + 'alpha-background 'alpha)) 100)))) - (set-frame-parameter nil 'alpha opacity)) + (set-frame-parameter nil (if (> emacs-major-version 28) + 'alpha-background 'alpha) + opacity)) (defvar doom--narrowed-base-buffer nil) ;;;###autoload From 62074bfcbb7f332ca8aa123f1a4828a5e3ba98e7 Mon Sep 17 00:00:00 2001 From: Liam Hupfer Date: Sat, 2 Sep 2023 11:44:48 -0500 Subject: [PATCH 012/523] tweak(emoji): add emoji-search binding for Emacs 29 The emojify command takes precedence in case users want ASCII/GitHub string completion/insertion. Ref: https://git.savannah.gnu.org/cgit/emacs.git/tree/etc/NEWS?h=emacs-29.1#n884 --- modules/config/default/+emacs-bindings.el | 5 ++++- modules/config/default/+evil-bindings.el | 5 ++++- modules/ui/emoji/README.org | 11 ++++++++--- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/modules/config/default/+emacs-bindings.el b/modules/config/default/+emacs-bindings.el index 8308daa98..7aa4dfc41 100644 --- a/modules/config/default/+emacs-bindings.el +++ b/modules/config/default/+emacs-bindings.el @@ -148,7 +148,10 @@ ;;; i --- insert (:prefix-map ("i" . "insert") - :desc "Emoji" "e" #'emojify-insert-emoji + (:when (> emacs-major-version 28) + :desc "Emoji" "e" #'emoji-search) + (:when (modulep! :ui emoji) + :desc "Emoji" "e" #'emojify-insert-emoji) :desc "Current file name" "f" #'+default/insert-file-path :desc "Current file path" "F" (cmd!! #'+default/insert-file-path t) :desc "Snippet" "s" #'yas-insert-snippet diff --git a/modules/config/default/+evil-bindings.el b/modules/config/default/+evil-bindings.el index e8e03a6ba..f6d1c9225 100644 --- a/modules/config/default/+evil-bindings.el +++ b/modules/config/default/+evil-bindings.el @@ -496,7 +496,10 @@ ;;; i --- insert (:prefix-map ("i" . "insert") - :desc "Emoji" "e" #'emojify-insert-emoji + (:when (> emacs-major-version 28) + :desc "Emoji" "e" #'emoji-search) + (:when (modulep! :ui emoji) + :desc "Emoji" "e" #'emojify-insert-emoji) :desc "Current file name" "f" #'+default/insert-file-path :desc "Current file path" "F" (cmd!! #'+default/insert-file-path t) :desc "Evil ex path" "p" (cmd! (evil-ex "R!echo ")) diff --git a/modules/ui/emoji/README.org b/modules/ui/emoji/README.org index f9ac07af7..a1c065a63 100644 --- a/modules/ui/emoji/README.org +++ b/modules/ui/emoji/README.org @@ -4,9 +4,14 @@ #+since: 21.12.0 * Description :unfold: -This module gives Emacs the ability to display and insert emojis (ASCII, Github -style, or unicode styles), as well as convert certain text patterns (e.g. -=:smile:=) into emojis. +This module can redisplay ASCII/GitHub emoticon strings as corresponding Unicode +emoji. In addition, a completion command is provided to insert these strings as +well as the typical Unicode representations. + +Note: Emacs 29 provides [[https://git.savannah.gnu.org/cgit/emacs.git/tree/etc/NEWS?h=emacs-29.1#n884][native support]] for inserting Unicode emojis. This module +only remains useful if you want ASCII/GitHub emoticon string +insertion/conversion or need PNG/ASCII emoji rendering on a system with limited +font configuration. ** Maintainers *This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]] From 20393c707488c47df5bd755ec9032bd098d29b1f Mon Sep 17 00:00:00 2001 From: StrawberryTea Date: Mon, 21 Aug 2023 23:20:29 -0400 Subject: [PATCH 013/523] feat(default): add use consult-man if available `consult-man` is a better version of `man` that computes its candidates asynchronously and allows the user to pass arguments directly to the man command. It's basically like `consult-grep` but for `man`. --- modules/config/default/autoload/default.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/config/default/autoload/default.el b/modules/config/default/autoload/default.el index d68698049..d49ea8643 100644 --- a/modules/config/default/autoload/default.el +++ b/modules/config/default/autoload/default.el @@ -25,7 +25,8 @@ generate `completing-read' candidates." (interactive) (call-interactively (if (and (not IS-MAC) (executable-find "man")) - #'man + (or (command-remapping #'man) + #'man) #'woman))) ;;;###autoload From 3cafa0223e5327e5b75e93fd6b567d404cbaf3c3 Mon Sep 17 00:00:00 2001 From: StrawberryTea Date: Wed, 6 Sep 2023 07:27:35 -0500 Subject: [PATCH 014/523] fix(org): check org-fold-outline in invisible property Fix: #7206 --- lisp/lib/help.el | 3 ++- modules/lang/org/autoload/org.el | 9 +++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/lisp/lib/help.el b/lisp/lib/help.el index cd6c8e269..77e5fa07b 100644 --- a/lisp/lib/help.el +++ b/lisp/lib/help.el @@ -168,7 +168,8 @@ selection of all minor-modes, active or not." (location (goto-char location))) (ignore-errors - (when (outline-invisible-p) + (when (memq (get-char-property (point) 'invisible) + '(outline org-fold-outline)) (save-excursion (outline-previous-visible-heading 1) (org-show-subtree)))))) diff --git a/modules/lang/org/autoload/org.el b/modules/lang/org/autoload/org.el index 6cd51bd45..6ca2c2211 100644 --- a/modules/lang/org/autoload/org.el +++ b/modules/lang/org/autoload/org.el @@ -371,7 +371,9 @@ see how ARG affects this command." (goto-char (point-min)) (while (not (eobp)) (org-next-visible-heading 1) - (when (outline-invisible-p (line-end-position)) + (when (memq (get-char-property (line-end-position) + 'invisible) + '(outline org-fold-outline)) (let ((level (org-outline-level))) (when (> level max) (setq max level)))))) @@ -489,7 +491,10 @@ All my (performant) foldings needs are met between this and `org-show-subtree' (or org-cycle-open-archived-trees (not (member org-archive-tag (org-get-tags)))) (or (not arg) - (setq invisible-p (outline-invisible-p (line-end-position))))) + (setq invisible-p + (memq (get-char-property (line-end-position) + 'invisible) + '(outline org-fold-outline))))) (unless invisible-p (setq org-cycle-subtree-status 'subtree)) (org-cycle-internal-local) From 0e8f458d99955f83fccd14ee405fcf701047eeca Mon Sep 17 00:00:00 2001 From: Amos Bird Date: Wed, 6 Sep 2023 20:33:27 +0800 Subject: [PATCH 015/523] fix(popup): add wdired hacks Previously, wdired actions will not close popup windows, which is cumbersome to use. We've already added similar hacks to dired. Now it's time to add similar hacks to wdired. --- modules/ui/popup/+hacks.el | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules/ui/popup/+hacks.el b/modules/ui/popup/+hacks.el index 2bcca7243..a7010ad7e 100644 --- a/modules/ui/popup/+hacks.el +++ b/modules/ui/popup/+hacks.el @@ -372,6 +372,12 @@ Ugh, such an ugly hack." (letf! ((#'switch-to-buffer-other-window #'pop-to-buffer)) (apply fn args)))) +;;;###package wdired +(progn + ;; close the popup after you're done with a wdired buffer + (advice-add #'wdired-abort-changes :after #'+popup-close-a) + (advice-add #'wdired-finish-edit :after #'+popup-close-a)) + ;;;###package wgrep (progn ;; close the popup after you're done with a wgrep buffer From f4e74e17ade41e8cb2daa48b8bec6623c58a72c3 Mon Sep 17 00:00:00 2001 From: mosquito-magnet <24659697+mosquito-magnet@users.noreply.github.com> Date: Wed, 6 Sep 2023 14:40:07 +0200 Subject: [PATCH 016/523] fix(lib): doom/help-packages: handle missing homepage When a package is added via straight local-repo, no homepage can be determined. Prevent doom--help-insert-button throwing an error in this case. --- lisp/lib/help.el | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lisp/lib/help.el b/lisp/lib/help.el index 77e5fa07b..777e337bf 100644 --- a/lisp/lib/help.el +++ b/lisp/lib/help.el @@ -576,7 +576,10 @@ If prefix arg is present, refresh the cache." (pp-to-string recipe)))) (package--print-help-section "Homepage") - (doom--help-insert-button (doom-package-homepage package))) + (let ((homepage (doom-package-homepage package))) + (if homepage + (doom--help-insert-button homepage) + (insert "n/a")))) (`elpa (insert "[M]ELPA ") (doom--help-insert-button (doom-package-homepage package)) From a23e021032121bd825197b37b7879daf8bf68189 Mon Sep 17 00:00:00 2001 From: Jeetaditya Chatterjee Date: Tue, 5 Sep 2023 22:08:59 +0100 Subject: [PATCH 017/523] tweak(irc): check circe-notifications is bound As some people may disable this package it can cause them to not be able to quit there irc session --- modules/app/irc/autoload/irc.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/app/irc/autoload/irc.el b/modules/app/irc/autoload/irc.el index d936b868e..16bca925b 100644 --- a/modules/app/irc/autoload/irc.el +++ b/modules/app/irc/autoload/irc.el @@ -55,7 +55,8 @@ workspace for it." circe-server-killed-confirmation) (when +irc--defer-timer (cancel-timer +irc--defer-timer)) - (disable-circe-notifications) + (when (fboundp #'disable-circe-notifications) + (disable-circe-notifications)) (mapc #'kill-buffer (doom-buffers-in-mode 'circe-mode (buffer-list) t)) (when (modulep! :ui workspaces) (when (equal (+workspace-current-name) +irc--workspace-name) From 42d5fd83504f8aa80f3248036006fbcd49222943 Mon Sep 17 00:00:00 2001 From: Jeetaditya Chatterjee Date: Tue, 5 Sep 2023 22:11:40 +0100 Subject: [PATCH 018/523] docs(irc): add circe notification warning --- modules/app/irc/doctor.el | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 modules/app/irc/doctor.el diff --git a/modules/app/irc/doctor.el b/modules/app/irc/doctor.el new file mode 100644 index 000000000..e2474f4e3 --- /dev/null +++ b/modules/app/irc/doctor.el @@ -0,0 +1,5 @@ +;; -*- lexical-binding: t; no-byte-compile: t; -*- +;;; app/irc/doctor.el + +(when (memq 'circe-notifications doom-disabled-packages) + (warn! "Circe Notifications has been disabled, You will not receive desktop notifications from IRC channels.")) From 5be4517bca5a59ad15f5b55f63ac43b50d5440f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Thu, 7 Sep 2023 19:18:12 +0100 Subject: [PATCH 019/523] refactor(vertico): consult-dir: drop dependence on docker-tramp Removes the dependence on docker-tramp, can later be cleaned up with `tramp-container--completion-function` when we drop support for <29. --- modules/completion/vertico/config.el | 50 +++++++++++++++++++--------- 1 file changed, 35 insertions(+), 15 deletions(-) diff --git a/modules/completion/vertico/config.el b/modules/completion/vertico/config.el index 1aa68732d..1d64813d7 100644 --- a/modules/completion/vertico/config.el +++ b/modules/completion/vertico/config.el @@ -10,6 +10,12 @@ overrides `completion-styles' during company completion sessions.") (defvar +vertico-consult-fd-args nil "Shell command and arguments the vertico module uses for fd.") +(defvar +vertico-consult-dir-container-executable "docker" + "Command to call for listing container hosts.") + +(defvar +vertico-consult-dir-container-args nil + "Command to call for listing container hosts.") + ;; ;;; Packages @@ -197,22 +203,35 @@ orderless." ("C-x C-j" . consult-dir-jump-file)) :config (when (modulep! :tools docker) + ;; TODO Replace with `tramp-container--completion-function' when we drop support for <29 + (defun +vertico--consult-dir-container-hosts (host) + "Get a list of hosts from HOST." + (cl-loop for line in (cdr + (ignore-errors + (apply #'process-lines +vertico-consult-dir-container-executable + (append +vertico-consult-dir-container-args (list "ps"))))) + for cand = (split-string line "[[:space:]]+" t) + collect (let ((user (unless (string-empty-p (car cand)) + (concat (car cand) "@"))) + (hostname (car (last cand)))) + (format "/%s:%s%s:/" host user hostname)))) + + (defun +vertico--consult-dir-podman-hosts () + (let ((+vertico-consult-dir-container-executable "podman")) + (+vertico--consult-dir-container-hosts "podman"))) + (defun +vertico--consult-dir-docker-hosts () - "Get a list of hosts from docker." - (when (if (>= emacs-major-version 29) - (require 'tramp-container nil t) - (setq-local docker-tramp-use-names t) - (require 'docker-tramp nil t)) - (let ((hosts) - (docker-query-fn #'docker-tramp--parse-running-containers)) - (when (>= emacs-major-version 29) - (setq docker-query-fn #'tramp-docker--completion-function)) - (dolist (cand (funcall docker-query-fn)) - (let ((user (unless (string-empty-p (car cand)) - (concat (car cand) "@"))) - (host (car (cdr cand)))) - (push (concat "/docker:" user host ":/") hosts))) - hosts))) + (let ((+vertico-consult-dir-container-executable "docker")) + (+vertico--consult-dir-container-hosts "docker"))) + + (defvar +vertico--consult-dir-source-tramp-podman + `(:name "Podman" + :narrow ?p + :category file + :face consult-file + :history file-name-history + :items ,#'+vertico--consult-dir-podman-hosts) + "Podman candiadate source for `consult-dir'.") (defvar +vertico--consult-dir-source-tramp-docker `(:name "Docker" @@ -223,6 +242,7 @@ orderless." :items ,#'+vertico--consult-dir-docker-hosts) "Docker candiadate source for `consult-dir'.") + (add-to-list 'consult-dir-sources '+vertico--consult-dir-source-tramp-podman t) (add-to-list 'consult-dir-sources '+vertico--consult-dir-source-tramp-docker t)) (add-to-list 'consult-dir-sources 'consult-dir--source-tramp-ssh t) From 43467ba4b915dbaa1b7bc8d0b84ee6a2809ea154 Mon Sep 17 00:00:00 2001 From: liuzhishan Date: Fri, 8 Sep 2023 02:19:44 +0800 Subject: [PATCH 020/523] fix(chinese): void-function pyim-cregexp-ivy error --- modules/input/chinese/config.el | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/input/chinese/config.el b/modules/input/chinese/config.el index f256fb66c..a60a38797 100644 --- a/modules/input/chinese/config.el +++ b/modules/input/chinese/config.el @@ -24,6 +24,7 @@ #'evil-pinyin--build-regexp-string #'pyim-cregexp-build))) ((modulep! :completion ivy) + (autoload 'pyim-cregexp-ivy "pyim-cregexp-utils") (setq ivy-re-builders-alist '((t . pyim-cregexp-ivy)))))) From d94fce553b5c840138d9afa413cc7021aa1c7934 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 22 Aug 2023 02:35:09 +0200 Subject: [PATCH 021/523] dev(ci): replace add-to-project workflow Ref: doomemacs/ci@f2a2ad43f1f9 --- .github/ISSUE_TEMPLATE/bug_report.yml | 1 + .github/workflows/add-to-project.yml | 8 -------- 2 files changed, 1 insertion(+), 8 deletions(-) delete mode 100644 .github/workflows/add-to-project.yml diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index f31efa7e5..1fb244256 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -2,6 +2,7 @@ name: 📝 Bug Report description: Report something that isn't working as intended labels: ["is:bug", "needs-triage"] +projects: ["doomemacs/2"] body: - type: markdown attributes: diff --git a/.github/workflows/add-to-project.yml b/.github/workflows/add-to-project.yml deleted file mode 100644 index f838bf64e..000000000 --- a/.github/workflows/add-to-project.yml +++ /dev/null @@ -1,8 +0,0 @@ -name: Add issues to project -on: - issues: - types: [opened] -jobs: - add-to-project: - uses: doomemacs/ci/.github/workflows/add-to-project.yml@legacy - secrets: inherit From f811e4fa4965f0cf1cc75b5bc07ca3e55dc22471 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 22 Aug 2023 02:39:11 +0200 Subject: [PATCH 022/523] dev: update supported Emacs version in issue template --- .github/ISSUE_TEMPLATE/bug_report.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 1fb244256..44154a9bb 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -33,9 +33,8 @@ body: Doom. required: true - label: > - The issue can be reproduced on a stable release of Emacs, such as 27 - or 28. *(Doom does not support development builds like 29+ or any - version ending in .50 or .9x)* + The issue can be reproduced on a stable release of Emacs, such as 27, + 28, or 29. *(Unstable versions end in .50, .60, or .9x)* required: true - type: markdown attributes: From 9cc9351cae8096115d72ff17b354d8b5cdf50957 Mon Sep 17 00:00:00 2001 From: Lorenzo Ravaglia Date: Thu, 7 Sep 2023 20:01:25 +0200 Subject: [PATCH 023/523] feat(file-templates): add c-mode/__main.c Ref: #7387 --- .../editor/file-templates/templates/c-mode/__main.c | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 modules/editor/file-templates/templates/c-mode/__main.c diff --git a/modules/editor/file-templates/templates/c-mode/__main.c b/modules/editor/file-templates/templates/c-mode/__main.c new file mode 100644 index 000000000..eb80db0f4 --- /dev/null +++ b/modules/editor/file-templates/templates/c-mode/__main.c @@ -0,0 +1,11 @@ +# -*- mode: snippet -*- +# group: file templates +# contributor: Lorenzo Ravaglia +# -- +#include + +int main(int argc, char *argv[]) { + $0 + + return 0; +} \ No newline at end of file From 25602409b625635c519b4249aea83661c777467a Mon Sep 17 00:00:00 2001 From: Lorenzo Ravaglia Date: Thu, 7 Sep 2023 20:07:35 +0200 Subject: [PATCH 024/523] refactor(file-templates): c++-mode/__main.cpp: modernize - Drops `using namespace std`: a known anti-pattern which imports a massive namespace into the global namespace. See https://stackoverflow.com/questions/1452721/why-is-using-namespace-std-considered-bad-practice - Modernizes/generalizes `main`'s signature with a trailing return type (C++11) Ref: https://stackoverflow.com/questions/1452721/why-is-using-namespace-std-considered-bad-practice Close: #7387 --- modules/editor/file-templates/templates/c++-mode/__main.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/modules/editor/file-templates/templates/c++-mode/__main.cpp b/modules/editor/file-templates/templates/c++-mode/__main.cpp index b4a1557a8..b3554503f 100644 --- a/modules/editor/file-templates/templates/c++-mode/__main.cpp +++ b/modules/editor/file-templates/templates/c++-mode/__main.cpp @@ -4,9 +4,7 @@ # -- #include -using namespace std; - -int main(int argc, char *argv[]) { +auto main(int argc, char *argv[]) -> int { $0 return 0; From 3a01faed49f12c491d9bf499f0532e9660caafc6 Mon Sep 17 00:00:00 2001 From: Colin Woodbury Date: Fri, 8 Sep 2023 15:33:05 +0900 Subject: [PATCH 025/523] feat(fortran): `SPC m f o` opens project config --- modules/lang/fortran/autoload.el | 12 +++++++++++- modules/lang/fortran/config.el | 3 ++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/modules/lang/fortran/autoload.el b/modules/lang/fortran/autoload.el index 8bf4443a6..f3d4d4488 100644 --- a/modules/lang/fortran/autoload.el +++ b/modules/lang/fortran/autoload.el @@ -63,7 +63,7 @@ or gfortran, depending on what feature flags are set." (_ ""))) ;;;###autoload -(defun +fortran-compilation-buffer-name-fn (mode) +(defun +fortran-compilation-buffer-name-fn (_mode) "The name of the buffer produced by `compile'." "*fortran-compilation*") @@ -115,3 +115,13 @@ or gfortran, depending on what feature flags are set." "Test the current project using fpm." (interactive) (compile "fpm test")) + +;;;###autoload +(defun +fortran/fpm-open-project-toml (project-root) + "Open fpm.toml at PROJECT-ROOT (defaults to the open project)." + (interactive (list (doom-project-root))) + (let ((file (file-name-concat project-root "fpm.toml"))) + (cond ((file-exists-p file) (find-file file)) + ((null project-root) (user-error "Not in a project")) + (t (user-error "No fpm.toml found at project root (%s)" + (abbreviate-file-name project-root)))))) diff --git a/modules/lang/fortran/config.el b/modules/lang/fortran/config.el index 310ee4b10..906808e5e 100644 --- a/modules/lang/fortran/config.el +++ b/modules/lang/fortran/config.el @@ -27,7 +27,8 @@ (:prefix ("f" . "fpm") :desc "fpm build" "b" #'+fortran/fpm-build :desc "fpm run" "r" #'+fortran/fpm-run - :desc "fpm test" "t" #'+fortran/fpm-test) + :desc "fpm test" "t" #'+fortran/fpm-test + :desc "Open project config" "o" #'+fortran/fpm-open-project-toml) (:prefix ("g" . "gfortran") :desc "compile" "c" #'+fortran/gfortran-compile :desc "run" "r" #'+fortran/gfortran-run) From ca9f84d664b5c89ed3e4214ce8d246e796244d4e Mon Sep 17 00:00:00 2001 From: Amos Bird Date: Sun, 10 Sep 2023 05:59:06 +0800 Subject: [PATCH 026/523] fix(evil): add evil-embrace support for c++-ts-mode In emacs-29, native tree-sitter adds new major modes for the C++ language, named c++-ts-mode. As a result, hooks in c++-mode will not run. This commit adds the angle bracket fix hook for c++-ts-mode. --- modules/editor/evil/config.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/editor/evil/config.el b/modules/editor/evil/config.el index 1197653b0..3e56729ff 100644 --- a/modules/editor/evil/config.el +++ b/modules/editor/evil/config.el @@ -247,7 +247,7 @@ directives. By default, this only recognizes C directives.") :hook (emacs-lisp-mode . embrace-emacs-lisp-mode-hook) :hook ((lisp-mode emacs-lisp-mode clojure-mode racket-mode hy-mode) . +evil-embrace-lisp-mode-hook-h) - :hook ((c++-mode rustic-mode csharp-mode java-mode swift-mode typescript-mode) + :hook ((c++-mode c++-ts-mode rustic-mode csharp-mode java-mode swift-mode typescript-mode) . +evil-embrace-angle-bracket-modes-hook-h) :hook (scala-mode . +evil-embrace-scala-mode-hook-h) :init From bef076b65597ff4658b17369804fcb5508de527f Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 8 Sep 2023 23:49:49 +0200 Subject: [PATCH 027/523] bump: :editor evil emacs-evil/evil@9eb69b7f5b3c -> emacs-evil/evil@5fc16776c5eb emacs-evil/evil-collection@1ad283f5b7ac -> emacs-evil/evil-collection@8be4b75c86bc - Fixes breaking change due to emacs-mirror/emacs@802a54ad620 (see #7397). Ref: debbugs.gnu.org/cgi/bugreport.cgi?bug=62248 Close: #7397 Co-authored-by: prashantvithani --- modules/editor/evil/init.el | 9 +++++++-- modules/editor/evil/packages.el | 4 ++-- modules/ui/doom/packages.el | 2 +- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/modules/editor/evil/init.el b/modules/editor/evil/init.el index 6bfa97df6..0c3cc57b6 100644 --- a/modules/editor/evil/init.el +++ b/modules/editor/evil/init.el @@ -123,6 +123,7 @@ variable for an explanation of the defaults (in comments). See dired dired-sidebar disk-usage + distel doc-view docker ebib @@ -131,9 +132,11 @@ variable for an explanation of the defaults (in comments). See edebug ediff eglot + elpaca + ement explain-pause-mode - elfeed eldoc + elfeed elisp-mode elisp-refs elisp-slime-nav @@ -167,7 +170,7 @@ variable for an explanation of the defaults (in comments). See hg-histedit hungry-delete ibuffer - image + (image image-mode) image-dired image+ imenu @@ -179,6 +182,7 @@ variable for an explanation of the defaults (in comments). See js2-mode leetcode lispy + lms log-edit log-view lsp-ui-imenu @@ -238,6 +242,7 @@ variable for an explanation of the defaults (in comments). See snake so-long speedbar + tab-bar tablist tar-mode telega diff --git a/modules/editor/evil/packages.el b/modules/editor/evil/packages.el index 7108dc868..20c2c832e 100644 --- a/modules/editor/evil/packages.el +++ b/modules/editor/evil/packages.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; -*- ;;; editor/evil/packages.el -(package! evil :pin "9eb69b7f5b3c72cfc66f69b3242e935015780654") +(package! evil :pin "5fc16776c5eb00c956ec7e9d83facb6a38dd868d") (package! evil-args :pin "2671071a4a57eaee7cc8c27b9e4b6fc60fd2ccd3") (package! evil-easymotion :pin "f96c2ed38ddc07908db7c3c11bcd6285a3e8c2e9") (package! evil-embrace :pin "3081d37811b6a3dfaaf01d578c7ab7a746c6064d") @@ -35,4 +35,4 @@ (package! neotree) (autoload 'neotree-make-executor "neotree" nil nil 'macro)) - (package! evil-collection :pin "1ad283f5b7ac9320ac3d41bccfc71a52f714563a")) + (package! evil-collection :pin "8be4b75c86bc637dbcd14be7522d6da06df1747e")) diff --git a/modules/ui/doom/packages.el b/modules/ui/doom/packages.el index 22b2103ac..03455fa5e 100644 --- a/modules/ui/doom/packages.el +++ b/modules/ui/doom/packages.el @@ -1,5 +1,5 @@ ;; -*- no-byte-compile: t; -*- ;;; ui/doom/packages.el -(package! doom-themes :pin "e4f0b006a516a35f53df2dce2ec116876c5cd7f9") +(package! doom-themes :pin "d1d6c2953ff39352a9312e87d5e460b60a118fc4") (package! solaire-mode :pin "8af65fbdc50b25ed3214da949b8a484527c7cc14") From 56d396c5f6730f971deeb3d9cab5c3a1acb9ec9d Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 9 Sep 2023 00:25:48 +0200 Subject: [PATCH 028/523] release(modules): 23.09.0-dev Ref: 2b39e4136850 --- lisp/doom.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/doom.el b/lisp/doom.el index ba4467a47..a342a0d8c 100644 --- a/lisp/doom.el +++ b/lisp/doom.el @@ -168,7 +168,7 @@ "Current version of Doom Emacs core.") ;; DEPRECATED: Remove these when the modules are moved out of core. -(defconst doom-modules-version "23.08.0-pre" +(defconst doom-modules-version "23.09.0-pre" "Current version of Doom Emacs.") (defvar doom-init-time nil From d8e16db60579f1fd9a8a1f9ce6a7cc6d6e964618 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 10 Sep 2023 05:11:43 +0200 Subject: [PATCH 029/523] fix(emacs-lisp): Doom API demos in help(ful) docs Due to cd26975, `with-file-contents!` leaves the cursor at point-min, not point-max, so this `re-search-backward` call would never find its mark. Now, the elisp demos for Doom functions/macros should show up again in helpful-*/describe-* buffers. Amend: cd269753cff7 --- modules/lang/emacs-lisp/autoload.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/lang/emacs-lisp/autoload.el b/modules/lang/emacs-lisp/autoload.el index 9e1aadbe3..5eb7ee499 100644 --- a/modules/lang/emacs-lisp/autoload.el +++ b/modules/lang/emacs-lisp/autoload.el @@ -392,7 +392,7 @@ Intended as :around advice for `elisp-demos--search'." (or (funcall fn symbol) (with-file-contents! (doom-path doom-docs-dir "examples.org") (save-excursion - (when (re-search-backward + (when (re-search-forward (format "^\\*+[ \t]+\\(?:TODO \\)?%s$" (regexp-quote (symbol-name symbol))) nil t) From c1b0326ce72b7df185596daf5ba8f0ac836b42b6 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 10 Sep 2023 20:22:12 +0200 Subject: [PATCH 030/523] bump: :core Fanael/rainbow-delimiters@a32b39bdfe6c -> Fanael/rainbow-delimiters@f40ece58df8b Wilfred/helpful@c57ff0d284b5 -> Wilfred/helpful@66ba816b26b6 domtronn/all-the-icons.el@f491f39c2133 -> domtronn/all-the-icons.el@be9d5dcda9c8 emacs-compat/compat@75d0b8527f51 -> emacs-compat/compat@ecf53005abf6 emacs-straight/project@6c41ad68edf1 -> emacs-straight/project@ce140cdb7013 joddie/pcre2el@b941ed8a9629 -> joddie/pcre2el@018531ba0cf8 jscheid/dtrt-indent@be07f4979a5b -> jscheid/dtrt-indent@e0630f74f915 justbur/emacs-which-key@df6b0cb84498 -> justbur/emacs-which-key@4d20bc852545 --- lisp/packages.el | 16 ++++++++-------- modules/lang/beancount/config.el | 8 -------- 2 files changed, 8 insertions(+), 16 deletions(-) diff --git a/lisp/packages.el b/lisp/packages.el index dbceeb029..8aab405c3 100644 --- a/lisp/packages.el +++ b/lisp/packages.el @@ -20,17 +20,17 @@ :pin "5e84c4e2cd8ca79560477782ee4c9e5187725def") ;; doom-ui.el -(package! all-the-icons :pin "f491f39c21336d354e85bdb4cca281e0a0c2f880") +(package! all-the-icons :pin "be9d5dcda9c892e8ca1535e288620eec075eb0be") (package! hide-mode-line :pin "bc5d293576c5e08c29e694078b96a5ed85631942") (package! highlight-numbers :pin "8b4744c7f46c72b1d3d599d4fb75ef8183dee307") -(package! rainbow-delimiters :pin "a32b39bdfe6c61c322c37226d66e1b6d4f107ed0") +(package! rainbow-delimiters :pin "f40ece58df8b2f0fb6c8576b527755a552a5e763") (package! restart-emacs :pin "1607da2bc657fe05ae01f7fdf26f716eafead02c") ;; doom-editor.el (package! better-jumper :pin "47622213783ece37d5337dc28d33b530540fc319") -(package! dtrt-indent :pin "be07f4979a5b402a0cf5311c86c30b89ca0e1ee4") -(package! helpful :pin "c57ff0d284b50ff430fe1f13fd48deaa0d1a910e") -(package! pcre2el :pin "b941ed8a96299868171fac625ecffec77de3e986") +(package! dtrt-indent :pin "e0630f74f915c6cded05f76f66d66e540fcc37c3") +(package! helpful :pin "66ba816b26b68dd7df08e86f8b96eaae16c8d6a2") +(package! pcre2el :pin "018531ba0cf8e2b28d1108136a0e031b6a45f1c1") (package! smartparens :pin "79a338db115f441cd47bb91e6f75816c5e78a772") (package! ws-butler ;; Use my fork of ws-butler, which has a few choice improvements and @@ -40,12 +40,12 @@ ;; doom-projects.el (package! projectile :pin "971cd5c4f25ff1f84ab7e8337ffc7f89f67a1b52") -(package! project :pin "6c41ad68edf1f44110abe478d17c36f57a517e66") +(package! project :pin "ce140cdb70138a4938c999d4606a52dbeced4676") ;; doom-keybinds.el (package! general :pin "833dea2c4a60e06fcd552b653dfc8960935c9fb4") -(package! which-key :pin "df6b0cb8449812e7fb200bc852107fa7eb708496") +(package! which-key :pin "4d20bc852545a2e602f59084a630f888542052b1") (package! compat :recipe (:host github :repo "emacs-compat/compat") - :pin "75d0b8527f51aae42d23eee4aeb263e19055747e") + :pin "ecf53005abf6f0325d14e0e024222e22e982c8dd") diff --git a/modules/lang/beancount/config.el b/modules/lang/beancount/config.el index 19261c366..ec43f7380 100644 --- a/modules/lang/beancount/config.el +++ b/modules/lang/beancount/config.el @@ -3,14 +3,6 @@ (use-package! beancount :mode ("\\.beancount\\'" . beancount-mode) :hook (beancount-mode . outline-minor-mode) - :init - ;; REVIEW Remove once domtronn/all-the-icons.el#272 is merged - (after! all-the-icons - (add-to-list 'all-the-icons-icon-alist - '("\\.beancount\\'" all-the-icons-material "attach_money" :face all-the-icons-lblue)) - (add-to-list 'all-the-icons-mode-icon-alist - '(beancount-mode all-the-icons-material "attach_money" :face all-the-icons-lblue))) - :config (setq beancount-electric-currency t) From deb83dc6a91e9bc24b8569e7ea1ae7ef2b4b7b66 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 11 Sep 2023 23:18:51 +0200 Subject: [PATCH 031/523] fix(lib): doom-docs-mode: hiding property drawers Includes a minor optimization: reading the current level from an org-element object, rather than relying on (org-current-level), which resorts to walking the buffer with regex. --- lisp/lib/docs.el | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/lisp/lib/docs.el b/lisp/lib/docs.el index bd609ccc0..2052f78f3 100644 --- a/lisp/lib/docs.el +++ b/lisp/lib/docs.el @@ -239,11 +239,9 @@ (beg (max (point-min) (1- (org-element-property :begin el)))) (end (org-element-property :end el)) ((memq (org-element-type el) '(drawer property-drawer)))) - (when (org-current-level) + (when (org-element-property-inherited :level el) (cl-decf end)) - (org-fold-core-region beg end doom-docs-mode 'doom-doc-hidden) - (when doom-docs-mode - (org-fold-core-region beg end nil 'org-hide-drawer))))) + (org-fold-core-region beg end doom-docs-mode 'doom-doc-hidden)))) ;; FIX: If the cursor remains within a newly folded region, that folk will ;; come undone, so we move it. (if pt (goto-char pt)))) From 75d4046820957401a2561e53dc935ad27e2b52ea Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 11 Sep 2023 23:27:16 +0200 Subject: [PATCH 032/523] fix(lib): doom/reload-docs: `org-id-get' warnings Prevents '`org-id-get' expects a file-visiting buffer' warnings in some in-repo org files. --- lisp/lib/docs.el | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lisp/lib/docs.el b/lisp/lib/docs.el index 2052f78f3..3a1dcb402 100644 --- a/lisp/lib/docs.el +++ b/lisp/lib/docs.el @@ -467,10 +467,10 @@ This primes `org-mode' for reading." (org-id-locations doom-docs--id-locations) (org-id-files doom-docs--id-files)) (doom/reload-docs) - (let ((id (org-id-new))) - (org-id-add-location - id (buffer-file-name (buffer-base-buffer))) - id))) + (when-let (fname (buffer-file-name (buffer-base-buffer))) + (let ((id (org-id-new))) + (org-id-add-location id fname) + id)))) ;;;###autoload (define-derived-mode doom-docs-org-mode org-mode "Doom Docs" From 7f3d5d54bd502099d19970160c230be790cf54d8 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 11 Sep 2023 23:27:44 +0200 Subject: [PATCH 033/523] refactor(lib): hoist new org-id-locations-file value --- lisp/lib/docs.el | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lisp/lib/docs.el b/lisp/lib/docs.el index 3a1dcb402..0ca2a6241 100644 --- a/lisp/lib/docs.el +++ b/lisp/lib/docs.el @@ -426,13 +426,13 @@ This primes `org-mode' for reading." (defvar doom-docs--id-locations nil) (defvar doom-docs--id-files nil) +(defvar doom-docs--id-location-file (file-name-concat doom-cache-dir "doom-docs-org-ids")) ;;;###autoload (defun doom/reload-docs (&optional force) "Reload the ID locations in Doom's documentation and open docs buffers." (interactive (list 'interactive)) (with-temp-buffer - (let ((org-id-locations-file - (doom-path (file-truename doom-cache-dir) "doom-docs-org-ids")) + (let ((org-id-locations-file doom-docs--id-location-file) (org-id-track-globally t) org-agenda-files org-id-extra-files @@ -463,7 +463,7 @@ This primes `org-mode' for reading." (let ((org-id-link-to-org-use-id t) (org-id-method 'uuid) (org-id-track-globally t) - (org-id-locations-file (doom-path doom-cache-dir "doom-docs-org-ids")) + (org-id-locations-file doom-docs--id-location-file) (org-id-locations doom-docs--id-locations) (org-id-files doom-docs--id-files)) (doom/reload-docs) @@ -486,7 +486,7 @@ Keeps track of its own IDs in `doom-docs-dir' and toggles `doom-docs-mode' when (setq-local org-id-link-to-org-use-id t org-id-method 'uuid org-id-track-globally t - org-id-locations-file (doom-path doom-cache-dir "doom-docs-org-ids") + org-id-locations-file doom-docs--id-location-file org-id-locations doom-docs--id-locations org-id-files doom-docs--id-files org-num-max-level 3 From a7123bf65f03032be16d63ee7b9c06b91a133073 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 11 Sep 2023 23:34:41 +0200 Subject: [PATCH 034/523] fix: write native-comp cache to $EMACSLOCALDIR Otherwise, it writes them to /tmp. This way, the CLI can clean them up along with other package state in the future. --- lisp/doom.el | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lisp/doom.el b/lisp/doom.el index a342a0d8c..2d59d5ffa 100644 --- a/lisp/doom.el +++ b/lisp/doom.el @@ -607,7 +607,15 @@ Otherwise, `en/disable-command' (in novice.el.gz) is hardcoded to write them to (and (null comp-num-cpus) (zerop native-comp-async-jobs-number) (setq comp-num-cpus - (max 1 (/ (num-processors) (if noninteractive 1 4))))))) + (max 1 (/ (num-processors) (if noninteractive 1 4)))))) + + (define-advice comp-run-async-workers (:around (fn &rest args) dont-litter-tmpdir) + "Normally, native-comp writes a ton to /tmp. This advice forces it to write +to `doom-cache-dir'/comp/ instead, so that Doom can safely clean it up as part +of 'doom sync' or 'doom gc'." + (let ((temporary-file-directory (expand-file-name "comp/" doom-profile-cache-dir))) + (make-directory temporary-file-directory t) + (apply fn args)))) ;;; Suppress package.el ;; Since Emacs 27, package initialization occurs before `user-init-file' is From f427c8a30ed6d90c30c816f2b55c4933690325d1 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 11 Sep 2023 23:52:27 +0200 Subject: [PATCH 035/523] tweak: scroll-conservatively = 10 Forces the window to recenter if the cursor moves >=10 lines off-screen. This makes some of our manual recentering elsewhere unnecessary. --- lisp/doom-editor.el | 4 ---- lisp/doom-ui.el | 6 ++++-- modules/completion/ivy/config.el | 1 - modules/lang/cc/config.el | 3 +-- modules/lang/emacs-lisp/config.el | 3 --- modules/tools/magit/config.el | 4 ---- 6 files changed, 5 insertions(+), 16 deletions(-) diff --git a/lisp/doom-editor.el b/lisp/doom-editor.el index aa572e32d..aa90e4f72 100644 --- a/lisp/doom-editor.el +++ b/lisp/doom-editor.el @@ -586,10 +586,6 @@ current buffer." (with-current-buffer buf (goto-char pos))))))))) -;;;###package imenu -(add-hook 'imenu-after-jump-hook #'recenter) - - (use-package! smartparens ;; Auto-close delimiters and blocks as you type. It's more powerful than that, ;; but that is all Doom uses it for. diff --git a/lisp/doom-ui.el b/lisp/doom-ui.el index 05cc20c12..8f4a4e371 100644 --- a/lisp/doom-ui.el +++ b/lisp/doom-ui.el @@ -156,8 +156,10 @@ or if the current buffer is read-only or not file-visiting." ;; cursor more than N lines past window edges (where N is the settings of ;; `scroll-conservatively'). This is especially slow in larger files ;; during large-scale scrolling commands. If kept over 100, the window is - ;; never automatically recentered. - scroll-conservatively 101 + ;; never automatically recentered. The default (0) triggers this too + ;; aggressively, so I've set it to 10 to recenter if scrolling too far + ;; off-screen. + scroll-conservatively 10 scroll-margin 0 scroll-preserve-screen-position t ;; Reduce cursor lag by a tiny bit by not auto-adjusting `window-vscroll' diff --git a/modules/completion/ivy/config.el b/modules/completion/ivy/config.el index c9af7ee58..23568f9b3 100644 --- a/modules/completion/ivy/config.el +++ b/modules/completion/ivy/config.el @@ -237,7 +237,6 @@ results buffer.") ;; Record in jumplist when opening files via counsel-{ag,rg,pt,git-grep} (add-hook 'counsel-grep-post-action-hook #'better-jumper-set-jump) - (add-hook 'counsel-grep-post-action-hook #'recenter) (ivy-add-actions 'counsel-rg ; also applies to `counsel-rg' '(("O" +ivy-git-grep-other-window-action "open in other window"))) diff --git a/modules/lang/cc/config.el b/modules/lang/cc/config.el index c0fb46811..221d7b165 100644 --- a/modules/lang/cc/config.el +++ b/modules/lang/cc/config.el @@ -229,8 +229,7 @@ If rtags or rdm aren't available, fail silently instead of throwing a breaking e ;; than display a jarring confirmation prompt for killing it. (add-hook! 'kill-emacs-hook (ignore-errors (rtags-cancel-process))) - (add-hook 'rtags-jump-hook #'better-jumper-set-jump) - (add-hook 'rtags-after-find-file-hook #'recenter)) + (add-hook 'rtags-jump-hook #'better-jumper-set-jump)) ;; diff --git a/modules/lang/emacs-lisp/config.el b/modules/lang/emacs-lisp/config.el index d6393e384..b089ff53c 100644 --- a/modules/lang/emacs-lisp/config.el +++ b/modules/lang/emacs-lisp/config.el @@ -112,9 +112,6 @@ See `+emacs-lisp-non-package-mode' for details.") (when +emacs-lisp-enable-extra-fontification `((+emacs-lisp-highlight-vars-and-faces . +emacs-lisp--face))))) - ;; Recenter window after following definition - (advice-add #'elisp-def :after #'doom-recenter-a) - (defadvice! +emacs-lisp-append-value-to-eldoc-a (fn sym) "Display variable value next to documentation in eldoc." :around #'elisp-get-var-docstring diff --git a/modules/tools/magit/config.el b/modules/tools/magit/config.el index 5878ae688..988cd2143 100644 --- a/modules/tools/magit/config.el +++ b/modules/tools/magit/config.el @@ -50,10 +50,6 @@ Only has an effect in GUI Emacs.") ;; ...then refresh the rest only when we switch to them, not all at once. (add-hook 'doom-switch-buffer-hook #'+magit-revert-buffer-maybe-h) - ;; Center the target file, because it's poor UX to have it at the bottom of - ;; the window after invoking `magit-status-here'. - (advice-add #'magit-status-here :after #'doom-recenter-a) - ;; The default location for git-credential-cache is in ;; ~/.cache/git/credential. However, if ~/.git-credential-cache/ exists, then ;; it is used instead. Magit seems to be hardcoded to use the latter, so here From d8372b6e2d58c10d52ebb5112d7a8576e1ebe5ee Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 11 Sep 2023 23:53:59 +0200 Subject: [PATCH 036/523] fix(popup): +popup/raise: recursive popup Without this, raising a popup might result in simply opening a popup with the same rules. --- modules/ui/popup/autoload/popup.el | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/modules/ui/popup/autoload/popup.el b/modules/ui/popup/autoload/popup.el index 78119aec7..46bd5e2f0 100644 --- a/modules/ui/popup/autoload/popup.el +++ b/modules/ui/popup/autoload/popup.el @@ -437,9 +437,10 @@ window and return that window." (+popup--inhibit-transient t) +popup--remember-last) (+popup/close window 'force) - (if arg - (pop-to-buffer buffer) - (switch-to-buffer buffer)) + (let (display-buffer-alist) + (if arg + (pop-to-buffer buffer) + (switch-to-buffer buffer))) (selected-window))) ;;;###autoload From a44e8d6bfd06e8746030eb1f2e6d3a200a2f4682 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 11 Sep 2023 23:56:21 +0200 Subject: [PATCH 037/523] nit: general reformatting & minor comment revision --- lisp/doom-packages.el | 10 +++++----- modules/app/rss/config.el | 4 +++- modules/lang/fortran/config.el | 1 + 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/lisp/doom-packages.el b/lisp/doom-packages.el index 0e6c2784f..72d3896b6 100644 --- a/lisp/doom-packages.el +++ b/lisp/doom-packages.el @@ -119,11 +119,11 @@ uses a straight or package.el command directly).") (append (apply fn args) ; lockfiles still take priority (doom-package-pinned-list))) -;; HACK: This fixes an issue present in recent builds of Emacs 29. See -;; emacs-mirror/emacs@0d383b592c2f. Straight.el uses `loaddefs-generate' if it -;; is available, which activates `emacs-lisp-mode' to read autoloads files, -;; but does so without suppressing its hooks. Some packages (like overseer) -;; add hooks to `emacs-lisp-mode-hook' in their autoloads, and once triggered, +;; HACK: This fixes an issue introduced in emacs-mirror/emacs@0d383b592c2f and +;; is present in >=29: Straight.el uses `loaddefs-generate' if it is +;; available, which activates `emacs-lisp-mode' to read autoloads files, but +;; does so without suppressing its hooks. Some packages (like overseer) add +;; hooks to `emacs-lisp-mode-hook' in their autoloads, and once triggered, ;; they will try to load their dependencies (like dash or pkg-info), causing ;; file errors. ;; REVIEW: Report this upstream. diff --git a/modules/app/rss/config.el b/modules/app/rss/config.el index a292f4006..7d952e42d 100644 --- a/modules/app/rss/config.el +++ b/modules/app/rss/config.el @@ -14,8 +14,9 @@ easier to scroll through.") (defvar +rss-workspace-name "*rss*" "Name of the workspace that contains the elfeed buffer.") + ;; -;; Packages +;;; Packages (use-package! elfeed :commands elfeed @@ -83,6 +84,7 @@ easier to scroll through.") (message "elfeed-org: ignoring %S because it can't be read" file)) (setq rmh-elfeed-org-files (cl-remove-if-not #'file-exists-p files)))))) + (use-package! elfeed-goodies :after elfeed :config diff --git a/modules/lang/fortran/config.el b/modules/lang/fortran/config.el index 906808e5e..1a1f420b7 100644 --- a/modules/lang/fortran/config.el +++ b/modules/lang/fortran/config.el @@ -48,6 +48,7 @@ ["Run" +fortran/run :active t :help "Run the Executable"] ["Test" +fortran/fpm-test :active (+fortran--fpm-toml) :help "Run the Unit Tests"]))) + (use-package! fortran ;; The `.for' extension is automatically recognized by Emacs and invokes ;; `fortran-mode', but not its capital variant `.FOR'. Many old files are From 46d7404befcdf5a69cc164fe448ac75bd9b9b598 Mon Sep 17 00:00:00 2001 From: Gerry Agbobada Date: Sun, 23 May 2021 11:27:57 +0200 Subject: [PATCH 038/523] refactor!(ligatures): use ligature.el for Emacs28+ Include ligature.el in a new set-font-ligatures! function, so that "normal" (read: "font-based") ligatures can also be controlled on a per-major mode basis from a user function in configuration. This commit also drops support for Emacs 27 to reduce the maintenance burden. BREAKING CHANGE: font ligatures for Harfbuzz/Coretext composition table-based ligations are no longer controlled with `+ligatures-composition-alist`, but is handled with `+ligatures-prog-mode-list` and `+ligatures-all-modes-list` for most common cases. See the README for the mode-specific methods BREAKING CHANGE: the `:ui ligatures` module will not work anymore with Emacs 27 or older. Also, there is no need to keep patched fonts (for Fira, Hasklig, Iosevka) if you use the module. Update Emacs if you want to keep using ligatures, or disable the module (`doom doctor` will tell you if your current version of Emacs stopped working with the module) --- modules/ui/ligatures/+fira.el | 123 ---------- modules/ui/ligatures/+hasklig.el | 62 ----- modules/ui/ligatures/+iosevka.el | 244 ------------------- modules/ui/ligatures/+pragmata-pro.el | 259 --------------------- modules/ui/ligatures/README.org | 183 ++++++++------- modules/ui/ligatures/autoload/install.el | 58 ----- modules/ui/ligatures/autoload/ligatures.el | 54 +++-- modules/ui/ligatures/config.el | 112 +++------ modules/ui/ligatures/doctor.el | 16 ++ modules/ui/ligatures/packages.el | 5 + 10 files changed, 200 insertions(+), 916 deletions(-) delete mode 100644 modules/ui/ligatures/+fira.el delete mode 100644 modules/ui/ligatures/+hasklig.el delete mode 100644 modules/ui/ligatures/+iosevka.el delete mode 100644 modules/ui/ligatures/+pragmata-pro.el delete mode 100644 modules/ui/ligatures/autoload/install.el create mode 100644 modules/ui/ligatures/doctor.el create mode 100644 modules/ui/ligatures/packages.el diff --git a/modules/ui/ligatures/+fira.el b/modules/ui/ligatures/+fira.el deleted file mode 100644 index 191dabe1e..000000000 --- a/modules/ui/ligatures/+fira.el +++ /dev/null @@ -1,123 +0,0 @@ -;;; ui/ligatures/+fira.el -*- lexical-binding: t; -*- - -(+ligatures--def-font fira - ("Fira Code Symbol" - :range '(#Xe100 . #Xe16f) - :url "https://github.com/tonsky/FiraCode/raw/13234c0/distr/ttf/%s" - :files '("FiraCode-Bold.ttf" - "FiraCode-Light.ttf" - "FiraCode-Medium.ttf" - "FiraCode-Regular.ttf" - "FiraCode-Retina.ttf")) - ("www" . #Xe100) - ("**" . #Xe101) - ("***" . #Xe102) - ("**/" . #Xe103) - ("*>" . #Xe104) - ("*/" . #Xe105) - ("\\\\" . #Xe106) - ("\\\\\\" . #Xe107) - ("{-" . #Xe108) - ("[]" . #Xe109) - ("::" . #Xe10a) - (":::" . #Xe10b) - (":=" . #Xe10c) - ("!!" . #Xe10d) - ("!=" . #Xe10e) - ("!==" . #Xe10f) - ("-}" . #Xe110) - ("--" . #Xe111) - ("---" . #Xe112) - ("-->" . #Xe113) - ("->" . #Xe114) - ("->>" . #Xe115) - ("-<" . #Xe116) - ("-<<" . #Xe117) - ("-~" . #Xe118) - ("#{" . #Xe119) - ("#[" . #Xe11a) - ("##" . #Xe11b) - ("###" . #Xe11c) - ("####" . #Xe11d) - ("#(" . #Xe11e) - ("#?" . #Xe11f) - ("#_" . #Xe120) - ("#_(" . #Xe121) - (".-" . #Xe122) - (".=" . #Xe123) - (".." . #Xe124) - ("..<" . #Xe125) - ("..." . #Xe126) - ("?=" . #Xe127) - ("??" . #Xe128) - (";;" . #Xe129) - ("/*" . #Xe12a) - ("/**" . #Xe12b) - ("/=" . #Xe12c) - ("/==" . #Xe12d) - ("/>" . #Xe12e) - ("//" . #Xe12f) - ("///" . #Xe130) - ("&&" . #Xe131) - ("||" . #Xe132) - ("||=" . #Xe133) - ("|=" . #Xe134) - ("|>" . #Xe135) - ("^=" . #Xe136) - ("$>" . #Xe137) - ("++" . #Xe138) - ("+++" . #Xe139) - ("+>" . #Xe13a) - ("=:=" . #Xe13b) - ("==" . #Xe13c) - ("===" . #Xe13d) - ("==>" . #Xe13e) - ("=>" . #Xe13f) - ("=>>" . #Xe140) - ("=<" . #Xe141) - ("=<<" . #Xe142) - ("=/=" . #Xe143) - (">-" . #Xe144) - (">=" . #Xe145) - (">=>" . #Xe146) - (">>" . #Xe147) - (">>-" . #Xe148) - (">>=" . #Xe149) - (">>>" . #Xe14a) - ("<*" . #Xe14b) - ("<*>" . #Xe14c) - ("<|" . #Xe14d) - ("<|>" . #Xe14e) - ("<$" . #Xe14f) - ("<$>" . #Xe150) - ("" . #Xe101) - ("<--->" . #Xe102) - ("<---->" . #Xe103) - ("<----->" . #Xe104) - ;; Double-ended equals arrows - ("<=>" . #Xe105) - ("<==>" . #Xe106) - ("<===>" . #Xe107) - ("<====>" . #Xe108) - ("<=====>" . #Xe109) - ;; Double-ended asterisk operators - ("<**>" . #Xe10a) - ("<***>" . #Xe10b) - ("<****>" . #Xe10c) - ("<*****>" . #Xe10d) - ;; HTML comments - ("" . #Xe152) - ("-->-" . #Xe153) - ("-->--" . #Xe154) - ("-->>" . #Xe155) - ("-->>-" . #Xe156) - ("-->>--" . #Xe157) - ("-->>>" . #Xe158) - ("-->>>-" . #Xe159) - ("-->>>--" . #Xe15a) - (">-" . #Xe15b) - (">--" . #Xe15c) - (">>-" . #Xe15d) - (">>--" . #Xe15e) - (">>>-" . #Xe15f) - (">>>--" . #Xe160) - ("=>" . #Xe161) - ("=>=" . #Xe162) - ("=>==" . #Xe163) - ("=>>" . #Xe164) - ("=>>=" . #Xe165) - ("=>>==" . #Xe166) - ("=>>>" . #Xe167) - ("=>>>=" . #Xe168) - ("=>>>==" . #Xe169) - ("==>" . #Xe16a) - ("==>=" . #Xe16b) - ("==>==" . #Xe16c) - ("==>>" . #Xe16d) - ("==>>=" . #Xe16e) - ("==>>==" . #Xe16f) - ("==>>>" . #Xe170) - ("==>>>=" . #Xe171) - ("==>>>==" . #Xe172) - (">=" . #Xe173) - (">==" . #Xe174) - (">>=" . #Xe175) - (">>==" . #Xe176) - (">>>=" . #Xe177) - (">>>==" . #Xe178) - ("<-" . #Xe179) - ("-<-" . #Xe17a) - ("--<-" . #Xe17b) - ("<<-" . #Xe17c) - ("-<<-" . #Xe17d) - ("--<<-" . #Xe17e) - ("<<<-" . #Xe17f) - ("-<<<-" . #Xe180) - ("--<<<-" . #Xe181) - ("<--" . #Xe182) - ("-<--" . #Xe183) - ("--<--" . #Xe184) - ("<<--" . #Xe185) - ("-<<--" . #Xe186) - ("--<<--" . #Xe187) - ("<<<--" . #Xe188) - ("-<<<--" . #Xe189) - ("--<<<--" . #Xe18a) - ("-<" . #Xe18b) - ("--<" . #Xe18c) - ("-<<" . #Xe18d) - ("--<<" . #Xe18e) - ("-<<<" . #Xe18f) - ("--<<<" . #Xe190) - ("<=" . #Xe191) - ("=<=" . #Xe192) - ("==<=" . #Xe193) - ("<<=" . #Xe194) - ("=<<=" . #Xe195) - ("==<<=" . #Xe196) - ("<<<=" . #Xe197) - ("=<<<=" . #Xe198) - ("==<<<=" . #Xe199) - ("<==" . #Xe19a) - ("=<==" . #Xe19b) - ("==<==" . #Xe19c) - ("<<==" . #Xe19d) - ("=<<==" . #Xe19e) - ("==<<==" . #Xe19f) - ("<<<==" . #Xe1a0) - ("=<<<==" . #Xe1a1) - ("==<<<==" . #Xe1a2) - ("=<" . #Xe1a3) - ("==<" . #Xe1a4) - ("=<<" . #Xe1a5) - ("==<<" . #Xe1a6) - ("=<<<" . #Xe1a7) - ("==<<<" . #Xe1a8) - ;; Monadic operators - (">=>" . #Xe1a9) - (">->" . #Xe1aa) - (">-->" . #Xe1ab) - (">==>" . #Xe1ac) - ("<=<" . #Xe1ad) - ("<-<" . #Xe1ae) - ("<--<" . #Xe1af) - ("<==<" . #Xe1b0) - ;; Composition operators - (">>" . #Xe1b1) - (">>>" . #Xe1b2) - ("<<" . #Xe1b3) - ("<<<" . #Xe1b4) - ;; Lens operators - (":+" . #Xe1b5) - (":-" . #Xe1b6) - (":=" . #Xe1b7) - ("+:" . #Xe1b8) - ("-:" . #Xe1b9) - ("=:" . #Xe1ba) - ("=^" . #Xe1bb) - ("=+" . #Xe1bc) - ("=-" . #Xe1bd) - ("=*" . #Xe1be) - ("=/" . #Xe1bf) - ("=%" . #Xe1c0) - ("^=" . #Xe1c1) - ("+=" . #Xe1c2) - ("-=" . #Xe1c3) - ("*=" . #Xe1c4) - ("/=" . #Xe1c5) - ("%=" . #Xe1c6) - ;; Logical - ("/\\" . #Xe1c7) - ("\\/" . #Xe1c8) - ;; Semigroup/monoid operators - ("<>" . #Xe1c9) - ("<+" . #Xe1ca) - ("<+>" . #Xe1cb) - ("+>" . #Xe1cc)) diff --git a/modules/ui/ligatures/+pragmata-pro.el b/modules/ui/ligatures/+pragmata-pro.el deleted file mode 100644 index eff991ac9..000000000 --- a/modules/ui/ligatures/+pragmata-pro.el +++ /dev/null @@ -1,259 +0,0 @@ -;;; ui/ligatures/+pragmata-pro.el -*- lexical-binding: t; -*- - -(+ligatures--def-font pragmata-pro - ("PragmataPro") - ;; Double-ended hyphen arrows - ("[INFO]" . #Xe2b0) - ("[WARN]" . #Xe2b1) - ("[PASS]" . #Xe2b2) - ("[VERBOSE]" . #Xe2b3) - ("[KO]" . #Xe2b4) - ("[OK]" . #Xe2b5) - ("[PASS]" . #Xe2b6) - ("[ERROR]" . #Xe2c0) - ("[DEBUG]" . #Xe2c1) - ("[INFO]" . #Xe2c2) - ("[WARN]" . #Xe2c3) - ("[WARNING]" . #Xe2c4) - ("[ERR]" . #Xe2c5) - ("[FATAL]" . #Xe2c6) - ("[TRACE]" . #Xe2c7) - ("[FIXME]" . #Xe2c8) - ("[TODO]" . #Xe2c9) - ("[BUG]" . #Xe2ca) - ("[NOTE]" . #Xe2cb) - ("[HACK]" . #Xe2cc) - ("[MARK]" . #Xe2cd) - ("[FAIL]" . #Xe2ce) - ("// ERROR" . #Xe2e0) - ("// DEBUG" . #Xe2e1) - ("// INFO" . #Xe2e2) - ("// WARN" . #Xe2e3) - ("// WARNING" . #Xe2e4) - ("// ERR" . #Xe2e5) - ("// FATAL" . #Xe2e6) - ("// TRACE" . #Xe2e7) - ("// FIXME" . #Xe2e8) - ("// TODO" . #Xe2e9) - ("// BUG" . #Xe2ea) - ("// NOTE" . #Xe2eb) - ("// HACK" . #Xe2ec) - ("// MARK" . #Xe2ed) - ("// FAIL" . #Xe2ee) - ("# ERROR" . #Xe2f0) - ("# DEBUG" . #Xe2f1) - ("# INFO" . #Xe2f2) - ("# WARN" . #Xe2f3) - ("# WARNING" . #Xe2f4) - ("# ERR" . #Xe2f5) - ("# FATAL" . #Xe2f6) - ("# TRACE" . #Xe2f7) - ("# FIXME" . #Xe2f8) - ("# TODO" . #Xe2f9) - ("# BUG" . #Xe2fa) - ("# NOTE" . #Xe2fb) - ("# HACK" . #Xe2fc) - ("# MARK" . #Xe2fd) - ("# FAIL" . #Xe2fe) - ("!=" . #Xe900) - ("!==" . #Xe901) - ("!≡" . #Xe902) - ("!≡≡" . #Xe903) - ("!=<" . #Xe904) - ("#(" . #Xe90c) - ("#_" . #Xe90d) - ("#{" . #Xe90e) - ("#?" . #Xe90f) - ("##" . #Xe910) - ("#_(" . #Xe911) - ("#[" . #Xe912) - ("%=" . #Xe920) - ("&%" . #Xe92c) - ("&&" . #Xe92d) - ("&+" . #Xe92e) - ("&-" . #Xe92f) - ("&/" . #Xe930) - ("&=" . #Xe931) - ("&&&" . #Xe932) - ("$>" . #Xe93a) - ("(|" . #Xe940) - ("*>" . #Xe946) - ("++" . #Xe94c) - ("+++" . #Xe94d) - ("+=" . #Xe94e) - ("+>" . #Xe94f) - ("++=" . #Xe950) - ("--" . #Xe960) - ("-<" . #Xe961) - ("-<<" . #Xe962) - ("-=" . #Xe963) - ("->" . #Xe964) - ("->>" . #Xe965) - ("---" . #Xe966) - ("-->" . #Xe967) - ("-+-" . #Xe968) - ("-\\/" . #Xe969) - ("-|>" . #Xe96a) - ("-<|" . #Xe96b) - ("->-" . #Xe96c) - ("-<-" . #Xe96d) - ("-|" . #Xe96e) - ("-||" . #Xe96f) - ("-|:" . #Xe970) - (".=" . #Xe979) - ("//=" . #Xe994) - ("/=" . #Xe995) - ("/==" . #Xe996) - ("/-\\" . #Xe997) - ("/-:" . #Xe998) - ("/->" . #Xe999) - ("/=>" . #Xe99a) - ("/-<" . #Xe99b) - ("/=<" . #Xe99c) - ("/=:" . #Xe99d) - (":=" . #Xe9ac) - (":≡" . #Xe9ad) - (":=>" . #Xe9ae) - (":-\\" . #Xe9af) - (":=\\" . #Xe9b0) - (":-/" . #Xe9b1) - (":=/" . #Xe9b2) - (":-|" . #Xe9b3) - (":=|" . #Xe9b4) - (":|-" . #Xe9b5) - (":|=" . #Xe9b6) - ("<$>" . #Xe9c0) - ("<*" . #Xe9c1) - ("<*>" . #Xe9c2) - ("<+>" . #Xe9c3) - ("<-" . #Xe9c4) - ("<<=" . #Xe9c5) - ("<=" . #Xe9c6) - ("<=>" . #Xe9c7) - ("<>" . #Xe9c8) - ("<|>" . #Xe9c9) - ("<<-" . #Xe9ca) - ("<|" . #Xe9cb) - ("<=<" . #Xe9cc) - ("<~" . #Xe9cd) - ("<~~" . #Xe9ce) - ("<<~" . #Xe9cf) - ("<$" . #Xe9d0) - ("<+" . #Xe9d1) - ("" . #Xe9d2) - ("<@>" . #Xe9d3) - ("<#>" . #Xe9d4) - ("<%>" . #Xe9d5) - ("<^>" . #Xe9d6) - ("<&>" . #Xe9d7) - ("" . #Xe9d8) - ("<.>" . #Xe9d9) - ("" . #Xe9da) - ("<\\>" . #Xe9db) - ("<\">" . #Xe9dc) - ("<:>" . #Xe9dd) - ("<~>" . #Xe9de) - ("<**>" . #Xe9df) - ("<<^" . #Xe9e0) - ("<=" . #Xe9e1) - ("<->" . #Xe9e2) - ("" . #Xe9eb) - ("<<==" . #Xe9ec) - ("<==" . #Xe9ed) - ("<-\\" . #Xe9ee) - ("<-/" . #Xe9ef) - ("<=\\" . #Xe9f0) - ("<=/" . #Xe9f1) - ("=<<" . #Xea00) - ("==" . #Xea01) - ("===" . #Xea02) - ("==>" . #Xea03) - ("=>" . #Xea04) - ("=~" . #Xea05) - ("=>>" . #Xea06) - ("=~=" . #Xea07) - ("==>>" . #Xea08) - ("=>=" . #Xea09) - ("=<=" . #Xea0a) - ("=<" . #Xea0b) - ("==<" . #Xea0c) - ("=<|" . #Xea0d) - ("=/" . #Xea0e) - ("=/=" . #Xea0f) - ("=/<" . #Xea10) - ("=|" . #Xea11) - ("=||" . #Xea12) - ("=|:" . #Xea13) - (">-" . #Xea20) - (">=" . #Xea21) - (">>-" . #Xea22) - (">>=" . #Xea23) - (">=>" . #Xea24) - (">>^" . #Xea25) - (">>|" . #Xea26) - (">!=" . #Xea27) - (">->" . #Xea28) - (">==" . #Xea29) - (">=" . #Xea2a) - (">/=" . #Xea2b) - (">-|" . #Xea2c) - (">=|" . #Xea2d) - (">-\\" . #Xea2e) - (">=\\" . #Xea2f) - (">-/" . #Xea30) - (">=/" . #Xea31) - (">λ=" . #Xea32) - ("?." . #Xea3f) - ("^=" . #Xea43) - ("^^" . #Xea44) - ("^<<" . #Xea48) - ("^>>" . #Xea49) - ("\\=" . #Xea54) - ("\\==" . #Xea55) - ("\\/-" . #Xea56) - ("\\-/" . #Xea57) - ("\\-:" . #Xea58) - ("\\->" . #Xea59) - ("\\=>" . #Xea5a) - ("\\-<" . #Xea5b) - ("\\=<" . #Xea5c) - ("\\=:" . #Xea5d) - ("|=" . #Xea69) - ("|>=" . #Xea6a) - ("|>" . #Xea6b) - ("|+|" . #Xea6c) - ("|->" . #Xea6d) - ("|-->" . #Xea6e) - ("|=>" . #Xea6f) - ("|==>" . #Xea70) - ("|>-" . #Xea71) - ("|<<" . #Xea72) - ("||>" . #Xea73) - ("|>>" . #Xea74) - ("|-" . #Xea75) - ("||-" . #Xea76) - ("||=" . #Xea77) - ("|)" . #Xea78) - ("|]" . #Xea79) - ("|-:" . #Xea7a) - ("|=:" . #Xea7b) - ("|-<" . #Xea7c) - ("|=<" . #Xea7d) - ("|--<" . #Xea7e) - ("|==<" . #Xea7f) - ("~=" . #Xea8a) - ("~>" . #Xea8b) - ("~~>" . #Xea8c) - ("~>>" . #Xea8d) - ("[[" . #Xea8f) - ("[|" . #Xea90) - ("_|_" . #Xea97) - ("]]" . #Xeaa0)) diff --git a/modules/ui/ligatures/README.org b/modules/ui/ligatures/README.org index 4ea059781..29a298b53 100644 --- a/modules/ui/ligatures/README.org +++ b/modules/ui/ligatures/README.org @@ -4,39 +4,40 @@ #+since: 21.12.0 * Description :unfold: -This module enables ligatures and arbitrary symbol substitutions with -~mac-auto-operator-composition-mode~ (on supported macOS systems) or composition -tables (harfbuzz on Emacs 28), falling back on ~prettify-symbols-mode~ -otherwise. +* Table of Contents :TOC_3:noexport: +- [[#description][Description]] + - [[#maintainers][Maintainers]] + - [[#module-flags][Module flags]] + - [[#packages][Packages]] + - [[#hacks][Hacks]] + - [[#changelog][Changelog]] +- [[#installation][Installation]] +- [[#usage][Usage]] + - [[#mathematical-symbols-replacement][Mathematical symbols replacement]] + - [[#coding-ligatures][Coding ligatures]] + - [[#details][Details]] +- [[#configuration][Configuration]] + - [[#symbol-replacements-λ-for-lambda][Symbol replacements (λ for "lambda"...)]] + - [[#font-ligatures-turning--into-an-arrow][Font ligatures (turning "=>" into an arrow...)]] + - [[#setting-ligatures-for-specific-font-or-major-mode][Setting ligatures for specific font or major mode]] + - [[#overwriting-all-default-ligatures][Overwriting all default ligatures]] +- [[#troubleshooting][Troubleshooting]] + - [[#some-symbols-are-not-rendering-correctly][Some symbols are not rendering correctly]] +- [[#frequently-asked-questions][Frequently asked questions]] +- [[#appendix][Appendix]] ** Maintainers -/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]] +- [[doom-user:][@gagbo]] + +[[doom-contrib-maintainer:][Become a maintainer?]] ** Module flags - +extra :: Enables extra symbol substitutions in certain modes, for example ~lambda~ in lisps are replaced with ~λ~. -- +fira :: - Enable =Fira Code= ligatures. This requires Fira Code Symbol and [[id:a7e7402b-e202-4860-878b-d1933cff1d16][a patched - version of Fira Code]]. -- +hasklig :: - Enable =Hasklig= ligatures. This requires [[id:a7e7402b-e202-4860-878b-d1933cff1d16][a patched version of the HaskLig - font]]. -- +iosevka :: - Enable =Iosevka= ligatures. This requires [[id:a7e7402b-e202-4860-878b-d1933cff1d16][a patched version of the Iosevka - font]]. -- +pragmata-pro :: - Enable =Pragmata Pro= ligatures. This requires the [[https://www.fsd.it/shop/fonts/pragmatapro/][Pragmata Pro font]]. - -#+begin_quote - 🚧 Font flags are ignored _if_ you're sporting either a) Emacs 28+ with - Harfbuzz support (which can compose ligatures natively), or b) Mitsuharu's - =emacs-mac= build on macOS (which uses - ~mac-auto-operator-composition-mode~). -#+end_quote ** Packages -/This module doesn't install any packages./ +- [[https://github.com/mickeynp/ligature.el][ligature.el]] (on Emacs 28+ with Harfbuzz) ** Hacks /No hacks documented for this module./ @@ -55,63 +56,20 @@ This module requires one of three setups for ligatures to work: - Mitsuharu's =emacs-mac= build on macOS (available on Homebrew), or - A patched font for Doom's fallback ligature support. -** Mutsuharu's emacs-mac port or Emacs 28+ with Harfbuzz support -Ligatures should be handled without any additional configuration. + /This module does not have specific installation instructions/ -** Not Emacs-mac and Emacs <= 27 -:PROPERTIES: -:ID: a7e7402b-e202-4860-878b-d1933cff1d16 -:END: -1. Enable one of the four ligature font flags: =+fira=, =+hasklig=, =+iosevka= - or =+pragmata-pro=. -2. Install the patched version of the associated font with ~M-x - +ligatures/install-patched-font~. Note: Pragmata Pro cannot be installed this - way because it is a non-free font and must be purchased and installed - manually. + ~doom doctor~ will tell you if the module is incompatible with your current + Emacs version, and what you can do to remediate. -* TODO Usage +* Usage #+begin_quote 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote -** TODO Mathematical symbols replacement - -** Coding ligatures -This module includes configuration to compose combinations like =->= or =::= -into prettier glyphs (called a ligature). Depending on the current version of -emacs, this is implemented in two different ways : - -- prettify-symbols-mode method :: this is the "legacy" method. It uses a font - which haves the ligatures as separate unicode symbols, and using - prettify-symbols-mode, =->=-like combinations are manually listed and replaced - with the correct symbol. The mapping between =->=-like sequences and unicode - values in the font are font-specific ; therefore [[doom-module:+fira]], [[doom-module:+iosevka]]... files and - specific fonts are necessary for it to work. -- composition-function-table method :: regexps are used to match all the usual - sequences which are composed into ligatures. These regexps are passed to emacs - directly, which asks Harfbuzz to shape it. Ligatures are obtained - automatically depending on the capabilities of the font, and no font-specific - configuration is necessary. - -Emacs-mac port implements the /composition-function-table/ method in [[https://bitbucket.org/mituharu/emacs-mac/src/26c8fd9920db9d34ae8f78bceaec714230824dac/lisp/term/mac-win.el?at=master#lines-345:805][its code]], -nothing is necessary on Doom side; otherwise, Doom implements the -/composition-function-table/ for emacs 28+ built with Harfbuzz support, and the -/prettify-symbols-mode/ method otherwise. - -Even though harfbuzz has been included in emacs 27, there is currently a [[https://lists.gnu.org/archive/html/bug-gnu-emacs/2020-04/msg01121.html][bug -(#40864)]] which prevents a safe usage of /composition-function-table/ method in -emacs 27. - -* TODO Configuration -#+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] -#+end_quote - -** Setting ligatures -If you want to set ligatures for modules that don't have them by default you can -use the ~set-ligatures!~ macro: -#+begin_src emacs-lisp -;; in $DOOMDIR/config.el +** Mathematical symbols replacement +If you want to set symbol replacements for modules that don't have them by +default you can use the ~set-ligatures!~ function in your config.el file +#+BEGIN_SRC emacs-lisp (after! PACKAGE (set-ligatures! 'MAJOR-MODE :symbol "keyword")) @@ -128,7 +86,7 @@ E.g. :int "int" :str "string" :float "float" :bool "bool" :for "for" - :return "return" :yeild "yeild")) + :return "return" :yield "yield")) #+end_src You can set these symbols out of the box: @@ -146,7 +104,7 @@ You can set these symbols out of the box: :int "int keyword" :float "float keyword" :str "string keyword" - :bool "boolean keywork" + :bool "boolean keyword" :list "list keyword" ;; Flow :not "not operator" @@ -163,7 +121,7 @@ You can set these symbols out of the box: :intersect "Intersect keyword" :diff "diff keyword" :tuple "Tuple Keyword " - :pipe "Pipe Keyword" ;; FIXME: find a non-private char + :pipe "Pipe Keyword" :dot "Dot operator") #+end_src @@ -174,7 +132,38 @@ If you have multiple versions of the same keyword you can set the symbol twice: :null "None") #+end_src -** Changing ligatures + +** Coding ligatures +This module includes configuration to compose combinations like =->= or =::= +into prettier glyphs (called a ligature), specific for your font, or specific +for the major modes that you want to use. + +As these ligatures come from the font itself instead of elisp symbols, we use +=set-font-ligatures!= + +#+begin_src elisp +(set-font-ligatures! '(haskell-mode clojure-mode) ">>=" ">>-") +#+end_src + +*** Details +Ligatures are implemented using a **composition-function-table** method: regexps are +used to match all the usual sequences which are composed into ligatures. These +regexps are passed to emacs directly, which asks Harfbuzz to shape it. Ligatures +are obtained automatically depending on the capabilities of the font, and no +font-specific configuration is necessary. + +Emacs-mac port implements the same method natively in [[https://bitbucket.org/mituharu/emacs-mac/src/26c8fd9920db9d34ae8f78bceaec714230824dac/lisp/term/mac-win.el?at=master#lines-345:805][its code]], nothing is +necessary on Doom side; otherwise, Doom uses the [[https://github.com/mickeynp/ligature.el][ligature.el]] package that +implements this method for Emacs 28+ built with Harfbuzz support. Therefore, the +module will not work with Emacs 27 or previous. + +Even though harfbuzz has been included in emacs 27, there is currently a +[[https://lists.gnu.org/archive/html/bug-gnu-emacs/2020-04/msg01121.html][bug +(#40864)]] which prevents a safe usage of the /composition-function-table/ method in +Emacs 27. + +* Configuration +** Symbol replacements (λ for "lambda"...) if you don't like the symbols chosen you can change them by using: #+begin_src emacs-lisp ;; you don't need to include all of them you can pick and mix @@ -214,10 +203,44 @@ if you don't like the symbols chosen you can change them by using: :intersect "∩" :diff "∖" :tuple "⨂" - :pipe "" ;; FIXME: find a non-private char + :pipe "" :dot "•") ;; you could also add your own if you want #+end_src +** Font ligatures (turning "=>" into an arrow...) +*** Setting ligatures for specific font or major mode +As the [[https://github.com/mickeynp/ligature.el][README]] for ligature.el states, you can manipulate the ligatures that you +want to enable, specific for your font, or specific for the major modes that you +want to use. =set-font-ligatures!= is a thin wrapper around =ligature.el= to control these. + +#+begin_src elisp +(set-font-ligatures! '(haskell-mode clojure-mode) ">>=" ">>-") +#+end_src + +This call will: +- overwrite all preceding calls to =set-font-ligatures!= + for =haskell-mode= and =clojure-mode= specifically, but +- keep the inheritance to ligatures set for all modes, or parent modes like =prog-mode= + +*** Overwriting all default ligatures +If you want to "start from scratch" and get control over all ligatures that +happen in all modes, you can use + +#+begin_src elisp +;; Set all your custom ligatures for all prog-modes here +;; This section is *out of* the after! block +;; Example: only get ligatures for "==" and "===" in programming modes +;; by default, and get only "www" in all buffers by default. +(setq +ligatures-prog-mode-list '("==" "===") + +ligatures-all-modes-list '("www")) +;; Set any of those variables to nil to wipe all defaults. + + ;; Set all your additional custom ligatures for other major modes here. + ;; Example: enable traditional ligature support in eww-mode, if the + ;; `variable-pitch' face supports it +(set-font-ligatures! 'eww-mode "ff" "fi" "ffi") +#+end_src + * Troubleshooting [[doom-report:][Report an issue?]] diff --git a/modules/ui/ligatures/autoload/install.el b/modules/ui/ligatures/autoload/install.el deleted file mode 100644 index fd7d096d2..000000000 --- a/modules/ui/ligatures/autoload/install.el +++ /dev/null @@ -1,58 +0,0 @@ -;;; ui/ligatures/autoload/install.el -*- lexical-binding: t; -*- -;;;###if (or (modulep! +fira) (modulep! +hasklig) (modulep! +iosevka)) - -(defun +ligatures--install-font (prefix name url-format fonts-alist &optional extra-fonts) - "Install fonts to the local system. - -If PREFIX is nil, will prompt whether or not to download. NAME is informational -only. URL-FORMAT is a format string that should be a url and have a single %s, -which is expanded for each font in FONTS-ALIST. FONTS-ALIST should be the -filename of each font. It is used as the source and destination filename." - (unless (or prefix - (yes-or-no-p - (format "This will download and install the %s fonts, continue?" - name))) - (user-error "Aborted")) - (let* ((font-dest - (cond (IS-LINUX - (expand-file-name - "fonts/" (or (getenv "XDG_DATA_HOME") - "~/.local/share"))) - (IS-MAC - (expand-file-name "~/Library/Fonts/")))) - (known-dest-p (stringp font-dest)) - (font-dest (or font-dest (read-directory-name "Font installation directory: " "~/")))) - (unless (file-directory-p font-dest) - (mkdir font-dest t)) - (dolist (font fonts-alist) - (url-copy-file (format url-format font) - (expand-file-name font font-dest) - t)) - (when known-dest-p - (message "Font downloaded, updating font cache... ") - (shell-command-to-string "fc-cache -f -v")) - (if IS-WINDOWS - (when (y-or-n-p "The %S font was downloaded, but Windows users must install them manually.\n\nShow files in windows explorer?") - (call-process "explorer.exe" nil nil nil font-dest)) - (message "Successfully %s %S fonts to %S!" - (if known-dest-p "installed" "downloaded") - name font-dest)))) - -;;;###autoload -(defun +ligatures/install-patched-font (font-id &optional arg) - "Install the font FONT-ID on your system. -FONT-ID must be a key from `+ligatures--font-alist'. -If PREFIX is non-nil, don't ask for confirmation and install it." - (interactive - (list - (car (cl-find (completing-read - "Install font: " - (mapcar #'cadr +ligatures--font-alist)) - +ligatures--font-alist - :key #'cadr - :test #'equal)) - current-prefix-arg)) - (cl-destructuring-bind (font-name &key _range url files) - (or (alist-get font-id +ligatures--font-alist) - (user-error "%S is not a valid font" font-id)) - (+ligatures--install-font arg font-name url files))) diff --git a/modules/ui/ligatures/autoload/ligatures.el b/modules/ui/ligatures/autoload/ligatures.el index 3711124c4..97cf5685a 100644 --- a/modules/ui/ligatures/autoload/ligatures.el +++ b/modules/ui/ligatures/autoload/ligatures.el @@ -11,40 +11,66 @@ MODES is a major mode symbol or a list of them. PLIST is a property list whose keys must match keys in `+ligatures-extra-symbols', and whose values are strings representing the text -to be replaced with that symbol. If the car of PLIST is nil, then unset any -pretty symbols previously defined for MODES. +to be replaced with that symbol. -This function accepts one special property: - - :alist ALIST - Appends ALIST to `prettify-symbols-alist' literally, without mapping text to - `+ligatures-extra-symbols'. +If the car of PLIST is nil, then unset any +pretty symbols and ligatures previously defined for MODES. For example, the rule for emacs-lisp-mode is very simple: - (set-ligatures! 'emacs-lisp-mode + (set-ligatures! \\='emacs-lisp-mode :lambda \"lambda\") This will replace any instances of \"lambda\" in emacs-lisp-mode with the symbol -assicated with :lambda in `+ligatures-extra-symbols'. +associated with :lambda in `+ligatures-extra-symbols'. Pretty symbols can be unset for emacs-lisp-mode with: - (set-ligatures! 'emacs-lisp-mode nil)" + (set-ligatures! \\='emacs-lisp-mode nil) + +Note that this will keep all ligatures in `+ligatures-prog-mode-list' active, as +`emacs-lisp-mode' is derived from `prog-mode'." (declare (indent defun)) (if (null (car-safe plist)) (dolist (mode (ensure-list modes)) (delq! mode +ligatures-extra-alist 'assq)) - (let (results) + (let ((results)) (while plist (let ((key (pop plist))) - (if (eq key :alist) - (prependq! results (pop plist)) (when-let (char (plist-get +ligatures-extra-symbols key)) - (push (cons (pop plist) char) results))))) + (push (cons (pop plist) char) results)))) (dolist (mode (ensure-list modes)) (setf (alist-get mode +ligatures-extra-alist) (if-let (old-results (alist-get mode +ligatures-extra-alist)) (dolist (cell results old-results) (setf (alist-get (car cell) old-results) (cdr cell))) results)))))) + +;;;###autodef +(defun set-font-ligatures! (modes &rest ligatures) + "Associates string patterns with ligatures in certain major-modes. + + MODES is a major mode symbol or a list of them. + LIGATURES is a list of ligatures that should be handled by the font, + like \"==\" or \"-->\". LIGATURES is a list of strings. + +For example, the rule for emacs-lisp-mode is very simple: + + (set-font-ligatures! \\='emacs-lisp-mode \"->\") + +This will ligate \"->\" into the arrow of choice according to your font. + +Font ligatures can be unset for emacs-lisp-mode with: + + (set-font-ligatures! \\='emacs-lisp-mode nil) + +Note that this will keep all ligatures in `+ligatures-prog-mode-list' active, as +`emacs-lisp-mode' is derived from `prog-mode'." + (declare (indent defun)) + (if (null ligatures) + (dolist (mode (ensure-list modes)) + (add-to-list 'ligature-ignored-major-modes mode)) + (after! ligature + (dolist (mode (ensure-list modes)) + (setq ligature-ignored-major-modes (delq mode ligature-ignored-major-modes))) + (ligature-set-ligatures (ensure-list modes) font-ligatures)))) diff --git a/modules/ui/ligatures/config.el b/modules/ui/ligatures/config.el index 8a38bc944..e11d19579 100644 --- a/modules/ui/ligatures/config.el +++ b/modules/ui/ligatures/config.el @@ -47,44 +47,25 @@ font.") (defvar +ligatures-extra-alist '((t)) "A map of major modes to symbol lists (for `prettify-symbols-alist').") -(defvar +ligatures-composition-alist - '((?! . "\\(?:!\\(?:==\\|[!=]\\)\\)") ; (regexp-opt '("!!" "!=" "!==")) - (?# . "\\(?:#\\(?:###?\\|_(\\|[#(:=?[_{]\\)\\)") ; (regexp-opt '("##" "###" "####" "#(" "#:" "#=" "#?" "#[" "#_" "#_(" "#{")) - (?$ . "\\(?:\\$>>?\\)") ; (regexp-opt '("$>" "$>>")) - (?% . "\\(?:%%%?\\)") ; (regexp-opt '("%%" "%%%")) - (?& . "\\(?:&&&?\\)") ; (regexp-opt '("&&" "&&&")) - (?* . "\\(?:\\*\\(?:\\*[*/]\\|[)*/>]\\)?\\)") ; (regexp-opt '("*" "**" "***" "**/" "*/" "*>" "*)")) - (?+ . "\\(?:\\+\\(?:\\+\\+\\|[+:>]\\)?\\)") ; (regexp-opt '("+" "++" "+++" "+>" "+:")) - (?- . "\\(?:-\\(?:-\\(?:->\\|[>-]\\)\\|<[<-]\\|>[>-]\\|[:<>|}~-]\\)\\)") ; (regexp-opt '("--" "---" "-->" "--->" "->-" "-<" "-<-" "-<<" "->" "->>" "-}" "-~" "-:" "-|")) - (?. . "\\(?:\\.\\(?:\\.[.<]\\|[.=>-]\\)\\)") ; (regexp-opt '(".-" ".." "..." "..<" ".=" ".>")) - (?/ . "\\(?:/\\(?:\\*\\*\\|//\\|==\\|[*/=>]\\)\\)") ; (regexp-opt '("/*" "/**" "//" "///" "/=" "/==" "/>")) - (?: . "\\(?::\\(?:::\\|[+:<=>]\\)?\\)") ; (regexp-opt '(":" "::" ":::" ":=" ":<" ":=" ":>" ":+")) - (?\; . ";;") ; (regexp-opt '(";;")) - (?0 . "0\\(?:\\(x[a-fA-F0-9]\\).?\\)") ; Tries to match the x in 0xDEADBEEF - ;; (?x . "x") ; Also tries to match the x in 0xDEADBEEF - ;; (regexp-opt '("" "<--->" "" "<<" "<<-" "<<<" "<<=" "<=" "<=<" "<==" "<=>" "<===>" "<>" "<|" "<|>" "<~" "<~~" "<." "<.>" "<..>")) - (?< . "\\(?:<\\(?:!--\\|\\$>\\|\\*\\(?:\\*?>\\)\\|\\+>\\|-\\(?:-\\(?:->\\|[>-]\\)\\|[>-]\\)\\|\\.\\(?:\\.?>\\)\\|/>\\|<[<=-]\\|=\\(?:==>\\|[<=>]\\)\\||>\\|~~\\|[$*+./<=>|~-]\\)\\)") - (?= . "\\(?:=\\(?:/=\\|:=\\|<[<=]\\|=[=>]\\|>[=>]\\|[=>]\\)\\)") ; (regexp-opt '("=/=" "=:=" "=<<" "==" "===" "==>" "=>" "=>>" "=>=" "=<=")) - (?> . "\\(?:>\\(?:->\\|=>\\|>[=>-]\\|[:=>-]\\)\\)") ; (regexp-opt '(">-" ">->" ">:" ">=" ">=>" ">>" ">>-" ">>=" ">>>")) - (?? . "\\(?:\\?[.:=?]\\)") ; (regexp-opt '("??" "?." "?:" "?=")) - (?\[ . "\\(?:\\[\\(?:|]\\|[]|]\\)\\)") ; (regexp-opt '("[]" "[|]" "[|")) - (?\\ . "\\(?:\\\\\\\\[\\n]?\\)") ; (regexp-opt '("\\\\" "\\\\\\" "\\\\n")) - (?^ . "\\(?:\\^==?\\)") ; (regexp-opt '("^=" "^==")) - (?w . "\\(?:wwww?\\)") ; (regexp-opt '("www" "wwww")) - (?{ . "\\(?:{\\(?:|\\(?:|}\\|[|}]\\)\\|[|-]\\)\\)") ; (regexp-opt '("{-" "{|" "{||" "{|}" "{||}")) - (?| . "\\(?:|\\(?:->\\|=>\\||=\\|[]=>|}-]\\)\\)") ; (regexp-opt '("|=" "|>" "||" "||=" "|->" "|=>" "|]" "|}" "|-")) - (?_ . "\\(?:_\\(?:|?_\\)\\)") ; (regexp-opt '("_|_" "__")) - (?\( . "\\(?:(\\*\\)") ; (regexp-opt '("(*")) - (?~ . "\\(?:~\\(?:~>\\|[=>@~-]\\)\\)")) ; (regexp-opt '("~-" "~=" "~>" "~@" "~~" "~~>")) - "An alist of all ligatures used by `+ligatures-extras-in-modes'. +(defvar +ligatures-prog-mode-list + '("|||>" "<|||" "<==>" "" "---" "-<<" + "<~~" "<~>" "<*>" "<||" "<|>" "<$>" "<==" "<=>" "<=<" "<->" + "<--" "<-<" "<<=" "<<-" "<<<" "<+>" "" "###" "#_(" "..<" + "..." "+++" "/==" "///" "_|_" "www" "&&" "^=" "~~" "~@" "~=" + "~>" "~-" "**" "*>" "*/" "||" "|}" "|]" "|=" "|>" "|-" "{|" + "[|" "]#" "::" ":=" ":>" ":<" "$>" "==" "=>" "!=" "!!" ">:" + ">=" ">>" ">-" "-~" "-|" "->" "--" "-<" "<~" "<*" "<|" "<:" + "<$" "<=" "<>" "<-" "<<" "<+" "" "++" "?:" + "?=" "?." "??" ";;" "/*" "/=" "/>" "//" "__" "~~" "(*" "*)" + "\\\\" "://") + "A list of ligatures to enable in all `prog-mode' buffers.") -The car is the character ASCII number, cdr is a regex which will call -`font-shape-gstring' when matched. - -Because of the underlying code in :ui ligatures module, the regex should match a -string starting with the character contained in car. - -This variable is used only if you built Emacs with Harfbuzz on a version >= 28") +(defvar +ligatures-all-modes-list + '() + "A list of ligatures to enable in all buffers.") (defvar +ligatures-in-modes '(not special-mode comint-mode eshell-mode term-mode vterm-mode Info-mode @@ -144,8 +125,10 @@ and cannot run in." (and (modulep! +extra) (+ligatures--enable-p +ligatures-extras-in-modes)))) (when in-mode-p - (if (boundp '+ligature--composition-table) - (setq-local composition-function-table +ligature--composition-table) + ;; If ligature-mode has been installed, there's no + ;; need to do anything, we activate global-ligature-mode + ;; later and handle all settings from `set-ligatures!' later. + (unless (fboundp #'ligature-mode-turn-on) (run-hooks '+ligatures--init-font-hook) (setq +ligatures--init-font-hook nil))) (when in-mode-extras-p @@ -177,44 +160,21 @@ and cannot run in." ((and IS-MAC (fboundp 'mac-auto-operator-composition-mode)) (add-hook 'doom-init-ui-hook #'mac-auto-operator-composition-mode 'append)) - ;; Harfbuzz and Mac builds do not need font-specific ligature support - ;; if they are above emacs-27. + ;; NOTE: the module does not support Emacs 27 and less, but if we still try to enable ligatures, + ;; it will end up in catastrophic work-loss errors, so we leave the check here for safety. ((and (> emacs-major-version 27) (or (featurep 'ns) (string-match-p "HARFBUZZ" system-configuration-features)) - (featurep 'composite)) ; Emacs loads `composite' at startup - (defvar +ligature--composition-table (make-char-table nil)) + (featurep 'composite)) ; Emacs loads `composite' at startup + + (use-package! ligature + :config + ;; Enable all `+ligatures-prog-mode-list' ligatures in programming modes + (ligature-set-ligatures 'prog-mode +ligatures-prog-mode-list) + (ligature-set-ligatures 't +ligatures-all-modes-list)) + (add-hook! 'doom-init-ui-hook :append - (defun +ligature-init-composition-table-h () - (dolist (char-regexp +ligatures-composition-alist) - (set-char-table-range - +ligature--composition-table - (car char-regexp) `([,(cdr char-regexp) 0 font-shape-gstring]))) - (set-char-table-parent +ligature--composition-table composition-function-table)))) - - ;; Fallback ligature support for certain, patched fonts. Install them with - ;; `+ligatures/install-patched-font' - ((defmacro +ligatures--def-font (id font-plist &rest alist) - (declare (indent 2)) - (let ((alist-var (intern (format "+ligatures-%s-font-alist" id))) - (setup-fn (intern (format "+ligatures-init-%s-font-h" id)))) - `(progn - (setf (alist-get ',id +ligatures--font-alist) (list ,@font-plist)) - (defvar ,alist-var ',alist ,(format "Name of the %s ligature font." id)) - (defun ,setup-fn (&rest _) - (cl-destructuring-bind (name &key _url files range) - (or (alist-get ',id +ligatures--font-alist) - (error "No ligature font called %s" ',id)) - (when range - (set-fontset-font t range name nil 'prepend)) - (setq-default prettify-symbols-alist - (append (default-value 'prettify-symbols-alist) - (mapcar #'+ligatures--correct-symbol-bounds ,alist-var))))) - (add-hook '+ligatures--init-font-hook #',setup-fn)))) - - (defvar +ligatures--font-alist ()) - - (cond ((modulep! +fira) (load! "+fira")) - ((modulep! +iosevka) (load! "+iosevka")) - ((modulep! +hasklig) (load! "+hasklig")) - ((modulep! +pragmata-pro) (load! "+pragmata-pro"))))) + (defun +ligature-enable-globally-h () + "Enables ligature checks globally in all buffers. +You can also do it per mode with `ligature-mode'." + (global-ligature-mode t))))) diff --git a/modules/ui/ligatures/doctor.el b/modules/ui/ligatures/doctor.el new file mode 100644 index 000000000..9ae683ab4 --- /dev/null +++ b/modules/ui/ligatures/doctor.el @@ -0,0 +1,16 @@ +;; This cond expression mimics the activation conditional of ligatures, +;; with a fallback that triggers a warning. +(cond + ((and IS-MAC (fboundp 'mac-auto-operator-composition-mode)) + (ignore)) + + ((and (> emacs-major-version 27) + (or (featurep 'ns) + (string-match-p "HARFBUZZ" system-configuration-features)) + (featurep 'composite)) ; Emacs loads `composite' at startup + (ignore)) + + (t + (if IS-MAC + (warn! "The (:ui ligatures) module does not support your version of Emacs. Install emacs-plus with at least Emacs 28, or emacs-mac.") + (warn! "The (:ui ligatures) module does not support your version of Emacs. Make sure to have at least Emacs 28 with Harfbuzz configured (should be the default).")))) diff --git a/modules/ui/ligatures/packages.el b/modules/ui/ligatures/packages.el new file mode 100644 index 000000000..813e08649 --- /dev/null +++ b/modules/ui/ligatures/packages.el @@ -0,0 +1,5 @@ +(when (and (or (featurep 'ns) + (string-match-p "HARFBUZZ" system-configuration-features)) + (featurep 'composite)) + (package! ligature + :pin "0e5d0a8554622bcb0ec634e364795650ff4f2457")) From 20cdba39a8207d170640853a9c1a2bacc9b368df Mon Sep 17 00:00:00 2001 From: Colin Woodbury Date: Mon, 11 Sep 2023 10:03:02 +0900 Subject: [PATCH 039/523] fix(evil): more reliable window detection At some point `windmove-find-other-window` stopped loading reliably, such that `SPC w H` would complain of a missing symbol. Indeed navigating to the implementation of `windmove` within Emacs's Lisp we find warnings that it has mostly been superceded by newer window APIs since 2013, and is implemented in terms of `window-in-direction`. By using `window-in-direction` directly, the loading problem disappears. --- modules/editor/evil/autoload/evil.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/editor/evil/autoload/evil.el b/modules/editor/evil/autoload/evil.el index 9527c1994..0f602752e 100644 --- a/modules/editor/evil/autoload/evil.el +++ b/modules/editor/evil/autoload/evil.el @@ -48,7 +48,7 @@ the only window, use evil-window-move-* (e.g. `evil-window-move-far-left')." (user-error "Cannot swap a dedicated window")) (let* ((this-window (selected-window)) (this-buffer (current-buffer)) - (that-window (windmove-find-other-window direction nil this-window)) + (that-window (window-in-direction direction nil this-window)) (that-buffer (window-buffer that-window))) (when (or (minibufferp that-buffer) (window-dedicated-p this-window)) From 2a73bb4e7c82ea851d55dc7ab31337d93a3eb265 Mon Sep 17 00:00:00 2001 From: Velnbur Date: Tue, 12 Sep 2023 13:28:09 +0300 Subject: [PATCH 040/523] bump: :ui treemacs Alexander-Miller/treemacs@00e96c842f05 -> Alexander-Miller/treemacs@fe471314f198 Fix: #7409 --- modules/ui/treemacs/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ui/treemacs/packages.el b/modules/ui/treemacs/packages.el index beba19700..8c7f1740c 100644 --- a/modules/ui/treemacs/packages.el +++ b/modules/ui/treemacs/packages.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; -*- ;;; ui/treemacs/packages.el -(package! treemacs :pin "00e96c842f0559a4e13f433d4b513de404676671") +(package! treemacs :pin "fe471314f198f9aff268637a766a6ade0a5b5d96") ;; These packages have no :pin because they're in the same repo (when (modulep! :editor evil +everywhere) (package! treemacs-evil)) From fd98b44e6a71a6ac43580a059d66b0327a95c99d Mon Sep 17 00:00:00 2001 From: Emily Bourke Date: Thu, 27 Jul 2023 14:35:08 +0100 Subject: [PATCH 041/523] tweak(workspaces): prefill current name on rename This change uses completing-read to get the new name from the user when renaming workspaces, to allow them to more easily make a small change to the existing name of a workspace. --- modules/ui/workspaces/autoload/workspaces.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ui/workspaces/autoload/workspaces.el b/modules/ui/workspaces/autoload/workspaces.el index 2c306d1d1..678cae5b8 100644 --- a/modules/ui/workspaces/autoload/workspaces.el +++ b/modules/ui/workspaces/autoload/workspaces.el @@ -221,7 +221,7 @@ workspace." ;;;###autoload (defun +workspace/rename (new-name) "Rename the current workspace." - (interactive (list (read-from-minibuffer "New workspace name: "))) + (interactive (list (completing-read "New workspace name: " (list (+workspace-current-name))))) (condition-case-unless-debug ex (let* ((current-name (+workspace-current-name)) (old-name (+workspace-rename current-name new-name))) From dababf9ae99382bcb2f3f7c06257925f5ab91961 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 12 Sep 2023 01:20:52 +0200 Subject: [PATCH 042/523] feat(php): doctor: rudimentary php & composer checks --- modules/lang/php/doctor.el | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules/lang/php/doctor.el b/modules/lang/php/doctor.el index 94f240ac5..6094a4c75 100644 --- a/modules/lang/php/doctor.el +++ b/modules/lang/php/doctor.el @@ -8,3 +8,9 @@ (assert! (or (not (modulep! +tree-sitter)) (modulep! :tools tree-sitter)) "This module requires (:tools tree-sitter)") + +(unless (executable-find "php") + (warn! "Couldn't find php in your PATH")) + +(unless (executable-find "composer") + (warn! "Couldn't find composer in your PATH")) From 95a5a32aacb1a66b281823f6fe44129d2b6cff92 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 12 Sep 2023 02:25:35 +0200 Subject: [PATCH 043/523] docs: expand multiple/non-standard config checks Close: #7391 Close: #7295 --- lisp/cli/doctor.el | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/lisp/cli/doctor.el b/lisp/cli/doctor.el index 7b796fe41..43b06bd21 100644 --- a/lisp/cli/doctor.el +++ b/lisp/cli/doctor.el @@ -96,11 +96,30 @@ in." (error! "Couldn't find the `rg' binary; this a hard dependecy for Doom, file searches may not work at all"))) (print! (start "Checking for Emacs config conflicts...")) - (when (file-exists-p "~/.emacs") - (warn! "Detected an ~/.emacs file, which may prevent Doom from loading") - (explain! "If Emacs finds an ~/.emacs file, it will ignore ~/.emacs.d, where Doom is " - "typically installed. If you're seeing a vanilla Emacs splash screen, this " - "may explain why. If you use Chemacs, you may ignore this warning.")) + (print-group! + (unless (or (file-equal-p doom-emacs-dir "~/.emacs.d") + (file-equal-p doom-emacs-dir "~/.config/emacs")) + (print! (warn "Doom is installed in a non-standard location")) + (explain! "The standard locations are ~/.config/emacs or ~/.emacs.d. Emacs will fail " + "to load Doom if it is not explicitly told where to look for it. In Emacs 29+, " + "this is possible with the --init-directory option:\n\n" + " $ emacs --init-directory '" (abbreviate-file-name doom-emacs-dir) "'\n\n" + "However, Emacs 27-28 users have no choice but to move Doom to a standard " + "location.\n\n" + "Chemacs users may ignore this warning, however.")) + (let (found?) + (dolist (file '("~/_emacs" "~/.emacs" "~/.emacs.el" "~/.emacs.d" "~/.config/emacs")) + (when (and (file-exists-p file) + (not (file-equal-p file doom-emacs-dir))) + (setq found? t) + (print! (warn "Found another Emacs config: %s (%s)") + file (if (file-directory-p file) "directory" "file")))) + (when found? + (explain! "Having multiple Emacs configs may prevent Doom from loading properly. Emacs " + "will load the first it finds and ignore the rest. If Doom isn't starting up " + "correctly (e.g. you get a vanilla splash screen), make sure that only one of " + "these exist.\n\n" + "Chemacs users may ignore this warning.")))) (print! (start "Checking for great Emacs features...")) (unless (functionp 'json-serialize) From 447b59c9c06dbb9fb9cec1e57f1d10c3c3049107 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 12 Sep 2023 02:30:20 +0200 Subject: [PATCH 044/523] docs: properly indent core doctor checks --- lisp/cli/doctor.el | 70 ++++++++++++++++++++++++---------------------- 1 file changed, 36 insertions(+), 34 deletions(-) diff --git a/lisp/cli/doctor.el b/lisp/cli/doctor.el index 43b06bd21..dabd88ee5 100644 --- a/lisp/cli/doctor.el +++ b/lisp/cli/doctor.el @@ -121,42 +121,44 @@ in." "these exist.\n\n" "Chemacs users may ignore this warning.")))) - (print! (start "Checking for great Emacs features...")) - (unless (functionp 'json-serialize) - (warn! "Emacs was not built with native JSON support") - (explain! "Users will see a substantial performance gain by building Emacs with " - "jansson support (i.e. a native JSON library), particularly LSP users. " - "You must install a prebuilt Emacs binary with this included, or compile " - "Emacs with the --with-json option.")) - (unless (featurep 'native-compile) - (warn! "Emacs was not built with native compilation support") - (explain! "Users will see a substantial performance gain by building Emacs with " - "native compilation support, availible in emacs 28+." - "You must install a prebuilt Emacs binary with this included, or compile " - "Emacs with the --with-native-compilation option.")) + (print! (start "Checking for missing Emacs features...")) + (print-group! + (unless (functionp 'json-serialize) + (warn! "Emacs was not built with native JSON support") + (explain! "Users will see a substantial performance gain by building Emacs with " + "jansson support (i.e. a native JSON library), particularly LSP users. " + "You must install a prebuilt Emacs binary with this included, or compile " + "Emacs with the --with-json option.")) + (unless (featurep 'native-compile) + (warn! "Emacs was not built with native compilation support") + (explain! "Users will see a substantial performance gain by building Emacs with " + "native compilation support, availible in emacs 28+." + "You must install a prebuilt Emacs binary with this included, or compile " + "Emacs with the --with-native-compilation option."))) (print! (start "Checking for private config conflicts...")) - (let* ((xdg-dir (concat (or (getenv "XDG_CONFIG_HOME") - "~/.config") - "/doom/")) - (doom-dir (or (getenv "DOOMDIR") - "~/.doom.d/")) - (dir (if (file-directory-p xdg-dir) - xdg-dir - doom-dir))) - (when (file-equal-p dir doom-emacs-dir) - (print! (error "Doom was cloned to %S, not ~/.emacs.d or ~/.config/emacs" - (path dir))) - (explain! "Doom's source and your private Doom config have to live in separate directories. " - "Putting them in the same directory (without changing the DOOMDIR environment " - "variable) will cause errors on startup.")) - (when (and (not (file-equal-p xdg-dir doom-dir)) - (file-directory-p xdg-dir) - (file-directory-p doom-dir)) - (print! (warn "Detected two private configs, in %s and %s") - (abbreviate-file-name xdg-dir) - doom-dir) - (explain! "The second directory will be ignored, as it has lower precedence."))) + (print-group! + (let* ((xdg-dir (concat (or (getenv "XDG_CONFIG_HOME") + "~/.config") + "/doom/")) + (doom-dir (or (getenv "DOOMDIR") + "~/.doom.d/")) + (dir (if (file-directory-p xdg-dir) + xdg-dir + doom-dir))) + (when (file-equal-p dir doom-emacs-dir) + (print! (error "Doom was cloned to %S, not ~/.emacs.d or ~/.config/emacs" + (path dir))) + (explain! "Doom's source and your private Doom config have to live in separate directories. " + "Putting them in the same directory (without changing the DOOMDIR environment " + "variable) will cause errors on startup.")) + (when (and (not (file-equal-p xdg-dir doom-dir)) + (file-directory-p xdg-dir) + (file-directory-p doom-dir)) + (print! (warn "Detected two private configs, in %s and %s") + (abbreviate-file-name xdg-dir) + doom-dir) + (explain! "The second directory will be ignored, as it has lower precedence.")))) (print! (start "Checking for stale elc files...")) (elc-check-dir doom-core-dir) From 69cedebfdac25807fa1b916805434a3ccc6c8b70 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 12 Sep 2023 02:31:44 +0200 Subject: [PATCH 045/523] docs: add fish shell check --- lisp/cli/doctor.el | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/lisp/cli/doctor.el b/lisp/cli/doctor.el index dabd88ee5..0e3495eca 100644 --- a/lisp/cli/doctor.el +++ b/lisp/cli/doctor.el @@ -160,6 +160,23 @@ in." doom-dir) (explain! "The second directory will be ignored, as it has lower precedence.")))) + (print! (start "Checking for common environmental issues...")) + (when (string-match-p "/fish$" shell-file-name) + (print! (warn "Detected Fish as your $SHELL")) + (explain! "Fish (and possibly other non-POSIX shells) is known to inject garbage " + "output into some of the child processes that Emacs spawns. Many Emacs " + "packages/utilities will choke on this output, causing unpredictable issues. " + "To get around this, either:\n\n" + " - Add the following to $DOOMDIR/config.el:\n\n" + " (setq shell-file-name (executable-find \"bash\"))\n\n" + " - Or change your default shell to a POSIX shell (like bash or zsh) " + " and explicitly configure your terminal apps to use the shell you " + " want.\n\n" + "If you opt for option 1 and use one of Emacs' terminal emulators, you " + "will also need to configure them to use Fish, e.g.\n\n" + " (setq-default vterm-shell (executable-find \"fish\"))\n\n" + " (setq-default explicit-shell-file-name (executable-find \"fish\"))\n")) + (print! (start "Checking for stale elc files...")) (elc-check-dir doom-core-dir) (elc-check-dir doom-modules-dir) From 89421f018be70d0a6c34009ce461a56b202b637c Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 12 Sep 2023 05:14:39 +0200 Subject: [PATCH 046/523] bump: :app rss remyhonig/elfeed-org@3242ec051980 -> remyhonig/elfeed-org@f1c1fd6b1694 skeeto/elfeed@162d7d545ed4 -> skeeto/elfeed@55fb162fa27e Close: #7407 Co-authored-by: fosskers --- modules/app/rss/packages.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/app/rss/packages.el b/modules/app/rss/packages.el index bc1c805c1..9f3377f34 100644 --- a/modules/app/rss/packages.el +++ b/modules/app/rss/packages.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; -*- ;;; app/rss/packages.el -(package! elfeed :pin "162d7d545ed41c27967d108c04aa31f5a61c8e16") +(package! elfeed :pin "55fb162fa27e71b88effa59a83c57842e262b00f") (package! elfeed-goodies :pin "544ef42ead011d960a0ad1c1d34df5d222461a6b") (when (modulep! +org) - (package! elfeed-org :pin "3242ec0519800a58f20480c8a6e3b3337d137084")) + (package! elfeed-org :pin "f1c1fd6b1694028ab7f2dd7e9ddbbef12711b353")) From 0f0fade3c028dafea56bd9ca45f0e6b57af4f5db Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 12 Sep 2023 15:33:01 +0200 Subject: [PATCH 047/523] fix(layout): bepo: void-variable org-capture-mode-map error Caused if org is loaded without/before org-capture. Ref: #7408 --- modules/input/layout/+bepo.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/input/layout/+bepo.el b/modules/input/layout/+bepo.el index a783bebc6..e6f5aa598 100644 --- a/modules/input/layout/+bepo.el +++ b/modules/input/layout/+bepo.el @@ -149,7 +149,7 @@ In all cases, 'h' functions go to 'c' and 'l' ones go to 'r' so the navigation k "»" ">")) (after! lsp-ui (+layout-bepo-rotate-ts-bare-keymap '(lsp-ui-peek-mode-map))) - (after! org + (after! org-capture (defadvice! doom-bepo--org-completing-read (&rest args) "Completing-read with SPACE being a normal character, and C-c mapping left alone." :override #'org-completing-read From 8e671f494d5dd4906d8f2715364ec7ccd0ad34cf Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 12 Sep 2023 17:00:28 +0200 Subject: [PATCH 048/523] fix(emacs-lisp): failure to look up module docs Incorrect regex would cause (search-failed "\* ...$") errors, and would fail to unfold the target entries if it was hidden. --- modules/lang/emacs-lisp/autoload.el | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/modules/lang/emacs-lisp/autoload.el b/modules/lang/emacs-lisp/autoload.el index 5eb7ee499..b2e650320 100644 --- a/modules/lang/emacs-lisp/autoload.el +++ b/modules/lang/emacs-lisp/autoload.el @@ -102,15 +102,18 @@ if it's callable, `apropos' otherwise." (cond ((when-let (module (+emacs-lisp--module-at-point)) (doom/help-modules (car module) (cadr module)) (when (eq major-mode 'org-mode) + (goto-char (point-min)) (with-demoted-errors "%s" (re-search-forward (if (caddr module) - "\\* Module flags$" - "\\* Description$")) + "^\\*+ Module flags" + "^\\* Description")) (when (caddr module) (re-search-forward (format "=\\%s=" (caddr module)) nil t)) - (when (invisible-p (point)) + (when (memq (get-char-property (line-end-position) + 'invisible) + '(outline org-fold-outline)) (org-show-hidden-entry)))) 'deferred)) (thing (helpful-symbol (intern thing))) From af8ec870acf2500389e06151e8ab015e00118acc Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 12 Sep 2023 18:28:33 +0200 Subject: [PATCH 049/523] fix(lib): 'back to *' links in doom-docs --- lisp/lib/docs.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/lib/docs.el b/lisp/lib/docs.el index 0ca2a6241..0b218f90a 100644 --- a/lisp/lib/docs.el +++ b/lisp/lib/docs.el @@ -25,7 +25,7 @@ (("/docs/[^/]+\\.org$" "/modules/README\\.org$") (:label "Back to index" :icon "arrow_back" - :link ("doom-index" . "") + :link "doom-index" :help-echo "Navigate to the root index")) ("/modules/[^/]+/README\\.org$" (:label "Back to module index" From 261f94c768aa986284c6c9b55be101e418ab9b10 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 12 Sep 2023 18:38:28 +0200 Subject: [PATCH 050/523] bump: :tools NicolasPetton/pass@5651da53137d -> NicolasPetton/pass@c721604b3bd0 Olivia5k/makefile-executor.el@170d14d834a0 -> Olivia5k/makefile-executor.el@d1d98eaf522a Silex/docker.el@cc0046e6a557 -> Silex/docker.el@6997c86a24d4 cjohansson/emacs-ssh-deploy@94b56c0428fa -> cjohansson/emacs-ssh-deploy@95fb076c9b65 editorconfig/editorconfig-emacs@6f6b5c1a95a7 -> editorconfig/editorconfig-emacs@2fed9599bcfe emacs-lsp/dap-mode@de41d62fc4f9 -> emacs-lsp/dap-mode@096070aacff8 emacs-lsp/lsp-mode@0dfe2145734f -> emacs-lsp/lsp-mode@266945b3e470 emacs-pe/docker-tramp.el@930d7b46c180 -> emacs-pe/docker-tramp.el@19d0771db4e6 emacs-straight/eglot@a399fc0d0358 -> emacs-straight/eglot@8ccec6532e70 emacs-straight/rainbow-mode@8e96388fb4d6 -> emacs-straight/rainbow-mode@24437ec2c66a emacs-tree-sitter/tree-sitter-langs@944a734b7c3a -> emacs-tree-sitter/tree-sitter-langs@2f0f97abbd97 emacsfodder/kurecolor@ac67ceba8583 -> emacsfodder/kurecolor@fbf98e1e384d emacsorphanage/quickrun@7a89313c07a2 -> emacsorphanage/quickrun@6f963189305e meain/evil-textobj-tree-sitter@e8bb9d63deeb -> meain/evil-textobj-tree-sitter@19979843f5fc millejoh/emacs-ipython-notebook@b2410dc96f61 -> millejoh/emacs-ipython-notebook@998ba22660be nicolaisingh/saveplace-pdf-view@54ed966b8425 -> nicolaisingh/saveplace-pdf-view@abfb5e1f463c purcell/envrc@1954e8c0b5c8 -> purcell/envrc@33d01388ce7f vedang/pdf-tools@bc2ba117e8c3 -> vedang/pdf-tools@c69e7656a467 xiongtx/eros@dd8910279226 -> xiongtx/eros@a9a92bdc6be0 zx2c4/password-store@26d2dae04bb7 -> zx2c4/password-store@28cec11f1dbe I've intentionally omitted magit from this list while I resolve incompatibilities between code-review and later versions of closql (emacsql). I've also omitted treemacs b/c of #7410. --- modules/tools/debugger/packages.el | 2 +- modules/tools/direnv/packages.el | 2 +- modules/tools/docker/packages.el | 4 ++-- modules/tools/editorconfig/packages.el | 2 +- modules/tools/ein/packages.el | 2 +- modules/tools/eval/packages.el | 4 ++-- modules/tools/lsp/packages.el | 4 ++-- modules/tools/make/packages.el | 2 +- modules/tools/pass/packages.el | 4 ++-- modules/tools/pdf/packages.el | 4 ++-- modules/tools/rgb/packages.el | 4 ++-- modules/tools/tree-sitter/packages.el | 4 ++-- modules/tools/upload/packages.el | 2 +- 13 files changed, 20 insertions(+), 20 deletions(-) diff --git a/modules/tools/debugger/packages.el b/modules/tools/debugger/packages.el index 308ff670e..b418d4d3a 100644 --- a/modules/tools/debugger/packages.el +++ b/modules/tools/debugger/packages.el @@ -6,5 +6,5 @@ (package! realgud-trepan-ni :pin "0ec088ea343835e24ae73da09bea96bfb02a3130"))) (when (modulep! +lsp) - (package! dap-mode :pin "de41d62fc4f94f61ffdf7713a043dca9c02297c8") + (package! dap-mode :pin "096070aacff875a09c13e596e5d60a55e0f07ab1") (package! posframe :pin "017deece88360c7297265680d78a0bb316470716")) diff --git a/modules/tools/direnv/packages.el b/modules/tools/direnv/packages.el index 4f79e87f5..2b955547d 100644 --- a/modules/tools/direnv/packages.el +++ b/modules/tools/direnv/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/direnv/packages.el -(package! envrc :pin "1954e8c0b5c8440ea9852eeb7c046a677fa544f6") +(package! envrc :pin "33d01388ce7ff14cb209015ce6f0d1a5bda6eb07") diff --git a/modules/tools/docker/packages.el b/modules/tools/docker/packages.el index 29d369fe0..22f158c64 100644 --- a/modules/tools/docker/packages.el +++ b/modules/tools/docker/packages.el @@ -1,8 +1,8 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/docker/packages.el -(package! docker :pin "cc0046e6a557dce0ccc4108dd22e04f21ba8b0dc") +(package! docker :pin "6997c86a24d440fa04035aa8c9499a52df6e655d") ;; tramp-container (included with Emacs 29+) replaces docker-tramp (when (< emacs-major-version 29) - (package! docker-tramp :pin "930d7b46c180d8a13240a028c1b40af84f2a3219")) + (package! docker-tramp :pin "19d0771db4e6b89e19c00af5806438e315779c15")) (package! dockerfile-mode :pin "52c6c00da1d31c0b6c29c74335b3af63ed6bf06c") diff --git a/modules/tools/editorconfig/packages.el b/modules/tools/editorconfig/packages.el index c0e1f709b..e991a7e1e 100644 --- a/modules/tools/editorconfig/packages.el +++ b/modules/tools/editorconfig/packages.el @@ -3,4 +3,4 @@ (package! editorconfig :recipe (:nonrecursive t) - :pin "6f6b5c1a95a7fd326915fedcf6de634fe0d79999") + :pin "2fed9599bcfea5d1aa9fb57dc9118d0f82b6c999") diff --git a/modules/tools/ein/packages.el b/modules/tools/ein/packages.el index ce6bff87a..311930d76 100644 --- a/modules/tools/ein/packages.el +++ b/modules/tools/ein/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/ein/packages.el -(package! ein :pin "b2410dc96f61aa806a7934099d8f1e40c8f6ca18") +(package! ein :pin "998ba22660be2035cd23bed1555e47748c4da8a2") diff --git a/modules/tools/eval/packages.el b/modules/tools/eval/packages.el index 3c3cac810..c03341c3d 100644 --- a/modules/tools/eval/packages.el +++ b/modules/tools/eval/packages.el @@ -1,6 +1,6 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/eval/packages.el -(package! quickrun :pin "7a89313c07a21eae9cd69a1a98e2a134d559e04f") +(package! quickrun :pin "6f963189305e8311c8193ba774f4244eb1315f57") (when (modulep! +overlay) - (package! eros :pin "dd8910279226259e100dab798b073a52f9b4233a")) + (package! eros :pin "a9a92bdc6be0521a6a06eb464be55ed61946639c")) diff --git a/modules/tools/lsp/packages.el b/modules/tools/lsp/packages.el index f184ccdf6..c4f76e1d6 100644 --- a/modules/tools/lsp/packages.el +++ b/modules/tools/lsp/packages.el @@ -3,13 +3,13 @@ (if (modulep! +eglot) (progn - (package! eglot :pin "a399fc0d035833d93da5e6424674f0dbdd631fb0") + (package! eglot :pin "8ccec6532e70f68289a06acc24437986a8a8a6c1") (when (modulep! :completion vertico) (package! consult-eglot :pin "db9d41c9812a5a8a7b9a22fa7f3c314e37584d41")) (when (and (modulep! :checkers syntax) (not (modulep! :checkers syntax +flymake))) (package! flycheck-eglot :pin "9ff8d0068be59b1450964b390349d75a68af21ed"))) - (package! lsp-mode :pin "0dfe2145734f91c79aa3bbe666327736982811d7") + (package! lsp-mode :pin "266945b3e470212305812581d24a938a96c47a3a") (package! lsp-ui :pin "0dd39900c8ed8145d207985cb2f65cedd1ffb410") (when (modulep! :completion ivy) (package! lsp-ivy :pin "9ecf4dd9b1207109802bd1882aa621eb1c385106")) diff --git a/modules/tools/make/packages.el b/modules/tools/make/packages.el index bb5038a0b..94ceb365b 100644 --- a/modules/tools/make/packages.el +++ b/modules/tools/make/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/make/packages.el -(package! makefile-executor :pin "170d14d834a0d163cd618d642d4580ff75b014be") +(package! makefile-executor :pin "d1d98eaf522a767561f6c7cbd8d2526be58b3ec5") diff --git a/modules/tools/pass/packages.el b/modules/tools/pass/packages.el index d90c8d328..5e0816c15 100644 --- a/modules/tools/pass/packages.el +++ b/modules/tools/pass/packages.el @@ -1,8 +1,8 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/pass/packages.el -(package! pass :pin "5651da53137db9adcb125b4897c2fe27eeb4368d") -(package! password-store :pin "26d2dae04bb76a87be6960861c10432820cd5d55") +(package! pass :pin "c721604b3bd0c7ce7870f1a9fa0aa71f352a1009") +(package! password-store :pin "28cec11f1dbe6c4273d30370af45b69c9f408386") (package! password-store-otp :pin "be3a00a981921ed1b2f78012944dc25eb5a0beca") (when (modulep! :completion ivy) diff --git a/modules/tools/pdf/packages.el b/modules/tools/pdf/packages.el index adf70231f..4bca3a0e1 100644 --- a/modules/tools/pdf/packages.el +++ b/modules/tools/pdf/packages.el @@ -1,5 +1,5 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/pdf/packages.el -(package! pdf-tools :pin "bc2ba117e8c3196ff9adf0da4fa1e63a8da3d7c8") -(package! saveplace-pdf-view :pin "54ed966b842501c3c092dbf57b372e37b033c578") +(package! pdf-tools :pin "c69e7656a4678fe25afbd29f3503dd19ee7f9896") +(package! saveplace-pdf-view :pin "abfb5e1f463cffc18218a0f7f2fa141a271b1813") diff --git a/modules/tools/rgb/packages.el b/modules/tools/rgb/packages.el index 0eddf08b1..587095dc8 100644 --- a/modules/tools/rgb/packages.el +++ b/modules/tools/rgb/packages.el @@ -1,5 +1,5 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/rgb/packages.el -(package! rainbow-mode :pin "8e96388fb4d616a9dde23e712bad0d9cd048fbf0") -(package! kurecolor :pin "ac67ceba85839ab1ced96fad605bf023b697263f") +(package! rainbow-mode :pin "24437ec2c66a889643c5c5b3fbd27c239a68976c") +(package! kurecolor :pin "fbf98e1e384dd11bbb5764ae54b36353f0691d1e") diff --git a/modules/tools/tree-sitter/packages.el b/modules/tools/tree-sitter/packages.el index 342ac913a..6b57fb998 100644 --- a/modules/tools/tree-sitter/packages.el +++ b/modules/tools/tree-sitter/packages.el @@ -2,9 +2,9 @@ ;;; tools/tree-sitter/packages.el (package! tree-sitter :pin "3cfab8a0e945db9b3df84437f27945746a43cc71") -(package! tree-sitter-langs :pin "944a734b7c3a5922a7e9a2009a9165e2dc195b18") +(package! tree-sitter-langs :pin "2f0f97abbd97e17773a24eec3f329d262f81d020") (package! tree-sitter-indent :pin "4ef246db3e4ff99f672fe5e4b416c890f885c09e") (when (modulep! :editor evil +everywhere) (package! evil-textobj-tree-sitter - :pin "e8bb9d63deeb2953ff9600e1633de667b3d7673e")) + :pin "19979843f5fc437917f9a4dae977f5e6d4793726")) diff --git a/modules/tools/upload/packages.el b/modules/tools/upload/packages.el index 958f8f113..cfbbf6d6e 100644 --- a/modules/tools/upload/packages.el +++ b/modules/tools/upload/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/upload/packages.el -(package! ssh-deploy :pin "94b56c0428fa0c788578161edc9e7992b13cd400") +(package! ssh-deploy :pin "95fb076c9b657c5f1bfad3ee5bf1f8691c50d428") From 7acb67285c58f99cac72337e975286aba5ca540e Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 12 Sep 2023 18:49:12 +0200 Subject: [PATCH 051/523] dev: shell.nix: add emacs 29, 30.0.50, & CI versions And default to 29.1 (the new stable release of Emacs). --- shell.nix | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/shell.nix b/shell.nix index 80ad84095..0f3954172 100644 --- a/shell.nix +++ b/shell.nix @@ -18,11 +18,15 @@ # nix-shell --argstr emacs 27.2 # 27.2 # nix-shell --argstr emacs 28.1 # 28.1 # nix-shell --argstr emacs 28.2 # 28.2 -# nix-shell --argstr emacs head # 29.0.50 +# nix-shell --argstr emacs 29.1 # 29.1 +# nix-shell --argstr emacs head # 30.0.50 # nix-shell --argstr emacs ci-26.3 # 26.3 (barebones; no GUI) # nix-shell --argstr emacs ci-27.1 # 27.1 (barebones; no GUI) # nix-shell --argstr emacs ci-27.2 # 27.2 (barebones; no GUI) -# nix-shell --argstr emacs ci-HEAD # 29.0.50 (barebones; no GUI) +# nix-shell --argstr emacs ci-28.1 # 28.1 (barebones; no GUI) +# nix-shell --argstr emacs ci-28.2 # 28.2 (barebones; no GUI) +# nix-shell --argstr emacs ci-29.1 # 29.1 (barebones; no GUI) +# nix-shell --argstr emacs ci-HEAD # 30.0.50 (barebones; no GUI) { pkgs ? import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/22.05.tar.gz") { @@ -37,10 +41,11 @@ emacs27-1 = (import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/11264a390b197b80edeffac6f20e582f3ea318bd.tar.gz") {}).emacs; emacs27-2 = (import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/4c87cb87a2db6b9eb43541c1cf83f2a2f725fa25.tar.gz") {}).emacs; emacs28-1 = (import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/54e795706d9fa90004ed1274af639a717f04a2aa.tar.gz") {}).emacs; + emacs29-1 = (import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/c434383f2a4866a7c674019b4cdcbfc55db3c4ab.tar.gz") {}).emacs29; }) ]; } -, emacs ? "28.2" +, emacs ? "29.1" , emacsdir ? "$(pwd)" , doomdir ? "" , doomlocaldir ? "$EMACSDIR/.local" }: @@ -50,12 +55,14 @@ let emacsPkg = (if emacs == "26.3" then pkgs.emacs26 else if emacs == "27.2" then pkgs.emacs27-2 else if emacs == "28.1" then pkgs.emacs28-1 else if emacs == "28.2" then pkgs.emacs + else if emacs == "29.1" then pkgs.emacs29-1 else if emacs == "head" then pkgs.emacsGit else if emacs == "ci-26.3" then pkgs.emacs-26-3 else if emacs == "ci-27.1" then pkgs.emacs-27-1 else if emacs == "ci-27.2" then pkgs.emacs-27-2 else if emacs == "ci-28.1" then pkgs.emacs-28-1 else if emacs == "ci-28.2" then pkgs.emacs-28-2 + else if emacs == "ci-29.1" then pkgs.emacs-29-1 else if emacs == "ci-head" then pkgs.emacs-snapshot else pkgs.emacs); in pkgs.stdenv.mkDerivation { From f26b038ec3aae2c10123d05c1571c2280bdfef99 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 12 Sep 2023 18:56:01 +0200 Subject: [PATCH 052/523] fix: prevent quit in the middle of doom/escape --- lisp/doom-keybinds.el | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/lisp/doom-keybinds.el b/lisp/doom-keybinds.el index 29788e9a9..0cc6e4841 100644 --- a/lisp/doom-keybinds.el +++ b/lisp/doom-keybinds.el @@ -93,19 +93,20 @@ all hooks after it are ignored.") (defun doom/escape (&optional interactive) "Run `doom-escape-hook'." (interactive (list 'interactive)) - (cond ((minibuffer-window-active-p (minibuffer-window)) - ;; quit the minibuffer if open. - (when interactive - (setq this-command 'abort-recursive-edit)) - (abort-recursive-edit)) - ;; Run all escape hooks. If any returns non-nil, then stop there. - ((run-hook-with-args-until-success 'doom-escape-hook)) - ;; don't abort macros - ((or defining-kbd-macro executing-kbd-macro) nil) - ;; Back to the default - ((unwind-protect (keyboard-quit) + (let ((inhibit-quit t)) + (cond ((minibuffer-window-active-p (minibuffer-window)) + ;; quit the minibuffer if open. (when interactive - (setq this-command 'keyboard-quit)))))) + (setq this-command 'abort-recursive-edit)) + (abort-recursive-edit)) + ;; Run all escape hooks. If any returns non-nil, then stop there. + ((run-hook-with-args-until-success 'doom-escape-hook)) + ;; don't abort macros + ((or defining-kbd-macro executing-kbd-macro) nil) + ;; Back to the default + ((unwind-protect (keyboard-quit) + (when interactive + (setq this-command 'keyboard-quit))))))) (global-set-key [remap keyboard-quit] #'doom/escape) From 7bdf7cf7c0bbaa76d983ef8930bfe90cd3c8a85e Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 12 Sep 2023 18:56:29 +0200 Subject: [PATCH 053/523] refactor: doom-guess-mode-h: return non-nil on success --- lisp/doom-editor.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lisp/doom-editor.el b/lisp/doom-editor.el index aa90e4f72..9f79d7d57 100644 --- a/lisp/doom-editor.el +++ b/lisp/doom-editor.el @@ -130,7 +130,8 @@ or file path may exist now." (let ((buffer (or (buffer-base-buffer) (current-buffer)))) (and (buffer-file-name buffer) (eq buffer (window-buffer (selected-window))) ; only visible buffers - (set-auto-mode)))))) + (set-auto-mode) + (not (eq major-mode 'fundamental-mode))))))) (defadvice! doom--shut-up-autosave-a (fn &rest args) "If a file has autosaved data, `after-find-file' will pause for 1 second to From 4ecd616cd8f60640d6b0be2ffc3d762e88099bb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Tue, 16 Aug 2022 08:13:55 +0100 Subject: [PATCH 054/523] refactor(format): replace with apheleia Initial refactor of format module to replace format-all with apheleia --- modules/editor/format/autoload/format.el | 319 ++++----------------- modules/editor/format/autoload/settings.el | 161 ++--------- modules/editor/format/config.el | 89 ++---- modules/editor/format/packages.el | 3 +- modules/editor/format/test/test-format.el | 103 ------- modules/lang/ocaml/config.el | 2 - modules/lang/php/config.el | 1 - modules/lang/sh/config.el | 15 +- modules/lang/web/+html.el | 18 +- 9 files changed, 126 insertions(+), 585 deletions(-) delete mode 100644 modules/editor/format/test/test-format.el diff --git a/modules/editor/format/autoload/format.el b/modules/editor/format/autoload/format.el index b06290da9..6f5ee252b 100644 --- a/modules/editor/format/autoload/format.el +++ b/modules/editor/format/autoload/format.el @@ -1,276 +1,85 @@ ;;; editor/format/autoload.el -*- lexical-binding: t; -*- -(defvar +format-region-p nil - "Is non-nil if currently reformatting a selected region, rather than the whole -buffer.") - -;;;###autoload -(autoload 'format-all--probe "format-all") - -(defun +format--delete-whole-line (&optional arg) - "Delete the current line without putting it in the `kill-ring'. -Derived from function `kill-whole-line'. ARG is defined as for that -function. - -Stolen shamelessly from go-mode" - (setq arg (or arg 1)) - (if (and (> arg 0) - (eobp) - (save-excursion (forward-visible-line 0) (eobp))) - (signal 'end-of-buffer nil)) - (if (and (< arg 0) - (bobp) - (save-excursion (end-of-visible-line) (bobp))) - (signal 'beginning-of-buffer nil)) - (cond ((zerop arg) - (delete-region (progn (forward-visible-line 0) (point)) - (progn (end-of-visible-line) (point)))) - ((< arg 0) - (delete-region (progn (end-of-visible-line) (point)) - (progn (forward-visible-line (1+ arg)) - (unless (bobp) - (backward-char)) - (point)))) - ((delete-region (progn (forward-visible-line 0) (point)) - (progn (forward-visible-line arg) (point)))))) - -;;;###autoload -(defun +format--apply-rcs-patch (patch-buffer) - "Apply an RCS-formatted diff from PATCH-BUFFER to the current buffer. - -Stolen shamelessly from go-mode" - (let ((target-buffer (current-buffer)) - ;; Relative offset between buffer line numbers and line numbers - ;; in patch. - ;; - ;; Line numbers in the patch are based on the source file, so - ;; we have to keep an offset when making changes to the - ;; buffer. - ;; - ;; Appending lines decrements the offset (possibly making it - ;; negative), deleting lines increments it. This order - ;; simplifies the forward-line invocations. - (line-offset 0) - (column (current-column))) - (save-excursion - (with-current-buffer patch-buffer - (goto-char (point-min)) - (while (not (eobp)) - (unless (looking-at "^\\([ad]\\)\\([0-9]+\\) \\([0-9]+\\)") - (error "Invalid rcs patch or internal error in +format--apply-rcs-patch")) - (forward-line) - (let ((action (match-string 1)) - (from (string-to-number (match-string 2))) - (len (string-to-number (match-string 3)))) - (cond - ((equal action "a") - (let ((start (point))) - (forward-line len) - (let ((text (buffer-substring start (point)))) - (with-current-buffer target-buffer - (cl-decf line-offset len) - (goto-char (point-min)) - (forward-line (- from len line-offset)) - (insert text))))) - ((equal action "d") - (with-current-buffer target-buffer - (goto-char (point-min)) - (forward-line (1- (- from line-offset))) - (cl-incf line-offset len) - (+format--delete-whole-line len))) - ((error "Invalid rcs patch or internal error in +format--apply-rcs-patch"))))))) - (move-to-column column))) - (defun +format--current-indentation () (save-excursion (goto-char (point-min)) (skip-chars-forward " \t\n") (current-indentation))) - -;; -;; Public library - -(defun +format-completing-read () - "TODO" - (require 'format-all) - (let* ((fmtlist (mapcar #'symbol-name (hash-table-keys format-all--format-table))) - (fmt (completing-read "Formatter: " fmtlist))) - (if fmt (intern fmt)))) - -;;;###autoload -(defun +format-probe-a (fn) - "Use `+format-with' instead, if it is set. -Prompts for a formatter if universal arg is set." - (cond ((or buffer-read-only (eq +format-with :none)) - (list nil nil)) - (current-prefix-arg - (list (or (+format-completing-read) - (user-error "Aborted")) - t)) - (+format-with - (list +format-with t)) - ((and +format-with-lsp - (bound-and-true-p lsp-managed-mode) - (lsp-feature? "textDocument/formatting")) - (list 'lsp nil)) - ((and +format-with-lsp - (bound-and-true-p eglot--managed-mode) - (eglot--server-capable :documentFormattingProvider)) - (list 'eglot nil)) - ((funcall fn)))) - -;;;###autoload -(defun +format-buffer-a (formatter mode-result) - "Advice that extends `format-all-buffer--with' to: - -1. Enable partial/region reformatting, while preserving leading indentation, -2. Applies changes via RCS patch, line by line, to protect buffer markers and - reduce cursor movement or window scrolling. - -See `+format/buffer' for the interactive version of this function, and -`+format-buffer-h' to use as a `before-save-hook' hook." - (cond - ((eq formatter 'lsp) - (call-interactively - (if +format-region-p #'lsp-format-region #'lsp-format-buffer))) - ((eq formatter 'eglot) - (call-interactively - (if +format-region-p #'eglot-format #'eglot-format-buffer))) - ((let ((f-function (gethash formatter format-all--format-table)) - (executable (format-all--formatter-executable formatter)) - (indent 0) - (old-line-number (line-number-at-pos)) - (old-column (current-column))) - (pcase-let* - ((`(,output ,errput) - ;; To reliably format regions, rather than the whole buffer, and - ;; `format-all' (and various formatting functions, like `gofmt') widen - ;; the buffer, we must copy the region first. - (let ((output (buffer-substring-no-properties (point-min) (point-max))) - (origin-buffer (or (buffer-base-buffer) (current-buffer))) - ;; Fixes #5133: some packages (like lsp-mode) can do a bunch - ;; of complicated stuff in these hooks. Better to not have to - ;; deal with any of them at all. - write-file-functions - before-save-hook - after-save-hook - kill-buffer-query-functions - kill-buffer-hook) - (with-temp-buffer - (with-silent-modifications - (insert output) - ;; Ensure this temp buffer seems as much like the origin - ;; buffer as possible, in case the formatter is an elisp - ;; function, like `gofmt'. - (cl-loop for (var . val) - in (cl-remove-if-not #'listp (buffer-local-variables origin-buffer)) - ;; Making enable-multibyte-characters buffer-local - ;; causes an error. - unless (eq var 'enable-multibyte-characters) - ;; Fixes #5133: don't deal with complicated hook - ;; functionality! This isn't a real buffer anyway. - unless (string-match-p (symbol-name var) "-\\(hook\\|functions\\)$") - ;; Using setq-local would quote var. - do (set (make-local-variable var) val)) - ;; Since we're piping a region of text to the formatter, remove - ;; any leading indentation to make it look like a file. - (setq indent (+format--current-indentation)) - (when (> indent 0) - (indent-rigidly (point-min) (point-max) (- indent))) - (funcall f-function executable mode-result))))) - (`,status - (cond ((null output) :error) - ((eq output t) :already-formatted) - (t :reformatted)))) - (unwind-protect - (when (eq status :reformatted) - (let ((tmpfile (make-temp-file "doom-format")) - (patchbuf (get-buffer-create " *doom format patch*")) - (coding-system-for-read coding-system-for-read) - (coding-system-for-write coding-system-for-write)) - (unless IS-WINDOWS - (setq coding-system-for-read 'utf-8 - coding-system-for-write 'utf-8)) - (unwind-protect - (progn - (with-current-buffer patchbuf - (erase-buffer)) - (with-temp-file tmpfile - (erase-buffer) - (insert output) - (when (> indent 0) - ;; restore indentation without affecting new - ;; indentation - (indent-rigidly (point-min) (point-max) - (max 0 (- indent (+format--current-indentation)))))) - (if (zerop (call-process-region (point-min) (point-max) "diff" nil patchbuf nil "-n" "-" tmpfile)) - (setq status :already-formatted) - (+format--apply-rcs-patch patchbuf) - (list output errput))) - (kill-buffer patchbuf) - (delete-file tmpfile)))) - (format-all--show-or-hide-errors errput) - (goto-char (point-min)) - (forward-line (1- old-line-number)) - (let ((line-length (- (point-at-eol) (point-at-bol)))) - (goto-char (+ (point) (min old-column line-length)))) - (run-hook-with-args 'format-all-after-format-functions formatter status) - (message (pcase status - (:error "Formatting error") - (:already-formatted "Already formatted") - (:reformatted (format "Reformatted with %s" formatter)))))))))) +(defun +format-region (start end &optional callback) + "Format from START to END with `apheleia'." + (when-let* ((command (apheleia--get-formatter-command + (if current-prefix-arg + 'prompt + 'interactive))) + (cur-buffer (current-buffer)) + (formatted-buffer (get-buffer-create " *apheleia-formatted*")) + (indent 0)) + (with-current-buffer formatted-buffer + (erase-buffer) + (unless IS-WINDOWS + (setq-local coding-system-for-read 'utf-8) + (setq-local coding-system-for-write 'utf-8)) + ;; Ensure this temp buffer seems as much like the origin buffer as + ;; possible, in case the formatter is an elisp function, like `gofmt'. + (cl-loop for (var . val) + in (cl-remove-if-not #'listp (buffer-local-variables origin-buffer)) + ;; Making enable-multibyte-characters buffer-local causes an + ;; error. + unless (eq var 'enable-multibyte-characters) + ;; Using setq-local would quote var. + do (set (make-local-variable var) val)) + ;; + (insert-buffer-substring-no-properties cur-buffer start end) + ;; Since we're piping a region of text to the formatter, remove any + ;; leading indentation to make it look like a file. + (setq indent (+format--current-indentation)) + (when (> indent 0) + (indent-rigidly (point-min) (point-max) (- indent))) + ;; + (apheleia-format-buffer + command + (lambda () + (with-current-buffer formatted-buffer + (when (> indent 0) + ;; restore indentation without affecting new + ;; indentation + (indent-rigidly (point-min) (point-max) + (max 0 (- indent (+format--current-indentation)))))) + (with-current-buffer cur-buffer + (delete-region start end) + (insert-buffer-substring-no-properties formatted-buffer) + (when callback (funcall callback)) + (kill-buffer formatted-buffer))))))) ;; ;;; Commands -(defun +format--org-region (beg end) - "Reformat the region within BEG and END. -If nil, BEG and/or END will default to the boundaries of the src block at point." - (let ((element (org-element-at-point))) - (save-excursion - (let* ((block-beg (save-excursion - (goto-char (org-babel-where-is-src-block-head element)) - (line-beginning-position 2))) - (block-end (save-excursion - (goto-char (org-element-property :end element)) - (skip-chars-backward " \t\n") - (line-beginning-position))) - (beg (if beg (max beg block-beg) block-beg)) - (end (if end (min end block-end) block-end)) - (lang (org-element-property :language element)) - (major-mode (org-src-get-lang-mode lang))) - (if (eq major-mode 'org-mode) - (user-error "Cannot reformat an org src block in org-mode") - (+format/region beg end)))))) - -(defun +format--buffer () - (if (and (eq major-mode 'org-mode) - (org-in-src-block-p t)) - (+format--org-region (point-min) (point-max)) - (if (called-interactively-p 'any) - (format-all-buffer) - (ignore-errors (format-all-buffer))))) - ;;;###autoload -(defun +format/buffer () +(defun +format/buffer (&optional arg) "Reformat the current buffer using LSP or `format-all-buffer'." - (interactive) - (+format--buffer)) + (interactive "P") + (call-interactively + (if (and +format-with-lsp + (bound-and-true-p lsp-mode) + (lsp-feature? "textDocument/formatting")) + #'lsp-format-buffer + #'apheleia-format-buffer))) ;;;###autoload -(defun +format/region (beg end) +(defun +format/region (beg end &optional arg) "Runs the active formatter on the lines within BEG and END. WARNING: this may not work everywhere. It will throw errors if the region contains a syntax error in isolation. It is mostly useful for formatting snippets or single lines." (interactive "rP") - (let ((+format-region-p t)) - (save-restriction - (narrow-to-region beg end) - (+format--buffer)))) + (if (and +format-with-lsp + (bound-and-true-p lsp-mode) + (lsp-feature? "textDocument/rangeFormatting")) + (call-interactively #'lsp-format-region) + (+format-region beg end))) ;;;###autoload (defun +format/region-or-buffer () @@ -281,13 +90,3 @@ is selected)." (if (doom-region-active-p) #'+format/region #'+format/buffer))) - - -;; -;; Hooks - -;;;###autoload -(defalias '+format-buffer-h #'+format/buffer - "Format the source code in the current buffer with minimal feedback. - -Meant for `before-save-hook'.") diff --git a/modules/editor/format/autoload/settings.el b/modules/editor/format/autoload/settings.el index 0261c175f..0406facdb 100644 --- a/modules/editor/format/autoload/settings.el +++ b/modules/editor/format/autoload/settings.el @@ -1,97 +1,11 @@ ;;; editor/format/autoload/settings.el -*- lexical-binding: t; -*- -;; This must be redefined here because `format-all' only makes it available at -;; compile time. -(defconst +format-system-type - (cl-case system-type - (windows-nt 'windows) - (cygwin 'windows) - (darwin 'macos) - (gnu/linux 'linux) - (berkeley-unix - (save-match-data - (let ((case-fold-search t)) - (cond ((string-match "freebsd" system-configuration) 'freebsd) - ((string-match "openbsd" system-configuration) 'openbsd) - ((string-match "netbsd" system-configuration) 'netbsd)))))) - "Current operating system according to the format-all package.") - -(defun +format--resolve-system (choices) - "Get first choice matching `format-all-system-type' from CHOICES." - (cl-loop for choice in choices - if (atom choice) return choice - else if (eql +format-system-type (car choice)) - return (cadr choice))) - - -(defun +format--make-command (formatter &rest _) - `(format-all--buffer-thunk - (lambda (input) - (with-silent-modifications - (setq buffer-file-name ,(buffer-file-name (buffer-base-buffer)) - default-directory ,default-directory) - (delay-mode-hooks (funcall ',major-mode)) - (insert input) - (condition-case e - (progn - (doom-log "formatter (commandp) %s" #',formatter) - (call-interactively #',formatter) - (list nil "")) - (error (list t (error-message-string e)))))))) - -(defun +format--make-function (formatter &rest _) - `(progn - (doom-log "formatter (functionp) %s" #',formatter) - (format-all--buffer-thunk #',formatter))) - -(defun +format--make-shell-command (command ok-statuses error-regexp) - (+format--make-shell-command-list (split-string command " " t) - ok-statuses error-regexp)) - -(defun +format--make-shell-command-list (command-list ok-statuses error-regexp) - `(let (args) - (dolist (arg ',command-list) - (cond ((stringp arg) - (push arg args)) - ((listp arg) - (catch 'skip - (let (subargs this) - (while (setq this (pop arg)) - (cond ((not (stringp (car arg))) - (let ((val (eval (pop arg) t))) - (unless val (throw 'skip nil)) - (push (format this val) subargs))) - ((stringp this) - (push this subargs)))) - (setq args (append subargs args))))))) - (doom-log "formatter (arglist) %s" args) - (if ,(and (or ok-statuses error-regexp) t) - (apply #'format-all--buffer-hard - ',ok-statuses ,error-regexp nil - (reverse args)) - (apply #'format-all--buffer-easy (reverse args))))) - -(cl-defun +format--set (name &key function modes unset) - (declare (indent defun)) - (when (and unset (not (gethash name format-all--format-table))) - (error "'%s' formatter does not exist to be unset" name)) - (puthash name function format-all--format-table) - (dolist (mode (ensure-list modes)) - (cl-destructuring-bind (m &optional probe) - (ensure-list mode) - (if unset - (puthash m (assq-delete-all name (gethash key format-all-mode-table)) - format-all-mode-table) - (format-all--pushhash - m (cons name (if probe `(lambda () ,probe))) - format-all--mode-table))))) - ;;;###autodef (cl-defun set-formatter! - (name formatter &key modes filter ok-statuses error-regexp) + (name &rest args &key modes filter &allow-other-keys) "Define (or modify) a formatter named NAME. -Supported keywords: :modes :filter :ok-statuses :error-regexp +Supported keywords: :modes :filter NAME is a symbol that identifies this formatter. @@ -99,7 +13,7 @@ FORMATTER can be a symbol referring to another formatter, a function, string or nested list. If a function, it should be a formatter function that - `format-all--buffer-thunk' will accept. + `apheleia--run-formatter-function' will accept. If a string, it is assumed to be a shell command that the buffer's text will be piped to (through stdin). If a list, it should represent a shell command as a list of arguments. Each @@ -107,6 +21,9 @@ nested list. string and ARG is both a predicate and argument for STRING. If ARG is nil, STRING will be omitted from the vector. +For more information on how to structure the list to be +compatible, see `apheleia--run-formatter-function'. + MODES is a major mode, a list thereof, or a list of two-element sublists with the structure: (MAJOR-MODE FORM). FORM is evaluated when the buffer is formatted and its return value serves two purposes: @@ -116,27 +33,12 @@ and its return value serves two purposes: 2. It's return value is made available to FORMATTER if it is a function or list of shell arguments via the `mode-result' variable. -FILTER is a function that takes three arguments: the formatted output, any error -output and the position of the first change. This function must return these -three after making whatever changes you like to them. This might be useful if -the output contains ANSI color codes that need to be stripped out (as is the -case with elm-format). - -OK-STATUSES and ERROR-REGEXP are ignored if FORMATTER is not a shell command. - -OK-STATUSES is a list of integer exit codes that should be treated as success -codes. However, if ERROR-REGEXP is given, and the program's stderr contains that -regexp, then the formatting is considered failed even if the exit status is in -OK-STATUSES. - Basic examples: - (set-formatter! 'asmfmt \"asmfmt\" :modes '(asm-mode nasm-mode)) (set-formatter! 'black \"black -q -\") (set-formatter! 'html-tidy \"tidy -q -indent\" :modes '(html-mode web-mode)) Advanced examples: - (set-formatter! 'clang-format '(\"clang-format\" @@ -154,9 +56,7 @@ Advanced examples: :modes '(html-mode (web-mode (and (equal \"none\" web-mode-engine) - (car (member web-mode-content-type '(\"xml\" \"html\")))))) - :ok-statuses '(0 1) - :executable \"tidy\") + (car (member web-mode-content-type '(\"xml\" \"html\"))))))) (set-formatter! 'html-tidy ; overwrite predefined html-tidy formatter '(\"tidy\" \"-q\" \"-indent\" @@ -165,39 +65,22 @@ Advanced examples: \"--show-body-only\" \"auto\" (\"--indent-spaces\" \"%d\" tab-width) (\"--indent-with-tabs\" \"%s\" (if indent-tabs-mode \"yes\" \"no\")) - (\"-xml\" (memq major-mode '(nxml-mode xml-mode)))) - :ok-statuses '(0 1))) + (\"-xml\" (memq major-mode '(nxml-mode xml-mode))))) (set-formatter! 'elm-format - \"elm-format --yes --stdin\" - :filter - (lambda (output errput first-diff) - (list output - (format-all--remove-ansi-color errput) - first-diff)))" + \"elm-format --yes --stdin\") +" (declare (indent defun)) (cl-check-type name symbol) - (after! format-all - (if (null formatter) - (+format--set name - :unset t - :modes modes) - (let ((fn (funcall (cond ((stringp formatter) - #'+format--make-shell-command) - ((listp formatter) - #'+format--make-shell-command-list) - ((and (commandp formatter) - (not (stringp formatter))) - #'+format--make-command) - ((functionp formatter) - #'+format--make-function)) - formatter - ok-statuses - error-regexp))) - (cl-check-type filter (or function null)) - (+format--set name - :function - `(lambda (executable mode-result) - ,(if filter `(apply #',filter ,fn) fn)) - :modes modes) - name)))) + (after! apheleia + (if (null args) + (progn + (setq apheleia-formatters + (assq-delete-all name apheleia-formatters)) + (while (rassoc name apheleia-mode-alist) + (setq apheleia-mode-alist + (assq-delete-all (car (rassoc name apheleia-mode-alist)) apheleia-mode-alist)))) + (setf (alist-get name apheleia-formatters) args) + (when modes + (dolist (mode modes) + (setf (alist-get mode apheleia-mode-alist) name)))))) diff --git a/modules/editor/format/config.el b/modules/editor/format/config.el index 0e634adbe..1075a98f2 100644 --- a/modules/editor/format/config.el +++ b/modules/editor/format/config.el @@ -1,89 +1,54 @@ ;;; editor/format/config.el -*- lexical-binding: t; -*- -(defvar +format-on-save-enabled-modes - '(not emacs-lisp-mode ; elisp's mechanisms are good enough - sql-mode ; sqlformat is currently broken - tex-mode ; latexindent is broken - latex-mode - org-msg-edit-mode) ; doesn't need a formatter - "A list of major modes in which to reformat the buffer upon saving. - -If this list begins with `not', then it negates the list. -If it is `t', it is enabled in all modes. -If nil, it is disabled in all modes, the same as if the +onsave flag wasn't - used at all. - -Irrelevant if you do not have the +onsave flag enabled for this module.") - (defvar +format-preserve-indentation t "If non-nil, the leading indentation is preserved when formatting the whole buffer. This is particularly useful for partials. Indentation is always preserved when formatting regions.") -(defvar-local +format-with nil - "Set this to explicitly use a certain formatter for the current buffer.") - (defvar +format-with-lsp t "If non-nil, format with LSP formatter if it's available. This can be set buffer-locally with `setq-hook!' to disable LSP formatting in select buffers.") +(defvaralias '+format-with 'apheleia-formatter + "Set this to explicitly use a certain formatter for the current buffer.") + ;; ;;; Bootstrap -(add-to-list 'doom-debug-variables 'format-all-debug) - -(defun +format-enable-on-save-maybe-h () - "Enable formatting on save in certain major modes. - -This is controlled by `+format-on-save-enabled-modes'." - (or (cond ((eq major-mode 'fundamental-mode)) - ((string-prefix-p " " (buffer-name))) - ((and (booleanp +format-on-save-enabled-modes) - (not +format-on-save-enabled-modes))) - ((and (listp +format-on-save-enabled-modes) - (if (eq (car +format-on-save-enabled-modes) 'not) - (memq major-mode (cdr +format-on-save-enabled-modes)) - (not (memq major-mode +format-on-save-enabled-modes))))) - ((not (require 'format-all nil t)))) - (format-all-mode +1))) - (when (modulep! +onsave) - (add-hook 'after-change-major-mode-hook #'+format-enable-on-save-maybe-h)) + (add-hook 'doom-first-file-hook #'apheleia-global-mode)) ;; ;;; Hacks -;; Allow a specific formatter to be used by setting `+format-with', either -;; buffer-locally or let-bound. -(advice-add #'format-all--probe :around #'+format-probe-a) +(defadvice! +format--inhibit-reformat-on-prefix-arg-a (orig-fn &optional arg) + "Make it so \\[save-buffer] with prefix arg inhibits reformatting." + :around #'save-buffer + (let ((apheleia-mode (and apheleia-mode (member arg '(nil 1))))) + (funcall orig-fn))) -;; Doom uses a modded `format-all-buffer', which -;; 1. Enables partial reformatting (while preserving leading indentation), -;; 2. Applies changes via RCS patch, line by line, to protect buffer markers -;; and avoid any jarring cursor+window scrolling. -(advice-add #'format-all-buffer--with :override #'+format-buffer-a) +(add-hook! 'apheleia-post-format-hook + ;; HACK `web-mode' doesn't update syntax highlighting after arbitrary buffer + ;; modifications, so we must trigger refontification manually. + (defun +format--fix-web-mode-fontification-h () + (when (eq major-mode 'web-mode) + (setq web-mode-fontification-off nil) + (when (and web-mode-scan-beg web-mode-scan-end global-font-lock-mode) + (save-excursion + (font-lock-fontify-region web-mode-scan-beg web-mode-scan-end))))) + (defun +format--refresh-git-gutter-h () + (when (bound-and-true-p git-gutter-mode) + (git-gutter)))) -;; format-all-mode "helpfully" raises an error when it doesn't know how to -;; format a buffer. -(add-to-list 'debug-ignored-errors "^Don't know how to format ") -;; Don't pop up imposing warnings about missing formatters, but still log it in -;; to *Messages*. -(defadvice! +format--all-buffer-from-hook-a (fn &rest args) - :around #'format-all-buffer--from-hook - (letf! (defun format-all-buffer--with (formatter mode-result) - (when (or (eq formatter 'lsp) - (eq formatter 'eglot) - (condition-case-unless-debug e - (format-all--formatter-executable formatter) - (error - (message "Warning: cannot reformat buffer because %S isn't installed" - (gethash formatter format-all--executable-table)) - nil))) - (funcall format-all-buffer--with formatter mode-result))) - (apply fn args))) +;; +;;; Additional formatters + +(after! apheleia-mode + ;; TODO html-tidy + ) diff --git a/modules/editor/format/packages.el b/modules/editor/format/packages.el index eada328ac..0f1fd9933 100644 --- a/modules/editor/format/packages.el +++ b/modules/editor/format/packages.el @@ -1,4 +1,5 @@ ;; -*- no-byte-compile: t; -*- ;;; editor/format/packages.el -(package! format-all :pin "47d862d40a088ca089c92cd393c6dca4628f87d3") +;; TODO Pin when this is close to finish +(package! apheleia) diff --git a/modules/editor/format/test/test-format.el b/modules/editor/format/test/test-format.el deleted file mode 100644 index dc2306838..000000000 --- a/modules/editor/format/test/test-format.el +++ /dev/null @@ -1,103 +0,0 @@ -;; -*- no-byte-compile: t; -*- -;;; editor/format/test/test-format.el - -(load! "../autoload/settings") -(load! "../autoload/format") -(require! :editor format) -(require 'format-all) - -;; -(describe "editor/format" - :var (format-all--format-table - format-all--mode-table) - - (before-each - (setq format-all--format-table (make-hash-table) - format-all--mode-table (make-hash-table))) - - (describe "set-formatter!" - (before-each - (set-formatter! 'test (lambda () (interactive)))) - - (it "defines a formatter" - (set-formatter! 'new (lambda () (interactive))) - (expect (gethash 'new format-all--mode-table) :to-equal nil) - (expect (functionp (gethash 'new format-all--format-table)))) - - (it "defines a formatter with modes" - (set-formatter! 'new (lambda () (interactive)) - :modes '(a-mode (b-mode "x"))) - (expect (gethash 'a-mode format-all--mode-table) - :to-equal '((new))) - (expect (gethash 'b-mode format-all--mode-table) - :to-equal '((new . (lambda () "x"))))) - - (it "replaces a pre-existing formatter" - (let ((old-fn (gethash 'test format-all--format-table))) - (set-formatter! 'test "echo") - (expect (gethash 'test format-all--format-table) :not :to-equal old-fn))) - - (it "unsets a pre-existing formatter" - (set-formatter! 'test nil) - (expect (gethash 'test format-all--format-table) :to-be nil)) - - (it "errors when unsetting non-existent formatter" - (expect (set-formatter! 'doesnt-exist nil) :to-throw))) - - - ;; TODO - (xdescribe "hooks" - (describe "format|enable-on-save-maybe") - (describe "format|enable-on-save")) - - - ;; TODO - (xdescribe "formatting" - (before-each - (set-formatter! 'command - (lambda () - (interactive) - (let ((first-line (car (split-string (buffer-string) "\n")))) - (erase-buffer) - (insert first-line))) - :modes '(text-mode)) - (set-formatter! 'faulty-command - (lambda () - (interactive) - (error "This is a test")) - :modes '(text-mode)) - (set-formatter! 'function - (lambda (input) - (insert (car (split-string input "\n"))) - (list nil nil)) - :modes '(text-mode)) - (set-formatter! 'shellcmd "head -n 1" - :modes '(text-mode)) - (set-formatter! 'cmdlist '("head" "-n" "1") - :modes '(text-mode))) - - (describe "with an interactive command" - (it "formats a buffer" ) - (it "formats a region" ) - (it "no-ops if no change" ) - (it "doesn't modify the buffer in case of errors" ) - (it "preserves indentation" )) - - (describe "with a function" - (it "formats a buffer" ) - (it "formats a region" ) - (it "no-ops if no change" ) - (it "doesn't modify the buffer in case of errors" ) - (it "preserves indentation" )) - - (describe "with a shell command") - - (describe "with a shell command list" - (it "formats a buffer" ) - (it "formats a region" ) - (it "no-ops if no change" ) - (it "doesn't modify the buffer in case of errors" ) - (it "preserves indentation" ) - - (it "interpolates non-strings into format strings" ) - (it "conditionally appends sublisted options" )))) diff --git a/modules/lang/ocaml/config.el b/modules/lang/ocaml/config.el index 965955dce..cb5cce429 100644 --- a/modules/lang/ocaml/config.el +++ b/modules/lang/ocaml/config.el @@ -107,8 +107,6 @@ :commands ocamlformat :hook (tuareg-mode-local-vars . +ocaml-init-ocamlformat-h) :config - (set-formatter! 'ocamlformat #'ocamlformat - :modes '(caml-mode tuareg-mode)) ;; TODO Fix region-based formatting support (defun +ocaml-init-ocamlformat-h () (setq +format-with 'ocp-indent) diff --git a/modules/lang/php/config.el b/modules/lang/php/config.el index 20132e1da..5f9d711f3 100644 --- a/modules/lang/php/config.el +++ b/modules/lang/php/config.el @@ -30,7 +30,6 @@ (set-docsets! 'php-mode "PHP" "PHPUnit" "Laravel" "CakePHP" "CodeIgniter" "Doctrine_ORM") (set-repl-handler! 'php-mode #'+php/open-repl) (set-lookup-handlers! 'php-mode :documentation #'php-search-documentation) - (set-formatter! 'php-mode #'php-cs-fixer-fix) (set-ligatures! 'php-mode ;; Functional :lambda "function()" :lambda "fn" diff --git a/modules/lang/sh/config.el b/modules/lang/sh/config.el index 34b7032d5..f87925e3e 100755 --- a/modules/lang/sh/config.el +++ b/modules/lang/sh/config.el @@ -17,10 +17,13 @@ :config (set-docsets! 'sh-mode "Bash") (set-electric! 'sh-mode :words '("else" "elif" "fi" "done" "then" "do" "esac" ";;")) - (set-formatter! 'shfmt - '("shfmt" "-ci" - ("-i" "%d" (unless indent-tabs-mode tab-width)) - ("-ln" "%s" (pcase sh-shell (`bash "bash") (`mksh "mksh") (_ "posix"))))) + (after! apheleia + (setf (alist-get 'shfmt apheleia-formatters) + '("shfmt" "-ci" + (unless indent-tabs-mode + (list "-i" (number-to-string tab-width))) + (list "-ln" (pcase sh-shell (`bash "bash") (`mksh "mksh") (_ "posix")))))) + (set-repl-handler! 'sh-mode #'+sh/open-repl) (set-lookup-handlers! 'sh-mode :documentation #'+sh-lookup-documentation-handler) (set-ligatures! 'sh-mode @@ -85,10 +88,6 @@ ;; whatis lookups are exceptionally slow on macOS (#5860) company-shell-dont-fetch-meta IS-MAC)) -(use-package! fish-mode - :when (modulep! +fish) - :defer t - :config (set-formatter! 'fish-mode #'fish_indent)) (use-package! powershell :when (modulep! +powershell) diff --git a/modules/lang/web/+html.el b/modules/lang/web/+html.el index 2dd0a881d..7baff19db 100644 --- a/modules/lang/web/+html.el +++ b/modules/lang/web/+html.el @@ -27,15 +27,15 @@ ;; tidy is already defined by the format-all package. We redefine it to add ;; more sensible arguments to the tidy command. - (set-formatter! 'html-tidy - '("tidy" "-q" "-indent" - "--tidy-mark" "no" - "--drop-empty-elements" "no" - ("--show-body-only" "%s" (if +format-region-p "true" "auto")) - ("--indent-spaces" "%d" tab-width) - ("--indent-with-tabs" "%s" (if indent-tabs-mode "yes" "no")) - ("-xml" (memq major-mode '(nxml-mode xml-mode)))) - :ok-statuses '(0 1)) + ;; (set-formatter! 'html-tidy + ;; '("tidy" "-q" "-indent" + ;; "--tidy-mark" "no" + ;; "--drop-empty-elements" "no" + ;; ("--show-body-only" "%s" (if +format-region-p "true" "auto")) + ;; ("--indent-spaces" "%d" tab-width) + ;; ("--indent-with-tabs" "%s" (if indent-tabs-mode "yes" "no")) + ;; ("-xml" (memq major-mode '(nxml-mode xml-mode)))) + ;; :ok-statuses '(0 1)) (setq web-mode-enable-html-entities-fontification t web-mode-auto-close-style 1) From 115bfc52a2227b2d1cd0fd2976f594afb42e2781 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Mon, 20 Jun 2022 08:57:34 +0100 Subject: [PATCH 055/523] fix(format): correctly adjust shfmt --- modules/lang/sh/config.el | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/modules/lang/sh/config.el b/modules/lang/sh/config.el index f87925e3e..5a5cd7ed5 100755 --- a/modules/lang/sh/config.el +++ b/modules/lang/sh/config.el @@ -17,12 +17,9 @@ :config (set-docsets! 'sh-mode "Bash") (set-electric! 'sh-mode :words '("else" "elif" "fi" "done" "then" "do" "esac" ";;")) - (after! apheleia - (setf (alist-get 'shfmt apheleia-formatters) - '("shfmt" "-ci" - (unless indent-tabs-mode - (list "-i" (number-to-string tab-width))) - (list "-ln" (pcase sh-shell (`bash "bash") (`mksh "mksh") (_ "posix")))))) + (set-formatter! 'shfmt '("shfmt" "-ci" + (unless indent-tabs-mode + (list "-i" (number-to-string tab-width))))) (set-repl-handler! 'sh-mode #'+sh/open-repl) (set-lookup-handlers! 'sh-mode :documentation #'+sh-lookup-documentation-handler) From 3aa9796b84dc975399a73624c6b407897adb7c6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Sun, 14 Aug 2022 16:17:36 +0100 Subject: [PATCH 056/523] fix(format): resolve list expansion issues The argument list was being expanded incorrectly, this should now be resolved. --- modules/editor/format/autoload/settings.el | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/modules/editor/format/autoload/settings.el b/modules/editor/format/autoload/settings.el index 0406facdb..85c71d354 100644 --- a/modules/editor/format/autoload/settings.el +++ b/modules/editor/format/autoload/settings.el @@ -1,8 +1,7 @@ ;;; editor/format/autoload/settings.el -*- lexical-binding: t; -*- ;;;###autodef -(cl-defun set-formatter! - (name &rest args &key modes filter &allow-other-keys) +(cl-defun set-formatter! (name args &key modes filter) "Define (or modify) a formatter named NAME. Supported keywords: :modes :filter @@ -80,7 +79,10 @@ Advanced examples: (while (rassoc name apheleia-mode-alist) (setq apheleia-mode-alist (assq-delete-all (car (rassoc name apheleia-mode-alist)) apheleia-mode-alist)))) - (setf (alist-get name apheleia-formatters) args) + (let ((formatter (cond + ((listp args) `(,@args)) + (t args)))) + (setf (alist-get name apheleia-formatters) formatter)) (when modes (dolist (mode modes) (setf (alist-get mode apheleia-mode-alist) name)))))) From cd79edf134ed03abbc3190bb56d22c229e011bc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Sun, 14 Aug 2022 16:26:33 +0100 Subject: [PATCH 057/523] feat(format): add :lang emacs-lisp formatter Introduce a formatter function for emacs-lisp (tracked upstream here [1]) that tries to preserve as much of what the user wants as possible [1]: https://github.com/radian-software/apheleia/pull/102 --- modules/editor/format/config.el | 19 +++++++++++++++++-- modules/lang/emacs-lisp/config.el | 1 + 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/modules/editor/format/config.el b/modules/editor/format/config.el index 1075a98f2..d08e51373 100644 --- a/modules/editor/format/config.el +++ b/modules/editor/format/config.el @@ -49,6 +49,21 @@ select buffers.") ;; ;;; Additional formatters -(after! apheleia-mode +(after! apheleia ;; TODO html-tidy - ) + (cl-defun apheleia--indent-lisp-buffer + (&key buffer scratch callback &allow-other-keys) + "Format a Lisp BUFFER. Use SCRATCH as a temporary buffer and CALLBACK to +apply the transformation. For more implementation detail, see +`apheleia--run-formatter-function'." + (with-current-buffer scratch + (setq-local indent-line-function + (buffer-local-value 'indent-line-function buffer)) + (setq-local lisp-indent-function + (buffer-local-value 'lisp-indent-function buffer)) + (funcall (with-current-buffer buffer major-mode)) + (goto-char (point-min)) + (let ((inhibit-message t) + (message-log-max nil)) + (indent-region (point-min) (point-max))) + (funcall callback)))) diff --git a/modules/lang/emacs-lisp/config.el b/modules/lang/emacs-lisp/config.el index b089ff53c..609168518 100644 --- a/modules/lang/emacs-lisp/config.el +++ b/modules/lang/emacs-lisp/config.el @@ -39,6 +39,7 @@ See `+emacs-lisp-non-package-mode' for details.") :documentation #'+emacs-lisp-lookup-documentation) (set-docsets! '(emacs-lisp-mode lisp-interaction-mode) "Emacs Lisp") (set-ligatures! 'emacs-lisp-mode :lambda "lambda") + (set-formatter! 'lisp-indent #'apheleia--indent-lisp-buffer :modes '(emacs-lisp-mode)) (set-rotate-patterns! 'emacs-lisp-mode :symbols '(("t" "nil") ("let" "let*") From bfb963f2f3fcd74650037ff5ea34495406509e7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Tue, 16 Aug 2022 08:17:51 +0100 Subject: [PATCH 058/523] feat(format): add :lang cc formatter --- modules/lang/cc/config.el | 12 ++++++++++++ modules/lang/cc/doctor.el | 4 ++++ 2 files changed, 16 insertions(+) diff --git a/modules/lang/cc/config.el b/modules/lang/cc/config.el index 221d7b165..b2cc3739c 100644 --- a/modules/lang/cc/config.el +++ b/modules/lang/cc/config.el @@ -48,6 +48,18 @@ This is ignored by ccls.") (set-docsets! 'c-mode "C") (set-docsets! 'c++-mode "C++" "Boost") (set-electric! '(c-mode c++-mode objc-mode java-mode) :chars '(?\n ?\} ?\{)) + (when (executable-find "clang-format") + (set-formatter! + 'clang-format + '("clang-format" + "-assume-filename" + (or (buffer-file-name) + (cdr (assoc major-mode + '((c-mode . ".c") + (c++-mode . ".cpp") + (cuda-mode . ".cu") + (protobuf-mode . ".proto")))))) + :modes '(c-mode c++-mode protobuf-mode cuda-mode))) (set-rotate-patterns! 'c++-mode :symbols '(("public" "protected" "private") ("class" "struct"))) diff --git a/modules/lang/cc/doctor.el b/modules/lang/cc/doctor.el index f9d2ee687..21c4bba08 100644 --- a/modules/lang/cc/doctor.el +++ b/modules/lang/cc/doctor.el @@ -26,3 +26,7 @@ ;; glslangValidator (unless (executable-find "glslangValidator") (warn! "Couldn't find glslangValidator. GLSL code completion is disabled"))) + +(when (modulep! :editor format) + (unless (executable-find "clang-format") + (warn! "Couldn't find clang-format. Formatting will be disabled."))) From 9a7eae77c8a2a2edc07c337f7858151da8efb641 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Tue, 16 Aug 2022 08:14:49 +0100 Subject: [PATCH 059/523] feat(format): add :lang clojure formatter --- modules/lang/clojure/config.el | 3 +++ modules/lang/clojure/doctor.el | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/modules/lang/clojure/config.el b/modules/lang/clojure/config.el index dc51777e5..025d372a6 100644 --- a/modules/lang/clojure/config.el +++ b/modules/lang/clojure/config.el @@ -16,6 +16,9 @@ (use-package! clojure-mode :hook (clojure-mode . rainbow-delimiters-mode) :config + (when (executable-find "zprint") + (set-formatter! 'zprint '("zprint") :modes '(clojure-mode clojurec-mode clojurescript-mode))) + (when (modulep! +lsp) (add-hook! '(clojure-mode-local-vars-hook clojurec-mode-local-vars-hook diff --git a/modules/lang/clojure/doctor.el b/modules/lang/clojure/doctor.el index dff17429e..529c3ba4b 100644 --- a/modules/lang/clojure/doctor.el +++ b/modules/lang/clojure/doctor.el @@ -5,3 +5,7 @@ (not (modulep! +lsp))) (unless (executable-find "clj-kondo") (warn! "Couldn't find clj-kondo. flycheck-clj-kondo will not work."))) + +(when (modulep! :editor format) + (unless (executable-find "zprint") + (warn! "Couldn't find zprint. Formatting will be disabled."))) From 4d51e46c9fd40c944eda6ddee02588c799306615 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Mon, 15 Aug 2022 06:34:12 +0100 Subject: [PATCH 060/523] feat(format): add :lang common-lisp formatter --- modules/lang/common-lisp/config.el | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/lang/common-lisp/config.el b/modules/lang/common-lisp/config.el index f773627cb..07ab50c5b 100644 --- a/modules/lang/common-lisp/config.el +++ b/modules/lang/common-lisp/config.el @@ -26,10 +26,14 @@ (after! lisp-mode (set-repl-handler! 'lisp-mode #'+lisp/open-repl) (set-eval-handler! 'lisp-mode #'sly-eval-region) + (set-formatter! 'lisp-indent #'apheleia--indent-lisp-buffer :modes '(lisp-mode)) (set-lookup-handlers! 'lisp-mode :definition #'sly-edit-definition :documentation #'sly-describe-symbol)) + (add-hook! 'lisp-mode + (after! sly (sly-lisp-indent-compatibility-mode))) + ;; HACK Ensures that sly's contrib modules are loaded as soon as possible, but ;; also as late as possible, so users have an opportunity to override ;; `sly-contrib' in an `after!' block. From 078bf0dd2e15dff0e5e0738bc6a08c8cc60178db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Mon, 15 Aug 2022 07:34:52 +0100 Subject: [PATCH 061/523] feat(format): add :lang crystal formatter --- modules/lang/crystal/config.el | 3 +++ modules/lang/crystal/doctor.el | 3 +++ 2 files changed, 6 insertions(+) diff --git a/modules/lang/crystal/config.el b/modules/lang/crystal/config.el index 255f1a89d..97070ddb4 100644 --- a/modules/lang/crystal/config.el +++ b/modules/lang/crystal/config.el @@ -1,6 +1,9 @@ ;;; lang/crystal/config.el -*- lexical-binding: t; -*- (after! crystal-mode + (when (executable-find "crystal") + (set-formatter! 'crystal-mode '("crystal" "tool" "format" "-") :modes '(crystal-mode))) + (set-lookup-handlers! 'crystal-mode :definition #'crystal-def-jump :references #'crystal-tool-imp) diff --git a/modules/lang/crystal/doctor.el b/modules/lang/crystal/doctor.el index b2f68f86e..23eb9171a 100644 --- a/modules/lang/crystal/doctor.el +++ b/modules/lang/crystal/doctor.el @@ -3,3 +3,6 @@ (unless (executable-find "icr") (warn! "Couldn't find icr. REPL will not work")) + +(unless (executable-find "crystal") + (error! "Couldn't find crystal. Most language features will not work.")) From 53fe5df6b569ca098f9857446d11b1b3b071536f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Tue, 16 Aug 2022 08:18:29 +0100 Subject: [PATCH 062/523] feat(format): add :lang csharp formatter --- modules/lang/csharp/config.el | 5 +++++ modules/lang/csharp/doctor.el | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/modules/lang/csharp/config.el b/modules/lang/csharp/config.el index d68e0a0eb..2a6cf7aa6 100644 --- a/modules/lang/csharp/config.el +++ b/modules/lang/csharp/config.el @@ -3,6 +3,11 @@ (use-package! csharp-mode :hook (csharp-mode . rainbow-delimiters-mode) :config + (when (and (file-exists-p (expand-file-name "~/.dotnet/tools/dotnet-csharpier")) + (file-exists-p ".config/dotnet-tools.json") + (eq 0 (call-process-shell-command + (format "grep -q 'dotnet-csharpier' %s" (expand-file-name ".config/dotnet-tools.json")) nil nil))) + (set-formatter! 'csharpier '("dotnet" "tool" "run" "dotnet-csharpier") :modes '(csharp-mode))) (set-electric! 'csharp-mode :chars '(?\n ?\})) (set-rotate-patterns! 'csharp-mode :symbols '(("public" "protected" "private") diff --git a/modules/lang/csharp/doctor.el b/modules/lang/csharp/doctor.el index e11ceb459..f816be957 100644 --- a/modules/lang/csharp/doctor.el +++ b/modules/lang/csharp/doctor.el @@ -9,3 +9,10 @@ (assert! (or (not (modulep! +tree-sitter)) (modulep! :tools tree-sitter)) "This module requires (:tools tree-sitter)") + +(when (modulep! :editor format) + (unless (and (file-exists-p (expand-file-name "~/.dotnet/tools/dotnet-csharpier")) + (file-exists-p ".config/dotnet-tools.json") + (eq 0 (call-process-shell-command + (format "grep -q 'dotnet-csharpier' %s" (expand-file-name ".config/dotnet-tools.json")) nil nil))) + (warn! "csharpier is not installed or setup as a local tool. Please see the module README. \nOtherwise, formatting will be disabled."))) From f80f52ba4f0361e25d3918ca1d9b80755a4ec006 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Tue, 16 Aug 2022 08:19:02 +0100 Subject: [PATCH 063/523] feat(format): add :lang data formatter --- modules/lang/data/config.el | 4 +++- modules/lang/data/doctor.el | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 modules/lang/data/doctor.el diff --git a/modules/lang/data/config.el b/modules/lang/data/config.el index 45ec4f6b1..24498563e 100644 --- a/modules/lang/data/config.el +++ b/modules/lang/data/config.el @@ -8,7 +8,9 @@ (setq nxml-slash-auto-complete-flag t nxml-auto-insert-xml-declaration-flag t) (set-company-backend! 'nxml-mode '(company-nxml company-yasnippet)) - (setq-hook! 'nxml-mode-hook tab-width nxml-child-indent)) + (setq-hook! 'nxml-mode-hook tab-width nxml-child-indent) + (when (executable-find "xmllint") + (set-formatter! 'xmllint '("xmllint" "--format" "-") :modes '(nxml-mode)))) ;;;###package csv-mode diff --git a/modules/lang/data/doctor.el b/modules/lang/data/doctor.el new file mode 100644 index 000000000..b18eb5d54 --- /dev/null +++ b/modules/lang/data/doctor.el @@ -0,0 +1,5 @@ +;;; lang/data/doctor.el -*- lexical-binding: t; -*- + +(when (modulep! :editor format) + (unless (executable-find "xmllint") + (warn! "Couldn't find xmllint. Formatting will be disabled."))) From a9b4f6e21979683a107094c028a9f62a1fdde6e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Tue, 16 Aug 2022 08:16:08 +0100 Subject: [PATCH 064/523] feat(format): add :lang erlang formatter --- modules/lang/erlang/config.el | 2 ++ modules/lang/erlang/doctor.el | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/modules/lang/erlang/config.el b/modules/lang/erlang/config.el index edd3fd689..37b9d1ab8 100644 --- a/modules/lang/erlang/config.el +++ b/modules/lang/erlang/config.el @@ -5,6 +5,8 @@ :mode ("/rebar\\.config\\(?:\\.script\\)?\\'" . erlang-mode) :mode ("/\\(?:app\\|sys\\)\\.config\\'" . erlang-mode) :config + (when (executable-find "efmt") + (set-formatter! 'efmt '("efmt" "-") :modes '(erlang-mode))) (when (modulep! +lsp) (add-hook 'erlang-mode-local-vars-hook #'lsp! 'append)) diff --git a/modules/lang/erlang/doctor.el b/modules/lang/erlang/doctor.el index f442e8834..3997f8fa3 100644 --- a/modules/lang/erlang/doctor.el +++ b/modules/lang/erlang/doctor.el @@ -4,3 +4,7 @@ (assert! (or (not (modulep! +lsp)) (modulep! :tools lsp)) "This module requires (:tools lsp)") + +(when (modulep! :editor format) + (unless (executable-find "efmt") + (warn! "Couldn't find efmt. Formatting will be disabled."))) From 12c901cf28e7fdcad82263ef50460a2220a868a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Tue, 16 Aug 2022 08:16:40 +0100 Subject: [PATCH 065/523] feat(format): add :lang gdscript formatter --- modules/lang/gdscript/config.el | 3 +++ modules/lang/gdscript/doctor.el | 5 +++++ 2 files changed, 8 insertions(+) create mode 100644 modules/lang/gdscript/doctor.el diff --git a/modules/lang/gdscript/config.el b/modules/lang/gdscript/config.el index 9ab354a7b..55714e65f 100644 --- a/modules/lang/gdscript/config.el +++ b/modules/lang/gdscript/config.el @@ -13,6 +13,9 @@ (set-lookup-handlers! 'gdscript-mode :documentation #'gdscript-docs-browse-symbol-at-point) + (when (executable-find "gdformat") + (set-formatter! 'gdformat '("gdformat" "-") :modes '(gdscript-mode))) + (when (modulep! +lsp) (add-hook 'gdscript-mode-local-vars-hook #'lsp! 'append)) diff --git a/modules/lang/gdscript/doctor.el b/modules/lang/gdscript/doctor.el new file mode 100644 index 000000000..2798524cc --- /dev/null +++ b/modules/lang/gdscript/doctor.el @@ -0,0 +1,5 @@ +;;; lang/gdscript/doctor.el -*- lexical-binding: t; -*- + +(when (modulep! :editor format) + (unless (executable-find "gdformat") + (warn! "Couldn't find gdformat. Formatting will be disabled."))) From efd5ee00eaf0dc73d7bd7ecce3c465498f2e1b41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Tue, 16 Aug 2022 08:28:14 +0100 Subject: [PATCH 066/523] feat(format): add :lang fortran formatter --- modules/lang/fortran/config.el | 3 +++ modules/lang/fortran/doctor.el | 6 ++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/modules/lang/fortran/config.el b/modules/lang/fortran/config.el index 1a1f420b7..15b2400ae 100644 --- a/modules/lang/fortran/config.el +++ b/modules/lang/fortran/config.el @@ -35,6 +35,9 @@ :desc "build" "b" #'+fortran/build :desc "run" "r" #'+fortran/run) + (when (executable-find "fprettify") + (set-formatter! 'fprettify '("fprettify" "-") :modes '(f90-mode fortran-mode))) + (when (modulep! +intel) (map! :map f90-mode-map :localleader diff --git a/modules/lang/fortran/doctor.el b/modules/lang/fortran/doctor.el index 27a12c0c9..976c36a45 100644 --- a/modules/lang/fortran/doctor.el +++ b/modules/lang/fortran/doctor.el @@ -18,6 +18,8 @@ (when (modulep! +lsp) (unless (executable-find "fortls") - (warn! "Couldn't find fortls.")) + (warn! "Couldn't find fortls. Language features will be disabled."))) + +(when (modulep! :editor format) (unless (executable-find "fprettify") - (warn! "Couldn't find fprettify."))) + (warn! "Couldn't find fprettify. Formatting will be disabled."))) From 856d365f2f37c9a85cc94ec69c3f731fe201de51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Tue, 16 Aug 2022 20:08:40 +0100 Subject: [PATCH 067/523] feat(format): add :lang hy formatter --- modules/lang/hy/config.el | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/lang/hy/config.el b/modules/lang/hy/config.el index aac5bcdc1..e17b868d8 100644 --- a/modules/lang/hy/config.el +++ b/modules/lang/hy/config.el @@ -5,4 +5,5 @@ :interpreter "hy" :config (set-repl-handler! 'hy-mode #'hy-shell-start-or-switch-to-shell) + (set-formatter! 'lisp-indent #'apheleia--indent-lisp-buffer :modes '(hy-mode)) (set-company-backend! 'hy-mode 'company-hy)) From 5cbc7a0258eef20914cf135b5aed370f490bc682 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Tue, 16 Aug 2022 20:57:40 +0100 Subject: [PATCH 068/523] feat(format): add :lang nim formatter --- modules/lang/nim/config.el | 2 ++ modules/lang/nim/doctor.el | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/modules/lang/nim/config.el b/modules/lang/nim/config.el index 377154627..d15c271c5 100644 --- a/modules/lang/nim/config.el +++ b/modules/lang/nim/config.el @@ -12,6 +12,8 @@ nimsuggest isn't installed." (when (and nimsuggest-path (file-executable-p nimsuggest-path)) (nimsuggest-mode)))) + (set-formatter! 'nmfmt '("nimfmt" filepath) :modes '(nim-mode)) + (when IS-WINDOWS ;; TODO File PR/report upstream (https://github.com/nim-lang/nim-mode) (defadvice! +nim--suggest-get-temp-file-name-a (path) diff --git a/modules/lang/nim/doctor.el b/modules/lang/nim/doctor.el index 788238c98..32980d7ed 100644 --- a/modules/lang/nim/doctor.el +++ b/modules/lang/nim/doctor.el @@ -1,4 +1,4 @@ -;; -*- lexical-binding: t; no-byte-compile: t; -*- + ;;; lang/nim/doctor.el (unless (executable-find "nimsuggest") @@ -7,3 +7,6 @@ (unless (executable-find "nim") (warn! "Could not find nim executable; build commands will be disabled.")) +(when (modulep! :editor format) + (unless (executable-find "nimfmt") + (warn! "Could not find nimfmt. Formatting will be disabled."))) From d1697cb4d9b073dfe4b8c90fc6f210e53556129d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Tue, 16 Aug 2022 21:06:47 +0100 Subject: [PATCH 069/523] feat(format): add :lang purescript formatter --- modules/lang/purescript/config.el | 2 ++ modules/lang/purescript/doctor.el | 5 +++++ 2 files changed, 7 insertions(+) create mode 100644 modules/lang/purescript/doctor.el diff --git a/modules/lang/purescript/config.el b/modules/lang/purescript/config.el index e05fd82bc..84d91f618 100644 --- a/modules/lang/purescript/config.el +++ b/modules/lang/purescript/config.el @@ -8,6 +8,8 @@ #'purescript-indentation-mode #'rainbow-delimiters-mode) + (set-formatter! 'purs-tidy '("purs-tidy" "format") :modes '(purescript-mode)) + (map! :localleader :map purescript-mode-map "t" #'psc-ide-show-type diff --git a/modules/lang/purescript/doctor.el b/modules/lang/purescript/doctor.el new file mode 100644 index 000000000..6dac317d3 --- /dev/null +++ b/modules/lang/purescript/doctor.el @@ -0,0 +1,5 @@ +;;; lang/purescript/doctor.el -*- lexical-binding: t; -*- + +(when (modulep! :editor format) + (unless (executable-find "purs-tidy") + (warn! "Could not find purs-tidy. Formatting will be disabled."))) From 7bdf8802a5e3ce2cc40c12310e6250ba84a67eb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Tue, 16 Aug 2022 21:24:57 +0100 Subject: [PATCH 070/523] feat(format): add :lang racket formatter --- modules/lang/racket/config.el | 1 + modules/lang/racket/doctor.el | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/modules/lang/racket/config.el b/modules/lang/racket/config.el index 2d890879b..ab5f90489 100644 --- a/modules/lang/racket/config.el +++ b/modules/lang/racket/config.el @@ -21,6 +21,7 @@ :dot ".") (set-rotate-patterns! 'racket-mode :symbols '(("#true" "#false"))) + (set-formatter! 'raco-fmt '("raco" "fmt") :modes '(racket-mode)) (add-hook! 'racket-mode-hook #'rainbow-delimiters-mode diff --git a/modules/lang/racket/doctor.el b/modules/lang/racket/doctor.el index cabeb0d55..6348e7406 100644 --- a/modules/lang/racket/doctor.el +++ b/modules/lang/racket/doctor.el @@ -9,3 +9,8 @@ (unless (executable-find "raco") (warn! "Could not find raco executable; commands for install packages and build libraries will not work.")) + +(when (modulep! :editor format) + (unless (and (executable-find "raco") + (eq 0 (call-process-shell-command "raco fmt --help" nil nil))) + (warn! "Couldn't find raco fmt. Formatting will be disabled."))) From caa6b2bb3b1181d037e40cd64a7b071d8e0b6c09 Mon Sep 17 00:00:00 2001 From: Ellis Kenyo Date: Sat, 31 Dec 2022 23:12:00 +0000 Subject: [PATCH 071/523] feat(format): add :lang rst formatter --- modules/lang/rst/config.el | 4 +++- modules/lang/rst/doctor.el | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 modules/lang/rst/doctor.el diff --git a/modules/lang/rst/config.el b/modules/lang/rst/config.el index 34ea7a0b5..83c74b51f 100644 --- a/modules/lang/rst/config.el +++ b/modules/lang/rst/config.el @@ -1,7 +1,9 @@ ;;; lang/rst/config.el -*- lexical-binding: t; -*- (use-package! sphinx-mode - :hook (rst-mode . sphinx-mode)) + :hook (rst-mode . sphinx-mode) + :config + (set-formatter! 'rstfmt '("rstfmt") :modes '(rst-mode))) (use-package! rst :defer t diff --git a/modules/lang/rst/doctor.el b/modules/lang/rst/doctor.el new file mode 100644 index 000000000..b6b376202 --- /dev/null +++ b/modules/lang/rst/doctor.el @@ -0,0 +1,5 @@ +;;; lang/rst/doctor.el -*- lexical-binding: t; -*- + +(when (modulep! :editor format) + (unless (executable-find "rstfmt") + (warn! "Couldn't find rstfmt. Formatting will be disabled."))) From 3c96f33cb8d43cabea5b01dd8e5c451826da2b4c Mon Sep 17 00:00:00 2001 From: Ellis Kenyo Date: Mon, 24 Jul 2023 19:43:58 +0100 Subject: [PATCH 072/523] feat(format): add :lang scala formatter --- modules/lang/scala/config.el | 2 ++ modules/lang/scala/doctor.el | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/modules/lang/scala/config.el b/modules/lang/scala/config.el index c78a23b3f..d42e879db 100644 --- a/modules/lang/scala/config.el +++ b/modules/lang/scala/config.el @@ -22,6 +22,8 @@ (when (modulep! +tree-sitter) (add-hook 'scala-mode-local-vars-hook #'tree-sitter! 'append)) + (set-formatter! 'scalafmt '("scalafmt" "--stdin") :modes '(scala-mode)) + (set-ligatures! 'scala-mode ;; Functional :def "def" diff --git a/modules/lang/scala/doctor.el b/modules/lang/scala/doctor.el index 917a129bd..fc72e2f18 100644 --- a/modules/lang/scala/doctor.el +++ b/modules/lang/scala/doctor.el @@ -11,3 +11,7 @@ (if (and (modulep! +lsp) (not (executable-find "metals"))) (warn! "metals isn't installed")) + +(when (modulep! :editor format) + (unless (executable-find "scalafmt") + (warn! "Couldn't find scalafmt. Formatting will be disabled."))) From d8dc579fcba3670a460c0329d3b7536d72431650 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Wed, 17 Aug 2022 07:45:26 +0100 Subject: [PATCH 073/523] feat(format): add :lang scheme formatter --- modules/lang/scheme/config.el | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/lang/scheme/config.el b/modules/lang/scheme/config.el index 47fa31337..17e189f1f 100644 --- a/modules/lang/scheme/config.el +++ b/modules/lang/scheme/config.el @@ -3,7 +3,9 @@ (use-package! scheme :interpreter ("scsh" . scheme-mode) :hook (scheme-mode . rainbow-delimiters-mode) - :config (advice-add #'scheme-indent-function :override #'+scheme-indent-function-a)) + :config + (set-formatter! 'lisp-indent #'apheleia--indent-lisp-buffer :modes '(scheme-mode)) + (advice-add #'scheme-indent-function :override #'+scheme-indent-function-a)) (use-package! geiser From 7b46177d197cb2bdd2460d43fa39c9b09416c60f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Wed, 17 Aug 2022 07:51:34 +0100 Subject: [PATCH 074/523] feat(format): add :lang sml formatter --- modules/lang/sml/config.el | 1 + modules/lang/sml/doctor.el | 5 +++++ 2 files changed, 6 insertions(+) create mode 100644 modules/lang/sml/doctor.el diff --git a/modules/lang/sml/config.el b/modules/lang/sml/config.el index 7a5d69e04..9755cd33e 100644 --- a/modules/lang/sml/config.el +++ b/modules/lang/sml/config.el @@ -4,6 +4,7 @@ :mode "\\.s\\(?:ml\\|ig\\)\\'" :config (set-repl-handler! 'sml-mode #'run-sml) + (set-formatter! 'smlformat '("smlformat") :modes '(sml-mode)) ;; don't auto-close apostrophes (type 'a = foo) and backticks (`Foo) (sp-with-modes 'sml-mode diff --git a/modules/lang/sml/doctor.el b/modules/lang/sml/doctor.el new file mode 100644 index 000000000..de483c420 --- /dev/null +++ b/modules/lang/sml/doctor.el @@ -0,0 +1,5 @@ +;;; lang/sml/doctor.el -*- lexical-binding: t; -*- + +(when (modulep! :editor format) + (unless (executable-find "smlformat") + (warn! "Couldn't find smlformat. Formatting will be disabled."))) From c2980d1d7b767e195e055ebe4e25e7148b90d487 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Wed, 17 Aug 2022 07:58:05 +0100 Subject: [PATCH 075/523] feat(format): add :lang swift formatter --- modules/lang/swift/config.el | 1 + modules/lang/swift/doctor.el | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/modules/lang/swift/config.el b/modules/lang/swift/config.el index 2e721ec18..912898172 100644 --- a/modules/lang/swift/config.el +++ b/modules/lang/swift/config.el @@ -27,6 +27,7 @@ :after swift-mode :init (add-hook 'swift-mode-local-vars-hook #'lsp! 'append) :config + (set-formatter! 'swiftformat '("swiftformat" "--output" "stdout")) (setq lsp-sourcekit-executable (cl-find-if #'executable-find (list lsp-sourcekit-executable ; 'sourcekit-lsp' by default diff --git a/modules/lang/swift/doctor.el b/modules/lang/swift/doctor.el index 15b420de4..3e2881b5b 100644 --- a/modules/lang/swift/doctor.el +++ b/modules/lang/swift/doctor.el @@ -3,3 +3,7 @@ (assert! (or (not (modulep! +tree-sitter)) (modulep! :tools tree-sitter)) "This module requires (:tools tree-sitter)") + +(when (modulep! :editor format) + (unless (executable-find "swiftformat") + (warn! "Couldn't find swiftformat. Formatting will be disabled."))) From c7794ba06c46e99147c4dcebb4f8450fcfd8587a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Wed, 17 Aug 2022 08:04:55 +0100 Subject: [PATCH 076/523] feat(format): add :lang zig formatter --- modules/lang/zig/config.el | 1 + modules/lang/zig/doctor.el | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/modules/lang/zig/config.el b/modules/lang/zig/config.el index 71f2b7657..a9f21522f 100644 --- a/modules/lang/zig/config.el +++ b/modules/lang/zig/config.el @@ -11,6 +11,7 @@ :hook (zig-mode . rainbow-delimiters-mode) :config (setq zig-format-on-save nil) ; rely on :editor format instead + (set-formatter! 'zigfmt '("zig" "fmt" "--stdin") :modes '(zig-mode)) (when (modulep! +lsp) (add-hook 'zig-mode-local-vars-hook #'lsp! 'append)) diff --git a/modules/lang/zig/doctor.el b/modules/lang/zig/doctor.el index 361e4d69c..38b1bec3a 100644 --- a/modules/lang/zig/doctor.el +++ b/modules/lang/zig/doctor.el @@ -10,7 +10,10 @@ "This module requires (:tools tree-sitter)") (unless (executable-find "zig") - (warn! "Couldn't find zig binary")) + (warn! "Couldn't find zig binary") + + (when (modulep! :editor format) + (warn! "Formatting will be disabled"))) (when (modulep! +lsp) (unless (executable-find "zls") From 7e15504163d03594c23e565ca4c2cae027e43bbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Wed, 17 Aug 2022 08:20:58 +0100 Subject: [PATCH 077/523] feat(format): add :tools docker formatter --- modules/tools/docker/config.el | 1 + modules/tools/docker/doctor.el | 5 +++++ 2 files changed, 6 insertions(+) create mode 100644 modules/tools/docker/doctor.el diff --git a/modules/tools/docker/config.el b/modules/tools/docker/config.el index 5f520a7d6..d030acd85 100644 --- a/modules/tools/docker/config.el +++ b/modules/tools/docker/config.el @@ -2,6 +2,7 @@ (after! dockerfile-mode (set-docsets! 'dockerfile-mode "Docker") + (set-formatter! 'dockfmt '("dockfmt" "fmt" filepath) :modes '(dockerfile-mode)) (when (modulep! +lsp) (add-hook 'dockerfile-mode-local-vars-hook #'lsp! 'append))) diff --git a/modules/tools/docker/doctor.el b/modules/tools/docker/doctor.el new file mode 100644 index 000000000..d84713e7c --- /dev/null +++ b/modules/tools/docker/doctor.el @@ -0,0 +1,5 @@ +;;; tools/docker/doctor.el -*- lexical-binding: t; -*- + +(when (modulep! :editor format) + (unless (executable-find "dockfmt") + (warn! "Couldn't find dockfmt. Formatting will be disabled."))) From dc3b5c3710ac906afec00347061d42c4b744c512 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Wed, 7 Sep 2022 22:23:34 +0100 Subject: [PATCH 078/523] fix(format): handle git-gutter nicely --- modules/editor/format/config.el | 21 ++++++++++----------- modules/ui/vc-gutter/config.el | 8 ++++++++ 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/modules/editor/format/config.el b/modules/editor/format/config.el index d08e51373..94aa46dba 100644 --- a/modules/editor/format/config.el +++ b/modules/editor/format/config.el @@ -33,17 +33,16 @@ select buffers.") (funcall orig-fn))) (add-hook! 'apheleia-post-format-hook - ;; HACK `web-mode' doesn't update syntax highlighting after arbitrary buffer - ;; modifications, so we must trigger refontification manually. - (defun +format--fix-web-mode-fontification-h () - (when (eq major-mode 'web-mode) - (setq web-mode-fontification-off nil) - (when (and web-mode-scan-beg web-mode-scan-end global-font-lock-mode) - (save-excursion - (font-lock-fontify-region web-mode-scan-beg web-mode-scan-end))))) - (defun +format--refresh-git-gutter-h () - (when (bound-and-true-p git-gutter-mode) - (git-gutter)))) + ;; HACK `web-mode' doesn't update syntax highlighting after arbitrary buffer + ;; modifications, so we must trigger refontification manually. + (defun +format--fix-web-mode-fontification-h () + (when (eq major-mode 'web-mode) + (setq web-mode-fontification-off nil) + (when (and web-mode-scan-beg web-mode-scan-end global-font-lock-mode) + (save-excursion + (font-lock-fontify-region web-mode-scan-beg web-mode-scan-end))))) + (defun +format--refresh-git-gutter-h () + (+vc-gutter-init-maybe-h))) ;; diff --git a/modules/ui/vc-gutter/config.el b/modules/ui/vc-gutter/config.el index 0f3b2bea1..cd78a4f59 100644 --- a/modules/ui/vc-gutter/config.el +++ b/modules/ui/vc-gutter/config.el @@ -116,6 +116,11 @@ is deferred until the file is saved. Respects `git-gutter:disabled-modes'." ;; 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 @@ -130,6 +135,9 @@ is deferred until the file is saved. Respects `git-gutter:disabled-modes'." (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 From 9093f986dcc9792b2abf8323ecd673945f61127a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Sun, 25 Sep 2022 11:17:08 +0100 Subject: [PATCH 079/523] docs(beancount): Add formatter docs --- modules/lang/beancount/README.org | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/lang/beancount/README.org b/modules/lang/beancount/README.org index 77e89581f..dc2eb211e 100644 --- a/modules/lang/beancount/README.org +++ b/modules/lang/beancount/README.org @@ -34,6 +34,7 @@ you [[https://plaintextaccounting.org/][manage your money in plain text]]. This module requires: - [[https://github.com/beancount/beancount][beancount]], for generating reports - [[https://beancount.github.io/fava/][fava]], for a web interface for your ledgers +- [[doom-executable:bean-format]], if [[doom-module::editor format]] * TODO Usage #+begin_quote From c9d9051ef9e1d79eb088315b2c21a444e32404e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Sun, 25 Sep 2022 11:29:27 +0100 Subject: [PATCH 080/523] docs(cc): Add formatter docs --- modules/lang/cc/README.org | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modules/lang/cc/README.org b/modules/lang/cc/README.org index cd673da23..8e7100e7b 100644 --- a/modules/lang/cc/README.org +++ b/modules/lang/cc/README.org @@ -133,6 +133,11 @@ rdm & rc -J $PROJECT_ROOT # loads PROJECT_ROOT's compile_commands.json #+end_src +** =:editor format= +The formatter used is [[doom-executable:clang-format]] which should be installed alongside =clang=. + +For more info, see [[doom-module::editor format]]. + * TODO Usage #+begin_quote 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] From be26181d4f7e36dca600f6004ed3abaa086bac90 Mon Sep 17 00:00:00 2001 From: Ellis Kenyo Date: Fri, 24 Feb 2023 14:04:23 +0000 Subject: [PATCH 081/523] docs(clojure): add formatter docs --- modules/lang/clojure/README.org | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/lang/clojure/README.org b/modules/lang/clojure/README.org index 453fc904c..fe6a01777 100644 --- a/modules/lang/clojure/README.org +++ b/modules/lang/clojure/README.org @@ -47,6 +47,7 @@ This module requires: - [[https://clojure-lsp.github.io/clojure-lsp/][clojure-lsp]], for LSP support (if [[doom-module:+lsp]]) - [[https://github.com/babashka/neil][neil]] for the ability to add packages to your Clojure project from Emacs - [[https://github.com/borkdude/jet][jet]] for jet integration +- [[https://github.com/weavejester/cljfmt][cljfmt]], for formatting code (if [[doom-module::editor format]]) * Usage From d8dcac6908f0bbc1e351342c5c62930f67949e2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Wed, 5 Oct 2022 11:54:47 +0100 Subject: [PATCH 082/523] docs(common-lisp): add formatter docs --- modules/lang/common-lisp/README.org | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules/lang/common-lisp/README.org b/modules/lang/common-lisp/README.org index 2bb211fff..f5d3e0757 100644 --- a/modules/lang/common-lisp/README.org +++ b/modules/lang/common-lisp/README.org @@ -59,6 +59,12 @@ This module also enables the evaluation of =lisp= source blocks in Org Mode. However, you will need a running Sly session for this to work. ~M-x sly~ starts such a session if you didn't have one open already. +** formatter +By enabling [[doom-module::editor format]], [[fn:apheleia-indent-lisp-buffer]] will be +used to format the current buffer. + +Enable [[doom-module::editor format +onsave]] to format the buffer on save. + * TODO Configuration #+begin_quote 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] From ebfc1905592ff2df9c90fc4bf9cecfea0ca99e6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Wed, 5 Oct 2022 12:06:07 +0100 Subject: [PATCH 083/523] docs(crystal): add formatter docs --- modules/lang/crystal/README.org | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules/lang/crystal/README.org b/modules/lang/crystal/README.org index 9b4122da5..eb90ce7f0 100644 --- a/modules/lang/crystal/README.org +++ b/modules/lang/crystal/README.org @@ -48,6 +48,12 @@ This module requires: 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote +** formatter +By enabling [[doom-module::editor format]], [[doom-package:apheleia]] will be +used to format the current buffer. + +Enable [[doom-module::editor format +onsave]] to format the buffer on save. + * TODO Configuration #+begin_quote 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] From 274b6e2d4d430cd402ea8449294643de852a2a8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Wed, 5 Oct 2022 12:18:16 +0100 Subject: [PATCH 084/523] docs(csharp): add formatter docs --- modules/lang/csharp/README.org | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/modules/lang/csharp/README.org b/modules/lang/csharp/README.org index a122fd7c6..eae446653 100644 --- a/modules/lang/csharp/README.org +++ b/modules/lang/csharp/README.org @@ -45,15 +45,22 @@ This module requires: - .NET SDKs (on Windows) - .NET Core 1.X - 3.X or .NET 5 for cross platform - omnisharp-rosyln (if [[doom-module:+lsp]]) +- [[doom-executable:csharpier]] (if [[doom-module::editor format]]) -** TODO MacOS +** mono +*** TODO MacOS -** Arch Linux +*** Arch Linux #+begin_src sh pacman --needed --noconfirm -S mono #+end_src -** TODO NixOS +*** TODO NixOS + +** csharpier +#+begin_src shell +dotnet tool install csharpier -g +#+end_src * TODO Usage #+begin_quote From d38489b02d16ad20cef58f54751100c0acf7b403 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Wed, 5 Oct 2022 12:21:12 +0100 Subject: [PATCH 085/523] docs(dart): add formatter docs --- modules/lang/dart/README.org | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/lang/dart/README.org b/modules/lang/dart/README.org index 0ca04e04b..add6a0a13 100644 --- a/modules/lang/dart/README.org +++ b/modules/lang/dart/README.org @@ -87,7 +87,7 @@ flutter doctor # for Dependency check and further instructions 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote -- Syntax highlighting and formatting for ~.dart~ files provided by LSP. +- Syntax highlighting and formatting for ~.dart~ files provided by LSP or [[doom-module::editor format]]. - Auto import. - Widget guide lines for Flutter. - Closing labels for constructors. From e4faa8f2a45eb7a39e217a7103c29f0c97f976a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Wed, 5 Oct 2022 12:36:59 +0100 Subject: [PATCH 086/523] docs(elixir): add formatter docs --- modules/lang/elixir/README.org | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/lang/elixir/README.org b/modules/lang/elixir/README.org index d4850645b..966fa48df 100644 --- a/modules/lang/elixir/README.org +++ b/modules/lang/elixir/README.org @@ -74,6 +74,7 @@ zypper install elixir - Phoenix support - ~iex~ integration ([[doom-module::tools eval]]) - Syntax checking ([[doom-module::checkers syntax]], using [[doom-package:flycheck-credo]]) +- Formatting for elixir files provided by [[doom-module::editor format]]. ** exunit-mode The exunit-mode prefix is [[kbd:][ t]]. Here is some examples: From 659b6ff6ddad7e6818b27778b481be99fb37ef90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Wed, 5 Oct 2022 12:43:36 +0100 Subject: [PATCH 087/523] docs(elm): add formatter docs --- modules/lang/elm/README.org | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules/lang/elm/README.org b/modules/lang/elm/README.org index 873ed3901..0405df08b 100644 --- a/modules/lang/elm/README.org +++ b/modules/lang/elm/README.org @@ -43,6 +43,12 @@ This module adds [[https://elm-lang.org/][Elm]] support to Doom Emacs. 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote +** formatter +By enabling [[doom-module::editor format]], [[doom-package:apheleia]] will be +used to format the current buffer. + +Enable [[doom-module::editor format +onsave]] to format the buffer on save. + * TODO Configuration #+begin_quote 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] From 0a79b40443d996123ae0a73298a62076f2c027c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Wed, 5 Oct 2022 12:48:26 +0100 Subject: [PATCH 088/523] docs(emacs-lisp): add formatter docs --- modules/lang/emacs-lisp/README.org | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules/lang/emacs-lisp/README.org b/modules/lang/emacs-lisp/README.org index 827278bb9..73603ffa5 100644 --- a/modules/lang/emacs-lisp/README.org +++ b/modules/lang/emacs-lisp/README.org @@ -56,6 +56,12 @@ about it. 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote +** formatter +By enabling [[doom-module::editor format]], [[doom-package:apheleia]] will be +used to format the current buffer. + +Enable [[doom-module::editor format +onsave]] to format the buffer on save. + * TODO Configuration #+begin_quote 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] From 508765002b4142285427333171afe7aeea7bc58b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Wed, 5 Oct 2022 12:56:32 +0100 Subject: [PATCH 089/523] docs(erlang): add formatter docs --- modules/lang/erlang/README.org | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/modules/lang/erlang/README.org b/modules/lang/erlang/README.org index 3a2b6be03..530643745 100644 --- a/modules/lang/erlang/README.org +++ b/modules/lang/erlang/README.org @@ -39,13 +39,20 @@ Includes: 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]]. -For LSP support, install [[https://github.com/erlang/sourcer][sourcer]]. +- [[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]] * TODO Usage #+begin_quote 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote +** formatter +By enabling [[doom-module::editor format]], [[doom-package:apheleia]] will be +used to format the current buffer. + +Enable [[doom-module::editor format +onsave]] to format the buffer on save. + * TODO Configuration #+begin_quote 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] From d2f3190766a755c5e4b071283f1d55e9c9e738e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Wed, 5 Oct 2022 13:00:32 +0100 Subject: [PATCH 090/523] docs(fortran): add formatter docs --- modules/lang/fortran/README.org | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modules/lang/fortran/README.org b/modules/lang/fortran/README.org index ac46501c0..bdcdb9803 100644 --- a/modules/lang/fortran/README.org +++ b/modules/lang/fortran/README.org @@ -97,6 +97,11 @@ your Bash Profile, etc., and log out and in again._ Now Doom will be able to use Good luck and happy computing! +** efmt +When [[doom-module::editor format]] is enabled and [[doom-executable:fprettify]] is installed, buffers can be formatted with [[fn:apheleia-format-buffer]]. + +Enable [[doom-module::editor format +onsave]] to format the buffer on save. + * TODO Usage #+begin_quote 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] From ca38e5a9a5cf5a0aab21908ef611c5ed3bcf9008 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Thu, 17 Nov 2022 17:03:12 +0000 Subject: [PATCH 091/523] feat(format): add :lang fsharp formatter --- modules/lang/fsharp/config.el | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/lang/fsharp/config.el b/modules/lang/fsharp/config.el index 127f66840..6b79db3f8 100644 --- a/modules/lang/fsharp/config.el +++ b/modules/lang/fsharp/config.el @@ -11,6 +11,7 @@ (set-lookup-handlers! 'fsharp-mode :async t :definition #'fsharp-ac/gotodefn-at-point) (set-company-backend! 'fsharp-mode 'fsharp-ac/company-backend)) (set-repl-handler! 'fsharp-mode #'run-fsharp) + (set-formatter! 'fantomas '("fantomas" "--stdin") :modes '(fsharp-mode)) (map! :localleader :map fsharp-mode-map "b" #'fsharp-ac/pop-gotodefn-stack ; Useful for re-tracing your steps From 26819c33f379f7341c3cd6e9b15c4aa7735f2ae5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Thu, 17 Nov 2022 17:03:25 +0000 Subject: [PATCH 092/523] docs(fsharp): add formatter docs --- modules/lang/fsharp/README.org | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/modules/lang/fsharp/README.org b/modules/lang/fsharp/README.org index b528ab980..80cb711a7 100644 --- a/modules/lang/fsharp/README.org +++ b/modules/lang/fsharp/README.org @@ -48,6 +48,13 @@ pacman -S mono ** LSP The language server is automatically installed by [[https://github.com/emacs-lsp/lsp-mode/blob/master/clients/lsp-fsharp.el][lsp-fsharp]]. +** Fantomas +Fantomas is used for formatting via [[doom-module::editor format]] and can be installed as a [[https://dotnet.microsoft.com/en-us/download][dotnet]] tool. + +#+begin_src shell +dotnet tool install -g fantomas-tool +#+end_src + * TODO Usage #+begin_quote 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] From cc9bda36c273a0cd8194d84cfff5fcc2e4271601 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Thu, 17 Nov 2022 17:04:50 +0000 Subject: [PATCH 093/523] fix(cc): remove executable-find formatter check --- modules/lang/cc/config.el | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/modules/lang/cc/config.el b/modules/lang/cc/config.el index b2cc3739c..d56bcb3e1 100644 --- a/modules/lang/cc/config.el +++ b/modules/lang/cc/config.el @@ -48,18 +48,17 @@ This is ignored by ccls.") (set-docsets! 'c-mode "C") (set-docsets! 'c++-mode "C++" "Boost") (set-electric! '(c-mode c++-mode objc-mode java-mode) :chars '(?\n ?\} ?\{)) - (when (executable-find "clang-format") - (set-formatter! - 'clang-format - '("clang-format" - "-assume-filename" - (or (buffer-file-name) - (cdr (assoc major-mode - '((c-mode . ".c") - (c++-mode . ".cpp") - (cuda-mode . ".cu") - (protobuf-mode . ".proto")))))) - :modes '(c-mode c++-mode protobuf-mode cuda-mode))) + (set-formatter! + 'clang-format + '("clang-format" + "-assume-filename" + (or (buffer-file-name) + (cdr (assoc major-mode + '((c-mode . ".c") + (c++-mode . ".cpp") + (cuda-mode . ".cu") + (protobuf-mode . ".proto")))))) + :modes '(c-mode c++-mode protobuf-mode cuda-mode)) (set-rotate-patterns! 'c++-mode :symbols '(("public" "protected" "private") ("class" "struct"))) From 65b0b148497c1b1a1e5f1e2e95eda7862b12b095 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Thu, 17 Nov 2022 17:05:50 +0000 Subject: [PATCH 094/523] fix(crystal): remove executable-find formatter check --- modules/lang/crystal/config.el | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/lang/crystal/config.el b/modules/lang/crystal/config.el index 97070ddb4..979d27944 100644 --- a/modules/lang/crystal/config.el +++ b/modules/lang/crystal/config.el @@ -1,8 +1,7 @@ ;;; lang/crystal/config.el -*- lexical-binding: t; -*- (after! crystal-mode - (when (executable-find "crystal") - (set-formatter! 'crystal-mode '("crystal" "tool" "format" "-") :modes '(crystal-mode))) + (set-formatter! 'crystal-mode '("crystal" "tool" "format" "-") :modes '(crystal-mode)) (set-lookup-handlers! 'crystal-mode :definition #'crystal-def-jump From a5756f1e19df47c0d919b4a5399bd816c3381278 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Thu, 17 Nov 2022 17:31:04 +0000 Subject: [PATCH 095/523] fix(csharp): reduce formatter complexity --- modules/lang/csharp/config.el | 6 +----- modules/lang/csharp/doctor.el | 7 ++----- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/modules/lang/csharp/config.el b/modules/lang/csharp/config.el index 2a6cf7aa6..94f64cc61 100644 --- a/modules/lang/csharp/config.el +++ b/modules/lang/csharp/config.el @@ -3,11 +3,7 @@ (use-package! csharp-mode :hook (csharp-mode . rainbow-delimiters-mode) :config - (when (and (file-exists-p (expand-file-name "~/.dotnet/tools/dotnet-csharpier")) - (file-exists-p ".config/dotnet-tools.json") - (eq 0 (call-process-shell-command - (format "grep -q 'dotnet-csharpier' %s" (expand-file-name ".config/dotnet-tools.json")) nil nil))) - (set-formatter! 'csharpier '("dotnet" "tool" "run" "dotnet-csharpier") :modes '(csharp-mode))) + (set-formatter! 'csharpier '("dotnet-csharpier") :modes '(csharp-mode)) (set-electric! 'csharp-mode :chars '(?\n ?\})) (set-rotate-patterns! 'csharp-mode :symbols '(("public" "protected" "private") diff --git a/modules/lang/csharp/doctor.el b/modules/lang/csharp/doctor.el index f816be957..3d7b2be35 100644 --- a/modules/lang/csharp/doctor.el +++ b/modules/lang/csharp/doctor.el @@ -11,8 +11,5 @@ "This module requires (:tools tree-sitter)") (when (modulep! :editor format) - (unless (and (file-exists-p (expand-file-name "~/.dotnet/tools/dotnet-csharpier")) - (file-exists-p ".config/dotnet-tools.json") - (eq 0 (call-process-shell-command - (format "grep -q 'dotnet-csharpier' %s" (expand-file-name ".config/dotnet-tools.json")) nil nil))) - (warn! "csharpier is not installed or setup as a local tool. Please see the module README. \nOtherwise, formatting will be disabled."))) + (unless (executable-find "dotnet-csharpier") + (warn! "csharpier is not installed, formatting will be disabled."))) From 9c2d0b00d74b4307fc7145057fc8aef5f222427a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Thu, 17 Nov 2022 17:32:59 +0000 Subject: [PATCH 096/523] fix(data): remove executable-find formatter check --- modules/lang/data/config.el | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/lang/data/config.el b/modules/lang/data/config.el index 24498563e..d0777a910 100644 --- a/modules/lang/data/config.el +++ b/modules/lang/data/config.el @@ -9,8 +9,7 @@ nxml-auto-insert-xml-declaration-flag t) (set-company-backend! 'nxml-mode '(company-nxml company-yasnippet)) (setq-hook! 'nxml-mode-hook tab-width nxml-child-indent) - (when (executable-find "xmllint") - (set-formatter! 'xmllint '("xmllint" "--format" "-") :modes '(nxml-mode)))) + (set-formatter! 'xmllint '("xmllint" "--format" "-") :modes '(nxml-mode))) ;;;###package csv-mode From c6291ecfc069f1cb1ac0a76d62a2fd37bb6de03d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Thu, 17 Nov 2022 17:35:26 +0000 Subject: [PATCH 097/523] fix(erlang): remove executable-find formatter check --- modules/lang/erlang/config.el | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/lang/erlang/config.el b/modules/lang/erlang/config.el index 37b9d1ab8..672ca5b6a 100644 --- a/modules/lang/erlang/config.el +++ b/modules/lang/erlang/config.el @@ -5,8 +5,7 @@ :mode ("/rebar\\.config\\(?:\\.script\\)?\\'" . erlang-mode) :mode ("/\\(?:app\\|sys\\)\\.config\\'" . erlang-mode) :config - (when (executable-find "efmt") - (set-formatter! 'efmt '("efmt" "-") :modes '(erlang-mode))) + (set-formatter! 'efmt '("efmt" "-") :modes '(erlang-mode)) (when (modulep! +lsp) (add-hook 'erlang-mode-local-vars-hook #'lsp! 'append)) From e44a7b3c5b1f8b010f397b5465bc4f93c128133c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Thu, 17 Nov 2022 17:35:59 +0000 Subject: [PATCH 098/523] fix(fortran): remove executable-find formatter check --- modules/lang/fortran/config.el | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/lang/fortran/config.el b/modules/lang/fortran/config.el index 15b2400ae..b42e76ad6 100644 --- a/modules/lang/fortran/config.el +++ b/modules/lang/fortran/config.el @@ -35,8 +35,7 @@ :desc "build" "b" #'+fortran/build :desc "run" "r" #'+fortran/run) - (when (executable-find "fprettify") - (set-formatter! 'fprettify '("fprettify" "-") :modes '(f90-mode fortran-mode))) + (set-formatter! 'fprettify '("fprettify" "-") :modes '(f90-mode fortran-mode)) (when (modulep! +intel) (map! :map f90-mode-map From d92219d8d8bfaa2963f1adc3c46102a190c60c5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Thu, 17 Nov 2022 17:36:30 +0000 Subject: [PATCH 099/523] fix(gdscript): remove executable-find formatter check --- modules/lang/gdscript/config.el | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/lang/gdscript/config.el b/modules/lang/gdscript/config.el index 55714e65f..f8496eeba 100644 --- a/modules/lang/gdscript/config.el +++ b/modules/lang/gdscript/config.el @@ -13,8 +13,7 @@ (set-lookup-handlers! 'gdscript-mode :documentation #'gdscript-docs-browse-symbol-at-point) - (when (executable-find "gdformat") - (set-formatter! 'gdformat '("gdformat" "-") :modes '(gdscript-mode))) + (set-formatter! 'gdformat '("gdformat" "-") :modes '(gdscript-mode)) (when (modulep! +lsp) (add-hook 'gdscript-mode-local-vars-hook #'lsp! 'append)) From e3a337ebd438e3ee3bdb27a9864064f87b301044 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Thu, 17 Nov 2022 17:40:27 +0000 Subject: [PATCH 100/523] fix!(go): prefer upstream formatter config BREAKING CHANGE: Since apheleia doesn't handle regions yet, this should be fine to leave to upstream. This could be considered a breaking change if users rely on this functionality. --- modules/lang/go/config.el | 8 -------- 1 file changed, 8 deletions(-) diff --git a/modules/lang/go/config.el b/modules/lang/go/config.el index 525444a81..dc66af7b2 100644 --- a/modules/lang/go/config.el +++ b/modules/lang/go/config.el @@ -11,14 +11,6 @@ :references #'go-guru-referrers :documentation #'godoc-at-point) - ;; Redefines default formatter to *not* use goimports if reformatting a - ;; region; as it doesn't play well with partial code. - (set-formatter! 'gofmt - '(("%s" (if (or +format-region-p - (not (executable-find "goimports"))) - "gofmt" - "goimports")))) - (if (modulep! +lsp) (add-hook 'go-mode-local-vars-hook #'lsp! 'append) (add-hook 'go-mode-hook #'go-eldoc-setup)) From 09d0f8b984579cb581a5de46f06d6521a7502e93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Sat, 19 Nov 2022 09:38:26 +0000 Subject: [PATCH 101/523] docs(graphql): add formatter docs --- modules/lang/graphql/README.org | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules/lang/graphql/README.org b/modules/lang/graphql/README.org index 772c13fd3..5f8c6255c 100644 --- a/modules/lang/graphql/README.org +++ b/modules/lang/graphql/README.org @@ -43,9 +43,15 @@ It includes: * Installation [[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]] +** LSP + This module has no direct requirements, but the +lsp flag requires a [[https://emacs-lsp.github.io/lsp-mode/page/lsp-graphql/][supported LSP server]]. +** Formatter + +Formatting is handled using the [[doom-module::editor format]] module via [[https://prettier.io/docs/en/install.html][prettier]]. + * Usage ** Sending queries When visiting a graphql buffer, you have access to the ability to send the From dd4c0b385f9b81c829d84d6c6d6ef5f2a16fc1c6 Mon Sep 17 00:00:00 2001 From: Ellis Kenyo Date: Fri, 24 Feb 2023 14:09:16 +0000 Subject: [PATCH 102/523] docs(haskell): add formatter docs --- modules/lang/haskell/README.org | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/modules/lang/haskell/README.org b/modules/lang/haskell/README.org index 0e089a69d..4bbcbd628 100644 --- a/modules/lang/haskell/README.org +++ b/modules/lang/haskell/README.org @@ -52,6 +52,11 @@ system package manager, cabal, or stack. formatters such as [[https://github.com/lspitzner/brittany][brittany]], [[https://github.com/ennocramer/floskell][floskell]], [[https://github.com/tweag/ormolu][ormolu]], [[https://github.com/fourmolu/fourmolu][fourmolu]], and [[https://github.com/haskell/stylish-haskell][stylish-haskell]], which can be installed through system package manager, cabal, or stack. +** Formatter + +[[doom-module::editor format]] by default uses [[https://github.com/fourmolu/fourmolu#installation][fourmolu]] to format code when not +relying on hls, follow the linked install instructions. + * TODO Usage #+begin_quote 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] @@ -61,12 +66,12 @@ This module integrates the haskell packages into Doom by providing things such as REPL support, project root recognition, etc. It also provide the following keybindings: -| Keybinding | Description | -|-----------------+-----------------------------------------------| -| [[kbd:][ b]] | Build the current cabal project | +| Keybinding | Description | +|-----------------+---------------------------------------------| +| [[kbd:][ b]] | Build the current cabal project | | [[kbd:][ c]] | Visit the =.cabal= file of the current buffer | -| [[kbd:][ h]] | Toggle visibility of the form at point | -| [[kbd:][ H]] | hides all top level functions | +| [[kbd:][ h]] | Toggle visibility of the form at point | +| [[kbd:][ H]] | hides all top level functions | * TODO Configuration #+begin_quote From 24bfd3f5b49e494731a8daef002b4973ce30b33d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Sat, 19 Nov 2022 10:46:08 +0000 Subject: [PATCH 103/523] docs(java): add formatter docs --- modules/lang/java/README.org | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/modules/lang/java/README.org b/modules/lang/java/README.org index 4f61fb98b..b0674681f 100644 --- a/modules/lang/java/README.org +++ b/modules/lang/java/README.org @@ -98,6 +98,18 @@ JAVA_HOME=~/.jabba/jdk/adopt@1.11.0-3 And then run ~$ direnv allow .~ in the project directory. The [[doom-module::tools direnv]] module will automatically source this environment before activating LSP servers. +** Formatter + +[[doom-module::editor format]] uses [[https://github.com/google/google-java-format][google-java-format]] to handle formatting. + +To install, grab the latest =all-deps.jar= release from the above, put it +somewhere and create a script similar to the below: + +=/usr/local/bin/google-java-format= +#+begin_src shell +java -jar /path/to/google-java-format-all-deps.jar +#+end_src + * TODO Usage #+begin_quote 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] From 39bbdde8c9c1f0c1e47b464cf29f62fc165663a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Sat, 19 Nov 2022 10:47:44 +0000 Subject: [PATCH 104/523] docs(javascript): add formatter docs --- modules/lang/javascript/README.org | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/lang/javascript/README.org b/modules/lang/javascript/README.org index a732c48a0..78b5c7cf6 100644 --- a/modules/lang/javascript/README.org +++ b/modules/lang/javascript/README.org @@ -58,6 +58,10 @@ This module requires [[https://nodejs.org/en/][NodeJS]] and one of [[https://www - Arch Linux: ~$ pacman --needed --noconfirm -S nodejs npm~ - openSUSE: ~$ zypper install nodejs npm~ +** Formatter + +Formatting is handled using the [[doom-module::editor format]] module via [[https://prettier.io/docs/en/install.html][prettier]]. + * TODO Usage #+begin_quote 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] From 65a62282a6708a249939df1a4f96d0bf0da48d2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Sat, 19 Nov 2022 10:48:34 +0000 Subject: [PATCH 105/523] docs(json): add formatter docs --- modules/lang/json/README.org | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/lang/json/README.org b/modules/lang/json/README.org index c3d6ed960..e60583e7d 100644 --- a/modules/lang/json/README.org +++ b/modules/lang/json/README.org @@ -32,7 +32,9 @@ This module adds [[https://www.json.org/json-en.html][JSON]] support to Doom Ema * Installation [[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]] -/This module has no external requirements./ +** Formatter + +Formatting is handled using the [[doom-module::editor format]] module via [[https://prettier.io/docs/en/install.html][prettier]]. * TODO Usage #+begin_quote From 311959ea1d47bc462d279b21ad3607a899d1ac8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Sat, 19 Nov 2022 10:56:17 +0000 Subject: [PATCH 106/523] docs(kotlin): add install docs --- modules/lang/kotlin/README.org | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/modules/lang/kotlin/README.org b/modules/lang/kotlin/README.org index 49e97a93e..003918c25 100644 --- a/modules/lang/kotlin/README.org +++ b/modules/lang/kotlin/README.org @@ -25,12 +25,22 @@ This module adds [[https://kotlinlang.org/][Kotlin]] support to Doom Emacs. # This section will be machine generated. Don't edit it by hand. /This module does not have a changelog yet./ -* TODO Installation +* Installation [[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]] -#+begin_quote - 🔨 /This module's prerequisites are not documented./ [[doom-contrib-module:][Document them?]] -#+end_quote +Install kotlin through your distribution's package manager, eg: + +#+begin_src shell +sudo apt install kotlin # Ubuntu +sudo pacman -S kotlin # Arch Linux +brew install kotlin # MacOS +#+end_src + +or by getting the [[https://github.com/JetBrains/kotlin/releases/latest][latest]] release and adding to your =$PATH= manually. + +** Formatter + +Formatting is handled using the [[doom-module::editor format]] module via [[https://pinterest.github.io/ktlint/install/cli/][ktlint]]. * TODO Usage #+begin_quote From 8410d9fe70a75471264db07e067ecddcf4cd46c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Sat, 19 Nov 2022 14:22:26 +0000 Subject: [PATCH 107/523] docs(latex): add formatter docs --- modules/lang/latex/README.org | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/lang/latex/README.org b/modules/lang/latex/README.org index 6ba4c5637..e718d15c3 100644 --- a/modules/lang/latex/README.org +++ b/modules/lang/latex/README.org @@ -93,6 +93,10 @@ brew install --cask mactex # WARNING: large 4gb download! environment.systemPackages = [ pkgs.texlive.combined.scheme-medium ]; #+end_src +** Formatter + +Formatting is handled using the [[doom-module::editor format]] module via [[https://github.com/cmhughes/latexindent.pl][latexindent]]. + * TODO Usage #+begin_quote 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] From 0577da300b2db82ad604520108a9b487cf972554 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Sat, 19 Nov 2022 14:26:54 +0000 Subject: [PATCH 108/523] docs(lua): add formatter docs --- modules/lang/lua/README.org | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/lang/lua/README.org b/modules/lang/lua/README.org index 749f074e6..a3fe30bd0 100644 --- a/modules/lang/lua/README.org +++ b/modules/lang/lua/README.org @@ -75,6 +75,10 @@ Eglot currently only supports one of the above servers out of the box: =$EMACSDIR/.local/etc/lsp/lua-language-server/=. See ~+lua-lsp-dir~ variable to change this. +** Formatter + +Formatting is handled using the [[doom-module::editor format]] module via [[https://github.com/JohnnyMorganz/StyLua#installation][Stylua]]. + * TODO Usage #+begin_quote 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] From 51d3954c825aebc1bf5adb501904e083569e99a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Sat, 19 Nov 2022 14:28:47 +0000 Subject: [PATCH 109/523] docs(markdown): add formatter docs --- modules/lang/markdown/README.org | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/lang/markdown/README.org b/modules/lang/markdown/README.org index c07e06bae..675dd6852 100644 --- a/modules/lang/markdown/README.org +++ b/modules/lang/markdown/README.org @@ -115,6 +115,10 @@ installed through your OS's package manager: + MacOS: ~$ brew install multimarkdown~ + Arch Linux: [[https://aur.archlinux.org/packages/multimarkdown/][multimarkdown]] is available on the AUR +** Formatter + +Formatting is handled using the [[doom-module::editor format]] module via [[https://prettier.io/docs/en/install.html][prettier]]. + * TODO Usage #+begin_quote 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] From 9efadb5a420c9a2824f22aa3d9112e320cb49a1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Sat, 19 Nov 2022 14:31:53 +0000 Subject: [PATCH 110/523] docs(nim): add formatter docs --- modules/lang/nim/README.org | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/lang/nim/README.org b/modules/lang/nim/README.org index b61d87eeb..805e2fa5b 100644 --- a/modules/lang/nim/README.org +++ b/modules/lang/nim/README.org @@ -51,6 +51,10 @@ Alternatively, nim is usually available through your OS's package manager: - Arch Linux: ~$ pacman --needed --noconfirm -S nim nimble~ - openSUSE: ~$ zypper install nim~ +** Formatter + +Formatting is handled using the [[doom-module::editor format]] module via [[https://github.com/FedericoCeratto/nimfmt#installation][nimfmt]]. + * TODO Usage #+begin_quote 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] From c86943f97bd684687d962c1db3ec626f4711a144 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Sat, 19 Nov 2022 14:42:35 +0000 Subject: [PATCH 111/523] docs(purescript): add install docs --- modules/lang/purescript/README.org | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/modules/lang/purescript/README.org b/modules/lang/purescript/README.org index e109cb0a4..bb4c7c17b 100644 --- a/modules/lang/purescript/README.org +++ b/modules/lang/purescript/README.org @@ -26,12 +26,20 @@ This module adds [[https://www.purescript.org/][Purescript]] support to Doom Ema # This section will be machine generated. Don't edit it by hand. /This module does not have a changelog yet./ -* TODO Installation +* Installation [[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]] -#+begin_quote -🔨 /This module's prerequisites are not documented./ [[doom-contrib-module:][Document them?]] -#+end_quote +The main tools for PureScript are installed via npm. + +** Compiler +#+begin_src shell +npm install -g purescript spago +#+end_src + +** Formatter +#+begin_src sh +npm install -g purs-tidy +#+end_src * TODO Usage #+begin_quote From 601f9b0db61c88839d19eb262893f034057a49bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Sat, 19 Nov 2022 14:44:57 +0000 Subject: [PATCH 112/523] docs(python): add formatter docs --- modules/lang/python/README.org | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/lang/python/README.org b/modules/lang/python/README.org index 6d248d200..4a92accd0 100644 --- a/modules/lang/python/README.org +++ b/modules/lang/python/README.org @@ -92,6 +92,10 @@ An alternative LSP server can be used by installing them through the - To install *mspyls*: ~M-x lsp-install-server RET mspyls~. - To install *pyright*: ~$ pip install pyright~ or ~$ npm i -g pyright~. +** Formatter + +Formatting is handled using the [[doom-module::editor format]] module via [[https://black.readthedocs.io/en/stable/getting_started.html#installation][black]]. + * TODO Usage #+begin_quote 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] From 15f21fcb15b711d8fef271259816ed2528ab2abe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Sat, 19 Nov 2022 14:47:07 +0000 Subject: [PATCH 113/523] docs(racket): add formatter docs --- modules/lang/racket/README.org | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/lang/racket/README.org b/modules/lang/racket/README.org index 46a406e00..ebc32bf51 100644 --- a/modules/lang/racket/README.org +++ b/modules/lang/racket/README.org @@ -43,6 +43,10 @@ Or, for fewer dependencies: pacman -S racket-minimal #+end_src +** Formatter + +Formatting is handled using the [[doom-module::editor format]] module via [[https://docs.racket-lang.org/fmt/][fmt]]. + * TODO Usage #+begin_quote 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] From 92ee29fec92daa2f88b0497168737a838325f334 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Sat, 19 Nov 2022 14:49:34 +0000 Subject: [PATCH 114/523] docs(rst): add formatter docs --- modules/lang/rst/README.org | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/lang/rst/README.org b/modules/lang/rst/README.org index a019a62d4..87910e086 100644 --- a/modules/lang/rst/README.org +++ b/modules/lang/rst/README.org @@ -27,6 +27,10 @@ This module adds [[https://docutils.sourceforge.io/rst.html][ReStructured Text]] This module requires [[https://www.sphinx-doc.org/en/master/usage/installation.html][sphinx]] to build RST documents. +** Formatter + +Formatting is handled using the [[doom-module::editor format]] module via [[https://github.com/dzhu/rstfmt#usage][rstfmt]]. + * TODO Usage #+begin_quote 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] From 2e6ea90cf20b007d92d21eb6cbd898adc3a845aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Sat, 19 Nov 2022 14:51:29 +0000 Subject: [PATCH 115/523] docs(ruby): add formatter docs --- modules/lang/ruby/README.org | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/lang/ruby/README.org b/modules/lang/ruby/README.org index 137e651e6..0423ae36c 100644 --- a/modules/lang/ruby/README.org +++ b/modules/lang/ruby/README.org @@ -70,6 +70,10 @@ These guides will help you install Ruby: Then run ~$ gem install rubocop~ to install rubocop. +** Formatter + +Formatting is handled using the [[doom-module::editor format]] module via [[https://prettier.io/docs/en/install.html][prettier]]. + * TODO Usage #+begin_quote 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] From ee4a377cfa361ae7769ea2e3fea65fcf6bdfa259 Mon Sep 17 00:00:00 2001 From: Ellis Kenyo Date: Mon, 24 Jul 2023 19:47:49 +0100 Subject: [PATCH 116/523] docs(rust): update rustfmt command --- modules/lang/rust/README.org | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/lang/rust/README.org b/modules/lang/rust/README.org index 3a7474bfe..7ff6833f9 100644 --- a/modules/lang/rust/README.org +++ b/modules/lang/rust/README.org @@ -64,7 +64,7 @@ To install and manage Rust on Windows, consult [[https://forge.rust-lang.org/inf ** Other Requirements - If [[doom-module::editor format]] is enabled, you'll need =rustfmt=: ~$ rustup component add - rustfmt-preview~. + rustfmt~. - Users with [[doom-module:+lsp]] enabled will need [[github:rust-analyzer/rust-analyzer][rust-analyzer]] (rls is supported, but [[https://blog.rust-lang.org/2022/07/01/RLS-deprecation.html][deprecated]]). - Using the following commands requires: From a7e8ee691006b7d6808b23f1b5d2429f2e554d54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Sat, 19 Nov 2022 14:59:02 +0000 Subject: [PATCH 117/523] docs(scala): add formatter docs --- modules/lang/scala/README.org | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/lang/scala/README.org b/modules/lang/scala/README.org index 813fe83ea..af9ebd1fc 100644 --- a/modules/lang/scala/README.org +++ b/modules/lang/scala/README.org @@ -95,6 +95,10 @@ coursier bootstrap \ yay -S metals #+end_src +** Formatter + +Formatting is handled using the [[doom-module::editor format]] module via [[https://scalameta.org/scalafmt/docs/installation.html#cli][scalafmt]]. + * TODO Usage #+begin_quote 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] From fa145f5cc15405204b7c214f2f1539377aa68050 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Sat, 19 Nov 2022 15:11:58 +0000 Subject: [PATCH 118/523] docs(sh): add formatter docs --- modules/lang/sh/README.org | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/lang/sh/README.org b/modules/lang/sh/README.org index 6cd1c5a79..dc19a57c9 100644 --- a/modules/lang/sh/README.org +++ b/modules/lang/sh/README.org @@ -49,6 +49,8 @@ This module has several optional dependencies: - With the [[doom-module::tools debugger]] module - [[http://bashdb.sourceforge.net/][bashdb]]: Enables debugging for bash scripts - [[https://github.com/rocky/zshdb][zshdb]]: Enables debugging for zsh scripts +- With the [[doom-module::editor format]] module + - [[https://github.com/patrickvane/shfmt][shfmt]]: Enables formatting for {posix,ba,mk}sh scripts * TODO Usage #+begin_quote From 308ab45300ce7c5c861ad246aa43092b221ad963 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Sat, 19 Nov 2022 15:13:32 +0000 Subject: [PATCH 119/523] docs(sml): add formatter docs --- modules/lang/sml/README.org | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/lang/sml/README.org b/modules/lang/sml/README.org index 150043776..48962c5aa 100644 --- a/modules/lang/sml/README.org +++ b/modules/lang/sml/README.org @@ -28,6 +28,10 @@ THis module adds [[https://smlfamily.github.io/][SML (Standard ML) programming l This module requires =sml= and =MLton=. +** Formatter + +Formatting is handled using the [[doom-module::editor format]] module via [[https://github.com/jluningp/smlformat#installation][smlformat]]. + * TODO Usage #+begin_quote 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] From 580ec33d3a6bf518ae32553287a7a1554de6d8cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Sat, 19 Nov 2022 15:15:37 +0000 Subject: [PATCH 120/523] feat(sml): add :lang sml formatter --- modules/lang/solidity/config.el | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/lang/solidity/config.el b/modules/lang/solidity/config.el index d53d8ca3d..330333f9d 100644 --- a/modules/lang/solidity/config.el +++ b/modules/lang/solidity/config.el @@ -7,6 +7,7 @@ (setq solidity-comment-style 'slash) (set-docsets! 'solidity-mode "Solidity") (set-company-backend! 'solidity-mode 'company-solidity) + (set-formatter! 'prettier-solidity '(npx "prettier" "--stdin-filepath" filepath "--parser=solidity") :modes '(solidity-mode)) (use-package! solidity-flycheck ; included with solidity-mode :when (and (modulep! :checkers syntax) From 076c6d9183575c51511d536bc4a91e1c2e61246d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Sat, 19 Nov 2022 15:15:57 +0000 Subject: [PATCH 121/523] docs(solidity): add formatter docs --- modules/lang/solidity/README.org | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/lang/solidity/README.org b/modules/lang/solidity/README.org index 3a66e940a..5e6a7c023 100644 --- a/modules/lang/solidity/README.org +++ b/modules/lang/solidity/README.org @@ -55,6 +55,10 @@ can set it to your own =.soliumrc.json= with: (setq flycheck-solidity-solium-soliumrcfile "~/.soliumrc.json") #+end_src +** Formatter + +Formatting is handled using the [[doom-module::editor format]] module via [[https://github.com/prettier-solidity/prettier-plugin-solidity#installation-and-usage][prettier]]. + * TODO Usage #+begin_quote 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] From 4a55ac843c6b966d60a0267db91d1c5c444782da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Sat, 19 Nov 2022 15:21:08 +0000 Subject: [PATCH 122/523] docs(swift): add formatter docs --- modules/lang/swift/README.org | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/lang/swift/README.org b/modules/lang/swift/README.org index 380ae1165..b3606f378 100644 --- a/modules/lang/swift/README.org +++ b/modules/lang/swift/README.org @@ -35,6 +35,10 @@ This module adds support for the [[https://developer.apple.com/swift/][Swift pro * TODO Installation [[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]] +** Formatter + +Formatting is handled using the [[doom-module::editor format]] module via [[https://github.com/nicklockwood/SwiftFormat#command-line-tool][swiftformat]]. + #+begin_quote 🔨 /This module's prerequisites are not documented./ [[doom-contrib-module:][Document them?]] #+end_quote From 953cfd342b82320fd05fae8ca5e6ee8d3e31366c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Sat, 19 Nov 2022 15:24:18 +0000 Subject: [PATCH 123/523] docs(web): add formatter docs --- modules/lang/web/README.org | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/lang/web/README.org b/modules/lang/web/README.org index b24116eed..b6ad7c7c5 100644 --- a/modules/lang/web/README.org +++ b/modules/lang/web/README.org @@ -48,6 +48,10 @@ ReactJS, Wordpress, Jekyll, Phaser, AngularJS, Djano, and more. * TODO Installation [[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]] +** Formatter + +Formatting is handled using the [[doom-module::editor format]] module via [[https://prettier.io/docs/en/install.html][prettier]]. + #+begin_quote 🔨 /No installation steps have been documented./ [[doom-contrib-module:][Document them?]] #+end_quote From 679d0d00932358eb62065ff08b3c516cdbce88a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Sat, 19 Nov 2022 15:26:03 +0000 Subject: [PATCH 124/523] docs(docker): add formatter docs --- modules/tools/docker/README.org | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/tools/docker/README.org b/modules/tools/docker/README.org index 07596c85c..e6bb483de 100644 --- a/modules/tools/docker/README.org +++ b/modules/tools/docker/README.org @@ -40,6 +40,7 @@ installed and accessible from your PATH. Optionally, this module also uses the following programs: - =docker-langserver= (for LSP users): ~$ npm install -g dockerfile-language-server-nodejs~ +- =dockfmt= for [[doom-module::editor format]]: https://github.com/jessfraz/dockfmt#installation * TODO Usage #+begin_quote From e852bbcf6cd01b29d7e4c00280daec70aca42d3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Sat, 19 Nov 2022 15:44:56 +0000 Subject: [PATCH 125/523] docs(yaml): add formatter docs --- modules/lang/yaml/README.org | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/lang/yaml/README.org b/modules/lang/yaml/README.org index dd87f1fd0..7137f7067 100644 --- a/modules/lang/yaml/README.org +++ b/modules/lang/yaml/README.org @@ -30,7 +30,9 @@ This module provides support for the [[https://yaml.org/][YAML file format]] to * Installation [[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]] -/This module has no external requirements./ +** Formatter + +Formatting is handled using the [[doom-module::editor format]] module via [[https://prettier.io/docs/en/install.html][prettier]]. * TODO Usage #+begin_quote From 457aeeccc0b6ba5d15711e1079c2accb45cdf114 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Sat, 19 Nov 2022 16:41:16 +0000 Subject: [PATCH 126/523] fix(format): better handle format-on-save disable --- modules/editor/format/config.el | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/modules/editor/format/config.el b/modules/editor/format/config.el index 94aa46dba..9610e1154 100644 --- a/modules/editor/format/config.el +++ b/modules/editor/format/config.el @@ -1,5 +1,17 @@ ;;; editor/format/config.el -*- lexical-binding: t; -*- +(defvar +format-on-save-disabled-modes + '(sql-mode ; sqlformat is currently broken + tex-mode ; latexindent is broken + latex-mode + org-msg-edit-mode) ; doesn't need a formatter + "A list of major modes in which to reformat the buffer upon saving. +If this list begins with `not', then it negates the list. +If it is `t', it is enabled in all modes. +If nil, it is disabled in all modes, the same as if the +onsave flag wasn't + used at all. +Irrelevant if you do not have the +onsave flag enabled for this module.") + (defvar +format-preserve-indentation t "If non-nil, the leading indentation is preserved when formatting the whole buffer. This is particularly useful for partials. @@ -22,6 +34,15 @@ select buffers.") (when (modulep! +onsave) (add-hook 'doom-first-file-hook #'apheleia-global-mode)) +(defun +format-enable-on-save-maybe-h () + "Enable formatting on save in certain major modes. +This is controlled by `+format-on-save-disabled-modes'." + (setq-local apheleia-inhibit (or (eq major-mode 'fundamental-mode) + (string-empty-p (string-trim (buffer-name))) + (not (null (memq major-mode +format-on-save-disabled-modes)))))) + +(when (modulep! +onsave) + (add-hook 'after-change-major-mode-hook #'+format-enable-on-save-maybe-h)) ;; ;;; Hacks From 926b8f132862dbcbc0a23c77765180d2a75bbc61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Sat, 19 Nov 2022 16:43:31 +0000 Subject: [PATCH 127/523] docs(format): redo docs to handle refactor --- modules/editor/format/README.org | 195 +++++++++++++------------------ 1 file changed, 80 insertions(+), 115 deletions(-) diff --git a/modules/editor/format/README.org b/modules/editor/format/README.org index dd23f3988..bb38e23a7 100644 --- a/modules/editor/format/README.org +++ b/modules/editor/format/README.org @@ -3,44 +3,37 @@ #+created: July 26, 2020 #+since: 21.12.0 -#+begin_quote - 🔨 This module has been scheduled for a rewrite. Its documentation will remain - incomplete and edge cases left unpatched in the meantime. A preview of this - rewrite can be found [[https://github.com/hlissner/doom-emacs-private/tree/master/modules/editor/format][in my private config]]. -#+end_quote - * Description :unfold: -This module integrates code formatters into Emacs. Here are some of the -formatters that it currently supports: +Code style is something that's hotly debated since the beginning of time. -#+begin_quote -asmfmt, black, brittany, cabal-fmt, clang-format, cmake-format, dartfmt, dfmt, -dhall format, dockfmt, elm-format, emacs, fish_indent, fprettify, gleam format, -gofmt, iStyle, jsonnetfmt, ktlint, latexindent, ledger-mode, lua-fmt, mix -format, nixfmt, node-cljfmt, ocp-indent, perltidy, prettier, purty, rufo, -rustfmt, scalafmt, script shfmt, snakefmt, sqlformat, styler, swiftformat, tidy -#+end_quote +Tabs or spaces? +2-width or 4-width indentation? + +Which is right? Doom doesn't care, but we will try and make it easy for you to +format code within the safety of Emacs. + +At present, the module wraps [[https://github.com/radian-software/apheleia/][apheleia]], which includes some more detail on the +internals of the package; but the long and short of it is on-save your code will +be formatted and returned to the buffer using +[[https://tools.ietf.org/doc/tcllib/html/rcs.html#section4][RCS patching]]. ** Maintainers -/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]] +- [[doom-user:][@elken]] + +[[doom-contrib-maintainer:][Become a maintainer?]] ** Module flags - +onsave :: Enable reformatting of a buffer when it is saved. See - [[var:+format-on-save-enabled-modes]] to control what major modes to (or not to) + [[var:+format-on-save-disabled-modes]] to control what major modes to (or not to) format on save. ** Packages -- [[doom-package:format-all]] +- [[doom-package:apheleia]] ** Hacks -- format-all has been heavily modified to suit Doom's goals for this module: - - Reformatted text is applied to the buffer by RCS patch, as to reduce its - affect on cursor position. - - Adds partial formatting, i.e. you can now reformat a subset of the buffer. - - Adds the ability to use any arbitrary formatter on the current buffer if you - pass the universal argument to [[fn:+format/buffer]] or [[fn:+format/region]] (i.e. - removes the major-mode lock on formatters). +As of writing this, apheleia doesn't /yet/ support regions or similar kinds of +buffers, so there are a couple of hacks to attempt to rectify this. ** TODO Changelog # This section will be machine generated. Don't edit it by hand. @@ -51,98 +44,64 @@ rustfmt, scalafmt, script shfmt, snakefmt, sqlformat, styler, swiftformat, tidy This module has no direct requirements, but each language will need one of their supported formatter programs in order for this to work. In their absence, -[[doom-package:format-all]] will fail silently. +[[doom-package:apheleia]] will fail silently. -Supported formatters: -- Angular/Vue (prettier) -- Assembly (asmfmt) -- Bazel Starlark (buildifier) -- BibTeX (emacs) -- C/C++/Objective-C (clang-format) -- Cabal (cabal-fmt) -- Clojure/ClojureScript (node-cljfmt) -- CMake (cmake-format) -- Crystal (crystal tool format) -- CSS/Less/SCSS (prettier) -- D (dfmt) -- Dart (dartfmt) -- Dhall (dhall format) -- Dockerfile (dockfmt) -- Elixir (mix format) -- Elm (elm-format) -- Emacs Lisp (emacs) -- Fish Shell (fish_indent) -- Fortran 90 (fprettify) -- Gleam (gleam format) -- Go (gofmt) -- GraphQL (prettier) -- Haskell (brittany) -- HTML/XHTML/XML (tidy) -- Java (clang-format) -- JavaScript/JSON/JSX (prettier) -- Jsonnet (jsonnetfmt) -- Kotlin (ktlint) -- LaTeX (latexindent) -- Ledger (ledger-mode) -- Lua (lua-fmt) -- Markdown (prettier) -- Nix (nixfmt) -- OCaml (ocp-indent) -- Perl (perltidy) -- PHP (prettier plugin-php) -- Protocol Buffers (clang-format) -- PureScript (purty) -- Python (black) -- R (styler) -- Ruby (rufo) -- Rust (rustfmt) -- Scala (scalafmt) -- Shell script (shfmt) -- Snakemake (snakefmt) -- Solidity (prettier-plugin-solidity) -- SQL (sqlformat) -- Swift (swiftformat) -- Terraform (terraform fmt) -- TOML (prettier-plugin-toml) -- TypeScript/TSX (prettier) -- Verilog (iStyle) -- YAML (prettier) +To see if a particular mode has a configured formatter, check for the mode in +[[var:apheleia-mode-alist]] which corresponds to the list of formatters defined in +[[var:apheleia-formatters]] -* TODO Usage -#+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] -#+end_quote +* Usage +** With +onsave +When this flag is enabled, you shouldn't need to do anything other than write +code and save it. -* TODO Configuration -#+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] -#+end_quote +** Without +onsave +Without the flag, formatting will only occur when either =apheleia-format-buffer= +or =+format/buffer= is called. -** Automatic reformatting when saving buffers -There are two ways to achieve this. Either through the =+onsave= flag, or by -adding ~format-all-mode~ to the hook of each major mode you want this behavior -enabled in. +* Configuration + +Detailed configuration can be found [[https://github.com/radian-software/apheleia/#user-guide][upstream]], but for most purposes here we +provide a simple macro that looks like the below: -If you choose the former, what modes it applies to can be changed by modifying -~+format-on-save-enabled-modes~, which contains a list of major modes. If the -first item in the list is the symbol ~not~, the list is negated. This is its -default value: #+begin_src emacs-lisp -(setq +format-on-save-enabled-modes - '(not emacs-lisp-mode ; elisp's mechanisms are good enough - sql-mode ; sqlformat is currently broken - tex-mode ; latexindent is broken - latex-mode)) +(set-formatter! 'unique-name '("command" "line" "here") :modes '(name-of-major-mode)) #+end_src -If you want to format code when you save a buffer, but want more granular -control over which major modes this behavior is enabled in, there is an -alternative. Make sure [[doom-module:+onsave]] is disabled before you try this: +There are a few bonus symbols that apheleia uses (for example =npx= will be +replaced by a correct path to npx) which are all documented in the link above. + +** Disabling formatters +*** Permanently +To permanently disable a particular formatter with no provided alternative + #+begin_src emacs-lisp -(add-hook 'python-mode-hook #'format-all-mode) -(add-hook 'js2-mode-hook #'format-all-mode) +(setq apheleia-formatters (delq (assoc 'csharpier apheleia-formatters) apheleia-formatters)) #+end_src +*** Per-buffer +If you want to save without formatting, this is done by first passing the +universal argument thus; =SPC u SPC f s= for evil users, =C-u C-x C-s= for non-evil +users. + +If you want to save more than a handful of time, you can set +[[var:apheleia-inhibit]] to disable even if =apheleia-global-mode= is on. + +*** Onsave only +This behaviour is controlled via [[var:+format-on-save-disabled-modes]] thus; + +#+begin_src emacs-lisp +(setq +format-on-save-disabled-modes + '(emacs-lisp-mode ; elisp's mechanisms are good enough + sql-mode ; sqlformat is currently broken + tex-mode ; latexindent is broken + latex-mode)) +#+end_src + +In this case, =emacs-lisp-mode=, =sql-mode=, =tex-mode= and =latex-mode= will not be +formatted on save, but can still be formatted by manually invoking the commands +=apheleia-format-buffer= or =+format/buffer=. + ** Disabling the LSP formatter If you are in a buffer with ~lsp-mode~ enabled and a server that supports =textDocument/formatting=, it will be used instead of [[doom-package:format-all]]'s formatter. @@ -151,25 +110,31 @@ If you are in a buffer with ~lsp-mode~ enabled and a server that supports + To disable this behavior in one mode: ~(setq-hook! 'python-mode-hook +format-with-lsp nil)~ -** TODO Defining your own formatters -See the ~set-formatter!~ function. - -** TODO Selecting a specific formatter for a particular buffer +** Selecting a specific formatter for a particular buffer Set the buffer-local variable ~+format-with~ to the name of the formatter to use. e.g. #+begin_src emacs-lisp +;; Overrides `apheleia-mode-alist` (setq-hook! 'python-mode-hook +format-with 'html-tidy) -;; Or set it to `:none' to disable formatting -(setq-hook! 'python-mode-hook +format-with :none) +;; Or set it to `nil' to fallback to `apheleia-mode-alist` +(setq-hook! 'python-mode-hook +format-with nil) #+end_src Formatters are referred to by the name they were defined with. They can be -looked up in the ~format-all-mode-table~ hash table or in format-all's [[https://github.com/lassik/emacs-format-all-the-code/blob/master/format-all.el#L512][source -code]]. +looked up in the ~apheleia-mode-alist~ hash table. * Troubleshooting -/There are no known problems with this module./ [[doom-report:][Report one?]] +There are a few fail-safes apheleia has to prevent accidental code wipe, +included silently failing if the command errors or doesn't exist. + +Check that the command you've specified runs fine in a terminal first before +reporting this as an issue. + +If any errors are reported from the command, run =apheleia-goto-error= to jump to +the error buffer and handle any problems raised there. + +Any issues specific to apheleia should most often be reported upstream [[https://github.com/radian-software/apheleia/issues][here]]. * Frequently asked questions /This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]] From b34533de968f1b468b193b7c1e52ad5968588d63 Mon Sep 17 00:00:00 2001 From: Ellis Kenyo Date: Sat, 3 Dec 2022 09:37:45 +0000 Subject: [PATCH 128/523] fix(format): load format-on-save-disabled-modes fn Should handle some corner cases with how inhibiting is set --- modules/editor/format/config.el | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/editor/format/config.el b/modules/editor/format/config.el index 9610e1154..28f7dc17e 100644 --- a/modules/editor/format/config.el +++ b/modules/editor/format/config.el @@ -34,15 +34,15 @@ select buffers.") (when (modulep! +onsave) (add-hook 'doom-first-file-hook #'apheleia-global-mode)) -(defun +format-enable-on-save-maybe-h () +(defun +format-inhibit-maybe-h () "Enable formatting on save in certain major modes. This is controlled by `+format-on-save-disabled-modes'." - (setq-local apheleia-inhibit (or (eq major-mode 'fundamental-mode) - (string-empty-p (string-trim (buffer-name))) - (not (null (memq major-mode +format-on-save-disabled-modes)))))) + (or (eq major-mode 'fundamental-mode) + (string-empty-p (string-trim (buffer-name))) + (not (null (memq major-mode +format-on-save-disabled-modes))))) (when (modulep! +onsave) - (add-hook 'after-change-major-mode-hook #'+format-enable-on-save-maybe-h)) + (add-to-list 'apheleia-inhibit-functions #'+format-inhibit-maybe-h)) ;; ;;; Hacks From 550767efe2fecda7bfd11fea5c6ff9e889f44dff Mon Sep 17 00:00:00 2001 From: Ellis Kenyo Date: Sun, 8 Jan 2023 15:20:12 +0000 Subject: [PATCH 129/523] fix(format): apheleia-inhibit-functions after load --- modules/editor/format/config.el | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/editor/format/config.el b/modules/editor/format/config.el index 28f7dc17e..3883c16ab 100644 --- a/modules/editor/format/config.el +++ b/modules/editor/format/config.el @@ -41,8 +41,9 @@ This is controlled by `+format-on-save-disabled-modes'." (string-empty-p (string-trim (buffer-name))) (not (null (memq major-mode +format-on-save-disabled-modes))))) -(when (modulep! +onsave) - (add-to-list 'apheleia-inhibit-functions #'+format-inhibit-maybe-h)) +(after! apheleia + (when (modulep! +onsave) + (add-to-list 'apheleia-inhibit-functions #'+format-inhibit-maybe-h))) ;; ;;; Hacks From b0e579741e7ea16635b8725bca419a1a264dd281 Mon Sep 17 00:00:00 2001 From: Ellis Kenyo Date: Fri, 14 Apr 2023 21:11:34 +0100 Subject: [PATCH 130/523] fix(format): react to ns change --- modules/editor/format/autoload/settings.el | 2 +- modules/editor/format/config.el | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/editor/format/autoload/settings.el b/modules/editor/format/autoload/settings.el index 85c71d354..575f008d8 100644 --- a/modules/editor/format/autoload/settings.el +++ b/modules/editor/format/autoload/settings.el @@ -71,7 +71,7 @@ Advanced examples: " (declare (indent defun)) (cl-check-type name symbol) - (after! apheleia + (after! apheleia-core (if (null args) (progn (setq apheleia-formatters diff --git a/modules/editor/format/config.el b/modules/editor/format/config.el index 3883c16ab..5d4b0f5ab 100644 --- a/modules/editor/format/config.el +++ b/modules/editor/format/config.el @@ -41,7 +41,7 @@ This is controlled by `+format-on-save-disabled-modes'." (string-empty-p (string-trim (buffer-name))) (not (null (memq major-mode +format-on-save-disabled-modes))))) -(after! apheleia +(after! apheleia-core (when (modulep! +onsave) (add-to-list 'apheleia-inhibit-functions #'+format-inhibit-maybe-h))) @@ -70,7 +70,7 @@ This is controlled by `+format-on-save-disabled-modes'." ;; ;;; Additional formatters -(after! apheleia +(after! apheleia-core ;; TODO html-tidy (cl-defun apheleia--indent-lisp-buffer (&key buffer scratch callback &allow-other-keys) From 12d520a3771ec509fa1e83499aa86d114e4619ed Mon Sep 17 00:00:00 2001 From: Ellis Kenyo Date: Thu, 4 May 2023 08:59:42 +0100 Subject: [PATCH 131/523] fix(format): remove merged formatter --- modules/editor/format/config.el | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/modules/editor/format/config.el b/modules/editor/format/config.el index 5d4b0f5ab..0773c8765 100644 --- a/modules/editor/format/config.el +++ b/modules/editor/format/config.el @@ -65,26 +65,3 @@ This is controlled by `+format-on-save-disabled-modes'." (font-lock-fontify-region web-mode-scan-beg web-mode-scan-end))))) (defun +format--refresh-git-gutter-h () (+vc-gutter-init-maybe-h))) - - -;; -;;; Additional formatters - -(after! apheleia-core - ;; TODO html-tidy - (cl-defun apheleia--indent-lisp-buffer - (&key buffer scratch callback &allow-other-keys) - "Format a Lisp BUFFER. Use SCRATCH as a temporary buffer and CALLBACK to -apply the transformation. For more implementation detail, see -`apheleia--run-formatter-function'." - (with-current-buffer scratch - (setq-local indent-line-function - (buffer-local-value 'indent-line-function buffer)) - (setq-local lisp-indent-function - (buffer-local-value 'lisp-indent-function buffer)) - (funcall (with-current-buffer buffer major-mode)) - (goto-char (point-min)) - (let ((inhibit-message t) - (message-log-max nil)) - (indent-region (point-min) (point-max))) - (funcall callback)))) From 249a39acb49e65e32a424e7ffeba69b3174394a4 Mon Sep 17 00:00:00 2001 From: Ellis Kenyo Date: Mon, 24 Jul 2023 19:42:29 +0100 Subject: [PATCH 132/523] fix(format): pin apheleia --- modules/editor/format/packages.el | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/editor/format/packages.el b/modules/editor/format/packages.el index 0f1fd9933..17a308621 100644 --- a/modules/editor/format/packages.el +++ b/modules/editor/format/packages.el @@ -1,5 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; editor/format/packages.el -;; TODO Pin when this is close to finish -(package! apheleia) +(package! apheleia :pin "c222927f7086d407dad01b2609ff68768e9adddb") From 79172239a711f6af8ae9ebd30c632ca7a335b0ed Mon Sep 17 00:00:00 2001 From: Ellis Kenyo Date: Mon, 24 Jul 2023 20:53:18 +0100 Subject: [PATCH 133/523] fix(clojure): prefer cljfmt now it supports STDIN --- modules/lang/clojure/config.el | 4 ++-- modules/lang/clojure/doctor.el | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/lang/clojure/config.el b/modules/lang/clojure/config.el index 025d372a6..a9c7761e2 100644 --- a/modules/lang/clojure/config.el +++ b/modules/lang/clojure/config.el @@ -16,8 +16,8 @@ (use-package! clojure-mode :hook (clojure-mode . rainbow-delimiters-mode) :config - (when (executable-find "zprint") - (set-formatter! 'zprint '("zprint") :modes '(clojure-mode clojurec-mode clojurescript-mode))) + (when (executable-find "cljfmt") + (set-formatter! 'cljfmt '("cljfmt" "fix" "-") :modes '(clojure-mode clojurec-mode clojurescript-mode))) (when (modulep! +lsp) (add-hook! '(clojure-mode-local-vars-hook diff --git a/modules/lang/clojure/doctor.el b/modules/lang/clojure/doctor.el index 529c3ba4b..5cc63fb90 100644 --- a/modules/lang/clojure/doctor.el +++ b/modules/lang/clojure/doctor.el @@ -7,5 +7,5 @@ (warn! "Couldn't find clj-kondo. flycheck-clj-kondo will not work."))) (when (modulep! :editor format) - (unless (executable-find "zprint") - (warn! "Couldn't find zprint. Formatting will be disabled."))) + (unless (executable-find "cljfmt") + (warn! "Couldn't find cljfmt. Formatting will be disabled."))) From bc58da7c78eef3b4a38743724337c22fa831eb14 Mon Sep 17 00:00:00 2001 From: Ellis Kenyo Date: Wed, 13 Sep 2023 10:10:30 +0100 Subject: [PATCH 134/523] fix(zig): correct doctor check --- modules/lang/zig/doctor.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/lang/zig/doctor.el b/modules/lang/zig/doctor.el index 38b1bec3a..48668cef3 100644 --- a/modules/lang/zig/doctor.el +++ b/modules/lang/zig/doctor.el @@ -12,7 +12,7 @@ (unless (executable-find "zig") (warn! "Couldn't find zig binary") - (when (modulep! :editor format) + (unless (modulep! :editor format) (warn! "Formatting will be disabled"))) (when (modulep! +lsp) From f67f3914433d613e16442e76b7407c4fe9a4ea09 Mon Sep 17 00:00:00 2001 From: Ellis Kenyo Date: Wed, 13 Sep 2023 10:16:26 +0100 Subject: [PATCH 135/523] fix(common-lisp): amend sly-compat hook --- modules/lang/common-lisp/config.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/lang/common-lisp/config.el b/modules/lang/common-lisp/config.el index 07ab50c5b..9edc7f548 100644 --- a/modules/lang/common-lisp/config.el +++ b/modules/lang/common-lisp/config.el @@ -31,8 +31,8 @@ :definition #'sly-edit-definition :documentation #'sly-describe-symbol)) - (add-hook! 'lisp-mode - (after! sly (sly-lisp-indent-compatibility-mode))) + ;; This needs to be appended so it fires later than `sly-editing-mode' + (add-hook 'lisp-mode-local-vars-hook #'sly-lisp-indent-compatibility-mode 'append) ;; HACK Ensures that sly's contrib modules are loaded as soon as possible, but ;; also as late as possible, so users have an opportunity to override From 23a39b0a14d8fa15ecba0e1d2d4d732c49480d0b Mon Sep 17 00:00:00 2001 From: Ellis Kenyo Date: Wed, 13 Sep 2023 10:17:23 +0100 Subject: [PATCH 136/523] fix(clojure): remove executable-find formatter check --- modules/lang/clojure/config.el | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/lang/clojure/config.el b/modules/lang/clojure/config.el index a9c7761e2..a552ba2f2 100644 --- a/modules/lang/clojure/config.el +++ b/modules/lang/clojure/config.el @@ -16,8 +16,7 @@ (use-package! clojure-mode :hook (clojure-mode . rainbow-delimiters-mode) :config - (when (executable-find "cljfmt") - (set-formatter! 'cljfmt '("cljfmt" "fix" "-") :modes '(clojure-mode clojurec-mode clojurescript-mode))) + (set-formatter! 'cljfmt '("cljfmt" "fix" "-") :modes '(clojure-mode clojurec-mode clojurescript-mode)) (when (modulep! +lsp) (add-hook! '(clojure-mode-local-vars-hook From ce93f899fd0ec069cb1fa43c9c8841991785e524 Mon Sep 17 00:00:00 2001 From: Ellis Kenyo Date: Wed, 13 Sep 2023 10:19:39 +0100 Subject: [PATCH 137/523] fix(format): improve function/module loading safety --- modules/editor/format/config.el | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/modules/editor/format/config.el b/modules/editor/format/config.el index 0773c8765..f9c63db1f 100644 --- a/modules/editor/format/config.el +++ b/modules/editor/format/config.el @@ -41,8 +41,9 @@ This is controlled by `+format-on-save-disabled-modes'." (string-empty-p (string-trim (buffer-name))) (not (null (memq major-mode +format-on-save-disabled-modes))))) -(after! apheleia-core - (when (modulep! +onsave) + +(when (modulep! +onsave) + (after! apheleia-core (add-to-list 'apheleia-inhibit-functions #'+format-inhibit-maybe-h))) ;; @@ -54,14 +55,17 @@ This is controlled by `+format-on-save-disabled-modes'." (let ((apheleia-mode (and apheleia-mode (member arg '(nil 1))))) (funcall orig-fn))) -(add-hook! 'apheleia-post-format-hook - ;; HACK `web-mode' doesn't update syntax highlighting after arbitrary buffer - ;; modifications, so we must trigger refontification manually. - (defun +format--fix-web-mode-fontification-h () - (when (eq major-mode 'web-mode) - (setq web-mode-fontification-off nil) - (when (and web-mode-scan-beg web-mode-scan-end global-font-lock-mode) - (save-excursion - (font-lock-fontify-region web-mode-scan-beg web-mode-scan-end))))) - (defun +format--refresh-git-gutter-h () - (+vc-gutter-init-maybe-h))) +(add-hook! + 'apheleia-post-format-hook + ;; HACK `web-mode' doesn't update syntax highlighting after arbitrary buffer + ;; modifications, so we must trigger refontification manually. + (defun +format--fix-web-mode-fontification-h () + (when (eq major-mode 'web-mode) + (setq web-mode-fontification-off nil) + (when (and web-mode-scan-beg web-mode-scan-end global-font-lock-mode) + (save-excursion + (font-lock-fontify-region web-mode-scan-beg web-mode-scan-end))))) + + (defun +format--refresh-git-gutter-h () + (when (fboundp '+vc-gutter-update-h) + (+vc-gutter-init-maybe-h)))) From dd68bbb7da530bd99e2bce77a41d4f01b6db119c Mon Sep 17 00:00:00 2001 From: Ellis Kenyo Date: Wed, 13 Sep 2023 10:20:39 +0100 Subject: [PATCH 138/523] fix(format): removed unused argument --- modules/editor/format/autoload/settings.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/editor/format/autoload/settings.el b/modules/editor/format/autoload/settings.el index 575f008d8..f52a41e12 100644 --- a/modules/editor/format/autoload/settings.el +++ b/modules/editor/format/autoload/settings.el @@ -1,7 +1,7 @@ ;;; editor/format/autoload/settings.el -*- lexical-binding: t; -*- ;;;###autodef -(cl-defun set-formatter! (name args &key modes filter) +(cl-defun set-formatter! (name args &key modes) "Define (or modify) a formatter named NAME. Supported keywords: :modes :filter From 9787022b839d2d22cb772c6d61cc7f35b9dd5e95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Thu, 14 Sep 2023 00:03:55 +0100 Subject: [PATCH 139/523] refactor!: replace all-the-icons with nerd-icons BREAKING CHANGE: This commit replaces all-the-icons with nerd-fonts. Any all-the-icons-* function calls or variable references in your private config will break and should be replaced with their nerd-icons-* equivalent. That said, Doom will continue to install all-the-icons for a while, so feel free to load it if you don't want to fully commit to the change yet. This change is happening because nerd-icon has wider support for GUI and TUI Emacs; has a larger, more consistent selection of symbols; plus unicode coverage. Fix: #7368 Close: #6675 Close: #7364 --- docs/getting_started.org | 4 +- lisp/cli/doctor.el | 10 +- lisp/cli/install.el | 20 +--- lisp/doom-ui.el | 48 +++------- lisp/lib/docs.el | 2 +- lisp/lib/system.el | 6 +- lisp/packages.el | 1 + modules/README.org | 6 +- modules/app/everywhere/config.el | 2 +- modules/completion/company/config.el | 69 +++++++------ modules/completion/helm/README.org | 46 ++++----- modules/completion/helm/config.el | 5 +- modules/completion/helm/packages.el | 2 +- modules/completion/ivy/README.org | 2 +- modules/completion/ivy/autoload/ivy.el | 16 ---- modules/completion/ivy/config.el | 26 +---- modules/completion/ivy/packages.el | 2 +- modules/completion/vertico/README.org | 64 ++++++------- modules/completion/vertico/config.el | 2 +- modules/completion/vertico/packages.el | 2 +- modules/emacs/dired/README.org | 10 +- modules/emacs/dired/config.el | 25 ++--- modules/emacs/dired/packages.el | 2 +- modules/emacs/ibuffer/README.org | 2 +- modules/emacs/ibuffer/config.el | 12 +-- modules/email/mu4e/README.org | 10 +- modules/email/mu4e/autoload/email.el | 30 +++--- modules/email/mu4e/config.el | 24 ++--- modules/lang/beancount/README.org | 2 +- modules/lang/beancount/config.el | 7 ++ modules/lang/graphql/config.el | 12 +-- modules/lang/org/autoload/org-link.el | 12 +-- modules/tools/biblio/config.el | 24 ++--- modules/ui/doom-dashboard/README.org | 8 +- modules/ui/doom-dashboard/config.el | 128 ++++++++++++------------- modules/ui/doom/README.org | 4 +- modules/ui/modeline/+light.el | 18 ++-- modules/ui/modeline/README.org | 19 ++-- modules/ui/modeline/config.el | 14 --- modules/ui/modeline/packages.el | 2 +- 40 files changed, 293 insertions(+), 407 deletions(-) diff --git a/docs/getting_started.org b/docs/getting_started.org index 467d3fe33..b6d58cf27 100644 --- a/docs/getting_started.org +++ b/docs/getting_started.org @@ -551,9 +551,7 @@ doom sync doom env # Lastly, install the icon fonts Doom uses: -emacs --batch -f all-the-icons-install-fonts -# On Windows, `all-the-icons-install-fonts` will only download the fonts, you'll -# have to install them by hand afterwards! +emacs --batch -f nerd-icons-install-fonts #+END_SRC To understand the purpose of the =~/.doom.d= directory and =~/.doom.d/init.el= diff --git a/lisp/cli/doctor.el b/lisp/cli/doctor.el index 0e3495eca..d8fd50991 100644 --- a/lisp/cli/doctor.el +++ b/lisp/cli/doctor.el @@ -243,13 +243,13 @@ in." ;; Check for fonts (if (not (executable-find "fc-list")) (warn! "Warning: unable to detect fonts because fontconfig isn't installed") - ;; all-the-icons fonts + ;; nerd-icons fonts (when (and (pcase system-type (`gnu/linux (concat (or (getenv "XDG_DATA_HOME") "~/.local/share") "/fonts/")) (`darwin "~/Library/Fonts/")) - (require 'all-the-icons nil t)) + (require 'nerd-icons nil t)) (with-temp-buffer (let ((errors 0)) (cl-destructuring-bind (status . output) @@ -257,13 +257,13 @@ in." (if (not (zerop status)) (print! (error "There was an error running `fc-list'. Is fontconfig installed correctly?")) (insert (cdr (doom-call-process "fc-list" "" "file"))) - (dolist (font all-the-icons-font-names) + (dolist (font nerd-icons-font-names) (if (save-excursion (re-search-backward font nil t)) (success! "Found font %s" font) (print! (warn "Warning: couldn't find %S font") font))) (when (> errors 0) - (explain! "Some all-the-icons fonts were missing.\n\n" - "You can install them by running `M-x all-the-icons-install-fonts' within Emacs.\n" + (explain! "Some nerd-icons fonts were missing.\n\n" + "You can install them by running `M-x nerd-icons-install-fonts' within Emacs.\n" "This could also mean you've installed them in non-standard locations, in which " "case feel free to ignore this warning."))))))))) diff --git a/lisp/cli/install.el b/lisp/cli/install.el index e38e5736c..79dddaf8b 100644 --- a/lisp/cli/install.el +++ b/lisp/cli/install.el @@ -19,7 +19,7 @@ (config? ("--config" :yes) "Create `$DOOMDIR' or dummy files therein?") (envfile? ("--env" :yes) "(Re)generate an envvars file? (see `$ doom help env`)") (install? ("--install" :yes) "Auto-install packages?") - (fonts? ("--fonts" :yes) "Install (or prompt to install) all-the-icons fonts?") + (fonts? ("--fonts" :yes) "Install (or prompt to install) nerd-icons fonts?") (hooks? ("--hooks" :yes) "Deploy Doom's git hooks to itself?") &context context) "Installs and sets up Doom Emacs for the first time. @@ -32,7 +32,7 @@ This command does the following: 3. Creates dummy files for `$DOOMDIR'/{config,packages}.el, 4. Prompts you to generate an envvar file (same as `$ doom env`), 5. Installs any dependencies of enabled modules (specified by `$DOOMDIR'/init.el), - 6. And prompts to install all-the-icons' fonts + 6. And prompts to install nerd-icons' fonts This command is idempotent and safe to reuse. @@ -110,22 +110,6 @@ Change `$DOOMDIR' with the `--doomdir' option, e.g. ('user-error (print! (warn "%s") (error-message-string e)))))) - (cond ((eq fonts? :no)) - (IS-WINDOWS - (print! (warn "Doom cannot install all-the-icons' fonts on Windows!\n")) - (print-group! - (print! - (concat "You'll have to do so manually:\n\n" - " 1. Launch Doom Emacs\n" - " 2. Execute 'M-x all-the-icons-install-fonts' to download the fonts\n" - " 3. Open the download location in windows explorer\n" - " 4. Open each font file to install them")))) - ((or yes? (y-or-n-p "Download and install all-the-icon's fonts?")) - (require 'all-the-icons) - (let ((window-system (cond (IS-MAC 'ns) - (IS-LINUX 'x)))) - (all-the-icons-install-fonts 'yes)))) - (when (file-exists-p "~/.emacs") (print! (warn "A ~/.emacs file was detected. This conflicts with Doom and should be deleted!"))) diff --git a/lisp/doom-ui.el b/lisp/doom-ui.el index 8f4a4e371..172a67634 100644 --- a/lisp/doom-ui.el +++ b/lisp/doom-ui.el @@ -36,7 +36,7 @@ Must be a `font-spec', a font object, an XFT font string, or an XLFD string. See An omitted font size means to inherit `doom-font''s size.") -(defvar doom-unicode-font nil +(defvar doom-unicode-font (font-spec :family "Symbols Nerd Font Mono") "Fallback font for Unicode glyphs. Must be a `font-spec', a font object, an XFT font string, or an XLFD string. See `doom-font' for examples. @@ -419,41 +419,17 @@ windows, switch to `doom-fallback-buffer'. Otherwise, delegate to original ;; ;;; Third party packages -(use-package! all-the-icons - :commands (all-the-icons-octicon - all-the-icons-faicon - all-the-icons-fileicon - all-the-icons-wicon - all-the-icons-material - all-the-icons-alltheicon) - :preface - (add-hook! 'after-setting-font-hook - (defun doom-init-all-the-icons-fonts-h () - (when (fboundp 'set-fontset-font) - (dolist (font (list "Weather Icons" - "github-octicons" - "FontAwesome" - "all-the-icons" - "file-icons" - "Material Icons")) - (set-fontset-font t 'unicode font nil 'append))))) - :config - (cond ((daemonp) - (defadvice! doom--disable-all-the-icons-in-tty-a (fn &rest args) - "Return a blank string in tty Emacs, which doesn't support multiple fonts." - :around '(all-the-icons-octicon all-the-icons-material - all-the-icons-faicon all-the-icons-fileicon - all-the-icons-wicon all-the-icons-alltheicon) - (if (or (not after-init-time) (display-multi-font-p)) - (apply fn args) - ""))) - ((not (display-graphic-p)) - (defadvice! doom--disable-all-the-icons-in-tty-a (&rest _) - "Return a blank string for tty users." - :override '(all-the-icons-octicon all-the-icons-material - all-the-icons-faicon all-the-icons-fileicon - all-the-icons-wicon all-the-icons-alltheicon) - "")))) +(use-package! nerd-icons + :commands (nerd-icons-octicon + nerd-icons-faicon + nerd-icons-flicon + nerd-icons-wicon + nerd-icons-mdicon + nerd-icons-codicon + nerd-icons-devicon + nerd-icons-ipsicon + nerd-icons-pomicon + nerd-icons-powerline)) ;; Hide the mode line in completion popups and MAN pages because they serve ;; little purpose there, and is better hidden. diff --git a/lisp/lib/docs.el b/lisp/lib/docs.el index 0b218f90a..83261c88e 100644 --- a/lisp/lib/docs.el +++ b/lisp/lib/docs.el @@ -102,7 +102,7 @@ "Create a header link according to SPEC." (let ((icon (and (plist-get spec :icon) (funcall (or (plist-get spec :icon-function) - #'all-the-icons-material) + #'nerd-icons-material) (plist-get spec :icon)))) (label (pcase (plist-get spec :label) ((and (pred functionp) lab) diff --git a/lisp/lib/system.el b/lisp/lib/system.el index 3bbb27957..7a07d1975 100644 --- a/lisp/lib/system.el +++ b/lisp/lib/system.el @@ -52,8 +52,8 @@ (with-memoization (get 'doom-system-distro-icon 'cached-value) (propertize (pcase (doom-system-distro) - (`windows (all-the-icons-faicon "windows")) - (`macos (all-the-icons-faicon "apple")) + (`windows (nerd-icons-faicon "nf-fa-windows")) + (`macos (nerd-icons-faicon "nf-fa-apple")) (`arch "\uF303") (`debian "\uF306") (`raspbian "\uF315") @@ -74,7 +74,7 @@ (`devuan "\uF307") (`manjaro "\uF312") ((or `void `artix) "\uF17c") - (_ (all-the-icons-faicon "linux"))) + (_ (nerd-icons-faicon "nf-fa-linux"))) 'face '(:height 1) 'display '(raise 0)))) diff --git a/lisp/packages.el b/lisp/packages.el index 8aab405c3..fcf692262 100644 --- a/lisp/packages.el +++ b/lisp/packages.el @@ -21,6 +21,7 @@ ;; doom-ui.el (package! all-the-icons :pin "be9d5dcda9c892e8ca1535e288620eec075eb0be") +(package! nerd-icons :pin "619a0382d2e159f3142c4200fe4cfc2e89247ef1") (package! hide-mode-line :pin "bc5d293576c5e08c29e694078b96a5ed85631942") (package! highlight-numbers :pin "8b4744c7f46c72b1d3d599d4fb75ef8183dee307") (package! rainbow-delimiters :pin "f40ece58df8b2f0fb6c8576b527755a552a5e763") diff --git a/modules/README.org b/modules/README.org index 0d760b46b..f2f6e5f07 100644 --- a/modules/README.org +++ b/modules/README.org @@ -330,7 +330,7 @@ Modules that turn Emacs in an email client. This module makes Emacs an email client, using [[https://www.djcbsoftware.nl/code/mu/mu4e.html][mu4e]]. -- Tidied mu4e headers view, with flags from [[doom-package:all-the-icons]]. +- Tidied mu4e headers view, with flags from [[doom-package:nerd-icons]]. - Consistent coloring of reply depths (across compose and gnus modes). - Prettified =mu4e:main= view. - Cooperative locking of the =mu= process. Another Emacs instance may request @@ -1152,8 +1152,8 @@ you'd expect from IDEs, like code completion, realtime linting, language-aware As of this writing, this is the state of LSP support in Doom Emacs: -| Module | Major modes | Default language server | -|------------------+---------------------------------------------------------+---------------------------------------------------------------| +| Module | Major modes | Default language server | +|----------------------------------+---------------------------------------------------------+---------------------------------------------------------------| | [[doom-module::lang cc]] | c-mode, c++-mode, objc-mode | ccls, clangd | | [[doom-module::lang clojure]] | clojure-mode | clojure-lsp | | [[doom-module::lang csharp]] | csharp-mode | omnisharp | diff --git a/modules/app/everywhere/config.el b/modules/app/everywhere/config.el index 717024405..885495ede 100644 --- a/modules/app/everywhere/config.el +++ b/modules/app/everywhere/config.el @@ -20,7 +20,7 @@ (doom-modeline-spc) (when (emacs-everywhere-markdown-p) (concat - (all-the-icons-octicon "markdown" :face 'all-the-icons-green :v-adjust 0.02) + (nerd-icons-octicon "nf-oct-markdown" :face 'nerd-icons-green :v-adjust 0.02) (doom-modeline-spc))) (propertize (emacs-everywhere-app-class emacs-everywhere-current-app) 'face 'doom-modeline-project-dir) diff --git a/modules/completion/company/config.el b/modules/completion/company/config.el index 15beb0092..6ca06751f 100644 --- a/modules/completion/company/config.el +++ b/modules/completion/company/config.el @@ -97,47 +97,46 @@ :config (setq company-box-show-single-candidate t company-box-backends-colors nil - company-box-max-candidates 50 - company-box-icons-alist 'company-box-icons-all-the-icons + company-box-tooltip-limit 50 + company-box-icons-alist 'company-box-icons-nerd-icons ;; Move company-box-icons--elisp to the end, because it has a catch-all ;; clause that ruins icons from other backends in elisp buffers. company-box-icons-functions (cons #'+company-box-icons--elisp-fn (delq 'company-box-icons--elisp company-box-icons-functions)) - company-box-icons-all-the-icons - (let ((all-the-icons-scale-factor 0.8)) - `((Unknown . ,(all-the-icons-material "find_in_page" :face 'all-the-icons-purple)) - (Text . ,(all-the-icons-material "text_fields" :face 'all-the-icons-green)) - (Method . ,(all-the-icons-material "functions" :face 'all-the-icons-red)) - (Function . ,(all-the-icons-material "functions" :face 'all-the-icons-red)) - (Constructor . ,(all-the-icons-material "functions" :face 'all-the-icons-red)) - (Field . ,(all-the-icons-material "functions" :face 'all-the-icons-red)) - (Variable . ,(all-the-icons-material "adjust" :face 'all-the-icons-blue)) - (Class . ,(all-the-icons-material "class" :face 'all-the-icons-red)) - (Interface . ,(all-the-icons-material "settings_input_component" :face 'all-the-icons-red)) - (Module . ,(all-the-icons-material "view_module" :face 'all-the-icons-red)) - (Property . ,(all-the-icons-material "settings" :face 'all-the-icons-red)) - (Unit . ,(all-the-icons-material "straighten" :face 'all-the-icons-red)) - (Value . ,(all-the-icons-material "filter_1" :face 'all-the-icons-red)) - (Enum . ,(all-the-icons-material "plus_one" :face 'all-the-icons-red)) - (Keyword . ,(all-the-icons-material "filter_center_focus" :face 'all-the-icons-red)) - (Snippet . ,(all-the-icons-material "short_text" :face 'all-the-icons-red)) - (Color . ,(all-the-icons-material "color_lens" :face 'all-the-icons-red)) - (File . ,(all-the-icons-material "insert_drive_file" :face 'all-the-icons-red)) - (Reference . ,(all-the-icons-material "collections_bookmark" :face 'all-the-icons-red)) - (Folder . ,(all-the-icons-material "folder" :face 'all-the-icons-red)) - (EnumMember . ,(all-the-icons-material "people" :face 'all-the-icons-red)) - (Constant . ,(all-the-icons-material "pause_circle_filled" :face 'all-the-icons-red)) - (Struct . ,(all-the-icons-material "streetview" :face 'all-the-icons-red)) - (Event . ,(all-the-icons-material "event" :face 'all-the-icons-red)) - (Operator . ,(all-the-icons-material "control_point" :face 'all-the-icons-red)) - (TypeParameter . ,(all-the-icons-material "class" :face 'all-the-icons-red)) - (Template . ,(all-the-icons-material "short_text" :face 'all-the-icons-green)) - (ElispFunction . ,(all-the-icons-material "functions" :face 'all-the-icons-red)) - (ElispVariable . ,(all-the-icons-material "check_circle" :face 'all-the-icons-blue)) - (ElispFeature . ,(all-the-icons-material "stars" :face 'all-the-icons-orange)) - (ElispFace . ,(all-the-icons-material "format_paint" :face 'all-the-icons-pink))))) + company-box-icons-nerd-icons + `((Unknown . ,(nerd-icons-codicon "nf-cod-code" :face 'font-lock-warning-face)) + (Text . ,(nerd-icons-codicon "nf-cod-text_size" :face 'font-lock-doc-face)) + (Method . ,(nerd-icons-codicon "nf-cod-symbol_method" :face 'font-lock-function-name-face)) + (Function . ,(nerd-icons-codicon "nf-cod-symbol_method" :face 'font-lock-function-name-face)) + (Constructor . ,(nerd-icons-codicon "nf-cod-triangle_right" :face 'font-lock-function-name-face)) + (Field . ,(nerd-icons-codicon "nf-cod-symbol_field" :face 'font-lock-variable-name-face)) + (Variable . ,(nerd-icons-codicon "nf-cod-symbol_variable" :face 'font-lock-variable-name-face)) + (Class . ,(nerd-icons-codicon "nf-cod-symbol_class" :face 'font-lock-type-face)) + (Interface . ,(nerd-icons-codicon "nf-cod-symbol_interface" :face 'font-lock-type-face)) + (Module . ,(nerd-icons-codicon "nf-cod-file_submodule" :face 'font-lock-preprocessor-face)) + (Property . ,(nerd-icons-codicon "nf-cod-symbol_property" :face 'font-lock-variable-name-face)) + (Unit . ,(nerd-icons-codicon "nf-cod-symbol_ruler" :face 'font-lock-constant-face)) + (Value . ,(nerd-icons-codicon "nf-cod-symbol_field" :face 'font-lock-builtin-face)) + (Enum . ,(nerd-icons-codicon "nf-cod-symbol_enum" :face 'font-lock-builtin-face)) + (Keyword . ,(nerd-icons-codicon "nf-cod-symbol_keyword" :face 'font-lock-keyword-face)) + (Snippet . ,(nerd-icons-codicon "nf-cod-symbol_snippet" :face 'font-lock-string-face)) + (Color . ,(nerd-icons-codicon "nf-cod-symbol_color" :face 'success)) + (File . ,(nerd-icons-codicon "nf-cod-symbol_file" :face 'font-lock-string-face)) + (Reference . ,(nerd-icons-codicon "nf-cod-references" :face 'font-lock-variable-name-face)) + (Folder . ,(nerd-icons-codicon "nf-cod-folder" :face 'font-lock-variable-name-face)) + (EnumMember . ,(nerd-icons-codicon "nf-cod-symbol_enum_member" :face 'font-lock-builtin-face)) + (Constant . ,(nerd-icons-codicon "nf-cod-symbol_constant" :face 'font-lock-constant-face)) + (Struct . ,(nerd-icons-codicon "nf-cod-symbol_structure" :face 'font-lock-variable-name-face)) + (Event . ,(nerd-icons-codicon "nf-cod-symbol_event" :face 'font-lock-warning-face)) + (Operator . ,(nerd-icons-codicon "nf-cod-symbol_operator" :face 'font-lock-comment-delimiter-face)) + (TypeParameter . ,(nerd-icons-codicon "nf-cod-list_unordered" :face 'font-lock-type-face)) + (Template . ,(nerd-icons-codicon "nf-cod-symbol_snippet" :face 'font-lock-string-face)) + (ElispFunction . ,(nerd-icons-codicon "nf-cod-symbol_method" :face 'font-lock-function-name-face)) + (ElispVariable . ,(nerd-icons-codicon "nf-cod-symbol_variable" :face 'font-lock-variable-name-face)) + (ElispFeature . ,(nerd-icons-codicon "nf-cod-globe" :face 'font-lock-builtin-face)) + (ElispFace . ,(nerd-icons-codicon "nf-cod-symbol_color" :face 'success)))) ;; HACK Fix oversized scrollbar in some odd cases ;; REVIEW `resize-mode' is deprecated and may stop working in the future. diff --git a/modules/completion/helm/README.org b/modules/completion/helm/README.org index 37332544f..c48fa32b5 100644 --- a/modules/completion/helm/README.org +++ b/modules/completion/helm/README.org @@ -22,7 +22,7 @@ For official documentation about Helm, see: Enable fuzzy completion for Helm searches. - +icons :: Display icons on completion results (where possible) using either - [[doom-package:all-the-icons]] or [[doom-package:treemacs]] iconsets. + [[doom-package:nerd-icons]] or [[doom-package:treemacs]] iconsets. ** Packages - [[doom-package:helm]] @@ -74,18 +74,18 @@ its highlights will be covered here. ** Jump-to navigation Similar to Ivy, this module provides an interface to navigate within a project using [[doom-package:projectile]]: -| Keybind | Description | -|------------------+---------------------------------------------------------| +| Keybind | Description | +|--------------------------------------+-------------------------------------------------------| | [[kbd:][SPC p f]], [[kbd:][SPC SPC]] | Jump to file in project (~+helm/projectile-find-file~) | | [[kbd:][SPC f f]], [[kbd:][SPC .]] | Jump to file from current directory (~helm-find-files~) | -| [[kbd:][SPC s i]] | Jump to symbol in file (~helm-semantic-or-imenu~) | +| [[kbd:][SPC s i]] | Jump to symbol in file (~helm-semantic-or-imenu~) | ** Project search & replace This module also provides interactive text search and replace using [[https://github.com/BurntSushi/ripgrep][Ripgrep]]. *** Search -| Keybind | Description | -|---------+-----------------------------------------------------------| +| Keybind | Description | +|-------------------+---------------------------------------------------------| | [[kbd:][SPC s p]] | Search project (~+default/search-project~) | | [[kbd:][SPC s P]] | Search another project (~+default/search-other-project~) | | [[kbd:][SPC s d]] | Search this directory (~+default/search-cwd~) | @@ -96,8 +96,8 @@ otherwise) changes the behavior of these commands, instructing the underlying search engine to include ignored files. This module also provides Ex Commands for evil users: -| Ex command | Description | -|------------------------+------------------------------------------------------------------| +| Ex command | Description | +|----------------------+----------------------------------------------------------------| | ~:pg[rep][!] [QUERY]~ | Search project (if ~!~, include hidden files) | | ~:pg[rep]d[!] [QUERY]~ | Search from current directory (if ~!~, don't search recursively) | @@ -106,8 +106,8 @@ commands. *** Replace These keybindings are available while a search is active: -| Keybind | Description | -|---------+-----------------------------------------------| +| Keybind | Description | +|-------------------+-----------------------------------------------| | [[kbd:][C-c C-o]] | Open a buffer with your search results | | [[kbd:][C-c C-e]] | Open a writable buffer of your search results | | [[kbd:][C-SPC]] | Preview the current candidate | @@ -131,31 +131,31 @@ A [[doom-package:wgrep]] buffer can be opened from swiper with [[kbd:][C-c C-e]] Helm also has a number of overrides for built-in functionality: *** General -| Keybind | Description | -|------------+---------------------------| +| Keybind | Description | +|--------------------------------+---------------------------| | [[kbd:][M-x]], [[kbd:][SPC :]] | Smarter, smex-powered M-x | -| [[kbd:][SPC ']] | Resume last ivy session | +| [[kbd:][SPC ']] | Resume last ivy session | *** Jump to files, buffers or projects -| Keybind | Description | -|---------+----------------------------------------------------------------------| -| [[kbd:][SPC p t]] | List all TODO/FIXMEs in project | +| Keybind | Description | +|-------------------+--------------------------------------------------------------------| +| [[kbd:][SPC p t]] | List all TODO/FIXMEs in project | | [[kbd:][SPC s b]] | Search the current buffer (~+default/search-buffer~) | | [[kbd:][SPC s d]] | Search this directory (~+default/search-cwd~) | | [[kbd:][SPC s D]] | Search another directory (~+default/search-other-cwd~) | -| [[kbd:][SPC s i]] | Search for symbol in current buffer | +| [[kbd:][SPC s i]] | Search for symbol in current buffer | | [[kbd:][SPC s p]] | Search project (~+default/search-project~) | | [[kbd:][SPC s P]] | Search another project (~+default/search-other-project~) | | [[kbd:][SPC s s]] | Search the current buffer (incrementally) (~+default/search-buffer~) | *** Search -| Keybind | Description | -|---------+----------------------------------------------------------------------| -| [[kbd:][SPC p t]] | List all TODO/FIXMEs in project | +| Keybind | Description | +|-------------------+--------------------------------------------------------------------| +| [[kbd:][SPC p t]] | List all TODO/FIXMEs in project | | [[kbd:][SPC s b]] | Search the current buffer (~+default/search-buffer~) | | [[kbd:][SPC s d]] | Search this directory (~+default/search-cwd~) | | [[kbd:][SPC s D]] | Search another directory (~+default/search-other-cwd~) | -| [[kbd:][SPC s i]] | Search for symbol in current buffer | +| [[kbd:][SPC s i]] | Search for symbol in current buffer | | [[kbd:][SPC s p]] | Search project (~+default/search-project~) | | [[kbd:][SPC s P]] | Search another project (~+default/search-other-project~) | | [[kbd:][SPC s s]] | Search the current buffer (incrementally) (~+default/search-buffer~) | @@ -182,9 +182,9 @@ makes sense to exempt ~foo~ with the following: ** Icons There are two icon "themes" available for this module: -[[doom-package:all-the-icons]] and [[doom-package:treemacs]]. By default, and to +[[doom-package:nerd-icons]] and [[doom-package:treemacs]]. By default, and to maintain consistency with other icons across Doom's modules, -[[doom-package:all-the-icons]] is used. To change this: +[[doom-package:nerd-icons]] is used. To change this: #+begin_src emacs-lisp ;; add to $DOOMDIR/config.el (after! helm diff --git a/modules/completion/helm/config.el b/modules/completion/helm/config.el index 8da8c7aa1..39dd73c91 100644 --- a/modules/completion/helm/config.el +++ b/modules/completion/helm/config.el @@ -195,7 +195,4 @@ Can be negative.") :when (modulep! +icons) :hook (helm-mode . helm-icons-enable) :init - (setq helm-icons-provider 'all-the-icons) - :config - (when (eq helm-icons-provider 'all-the-icons) - (setq helm-icons-mode->icon nil))) + (setq helm-icons-provider 'nerd-icons)) diff --git a/modules/completion/helm/packages.el b/modules/completion/helm/packages.el index 94237eddb..b97a060df 100644 --- a/modules/completion/helm/packages.el +++ b/modules/completion/helm/packages.el @@ -15,6 +15,6 @@ (when (modulep! +fuzzy) (package! helm-flx :pin "5220099e695a3586dba2d59640217fe378e66310")) (when (modulep! +icons) - (package! helm-icons :pin "8d2f5e705c8b78a390677cf242024739c932fc95")) + (package! helm-icons :pin "53349000b114b2dfc874252de6605e3bafa435e2")) (when (modulep! :lang org) (package! helm-org :pin "d67186d3a64e610c03a5f3d583488f018fb032e4")) diff --git a/modules/completion/ivy/README.org b/modules/completion/ivy/README.org index 660eaf7ac..cce635bb1 100644 --- a/modules/completion/ivy/README.org +++ b/modules/completion/ivy/README.org @@ -27,7 +27,7 @@ lighter, simpler and faster in many cases. Enable prescient filtering and sorting for Ivy searches. ** Packages -- [[doom-package:all-the-icons-ivy]]* if [[doom-module:+icons]] +- [[doom-package:nerd-icons-ivy]]* if [[doom-module:+icons]] - [[doom-package:amx]] - [[doom-package:counsel]] - [[doom-package:counsel-projectile]] diff --git a/modules/completion/ivy/autoload/ivy.el b/modules/completion/ivy/autoload/ivy.el index 78e793c64..e24b477dd 100644 --- a/modules/completion/ivy/autoload/ivy.el +++ b/modules/completion/ivy/autoload/ivy.el @@ -34,22 +34,6 @@ Buffers that are considered unreal (see `doom-real-buffer-p') are dimmed with (ivy-append-face candidate 'ivy-modified-buffer)) (candidate)))) -;;;###autoload -(defun +ivy-rich-buffer-icon (candidate) - "Display the icon for CANDIDATE buffer." - ;; NOTE This is inspired by `all-the-icons-ivy-buffer-transformer', minus the - ;; buffer name and extra padding as those are handled by `ivy-rich'. - (propertize "\t" 'display - (if-let* ((buffer (get-buffer candidate)) - (mode (buffer-local-value 'major-mode buffer))) - (or - (all-the-icons-ivy--icon-for-mode mode) - (all-the-icons-ivy--icon-for-mode (get mode 'derived-mode-parent)) - (funcall - all-the-icons-ivy-family-fallback-for-buffer - all-the-icons-ivy-name-fallback-for-buffer)) - (all-the-icons-icon-for-file candidate)))) - ;;;###autoload (defun +ivy-rich-describe-variable-transformer (cand) "Previews the value of the variable in the minibuffer" diff --git a/modules/completion/ivy/config.el b/modules/completion/ivy/config.el index 23568f9b3..684e6ce82 100644 --- a/modules/completion/ivy/config.el +++ b/modules/completion/ivy/config.el @@ -116,12 +116,6 @@ results buffer.") :config (setq ivy-rich-parse-remote-buffer nil) - (when (modulep! +icons) - (cl-pushnew '(+ivy-rich-buffer-icon) - (cadr (plist-get ivy-rich-display-transformers-list - 'ivy-switch-buffer)) - :test #'equal)) - (defun ivy-rich-bookmark-filename-or-empty (candidate) (let ((filename (ivy-rich-bookmark-filename candidate))) (if (not filename) "" filename))) @@ -155,25 +149,15 @@ results buffer.") (switch-buffer-alist (assq 'ivy-rich-candidate (plist-get plist :columns)))) (setcar switch-buffer-alist '+ivy-rich-buffer-name)) + (nerd-icons-ivy-rich-mode +1) (ivy-rich-mode +1) (ivy-rich-project-root-cache-mode +1)) -(use-package! all-the-icons-ivy +(use-package! nerd-icons-ivy-rich :when (modulep! +icons) - :after ivy - :config - ;; `all-the-icons-ivy' is incompatible with ivy-rich's switch-buffer - ;; modifications, so we disable them and merge them ourselves - (setq all-the-icons-ivy-buffer-commands nil) - - (all-the-icons-ivy-setup) - (after! counsel-projectile - (let ((all-the-icons-ivy-file-commands - '(counsel-projectile - counsel-projectile-find-file - counsel-projectile-find-dir))) - (all-the-icons-ivy-setup)))) + :commands (nerd-icons-ivy-rich-mode) + :after counsel-projectile) (use-package! counsel @@ -314,7 +298,7 @@ results buffer.") (use-package! counsel-projectile - :defer t + :after ivy-rich :init (define-key! [remap projectile-find-file] #'+ivy/projectile-find-file diff --git a/modules/completion/ivy/packages.el b/modules/completion/ivy/packages.el index 60df093e1..f2b89e47a 100644 --- a/modules/completion/ivy/packages.el +++ b/modules/completion/ivy/packages.el @@ -21,4 +21,4 @@ (package! ivy-posframe :pin "533a8e368fcabfd534761a5c685ce713376fa594")) (when (modulep! +icons) - (package! all-the-icons-ivy :pin "a70cbfa1effe36efc946a823a580cec686d5e88d")) + (package! nerd-icons-ivy-rich :pin "7197614b27fd562e64b11c91d41bed4443aded90")) diff --git a/modules/completion/vertico/README.org b/modules/completion/vertico/README.org index f49ad059b..b7ffb1886 100644 --- a/modules/completion/vertico/README.org +++ b/modules/completion/vertico/README.org @@ -31,7 +31,7 @@ like [[doom-package:ivy]] and [[doom-package:helm]] do. The primary packages are Add icons to =file= and =buffer= category completion selections. ** Packages -- [[doom-package:all-the-icons-completion]] if [[doom-module:+icons]] +- [[doom-package:nerd-icons-completion]] if [[doom-module:+icons]] - [[doom-package:consult]] - [[doom-package:consult-flycheck]] if [[doom-module::checkers syntax]] - [[doom-package:embark]] @@ -76,16 +76,16 @@ Doom-specific additions: When in an active Vertico completion session, the following doom added keybindings are available: -| Keybind | Description | -|-------------------+----------------------------------------------------------------| -| [[kbd:][C-k]] | (evil) Go to previous candidate | -| [[kbd:][C-j]] | (evil) Go to next candidate | -| [[kbd:][C-M-k]] | (evil) Go to previous group | -| [[kbd:][C-M-j]] | (evil) Go to next group | +| Keybind | Description | +|---------------------------------------+--------------------------------------------------------------| +| [[kbd:][C-k]] | (evil) Go to previous candidate | +| [[kbd:][C-j]] | (evil) Go to next candidate | +| [[kbd:][C-M-k]] | (evil) Go to previous group | +| [[kbd:][C-M-j]] | (evil) Go to next group | | [[kbd:][C-;]] or [[kbd:][ a]] | Open an ~embark-act~ menu to chose a useful action | -| [[kbd:][C-c C-;]] | export the current candidate list to a buffer | -| [[kbd:][C-c C-l]] | ~embark-collect~ the current candidate list (collect verbatim) | -| [[kbd:][C-SPC]] | Preview the current candidate | +| [[kbd:][C-c C-;]] | export the current candidate list to a buffer | +| [[kbd:][C-c C-l]] | ~embark-collect~ the current candidate list (collect verbatim) | +| [[kbd:][C-SPC]] | Preview the current candidate | ~embark-act~ will prompt you with a =which-key= menu with useful commands on the selected candidate or candidate list, depending on the completion category. Note @@ -99,17 +99,17 @@ This module provides an interface to navigate within a project using https://assets.doomemacs.org/completion/vertico/projectile.png -| Keybind | Description | -|------------------+-------------------------------------| +| Keybind | Description | +|--------------------------------------+-------------------------------------| | [[kbd:][SPC p f]], [[kbd:][SPC SPC]] | Jump to file in project | | [[kbd:][SPC f f]], [[kbd:][SPC .]] | Jump to file from current directory | -| [[kbd:][SPC s i]] | Jump to symbol in file | +| [[kbd:][SPC s i]] | Jump to symbol in file | ** Project search & replace This module provides interactive text search and replace using ripgrep. -| Keybind | Description | -|---------+--------------------------| +| Keybind | Description | +|------------------------+--------------------------| | [[kbd:][ s p]] | Search project | | [[kbd:][ s P]] | Search another project | | [[kbd:][ s d]] | Search this directory | @@ -153,19 +153,19 @@ An ~occur-edit~ buffer can be opened from ~consult-line~ with [[kbd:][C-c C-e]]. ** Vertico integration for various completing commands *** General -| Keybind | Description | -|------------+-----------------------------| +| Keybind | Description | +|--------------------------------+-----------------------------| | [[kbd:][M-x]], [[kbd:][SPC :]] | Enhanced M-x | -| [[kbd:][SPC ']] | Resume last Vertico session | +| [[kbd:][SPC ']] | Resume last Vertico session | *** Jump to files, buffers or projects -| Keybind | Description | -|------------------+---------------------------------------| -| [[kbd:][SPC RET]] | Find bookmark | +| Keybind | Description | +|--------------------------------------+---------------------------------------| +| [[kbd:][SPC RET]] | Find bookmark | | [[kbd:][SPC f f]], [[kbd:][SPC .]] | Browse from current directory | | [[kbd:][SPC p f]], [[kbd:][SPC SPC]] | Find file in project | -| [[kbd:][SPC f r]] | Find recently opened file | -| [[kbd:][SPC p p]] | Open another project | +| [[kbd:][SPC f r]] | Find recently opened file | +| [[kbd:][SPC p p]] | Open another project | | [[kbd:][SPC b b]], [[kbd:][SPC ,]] | Switch to buffer in current workspace | | [[kbd:][SPC b B]], [[kbd:][SPC <]] | Switch to buffer | @@ -177,8 +177,8 @@ the last workspace by typing [[kbd:][0 SPC]]. [[kbd:][SPC f f]] and [[kbd:][SPC .]] support exporting to a [[kbd:][wdired]] buffer using [[kbd:][C-c C-e]]. *** Search -| Keybind | Description | -|---------+-------------------------------------------| +| Keybind | Description | +|-------------------+-------------------------------------------| | [[kbd:][SPC p t]] | List all TODO/FIXMEs in project | | [[kbd:][SPC s b]] | Search the current buffer | | [[kbd:][SPC s d]] | Search this directory | @@ -200,10 +200,10 @@ to =~/=. *** Multiple candidate search This module modifies the default keybindings used in ~consult-completing-read-multiple~: -| Keybind | Description | -|---------+-------------------------------------------------------------| -| [[kbd:][TAB]] | Select or deselect current candidate | -| [[kbd:][RET]] | Enters selected candidates (also toggles current candidate) | +| Keybind | Description | +|---------------+-------------------------------------------------------------| +| [[kbd:][TAB]] | Select or deselect current candidate | +| [[kbd:][RET]] | Enters selected candidates (also toggles current candidate) | *** Async search commands :PROPERTIES: @@ -226,9 +226,9 @@ filtering should be done after a second =#=. For more information [[https://github.com/minad/consult#asynchronous-search][see here]]. ** Marginalia -| Keybind | Description | -|---------+---------------------------------| -| [[kbd:][M-A]] | Cycle between annotation levels | +| Keybind | Description | +|---------------+---------------------------------| +| [[kbd:][M-A]] | Cycle between annotation levels | Marginalia annotations for symbols (e.g. [[kbd:][SPC h f]] and [[kbd:][SPC h v]]) come with extra information the nature of the symbol. For the meaning of the annotations see diff --git a/modules/completion/vertico/config.el b/modules/completion/vertico/config.el index 1d64813d7..3d84d9f79 100644 --- a/modules/completion/vertico/config.el +++ b/modules/completion/vertico/config.el @@ -316,7 +316,7 @@ orderless." :desc "Cycle marginalia views" "M-A" #'marginalia-cycle) :config (when (modulep! +icons) - (add-hook 'marginalia-mode-hook #'all-the-icons-completion-marginalia-setup)) + (add-hook 'marginalia-mode-hook #'nerd-icons-completion-marginalia-setup)) (advice-add #'marginalia--project-root :override #'doom-project-root) (pushnew! marginalia-command-categories '(+default/find-file-under-here . file) diff --git a/modules/completion/vertico/packages.el b/modules/completion/vertico/packages.el index eb55266c4..68f1b73e9 100644 --- a/modules/completion/vertico/packages.el +++ b/modules/completion/vertico/packages.el @@ -21,7 +21,7 @@ (package! wgrep :pin "3132abd3750b8c87cbcf6942db952acfab5edccd") (when (modulep! +icons) - (package! all-the-icons-completion :pin "8eb3e410d63f5d0657b41829e7898793e81f31c0")) + (package! nerd-icons-completion :pin "c2db8557a3c1a9588d111f8c8e91cae96ee85010")) (when (modulep! +childframe) (package! vertico-posframe diff --git a/modules/emacs/dired/README.org b/modules/emacs/dired/README.org index 7a324d979..9ffcd3358 100644 --- a/modules/emacs/dired/README.org +++ b/modules/emacs/dired/README.org @@ -16,7 +16,7 @@ This module provides reasonable defaults and augmentations for dired. Enables dired to be more like [[https://github.com/ranger/ranger][ranger]]. ** Packages -- [[doom-package:all-the-icons-dired]] if [[doom-module:+icons]] +- [[doom-package:nerd-icons-dired]] if [[doom-module:+icons]] - [[doom-package:diff-hl]] - [[doom-package:diredfl]] - [[doom-package:dired-rsync]] @@ -43,10 +43,10 @@ This module has no requirements *except on BSDs* like MacOS or FreeBSD, where 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote -| Keybind | Description | -|---------+----------------------------| -| [[kbd:][SPC f d]] | Find directory with dired | -| [[kbd:][q]] | Exit dired buffer | +| Keybind | Description | +|-------------------+---------------------------------------------| +| [[kbd:][SPC f d]] | Find directory with dired | +| [[kbd:][q]] | Exit dired buffer | | [[kbd:][C-c C-r]] | Run [[doom-package:dired-rsync]] | | [[kbd:][C-c C-e]] | Rename entries with [[doom-package:wdired]] | diff --git a/modules/emacs/dired/config.el b/modules/emacs/dired/config.el index 26e5e74e2..fe1404ee5 100644 --- a/modules/emacs/dired/config.el +++ b/modules/emacs/dired/config.el @@ -1,5 +1,8 @@ ;;; tools/dired/config.el -*- lexical-binding: t; -*- +(defvar +dired-dirvish-icon-provider 'nerd-icons + "Icon provider to use for dirvish when the module is enabled.") + (use-package! dired :commands dired-jump :init @@ -139,7 +142,7 @@ we have to clean it up ourselves." dirvish-attributes '(git-msg) dired-omit-files (concat dired-omit-files "\\|^\\..*$")) (when (modulep! +icons) - (push 'all-the-icons dirvish-attributes)) + (push +dired-dirvish-icon-provider dirvish-attributes)) (map! :map dirvish-mode-map :n "b" #'dirvish-goto-bookmark :n "z" #'dirvish-show-history @@ -151,28 +154,20 @@ we have to clean it up ourselves." "h" #'dired-omit-mode)) -(use-package! all-the-icons-dired +(use-package! nerd-icons-dired :when (modulep! +icons) :unless (modulep! +dirvish) - :hook (dired-mode . all-the-icons-dired-mode) + :hook (dired-mode . nerd-icons-dired-mode) :config - ;; HACK Fixes #1929: icons break file renaming in Emacs 27+, because the icon - ;; is considered part of the filename, so we disable icons while we're in - ;; wdired-mode. - (defvar +wdired-icons-enabled -1) - - ;; display icons with colors - (setq all-the-icons-dired-monochrome nil) - (defadvice! +dired-disable-icons-in-wdired-mode-a (&rest _) :before #'wdired-change-to-wdired-mode - (setq-local +wdired-icons-enabled (if all-the-icons-dired-mode 1 -1)) - (when all-the-icons-dired-mode - (all-the-icons-dired-mode -1))) + (setq-local +wdired-icons-enabled (if nerd-icons-dired-mode 1 -1)) + (when nerd-icons-dired-mode + (nerd-icons-dired-mode -1))) (defadvice! +dired-restore-icons-after-wdired-mode-a (&rest _) :after #'wdired-change-to-dired-mode - (all-the-icons-dired-mode +wdired-icons-enabled))) + (nerd-icons-dired-mode +wdired-icons-enabled))) (use-package! dired-x diff --git a/modules/emacs/dired/packages.el b/modules/emacs/dired/packages.el index 802ec83c3..11e476a6d 100644 --- a/modules/emacs/dired/packages.el +++ b/modules/emacs/dired/packages.el @@ -10,5 +10,5 @@ (package! dirvish :pin "4fe9c00894304e99aca22ae4b6b656fe94b8f927")) (when (and (modulep! +icons) (not (modulep! +dirvish))) - (package! all-the-icons-dired :pin "5e9b097f9950cc9f86de922b07903a4e5fefc733")) + (package! nerd-icons-dired :pin "b7605208215194fb97da703dff8c1a71738a6533")) (package! fd-dired :pin "458464771bb220b6eb87ccfd4c985c436e57dc7e") diff --git a/modules/emacs/ibuffer/README.org b/modules/emacs/ibuffer/README.org index ce5be3796..a8e71c458 100644 --- a/modules/emacs/ibuffer/README.org +++ b/modules/emacs/ibuffer/README.org @@ -15,7 +15,7 @@ This module augments the built-in [[doom-package:ibuffer]] package. ** Module flags - +icons :: - Enable filetype icons for buffers using [[doom-package:all-the-icons]]. + Enable filetype icons for buffers using [[doom-package:nerd-icons]]. ** Packages - [[doom-package:ibuffer-projectile]] diff --git a/modules/emacs/ibuffer/config.el b/modules/emacs/ibuffer/config.el index 775bc9131..166a62712 100644 --- a/modules/emacs/ibuffer/config.el +++ b/modules/emacs/ibuffer/config.el @@ -25,11 +25,11 @@ ;; Display buffer icons on GUI (define-ibuffer-column icon (:name " ") (let ((icon (if (and (buffer-file-name) - (all-the-icons-auto-mode-match?)) - (all-the-icons-icon-for-file (file-name-nondirectory (buffer-file-name)) :v-adjust -0.05) - (all-the-icons-icon-for-mode major-mode :v-adjust -0.05)))) + (nerd-icons-auto-mode-match?)) + (nerd-icons-icon-for-file (file-name-nondirectory (buffer-file-name)) :v-adjust -0.05) + (nerd-icons-icon-for-mode major-mode :v-adjust -0.05)))) (if (symbolp icon) - (setq icon (all-the-icons-faicon "file-o" :face 'all-the-icons-dsilver :height 0.8 :v-adjust 0.0)) + (setq icon (nerd-icons-faicon "nf-fa-file_o" :face 'nerd-icons-dsilver :height 0.8 :v-adjust 0.0)) icon))) ;; Redefine size column to display human readable size @@ -72,8 +72,8 @@ :config (setq ibuffer-projectile-prefix (if (modulep! +icons) - (concat (all-the-icons-octicon - "file-directory" + (concat (nerd-icons-octicon + "nf-oct-file_directory" :face ibuffer-filter-group-name-face :v-adjust -0.05) " ") diff --git a/modules/email/mu4e/README.org b/modules/email/mu4e/README.org index 067c45ce8..b56b09314 100644 --- a/modules/email/mu4e/README.org +++ b/modules/email/mu4e/README.org @@ -6,7 +6,7 @@ * Description :unfold: This module makes Emacs an email client, using [[https://www.djcbsoftware.nl/code/mu/mu4e.html][mu4e]]. -- Tidied mu4e headers view, with flags from [[doom-package:all-the-icons]]. +- Tidied mu4e headers view, with flags from [[doom-package:nerd-icons]]. - Consistent coloring of reply depths (across compose and gnus modes). - Prettified =mu4e:main= view. - Cooperative locking of the =mu= process. Another Emacs instance may request @@ -64,12 +64,12 @@ This module requires: (recommended, default) or [[http://www.offlineimap.org/][offlineimap]] but you can sync mail in other ways too. #+name: Install Matrix -| Platform | Install command | Base packages | -|---------------+----------------------------+-------------------------| -| MacOS | ~$ brew install ~ | =mu= | +| Platform | Install command | Base packages | +|---------------+--------------------------+---------------------| +| MacOS | ~$ brew install ~ | =mu= | | Arch | ~$ pacman -S ~ | (AUR, ~$ yay -S~) =mu= | | openSUSE | ~$ zypper install ~ | =maildir-utils=, =mu4e= | -| Fedora | ~$ dnf install ~ | =maildir-utils= | +| Fedora | ~$ dnf install ~ | =maildir-utils= | | Debian/Ubuntu | ~$ apt-get install ~ | =maildir-utils=, =mu4e= | Then install either the =isync= (=mbsync=) or =offlineimap= package. diff --git a/modules/email/mu4e/autoload/email.el b/modules/email/mu4e/autoload/email.el index 4aa54d8e5..c6abc6ebc 100644 --- a/modules/email/mu4e/autoload/email.el +++ b/modules/email/mu4e/autoload/email.el @@ -115,11 +115,11 @@ will also be the width of all other printable characters." (cl-defun +mu4e-normalised-icon (name &key set color height v-adjust) "Convert :icon declaration to icon" - (let* ((icon-set (intern (concat "all-the-icons-" (or set "faicon")))) + (let* ((icon-set (intern (concat "nerd-icons-" (or set "faicon")))) (v-adjust (or v-adjust 0.02)) (height (or height 0.8)) (icon (if color - (apply icon-set `(,name :face ,(intern (concat "all-the-icons-" color)) :height ,height :v-adjust ,v-adjust)) + (apply icon-set `(,name :face ,(intern (concat "nerd-icons-" color)) :height ,height :v-adjust ,v-adjust)) (apply icon-set `(,name :height ,height :v-adjust ,v-adjust)))) (icon-width (+mu4e--get-string-width icon)) (space-width (+mu4e--get-string-width " ")) @@ -130,20 +130,20 @@ will also be the width of all other printable characters." ;;;###autoload (defun +mu4e-initialise-icons () (setq mu4e-use-fancy-chars t - mu4e-headers-draft-mark (cons "D" (+mu4e-normalised-icon "pencil")) - mu4e-headers-flagged-mark (cons "F" (+mu4e-normalised-icon "flag")) - mu4e-headers-new-mark (cons "N" (+mu4e-normalised-icon "sync" :set "material" :height 0.8 :v-adjust -0.10)) - mu4e-headers-passed-mark (cons "P" (+mu4e-normalised-icon "arrow-right")) - mu4e-headers-replied-mark (cons "R" (+mu4e-normalised-icon "reply")) + mu4e-headers-draft-mark (cons "D" (+mu4e-normalised-icon "nf-fa-pencil")) + mu4e-headers-flagged-mark (cons "F" (+mu4e-normalised-icon "nf-fa-flag")) + mu4e-headers-new-mark (cons "N" (+mu4e-normalised-icon "nf-md-sync" :set "material" :height 0.8 :v-adjust -0.10)) + mu4e-headers-passed-mark (cons "P" (+mu4e-normalised-icon "nf-fa-arrow_right")) + mu4e-headers-replied-mark (cons "R" (+mu4e-normalised-icon "nf-fa-reply")) mu4e-headers-seen-mark (cons "S" "") ;(+mu4e-normalised-icon "eye" :height 0.6 :v-adjust 0.07 :color "dsilver")) - mu4e-headers-trashed-mark (cons "T" (+mu4e-normalised-icon "trash")) - mu4e-headers-attach-mark (cons "a" (+mu4e-normalised-icon "file-text-o" :color "silver")) - mu4e-headers-encrypted-mark (cons "x" (+mu4e-normalised-icon "lock")) - mu4e-headers-signed-mark (cons "s" (+mu4e-normalised-icon "certificate" :height 0.7 :color "dpurple")) - mu4e-headers-unread-mark (cons "u" (+mu4e-normalised-icon "eye-slash" :v-adjust 0.05)) - mu4e-headers-list-mark (cons "l" (+mu4e-normalised-icon "sitemap" :set "faicon")) - mu4e-headers-personal-mark (cons "p" (+mu4e-normalised-icon "user")) - mu4e-headers-calendar-mark (cons "c" (+mu4e-normalised-icon "calendar")))) + mu4e-headers-trashed-mark (cons "T" (+mu4e-normalised-icon "nf-fa-trash")) + mu4e-headers-attach-mark (cons "a" (+mu4e-normalised-icon "nf-fa-file_text_o" :color "silver")) + mu4e-headers-encrypted-mark (cons "x" (+mu4e-normalised-icon "nf-fa-lock")) + mu4e-headers-signed-mark (cons "s" (+mu4e-normalised-icon "nf-fa-certificate" :height 0.7 :color "dpurple")) + mu4e-headers-unread-mark (cons "u" (+mu4e-normalised-icon "nf-fa-eye_slash" :v-adjust 0.05)) + mu4e-headers-list-mark (cons "l" (+mu4e-normalised-icon "nf-fa-sitemap" :set "faicon")) + mu4e-headers-personal-mark (cons "p" (+mu4e-normalised-icon "nf-fa-user")) + mu4e-headers-calendar-mark (cons "c" (+mu4e-normalised-icon "nf-fa-calendar")))) (defun +mu4e-colorize-str (str &optional unique herring) "Apply a face from `+mu4e-header-colorized-faces' to STR. diff --git a/modules/email/mu4e/config.el b/modules/email/mu4e/config.el index 782157330..40f1a328e 100644 --- a/modules/email/mu4e/config.el +++ b/modules/email/mu4e/config.el @@ -127,13 +127,13 @@ is non-nil." (cons (make-help-button text1 help-echo) (make-help-button text2 help-echo)))) (setq mu4e-headers-threaded-label - (make-help-button-cons "T" (concat " " (all-the-icons-octicon "git-branch" :v-adjust 0.05)) + (make-help-button-cons "T" (concat " " (nerd-icons-octicon "nf-oct-git_branch" :v-adjust 0.05)) "Thread view") mu4e-headers-related-label - (make-help-button-cons "R" (concat " " (all-the-icons-material "link" :v-adjust -0.1)) + (make-help-button-cons "R" (concat " " (nerd-icons-mdicon "nf-md-link" :v-adjust -0.1)) "Showing related emails") mu4e-headers-full-label - (make-help-button-cons "F" (concat " " (all-the-icons-material "disc_full")) + (make-help-button-cons "F" (concat " " (nerd-icons-mdicon "nf-md-disc")) "Search is full!"))) ;; set mail user agent @@ -156,14 +156,14 @@ is non-nil." (add-to-list 'mu4e-bookmarks '("flag:flagged" "Flagged messages" ?f) t) - ;; TODO avoid assuming that all-the-icons is present + ;; TODO avoid assuming that nerd-icons is present (defvar +mu4e-header-colorized-faces - '(all-the-icons-green - all-the-icons-lblue - all-the-icons-purple-alt - all-the-icons-blue-alt - all-the-icons-purple - all-the-icons-yellow) + '(nerd-icons-green + nerd-icons-lblue + nerd-icons-purple-alt + nerd-icons-blue-alt + nerd-icons-purple + nerd-icons-yellow) "Faces to use when coloring folders and account stripes.") (defvar +mu4e-min-header-frame-width 120 @@ -321,8 +321,8 @@ Acts like a singular `mu4e-view-save-attachments', without the saving." sizefmt (format "%%-%ds " maxsizelen)) (dolist (pinfo partinfo) (push (cons (concat (propertize (format "%-2s " (plist-get pinfo :index)) 'face '(bold font-lock-type-face)) - (when (featurep 'all-the-icons) - (all-the-icons-icon-for-file (or (plist-get pinfo :filename) ""))) + (when (featurep 'nerd-icons) + (nerd-icons-icon-for-file (or (plist-get pinfo :filename) ""))) (format fnamefmt (or (plist-get pinfo :filename) (propertize (plist-get pinfo :type) 'face '(italic font-lock-doc-face)))) (format sizefmt (propertize (plist-get pinfo :size) 'face 'font-lock-builtin-face)) diff --git a/modules/lang/beancount/README.org b/modules/lang/beancount/README.org index 77e89581f..410f2fbdb 100644 --- a/modules/lang/beancount/README.org +++ b/modules/lang/beancount/README.org @@ -22,7 +22,7 @@ you [[https://plaintextaccounting.org/][manage your money in plain text]]. ** Hacks - Associates the material =attach_money= icon with =*.beancount= files in the - [[doom-package:all-the-icons]] package. + [[doom-package:nerd-icons]] package. ** TODO Changelog # This section will be machine generated. Don't edit it by hand. diff --git a/modules/lang/beancount/config.el b/modules/lang/beancount/config.el index ec43f7380..86dac64c0 100644 --- a/modules/lang/beancount/config.el +++ b/modules/lang/beancount/config.el @@ -3,6 +3,13 @@ (use-package! beancount :mode ("\\.beancount\\'" . beancount-mode) :hook (beancount-mode . outline-minor-mode) + :init + (after! nerd-icons + (add-to-list 'nerd-icons-extension-icon-alist + '("beancount" nerd-icons-faicon "nf-fa-money" :face nerd-icons-lblue)) + (add-to-list 'nerd-icons-mode-icon-alist + '(beancount-mode nerd-icons-faicon "nf-fa-money" :face nerd-icons-lblue))) + :config (setq beancount-electric-currency t) diff --git a/modules/lang/graphql/config.el b/modules/lang/graphql/config.el index 4c222f269..f03597df1 100644 --- a/modules/lang/graphql/config.el +++ b/modules/lang/graphql/config.el @@ -1,18 +1,10 @@ ;;; lang/graphql/config.el -*- lexical-binding: t; -*- (after! graphql-mode - (defface all-the-icons-rhodamine + (defface nerd-icons-rhodamine '((t (:foreground "#E10098"))) "Face for GraphQL icon." - :group 'all-the-icons-faces) - ;; Define a doom-modeline compatiable major-mode icon - (after! all-the-icons - (setf (alist-get "graphql" all-the-icons-extension-icon-alist) - '(all-the-icons-fileicon "graphql" :v-adjust -0.05 :face all-the-icons-rhodamine)) - (setf (alist-get "gql" all-the-icons-extension-icon-alist) - '(all-the-icons-fileicon "graphql" :v-adjust -0.05 :face all-the-icons-rhodamine)) - (setf (alist-get 'graphql-mode all-the-icons-mode-icon-alist) - '(all-the-icons-fileicon "graphql" :v-adjust -0.05 :face all-the-icons-rhodamine))) + :group 'nerd-icons-faces) (if (modulep! +lsp) (add-hook 'graphql-mode-local-vars-hook #'lsp! 'append) (set-company-backend! 'graphql-mode 'company-graphql)) diff --git a/modules/lang/org/autoload/org-link.el b/modules/lang/org/autoload/org-link.el index 0fb8464b9..fff9367e7 100644 --- a/modules/lang/org/autoload/org-link.el +++ b/modules/lang/org/autoload/org-link.el @@ -257,13 +257,11 @@ exist, and `org-link' otherwise." start end (list 'display (concat - (propertize - "" - 'rear-nonsticky t - 'display '(raise -0.02) - 'face (list :family "all-the-icons" - :height 1.0 - :inherit (if found 'success 'error))) + (nerd-icons-devicon "nf-dev-terminal_badge" + :rear-nonsticky t + :display '(raise -0.02) + :face (list :height 1.0 + :inherit (if found 'success 'error))) " " (propertize executable diff --git a/modules/tools/biblio/config.el b/modules/tools/biblio/config.el index 5d9b89a41..a37263e7e 100644 --- a/modules/tools/biblio/config.el +++ b/modules/tools/biblio/config.el @@ -26,36 +26,36 @@ (when (modulep! :completion vertico +icons) (defvar citar-indicator-files-icons (citar-indicator-create - :symbol (all-the-icons-faicon - "file-o" - :face 'all-the-icons-green + :symbol (nerd-icons-faicon + "nf-fa-file_o" + :face 'nerd-icons-green :v-adjust -0.1) :function #'citar-has-files :padding " " ; need this because the default padding is too low for these icons :tag "has:files")) (defvar citar-indicator-links-icons (citar-indicator-create - :symbol (all-the-icons-octicon - "link" - :face 'all-the-icons-orange + :symbol (nerd-icons-faicon + "nf-fa-link" + :face 'nerd-icons-orange :v-adjust 0.01) :function #'citar-has-links :padding " " :tag "has:links")) (defvar citar-indicator-notes-icons (citar-indicator-create - :symbol (all-the-icons-material - "speaker_notes" - :face 'all-the-icons-blue + :symbol (nerd-icons-codicon + "nf-cod-note" + :face 'nerd-icons-blue :v-adjust -0.3) :function #'citar-has-notes :padding " " :tag "has:notes")) (defvar citar-indicator-cited-icons (citar-indicator-create - :symbol (all-the-icons-faicon - "circle-o" - :face 'all-the-icon-green) + :symbol (nerd-icons-faicon + "nf-fa-circle_o" + :face 'nerd-icon-green) :function #'citar-is-cited :padding " " :tag "is:cited")) diff --git a/modules/ui/doom-dashboard/README.org b/modules/ui/doom-dashboard/README.org index 4eb180ba0..21eb3e116 100644 --- a/modules/ui/doom-dashboard/README.org +++ b/modules/ui/doom-dashboard/README.org @@ -41,9 +41,9 @@ Besides eye candy, the dashboard serves two other purposes: * Installation [[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]] -This module only requires that ~all-the-icons~'s icon fonts are installed, which +This module only requires that ~nerd-icons~'s icon fonts are installed, which should've been installed when you ran ~$ doom install~. Otherwise, use ~M-x -all-the-icons-install-fonts~ to install them. +nerd-icons-install-fonts~ to install them. * Usage Once this module is enabled, the dashboard will present itself after opening a @@ -88,7 +88,7 @@ color from the theme) you can make use of ~custom-set-faces!~ or (custom-set-faces! '(doom-dashboard-banner :foreground "red" :background "#000000" :weight bold) '(doom-dashboard-footer :inherit font-lock-constant-face) - '(doom-dashboard-footer-icon :inherit all-the-icons-red) + '(doom-dashboard-footer-icon :inherit nerd-icons-red) '(doom-dashboard-loaded :inherit font-lock-warning-face) '(doom-dashboard-menu-desc :inherit font-lock-string-face) '(doom-dashboard-menu-title :inherit font-lock-function-name-face)) @@ -99,7 +99,7 @@ or for a per-theme setting (custom-theme-set-faces! 'doom-tomorrow-night '(doom-dashboard-banner :foreground "red" :background "#000000" :weight bold) '(doom-dashboard-footer :inherit font-lock-constant-face) - '(doom-dashboard-footer-icon :inherit all-the-icons-red) + '(doom-dashboard-footer-icon :inherit nerd-icons-red) '(doom-dashboard-loaded :inherit font-lock-warning-face) '(doom-dashboard-menu-desc :inherit font-lock-string-face) '(doom-dashboard-menu-title :inherit font-lock-function-name-face)) diff --git a/modules/ui/doom-dashboard/config.el b/modules/ui/doom-dashboard/config.el index 1ba86334a..613e331f5 100644 --- a/modules/ui/doom-dashboard/config.el +++ b/modules/ui/doom-dashboard/config.el @@ -47,32 +47,31 @@ Possible values: (defvar +doom-dashboard-menu-sections '(("Recently opened files" - :icon (all-the-icons-octicon "file-text" :face 'doom-dashboard-menu-title) - :face (:inherit (doom-dashboard-menu-title bold)) + :icon (nerd-icons-faicon "nf-fa-file_text" :face 'doom-dashboard-menu-title) :action recentf-open-files) ("Reload last session" - :icon (all-the-icons-octicon "history" :face 'doom-dashboard-menu-title) + :icon (nerd-icons-octicon "nf-oct-history" :face 'doom-dashboard-menu-title) :when (cond ((modulep! :ui workspaces) (file-exists-p (expand-file-name persp-auto-save-fname persp-save-dir))) ((require 'desktop nil t) (file-exists-p (desktop-full-file-name)))) :action doom/quickload-session) ("Open org-agenda" - :icon (all-the-icons-octicon "calendar" :face 'doom-dashboard-menu-title) + :icon (nerd-icons-octicon "nf-oct-calendar" :face 'doom-dashboard-menu-title) :when (fboundp 'org-agenda) :action org-agenda) ("Open project" - :icon (all-the-icons-octicon "briefcase" :face 'doom-dashboard-menu-title) + :icon (nerd-icons-octicon "nf-oct-briefcase" :face 'doom-dashboard-menu-title) :action projectile-switch-project) ("Jump to bookmark" - :icon (all-the-icons-octicon "bookmark" :face 'doom-dashboard-menu-title) + :icon (nerd-icons-octicon "nf-oct-bookmark" :face 'doom-dashboard-menu-title) :action bookmark-jump) ("Open private configuration" - :icon (all-the-icons-octicon "tools" :face 'doom-dashboard-menu-title) + :icon (nerd-icons-octicon "nf-oct-tools" :face 'doom-dashboard-menu-title) :when (file-directory-p doom-user-dir) :action doom/open-private-config) ("Open documentation" - :icon (all-the-icons-octicon "book" :face 'doom-dashboard-menu-title) + :icon (nerd-icons-octicon "nf-oct-book" :face 'doom-dashboard-menu-title) :action doom/help)) "An alist of menu buttons used by `doom-dashboard-widget-shortmenu'. Each element is a cons cell (LABEL . PLIST). LABEL is a string to display after the @@ -98,9 +97,6 @@ PLIST can have the following properties: (defvar +doom-dashboard--pwd-alist ()) (defvar +doom-dashboard--reload-timer nil) -(defvar all-the-icons-scale-factor) -(defvar all-the-icons-default-adjust) - ;; ;;; Bootstrap @@ -151,7 +147,7 @@ PLIST can have the following properties: "Face used for the footer on the dashboard" :group 'doom-dashboard) -(defface doom-dashboard-footer-icon '((t (:inherit all-the-icons-green))) +(defface doom-dashboard-footer-icon '((t (:inherit nerd-icons-green))) "Face used for the icon of the footer on the dashboard" :group 'doom-dashboard) @@ -456,60 +452,58 @@ What it is set to is controlled by `+doom-dashboard-pwd-policy'." "\n"))) (defun doom-dashboard-widget-shortmenu () - (let ((all-the-icons-scale-factor 1.45) - (all-the-icons-default-adjust -0.02)) - (insert "\n") - (dolist (section +doom-dashboard-menu-sections) - (cl-destructuring-bind (label &key icon action when face key) section - (when (and (fboundp action) - (or (null when) - (eval when t))) - (insert - (+doom-dashboard--center - (- +doom-dashboard--width 1) - (let ((icon (if (stringp icon) icon (eval icon t)))) - (format (format "%s%%s%%-10s" (if icon "%3s\t" "%3s")) - (or icon "") - (with-temp-buffer - (insert-text-button - label - 'action - `(lambda (_) - (call-interactively (or (command-remapping #',action) - #',action))) - 'face (or face 'doom-dashboard-menu-title) - 'follow-link t - 'help-echo - (format "%s (%s)" label - (propertize (symbol-name action) 'face 'doom-dashboard-menu-desc))) - (format "%-37s" (buffer-string))) - ;; Lookup command keys dynamically - (propertize - (or key - (when-let* - ((keymaps - (delq - nil (list (when (bound-and-true-p evil-local-mode) - (evil-get-auxiliary-keymap +doom-dashboard-mode-map 'normal)) - +doom-dashboard-mode-map))) - (key - (or (when keymaps - (where-is-internal action keymaps t)) - (where-is-internal action nil t)))) - (with-temp-buffer - (save-excursion (insert (key-description key))) - (while (re-search-forward "<\\([^>]+\\)>" nil t) - (let ((str (match-string 1))) - (replace-match - (upcase (if (< (length str) 3) - str - (substring str 0 3)))))) - (buffer-string))) - "") - 'face 'doom-dashboard-menu-desc)))) - (if (display-graphic-p) - "\n\n" - "\n"))))))) + (insert "\n") + (dolist (section +doom-dashboard-menu-sections) + (cl-destructuring-bind (label &key icon action when face key) section + (when (and (fboundp action) + (or (null when) + (eval when t))) + (insert + (+doom-dashboard--center + (- +doom-dashboard--width 1) + (let ((icon (if (stringp icon) icon (eval icon t)))) + (format (format "%s%%s%%-10s" (if icon "%3s\t" "%3s")) + (or icon "") + (with-temp-buffer + (insert-text-button + label + 'action + `(lambda (_) + (call-interactively (or (command-remapping #',action) + #',action))) + 'face (or face 'doom-dashboard-menu-title) + 'follow-link t + 'help-echo + (format "%s (%s)" label + (propertize (symbol-name action) 'face 'doom-dashboard-menu-desc))) + (format "%-37s" (buffer-string))) + ;; Lookup command keys dynamically + (propertize + (or key + (when-let* + ((keymaps + (delq + nil (list (when (bound-and-true-p evil-local-mode) + (evil-get-auxiliary-keymap +doom-dashboard-mode-map 'normal)) + +doom-dashboard-mode-map))) + (key + (or (when keymaps + (where-is-internal action keymaps t)) + (where-is-internal action nil t)))) + (with-temp-buffer + (save-excursion (insert (key-description key))) + (while (re-search-forward "<\\([^>]+\\)>" nil t) + (let ((str (match-string 1))) + (replace-match + (upcase (if (< (length str) 3) + str + (substring str 0 3)))))) + (buffer-string))) + "") + 'face 'doom-dashboard-menu-desc)))) + (if (display-graphic-p) + "\n\n" + "\n")))))) (defun doom-dashboard-widget-footer () (insert @@ -517,7 +511,7 @@ What it is set to is controlled by `+doom-dashboard-pwd-policy'." (+doom-dashboard--center (- +doom-dashboard--width 2) (with-temp-buffer - (insert-text-button (or (all-the-icons-octicon "octoface" :face 'doom-dashboard-footer-icon :height 1.3 :v-adjust -0.15) + (insert-text-button (or (nerd-icons-codicon "nf-cod-octoface" :face 'doom-dashboard-footer-icon :height 1.3 :v-adjust -0.15) (propertize "github" 'face 'doom-dashboard-footer)) 'action (lambda (_) (browse-url "https://github.com/hlissner/doom-emacs")) 'follow-link t diff --git a/modules/ui/doom/README.org b/modules/ui/doom/README.org index 9e6cb9bc0..12c2eec10 100644 --- a/modules/ui/doom/README.org +++ b/modules/ui/doom/README.org @@ -86,8 +86,8 @@ core/core-ui.el has four relevant variables: ** Strange font symbols If you're seeing strange unicode symbols, this is likely because you don't have -~all-the-icons~'s font icon installed. You can install them with ~M-x -all-the-icons-install-fonts~. +~nerd-icons~'s font icon installed. You can install them with ~M-x +nerd-icons-install-fonts~. ** Ugly background colors in tty Emacs for daemon users [[doom-package:solaire-mode]] is an aesthetic plugin that makes non-file-visiting buffers darker diff --git a/modules/ui/modeline/+light.el b/modules/ui/modeline/+light.el index fed1a341a..3d2a1673f 100644 --- a/modules/ui/modeline/+light.el +++ b/modules/ui/modeline/+light.el @@ -113,11 +113,9 @@ side of the modeline, and whose CDR is the right-hand side.") "Build from ICON-SET the ICON with LABEL. Using optionals attributes FACE, HELP-ECHO and VOFFSET." (let ((icon-set-fn (pcase icon-set - ('octicon #'all-the-icons-octicon) - ('faicon #'all-the-icons-faicon) - ('material #'all-the-icons-material) - ('alltheicon #'all-the-icons-alltheicon) - ('fileicon #'all-the-icons-fileicon)))) + ('octicon #'nerd-icons-octicon) + ('faicon #'nerd-icons-faicon) + ('material #'nerd-icons-mdicon)))) (propertize (concat (funcall icon-set-fn icon :face face @@ -290,7 +288,7 @@ Requires `anzu', also `evil-anzu' if using `evil-mode' for compatibility with (evil-mc-frozen 'doom-modeline-highlight) ('doom-modeline-alternate-highlight)))) (concat (propertize " " 'face face) - (all-the-icons-faicon "i-cursor" :face face :v-adjust -0.0575) + (nerd-icons-faicon "nf-fa-i_cursor" :face face :v-adjust -0.0575) (propertize " " 'face `(:inherit (variable-pitch ,face))) (propertize (format "%d " count) 'face face))))))) @@ -332,7 +330,7 @@ Requires `anzu', also `evil-anzu' if using `evil-mode' for compatibility with "Macro") 'face 'doom-modeline-highlight) sep - (all-the-icons-octicon "triangle-right" + (nerd-icons-octicon "nf-oct-triangle_right" :face 'doom-modeline-highlight :v-adjust -0.05) sep)))) @@ -532,7 +530,7 @@ lines are selected, or the NxM dimensions of a block selection.") mode-line-misc-info +modeline-modes (vc-mode (" " - ,(all-the-icons-octicon "git-branch" :v-adjust 0.0) + ,(nerd-icons-octicon "nf-oct-git_branch" :v-adjust 0.0) vc-mode " ")) " " +modeline-encoding @@ -540,8 +538,8 @@ lines are selected, or the NxM dimensions of a block selection.") (def-modeline! 'project `(" " - ,(all-the-icons-octicon - "file-directory" + ,(nerd-icons-octicon + "nf-oct-file_directory" :face 'bold :v-adjust -0.06 :height 1.1) diff --git a/modules/ui/modeline/README.org b/modules/ui/modeline/README.org index b37a41556..bfc74a221 100644 --- a/modules/ui/modeline/README.org +++ b/modules/ui/modeline/README.org @@ -73,11 +73,11 @@ I rarely need to know what minor modes are active, so I removed them. ~M-x doom/describe-active-minor-mode~ was written to substitute for it. ** Icons in my modeline look strange -1. Check whether ~all-the-icons~ are installed. Run ~M-x - all-the-icons-install-fonts~ to install the resource fonts. Note that - ~all-the-icons~ only support GUI. See [[https://github.com/domtronn/all-the-icons.el][all-the-icons]] for details. +1. Check whether ~nerd-icons~ are installed. Run ~M-x + nerd-icons-install-fonts~ to install the resource fonts. Note that + ~nerd-icons~ only support GUI. See [[https://github.com/domtronn/nerd-icons.el][nerd-icons]] for details. -2. ~cnfonts~ will conflict with ~all-the-icons~. You can refer the following +2. ~cnfonts~ will conflict with ~nerd-icons~. You can refer the following workaround: #+begin_src emacs-lisp ;; See https://github.com/seagle0128/doom-modeline/issues/278#issuecomment-569510336 @@ -87,18 +87,11 @@ doom/describe-active-minor-mode~ was written to substitute for it. (add-hook 'after-setting-font-hook #'cnfonts-set-font) #+end_src -3. If ~all-the-icons~ fonts are installed while the icons cannot display - correctly, please install the non-free font [[https://dn-works.com/wp-content/uploads/2020/UFAS-Fonts/Symbola.zip][Symbola]]. This issue usually - occurs on Windows. - ** The right side of the modeline is cut off I believe the consensus is: this is due to oversized icons, i.e. a font issue. Some possible solutions: -1. Tweak ~all-the-icons-scale-factor~ (1.2 by default): ~(setq - all-the-icons-scale-factor 1.1)~ - -2. Add some padding to the modeline definition: +1. Add some padding to the modeline definition: #+begin_src emacs-lisp (after! doom-modeline (doom-modeline-def-modeline 'main @@ -106,7 +99,7 @@ Some possible solutions: '(misc-info minor-modes checker input-method buffer-encoding major-mode process vcs " "))) ; <-- added padding here #+end_src -3. Use another font for the mode line (or a different ~:height~) (source) +2. Use another font for the mode line (or a different ~:height~) (source) #+begin_src emacs-lisp (custom-set-faces! '(mode-line :family "Noto Sans" :height 0.9) diff --git a/modules/ui/modeline/config.el b/modules/ui/modeline/config.el index 095a6c5b4..3760fdf55 100644 --- a/modules/ui/modeline/config.el +++ b/modules/ui/modeline/config.el @@ -37,21 +37,7 @@ (IS-WINDOWS 1) (0))) - ;; Fix modeline icons in daemon-spawned graphical frames. We have our own - ;; mechanism for disabling all-the-icons, so we don't need doom-modeline to do - ;; it for us. However, this may cause unwanted padding in the modeline in - ;; daemon-spawned terminal frames. If it bothers you, you may prefer - ;; `doom-modeline-icon' set to `nil'. - (when (daemonp) - (setq doom-modeline-icon t)) :config - ;; HACK Fix #4102 due to empty all-the-icons return value (caused by - ;; `doom--disable-all-the-icons-in-tty-a' advice) in tty daemon frames. - (defadvice! +modeline-disable-icon-in-daemon-a (fn &rest args) - :around #'doom-modeline-propertize-icon - (when (display-graphic-p) - (apply fn args))) - ;; Fix an issue where these two variables aren't defined in TTY Emacs on MacOS (defvar mouse-wheel-down-event nil) (defvar mouse-wheel-up-event nil) diff --git a/modules/ui/modeline/packages.el b/modules/ui/modeline/packages.el index 76c2b397f..7f8330dc8 100644 --- a/modules/ui/modeline/packages.el +++ b/modules/ui/modeline/packages.el @@ -2,7 +2,7 @@ ;;; ui/modeline/packages.el (unless (modulep! +light) - (package! doom-modeline :pin "f45a5a200313568d54d73dd38bae76930c2008b5")) + (package! doom-modeline :pin "173ad0a27f2c3babe2009a3b760b92d3c8718f5a")) (package! anzu :pin "5abb37455ea44fa401d5f4c1bdc58adb2448db67") (when (modulep! :editor evil) (package! evil-anzu :pin "d1e98ee6976437164627542909a25c6946497899")) From aa49edc216b30ab7104037a9365aaad06ae09b31 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 12 Sep 2023 23:38:01 +0200 Subject: [PATCH 140/523] docs(helm,ivy,vertico,ido): add incompatibility checks These modules tend to conflict if more than one of them are enabled at once. More systematic compatibility tests are in the works, but for now this will do. --- modules/completion/helm/doctor.el | 7 +++++++ modules/completion/ido/doctor.el | 7 +++++++ modules/completion/ivy/doctor.el | 4 ++++ modules/completion/vertico/doctor.el | 8 +++++++- 4 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 modules/completion/helm/doctor.el create mode 100644 modules/completion/ido/doctor.el diff --git a/modules/completion/helm/doctor.el b/modules/completion/helm/doctor.el new file mode 100644 index 000000000..ea80e0b8e --- /dev/null +++ b/modules/completion/helm/doctor.el @@ -0,0 +1,7 @@ +;; -*- lexical-binding: t; no-byte-compile: t; -*- +;;; completion/helm/doctor.el + +(dolist (module '(ivy ido vertico)) + (when (doom-module-p :completion module) + (error! "This module is incompatible with :completion %s; disable one or the other" + module))) diff --git a/modules/completion/ido/doctor.el b/modules/completion/ido/doctor.el new file mode 100644 index 000000000..9aeb09eb7 --- /dev/null +++ b/modules/completion/ido/doctor.el @@ -0,0 +1,7 @@ +;; -*- lexical-binding: t; no-byte-compile: t; -*- +;;; completion/ido/doctor.el + +(dolist (module '(helm ivy vertico)) + (when (doom-module-p :completion module) + (error! "This module is incompatible with :completion %s; disable one or the other" + module))) diff --git a/modules/completion/ivy/doctor.el b/modules/completion/ivy/doctor.el index a79d37c56..771fdeb93 100644 --- a/modules/completion/ivy/doctor.el +++ b/modules/completion/ivy/doctor.el @@ -1,3 +1,7 @@ ;; -*- lexical-binding: t; no-byte-compile: t; -*- ;;; completion/ivy/doctor.el +(dolist (module '(helm ido vertico)) + (when (doom-module-p :completion module) + (error! "This module is incompatible with :completion %s; disable one or the other" + module))) diff --git a/modules/completion/vertico/doctor.el b/modules/completion/vertico/doctor.el index febc9702d..009c0cbc2 100644 --- a/modules/completion/vertico/doctor.el +++ b/modules/completion/vertico/doctor.el @@ -1,4 +1,10 @@ -;;; completion/vertico/doctor.el -*- lexical-binding: t; -*- +;; -*- lexical-binding: t; no-byte-compile: t; -*- +;;; completion/vertico/doctor.el + +(dolist (module '(ivy helm ido)) + (when (doom-module-p :completion module) + (error! "This module is incompatible with :completion %s; disable one or the other" + module))) (when (require 'consult nil t) ;; FIXME: This throws an error if grep is missing. From 1fce8522f8f987d8d1ac1e74e6009db670c3d93b Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 14 Sep 2023 00:50:54 +0200 Subject: [PATCH 141/523] bump: :editor multiple-cursors gabesoft/evil-mc@63fd2fe0c213 -> gabesoft/evil-mc@bdf893ea6f52 magnars/multiple-cursors.el@16223efc2d6d -> magnars/multiple-cursors.el@234806c83299 - Fixes evil-mc for recent versions of evil (#7415). Close: #7415 Co-authored-by: Mo0dy --- modules/editor/multiple-cursors/packages.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/editor/multiple-cursors/packages.el b/modules/editor/multiple-cursors/packages.el index aa42652f8..4ff3edf26 100644 --- a/modules/editor/multiple-cursors/packages.el +++ b/modules/editor/multiple-cursors/packages.el @@ -4,6 +4,6 @@ (cond ((modulep! :editor evil) (package! evil-multiedit :pin "23b53bc8743fb82a8854ba907b1d277374c93a79") - (package! evil-mc :pin "63fd2fe0c213a4cc31c464d246f92931c4cb720f")) + (package! evil-mc :pin "bdf893ea6f52fd0f10bece8ddae813658e17bbb4")) - ((package! multiple-cursors :pin "16223efc2d6dece2d43bbccc189d7a4bab6de571"))) + ((package! multiple-cursors :pin "234806c832994cadedb42596fe235e91bbd59e8c"))) From 420474222e27a5f9eea10b132b43c4dc2ccdd5bb Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 14 Sep 2023 00:55:16 +0200 Subject: [PATCH 142/523] bump: :editor lispy parinfer snippets word-wrap abo-abo/lispy@097dd66e662c -> abo-abo/lispy@fe44efd21573 doomemacs/snippets@fe4003014ae0 -> doomemacs/snippets@d490cba6d762 emacs-straight/adaptive-wrap@0d5b4a07de76 -> emacs-straight/adaptive-wrap@fc9f0306f14c joaotavora/yasnippet@5cbdbf0d2015 -> joaotavora/yasnippet@76e1eee654ea justinbarclay/parinfer-rust-mode@332c7f47426f -> justinbarclay/parinfer-rust-mode@6e6bdeeba325 --- modules/editor/lispy/packages.el | 2 +- modules/editor/parinfer/packages.el | 2 +- modules/editor/snippets/packages.el | 4 ++-- modules/editor/word-wrap/packages.el | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/editor/lispy/packages.el b/modules/editor/lispy/packages.el index 3604d5b22..46099a98a 100644 --- a/modules/editor/lispy/packages.el +++ b/modules/editor/lispy/packages.el @@ -1,6 +1,6 @@ ;; -*- no-byte-compile: t; -*- ;;; editor/lispyville/packages.el -(package! lispy :pin "097dd66e662c3eee90d112d88bac5345d26e508f") +(package! lispy :pin "fe44efd21573868638ca86fc8313241148fabbe3") (when (modulep! :editor evil) (package! lispyville :pin "14ee8711d58b649aeac03581d22b10ab077f06bd")) diff --git a/modules/editor/parinfer/packages.el b/modules/editor/parinfer/packages.el index 9f31eee1a..65ae55b11 100644 --- a/modules/editor/parinfer/packages.el +++ b/modules/editor/parinfer/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; editor/parinfer/packages.el -(package! parinfer-rust-mode :pin "332c7f47426f0519dc5c24dda82afdb1aa8b61ee") +(package! parinfer-rust-mode :pin "6e6bdeeba32534acca5928fe4201ce013094988d") diff --git a/modules/editor/snippets/packages.el b/modules/editor/snippets/packages.el index 8a71b39c6..798e65cf9 100644 --- a/modules/editor/snippets/packages.el +++ b/modules/editor/snippets/packages.el @@ -1,10 +1,10 @@ ;; -*- no-byte-compile: t; -*- ;;; editor/snippets/packages.el -(package! yasnippet :pin "5cbdbf0d2015540c59ed8ee0fcf4788effdf75b6") +(package! yasnippet :pin "76e1eee654ea9479ba1441f9c17567694e6a2096") (package! auto-yasnippet :pin "6a9e406d0d7f9dfd6dff7647f358cb05a0b1637e") (package! doom-snippets :recipe (:host github :repo "doomemacs/snippets" :files (:defaults "*")) - :pin "fe4003014ae00b866f117cb193f711fd9d72fd11") + :pin "d490cba6d762e69b483be308bc387c1f785742f0") diff --git a/modules/editor/word-wrap/packages.el b/modules/editor/word-wrap/packages.el index ab1386701..635b6f4be 100644 --- a/modules/editor/word-wrap/packages.el +++ b/modules/editor/word-wrap/packages.el @@ -1,5 +1,5 @@ ;; -*- no-byte-compile: t; -*- ;;; editor/word-wrap/packages.el -(package! adaptive-wrap :pin "0d5b4a07de76d87dd64333a566a8a0a845f2b9f0") +(package! adaptive-wrap :pin "fc9f0306f14c3859c9903b0a0336478bf070c943") (package! visual-fill-column :pin "695a59789209c42fa08a5bce92963ee32f4455be") From c5d4f818d1b34dede1c74dd15af5067f0970e0b9 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 14 Sep 2023 01:11:05 +0200 Subject: [PATCH 143/523] fix(ivy): void-function nerd-icons-ivy-rich-mode error Amend: 9787022b839d --- modules/completion/ivy/config.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/completion/ivy/config.el b/modules/completion/ivy/config.el index 684e6ce82..e1a758dc8 100644 --- a/modules/completion/ivy/config.el +++ b/modules/completion/ivy/config.el @@ -149,7 +149,8 @@ results buffer.") (switch-buffer-alist (assq 'ivy-rich-candidate (plist-get plist :columns)))) (setcar switch-buffer-alist '+ivy-rich-buffer-name)) - (nerd-icons-ivy-rich-mode +1) + (when (modulep! +icons) + (nerd-icons-ivy-rich-mode +1)) (ivy-rich-mode +1) (ivy-rich-project-root-cache-mode +1)) From 5efec260ef891cc4ca1134ca1418c870eda7418e Mon Sep 17 00:00:00 2001 From: Ian Kerins Date: Wed, 13 Sep 2023 20:41:33 -0400 Subject: [PATCH 144/523] fix(format): use correct lisp format function `apheleia--indent-lisp-buffer` does not exist. Ref: #6369 --- modules/lang/common-lisp/config.el | 2 +- modules/lang/emacs-lisp/config.el | 2 +- modules/lang/hy/config.el | 2 +- modules/lang/scheme/config.el | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/lang/common-lisp/config.el b/modules/lang/common-lisp/config.el index 9edc7f548..83a0a3030 100644 --- a/modules/lang/common-lisp/config.el +++ b/modules/lang/common-lisp/config.el @@ -26,7 +26,7 @@ (after! lisp-mode (set-repl-handler! 'lisp-mode #'+lisp/open-repl) (set-eval-handler! 'lisp-mode #'sly-eval-region) - (set-formatter! 'lisp-indent #'apheleia--indent-lisp-buffer :modes '(lisp-mode)) + (set-formatter! 'lisp-indent #'apheleia-indent-lisp-buffer :modes '(lisp-mode)) (set-lookup-handlers! 'lisp-mode :definition #'sly-edit-definition :documentation #'sly-describe-symbol)) diff --git a/modules/lang/emacs-lisp/config.el b/modules/lang/emacs-lisp/config.el index 609168518..1e140a00e 100644 --- a/modules/lang/emacs-lisp/config.el +++ b/modules/lang/emacs-lisp/config.el @@ -39,7 +39,7 @@ See `+emacs-lisp-non-package-mode' for details.") :documentation #'+emacs-lisp-lookup-documentation) (set-docsets! '(emacs-lisp-mode lisp-interaction-mode) "Emacs Lisp") (set-ligatures! 'emacs-lisp-mode :lambda "lambda") - (set-formatter! 'lisp-indent #'apheleia--indent-lisp-buffer :modes '(emacs-lisp-mode)) + (set-formatter! 'lisp-indent #'apheleia-indent-lisp-buffer :modes '(emacs-lisp-mode)) (set-rotate-patterns! 'emacs-lisp-mode :symbols '(("t" "nil") ("let" "let*") diff --git a/modules/lang/hy/config.el b/modules/lang/hy/config.el index e17b868d8..647bcd5a1 100644 --- a/modules/lang/hy/config.el +++ b/modules/lang/hy/config.el @@ -5,5 +5,5 @@ :interpreter "hy" :config (set-repl-handler! 'hy-mode #'hy-shell-start-or-switch-to-shell) - (set-formatter! 'lisp-indent #'apheleia--indent-lisp-buffer :modes '(hy-mode)) + (set-formatter! 'lisp-indent #'apheleia-indent-lisp-buffer :modes '(hy-mode)) (set-company-backend! 'hy-mode 'company-hy)) diff --git a/modules/lang/scheme/config.el b/modules/lang/scheme/config.el index 17e189f1f..f76496225 100644 --- a/modules/lang/scheme/config.el +++ b/modules/lang/scheme/config.el @@ -4,7 +4,7 @@ :interpreter ("scsh" . scheme-mode) :hook (scheme-mode . rainbow-delimiters-mode) :config - (set-formatter! 'lisp-indent #'apheleia--indent-lisp-buffer :modes '(scheme-mode)) + (set-formatter! 'lisp-indent #'apheleia-indent-lisp-buffer :modes '(scheme-mode)) (advice-add #'scheme-indent-function :override #'+scheme-indent-function-a)) From 0c793906236db018ba460862e23d9f62d061249c Mon Sep 17 00:00:00 2001 From: SunskyXH Date: Thu, 14 Sep 2023 09:37:46 +0800 Subject: [PATCH 145/523] fix(tabs): replace all-the-icons with nerd-icons Ref: #7411 --- modules/ui/tabs/config.el | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/ui/tabs/config.el b/modules/ui/tabs/config.el index fba46edd1..66504fdef 100644 --- a/modules/ui/tabs/config.el +++ b/modules/ui/tabs/config.el @@ -9,6 +9,7 @@ centaur-tabs-set-modified-marker t centaur-tabs-close-button "✕" centaur-tabs-modified-marker "•" + centaur-tabs-icon-type 'nerd-icons ;; Scrolling (with the mouse wheel) past the end of the tab list ;; replaces the tab list with that of another Doom workspace. This ;; prevents that. From 3b692e92f5ca27cb0ea7b9d964a42f1b466704bd Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 14 Sep 2023 01:31:32 +0200 Subject: [PATCH 146/523] refactor(modeline): remove doom-modeline-buffer-modified shim No longer needed. Ref: seagle0128/doom-modeline@5c9826731096 --- modules/ui/modeline/config.el | 9 --------- 1 file changed, 9 deletions(-) diff --git a/modules/ui/modeline/config.el b/modules/ui/modeline/config.el index 3760fdf55..b58bf3eff 100644 --- a/modules/ui/modeline/config.el +++ b/modules/ui/modeline/config.el @@ -10,15 +10,6 @@ :hook (doom-modeline-mode . size-indication-mode) ; filesize in modeline :hook (doom-modeline-mode . column-number-mode) ; cursor column in modeline :init - (when (>= emacs-major-version 29) - ;; HACK: Emacs 29 treats `nil' for :background as invalid, and complains. - ;; `doom-modeline' hasn't updated its face to address this yet. - ;; REVIEW: PR this fix to doom-modeline - (defface doom-modeline-buffer-modified - '((t (:inherit (error bold) :background unspecified))) - "Face used for the \\='unsaved\\=' symbol in the mode-line." - :group 'doom-modeline-faces)) - ;; We display project info in the modeline ourselves (setq projectile-dynamic-mode-line nil) ;; Set these early so they don't trigger variable watchers From cd2477e79c95088148403d591864652704c56a86 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 14 Sep 2023 03:38:45 +0200 Subject: [PATCH 147/523] refactor(collab): s/featurep!/modulep! featurep! was renamed modulep! in ad6a3d0. Close: #7420 Ref: ad6a3d0f33ee Co-authored-by: lagman --- modules/tools/collab/config.el | 2 +- modules/tools/collab/doctor.el | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/tools/collab/config.el b/modules/tools/collab/config.el index 32dc2ebfe..427abefe1 100644 --- a/modules/tools/collab/config.el +++ b/modules/tools/collab/config.el @@ -3,6 +3,6 @@ (use-package! crdt :commands (crdt-share-buffer crdt-connect) :init - (when (featurep! +tunnel) + (when (modulep! +tunnel) (setq crdt-use-tuntox t) (setq crdt-tuntox-password-in-url t))) diff --git a/modules/tools/collab/doctor.el b/modules/tools/collab/doctor.el index 8d5caacb9..a133e2389 100644 --- a/modules/tools/collab/doctor.el +++ b/modules/tools/collab/doctor.el @@ -1,4 +1,5 @@ ;;; tools/collab/doctor.el -*- lexical-binding: t; -*- -(when (and (featurep! +tunnel) (not (executable-find "tuntox"))) +(when (and (modulep! +tunnel) + (not (executable-find "tuntox"))) (warn! "Couldn't find tuntox command. This needs to be on your path for the +tunnel flag to work properly.")) From e97b05c07cfb5e560a8ebaaf09e8f0d094ccb802 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Thu, 14 Sep 2023 13:58:01 +0100 Subject: [PATCH 148/523] fix: nerd-icons-material => nerd-icons-mdicon Fix: #7422 Amend: #7411 --- lisp/lib/docs.el | 2 +- modules/email/mu4e/autoload/email.el | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lisp/lib/docs.el b/lisp/lib/docs.el index 83261c88e..72c8920e0 100644 --- a/lisp/lib/docs.el +++ b/lisp/lib/docs.el @@ -102,7 +102,7 @@ "Create a header link according to SPEC." (let ((icon (and (plist-get spec :icon) (funcall (or (plist-get spec :icon-function) - #'nerd-icons-material) + #'nerd-icons-mdicon) (plist-get spec :icon)))) (label (pcase (plist-get spec :label) ((and (pred functionp) lab) diff --git a/modules/email/mu4e/autoload/email.el b/modules/email/mu4e/autoload/email.el index c6abc6ebc..b740868ac 100644 --- a/modules/email/mu4e/autoload/email.el +++ b/modules/email/mu4e/autoload/email.el @@ -132,7 +132,7 @@ will also be the width of all other printable characters." (setq mu4e-use-fancy-chars t mu4e-headers-draft-mark (cons "D" (+mu4e-normalised-icon "nf-fa-pencil")) mu4e-headers-flagged-mark (cons "F" (+mu4e-normalised-icon "nf-fa-flag")) - mu4e-headers-new-mark (cons "N" (+mu4e-normalised-icon "nf-md-sync" :set "material" :height 0.8 :v-adjust -0.10)) + mu4e-headers-new-mark (cons "N" (+mu4e-normalised-icon "nf-md-sync" :set "mdicon" :height 0.8 :v-adjust -0.10)) mu4e-headers-passed-mark (cons "P" (+mu4e-normalised-icon "nf-fa-arrow_right")) mu4e-headers-replied-mark (cons "R" (+mu4e-normalised-icon "nf-fa-reply")) mu4e-headers-seen-mark (cons "S" "") ;(+mu4e-normalised-icon "eye" :height 0.6 :v-adjust 0.07 :color "dsilver")) From 928e5640c5f7889f4f5b16ec94467c7e6ad78e07 Mon Sep 17 00:00:00 2001 From: Zero King Date: Thu, 14 Sep 2023 20:13:26 +0800 Subject: [PATCH 149/523] feat(lua): enable rainbow-delimiters in fennel-mode Fennel's syntax is based on Lisp. It's easier to see matching parentheses with rainbow delimiters. --- modules/lang/lua/config.el | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/lang/lua/config.el b/modules/lang/lua/config.el index b87b6ad4d..f93a10611 100644 --- a/modules/lang/lua/config.el +++ b/modules/lang/lua/config.el @@ -64,6 +64,7 @@ lua-language-server.") (use-package! fennel-mode :when (modulep! +fennel) :mode "\\.fenneldoc\\'" + :hook (fennel-mode . rainbow-delimiters-mode) :config (set-lookup-handlers! 'fennel-mode :definition #'fennel-find-definition From eec8808f453d551b6b32fbedfb506d4d706c0665 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 14 Sep 2023 15:38:01 +0200 Subject: [PATCH 150/523] bump: :app rss remyhonig/elfeed-org@3242ec051980 -> remyhonig/elfeed-org@7f3ad868f2fa Ref: remyhonig/elfeed-org#87 --- modules/app/rss/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/app/rss/packages.el b/modules/app/rss/packages.el index 9f3377f34..f78955804 100644 --- a/modules/app/rss/packages.el +++ b/modules/app/rss/packages.el @@ -4,4 +4,4 @@ (package! elfeed :pin "55fb162fa27e71b88effa59a83c57842e262b00f") (package! elfeed-goodies :pin "544ef42ead011d960a0ad1c1d34df5d222461a6b") (when (modulep! +org) - (package! elfeed-org :pin "f1c1fd6b1694028ab7f2dd7e9ddbbef12711b353")) + (package! elfeed-org :pin "7f3ad868f2fa3c17492340f7af84f208b9c25635")) From b58dc721aa192ed24eb718a40c54636eb8f89c35 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 14 Sep 2023 16:07:13 +0200 Subject: [PATCH 151/523] fix: lingering autoloads from inactive packages A package's autoloads aren't expunged from Doom's profile init file, even after that package has been disabled. If a package's autoloads has side-effects, this can lead to void references/function errors. One such case is with php-extras, which will try to call `php-extras-company-setup` after company loads from its autoloads, but this function naturally won't be loaded if the package is disabled. This change fixes this, fully expunging orphaned autoloads on `doom sync`. --- lisp/cli/packages.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lisp/cli/packages.el b/lisp/cli/packages.el index 463172cee..74daa9ea7 100644 --- a/lisp/cli/packages.el +++ b/lisp/cli/packages.el @@ -652,6 +652,7 @@ If ELPA-P, include packages installed with package.el (M-x package-install)." (doom-initialize-packages) (doom-packages--barf-if-incomplete) (print! (start "Purging orphaned packages (for the emperor)...")) + (quiet! (straight-prune-build-cache)) (cl-destructuring-bind (&optional builds-to-purge repos-to-purge repos-to-regraft) (let ((rdirs (and (or repos-p regraft-repos-p) @@ -672,8 +673,7 @@ If ELPA-P, include packages installed with package.el (M-x package-install)." nil (list (if (not builds-p) (ignore (print! (item "Skipping builds"))) - (and (/= 0 (doom-packages--purge-builds builds-to-purge)) - (quiet! (straight-prune-build-cache)))) + (/= 0 (doom-packages--purge-builds builds-to-purge))) (if (not elpa-p) (ignore (print! (item "Skipping elpa packages"))) (/= 0 (doom-packages--purge-elpa))) From 0b2e6d707075e90c642808cb01377538a9726c53 Mon Sep 17 00:00:00 2001 From: Ellis Kenyo Date: Thu, 14 Sep 2023 16:44:43 +0100 Subject: [PATCH 152/523] docs(format): clarify how to update macro in private config --- modules/editor/format/README.org | 9 +++++++++ modules/editor/format/autoload/settings.el | 6 +++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/modules/editor/format/README.org b/modules/editor/format/README.org index bb38e23a7..9869d6541 100644 --- a/modules/editor/format/README.org +++ b/modules/editor/format/README.org @@ -68,6 +68,15 @@ provide a simple macro that looks like the below: (set-formatter! 'unique-name '("command" "line" "here") :modes '(name-of-major-mode)) #+end_src +If you're trying to override a formatter that has previously been defined by +Doom, you will need to ensure that the call in your config is contained within +an =after!= form, eg below to override Clojure's with =zprint=: + +#+begin_src emacs-lisp +(after! clojure-mode + (set-formatter! 'zprint '("zprint" "-") :modes '(clojure-mode))) +#+end_src + There are a few bonus symbols that apheleia uses (for example =npx= will be replaced by a correct path to npx) which are all documented in the link above. diff --git a/modules/editor/format/autoload/settings.el b/modules/editor/format/autoload/settings.el index f52a41e12..d7f116bc7 100644 --- a/modules/editor/format/autoload/settings.el +++ b/modules/editor/format/autoload/settings.el @@ -4,7 +4,7 @@ (cl-defun set-formatter! (name args &key modes) "Define (or modify) a formatter named NAME. -Supported keywords: :modes :filter +Supported keywords: :modes NAME is a symbol that identifies this formatter. @@ -20,6 +20,10 @@ nested list. string and ARG is both a predicate and argument for STRING. If ARG is nil, STRING will be omitted from the vector. +If you're trying to override this, ensure that you wrap the call in `after!' and +whichever package sets the initial formatter. See the ':editor format' README +for more. + For more information on how to structure the list to be compatible, see `apheleia--run-formatter-function'. From 3191349182cc1c2d79127773670d7c4c5b32f9ac Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 14 Sep 2023 17:29:41 +0200 Subject: [PATCH 153/523] docs(format): set-formatter!: escape quotes in docstring --- modules/editor/format/autoload/settings.el | 37 +++++++++++----------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/modules/editor/format/autoload/settings.el b/modules/editor/format/autoload/settings.el index d7f116bc7..968338f0d 100644 --- a/modules/editor/format/autoload/settings.el +++ b/modules/editor/format/autoload/settings.el @@ -24,8 +24,8 @@ If you're trying to override this, ensure that you wrap the call in `after!' and whichever package sets the initial formatter. See the ':editor format' README for more. -For more information on how to structure the list to be -compatible, see `apheleia--run-formatter-function'. +For more information on how to structure the list to be compatible, see +`apheleia--run-formatter-function'. MODES is a major mode, a list thereof, or a list of two-element sublists with the structure: (MAJOR-MODE FORM). FORM is evaluated when the buffer is formatted @@ -37,42 +37,41 @@ and its return value serves two purposes: list of shell arguments via the `mode-result' variable. Basic examples: - (set-formatter! 'asmfmt \"asmfmt\" :modes '(asm-mode nasm-mode)) - (set-formatter! 'black \"black -q -\") - (set-formatter! 'html-tidy \"tidy -q -indent\" :modes '(html-mode web-mode)) + (set-formatter! \\='asmfmt \"asmfmt\" :modes \\='(asm-mode nasm-mode)) + (set-formatter! \\='black \"black -q -\") + (set-formatter! \\='html-tidy \"tidy -q -indent\" :modes \\='(html-mode web-mode)) Advanced examples: (set-formatter! - 'clang-format - '(\"clang-format\" + \\='clang-format + \\='(\"clang-format\" (\"-assume-filename=%S\" (or buffer-file-name mode-result \"\"))) :modes - '((c-mode \".c\") + \\='((c-mode \".c\") (c++-mode \".cpp\") (java-mode \".java\") (objc-mode \".m\") (protobuf-mode \".proto\"))) - (set-formatter! 'html-tidy - '(\"tidy\" \"-q\" \"-indent\" - (\"-xml\" (memq major-mode '(nxml-mode xml-mode)))) + (set-formatter! \\='html-tidy + \\='(\"tidy\" \"-q\" \"-indent\" + (\"-xml\" (memq major-mode \\='(nxml-mode xml-mode)))) :modes - '(html-mode + \\='(html-mode (web-mode (and (equal \"none\" web-mode-engine) - (car (member web-mode-content-type '(\"xml\" \"html\"))))))) + (car (member web-mode-content-type \\='(\"xml\" \"html\"))))))) - (set-formatter! 'html-tidy ; overwrite predefined html-tidy formatter - '(\"tidy\" \"-q\" \"-indent\" + (set-formatter! \\='html-tidy ; overwrite predefined html-tidy formatter + \\='(\"tidy\" \"-q\" \"-indent\" \"--tidy-mark\" \"no\" \"--drop-empty-elements\" \"no\" \"--show-body-only\" \"auto\" (\"--indent-spaces\" \"%d\" tab-width) (\"--indent-with-tabs\" \"%s\" (if indent-tabs-mode \"yes\" \"no\")) - (\"-xml\" (memq major-mode '(nxml-mode xml-mode))))) + (\"-xml\" (memq major-mode \\='(nxml-mode xml-mode))))) - (set-formatter! 'elm-format - \"elm-format --yes --stdin\") -" + (set-formatter! \\='elm-format + \"elm-format --yes --stdin\")" (declare (indent defun)) (cl-check-type name symbol) (after! apheleia-core From e47accb77324ffff6e9a72bf820a0f73d2e804f3 Mon Sep 17 00:00:00 2001 From: Ellis Kenyo Date: Thu, 14 Sep 2023 19:29:51 +0100 Subject: [PATCH 154/523] fix(modeline): update icons for +light --- modules/lang/clojure/config.el | 2 +- modules/tools/lsp/+lsp.el | 2 +- modules/ui/modeline/+light.el | 13 +++++++------ 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/modules/lang/clojure/config.el b/modules/lang/clojure/config.el index a552ba2f2..832fa659e 100644 --- a/modules/lang/clojure/config.el +++ b/modules/lang/clojure/config.el @@ -136,7 +136,7 @@ "Update repl icon on modeline with cider information." (setq cider-modeline-icon (concat " " - (+modeline-format-icon 'faicon "terminal" "" face label -0.0575) + (+modeline-format-icon 'faicon "nf-fa-terminal" "" face label -0.0575) " ")) (add-to-list 'global-mode-string '(t (:eval cider-modeline-icon)) diff --git a/modules/tools/lsp/+lsp.el b/modules/tools/lsp/+lsp.el index cfc8a15df..5ae4a417d 100644 --- a/modules/tools/lsp/+lsp.el +++ b/modules/tools/lsp/+lsp.el @@ -134,7 +134,7 @@ server getting expensively restarted when reverting buffers." (label (if workspaces "LSP Connected" "LSP Disconnected"))) (setq lsp-modeline-icon (concat " " - (+modeline-format-icon 'faicon "rocket" "" face label -0.0575) + (+modeline-format-icon 'faicon "nf-fa-rocket" "" face label -0.0575) " ")) (add-to-list 'global-mode-string '(t (:eval lsp-modeline-icon)) diff --git a/modules/ui/modeline/+light.el b/modules/ui/modeline/+light.el index 3d2a1673f..8f96d9bf0 100644 --- a/modules/ui/modeline/+light.el +++ b/modules/ui/modeline/+light.el @@ -115,6 +115,7 @@ Using optionals attributes FACE, HELP-ECHO and VOFFSET." (let ((icon-set-fn (pcase icon-set ('octicon #'nerd-icons-octicon) ('faicon #'nerd-icons-faicon) + ('codicon #'nerd-icons-codicon) ('material #'nerd-icons-mdicon)))) (propertize (concat (funcall icon-set-fn icon @@ -416,7 +417,7 @@ Requires `anzu', also `evil-anzu' if using `evil-mode' for compatibility with (let ((error (or .error 0)) (warning (or .warning 0)) (info (or .info 0))) - (+modeline-format-icon 'material "do_not_disturb_alt" + (+modeline-format-icon 'codicon "nf-cod-error" (number-to-string (+ error warning info)) (cond ((> error 0) 'error) ((> warning 0) 'warning) @@ -425,11 +426,11 @@ Requires `anzu', also `evil-anzu' if using `evil-mode' for compatibility with error warning info)))) - (+modeline-format-icon 'material "check" "" 'success))) - (`running (+modeline-format-icon 'material "access_time" "*" 'mode-line-inactive "Running...")) - (`errored (+modeline-format-icon 'material "sim_card_alert" "!" 'error "Errored!")) - (`interrupted (+modeline-format-icon 'material "pause" "!" 'mode-line-inactive "Interrupted")) - (`suspicious (+modeline-format-icon 'material "priority_high" "!" 'error "Suspicious")))))) + (+modeline-format-icon 'material "nf-md-check" "" 'success))) + (`running (+modeline-format-icon 'faicon "nf-fa-hourglass" "*" 'mode-line-inactive "Running...")) + (`errored (+modeline-format-icon 'material "nf-md-sim_alert" "!" 'error "Errored!")) + (`interrupted (+modeline-format-icon 'material "nf-md-pause" "!" 'mode-line-inactive "Interrupted")) + (`suspicious (+modeline-format-icon 'material "nf-md-priority_high" "!" 'error "Suspicious")))))) From 2e67ad18e926935107b899be61b7b16b03250906 Mon Sep 17 00:00:00 2001 From: Jeetaditya Chatterjee Date: Sat, 5 Aug 2023 23:14:43 +0530 Subject: [PATCH 155/523] feat(emacs-lisp): no doc warnings with flymake --- modules/lang/emacs-lisp/autoload.el | 68 +++++++++++++++++------------ modules/lang/emacs-lisp/config.el | 10 ++--- 2 files changed, 44 insertions(+), 34 deletions(-) diff --git a/modules/lang/emacs-lisp/autoload.el b/modules/lang/emacs-lisp/autoload.el index b2e650320..616fd1676 100644 --- a/modules/lang/emacs-lisp/autoload.el +++ b/modules/lang/emacs-lisp/autoload.el @@ -290,39 +290,49 @@ Essentially, this means in any elisp file that either: This generally applies to your private config (`doom-user-dir') or Doom's source \(`doom-emacs-dir')." :since "3.0.0" - (unless (and (bound-and-true-p flycheck-mode) - (not (+emacs-lisp--in-package-buffer-p))) + (unless (and (or (bound-and-true-p flycheck-mode) + (bound-and-true-p flymake-mode)) + (not (+emacs-lisp--in-package-buffer-p))) (setq +emacs-lisp-non-package-mode nil)) (when (derived-mode-p 'emacs-lisp-mode) (add-hook 'after-save-hook #'+emacs-lisp-non-package-mode nil t)) (if (not +emacs-lisp-non-package-mode) - (when (get 'flycheck-disabled-checkers 'initial-value) - (setq-local flycheck-disabled-checkers (get 'flycheck-disabled-checkers 'initial-value)) - (kill-local-variable 'flycheck-emacs-lisp-check-form)) - (with-memoization (get 'flycheck-disabled-checkers 'initial-value) - flycheck-disabled-checkers) - (setq-local flycheck-emacs-lisp-check-form - (prin1-to-string - `(progn - (setq doom-modules ',doom-modules - doom-disabled-packages ',doom-disabled-packages - byte-compile-warnings ',+emacs-lisp-linter-warnings) - (condition-case e - (progn - (require 'doom) - (require 'doom-cli) - (require 'doom-start)) - (error - (princ - (format "%s:%d:%d:Error:Failed to load Doom: %s\n" - (or ,(ignore-errors - (file-name-nondirectory - (buffer-file-name (buffer-base-buffer)))) - (car command-line-args-left)) - 0 0 (error-message-string e))))) - ,(read (default-toplevel-value 'flycheck-emacs-lisp-check-form)))) - flycheck-disabled-checkers (cons 'emacs-lisp-checkdoc - flycheck-disabled-checkers)))) + (if (modulep! :checkers syntax +flymake) + ;; flymake + (progn + (add-hook 'flymake-diagnostic-functions #'elisp-flymake-checkdoc nil t)) + ;; flycheck + (when (get 'flycheck-disabled-checkers 'initial-value) + (setq-local flycheck-disabled-checkers (get 'flycheck-disabled-checkers 'initial-value)) + (kill-local-variable 'flycheck-emacs-lisp-check-form))) + (if (modulep! :checkers syntax +flymake) + ;; flymake + (remove-hook 'flymake-diagnostic-functions #'elisp-flymake-checkdoc t) + ;; flycheck + (with-memoization (get 'flycheck-disabled-checkers 'initial-value) + flycheck-disabled-checkers) + (setq-local flycheck-emacs-lisp-check-form + (prin1-to-string + `(progn + (setq doom-modules ',doom-modules + doom-disabled-packages ',doom-disabled-packages + byte-compile-warnings ',+emacs-lisp-linter-warnings) + (condition-case e + (progn + (require 'doom) + (require 'doom-cli) + (require 'doom-start)) + (error + (princ + (format "%s:%d:%d:Error:Failed to load Doom: %s\n" + (or ,(ignore-errors + (file-name-nondirectory + (buffer-file-name (buffer-base-buffer)))) + (car command-line-args-left)) + 0 0 (error-message-string e))))) + ,(read (default-toplevel-value 'flycheck-emacs-lisp-check-form)))) + flycheck-disabled-checkers (cons 'emacs-lisp-checkdoc + flycheck-disabled-checkers))))) ;; diff --git a/modules/lang/emacs-lisp/config.el b/modules/lang/emacs-lisp/config.el index 1e140a00e..4cb0e53c6 100644 --- a/modules/lang/emacs-lisp/config.el +++ b/modules/lang/emacs-lisp/config.el @@ -95,11 +95,11 @@ See `+emacs-lisp-non-package-mode' for details.") ;; Ensure straight sees modifications to installed packages #'+emacs-lisp-init-straight-maybe-h) - ;; UX: Flycheck's two emacs-lisp checkers produce a *lot* of false positives - ;; in non-packages (like Emacs configs or elisp scripts), so I disable - ;; `emacs-lisp-checkdoc' and set `byte-compile-warnings' to a subset of the - ;; original in the flycheck instance (see `+emacs-lisp-linter-warnings'). - (add-hook 'flycheck-mode-hook #'+emacs-lisp-non-package-mode) + ;; UX: Both Flycheck's and Flymake's two + ;; emacs-lisp checkers produce a *lot* of false positives in non-packages + ;; (like Emacs configs or elisp scripts), so I disable `checkdoc' (`emacs-lisp-checkdoc', `elisp-flymake-checkdoc') + ;; and set `byte-compile-warnings' to a subset that makes more sense (see `+emacs-lisp-linter-warnings') + (add-hook! '(flycheck-mode-hook flymake-mode-hook) #'+emacs-lisp-non-package-mode) ;; Enhance elisp syntax highlighting, by highlighting Doom-specific ;; constructs, defined symbols, and truncating :pin's in `package!' calls. From e9763514241583be864cbc2caaa6f6dee8c9907e Mon Sep 17 00:00:00 2001 From: Jeetaditya Chatterjee Date: Mon, 7 Aug 2023 23:38:46 +0530 Subject: [PATCH 156/523] feat(emacs-lisp): add reduced-flymake-byte-compile This is a flymake backend that gives a reduced set of byte compiler warnings in accordance too `+emacs-lisp-linter-warnings` --- modules/lang/emacs-lisp/autoload.el | 83 +++++++++++++++++++++++++---- 1 file changed, 74 insertions(+), 9 deletions(-) diff --git a/modules/lang/emacs-lisp/autoload.el b/modules/lang/emacs-lisp/autoload.el index 616fd1676..d7e838ff7 100644 --- a/modules/lang/emacs-lisp/autoload.el +++ b/modules/lang/emacs-lisp/autoload.el @@ -277,9 +277,71 @@ https://emacs.stackexchange.com/questions/10230/how-to-indent-keywords-aligned" file-base))))))) (not (locate-dominating-file default-directory ".doommodule"))))) +(defvar-local +emacs-lisp-reduced-flymake-byte-compile--process nil) + +(defun +emacs-lisp-reduced-flymake-byte-compile (report-fn &rest _args) + "A Flymake backend for warnings from the elisp byte compiler + +This checker reduces the amount of false positives the byte compiler throws off +compared too `elisp-flymake-byte-compile'. The linter warnings that are enabled +are set by `+emacs-lisp-linter-warnings' + +This backend does not need to be added directly +as `+emacs-lisp-non-package-mode' will enable it and disable the other checkers." + ;; if a process already exists. kill it. + (when (and +emacs-lisp-reduced-flymake-byte-compile--process + (process-live-p +emacs-lisp-reduced-flymake-byte-compile--process)) + (kill-process +emacs-lisp-reduced-flymake-byte-compile--process)) + (let ((source (current-buffer)) + (tmp-file (make-temp-file "+emacs-lisp-byte-compile-src")) + (out-buf (generate-new-buffer "+emacs-lisp-byte-compile-out"))) + ;; write the content to a temp file + (save-restriction + (widen) + (write-region nil nil tmp-file nil 'nomessage)) + ;; make the process + (setq +emacs-lisp-reduced-flymake-byte-compile--process + (make-process + :name "+emacs-reduced-flymake" + :noquery t + :connetion-type 'pipe + :buffer out-buf + :command `(,(expand-file-name invocation-name invocation-directory) + "-Q" + "--batch" + ,@(mapcan (fn! (list "-L" %)) elisp-flymake-byte-compile-load-path) + ;; this is what silences the byte compiler + "--eval" ,(prin1-to-string `(setq doom-modules ',doom-modules + doom-disabled-packages ',doom-disabled-packages + byte-compile-warnings ',+emacs-lisp-linter-warnings) +) + "-f" "elisp-flymake--batch-compile-for-flymake" + ,tmp-file) + :stderr "*stderr of +elisp-flymake-byte-compile-out*" + :sentinel + ;; deal with the process when it exits + (lambda (proc _event) + (when (memq (process-status proc) '(exit signal)) + (unwind-protect + (cond + ;; if the buffer is dead or the process is not the same, log the process as old. + ((or (not (buffer-live-p source)) + (not (with-current-buffer source (eq proc +emacs-lisp-reduced-flymake-byte-compile--process)))) + (flymake-log :warning "byte compile process %s is old" proc)) + ;; if the process exited without problem process the buffer + ((zerop (process-exit-status proc)) + (elisp-flymake--byte-compile-done report-fn source out-buf)) + ;; otherwise something else horrid has gone wrong and we panic + (t (funcall report-fn :panic + :explanation + (format "byte compile process %s died" proc)))) + ;; cleanup + (ignore-errors (delete-file tmp-file)) + (kill-buffer out-buf)))))))) + ;;;###autoload (define-minor-mode +emacs-lisp-non-package-mode - "Reduce flycheck verbosity where it is appropriate. + "Reduce flycheck/flymake verbosity where it is appropriate. Essentially, this means in any elisp file that either: - Is not a theme in `custom-theme-load-path', @@ -292,7 +354,7 @@ This generally applies to your private config (`doom-user-dir') or Doom's source :since "3.0.0" (unless (and (or (bound-and-true-p flycheck-mode) (bound-and-true-p flymake-mode)) - (not (+emacs-lisp--in-package-buffer-p))) + (not (+emacs-lisp--in-package-buffer-p))) (setq +emacs-lisp-non-package-mode nil)) (when (derived-mode-p 'emacs-lisp-mode) (add-hook 'after-save-hook #'+emacs-lisp-non-package-mode nil t)) @@ -300,14 +362,17 @@ This generally applies to your private config (`doom-user-dir') or Doom's source (if (modulep! :checkers syntax +flymake) ;; flymake (progn - (add-hook 'flymake-diagnostic-functions #'elisp-flymake-checkdoc nil t)) - ;; flycheck - (when (get 'flycheck-disabled-checkers 'initial-value) - (setq-local flycheck-disabled-checkers (get 'flycheck-disabled-checkers 'initial-value)) - (kill-local-variable 'flycheck-emacs-lisp-check-form))) + (add-hook! 'flymake-diagnostic-functions :local #'elisp-flymake-checkdoc #'elisp-flymake-byte-compile) + (remove-hook 'flymake-diagnostic-functions #'+emacs-lisp-reduced-flymake-byte-compile)) + ;; flycheck + (when (get 'flycheck-disabled-checkers 'initial-value) + (setq-local flycheck-disabled-checkers (get 'flycheck-disabled-checkers 'initial-value)) + (kill-local-variable 'flycheck-emacs-lisp-check-form))) (if (modulep! :checkers syntax +flymake) - ;; flymake - (remove-hook 'flymake-diagnostic-functions #'elisp-flymake-checkdoc t) + ;; flymake + (progn + (remove-hook! 'flymake-diagnostic-functions :local #'elisp-flymake-checkdoc #'elisp-flymake-byte-compile) + (add-hook 'flymake-diagnostic-functions #'+emacs-lisp-reduced-flymake-byte-compile)) ;; flycheck (with-memoization (get 'flycheck-disabled-checkers 'initial-value) flycheck-disabled-checkers) From c37f314f14b71034328193397af2b44136fae276 Mon Sep 17 00:00:00 2001 From: Jeetaditya Chatterjee Date: Sun, 10 Sep 2023 23:32:26 +0100 Subject: [PATCH 157/523] fix(syntax): s/connetion/connection Also rework docstring and s/too/to --- modules/lang/emacs-lisp/autoload.el | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/modules/lang/emacs-lisp/autoload.el b/modules/lang/emacs-lisp/autoload.el index d7e838ff7..91025667d 100644 --- a/modules/lang/emacs-lisp/autoload.el +++ b/modules/lang/emacs-lisp/autoload.el @@ -280,10 +280,10 @@ https://emacs.stackexchange.com/questions/10230/how-to-indent-keywords-aligned" (defvar-local +emacs-lisp-reduced-flymake-byte-compile--process nil) (defun +emacs-lisp-reduced-flymake-byte-compile (report-fn &rest _args) - "A Flymake backend for warnings from the elisp byte compiler + "A Flymake backend for byte compilation in non-package elisp files. This checker reduces the amount of false positives the byte compiler throws off -compared too `elisp-flymake-byte-compile'. The linter warnings that are enabled +compared to `elisp-flymake-byte-compile'. The linter warnings that are enabled are set by `+emacs-lisp-linter-warnings' This backend does not need to be added directly @@ -304,7 +304,7 @@ as `+emacs-lisp-non-package-mode' will enable it and disable the other checkers. (make-process :name "+emacs-reduced-flymake" :noquery t - :connetion-type 'pipe + :connection-type 'pipe :buffer out-buf :command `(,(expand-file-name invocation-name invocation-directory) "-Q" @@ -313,8 +313,7 @@ as `+emacs-lisp-non-package-mode' will enable it and disable the other checkers. ;; this is what silences the byte compiler "--eval" ,(prin1-to-string `(setq doom-modules ',doom-modules doom-disabled-packages ',doom-disabled-packages - byte-compile-warnings ',+emacs-lisp-linter-warnings) -) + byte-compile-warnings ',+emacs-lisp-linter-warnings)) "-f" "elisp-flymake--batch-compile-for-flymake" ,tmp-file) :stderr "*stderr of +elisp-flymake-byte-compile-out*" From b50b2c464004452d348e364865863b2c4fe542d8 Mon Sep 17 00:00:00 2001 From: Jeetaditya Chatterjee Date: Sun, 10 Sep 2023 23:34:05 +0100 Subject: [PATCH 158/523] refactor(syntax): separate out implementations As `+emacs-lisp-non-package-mode` handles both flymake and flycheck, making two internal modes that then `+emacs-lisp-non-package-mode` calls, makes the code cleaner --- modules/lang/emacs-lisp/autoload.el | 83 +++++++++++++++-------------- 1 file changed, 44 insertions(+), 39 deletions(-) diff --git a/modules/lang/emacs-lisp/autoload.el b/modules/lang/emacs-lisp/autoload.el index 91025667d..1dc48759b 100644 --- a/modules/lang/emacs-lisp/autoload.el +++ b/modules/lang/emacs-lisp/autoload.el @@ -338,6 +338,47 @@ as `+emacs-lisp-non-package-mode' will enable it and disable the other checkers. (ignore-errors (delete-file tmp-file)) (kill-buffer out-buf)))))))) +(define-minor-mode +emacs-lisp--flymake-non-package-mode + "" + :since "3.0.0" + (if +emacs-lisp--flymake-non-package-mode + (progn + (remove-hook! 'flymake-diagnostic-functions :local #'elisp-flymake-checkdoc #'elisp-flymake-byte-compile) + (add-hook 'flymake-diagnostic-functions #'+emacs-lisp-reduced-flymake-byte-compile nil t)) + (add-hook! 'flymake-diagnostic-functions :local #'elisp-flymake-checkdoc #'elisp-flymake-byte-compile) + (remove-hook 'flymake-diagnostic-functions #'+emacs-lisp-reduced-flymake-byte-compile t))) + +(define-minor-mode +emacs-lisp--flycheck-non-package-mode + "" + :since "3.0.0" + (if (not +emacs-lisp--flycheck-non-package-mode) + (when (get 'flycheck-disabled-checkers 'initial-value) + (setq-local flycheck-disabled-checkers (get 'flycheck-disabled-checkers 'initial-value)) + (kill-local-variable 'flycheck-emacs-lisp-check-form)) + (with-memoization (get 'flycheck-disabled-checkers 'initial-value) + flycheck-disabled-checkers) + (setq-local flycheck-emacs-lisp-check-form + (prin1-to-string + `(progn + (setq doom-modules ',doom-modules + doom-disabled-packages ',doom-disabled-packages + byte-compile-warnings ',+emacs-lisp-linter-warnings) + (condition-case e + (progn + (require 'doom) + (require 'doom-cli) + (require 'doom-start)) + (error + (princ + (format "%s:%d:%d:Error:Failed to load Doom: %s\n" + (or ,(ignore-errors + (file-name-nondirectory + (buffer-file-name (buffer-base-buffer)))) + (car command-line-args-left)) + 0 0 (error-message-string e))))) + ,(read (default-toplevel-value 'flycheck-emacs-lisp-check-form)))) + flycheck-disabled-checkers (cons 'emacs-lisp-checkdoc + flycheck-disabled-checkers)))) ;;;###autoload (define-minor-mode +emacs-lisp-non-package-mode "Reduce flycheck/flymake verbosity where it is appropriate. @@ -357,46 +398,10 @@ This generally applies to your private config (`doom-user-dir') or Doom's source (setq +emacs-lisp-non-package-mode nil)) (when (derived-mode-p 'emacs-lisp-mode) (add-hook 'after-save-hook #'+emacs-lisp-non-package-mode nil t)) - (if (not +emacs-lisp-non-package-mode) - (if (modulep! :checkers syntax +flymake) - ;; flymake - (progn - (add-hook! 'flymake-diagnostic-functions :local #'elisp-flymake-checkdoc #'elisp-flymake-byte-compile) - (remove-hook 'flymake-diagnostic-functions #'+emacs-lisp-reduced-flymake-byte-compile)) - ;; flycheck - (when (get 'flycheck-disabled-checkers 'initial-value) - (setq-local flycheck-disabled-checkers (get 'flycheck-disabled-checkers 'initial-value)) - (kill-local-variable 'flycheck-emacs-lisp-check-form))) + (let ((toggle (if +emacs-lisp-non-package-mode +1 -1))) (if (modulep! :checkers syntax +flymake) - ;; flymake - (progn - (remove-hook! 'flymake-diagnostic-functions :local #'elisp-flymake-checkdoc #'elisp-flymake-byte-compile) - (add-hook 'flymake-diagnostic-functions #'+emacs-lisp-reduced-flymake-byte-compile)) - ;; flycheck - (with-memoization (get 'flycheck-disabled-checkers 'initial-value) - flycheck-disabled-checkers) - (setq-local flycheck-emacs-lisp-check-form - (prin1-to-string - `(progn - (setq doom-modules ',doom-modules - doom-disabled-packages ',doom-disabled-packages - byte-compile-warnings ',+emacs-lisp-linter-warnings) - (condition-case e - (progn - (require 'doom) - (require 'doom-cli) - (require 'doom-start)) - (error - (princ - (format "%s:%d:%d:Error:Failed to load Doom: %s\n" - (or ,(ignore-errors - (file-name-nondirectory - (buffer-file-name (buffer-base-buffer)))) - (car command-line-args-left)) - 0 0 (error-message-string e))))) - ,(read (default-toplevel-value 'flycheck-emacs-lisp-check-form)))) - flycheck-disabled-checkers (cons 'emacs-lisp-checkdoc - flycheck-disabled-checkers))))) + (+emacs-lisp--flymake-non-package-mode toggle) + (+emacs-lisp--flycheck-non-package-mode toggle)))) ;; From 7920b0d46c8f026b9e018cd966ccf9546f655912 Mon Sep 17 00:00:00 2001 From: Ellis Kenyo Date: Fri, 15 Sep 2023 07:20:11 +0100 Subject: [PATCH 159/523] fix(format): update missing values & set buffer modification This prevents apheleia complaining about the editing buffer being killed. Co-authored-by: Wang Liao --- modules/editor/format/autoload/format.el | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/modules/editor/format/autoload/format.el b/modules/editor/format/autoload/format.el index 6f5ee252b..90929cb22 100644 --- a/modules/editor/format/autoload/format.el +++ b/modules/editor/format/autoload/format.el @@ -8,7 +8,7 @@ (defun +format-region (start end &optional callback) "Format from START to END with `apheleia'." - (when-let* ((command (apheleia--get-formatter-command + (when-let* ((command (apheleia--get-formatters (if current-prefix-arg 'prompt 'interactive))) @@ -23,7 +23,7 @@ ;; Ensure this temp buffer seems as much like the origin buffer as ;; possible, in case the formatter is an elisp function, like `gofmt'. (cl-loop for (var . val) - in (cl-remove-if-not #'listp (buffer-local-variables origin-buffer)) + in (cl-remove-if-not #'listp (buffer-local-variables cur-buffer)) ;; Making enable-multibyte-characters buffer-local causes an ;; error. unless (eq var 'enable-multibyte-characters) @@ -45,7 +45,8 @@ ;; restore indentation without affecting new ;; indentation (indent-rigidly (point-min) (point-max) - (max 0 (- indent (+format--current-indentation)))))) + (max 0 (- indent (+format--current-indentation))))) + (set-buffer-modified-p nil)) (with-current-buffer cur-buffer (delete-region start end) (insert-buffer-substring-no-properties formatted-buffer) From e44508f67c205ace4c74aa635b57752884ddc29d Mon Sep 17 00:00:00 2001 From: Ellis Kenyo Date: Fri, 15 Sep 2023 16:18:27 +0100 Subject: [PATCH 160/523] docs(format): improve note about regional formatting --- modules/editor/format/README.org | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/editor/format/README.org b/modules/editor/format/README.org index 9869d6541..47a69af82 100644 --- a/modules/editor/format/README.org +++ b/modules/editor/format/README.org @@ -35,6 +35,10 @@ be formatted and returned to the buffer using As of writing this, apheleia doesn't /yet/ support regions or similar kinds of buffers, so there are a couple of hacks to attempt to rectify this. +For the most part, things should work as expected. However, because the +formatting occurs on an isolated version of the buffer; lisp/scheme or similarly +indentation-based languages may produce poor results. + ** TODO Changelog # This section will be machine generated. Don't edit it by hand. /This module does not have a changelog yet./ From 57965f18a5f301ff4319062fad8e78e67928563e Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 15 Sep 2023 21:19:06 +0200 Subject: [PATCH 161/523] fix(treemacs): replace all-the-icons with nerd-icons Ref: #7411 Close: #7428 Ref: https://discourse.doomemacs.org/t/4147 --- modules/ui/doom/config.el | 4 +--- modules/ui/treemacs/config.el | 5 +++++ modules/ui/treemacs/packages.el | 1 + 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/modules/ui/doom/config.el b/modules/ui/doom/config.el index 0e4d50c92..c39c1bd5d 100644 --- a/modules/ui/doom/config.el +++ b/modules/ui/doom/config.el @@ -14,9 +14,7 @@ (add-hook 'doom-load-theme-hook #'doom-themes-neotree-config) (setq doom-themes-neotree-enable-variable-pitch t doom-themes-neotree-file-icons 'simple - doom-themes-neotree-line-spacing 2)) - (when (modulep! :ui treemacs) - (add-hook 'doom-load-theme-hook #'doom-themes-treemacs-config))) + doom-themes-neotree-line-spacing 2))) (use-package! solaire-mode diff --git a/modules/ui/treemacs/config.el b/modules/ui/treemacs/config.el index a8d7a4d65..0b8ab61ce 100644 --- a/modules/ui/treemacs/config.el +++ b/modules/ui/treemacs/config.el @@ -42,6 +42,11 @@ This must be set before `treemacs' has loaded.") 0)))) +(use-package! treemacs-nerd-icons + :after treemacs + :config (treemacs-load-theme "nerd-icons")) + + (use-package! treemacs-evil :when (modulep! :editor evil +everywhere) :defer t diff --git a/modules/ui/treemacs/packages.el b/modules/ui/treemacs/packages.el index 8c7f1740c..6b0d5f20d 100644 --- a/modules/ui/treemacs/packages.el +++ b/modules/ui/treemacs/packages.el @@ -2,6 +2,7 @@ ;;; ui/treemacs/packages.el (package! treemacs :pin "fe471314f198f9aff268637a766a6ade0a5b5d96") +(package! treemacs-nerd-icons :pin "9876cb478145a0ec4e36f64ff6583f3de7126216") ;; These packages have no :pin because they're in the same repo (when (modulep! :editor evil +everywhere) (package! treemacs-evil)) From aab52159517476506b82d78cd13f7930ebd59c7b Mon Sep 17 00:00:00 2001 From: LemonBreezes Date: Fri, 15 Sep 2023 21:08:37 -0500 Subject: [PATCH 162/523] fix(format): use +vc-gutter-update-h instead +vc-gutter-init-maybe-h is not defined when using +diff-hl so instead let's use +vc-gutter-update-h to refresh the VC gutter. --- modules/editor/format/config.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/editor/format/config.el b/modules/editor/format/config.el index f9c63db1f..eca7f38b0 100644 --- a/modules/editor/format/config.el +++ b/modules/editor/format/config.el @@ -68,4 +68,4 @@ This is controlled by `+format-on-save-disabled-modes'." (defun +format--refresh-git-gutter-h () (when (fboundp '+vc-gutter-update-h) - (+vc-gutter-init-maybe-h)))) + (+vc-gutter-update-h)))) From 34f583d3960ee48f0df1fd1772894e26fd6bd8eb Mon Sep 17 00:00:00 2001 From: Patrick Norton Date: Fri, 15 Sep 2023 19:32:19 -0700 Subject: [PATCH 163/523] fix(ocaml): Prevent clobbering +format-with globally Previously, loading the `ocaml` module and opening a file in Tuareg mode would result in every buffer having its formatter set to `ocp-indent`. This now restricts the formatter override to the current buffer. --- modules/lang/ocaml/config.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/lang/ocaml/config.el b/modules/lang/ocaml/config.el index cb5cce429..4ab8956ca 100644 --- a/modules/lang/ocaml/config.el +++ b/modules/lang/ocaml/config.el @@ -109,7 +109,7 @@ :config ;; TODO Fix region-based formatting support (defun +ocaml-init-ocamlformat-h () - (setq +format-with 'ocp-indent) + (setq-local +format-with 'ocp-indent) (when (and (executable-find "ocamlformat") (locate-dominating-file default-directory ".ocamlformat")) (when buffer-file-name @@ -118,7 +118,7 @@ (setq-local ocamlformat-file-kind 'implementation)) ((equal ext ".eliomi") (setq-local ocamlformat-file-kind 'interface))))) - (setq +format-with 'ocamlformat)))) + (setq-local +format-with 'ocamlformat)))) ;; Tree sitter (eval-when! (modulep! +tree-sitter) From 8e1f5509ead5e90ecb9a9ea7a15207360f3d1e7e Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 16 Sep 2023 05:26:32 +0200 Subject: [PATCH 164/523] fix(undo): add emacs version check for vundo --- modules/emacs/undo/config.el | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/emacs/undo/config.el b/modules/emacs/undo/config.el index dc9edbe95..bfc9e46d5 100644 --- a/modules/emacs/undo/config.el +++ b/modules/emacs/undo/config.el @@ -50,6 +50,7 @@ (use-package! vundo :unless (modulep! +tree) + :when (> emacs-major-version 27) :defer t :config (setq vundo-glyph-alist vundo-unicode-symbols From 3627b82fd33663ff0e9b6252e2836fd33cc889fd Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 16 Sep 2023 15:32:54 +0200 Subject: [PATCH 165/523] docs: revise and fix nerd-icons doctor check Also fixes an issue where errors weren't counted, so the explanation would never appear. Fix: #7431 --- lisp/cli/doctor.el | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lisp/cli/doctor.el b/lisp/cli/doctor.el index d8fd50991..5b4ecd5dc 100644 --- a/lisp/cli/doctor.el +++ b/lisp/cli/doctor.el @@ -260,12 +260,13 @@ in." (dolist (font nerd-icons-font-names) (if (save-excursion (re-search-backward font nil t)) (success! "Found font %s" font) - (print! (warn "Warning: couldn't find %S font") font))) + (print! (warn "%S font is not installed on your system") font) + (cl-incf errors))) (when (> errors 0) - (explain! "Some nerd-icons fonts were missing.\n\n" - "You can install them by running `M-x nerd-icons-install-fonts' within Emacs.\n" - "This could also mean you've installed them in non-standard locations, in which " - "case feel free to ignore this warning."))))))))) + (explain! "Some needed fonts are not properly installed on your system. To download and " + "install them, run `M-x nerd-icons-install-fonts' from within Doom Emacs. " + "However, on Windows this command will only download them; the fonts must " + "be installed manually afterwards."))))))))) (print! (start "Checking for stale elc files in your DOOMDIR...")) (when (file-directory-p doom-user-dir) From 8340141e6934167dc69b24cc27f5309ac4837866 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 16 Sep 2023 16:14:41 +0200 Subject: [PATCH 166/523] fix(eshell): pcomplete after quotes in emacs <=28 Fixes an upstream issue in pcomplete where completion after quotes fails with the following message: Completion function pcomplete-completions-at-point uses a deprecated calling convention This issue is fixed in 29+, but I backport this fix for 27-28 users (credit for the fix goes minad/cape, which is where I adapted this fix from). Fix: #3817 Co-authored-by: minad --- modules/term/eshell/config.el | 46 ++++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/modules/term/eshell/config.el b/modules/term/eshell/config.el index 4b629dcd6..91db53186 100644 --- a/modules/term/eshell/config.el +++ b/modules/term/eshell/config.el @@ -120,7 +120,51 @@ You should use `set-eshell-alias!' to change this.") (setq +eshell--default-aliases eshell-command-aliases-list eshell-command-aliases-list (append eshell-command-aliases-list - +eshell-aliases)))) + +eshell-aliases))) + + ;; HACK: Fixes #3817, where eshell completion after quotes is broken on Emacs + ;; 28 and older. + ;; CREDIT: Extracted from `cape''s cape-wrap-silent and cape-wrap-purify. + ;; REVIEW: Remove when Doom drops 28 support. + (when (< emacs-major-version 29) + (defadvice! +eshell--silent-a (capf) + "Call CAPF and silence it (no messages, no errors). +This function can be used as an advice around an existing Capf." + :around #'pcomplete-completions-at-point + (letf! ((defmacro silent (&rest body) `(quiet! (ignore-errors ,@body))) + (defmacro wrapped-table (wrap body) + `(lambda (str pred action) + (,@body + (let ((result (complete-with-action action table str pred))) + (when + (and (eq action 'completion--unquote) + (functionp (cadr result))) + (cl-callf ,wrap (cadr result))) + result)))) + (defun* silent-table (table) (wrapped-table silent-table (silent)))) + (pcase (silent (funcall capf)) + (`(,beg ,end ,table . ,plist) + `(,beg ,end ,(silent-table table) ,@plist))))) + + (defadvice! +eshell--purify-a (capf) + "Call CAPF and ensure that it does not illegally modify the buffer. This +function can be used as an advice around an existing Capf. It has been +introduced mainly to fix the broken `pcomplete-completions-at-point' function in +Emacs versions < 29." + ;; bug#50470: Fix Capfs which illegally modify the buffer or which + ;; illegally call `completion-in-region'. The workaround here was proposed + ;; by @jakanakaevangeli and is used in his capf-autosuggest package. + :around #'pcomplete-completions-at-point + (catch 'illegal-completion-in-region + (condition-case nil + (let ((buffer-read-only t) + (inhibit-read-only nil) + (completion-in-region-function + (lambda (beg end coll pred) + (throw 'illegal-completion-in-region + (list beg end coll :predicate pred))))) + (funcall capf)) + (buffer-read-only nil)))))) (after! esh-mode From ae8c5cfddee1142bf3564db8604041294ee4721a Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 16 Sep 2023 17:01:09 +0200 Subject: [PATCH 167/523] fix(org): org-roam-node-display-template: strip :box from org-tag The :box causes tremendous slowdown when displayed in the minibuffer. Fix: #7432 --- modules/lang/org/contrib/roam2.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/lang/org/contrib/roam2.el b/modules/lang/org/contrib/roam2.el index 2aee84126..4463a3d46 100644 --- a/modules/lang/org/contrib/roam2.el +++ b/modules/lang/org/contrib/roam2.el @@ -78,7 +78,7 @@ In case of failure, fail gracefully." org-roam-node-display-template (format "${doom-hierarchy:*} %s %s" (propertize "${doom-type:12}" 'face 'font-lock-keyword-face) - (propertize "${doom-tags:42}" 'face 'org-tag)) + (propertize "${doom-tags:42}" 'face '(:inherit org-tag :box nil))) org-roam-completion-everywhere t org-roam-db-gc-threshold most-positive-fixnum ;; Reverse the default to favor faster searchers over slower ones. From 88bb0453887517f144a80fbf60f399176c613d8d Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 16 Sep 2023 20:19:11 +0200 Subject: [PATCH 168/523] docs(*): replace all-the-icons with nerd-icons Also colorizes the leading icon in notices. --- docs/appendix.org | 2 +- docs/examples.org | 6 ++++ docs/faq.org | 18 ++++++---- lisp/lib/docs.el | 36 +++++++++++++------ modules/app/calendar/README.org | 6 ++-- modules/app/emms/README.org | 6 ++-- modules/app/everywhere/README.org | 2 +- modules/app/irc/README.org | 8 ++--- modules/app/rss/README.org | 6 ++-- modules/app/twitter/README.org | 6 ++-- modules/checkers/grammar/README.org | 8 ++--- modules/checkers/spell/README.org | 8 ++--- modules/checkers/syntax/README.org | 6 ++-- modules/completion/company/README.org | 6 ++-- modules/completion/helm/README.org | 6 ++-- modules/completion/ido/README.org | 6 ++-- modules/completion/ivy/README.org | 6 ++-- modules/completion/vertico/README.org | 6 ++-- modules/config/default/README.org | 6 ++-- modules/config/literate/README.org | 8 ++--- modules/editor/evil/README.org | 8 ++--- modules/editor/file-templates/README.org | 8 ++--- .../templates/org-mode/__doom-readme | 20 +++++------ modules/editor/fold/README.org | 8 ++--- modules/editor/format/README.org | 2 +- modules/editor/god/README.org | 8 ++--- modules/editor/lispy/README.org | 6 ++-- modules/editor/multiple-cursors/README.org | 6 ++-- modules/editor/objed/README.org | 8 ++--- modules/editor/parinfer/README.org | 6 ++-- modules/editor/rotate-text/README.org | 6 ++-- modules/editor/snippets/README.org | 8 ++--- modules/editor/word-wrap/README.org | 6 ++-- modules/emacs/dired/README.org | 8 ++--- modules/emacs/electric/README.org | 8 ++--- modules/emacs/ibuffer/README.org | 8 ++--- modules/emacs/undo/README.org | 6 ++-- modules/emacs/vc/README.org | 6 ++-- modules/email/mu4e/README.org | 8 ++--- modules/email/notmuch/README.org | 8 ++--- modules/email/wanderlust/README.org | 10 +++--- modules/input/bidi/README.org | 6 ++-- modules/input/chinese/README.org | 8 ++--- modules/input/japanese/README.org | 6 ++-- modules/input/layout/README.org | 8 ++--- modules/lang/agda/README.org | 6 ++-- modules/lang/beancount/README.org | 6 ++-- modules/lang/cc/README.org | 6 ++-- modules/lang/clojure/README.org | 4 +-- modules/lang/common-lisp/README.org | 6 ++-- modules/lang/coq/README.org | 4 +-- modules/lang/crystal/README.org | 6 ++-- modules/lang/csharp/README.org | 6 ++-- modules/lang/dart/README.org | 6 ++-- modules/lang/data/README.org | 6 ++-- modules/lang/dhall/README.org | 6 ++-- modules/lang/elixir/README.org | 6 ++-- modules/lang/elm/README.org | 8 ++--- modules/lang/emacs-lisp/README.org | 6 ++-- modules/lang/erlang/README.org | 6 ++-- modules/lang/ess/README.org | 6 ++-- modules/lang/factor/README.org | 6 ++-- modules/lang/faust/README.org | 6 ++-- modules/lang/fortran/README.org | 8 ++--- modules/lang/fsharp/README.org | 6 ++-- modules/lang/fstar/README.org | 6 ++-- modules/lang/gdscript/README.org | 6 ++-- modules/lang/go/README.org | 6 ++-- modules/lang/graphql/README.org | 2 +- modules/lang/haskell/README.org | 6 ++-- modules/lang/hy/README.org | 6 ++-- modules/lang/idris/README.org | 8 ++--- modules/lang/java/README.org | 6 ++-- modules/lang/javascript/README.org | 8 ++--- modules/lang/json/README.org | 6 ++-- modules/lang/julia/README.org | 6 ++-- modules/lang/kotlin/README.org | 6 ++-- modules/lang/latex/README.org | 10 +++--- modules/lang/lean/README.org | 10 +++--- modules/lang/ledger/README.org | 6 ++-- modules/lang/lua/README.org | 6 ++-- modules/lang/markdown/README.org | 6 ++-- modules/lang/nim/README.org | 6 ++-- modules/lang/nix/README.org | 6 ++-- modules/lang/ocaml/README.org | 6 ++-- modules/lang/org/README.org | 6 ++-- modules/lang/php/README.org | 8 ++--- modules/lang/plantuml/README.org | 6 ++-- modules/lang/purescript/README.org | 6 ++-- modules/lang/python/README.org | 6 ++-- modules/lang/qt/README.org | 6 ++-- modules/lang/racket/README.org | 6 ++-- modules/lang/raku/README.org | 6 ++-- modules/lang/rest/README.org | 6 ++-- modules/lang/rst/README.org | 6 ++-- modules/lang/ruby/README.org | 6 ++-- modules/lang/rust/README.org | 8 ++--- modules/lang/scala/README.org | 6 ++-- modules/lang/scheme/README.org | 6 ++-- modules/lang/sh/README.org | 6 ++-- modules/lang/sml/README.org | 6 ++-- modules/lang/solidity/README.org | 6 ++-- modules/lang/swift/README.org | 8 ++--- modules/lang/terra/README.org | 8 ++--- modules/lang/web/README.org | 10 +++--- modules/lang/yaml/README.org | 6 ++-- modules/lang/zig/README.org | 6 ++-- modules/os/macos/README.org | 6 ++-- modules/os/tty/README.org | 6 ++-- modules/term/eshell/README.org | 6 ++-- modules/term/shell/README.org | 6 ++-- modules/term/term/README.org | 6 ++-- modules/term/vterm/README.org | 8 ++--- modules/tools/ansible/README.org | 6 ++-- modules/tools/biblio/README.org | 2 +- modules/tools/debugger/README.org | 8 ++--- modules/tools/direnv/README.org | 8 ++--- modules/tools/docker/README.org | 6 ++-- modules/tools/editorconfig/README.org | 4 +-- modules/tools/ein/README.org | 8 ++--- modules/tools/eval/README.org | 6 ++-- modules/tools/gist/README.org | 8 ++--- modules/tools/lookup/README.org | 4 +-- modules/tools/lsp/README.org | 8 ++--- modules/tools/magit/README.org | 6 ++-- modules/tools/make/README.org | 6 ++-- modules/tools/pass/README.org | 6 ++-- modules/tools/pdf/README.org | 8 ++--- modules/tools/prodigy/README.org | 6 ++-- modules/tools/rgb/README.org | 4 +-- modules/tools/taskrunner/README.org | 8 ++--- modules/tools/terraform/README.org | 4 +-- modules/tools/tmux/README.org | 6 ++-- modules/tools/tree-sitter/README.org | 10 +++--- modules/tools/upload/README.org | 8 ++--- modules/ui/deft/README.org | 6 ++-- modules/ui/doom-dashboard/README.org | 8 ++--- modules/ui/doom-quit/README.org | 2 +- modules/ui/doom/README.org | 6 ++-- modules/ui/emoji/README.org | 6 ++-- modules/ui/hl-todo/README.org | 6 ++-- modules/ui/hydra/README.org | 8 ++--- modules/ui/indent-guides/README.org | 6 ++-- modules/ui/ligatures/README.org | 4 +-- modules/ui/minimap/README.org | 6 ++-- modules/ui/modeline/README.org | 6 ++-- modules/ui/nav-flash/README.org | 4 +-- modules/ui/neotree/README.org | 8 ++--- modules/ui/ophints/README.org | 6 ++-- modules/ui/popup/README.org | 8 ++--- modules/ui/tabs/README.org | 6 ++-- modules/ui/treemacs/README.org | 8 ++--- modules/ui/unicode/README.org | 6 ++-- modules/ui/vc-gutter/README.org | 6 ++-- modules/ui/vi-tilde-fringe/README.org | 2 +- modules/ui/window-select/README.org | 6 ++-- modules/ui/workspaces/README.org | 8 ++--- modules/ui/zen/README.org | 4 +-- 158 files changed, 542 insertions(+), 516 deletions(-) diff --git a/docs/appendix.org b/docs/appendix.org index e991d3d2a..39be372ab 100644 --- a/docs/appendix.org +++ b/docs/appendix.org @@ -173,7 +173,7 @@ behaviour for known commands. #+begin_quote - 📌 Doom users with evil enabled will find the universal argument on [[kbd:][SPC u]] + 󰐃 Doom users with evil enabled will find the universal argument on [[kbd:][SPC u]] instead than [[kbd:][C-u]]. #+end_quote diff --git a/docs/examples.org b/docs/examples.org index 2388d2cb4..9b1107f43 100644 --- a/docs/examples.org +++ b/docs/examples.org @@ -5,6 +5,12 @@ #+subtitle: Samples of Emacs/Doom dotfiles, concepts, and sub-projects #+property: header-args:elisp :results pp +#+begin_quote + 󰐃 Our documentation was designed to be read in Doom Emacs ([[kbd:][M-x doom/help]]) or + online at https://docs.doomemacs.org. Avoid reading it elsewhere (like + Github), where it will be rendered incorrectly. +#+end_quote + * Introduction Examples speak louder than technical explanations, so this file exists to house examples of Doom's (and Emacs') concepts, libraries, dotfiles, and more, for diff --git a/docs/faq.org b/docs/faq.org index 57ca83d8f..db7bed816 100644 --- a/docs/faq.org +++ b/docs/faq.org @@ -5,6 +5,12 @@ #+subtitle: Answers to common issues and questions #+startup: nonum show2levels* +#+begin_quote + 󰐃 Our documentation was designed to be read in Doom Emacs ([[kbd:][M-x doom/help]]) or + online at https://docs.doomemacs.org. Avoid reading it elsewhere (like + Github) where it will be rendered incorrectly. +#+end_quote + * General :PROPERTIES: :ID: 3c17177d-8ba9-4d1a-a279-b6dea21c8a9a @@ -266,7 +272,7 @@ For example: #+end_src #+begin_quote - 🚧 If you or Emacs can't find your font, use ~M-x describe-font~ to look them + 󰐃 If you or Emacs can't find your font, use ~M-x describe-font~ to look them up, or run ~$ fc-list~ to see all the available fonts on your system. *Font issues are /rarely/ Doom issues!* #+end_quote @@ -618,7 +624,7 @@ keybinds to work: #+end_src #+begin_quote - 📌 I use [C-left] because it is easier to type than "", but they are + 󰐃 I use [C-left] because it is easier to type than "", but they are equivalent; two different ways to refer to the same key. #+end_quote ** Recursive load error on startup @@ -638,7 +644,7 @@ Then these are the three most common explanations: - *GNU* =tar= and/or =gzip= are not installed on your system. #+begin_quote - 🚧 *Warning macOS and *BSD distro users:* you likely have BSD variants of +  *Warning macOS and *BSD distro users:* you likely have BSD variants of =tar= and =gzip= installed by default. Emacs requires the GNU variants! #+end_quote @@ -833,13 +839,13 @@ There's more about quoting [[https://emacsdocs.org/docs/elisp/Quoting][in the Em ** TODO How does Doom Emacs start up so quickly? #+begin_quote - 🔨 *This post is a work in progress!* However, there's a post on our Discourse + 󱌣 *This post is a work in progress!* However, there's a post on our Discourse that outlines [[https://discourse.doomemacs.org/t/how-does-doom-start-up-so-quickly/163/1][some of our older techniques]]. #+end_quote ** TODO How does Doom Emacs improve runtime performance? #+begin_quote - 🔨 *This post is a work in progress!* + 󱌣 *This post is a work in progress!* #+end_quote ** Why does Doom not use dash, f, s, or similar libraries? @@ -911,7 +917,7 @@ you, a combination of [[kbd:][o]] (swaps your cursor between the two ends of the and motion keys can adjust the ends of your selection. #+begin_quote - 📌 There are also text objects for xml tags ([[kbd:][x]]), C-style function arguments + 󰐃 There are also text objects for xml tags ([[kbd:][x]]), C-style function arguments ([[kbd:][a]]), angle brackets, and single/double quotes. #+end_quote diff --git a/lisp/lib/docs.el b/lisp/lib/docs.el index 72c8920e0..9f78af04a 100644 --- a/lisp/lib/docs.el +++ b/lisp/lib/docs.el @@ -19,24 +19,24 @@ (defvar doom-docs-header-specs '(("/docs/index\\.org$" (:label "FAQ" - :icon "question_answer" + :icon "nf-md-message_question_outline" :link "doom-faq:" :help-echo "Open the FAQ document")) (("/docs/[^/]+\\.org$" "/modules/README\\.org$") (:label "Back to index" - :icon "arrow_back" + :icon "nf-md-arrow_left" :link "doom-index" :help-echo "Navigate to the root index")) ("/modules/[^/]+/README\\.org$" (:label "Back to module index" - :icon "arrow_back" + :icon "nf-md-arrow_left" :link "doom-module-index:")) ("/modules/[^/]+/[^/]+/README\\.org$" (:label "Back to module index" - :icon "arrow_back" + :icon "nf-md-arrow_left" :link "doom-module-index:") (:label "History" - :icon "history" + :icon "nf-md-history" :icon-face font-lock-variable-name-face :link (lambda () (cl-destructuring-bind (category . module) (doom-module-from-path (buffer-file-name)) @@ -44,7 +44,7 @@ :help-echo "View the module history" :align right) (:label "Issues" - :icon "error_outline" + :icon "nf-md-flag" :icon-face error :link (lambda () (cl-destructuring-bind (category . module) (doom-module-from-path (buffer-file-name)) @@ -52,12 +52,12 @@ :align right)) (t (:label "Suggest edits" - :icon "edit" + :icon "nf-md-account_edit" :icon-face warning :link "doom-suggest-edit" :align right) (:label "Help" - :icon "help_outline" + :icon "nf-md-timeline_help_outline" :icon-face font-lock-function-name-face :link (lambda () (let ((title (cadar (org-collect-keywords '("TITLE"))))) @@ -101,9 +101,10 @@ (defun doom-docs--make-header-link (spec) "Create a header link according to SPEC." (let ((icon (and (plist-get spec :icon) - (funcall (or (plist-get spec :icon-function) - #'nerd-icons-mdicon) - (plist-get spec :icon)))) + (with-demoted-errors "DOCS ERROR: %s" + (funcall (or (plist-get spec :icon-function) + #'nerd-icons-mdicon) + (plist-get spec :icon))))) (label (pcase (plist-get spec :label) ((and (pred functionp) lab) (funcall lab)) @@ -472,6 +473,18 @@ This primes `org-mode' for reading." (org-id-add-location id fname) id)))) +(defconst doom-docs-org-font-lock-keywords + '(("^\\( *\\)#\\+begin_quote\n\\1 \\([󰝗󱌣󰐃󰔓󰟶󰥔]\\) " + 2 (pcase (match-string 2) + ("󰝗" 'font-lock-comment-face) + ("󱌣" 'font-lock-comment-face) + ("󰐃" 'error) + ("󰔓" 'success) + ("󰟶" 'font-lock-keyword-face) + ("󰥔" 'font-lock-constant-face) + ("" 'warning)))) + "Extra font-lock keywords for Doom documentation.") + ;;;###autoload (define-derived-mode doom-docs-org-mode org-mode "Doom Docs" "A derivative of `org-mode' for Doom's documentation files. @@ -479,6 +492,7 @@ This primes `org-mode' for reading." Keeps track of its own IDs in `doom-docs-dir' and toggles `doom-docs-mode' when `read-only-mode' is activated." :after-hook (visual-line-mode -1) + (font-lock-add-keywords nil doom-docs-org-font-lock-keywords) (let ((gc-cons-threshold most-positive-fixnum) (gc-cons-percentage 1.0)) (require 'org-id) diff --git a/modules/app/calendar/README.org b/modules/app/calendar/README.org index 4a5c9bf12..9c5913a12 100644 --- a/modules/app/calendar/README.org +++ b/modules/app/calendar/README.org @@ -34,12 +34,12 @@ This module requires: * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Changing calendar sources @@ -74,5 +74,5 @@ to link your calendar with Google calendars. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/app/emms/README.org b/modules/app/emms/README.org index 684fb126e..6db1aa0cb 100644 --- a/modules/app/emms/README.org +++ b/modules/app/emms/README.org @@ -34,7 +34,7 @@ These should be available through your OS package manager. * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Keybinds @@ -56,7 +56,7 @@ These should be available through your OS package manager. * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -70,5 +70,5 @@ Try [[kbd:][M-x +emms/mpd-restart-music-daemon]] then restart emacs. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/app/everywhere/README.org b/modules/app/everywhere/README.org index f47d40691..89bb02e8e 100644 --- a/modules/app/everywhere/README.org +++ b/modules/app/everywhere/README.org @@ -68,5 +68,5 @@ Most other behavior is implemented as hooks on ~emacs-everywhere-init-hooks~. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/app/irc/README.org b/modules/app/irc/README.org index d2f519212..e25d529c0 100644 --- a/modules/app/irc/README.org +++ b/modules/app/irc/README.org @@ -52,7 +52,7 @@ environment.systemPackages = [ pkgs.gnutls ]; * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote To connect to IRC use ~M-x =irc~. @@ -70,7 +70,7 @@ When in a circe buffer these keybindings will be available: * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote Use ~set-irc-server! SERVER PLIST~ to configure IRC servers. Its second argument @@ -92,7 +92,7 @@ here are ways to avoid that: ** TODO Pass: the unix password manager #+begin_quote - 🔨 /This section is outdated and needs to be rewritten./ [[doom-contrib-module:][Rewrite it?]] + 󱌣 /This section is outdated and needs to be rewritten./ [[doom-contrib-module:][Rewrite it?]] #+end_quote [[https://www.passwordstore.org/][Pass]] is my tool of choice. I use it to manage my passwords. If you activate the @@ -169,5 +169,5 @@ username: myusername * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/app/rss/README.org b/modules/app/rss/README.org index 3c4725bfb..cd05ed240 100644 --- a/modules/app/rss/README.org +++ b/modules/app/rss/README.org @@ -39,7 +39,7 @@ Read RSS feeds in the comfort of Emacs. * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote - As there isn't currently binding for ~elfeed-update~ you can run it with ~M-x @@ -47,7 +47,7 @@ Read RSS feeds in the comfort of Emacs. * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Without +org @@ -128,5 +128,5 @@ Hook ~elfeed-update~ to ~elfeed-search-mode-hook~: * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/app/twitter/README.org b/modules/app/twitter/README.org index b7023cf81..970e2da09 100644 --- a/modules/app/twitter/README.org +++ b/modules/app/twitter/README.org @@ -48,12 +48,12 @@ This module requires: * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Commands & Keybindings @@ -96,6 +96,6 @@ key for evil users. To work around this issue you may use [[kbd:][M-SPC]] instea * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/checkers/grammar/README.org b/modules/checkers/grammar/README.org index 244d2e2d2..064b4fbe9 100644 --- a/modules/checkers/grammar/README.org +++ b/modules/checkers/grammar/README.org @@ -41,7 +41,7 @@ will need to set ~langtool-language-tool-jar~ to its location. * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Language Tool @@ -49,7 +49,7 @@ will need to set ~langtool-language-tool-jar~ to its location. stylistic issues in your writing. This requires Java 1.8+. #+begin_quote - 🚧 This requires Java 1.8+ +  This requires Java 1.8+ #+end_quote *** Commands @@ -61,7 +61,7 @@ This minor mode highlights weasel words, duplication and passive voice. * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -72,5 +72,5 @@ This minor mode highlights weasel words, duplication and passive voice. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/checkers/spell/README.org b/modules/checkers/spell/README.org index 5f0a36975..3540dfc7e 100644 --- a/modules/checkers/spell/README.org +++ b/modules/checkers/spell/README.org @@ -58,7 +58,7 @@ your system and in your =$PATH=. They also need dictionaries for your language(s). #+begin_quote - 🚧 If you *are not* using [[doom-module:+flyspell]], you will need =aspell= (and a dictionary) +  If you *are not* using [[doom-module:+flyspell]], you will need =aspell= (and a dictionary) installed whether or not you have [[doom-module:+hunspell]] or [[doom-module:+enchant]] enabled. This is because [[doom-package:spell-fu]] does not support generating the word list with anything other than =aspell= yet. @@ -108,7 +108,7 @@ language(s). * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote When using [[doom-module:+everywhere]], spell checking is performed for as many major modes as @@ -117,7 +117,7 @@ major modes. * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote Dictionary is set by ~ispell-dictionary~ variable. Can be changed locally with @@ -231,5 +231,5 @@ After the file is created, restart emacs and adding words should work. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/checkers/syntax/README.org b/modules/checkers/syntax/README.org index 072c1e741..5aa7ac8d8 100644 --- a/modules/checkers/syntax/README.org +++ b/modules/checkers/syntax/README.org @@ -40,7 +40,7 @@ find out if you're missing any dependencies. * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote Most of flycheck's features are under [[kbd:][C-c !]], regardless of whether evil mode is @@ -67,7 +67,7 @@ Evil Specific: * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -81,5 +81,5 @@ Evil Specific: * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/completion/company/README.org b/modules/completion/company/README.org index 0e0fe1e82..922953aec 100644 --- a/modules/completion/company/README.org +++ b/modules/completion/company/README.org @@ -44,7 +44,7 @@ find out if you're missing any dependencies. * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Code completion @@ -87,7 +87,7 @@ More information can be found [[https://github.com/oantolin/orderless#company][h * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Enable company backend(s) in certain modes @@ -142,5 +142,5 @@ on changing what backends are available for that mode. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/completion/helm/README.org b/modules/completion/helm/README.org index c48fa32b5..9a545289a 100644 --- a/modules/completion/helm/README.org +++ b/modules/completion/helm/README.org @@ -40,7 +40,7 @@ For official documentation about Helm, see: ** TODO Hacks #+begin_quote - 🔨 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]] + 󱌣 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]] #+end_quote ** TODO Changelog @@ -162,7 +162,7 @@ Helm also has a number of overrides for built-in functionality: * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** helm-mode @@ -202,5 +202,5 @@ See [[id:4f36ae11-1da8-4624-9c30-46b764e849fc][this answer]]. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/completion/ido/README.org b/modules/completion/ido/README.org index 1b19d71c9..281edf6b8 100644 --- a/modules/completion/ido/README.org +++ b/modules/completion/ido/README.org @@ -33,12 +33,12 @@ Interactive DO things. The completion engine that is /mostly/ built-into Emacs. * Usage #+begin_quote -🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Configuration #+begin_quote -🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -52,5 +52,5 @@ See [[id:4f36ae11-1da8-4624-9c30-46b764e849fc][this answer]]. * Appendix #+begin_quote -🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/completion/ivy/README.org b/modules/completion/ivy/README.org index cce635bb1..500f22396 100644 --- a/modules/completion/ivy/README.org +++ b/modules/completion/ivy/README.org @@ -64,7 +64,7 @@ use their associated Helm command or plugin. * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote [[doom-package:ivy]] is a /large/ framework for completing things. Covering all its features is @@ -169,7 +169,7 @@ A wgrep buffer can be opened from swiper with [[kbd:][C-c C-e]]. * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** TODO Enable fuzzy/non-fuzzy search for specific commands @@ -186,5 +186,5 @@ See [[id:4f36ae11-1da8-4624-9c30-46b764e849fc][this answer]]. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/completion/vertico/README.org b/modules/completion/vertico/README.org index b7ffb1886..73a52c0a6 100644 --- a/modules/completion/vertico/README.org +++ b/modules/completion/vertico/README.org @@ -63,7 +63,7 @@ intend to use their associated Helm command or plugin. * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote The packages in this module modify and use the built-in ~completing-read~ @@ -260,7 +260,7 @@ you can use to further specify each space separated input in the following ways: * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote If you want to further configure this module, here are some good places to @@ -302,5 +302,5 @@ See [[id:4f36ae11-1da8-4624-9c30-46b764e849fc][this answer]]. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/config/default/README.org b/modules/config/default/README.org index a725132ca..2b0538070 100644 --- a/modules/config/default/README.org +++ b/modules/config/default/README.org @@ -43,12 +43,12 @@ This module provides a set of reasonable defaults, including: * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -59,7 +59,7 @@ This module provides a set of reasonable defaults, including: * TODO Appendix #+begin_quote - 🔨 /This module's appendix is incomplete./ [[doom-contrib-module:][Write more?]] + 󱌣 /This module's appendix is incomplete./ [[doom-contrib-module:][Write more?]] #+end_quote ** Commands diff --git a/modules/config/literate/README.org b/modules/config/literate/README.org index 363bddfd6..6f5a7a19d 100644 --- a/modules/config/literate/README.org +++ b/modules/config/literate/README.org @@ -32,13 +32,13 @@ This module only requires a =$DOOMDIR/config.org=, which will be tangled into =$DOOMDIR/config.el= when you run ~$ doom sync~. #+begin_quote - 🚧 *Be careful!* Enabling this module will overwrite =$DOOMDIR/config.el=! If +  *Be careful!* Enabling this module will overwrite =$DOOMDIR/config.el=! If you are only trying out the module, *back up this file first!* #+end_quote * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote - Automatically tangles =$DOOMDIR/config.org= to =$DOOMDIR/config.el= when @@ -46,7 +46,7 @@ This module only requires a =$DOOMDIR/config.org=, which will be tangled into * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Change the location of config.org @@ -120,5 +120,5 @@ your =$DOOMDIR=). This behavior can be disabled with: * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/editor/evil/README.org b/modules/editor/evil/README.org index e3c9d7426..690b16c93 100644 --- a/modules/editor/evil/README.org +++ b/modules/editor/evil/README.org @@ -58,7 +58,7 @@ This holy module brings the Vim editing model to Emacs. * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Ported vim plugins @@ -138,7 +138,7 @@ And these are text objects added by this module: * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -193,7 +193,7 @@ If you prefer the old behavior, it can be reversed with: are bound to [[kbd:][C-c]] and [[kbd:][C-c l]] by default. #+begin_quote - 🚧 Ignore ~doom-leader-key~ and ~doom-localleader-key~, they don't apply to + 󰐃 Ignore ~doom-leader-key~ and ~doom-localleader-key~, they don't apply to non-evil sessions. #+end_quote @@ -241,5 +241,5 @@ Like in vim, the clipboard can still be accessed by using the [[kbd:][+]] regist * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/editor/file-templates/README.org b/modules/editor/file-templates/README.org index 9cf272415..66e0224d3 100644 --- a/modules/editor/file-templates/README.org +++ b/modules/editor/file-templates/README.org @@ -31,7 +31,7 @@ This module adds file templates for blank files, powered by [[doom-package:yasni * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote File templates are automatically expanded when opening empty files who match one @@ -47,13 +47,13 @@ A special command is available for inserting software licenses: ~M-x +file-templates/insert-license~. #+begin_quote - 📌 Licenses with a ~-bp~ suffix are boilerplate templates; i.e. shorter + 󰐃 Licenses with a ~-bp~ suffix are boilerplate templates; i.e. shorter versions intended for comment headers in code files. #+end_quote * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Adding new or changing existing file templates @@ -79,7 +79,7 @@ prefix and [[fn:+file-templates/insert-license]] will recognize them. E.g. * TODO Appendix #+begin_quote - 🔨 /This module's appendix is incomplete./ [[doom-contrib-module:][Write more?]] + 󱌣 /This module's appendix is incomplete./ [[doom-contrib-module:][Write more?]] #+end_quote ** API diff --git a/modules/editor/file-templates/templates/org-mode/__doom-readme b/modules/editor/file-templates/templates/org-mode/__doom-readme index aed7608ff..ffe6fd092 100644 --- a/modules/editor/file-templates/templates/org-mode/__doom-readme +++ b/modules/editor/file-templates/templates/org-mode/__doom-readme @@ -48,7 +48,7 @@ the purpose of the module and the features/technology(ies) it provides. # If this module has flags but you can't document them now, add a TODO to the # heading and use: #+begin_quote - 🔨 This module has flags, but they aren't documented yet. [[doom-contrib-module:][Document them?]] + 󱌣 This module has flags, but they aren't documented yet. [[doom-contrib-module:][Document them?]] #+end_quote ** Packages @@ -66,7 +66,7 @@ the purpose of the module and the features/technology(ies) it provides. # If this module installs packages, but you can't document them now, add a TODO # to the heading and use: #+begin_quote - 🔨 This module installs packages, but they aren't documented yet. [[doom-contrib-module:][Document + 󱌣 This module installs packages, but they aren't documented yet. [[doom-contrib-module:][Document them?]] #+end_quote @@ -83,7 +83,7 @@ the purpose of the module and the features/technology(ies) it provides. # If this module contains hacks, but you can't document them now, add a TODO to # the heading and use: #+begin_quote - 🔨 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]] + 󱌣 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]] #+end_quote ** TODO Changelog @@ -122,7 +122,7 @@ This module requires: # If there are prerequisites but you can't document them yet, add TODO to the # heading and use: #+begin_quote - 🔨 /No installation steps have been documented./ [[doom-contrib-module:][Document them?]] + 󱌣 /No installation steps have been documented./ [[doom-contrib-module:][Document them?]] #+end_quote * Usage @@ -130,12 +130,12 @@ This module requires: # If this is left empty, add TODO to the heading and use: #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote # If this section has incomplete content, add TODO to the heading and use: #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote * TODO Configuration @@ -144,12 +144,12 @@ This module requires: # If this is left empty, add TODO to the heading and use: #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote # If this section has incomplete content, add TODO to the heading and use: #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote * Troubleshooting @@ -188,10 +188,10 @@ Answer # If this is left empty, add TODO to the heading and use: #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote # If this section has incomplete content, add TODO to the heading and use: #+begin_quote - 🔨 /This module's appendix is incomplete./ [[doom-contrib-module:][Write more?]] + 󱌣 /This module's appendix is incomplete./ [[doom-contrib-module:][Write more?]] #+end_quote \ No newline at end of file diff --git a/modules/editor/fold/README.org b/modules/editor/fold/README.org index 7f33b3189..27c67f52b 100644 --- a/modules/editor/fold/README.org +++ b/modules/editor/fold/README.org @@ -23,7 +23,7 @@ marker, indent and syntax-based code folding for as many languages as possible. ** TODO Hacks #+begin_quote - 🔨 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]] + 󱌣 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]] #+end_quote ** TODO Changelog @@ -37,7 +37,7 @@ marker, indent and syntax-based code folding for as many languages as possible. * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote Emacs keybinds when [[doom-module::editor evil +everywhere]] is disabled: @@ -52,7 +52,7 @@ Emacs keybinds when [[doom-module::editor evil +everywhere]] is disabled: * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -65,5 +65,5 @@ Emacs keybinds when [[doom-module::editor evil +everywhere]] is disabled: * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/editor/format/README.org b/modules/editor/format/README.org index 47a69af82..dc3126934 100644 --- a/modules/editor/format/README.org +++ b/modules/editor/format/README.org @@ -154,5 +154,5 @@ Any issues specific to apheleia should most often be reported upstream [[https:/ * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/editor/god/README.org b/modules/editor/god/README.org index cd709bc10..38bc0f7de 100644 --- a/modules/editor/god/README.org +++ b/modules/editor/god/README.org @@ -4,7 +4,7 @@ #+since: 21.12.0 #+begin_quote - 🚧 *This module is deprecated.* ~god-mode~ is EOL and no longer maintained. +  *This module is deprecated.* ~god-mode~ is EOL and no longer maintained. #+end_quote * Description :unfold: @@ -35,12 +35,12 @@ mode. * Usage #+begin_quote -🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Configuration #+begin_quote -🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -51,5 +51,5 @@ mode. * Appendix #+begin_quote -🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/editor/lispy/README.org b/modules/editor/lispy/README.org index 03a323f6e..05618260b 100644 --- a/modules/editor/lispy/README.org +++ b/modules/editor/lispy/README.org @@ -41,7 +41,7 @@ languages: * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote If [[doom-module::editor evil]] is enabled, [[doom-package:lispyville]] would also be activated for every mode @@ -49,7 +49,7 @@ where [[doom-package:lispy]] is active. * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote The default key themes that are set are as follows: @@ -102,5 +102,5 @@ Emacs receives when you scroll with your mouse wheel. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/editor/multiple-cursors/README.org b/modules/editor/multiple-cursors/README.org index 0b033ffb3..7770099ba 100644 --- a/modules/editor/multiple-cursors/README.org +++ b/modules/editor/multiple-cursors/README.org @@ -39,7 +39,7 @@ evil) that loosely take after multi-cursors in Atom or Sublime Text. * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** evil-mc @@ -63,7 +63,7 @@ Designates "interactive edit" regions. Only the textual changes to them are mirr * TODO Configuration #+begin_quote -🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -74,5 +74,5 @@ Designates "interactive edit" regions. Only the textual changes to them are mirr * Appendix #+begin_quote -🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/editor/objed/README.org b/modules/editor/objed/README.org index 0e12c2bfd..ff527708a 100644 --- a/modules/editor/objed/README.org +++ b/modules/editor/objed/README.org @@ -34,18 +34,18 @@ or Kakoune and tries to align them with regular Emacs conventions. /This module has no external requirements./ #+begin_quote - 🚧 This module is incompatible with [[doom-module::editor evil]]. Do not enable them both at +  This module is incompatible with [[doom-module::editor evil]]. Do not enable them both at the same time or you will get errors. #+end_quote * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -56,5 +56,5 @@ or Kakoune and tries to align them with regular Emacs conventions. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/editor/parinfer/README.org b/modules/editor/parinfer/README.org index 515f738ee..37dab263e 100644 --- a/modules/editor/parinfer/README.org +++ b/modules/editor/parinfer/README.org @@ -31,7 +31,7 @@ This module requires [[https://github.com/justinbarclay/parinfer-rust-mode#parin * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Keybindings @@ -42,7 +42,7 @@ This module requires [[https://github.com/justinbarclay/parinfer-rust-mode#parin * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -53,5 +53,5 @@ This module requires [[https://github.com/justinbarclay/parinfer-rust-mode#parin * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/editor/rotate-text/README.org b/modules/editor/rotate-text/README.org index bf5fba2d8..86bbe9a89 100644 --- a/modules/editor/rotate-text/README.org +++ b/modules/editor/rotate-text/README.org @@ -33,7 +33,7 @@ keywords or text patterns at point, like ~true~ and ~false~, or ~public~, * TODO Usage #+begin_quote -🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote For evil users: [[kbd:][[r]] and [[kbd:][]r]] will cycle back and forward (respectively) through @@ -42,7 +42,7 @@ through them. * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote To enable a set of items to cycle through globally: @@ -73,5 +73,5 @@ described above. * Appendix #+begin_quote -🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/editor/snippets/README.org b/modules/editor/snippets/README.org index a2e74dcf3..c7e84e820 100644 --- a/modules/editor/snippets/README.org +++ b/modules/editor/snippets/README.org @@ -21,7 +21,7 @@ This module adds snippet expansions to Emacs, powered by [[doom-package:yasnippe ** TODO Hacks #+begin_quote - 🔨 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]] + 󱌣 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]] #+end_quote ** TODO Changelog @@ -35,12 +35,12 @@ This module adds snippet expansions to Emacs, powered by [[doom-package:yasnippe * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Disabling the built-in snippets @@ -62,5 +62,5 @@ Custom snippets should be added under =$DOOMDIR/snippets/= directory. Refer to [ * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/editor/word-wrap/README.org b/modules/editor/word-wrap/README.org index 2ccc0952c..712644a9a 100644 --- a/modules/editor/word-wrap/README.org +++ b/modules/editor/word-wrap/README.org @@ -33,12 +33,12 @@ lines in the buffer without modifying the buffer content. * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Activation @@ -116,5 +116,5 @@ modes like ~org-mode~ which handle prefix indentation themselves. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/emacs/dired/README.org b/modules/emacs/dired/README.org index 9ffcd3358..b9df9c3bb 100644 --- a/modules/emacs/dired/README.org +++ b/modules/emacs/dired/README.org @@ -25,7 +25,7 @@ This module provides reasonable defaults and augmentations for dired. ** TODO Hacks #+begin_quote - 🔨 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]] + 󱌣 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]] #+end_quote ** TODO Changelog @@ -40,7 +40,7 @@ This module has no requirements *except on BSDs* like MacOS or FreeBSD, where * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote | Keybind | Description | @@ -59,7 +59,7 @@ If [[doom-module:+ranger]] is enabled often a buffer will be opened in minimal r * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -70,5 +70,5 @@ If [[doom-module:+ranger]] is enabled often a buffer will be opened in minimal r * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/emacs/electric/README.org b/modules/emacs/electric/README.org index b6b26a1c1..5cc9e2a33 100644 --- a/modules/emacs/electric/README.org +++ b/modules/emacs/electric/README.org @@ -20,7 +20,7 @@ indentation (as opposed to character-based). ** TODO Hacks #+begin_quote - 🔨 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]] + 󱌣 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]] #+end_quote ** TODO Changelog @@ -34,12 +34,12 @@ indentation (as opposed to character-based). * TODO Usage #+begin_quote -🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote -🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -50,5 +50,5 @@ indentation (as opposed to character-based). * TODO Appendix #+begin_quote -🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/emacs/ibuffer/README.org b/modules/emacs/ibuffer/README.org index a8e71c458..58d47d830 100644 --- a/modules/emacs/ibuffer/README.org +++ b/modules/emacs/ibuffer/README.org @@ -23,7 +23,7 @@ This module augments the built-in [[doom-package:ibuffer]] package. ** TODO Hacks #+begin_quote - 🔨 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]] + 󱌣 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]] #+end_quote ** TODO Changelog @@ -37,12 +37,12 @@ This module augments the built-in [[doom-package:ibuffer]] package. * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -53,5 +53,5 @@ This module augments the built-in [[doom-package:ibuffer]] package. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/emacs/undo/README.org b/modules/emacs/undo/README.org index d8b737177..907977c60 100644 --- a/modules/emacs/undo/README.org +++ b/modules/emacs/undo/README.org @@ -46,12 +46,12 @@ persist across Emacs sessions. * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Disabling persistent undo history @@ -80,5 +80,5 @@ persist across Emacs sessions. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/emacs/vc/README.org b/modules/emacs/vc/README.org index 615b43787..eb35f35d0 100644 --- a/modules/emacs/vc/README.org +++ b/modules/emacs/vc/README.org @@ -40,12 +40,12 @@ This module only requires [[https://git-scm.com/][Git]]. * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -56,5 +56,5 @@ This module only requires [[https://git-scm.com/][Git]]. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/email/mu4e/README.org b/modules/email/mu4e/README.org index b56b09314..1c34794f3 100644 --- a/modules/email/mu4e/README.org +++ b/modules/email/mu4e/README.org @@ -47,7 +47,7 @@ This module makes Emacs an email client, using [[https://www.djcbsoftware.nl/cod ** TODO Hacks #+begin_quote - 🔨 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]] + 󱌣 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]] #+end_quote ** TODO Changelog @@ -103,12 +103,12 @@ environment.systemPackages = with pkgs; [ * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** offlineimap @@ -312,5 +312,5 @@ need to switch to the unstable build of =net-mail/mu= to see it. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/email/notmuch/README.org b/modules/email/notmuch/README.org index b22d374c2..fe549e23e 100644 --- a/modules/email/notmuch/README.org +++ b/modules/email/notmuch/README.org @@ -23,7 +23,7 @@ This module turns Emacs into an email client using [[doom-package:notmuch]]. ** TODO Hacks #+begin_quote - 🔨 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]] + 󱌣 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]] #+end_quote ** TODO Changelog @@ -70,7 +70,7 @@ environment.systemPackages = with pkgs; [ * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote | Keymap | Command | Description | @@ -80,7 +80,7 @@ environment.systemPackages = with pkgs; [ * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Downloading your email @@ -203,5 +203,5 @@ features off: * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/email/wanderlust/README.org b/modules/email/wanderlust/README.org index 4123261b5..21f236458 100644 --- a/modules/email/wanderlust/README.org +++ b/modules/email/wanderlust/README.org @@ -5,7 +5,7 @@ * Description :unfold: #+begin_quote - 🔨 This module has no description. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no description. [[doom-contrib-module:][Write one?]] #+end_quote ** Maintainers @@ -20,7 +20,7 @@ ** TODO Hacks #+begin_quote - 🔨 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]] + 󱌣 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]] #+end_quote ** TODO Changelog @@ -34,12 +34,12 @@ * TODO Usage #+begin_quote -🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote -🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -50,5 +50,5 @@ * TODO Appendix #+begin_quote -🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/input/bidi/README.org b/modules/input/bidi/README.org index 72390c149..1cea6aeb5 100644 --- a/modules/input/bidi/README.org +++ b/modules/input/bidi/README.org @@ -67,7 +67,7 @@ right-to-left when ~+bidi-mode~ is on, add the following to your config: #+end_src #+begin_quote - 🚧 Do not do this if you are using ~+bidi-global-mode~, it will mess up all of +  Do not do this if you are using ~+bidi-global-mode~, it will mess up all of the buffers in Emacs that use English, including things like the =M-x= buffer. #+end_quote @@ -95,7 +95,7 @@ Hebrew and Arabic characters. They are set by default to =DejaVu Sans=, since it has decent looking Hebrew and Arabic character support. #+begin_quote - 📌 If you are writing in an Arabic-derived script, such as Persian, Urdu, or + 󰐃 If you are writing in an Arabic-derived script, such as Persian, Urdu, or Pashto, you may want to change ~+bidi-arabic-font~ to one specific to your language, especially if you want your script to be written in the Nastaliq style. @@ -145,5 +145,5 @@ If Emacs is having trouble properly displaying a Nastaliq font, try using one of * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/input/chinese/README.org b/modules/input/chinese/README.org index bee3f1aae..7a064b444 100644 --- a/modules/input/chinese/README.org +++ b/modules/input/chinese/README.org @@ -38,7 +38,7 @@ methods: Pinyin and Wubi. [[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]] #+begin_quote - 🔨 This module is missing install instructions. [[doom-contrib-module:][Write some?]] + 󱌣 This module is missing install instructions. [[doom-contrib-module:][Write some?]] #+end_quote If you want to use rime as the input method engine: @@ -50,12 +50,12 @@ If you want to use rime as the input method engine: * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Using fcitx5 @@ -74,5 +74,5 @@ Modify ~fcitx-remote-command~ to change the default: * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/input/japanese/README.org b/modules/input/japanese/README.org index 8ad2315bd..cfd497ed2 100644 --- a/modules/input/japanese/README.org +++ b/modules/input/japanese/README.org @@ -35,12 +35,12 @@ This module adds support for Japanese script. * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -51,5 +51,5 @@ This module adds support for Japanese script. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/input/layout/README.org b/modules/input/layout/README.org index 1dc3dd530..18596db93 100644 --- a/modules/input/layout/README.org +++ b/modules/input/layout/README.org @@ -24,7 +24,7 @@ layouts. ** TODO Hacks #+begin_quote - 🔨 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]] + 󱌣 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]] #+end_quote ** TODO Changelog @@ -38,7 +38,7 @@ layouts. * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Bépo @@ -104,7 +104,7 @@ Therefore, in ~org-mode~: * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Bépo @@ -151,5 +151,5 @@ restart. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/agda/README.org b/modules/lang/agda/README.org index 57dbbf341..a93911ec5 100644 --- a/modules/lang/agda/README.org +++ b/modules/lang/agda/README.org @@ -36,12 +36,12 @@ exists directly in the agda repository, but not in melpa. * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -52,5 +52,5 @@ exists directly in the agda repository, but not in melpa. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/beancount/README.org b/modules/lang/beancount/README.org index 627739940..e48700aa2 100644 --- a/modules/lang/beancount/README.org +++ b/modules/lang/beancount/README.org @@ -38,12 +38,12 @@ This module requires: * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -54,5 +54,5 @@ This module requires: * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/cc/README.org b/modules/lang/cc/README.org index 8e7100e7b..bf4d3eac7 100644 --- a/modules/lang/cc/README.org +++ b/modules/lang/cc/README.org @@ -140,7 +140,7 @@ For more info, see [[doom-module::editor format]]. * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote 1. Enable this module. @@ -160,7 +160,7 @@ additional function to get inheritance type hierarchy is added: * TODO Configure #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Project compile settings @@ -279,5 +279,5 @@ lists available options * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/clojure/README.org b/modules/lang/clojure/README.org index fe6a01777..36f57233a 100644 --- a/modules/lang/clojure/README.org +++ b/modules/lang/clojure/README.org @@ -149,7 +149,7 @@ Several bindings used for viewing documentation for various functions, both insi * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -160,5 +160,5 @@ Several bindings used for viewing documentation for various functions, both insi * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/common-lisp/README.org b/modules/lang/common-lisp/README.org index f5d3e0757..1872f8f4f 100644 --- a/modules/lang/common-lisp/README.org +++ b/modules/lang/common-lisp/README.org @@ -39,7 +39,7 @@ This module requires [[http://www.sbcl.org/][SBCL]]. * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote This module does not integrate with [[doom-module::tools lsp]]. Sly (and SLIME before it) is @@ -67,7 +67,7 @@ Enable [[doom-module::editor format +onsave]] to format the buffer on save. * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote If you don't want Sly to use SBCL, you can configure the variable @@ -81,5 +81,5 @@ If you don't want Sly to use SBCL, you can configure the variable * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/coq/README.org b/modules/lang/coq/README.org index 3bd58b72a..d2000e8db 100644 --- a/modules/lang/coq/README.org +++ b/modules/lang/coq/README.org @@ -34,7 +34,7 @@ This module adds [[https://coq.inria.fr][coq]] support, powered by [[https://pro * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Configuration @@ -49,5 +49,5 @@ See [[https://github.com/hlissner/doom-emacs/issues?q=is%3Aissue+is%3Aopen+label * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/crystal/README.org b/modules/lang/crystal/README.org index eb90ce7f0..2ca533792 100644 --- a/modules/lang/crystal/README.org +++ b/modules/lang/crystal/README.org @@ -45,7 +45,7 @@ This module requires: * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote ** formatter @@ -56,7 +56,7 @@ Enable [[doom-module::editor format +onsave]] to format the buffer on save. * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -67,5 +67,5 @@ Enable [[doom-module::editor format +onsave]] to format the buffer on save. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/csharp/README.org b/modules/lang/csharp/README.org index eae446653..fcde71183 100644 --- a/modules/lang/csharp/README.org +++ b/modules/lang/csharp/README.org @@ -64,12 +64,12 @@ dotnet tool install csharpier -g * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -80,5 +80,5 @@ dotnet tool install csharpier -g * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/dart/README.org b/modules/lang/dart/README.org index add6a0a13..5c875e7ab 100644 --- a/modules/lang/dart/README.org +++ b/modules/lang/dart/README.org @@ -84,7 +84,7 @@ flutter doctor # for Dependency check and further instructions * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote - Syntax highlighting and formatting for ~.dart~ files provided by LSP or [[doom-module::editor format]]. @@ -97,7 +97,7 @@ flutter doctor # for Dependency check and further instructions * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Dart & Flutter @@ -134,5 +134,5 @@ mention the Android SDK, as discussed above). * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/data/README.org b/modules/lang/data/README.org index 43e24b856..b39209db3 100644 --- a/modules/lang/data/README.org +++ b/modules/lang/data/README.org @@ -29,12 +29,12 @@ This module adds Emacs support for CSV and XML files. * TODO Usage #+begin_quote -🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote -🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -45,5 +45,5 @@ This module adds Emacs support for CSV and XML files. * TODO Appendix #+begin_quote -🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/dhall/README.org b/modules/lang/dhall/README.org index 0e996234a..8bac03ffe 100644 --- a/modules/lang/dhall/README.org +++ b/modules/lang/dhall/README.org @@ -33,12 +33,12 @@ This module requires the =dhall-json= package, which provides both the * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -49,5 +49,5 @@ This module requires the =dhall-json= package, which provides both the * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/elixir/README.org b/modules/lang/elixir/README.org index 966fa48df..c1189cccf 100644 --- a/modules/lang/elixir/README.org +++ b/modules/lang/elixir/README.org @@ -65,7 +65,7 @@ zypper install elixir * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote - Code completion ([[doom-module::completion company]]) @@ -89,7 +89,7 @@ The exunit-mode prefix is [[kbd:][ t]]. Here is some examples: * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -100,5 +100,5 @@ The exunit-mode prefix is [[kbd:][ t]]. Here is some examples: * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/elm/README.org b/modules/lang/elm/README.org index 0405df08b..8445c7c20 100644 --- a/modules/lang/elm/README.org +++ b/modules/lang/elm/README.org @@ -32,7 +32,7 @@ This module adds [[https://elm-lang.org/][Elm]] support to Doom Emacs. [[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]] #+begin_quote - 🔨 /This module's prerequisites are not all documented./ [[doom-contrib-module:][Document them?]] + 󱌣 /This module's prerequisites are not all documented./ [[doom-contrib-module:][Document them?]] #+end_quote - If [[doom-module:+lsp]] is enabled, [[https://github.com/elm-tooling/elm-language-server][elm-language-server]] is required to be installed and in @@ -40,7 +40,7 @@ This module adds [[https://elm-lang.org/][Elm]] support to Doom Emacs. * TODO Usage #+begin_quote -🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote ** formatter @@ -51,7 +51,7 @@ Enable [[doom-module::editor format +onsave]] to format the buffer on save. * TODO Configuration #+begin_quote -🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -62,5 +62,5 @@ Enable [[doom-module::editor format +onsave]] to format the buffer on save. * TODO Appendix #+begin_quote -🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/emacs-lisp/README.org b/modules/lang/emacs-lisp/README.org index 73603ffa5..2a034f580 100644 --- a/modules/lang/emacs-lisp/README.org +++ b/modules/lang/emacs-lisp/README.org @@ -53,7 +53,7 @@ about it. * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote ** formatter @@ -64,7 +64,7 @@ Enable [[doom-module::editor format +onsave]] to format the buffer on save. * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -75,5 +75,5 @@ Enable [[doom-module::editor format +onsave]] to format the buffer on save. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/erlang/README.org b/modules/lang/erlang/README.org index 530643745..f88be01dc 100644 --- a/modules/lang/erlang/README.org +++ b/modules/lang/erlang/README.org @@ -44,7 +44,7 @@ your distribution's package manager or a version management tool such as [[https * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote ** formatter @@ -55,7 +55,7 @@ Enable [[doom-module::editor format +onsave]] to format the buffer on save. * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -66,5 +66,5 @@ Enable [[doom-module::editor format +onsave]] to format the buffer on save. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/ess/README.org b/modules/lang/ess/README.org index 9637a0683..4ea980919 100644 --- a/modules/lang/ess/README.org +++ b/modules/lang/ess/README.org @@ -45,7 +45,7 @@ This module has several optional dependencies: * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** :map ess-doc-map @@ -92,7 +92,7 @@ This module has several optional dependencies: * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -103,5 +103,5 @@ This module has several optional dependencies: * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/factor/README.org b/modules/lang/factor/README.org index 86a494860..0cc9f0620 100644 --- a/modules/lang/factor/README.org +++ b/modules/lang/factor/README.org @@ -30,12 +30,12 @@ This module requires [[https://github.com/factor/factor][factor]] for its advanc * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote This module requires the installation of factor to be available at @@ -53,5 +53,5 @@ This module requires the installation of factor to be available at * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/faust/README.org b/modules/lang/faust/README.org index d96526271..f8eb900f7 100644 --- a/modules/lang/faust/README.org +++ b/modules/lang/faust/README.org @@ -36,7 +36,7 @@ Add support to [[https://faust.grame.fr/][Faust language]] inside emacs. * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote | Binding | Description | @@ -54,7 +54,7 @@ Add support to [[https://faust.grame.fr/][Faust language]] inside emacs. * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -65,5 +65,5 @@ Add support to [[https://faust.grame.fr/][Faust language]] inside emacs. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/fortran/README.org b/modules/lang/fortran/README.org index bdcdb9803..6ccfa6598 100644 --- a/modules/lang/fortran/README.org +++ b/modules/lang/fortran/README.org @@ -20,7 +20,7 @@ In particular, this module features: - Optional Intel Fortran support via the [[doom-module:+intel]] flag. #+begin_quote - 💬 After a career of writing Fortran on Mainframes and Windows machines, my + 󰟶 After a career of writing Fortran on Mainframes and Windows machines, my now-retired Dad is switching to Linux. Imagine my surprise when I learned that off-the-shelf setups for Fortran on Linux basically don't exist! Well, until now... Cheers Dad, hope this helps. --[[doom-user:][fosskers]] @@ -104,12 +104,12 @@ Enable [[doom-module::editor format +onsave]] to format the buffer on save. * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -120,5 +120,5 @@ Enable [[doom-module::editor format +onsave]] to format the buffer on save. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/fsharp/README.org b/modules/lang/fsharp/README.org index 80cb711a7..618959f19 100644 --- a/modules/lang/fsharp/README.org +++ b/modules/lang/fsharp/README.org @@ -57,12 +57,12 @@ dotnet tool install -g fantomas-tool * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -73,5 +73,5 @@ dotnet tool install -g fantomas-tool * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/fstar/README.org b/modules/lang/fstar/README.org index 0979cf117..85ec8c0b6 100644 --- a/modules/lang/fstar/README.org +++ b/modules/lang/fstar/README.org @@ -50,12 +50,12 @@ yaourt -S fstar * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -69,5 +69,5 @@ yaourt -S fstar * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/gdscript/README.org b/modules/lang/gdscript/README.org index aeb35d812..902ad861a 100644 --- a/modules/lang/gdscript/README.org +++ b/modules/lang/gdscript/README.org @@ -42,7 +42,7 @@ pip3 install gdtoolkit * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** LSP support @@ -60,7 +60,7 @@ available commands. * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -74,5 +74,5 @@ available commands. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/go/README.org b/modules/lang/go/README.org index a754e59a5..761ab8c9b 100644 --- a/modules/lang/go/README.org +++ b/modules/lang/go/README.org @@ -88,7 +88,7 @@ go install github.com/fatih/gomodifytags@latest * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote ** Keybinds @@ -126,7 +126,7 @@ go install github.com/fatih/gomodifytags@latest * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -137,5 +137,5 @@ go install github.com/fatih/gomodifytags@latest * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/graphql/README.org b/modules/lang/graphql/README.org index 5f8c6255c..7a6952545 100644 --- a/modules/lang/graphql/README.org +++ b/modules/lang/graphql/README.org @@ -125,5 +125,5 @@ them into version control. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/haskell/README.org b/modules/lang/haskell/README.org index 4bbcbd628..7fce1d721 100644 --- a/modules/lang/haskell/README.org +++ b/modules/lang/haskell/README.org @@ -59,7 +59,7 @@ relying on hls, follow the linked install instructions. * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote This module integrates the haskell packages into Doom by providing things such @@ -75,7 +75,7 @@ keybindings: * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote After installing your preferred formatter, make sure to set @@ -96,5 +96,5 @@ Make sure to configure the lsp to use your perfered formatter, e.g.: * TODO Appendix #+begin_quote -🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/hy/README.org b/modules/lang/hy/README.org index d5e177b1c..23d8de8fb 100644 --- a/modules/lang/hy/README.org +++ b/modules/lang/hy/README.org @@ -29,12 +29,12 @@ This module requires [[https://docs.hylang.org/en/alpha/][Hy]]. * TODO Usage #+begin_quote -🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote -🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -45,5 +45,5 @@ This module requires [[https://docs.hylang.org/en/alpha/][Hy]]. * TODO Appendix #+begin_quote -🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/idris/README.org b/modules/lang/idris/README.org index a8c5bc309..60dae66a8 100644 --- a/modules/lang/idris/README.org +++ b/modules/lang/idris/README.org @@ -26,12 +26,12 @@ This module adds rudimentary [[https://www.idris-lang.org/][Idris]] support to D [[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]] #+begin_quote - 🔨 /No installation steps have been documented./ [[doom-contrib-module:][Document them?]] + 󱌣 /No installation steps have been documented./ [[doom-contrib-module:][Document them?]] #+end_quote * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote In addition to ~idris-mode~ goodness, adds frequently used functions under the @@ -39,7 +39,7 @@ In addition to ~idris-mode~ goodness, adds frequently used functions under the * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -50,5 +50,5 @@ In addition to ~idris-mode~ goodness, adds frequently used functions under the * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/java/README.org b/modules/lang/java/README.org index b0674681f..5dabda6a9 100644 --- a/modules/lang/java/README.org +++ b/modules/lang/java/README.org @@ -112,7 +112,7 @@ java -jar /path/to/google-java-format-all-deps.jar * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** [[doom-module:+lsp]] features @@ -154,7 +154,7 @@ According to [[https://github.com/mopemope/meghanada-emacs/]], you get: * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** [[doom-module:+lsp]] @@ -178,5 +178,5 @@ Enable the [[doom-module::tools debugger +lsp]] module to get test runner suppor * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/javascript/README.org b/modules/lang/javascript/README.org index 78b5c7cf6..419d37c2f 100644 --- a/modules/lang/javascript/README.org +++ b/modules/lang/javascript/README.org @@ -42,7 +42,7 @@ This module adds [[https://www.javascript.com/][JavaScript]] and [[https://www.t ** TODO Hacks #+begin_quote - 🔨 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]] + 󱌣 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]] #+end_quote ** TODO Changelog @@ -64,7 +64,7 @@ Formatting is handled using the [[doom-module::editor format]] module via [[http * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ~rjsx-mode~ is used for all javascript buffers. @@ -152,7 +152,7 @@ Formatting is handled using the [[doom-module::editor format]] module via [[http * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -163,5 +163,5 @@ Formatting is handled using the [[doom-module::editor format]] module via [[http * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/json/README.org b/modules/lang/json/README.org index e60583e7d..996335237 100644 --- a/modules/lang/json/README.org +++ b/modules/lang/json/README.org @@ -38,12 +38,12 @@ Formatting is handled using the [[doom-module::editor format]] module via [[http * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -54,5 +54,5 @@ Formatting is handled using the [[doom-module::editor format]] module via [[http * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/julia/README.org b/modules/lang/julia/README.org index bb685d1a2..38e019278 100644 --- a/modules/lang/julia/README.org +++ b/modules/lang/julia/README.org @@ -101,7 +101,7 @@ But to let [[doom-package:eglot-jl]] use the environment bundled with it, set it * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Language Server @@ -124,7 +124,7 @@ described above. * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Change the default environment for the Julia language server @@ -144,5 +144,5 @@ v1.6 by default as it is the current LTS: * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/kotlin/README.org b/modules/lang/kotlin/README.org index 003918c25..af35162ab 100644 --- a/modules/lang/kotlin/README.org +++ b/modules/lang/kotlin/README.org @@ -44,12 +44,12 @@ Formatting is handled using the [[doom-module::editor format]] module via [[http * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -60,5 +60,5 @@ Formatting is handled using the [[doom-module::editor format]] module via [[http * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/latex/README.org b/modules/lang/latex/README.org index e718d15c3..0728e95fb 100644 --- a/modules/lang/latex/README.org +++ b/modules/lang/latex/README.org @@ -47,7 +47,7 @@ Provide a helping hand when working with LaTeX documents. ** TODO Hacks #+begin_quote - 🔨 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]] + 󱌣 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]] #+end_quote ** TODO Changelog @@ -61,7 +61,7 @@ This module requires ghostscript and a latex compiler. These are provided by the =texlive= bundle, available through many OS package managers. #+begin_quote - 🚧 Ghostscript <= 9.27 is [[/auctex/manual/preview-latex/No-images-are-displayed-with-gs-9_002e27-and-earlier.html][reportedly buggy]] and doesn't work with auctex's math + 󰐃 Ghostscript <= 9.27 is [[/auctex/manual/preview-latex/No-images-are-displayed-with-gs-9_002e27-and-earlier.html][reportedly buggy]] and doesn't work with auctex's math previews. (You can check you ghostscript version with ~$ gs --version~.) Most package managers already have newer versions, but if not you might have to build gs from source. @@ -85,7 +85,7 @@ brew install --cask mactex # WARNING: large 4gb download! #+end_src #+begin_quote - 🔨 This has not been verified. + 󱌣 This has not been verified. #+end_quote ** NixOS @@ -99,7 +99,7 @@ Formatting is handled using the [[doom-module::editor format]] module via [[http * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Configuration @@ -155,5 +155,5 @@ in latex buffers. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/lean/README.org b/modules/lang/lean/README.org index fd316a6d3..cf2f92fff 100644 --- a/modules/lang/lean/README.org +++ b/modules/lang/lean/README.org @@ -18,7 +18,7 @@ This module adds support for the [[https://leanprover.github.io/about/][Lean pro ** TODO Hacks #+begin_quote -🔨 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]] + 󱌣 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]] #+end_quote ** TODO Changelog @@ -29,17 +29,17 @@ This module adds support for the [[https://leanprover.github.io/about/][Lean pro [[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]] #+begin_quote -🔨 /This module's prerequisites are not documented./ [[doom-contrib-module:][Document them?]] + 󱌣 /This module's prerequisites are not documented./ [[doom-contrib-module:][Document them?]] #+end_quote * TODO Usage #+begin_quote -🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote -🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -50,5 +50,5 @@ This module adds support for the [[https://leanprover.github.io/about/][Lean pro * TODO Appendix #+begin_quote -🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/ledger/README.org b/modules/lang/ledger/README.org index 6a57abff4..3666c809f 100644 --- a/modules/lang/ledger/README.org +++ b/modules/lang/ledger/README.org @@ -50,12 +50,12 @@ ledgers. * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote Please refer to ~ledger-mode~'s documentation for information on how to @@ -69,5 +69,5 @@ configure it. You can do so within emacs with [[kbd:][C-h i]] * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/lua/README.org b/modules/lang/lua/README.org index a3fe30bd0..a07e0ecec 100644 --- a/modules/lang/lua/README.org +++ b/modules/lang/lua/README.org @@ -81,12 +81,12 @@ Formatting is handled using the [[doom-module::editor format]] module via [[http * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote - lua-lsp-dir :: This must be set when using [[doom-module:+lsp]] and using [[https://github.com/sumneko/lua-language-server][lua-language-server]]. @@ -105,5 +105,5 @@ lua-language-server on non-VSCode platforms. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/markdown/README.org b/modules/lang/markdown/README.org index 675dd6852..686df4a04 100644 --- a/modules/lang/markdown/README.org +++ b/modules/lang/markdown/README.org @@ -121,7 +121,7 @@ Formatting is handled using the [[doom-module::editor format]] module via [[http * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Markdown preview @@ -132,7 +132,7 @@ Alternatively, you can use ~grip-mode~ through [[doom-module:+grip]]. * Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Changing how markdown is compiled @@ -173,5 +173,5 @@ Otherwise, you can change ~markdown-command~ directly: * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/nim/README.org b/modules/lang/nim/README.org index 805e2fa5b..166e0f6da 100644 --- a/modules/lang/nim/README.org +++ b/modules/lang/nim/README.org @@ -57,12 +57,12 @@ Formatting is handled using the [[doom-module::editor format]] module via [[http * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -73,5 +73,5 @@ Formatting is handled using the [[doom-module::editor format]] module via [[http * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/nix/README.org b/modules/lang/nix/README.org index 87999483c..96669dc36 100644 --- a/modules/lang/nix/README.org +++ b/modules/lang/nix/README.org @@ -50,7 +50,7 @@ This module requires: * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Keybindings @@ -66,7 +66,7 @@ This module requires: * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -77,5 +77,5 @@ This module requires: * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/ocaml/README.org b/modules/lang/ocaml/README.org index 1627a080d..07e4922bc 100644 --- a/modules/lang/ocaml/README.org +++ b/modules/lang/ocaml/README.org @@ -60,7 +60,7 @@ This module requires the following packages available through [[http://opam.ocam * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote - The following files should have syntax highlighting support: ~.ml{i,p,y,}~, @@ -83,7 +83,7 @@ This module requires the following packages available through [[http://opam.ocam * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote - If [[doom-module::completion company]] is enabled then autocomplete is provided by [[doom-package:merlin]] @@ -110,5 +110,5 @@ missing tools. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/org/README.org b/modules/lang/org/README.org index dd83410ec..1c923dd34 100644 --- a/modules/lang/org/README.org +++ b/modules/lang/org/README.org @@ -208,7 +208,7 @@ environment.systemPackages = with pkgs; [ * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Invoking the org-capture frame from outside Emacs @@ -245,7 +245,7 @@ For =evil-mode= users, an overview of org-mode keybindings is provided [[https:/ * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Changing ~org-directory~ @@ -306,5 +306,5 @@ In order to migrate from v1 to v2 using Doom follow the next steps: * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/php/README.org b/modules/lang/php/README.org index 1856be345..a0de2d973 100644 --- a/modules/lang/php/README.org +++ b/modules/lang/php/README.org @@ -16,7 +16,7 @@ This module adds support for PHP 5.3+ (including PHP8) to Doom Emacs. - [[https://github.com/hlissner/doom-snippets/tree/master/php-mode][Snippets]] #+begin_quote - 💬 PHP was the first programming language I got paid to code in, back in the + 󰟶 PHP was the first programming language I got paid to code in, back in the Cretaceous period (2003). My sincerest apologies go out to all the programmers who inherited my earliest PHP work. I know you're out there, writhing in your straitjackets. @@ -154,7 +154,7 @@ your =$PATH=. * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** PHPUnit @@ -193,7 +193,7 @@ These are all run via [[kbd:][M-x]] too. * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Docker Compose @@ -252,5 +252,5 @@ And add the following to your config: * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/plantuml/README.org b/modules/lang/plantuml/README.org index 3e35eb49f..1c16fdb15 100644 --- a/modules/lang/plantuml/README.org +++ b/modules/lang/plantuml/README.org @@ -31,12 +31,12 @@ This module requires =plantuml= to build diagrams with. * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -47,5 +47,5 @@ This module requires =plantuml= to build diagrams with. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/purescript/README.org b/modules/lang/purescript/README.org index bb4c7c17b..11faa9751 100644 --- a/modules/lang/purescript/README.org +++ b/modules/lang/purescript/README.org @@ -43,12 +43,12 @@ npm install -g purs-tidy * TODO Usage #+begin_quote -🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote -🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -59,5 +59,5 @@ npm install -g purs-tidy * TODO Appendix #+begin_quote -🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/python/README.org b/modules/lang/python/README.org index 4a92accd0..cb70cb9e1 100644 --- a/modules/lang/python/README.org +++ b/modules/lang/python/README.org @@ -98,7 +98,7 @@ Formatting is handled using the [[doom-module::editor format]] module via [[http * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote This module supports LSP. It requires installation of [[https://pypi.org/project/python-language-server/][Python Language Server]], @@ -135,7 +135,7 @@ To enable support for auto-formatting with black enable [[doom-module::editor fo * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote The arguments passed to the [[https://ipython.org/][ipython]] or [[https://jupyter.org/][jupyter]] shells can be altered through @@ -154,5 +154,5 @@ these two variables: * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/qt/README.org b/modules/lang/qt/README.org index de13a0b53..2470b3b5d 100644 --- a/modules/lang/qt/README.org +++ b/modules/lang/qt/README.org @@ -33,12 +33,12 @@ This module provides language functionality for [[https://qt.io][Qt]] specific f * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -49,5 +49,5 @@ This module provides language functionality for [[https://qt.io][Qt]] specific f * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/racket/README.org b/modules/lang/racket/README.org index ebc32bf51..26e759c7e 100644 --- a/modules/lang/racket/README.org +++ b/modules/lang/racket/README.org @@ -49,12 +49,12 @@ Formatting is handled using the [[doom-module::editor format]] module via [[http * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** racket-smart-open-bracket-mode @@ -88,5 +88,5 @@ Once enabled, unicode input can be toggled by pressing C-\ or running * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/raku/README.org b/modules/lang/raku/README.org index 31a360f1d..d9ee09023 100644 --- a/modules/lang/raku/README.org +++ b/modules/lang/raku/README.org @@ -30,12 +30,12 @@ This module requires [[https://www.raku.org/][Raku]] for linting and evaluating * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -46,5 +46,5 @@ This module requires [[https://www.raku.org/][Raku]] for linting and evaluating * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/rest/README.org b/modules/lang/rest/README.org index 5fe29bcbb..e28dc05e8 100644 --- a/modules/lang/rest/README.org +++ b/modules/lang/rest/README.org @@ -51,12 +51,12 @@ This module turns Emacs into a [[https://en.wikipedia.org/wiki/Representational_ * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -67,5 +67,5 @@ This module turns Emacs into a [[https://en.wikipedia.org/wiki/Representational_ * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/rst/README.org b/modules/lang/rst/README.org index 87910e086..5ad190be7 100644 --- a/modules/lang/rst/README.org +++ b/modules/lang/rst/README.org @@ -33,12 +33,12 @@ Formatting is handled using the [[doom-module::editor format]] module via [[http * TODO Usage #+begin_quote -🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote -🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -49,5 +49,5 @@ Formatting is handled using the [[doom-module::editor format]] module via [[http * TODO Appendix #+begin_quote -🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/ruby/README.org b/modules/lang/ruby/README.org index 0423ae36c..d806e4b38 100644 --- a/modules/lang/ruby/README.org +++ b/modules/lang/ruby/README.org @@ -76,7 +76,7 @@ Formatting is handled using the [[doom-module::editor format]] module via [[http * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Commands @@ -111,7 +111,7 @@ The rspec-mode prefix is [[kbd:][ t]]: * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -152,5 +152,5 @@ addressed upstream. PRs to fix them locally are welcome. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/rust/README.org b/modules/lang/rust/README.org index 7ff6833f9..93179ad59 100644 --- a/modules/lang/rust/README.org +++ b/modules/lang/rust/README.org @@ -53,7 +53,7 @@ $ rustup update --no-self-update To install and manage Rust on Windows, consult [[https://forge.rust-lang.org/infra/other-installation-methods.html][Rust's official documentation]]. #+begin_quote - 📌 Once installed, I recommended that you add Cargo's executable to your + 󰐃 Once installed, I recommended that you add Cargo's executable to your ~$PATH~, so that the Emacs utilities that depend on it -- or any tools installed through it -- can easily locate them (without any added configuration on your part). @@ -73,7 +73,7 @@ To install and manage Rust on Windows, consult [[https://forge.rust-lang.org/inf * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** LSP support (rust-analyzer) @@ -111,7 +111,7 @@ Enable [[doom-module::editor format +onsave]] to get formatting on save with * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Enabling eglot support for Rust @@ -134,5 +134,5 @@ To fix this your project needs a =rustfmt.toml= with ~edition = "2018"~ in it. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/scala/README.org b/modules/lang/scala/README.org index af9ebd1fc..e6107a387 100644 --- a/modules/lang/scala/README.org +++ b/modules/lang/scala/README.org @@ -101,12 +101,12 @@ Formatting is handled using the [[doom-module::editor format]] module via [[http * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -123,5 +123,5 @@ Formatting is handled using the [[doom-module::editor format]] module via [[http * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/scheme/README.org b/modules/lang/scheme/README.org index c0e917d61..73abceab3 100644 --- a/modules/lang/scheme/README.org +++ b/modules/lang/scheme/README.org @@ -57,7 +57,7 @@ Their executables must be present in your =$PATH= for [[doom-package:geiser]] to * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote | command | key / ex command | description | @@ -66,7 +66,7 @@ Their executables must be present in your =$PATH= for [[doom-package:geiser]] to * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -77,5 +77,5 @@ Their executables must be present in your =$PATH= for [[doom-package:geiser]] to * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/sh/README.org b/modules/lang/sh/README.org index dc19a57c9..130aed01c 100644 --- a/modules/lang/sh/README.org +++ b/modules/lang/sh/README.org @@ -54,12 +54,12 @@ This module has several optional dependencies: * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -70,5 +70,5 @@ This module has several optional dependencies: * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/sml/README.org b/modules/lang/sml/README.org index 48962c5aa..745651e02 100644 --- a/modules/lang/sml/README.org +++ b/modules/lang/sml/README.org @@ -34,12 +34,12 @@ Formatting is handled using the [[doom-module::editor format]] module via [[http * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -50,5 +50,5 @@ Formatting is handled using the [[doom-module::editor format]] module via [[http * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/solidity/README.org b/modules/lang/solidity/README.org index 5e6a7c023..680028883 100644 --- a/modules/lang/solidity/README.org +++ b/modules/lang/solidity/README.org @@ -61,12 +61,12 @@ Formatting is handled using the [[doom-module::editor format]] module via [[http * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -77,5 +77,5 @@ Formatting is handled using the [[doom-module::editor format]] module via [[http * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/swift/README.org b/modules/lang/swift/README.org index b3606f378..510653c2b 100644 --- a/modules/lang/swift/README.org +++ b/modules/lang/swift/README.org @@ -40,17 +40,17 @@ This module adds support for the [[https://developer.apple.com/swift/][Swift pro Formatting is handled using the [[doom-module::editor format]] module via [[https://github.com/nicklockwood/SwiftFormat#command-line-tool][swiftformat]]. #+begin_quote -🔨 /This module's prerequisites are not documented./ [[doom-contrib-module:][Document them?]] + 󱌣 /This module's prerequisites are not documented./ [[doom-contrib-module:][Document them?]] #+end_quote * TODO Usage #+begin_quote -🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote -🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -61,5 +61,5 @@ Formatting is handled using the [[doom-module::editor format]] module via [[http * TODO Appendix #+begin_quote -🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/terra/README.org b/modules/lang/terra/README.org index 52918e2ce..7cd3f8025 100644 --- a/modules/lang/terra/README.org +++ b/modules/lang/terra/README.org @@ -27,17 +27,17 @@ [[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]] #+begin_quote - 🔨 /No installation steps have been documented./ [[doom-contrib-module:][Document them?]] + 󱌣 /No installation steps have been documented./ [[doom-contrib-module:][Document them?]] #+end_quote * TODO Usage #+begin_quote -🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote -🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -48,5 +48,5 @@ * TODO Appendix #+begin_quote -🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/web/README.org b/modules/lang/web/README.org index b6ad7c7c5..4418f522b 100644 --- a/modules/lang/web/README.org +++ b/modules/lang/web/README.org @@ -38,7 +38,7 @@ ReactJS, Wordpress, Jekyll, Phaser, AngularJS, Djano, and more. ** TODO Hacks #+begin_quote - 🔨 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]] + 󱌣 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]] #+end_quote ** TODO Changelog @@ -53,17 +53,17 @@ ReactJS, Wordpress, Jekyll, Phaser, AngularJS, Djano, and more. Formatting is handled using the [[doom-module::editor format]] module via [[https://prettier.io/docs/en/install.html][prettier]]. #+begin_quote - 🔨 /No installation steps have been documented./ [[doom-contrib-module:][Document them?]] + 󱌣 /No installation steps have been documented./ [[doom-contrib-module:][Document them?]] #+end_quote * TODO Usage #+begin_quote -🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote -🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -74,5 +74,5 @@ Formatting is handled using the [[doom-module::editor format]] module via [[http * TODO Appendix #+begin_quote -🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/yaml/README.org b/modules/lang/yaml/README.org index 7137f7067..7d9542f6c 100644 --- a/modules/lang/yaml/README.org +++ b/modules/lang/yaml/README.org @@ -36,12 +36,12 @@ Formatting is handled using the [[doom-module::editor format]] module via [[http * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Troubleshooting @@ -52,5 +52,5 @@ Formatting is handled using the [[doom-module::editor format]] module via [[http * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/lang/zig/README.org b/modules/lang/zig/README.org index 025870913..4a0e7aa70 100644 --- a/modules/lang/zig/README.org +++ b/modules/lang/zig/README.org @@ -45,7 +45,7 @@ systems are available for download from [[https://ziglang.org/download/]] or fro * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** LSP support @@ -65,7 +65,7 @@ This module supports LSP integration. For it to work you'll need: * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Customize zls path @@ -83,5 +83,5 @@ To customize the path of the =zls= executable, modify ~lsp-zig-zls-executable~: * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/os/macos/README.org b/modules/os/macos/README.org index 97646a049..15439f307 100644 --- a/modules/os/macos/README.org +++ b/modules/os/macos/README.org @@ -30,7 +30,7 @@ This module requires a macOS environment. * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** "Open with X" @@ -51,7 +51,7 @@ To support GitHub Forge add an internet password like this to your keychain: * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -62,5 +62,5 @@ To support GitHub Forge add an internet password like this to your keychain: * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/os/tty/README.org b/modules/os/tty/README.org index 35a063f06..6d210c05b 100644 --- a/modules/os/tty/README.org +++ b/modules/os/tty/README.org @@ -56,12 +56,12 @@ need: * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** True-color and italic support @@ -76,5 +76,5 @@ terminal Emacs. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/term/eshell/README.org b/modules/term/eshell/README.org index 2c53aa762..837b8ecce 100644 --- a/modules/term/eshell/README.org +++ b/modules/term/eshell/README.org @@ -45,7 +45,7 @@ This module requires either [[https://fishshell.com/][Fish shell]] or [[https:// * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote - Command completion with Company @@ -55,7 +55,7 @@ This module requires either [[https://fishshell.com/][Fish shell]] or [[https:// * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** TERM name @@ -71,5 +71,5 @@ will not always work 100%. Modifying ~eshell-term-name~ to your liking may help. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/term/shell/README.org b/modules/term/shell/README.org index 78d4f3c88..c7b13f453 100644 --- a/modules/term/shell/README.org +++ b/modules/term/shell/README.org @@ -40,12 +40,12 @@ Provides a REPL for your shell. * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -56,5 +56,5 @@ Provides a REPL for your shell. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/term/term/README.org b/modules/term/term/README.org index 08e622e44..4e0c43b6c 100644 --- a/modules/term/term/README.org +++ b/modules/term/term/README.org @@ -29,12 +29,12 @@ * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -45,5 +45,5 @@ * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/term/vterm/README.org b/modules/term/vterm/README.org index 0cc3c9ef4..8db507668 100644 --- a/modules/term/vterm/README.org +++ b/modules/term/vterm/README.org @@ -119,7 +119,7 @@ There are several ways to manually install the module: #+end_src #+begin_quote - 🚧 Emacs will hang during the compilation. It may take a while. + 󰐃 Emacs will hang during the compilation. It may take a while. #+end_quote 2. You can compile and install the module yourself. Go to the vterm installation @@ -140,7 +140,7 @@ There are several ways to manually install the module: * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote The following commands are available to open it: @@ -151,7 +151,7 @@ The following commands are available to open it: * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -162,5 +162,5 @@ The following commands are available to open it: * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/tools/ansible/README.org b/modules/tools/ansible/README.org index 74de1be2e..494cd6a82 100644 --- a/modules/tools/ansible/README.org +++ b/modules/tools/ansible/README.org @@ -33,12 +33,12 @@ This module requires [[https://www.ansible.com/][Ansible]]. * TODO Usage #+begin_quote -🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote -🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -49,5 +49,5 @@ This module requires [[https://www.ansible.com/][Ansible]]. * TODO Appendix #+begin_quote -🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/tools/biblio/README.org b/modules/tools/biblio/README.org index 230d23958..3f70459d2 100644 --- a/modules/tools/biblio/README.org +++ b/modules/tools/biblio/README.org @@ -137,5 +137,5 @@ in-depth instructions. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/tools/debugger/README.org b/modules/tools/debugger/README.org index 11f21e568..862febc63 100644 --- a/modules/tools/debugger/README.org +++ b/modules/tools/debugger/README.org @@ -35,7 +35,7 @@ there is still not *enough* documentation for it. * TODO Installation #+begin_quote - 🔨 /This module's prerequisites documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's prerequisites documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote [[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]] @@ -127,7 +127,7 @@ using the mode-specific way. ** TODO realgud #+begin_quote - 🔨 Instructions for realgud haven't been written yet. [[doom-contrib-module:][Write some?]] + 󱌣 Instructions for realgud haven't been written yet. [[doom-contrib-module:][Write some?]] #+end_quote ** dap-mode @@ -198,7 +198,7 @@ The hydra is defined as follows: * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -213,5 +213,5 @@ This currently is not supported by realgud. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/tools/direnv/README.org b/modules/tools/direnv/README.org index 7e66b2007..9ff377eab 100644 --- a/modules/tools/direnv/README.org +++ b/modules/tools/direnv/README.org @@ -7,7 +7,7 @@ This module integrates direnv into Emacs. #+begin_quote - 📌 direnv is an environment switcher for the shell. It knows how to hook into + 󰐃 direnv is an environment switcher for the shell. It knows how to hook into bash, zsh, tcsh, fish shell and elvish to load or unload environment variables depending on the current directory. This allows project-specific environment variables without cluttering the ~/.profile file. @@ -65,7 +65,7 @@ Or ~$ nix-env -i direnv~ * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote To make use of direnv you need a =.envrc= file in a directory. Any time you open @@ -74,7 +74,7 @@ activate the local env, and inject it into Emacs for the current buffer. * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -92,5 +92,5 @@ services.lorri.enable = true; * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/tools/docker/README.org b/modules/tools/docker/README.org index e6bb483de..3af7085c8 100644 --- a/modules/tools/docker/README.org +++ b/modules/tools/docker/README.org @@ -44,7 +44,7 @@ Optionally, this module also uses the following programs: * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Docker control @@ -88,7 +88,7 @@ C-x C-f /docker:$USER@$CONTAINER:/path/to/file * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Popups @@ -145,5 +145,5 @@ For older versions of TRAMP you can dump [[https://github.com/emacs-pe/docker-tr * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/tools/editorconfig/README.org b/modules/tools/editorconfig/README.org index 0f1f1187f..967df04f8 100644 --- a/modules/tools/editorconfig/README.org +++ b/modules/tools/editorconfig/README.org @@ -50,7 +50,7 @@ in the root of your project) you can find out about all the properties [[https:/ * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Adding support for more major modes @@ -83,5 +83,5 @@ session of Emacs. Look for variables that have the words =indent=, =offset= or * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/tools/ein/README.org b/modules/tools/ein/README.org index a4944073c..f62c1fda7 100644 --- a/modules/tools/ein/README.org +++ b/modules/tools/ein/README.org @@ -26,19 +26,19 @@ Adds [[https://jupyter.org/][Jupyter]] notebook integration into Emacs. [[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]] #+begin_quote - 🔨 /This module's prerequisites are not documented./ [[doom-contrib-module:][Document them?]] + 󱌣 /This module's prerequisites are not documented./ [[doom-contrib-module:][Document them?]] #+end_quote * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote Refer to [[https://github.com/millejoh/emacs-ipython-notebook][millejoh/emacs-ipython-notebook's README]]. * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -49,5 +49,5 @@ Refer to [[https://github.com/millejoh/emacs-ipython-notebook][millejoh/emacs-ip * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/tools/eval/README.org b/modules/tools/eval/README.org index ea641cf2e..5e9184f5a 100644 --- a/modules/tools/eval/README.org +++ b/modules/tools/eval/README.org @@ -40,7 +40,7 @@ documentation of their respective [[doom-module::lang]] module for instructions. * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Inline Code Evaluation @@ -62,7 +62,7 @@ Invoked via: * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Register a REPL for a major-mode @@ -130,5 +130,5 @@ Or if you'd rather run an elisp command: * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/tools/gist/README.org b/modules/tools/gist/README.org index 2893e3f34..c2f09021a 100644 --- a/modules/tools/gist/README.org +++ b/modules/tools/gist/README.org @@ -4,7 +4,7 @@ #+since: 2.0.3 #+begin_quote - 🚧 *This module is deprecated.* gist.el has been abandoned and is generally +  *This module is deprecated.* gist.el has been abandoned and is generally buggy. This may be replaced by a more general pastebin module that interfaces with various pastebin servers. #+end_quote @@ -35,12 +35,12 @@ Adds the ability to manage, pull from, or push to your [[https://gist.github.com * TODO Usage #+begin_quote -🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote -🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -51,5 +51,5 @@ Adds the ability to manage, pull from, or push to your [[https://gist.github.com * TODO Appendix #+begin_quote -🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/tools/lookup/README.org b/modules/tools/lookup/README.org index aeca1c623..9a8452f96 100644 --- a/modules/tools/lookup/README.org +++ b/modules/tools/lookup/README.org @@ -218,7 +218,7 @@ Emacs): #+end_src #+begin_quote - 📌 ~+lookup/in-docsets~ consults ~dash-docs-browser-func~ instead, which is + 󰐃 ~+lookup/in-docsets~ consults ~dash-docs-browser-func~ instead, which is already set to ~#'eww~ by default. #+end_quote @@ -241,7 +241,7 @@ with Xwidgets support): * TODO Appendix #+begin_quote - 🔨 /This module's appendix is incomplete./ [[doom-contrib-module:][Write more?]] + 󱌣 /This module's appendix is incomplete./ [[doom-contrib-module:][Write more?]] #+end_quote ** Commands diff --git a/modules/tools/lsp/README.org b/modules/tools/lsp/README.org index cf8c3c1a5..afc2978f9 100644 --- a/modules/tools/lsp/README.org +++ b/modules/tools/lsp/README.org @@ -80,7 +80,7 @@ including instructions to register your own. * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** LSP-powered project search @@ -109,7 +109,7 @@ it can only be compared in (very) broad strokes: with TRAMP out-of-the-box (lsp-mode needs some extra configuration). #+begin_quote - 💬 I recommend beginners use lsp-mode. More experienced users may also opt to + 󰟶 I recommend beginners use lsp-mode. More experienced users may also opt to disable many of [[https://emacs-lsp.github.io/lsp-mode/tutorials/how-to-turn-off/][its inessential features]] to gain back some ground on performance and complexity costs. #+end_quote @@ -119,7 +119,7 @@ in/out the [[doom-module:+lsp]] or [[doom-module:+eglot]] flag when [[id:01cffea * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Turn off lsp-mode's intrusive features @@ -151,5 +151,5 @@ Follow [[https://emacs-lsp.github.io/lsp-mode/page/performance/#tuning][lsp-tuni * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/tools/magit/README.org b/modules/tools/magit/README.org index 48caabf1c..2a66243a5 100644 --- a/modules/tools/magit/README.org +++ b/modules/tools/magit/README.org @@ -46,7 +46,7 @@ This module requires: * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote Start magit with [[kbd:][ g g]] (~M-x magit-status~). @@ -55,7 +55,7 @@ If you are new to Magit, see the [[https://github.com/magit/magit#getting-starte * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Enable Gravatars @@ -95,5 +95,5 @@ machine api.github.com login yourlogin^code-review password MYTOKENGOESHERE * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/tools/make/README.org b/modules/tools/make/README.org index a3ffbe4e1..8a3c10ecc 100644 --- a/modules/tools/make/README.org +++ b/modules/tools/make/README.org @@ -29,7 +29,7 @@ This module requires ~make~. * TODO Usage #+begin_quote -🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote To invoke a make command: ~M-x +make/run~ @@ -38,7 +38,7 @@ To rerun the last make command: ~M-x +make/run-last~ * TODO Configuration #+begin_quote -🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -49,5 +49,5 @@ To rerun the last make command: ~M-x +make/run-last~ * TODO Appendix #+begin_quote -🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/tools/pass/README.org b/modules/tools/pass/README.org index e34b615ae..47b676161 100644 --- a/modules/tools/pass/README.org +++ b/modules/tools/pass/README.org @@ -34,7 +34,7 @@ This module requires [[https://www.passwordstore.org/][pass]], [[https://gnupg.o * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote Start using this module with ~M-x pass~. @@ -49,7 +49,7 @@ Start using this module with ~M-x pass~. * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -60,5 +60,5 @@ Start using this module with ~M-x pass~. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/tools/pdf/README.org b/modules/tools/pdf/README.org index aec680dcc..4f96c5223 100644 --- a/modules/tools/pdf/README.org +++ b/modules/tools/pdf/README.org @@ -27,7 +27,7 @@ for details and videos. ** TODO Hacks #+begin_quote - 🔨 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]] + 󱌣 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]] #+end_quote ** TODO Changelog @@ -99,12 +99,12 @@ build the =epdfinfo= program on Windows. * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -115,5 +115,5 @@ build the =epdfinfo= program on Windows. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/tools/prodigy/README.org b/modules/tools/prodigy/README.org index b34345883..599a970c2 100644 --- a/modules/tools/prodigy/README.org +++ b/modules/tools/prodigy/README.org @@ -30,12 +30,12 @@ Emacs. * TODO Usage #+begin_quote -🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote -🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -46,5 +46,5 @@ Emacs. * TODO Appendix #+begin_quote -🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/tools/rgb/README.org b/modules/tools/rgb/README.org index 9873d4b34..5e35fb60b 100644 --- a/modules/tools/rgb/README.org +++ b/modules/tools/rgb/README.org @@ -4,7 +4,7 @@ #+since: 21.12.0 #+begin_quote - 🚧 *This module is deprecated.* The module is too trivial to warrant a module. +  *This module is deprecated.* The module is too trivial to warrant a module. #+end_quote * Description :unfold: @@ -57,5 +57,5 @@ disable it only when =rainbow-mode= is active, you can add the following hook: * TODO Appendix #+begin_quote -🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/tools/taskrunner/README.org b/modules/tools/taskrunner/README.org index 36ee42237..ce5806e95 100644 --- a/modules/tools/taskrunner/README.org +++ b/modules/tools/taskrunner/README.org @@ -4,7 +4,7 @@ #+since: 21.12.0 #+begin_quote - 🚧 *This module is deprecated.* The module is too trivial and taskrunner is no +  *This module is deprecated.* The module is too trivial and taskrunner is no longer maintained. #+end_quote @@ -37,7 +37,7 @@ from build systems like make, gradle, npm and the like. * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote Keybindings: @@ -46,7 +46,7 @@ Keybindings: * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -57,5 +57,5 @@ Keybindings: * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/tools/terraform/README.org b/modules/tools/terraform/README.org index 0c53827cb..ade7f1820 100644 --- a/modules/tools/terraform/README.org +++ b/modules/tools/terraform/README.org @@ -64,7 +64,7 @@ Terraform operations: * TODO Configuration #+begin_quote -🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -75,5 +75,5 @@ Terraform operations: * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/tools/tmux/README.org b/modules/tools/tmux/README.org index 8dd78e818..ed976f94a 100644 --- a/modules/tools/tmux/README.org +++ b/modules/tools/tmux/README.org @@ -29,12 +29,12 @@ This module provides an API for talking to Tmux sessions. * TODO Usage #+begin_quote -🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote -🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -45,5 +45,5 @@ This module provides an API for talking to Tmux sessions. * TODO Appendix #+begin_quote -🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/tools/tree-sitter/README.org b/modules/tools/tree-sitter/README.org index 09a14cee4..a13d58a9d 100644 --- a/modules/tools/tree-sitter/README.org +++ b/modules/tools/tree-sitter/README.org @@ -7,7 +7,7 @@ This module adds [[https://tree-sitter.github.io/tree-sitter/][tree-sitter]] support to Doom Emacs. #+begin_quote - 💬 Tree sitter is a parser generator tool and an incremental parsing library. + 󰟶 Tree sitter is a parser generator tool and an incremental parsing library. It can build a concrete syntax tree for a source file and efficiently update the syntax tree as the source file is edited. This allows for features of the editor to become syntax aware. @@ -47,7 +47,7 @@ out what you're missing. * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Language support @@ -63,7 +63,7 @@ Not all languages support all text objects (yet). [[https://github.com/nvim-tree object languages support]]. #+begin_quote - 🚧 Only languages with parsers in Emacs have text object support at the moment. +  Only languages with parsers in Emacs have text object support at the moment. #+end_quote Currently text objects are bound to: @@ -97,7 +97,7 @@ Currently keys are bound to: * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Rebind text objects @@ -159,5 +159,5 @@ current key bound) or [[https://github.com/nvim-treesitter/nvim-treesitter-texto * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/tools/upload/README.org b/modules/tools/upload/README.org index a1b423be9..0cdff03e6 100644 --- a/modules/tools/upload/README.org +++ b/modules/tools/upload/README.org @@ -38,7 +38,7 @@ The idea for this plug-in was to mimic the behavior of PhpStorm deployment funct * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote Uses ~ssh-deploy~ to map a local folder to a remote one. Set @@ -51,13 +51,13 @@ to establish this mapping. E.g. #+end_src #+begin_quote - 📌 ~ssh-deploy-root-local~ is optional, and will resort to ~doom-project-root~ + 󰐃 ~ssh-deploy-root-local~ is optional, and will resort to ~doom-project-root~ if unspecified. #+end_quote * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote Check out [[https://github.com/cjohansson/emacs-ssh-deploy#deployment-configuration-examples][Deployment configuration examples]] for some ideas of what's possible. @@ -75,5 +75,5 @@ The final directory names much match: * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/ui/deft/README.org b/modules/ui/deft/README.org index 66eeeb997..332c152f6 100644 --- a/modules/ui/deft/README.org +++ b/modules/ui/deft/README.org @@ -31,12 +31,12 @@ quickly jot down thoughts and easily retrieve them later. * TODO Usage #+begin_quote -🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote To use deft, you first need to specify the directory in which your notes are @@ -71,5 +71,5 @@ https://github.com/jrblevin/deft#other-customizations * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/ui/doom-dashboard/README.org b/modules/ui/doom-dashboard/README.org index 21eb3e116..8f69efc3f 100644 --- a/modules/ui/doom-dashboard/README.org +++ b/modules/ui/doom-dashboard/README.org @@ -53,7 +53,7 @@ You can forcibly open the dashboard with ~M-x +doom-dashboard/open~. * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** A custom banner @@ -63,7 +63,7 @@ To use a custom image as your banner, change ~fancy-splash-image~: #+end_src #+begin_quote - 📌 Doom will fall back to its ASCII banner in Terminal Emacs. To replace the + 󰐃 Doom will fall back to its ASCII banner in Terminal Emacs. To replace the ASCII banner, replace the ~doom-dashboard-widget-banner~ function in ~+doom-dashboard-functions~ with a function that inserts your new banner into the current file. @@ -75,7 +75,7 @@ redraw. Add your own functions to operate on the buffer and potentially add whatever you like to Doom's splash screen. #+begin_quote - 🚧 Keep in mind that inserting text from expensive sources, e.g. your org +  Keep in mind that inserting text from expensive sources, e.g. your org agenda, will negate most of Doom's startup benefits. #+end_quote @@ -113,5 +113,5 @@ or for a per-theme setting * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/ui/doom-quit/README.org b/modules/ui/doom-quit/README.org index fb67ff468..3b98dea43 100644 --- a/modules/ui/doom-quit/README.org +++ b/modules/ui/doom-quit/README.org @@ -37,7 +37,7 @@ Quit Emacs with [[kbd:][ q q]] and watch it go. The prompt only happens have (real) buffers open. #+begin_quote - 🚧 This module won't kick in when killing daemon frames (because that isn't +  This module won't kick in when killing daemon frames (because that isn't actually “quitting” Emacs). #+end_quote diff --git a/modules/ui/doom/README.org b/modules/ui/doom/README.org index 12c2eec10..e614537f8 100644 --- a/modules/ui/doom/README.org +++ b/modules/ui/doom/README.org @@ -37,12 +37,12 @@ This module gives Doom its signature look: powered by the [[doom-package:doom-th * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Changing theme @@ -111,5 +111,5 @@ solaire-mode package: * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/ui/emoji/README.org b/modules/ui/emoji/README.org index a1c065a63..cda1b56ca 100644 --- a/modules/ui/emoji/README.org +++ b/modules/ui/emoji/README.org @@ -52,12 +52,12 @@ PNG support might require some additional steps to on Windows, you might find * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -68,5 +68,5 @@ PNG support might require some additional steps to on Windows, you might find * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/ui/hl-todo/README.org b/modules/ui/hl-todo/README.org index 642b25b62..c369c3104 100644 --- a/modules/ui/hl-todo/README.org +++ b/modules/ui/hl-todo/README.org @@ -32,7 +32,7 @@ This module adds syntax highlighting for various tags in code comments, such as * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote By enabling this module, the following keywords will be highlighted if they @@ -62,7 +62,7 @@ occur in code comments: * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote To add your own ITEMS you would need to configure them using @@ -83,5 +83,5 @@ To add your own ITEMS you would need to configure them using * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/ui/hydra/README.org b/modules/ui/hydra/README.org index 1218fb403..688bf4f4b 100644 --- a/modules/ui/hydra/README.org +++ b/modules/ui/hydra/README.org @@ -4,7 +4,7 @@ #+since: 2.0.0 #+begin_quote - 🚧 *This module is deprecated.* The module is too trivially small, and it's +  *This module is deprecated.* The module is too trivially small, and it's always been unclear how hydra fits into Doom's vision for its UI. It's been decided that Doom will head toward Embark, transient, or hercules instead. #+end_quote @@ -39,12 +39,12 @@ start with: * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote Configuring this module is only setting bindings to the provided hydra, or @@ -58,5 +58,5 @@ creating your own ones! * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/ui/indent-guides/README.org b/modules/ui/indent-guides/README.org index 9101396f4..d0496e9df 100644 --- a/modules/ui/indent-guides/README.org +++ b/modules/ui/indent-guides/README.org @@ -29,12 +29,12 @@ * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -45,5 +45,5 @@ * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/ui/ligatures/README.org b/modules/ui/ligatures/README.org index 29a298b53..b893a4662 100644 --- a/modules/ui/ligatures/README.org +++ b/modules/ui/ligatures/README.org @@ -63,7 +63,7 @@ This module requires one of three setups for ligatures to work: * Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Mathematical symbols replacement @@ -257,5 +257,5 @@ This can usually be fixed by doing one of the following: * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/ui/minimap/README.org b/modules/ui/minimap/README.org index 56dbd7225..f4949135c 100644 --- a/modules/ui/minimap/README.org +++ b/modules/ui/minimap/README.org @@ -27,7 +27,7 @@ feature found in many other editors. * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote A minimap which provides an overview of the current buffer to the side, @@ -36,7 +36,7 @@ and drag to scroll along the buffer, or right-click anywhere to jump to there. * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote There are a number of options provided by the =minimap.el= package this module @@ -55,5 +55,5 @@ Disable the minimap using [[kbd:][SPC t m]]. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/ui/modeline/README.org b/modules/ui/modeline/README.org index bfc74a221..128babe4f 100644 --- a/modules/ui/modeline/README.org +++ b/modules/ui/modeline/README.org @@ -36,7 +36,7 @@ powered by the [[doom-package:doom-modeline]] package (where you can find screen * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Hiding the modeline @@ -52,7 +52,7 @@ powered by the [[doom-package:doom-modeline]] package (where you can find screen * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** TODO Changing the default modeline @@ -132,7 +132,7 @@ Some possible solutions: * TODO Appendix #+begin_quote - 🔨 /This module's appendix is incomplete./ [[doom-contrib-module:][Write more?]] + 󱌣 /This module's appendix is incomplete./ [[doom-contrib-module:][Write more?]] #+end_quote ** Autodefs diff --git a/modules/ui/nav-flash/README.org b/modules/ui/nav-flash/README.org index bf089bc7c..155f1fada 100644 --- a/modules/ui/nav-flash/README.org +++ b/modules/ui/nav-flash/README.org @@ -48,7 +48,7 @@ is added to the jump-list (managed by [[doom-package:better-jumper]]). * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -59,5 +59,5 @@ is added to the jump-list (managed by [[doom-package:better-jumper]]). * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/ui/neotree/README.org b/modules/ui/neotree/README.org index 85792b04f..f12191aa3 100644 --- a/modules/ui/neotree/README.org +++ b/modules/ui/neotree/README.org @@ -23,7 +23,7 @@ NERDTree. ** TODO Hacks #+begin_quote - 🔨 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]] + 󱌣 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]] #+end_quote ** TODO Changelog @@ -37,12 +37,12 @@ NERDTree. * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -53,5 +53,5 @@ NERDTree. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/ui/ophints/README.org b/modules/ui/ophints/README.org index 26b4aff43..181d82075 100644 --- a/modules/ui/ophints/README.org +++ b/modules/ui/ophints/README.org @@ -36,12 +36,12 @@ Uses [[doom-package:evil-goggles]] for evil users and [[doom-package:volatile-hi * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -52,5 +52,5 @@ Uses [[doom-package:evil-goggles]] for evil users and [[doom-package:volatile-hi * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/ui/popup/README.org b/modules/ui/popup/README.org index 38e4c37e7..dd810e1f0 100644 --- a/modules/ui/popup/README.org +++ b/modules/ui/popup/README.org @@ -61,12 +61,12 @@ clean up after itself and kill off buffers I mark as transient. * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** ~set-popup-rule!~ and ~set-popup-rules!~ @@ -81,7 +81,7 @@ buffer's name. You'll find comprehensive documentation on the other keywords in ~set-popup-rule!~'s docstring ([[kbd:][SPC h f set-popup-rule!]]). #+begin_quote - 📌 Popup rules end up in ~display-buffer-alist~, which instructs + 󰐃 Popup rules end up in ~display-buffer-alist~, which instructs ~display-buffer~ calls on how to set up windows for buffers that meet certain conditions. However, some plugins can avoid it entirely if they use ~set-buffer~ or ~switch-to-buffer~, which don't obey ~display-buffer-alist~. @@ -128,7 +128,7 @@ By default, the mode-line is hidden in popups. To disable this, you can either: * TODO Appendix #+begin_quote - 🔨 /This module's appendix is incomplete./ [[doom-contrib-module:][Write more?]] + 󱌣 /This module's appendix is incomplete./ [[doom-contrib-module:][Write more?]] #+end_quote ** Commands diff --git a/modules/ui/tabs/README.org b/modules/ui/tabs/README.org index cec4965cb..8fa3c23a3 100644 --- a/modules/ui/tabs/README.org +++ b/modules/ui/tabs/README.org @@ -29,12 +29,12 @@ This module adds an Atom-esque tab bar to the Emacs UI. * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -45,5 +45,5 @@ This module adds an Atom-esque tab bar to the Emacs UI. * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/ui/treemacs/README.org b/modules/ui/treemacs/README.org index f28071cb2..67251f15a 100644 --- a/modules/ui/treemacs/README.org +++ b/modules/ui/treemacs/README.org @@ -46,7 +46,7 @@ status for files. * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote The project bar can be opened using [[kbd:][SPC o p]]. @@ -58,7 +58,7 @@ The project bar can be opened using [[kbd:][SPC o p]]. * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote The variable ~+treemacs-git-mode~ sets the type of git integration that treemacs @@ -72,7 +72,7 @@ There are 3 possible values: 3. ~'deferred~, same as extended, but highlights asynchronously. #+begin_quote - 🚧 ~+treemacs-git-mode~ must be set before treemacs is loaded. + 󰐃 ~+treemacs-git-mode~ must be set before treemacs is loaded. #+end_quote * Troubleshooting @@ -83,5 +83,5 @@ There are 3 possible values: * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/ui/unicode/README.org b/modules/ui/unicode/README.org index c3b783ecc..a9180609e 100644 --- a/modules/ui/unicode/README.org +++ b/modules/ui/unicode/README.org @@ -45,12 +45,12 @@ When this module is enabled: * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote The first font that will be analyzed to see if it contains the glyphs of @@ -134,5 +134,5 @@ rm -f $EMACSDIR/.local/cache/pcache/unicode-fonts * TODO Appendix #+begin_quote - 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/ui/vc-gutter/README.org b/modules/ui/vc-gutter/README.org index 3fd6f3c63..d8f56e1b4 100644 --- a/modules/ui/vc-gutter/README.org +++ b/modules/ui/vc-gutter/README.org @@ -64,12 +64,12 @@ projects version controlled by them. * TODO Usage #+begin_quote -🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote -🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -80,5 +80,5 @@ projects version controlled by them. * TODO Appendix #+begin_quote -🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/ui/vi-tilde-fringe/README.org b/modules/ui/vi-tilde-fringe/README.org index 7302a4797..933910ac2 100644 --- a/modules/ui/vi-tilde-fringe/README.org +++ b/modules/ui/vi-tilde-fringe/README.org @@ -56,5 +56,5 @@ Or add new modes where you would like ~vi-tilde-fringe-mode~ enabled: * TODO Appendix #+begin_quote -🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/ui/window-select/README.org b/modules/ui/window-select/README.org index a36416922..16f92a821 100644 --- a/modules/ui/window-select/README.org +++ b/modules/ui/window-select/README.org @@ -43,12 +43,12 @@ desired. Evil users can jump to window N in [[kbd:][C-w ]] (where N is a numb * TODO Usage #+begin_quote - 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote - 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote This module provides two backends, both providing the same functionality, but @@ -86,5 +86,5 @@ Replaces the entire buffer with large letters. * TODO Appendix #+begin_quote -🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote diff --git a/modules/ui/workspaces/README.org b/modules/ui/workspaces/README.org index 33e068853..d99f4ea1b 100644 --- a/modules/ui/workspaces/README.org +++ b/modules/ui/workspaces/README.org @@ -29,7 +29,7 @@ for manipulating them. ** TODO Hacks #+begin_quote - 🔨 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]] + 󱌣 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]] #+end_quote ** TODO Changelog @@ -43,7 +43,7 @@ for manipulating them. * TODO Usage #+begin_quote - 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] + 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote ** Isolated buffer-list @@ -91,7 +91,7 @@ in [[../../editor/evil/+commands.el][config/default/+evil-commands.el]]). * TODO Configuration #+begin_quote -🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -102,7 +102,7 @@ in [[../../editor/evil/+commands.el][config/default/+evil-commands.el]]). * TODO Appendix #+begin_quote - 🔨 /This module's appendix is incomplete./ [[doom-contrib-module:][Write more?]] + 󱌣 /This module's appendix is incomplete./ [[doom-contrib-module:][Write more?]] #+end_quote ** API diff --git a/modules/ui/zen/README.org b/modules/ui/zen/README.org index 0518fe94e..0911714e3 100644 --- a/modules/ui/zen/README.org +++ b/modules/ui/zen/README.org @@ -66,7 +66,7 @@ Invoke either command again to undo the change. * TODO Configuration #+begin_quote -🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] + 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting @@ -77,5 +77,5 @@ Invoke either command again to undo the change. * TODO Appendix #+begin_quote -🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] + 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote From 589f92c086d5ea72c4e3b8ac7db1d5a95009ed2e Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 16 Sep 2023 20:26:01 +0200 Subject: [PATCH 169/523] docs: use GH markdown alerts --- README.md | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index b47a7aecd..9a01c856d 100644 --- a/README.md +++ b/README.md @@ -98,20 +98,23 @@ Check out [the FAQ][FAQ] for answers to common questions about the project. # Prerequisites -+ Git 2.23+ -+ Emacs 27.1–29.1 (**Recommended: 29.1 + +- Git 2.23+ +- Emacs 27.1–29.1 (**Recommended: 29.1 + [native-comp](https://www.emacswiki.org/emacs/GccEmacs)**) - > :warning: Unstable and pre-release builds of Emacs -- which end in `.50`, - > `.60`, or `.9X` (e.g. `28.1.91`) -- **are not officially supported**. There - > *is* some effort to support Emacs HEAD, however. [Follow this Discourse - > post](https://discourse.doomemacs.org/t/3241) for details. -+ [ripgrep] 11.0+ -+ GNU `find` -+ *OPTIONAL:* [fd] 7.3.0+ (improves file indexing performance for some commands) - -Doom is comprised of [~150 optional modules][Modules], some of which may have -additional dependencies. [Visit their documentation][Modules] or run `bin/doom -doctor` to check for any that you may have missed. +- [ripgrep] 11.0+ +- GNU `find` +- *OPTIONAL:* [fd] 7.3.0+ (improves file indexing performance for some commands) + +> [!WARNING] +> Unstable and pre-release builds of Emacs -- which end in `.50`, `.60`, or +> `.9X` (e.g. `28.1.91`) -- **are not officially supported**. There *is* some +> effort to support Emacs HEAD, however. [Follow this Discourse +> post](https://discourse.doomemacs.org/t/3241) for details. + +> [!IMPORTANT] +> Doom is comprised of [~150 optional modules][Modules], some of which may have +> additional dependencies. [Visit their documentation][Modules] or run `bin/doom +> doctor` to check for any that you may have missed. # Install From 41de7d9d0173c617261ac58324c6b562c2d95f31 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 16 Sep 2023 20:35:31 +0200 Subject: [PATCH 170/523] bump: :lang org TobiasZawada/org-yt@158e20204cd9 -> TobiasZawada/org-yt@56166f48e04d emacs-straight/org-mode@d6f3aed7b1b0 -> emacs-straight/org-mode@e90a8a69a7fa emacsmirror/org-contrib@4ac1a280c740 -> emacsmirror/org-contrib@dc59cdd46be8 fuxialexander/org-pdftools@967f48fb5038 -> fuxialexander/org-pdftools@4e420233a153 hakimel/reveal.js@12f5ba4c9d53 -> hakimel/reveal.js@07a6cf1249e4 oer/org-re-reveal@592985019905 -> oer/org-re-reveal@93396b531ba1 org-noter/org-noter@f9710c976823 -> org-noter/org-noter@ab838691f0d6 snosov1/toc-org@bf2e4b358efb -> snosov1/toc-org@6d3ae0fc47ce takaxp/org-tree-slide@97273dbb1718 -> takaxp/org-tree-slide@e2599a106a26 - Fixes package download errors while installing emacsmirror/org-contrib@4ac1a280c740, which is an orphaned commit. --- modules/lang/org/packages.el | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/modules/lang/org/packages.el b/modules/lang/org/packages.el index 7c054b368..f67a07819 100644 --- a/modules/lang/org/packages.el +++ b/modules/lang/org/packages.el @@ -31,19 +31,19 @@ (format "(defun org-git-version (&rest _) \"%s-??-%s\")\n" version (cdr (doom-call-process "git" "rev-parse" "--short" "HEAD"))) "(provide 'org-version)\n"))))) - :pin "d6f3aed7b1b01df7b092a47099205847b34fdd37") + :pin "e90a8a69a7fa2d83c995b5d32bc0b24a68218ed3") (package! org-contrib :recipe (:host github :repo "emacsmirror/org-contrib") - :pin "4ac1a280c740df121bcefb2ec99ddba945e857d3") + :pin "dc59cdd46be8f6854c5d6e9252263d0e4e62e896") (package! avy) (package! htmlize :pin "dd27bc3f26efd728f2b1f01f9e4ac4f61f2ffbf9") (package! org-yt :recipe (:host github :repo "TobiasZawada/org-yt") - :pin "158e20204cd952a77c1e561552f1cdbfb1a5acb6") + :pin "56166f48e04d83668f70ed84706b7a4d8b1e5438") (package! ox-clip :pin "ff117cf3c619eef12eccc0ccbfa3f11adb73ea68") -(package! toc-org :pin "bf2e4b358efbd860ecafe6e74776de0885d9d100") +(package! toc-org :pin "6d3ae0fc47ce79b1ea06cabe21a3c596395409cd") (package! org-cliplink :pin "13e0940b65d22bec34e2de4bc8cba1412a7abfbc") ;; TODO Adjust when this is added to GNU ELPA @@ -69,7 +69,7 @@ :recipe (:host github :repo "hlissner/evil-org-mode") :pin "a9706da260c45b98601bcd72b1d2c0a24a017700")) (when (modulep! :tools pdf) - (package! org-pdftools :pin "967f48fb5038bba32915ee9da8dc4e8b10ba3376")) + (package! org-pdftools :pin "4e420233a153a9c4ab3d1a7e1d7d3211c836f0ac")) (when (modulep! :tools magit) (package! orgit :pin "4a585029875a1dbbe96d8ac157bd2fd02875f289") (when (modulep! :tools magit +forge) @@ -88,7 +88,7 @@ (when (modulep! +journal) (package! org-journal :pin "18df4d5ae5e15580df42562c143d007c6d28d75f")) (when (modulep! +noter) - (package! org-noter :pin "f9710c976823c180070cee4e958e0dc4531ba0de")) + (package! org-noter :pin "ab838691f0d6ae281597451de311f71a50ba8da6")) (when (modulep! +pomodoro) (package! org-pomodoro :pin "3f5bcfb80d61556d35fc29e5ddb09750df962cc6")) (when (modulep! +pretty) @@ -99,12 +99,12 @@ (package! centered-window :recipe (:host github :repo "anler/centered-window-mode") :pin "80965f6c6afe8d918481433984b493de72af5399") - (package! org-tree-slide :pin "97273dbb1718e9f63d338468e4c310167a846a67") - (package! org-re-reveal :pin "592985019905447d5f1fd6e24d14bfa9f4adf2f3") + (package! org-tree-slide :pin "e2599a106a26ce5511095e23df4ea04be6687a8a") + (package! org-re-reveal :pin "93396b531ba13219bdbb968c197d5c44535ce1cd") (package! revealjs :recipe (:host github :repo "hakimel/reveal.js" :files ("css" "dist" "js" "plugin")) - :pin "12f5ba4c9d53c500ec20aea2cc8b8f66e725026a")) + :pin "07a6cf1249e40164705713ed9ad60f13846789fb")) (cond ((modulep! +roam) (package! org-roam From 5f3a667400e77c41f170dd99634c0efc7ea3ae42 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 17 Sep 2023 03:17:12 +0200 Subject: [PATCH 171/523] bump: :lang cc Andersbakken/rtags@9e442e5b30b6 -> Andersbakken/rtags@ee1ab7b9a6c8 emacs-lsp/emacs-ccls@29d231590fad -> emacs-lsp/emacs-ccls@dd33da8ed74e emacsmirror/cmake-mode@6ce56331445a -> emacsmirror/cmake-mode@f9c7a21254a8 jart/disaster@0c13bd244cc4 -> jart/disaster@16bba9afb92a - emacsmirror/cmake-mode@6ce56331445a was an orphaned commit. Fix: #7434 --- modules/lang/cc/packages.el | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/lang/cc/packages.el b/modules/lang/cc/packages.el index ebf67ec56..67bc7bb2b 100644 --- a/modules/lang/cc/packages.el +++ b/modules/lang/cc/packages.el @@ -3,10 +3,10 @@ (package! cmake-mode :recipe (:host github :repo "emacsmirror/cmake-mode" :files (:defaults "*")) - :pin "6ce56331445ad7ef79a11d5a3163364a883067c2") + :pin "f9c7a21254a82a8d44b623bdfded6d21b4ea33ef") (package! cuda-mode :pin "7f593518fd135fc6af994024bcb47986dfa502d2") (package! demangle-mode :pin "04f545adab066708d6151f13da65aaf519f8ac4e") -(package! disaster :pin "0c13bd244cc43773af81e52ce73a55f199d58a61") +(package! disaster :pin "16bba9afb92aacf06c088c29ba47813b65a80d87") (package! modern-cpp-font-lock :pin "43c6b68ff58fccdf9deef11674a172e4eaa8455c") (package! opencl-mode :pin "15091eff92c33ee0d1ece40eb99299ef79fee92d") @@ -19,7 +19,7 @@ (if (modulep! +lsp) (unless (modulep! :tools lsp +eglot) ;; ccls package is necessary only for lsp-mode. - (package! ccls :pin "29d231590fad39b4d658d9262859e60669edb9b0")) + (package! ccls :pin "dd33da8ed74ea3936c1ac969fe1be02879825e86")) (when (package! irony :pin "870d1576fb279bb93f776a71e65f45283c423a9e") (package! irony-eldoc :pin "73e79a89fad982a2ba072f2fcc1b4e41f0aa2978") (when (and (modulep! :checkers syntax) @@ -28,7 +28,7 @@ (when (modulep! :completion company) (package! company-irony :pin "b44711dfce445610c1ffaec4951c6ff3882b216a") (package! company-irony-c-headers :pin "72c386aeb079fb261d9ec02e39211272f76bbd97"))) - (when (package! rtags :pin "9e442e5b30b6e9bbd3eb3bbc59db33177f15d730") + (when (package! rtags :pin "ee1ab7b9a6c88dc05282d9e3c64c0d380bf53c11") (when (modulep! :completion ivy) (package! ivy-rtags)) (when (modulep! :completion helm) From 8230b78ad515351d42f8e9bd64b09b394dff79c7 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 17 Sep 2023 03:23:21 +0200 Subject: [PATCH 172/523] fix(ligatures): set-font-ligatures! Old lexical variable reference caused an error. Ref: #7433 Amend: #5082 Amend: 46d7404befcd --- modules/ui/ligatures/autoload/ligatures.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ui/ligatures/autoload/ligatures.el b/modules/ui/ligatures/autoload/ligatures.el index 97cf5685a..25d71dfb8 100644 --- a/modules/ui/ligatures/autoload/ligatures.el +++ b/modules/ui/ligatures/autoload/ligatures.el @@ -73,4 +73,4 @@ Note that this will keep all ligatures in `+ligatures-prog-mode-list' active, as (after! ligature (dolist (mode (ensure-list modes)) (setq ligature-ignored-major-modes (delq mode ligature-ignored-major-modes))) - (ligature-set-ligatures (ensure-list modes) font-ligatures)))) + (ligature-set-ligatures (ensure-list modes) ligatures)))) From 0f663d007bf51a657a53f4f9dffeffd0a2d7cba2 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 17 Sep 2023 03:27:49 +0200 Subject: [PATCH 173/523] docs(evil,latex,vterm,treemacs): correct notices Use the correct symbol for warnings. Amend: 88bb04538875 --- modules/editor/evil/README.org | 2 +- modules/lang/latex/README.org | 2 +- modules/term/vterm/README.org | 2 +- modules/ui/treemacs/README.org | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/editor/evil/README.org b/modules/editor/evil/README.org index 690b16c93..69083f97e 100644 --- a/modules/editor/evil/README.org +++ b/modules/editor/evil/README.org @@ -193,7 +193,7 @@ If you prefer the old behavior, it can be reversed with: are bound to [[kbd:][C-c]] and [[kbd:][C-c l]] by default. #+begin_quote - 󰐃 Ignore ~doom-leader-key~ and ~doom-localleader-key~, they don't apply to +  Ignore ~doom-leader-key~ and ~doom-localleader-key~, they don't apply to non-evil sessions. #+end_quote diff --git a/modules/lang/latex/README.org b/modules/lang/latex/README.org index 0728e95fb..7de0b851b 100644 --- a/modules/lang/latex/README.org +++ b/modules/lang/latex/README.org @@ -61,7 +61,7 @@ This module requires ghostscript and a latex compiler. These are provided by the =texlive= bundle, available through many OS package managers. #+begin_quote - 󰐃 Ghostscript <= 9.27 is [[/auctex/manual/preview-latex/No-images-are-displayed-with-gs-9_002e27-and-earlier.html][reportedly buggy]] and doesn't work with auctex's math +  Ghostscript <= 9.27 is [[/auctex/manual/preview-latex/No-images-are-displayed-with-gs-9_002e27-and-earlier.html][reportedly buggy]] and doesn't work with auctex's math previews. (You can check you ghostscript version with ~$ gs --version~.) Most package managers already have newer versions, but if not you might have to build gs from source. diff --git a/modules/term/vterm/README.org b/modules/term/vterm/README.org index 8db507668..86796970b 100644 --- a/modules/term/vterm/README.org +++ b/modules/term/vterm/README.org @@ -119,7 +119,7 @@ There are several ways to manually install the module: #+end_src #+begin_quote - 󰐃 Emacs will hang during the compilation. It may take a while. +  Emacs will hang during the compilation. It may take a while. #+end_quote 2. You can compile and install the module yourself. Go to the vterm installation diff --git a/modules/ui/treemacs/README.org b/modules/ui/treemacs/README.org index 67251f15a..b3a915333 100644 --- a/modules/ui/treemacs/README.org +++ b/modules/ui/treemacs/README.org @@ -72,7 +72,7 @@ There are 3 possible values: 3. ~'deferred~, same as extended, but highlights asynchronously. #+begin_quote - 󰐃 ~+treemacs-git-mode~ must be set before treemacs is loaded. +  ~+treemacs-git-mode~ must be set before treemacs is loaded. #+end_quote * Troubleshooting From 2be3cf4b38251eae13cba5daf6ae5bb6964de4a4 Mon Sep 17 00:00:00 2001 From: Jdogzz Date: Sat, 16 Sep 2023 20:07:52 -0700 Subject: [PATCH 174/523] bump: nerd-icons-dired rainstormstudio/nerd-icons-dired@b76052082151 -> rainstormstudio/nerd-icons-dired@4a068884bf86 Fix: #5579 Ref: rainstormstudio/nerd-icons-dired@4a068884bf86 Ref: rainstormstudio/nerd-icons-dired#14 --- modules/emacs/dired/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/emacs/dired/packages.el b/modules/emacs/dired/packages.el index 11e476a6d..2bcecf0b9 100644 --- a/modules/emacs/dired/packages.el +++ b/modules/emacs/dired/packages.el @@ -10,5 +10,5 @@ (package! dirvish :pin "4fe9c00894304e99aca22ae4b6b656fe94b8f927")) (when (and (modulep! +icons) (not (modulep! +dirvish))) - (package! nerd-icons-dired :pin "b7605208215194fb97da703dff8c1a71738a6533")) + (package! nerd-icons-dired :pin "4a068884bf86647d242c3adc8320cd603e15dac3")) (package! fd-dired :pin "458464771bb220b6eb87ccfd4c985c436e57dc7e") From 2b08b2da332bf3119ef027fe094eebc77e1150b3 Mon Sep 17 00:00:00 2001 From: Noisy Computation Date: Tue, 19 Sep 2023 14:12:59 -0600 Subject: [PATCH 175/523] bump: :emacs vc magit/magit@97a95f70079b -> magit/magit@48818355728c The pinned version of `magit` in `:tools magit` needs be the same as that of `git-commit` in `:emacs vc`. `straight.el` prepares the repo only once, and if `git-commit` is processed first, its pinned version wins out and the more recent pinning of `magit` is ignored. As noted in #7363, processing order may be non-deterministic, so the inconsistent pinning may not be apparent on every system. Fix: #7363 Amend: #7277 Amend: 7c63b353d290 --- modules/emacs/vc/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/emacs/vc/packages.el b/modules/emacs/vc/packages.el index 23cd57473..39ad6dc4c 100644 --- a/modules/emacs/vc/packages.el +++ b/modules/emacs/vc/packages.el @@ -6,7 +6,7 @@ (package! smerge-mode :built-in t) (package! browse-at-remote :pin "c020975a891438e278ad1855213d4f3d62c9fccb") -(package! git-commit :pin "97a95f70079b6613bf98d2306279d3e03fe51234") +(package! git-commit :pin "48818355728c48d986d74dde8b1e9fba25f0fd53") (package! git-timemachine ;; The original lives on codeberg.org; which has uptime issues. :recipe (:host github :repo "emacsmirror/git-timemachine") From a60d8b3da4324170e3bdcb7e73a5e35e0d828a4f Mon Sep 17 00:00:00 2001 From: Gerry Agbobada Date: Sun, 17 Sep 2023 09:59:09 +0200 Subject: [PATCH 176/523] fix(ligatures): proper resetting of font-ligatures resetting font-ligatures means passing `nil` as the second argument of `(set-font-ligatures!)` Using `ligatures-ignored-major-modes` to cancel ligatures is too brittle, because "resetting ligatures for `prog-mode`" would have bad semantics with all its derived modes. The user probably just wants to remove the default ligatures and then configure `foo-mode`, but pushing `prog-mode` to `ignored-major-modes` might just disable ligatures across all modes _derived from_ `prog-mode`. This commit changes things in 2 ways: - resetting ligatures now directly manipulates ligature.el internal state (the `ligature-composition-table` alist) - in order to work, Doom must maintain an extra invariant on that alist, multi-modes keys (`'(foo-mode bar-mode)`), cannot be used, only single modes. That mostly means that users should _not_ use `ligature-set-ligatures` themselves in private config, but instead always rely on `set-font-ligatures!` which does splicing behind curtains. Failing to do so would be mostly harmless though (it would just make "resetting ligatures" only partially remove set ligatures). Fix: #7433 --- modules/ui/ligatures/autoload/ligatures.el | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/modules/ui/ligatures/autoload/ligatures.el b/modules/ui/ligatures/autoload/ligatures.el index 25d71dfb8..b44cc9599 100644 --- a/modules/ui/ligatures/autoload/ligatures.el +++ b/modules/ui/ligatures/autoload/ligatures.el @@ -67,10 +67,15 @@ Font ligatures can be unset for emacs-lisp-mode with: Note that this will keep all ligatures in `+ligatures-prog-mode-list' active, as `emacs-lisp-mode' is derived from `prog-mode'." (declare (indent defun)) + ;; 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) (dolist (mode (ensure-list modes)) - (add-to-list 'ligature-ignored-major-modes mode)) + (delq! mode ligature-composition-table 'assq)) (after! ligature (dolist (mode (ensure-list modes)) - (setq ligature-ignored-major-modes (delq mode ligature-ignored-major-modes))) - (ligature-set-ligatures (ensure-list modes) ligatures)))) + (setq ligature-ignored-major-modes (delq mode ligature-ignored-major-modes)) + (ligature-set-ligatures mode ligatures))))) + + From f369b48b2a2b48993eaeeb1336ffc45bdac211f7 Mon Sep 17 00:00:00 2001 From: Liam Hupfer Date: Tue, 19 Sep 2023 21:41:36 -0500 Subject: [PATCH 177/523] fix(org): use correct doom-module link follow function --- modules/lang/org/config.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/lang/org/config.el b/modules/lang/org/config.el index 553fc5e1a..f8f94b4a4 100644 --- a/modules/lang/org/config.el +++ b/modules/lang/org/config.el @@ -573,7 +573,7 @@ relative to `org-directory', unless it is an absolute path." :help-echo #'+org-link-doom--help-echo-from-textprop) (org-link-set-parameters "doom-module" - :follow #'+org-link-follow-doom-module-fn + :follow #'+org-link--doom-module-link-follow-fn :activate-func #'+org-link--doom-module-link-activate-fn :face #'+org-link--doom-module-link-face-fn :help-echo #'+org-link-doom--help-echo-from-textprop) From 54c67acf2a668ead6af55235b6ded16777778b40 Mon Sep 17 00:00:00 2001 From: Liam Hupfer Date: Tue, 19 Sep 2023 21:42:32 -0500 Subject: [PATCH 178/523] nit(org): use consistent link follow function names MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Looks like the doom-module one was partially renamed to follow naming conventions, and that didn’t propagate to the corresponding doom-package function. --- modules/lang/org/autoload/org-link.el | 2 +- modules/lang/org/config.el | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/lang/org/autoload/org-link.el b/modules/lang/org/autoload/org-link.el index fff9367e7..ebccbfead 100644 --- a/modules/lang/org/autoload/org-link.el +++ b/modules/lang/org/autoload/org-link.el @@ -245,7 +245,7 @@ exist, and `org-link' otherwise." " " package)))))) ;;;###autoload -(defun +org-link-follow-doom-package-fn (pkg _prefixarg) +(defun +org-link--doom-package-link-follow-fn (pkg _prefixarg) "TODO" (doom/describe-package (intern-soft pkg))) diff --git a/modules/lang/org/config.el b/modules/lang/org/config.el index f8f94b4a4..58bde72ad 100644 --- a/modules/lang/org/config.el +++ b/modules/lang/org/config.el @@ -567,7 +567,7 @@ relative to `org-directory', unless it is an absolute path." :help-echo #'+org-link-doom--help-echo-from-textprop) (org-link-set-parameters "doom-package" - :follow #'+org-link-follow-doom-package-fn + :follow #'+org-link--doom-package-link-follow-fn :activate-func #'+org-link--doom-package-link-activate-fn :face (lambda (_) '(:inherit org-priority :slant italic)) :help-echo #'+org-link-doom--help-echo-from-textprop) From c3342a80113c7711ae9b7c0f65423232c8166f7e Mon Sep 17 00:00:00 2001 From: Liam Hupfer Date: Tue, 19 Sep 2023 21:39:59 -0500 Subject: [PATCH 179/523] nit(org): make activate function suffixes consistent --- modules/lang/org/autoload/org-link.el | 4 ++-- modules/lang/org/config.el | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/lang/org/autoload/org-link.el b/modules/lang/org/autoload/org-link.el index ebccbfead..69fd98c7c 100644 --- a/modules/lang/org/autoload/org-link.el +++ b/modules/lang/org/autoload/org-link.el @@ -124,7 +124,7 @@ exist, and `org-link' otherwise." fn))))) ;;;###autoload -(defun +org-link--face-link-activate-face (start end face _bracketed-p) +(defun +org-link--face-link-activate-fn (start end face _bracketed-p) (when buffer-read-only (add-text-properties start end @@ -156,7 +156,7 @@ exist, and `org-link' otherwise." (concat prefix (and prefix " ") key-text))) ;;;###autoload -(defun +org-link--command-link-activate-command (start end command _bracketed-p) +(defun +org-link--command-link-activate-fn (start end command _bracketed-p) (when buffer-read-only (add-text-properties start end (list 'display (+org-link--command-keys command))))) diff --git a/modules/lang/org/config.el b/modules/lang/org/config.el index 58bde72ad..9d2e1be52 100644 --- a/modules/lang/org/config.el +++ b/modules/lang/org/config.el @@ -557,12 +557,12 @@ relative to `org-directory', unless it is an absolute path." (org-link-set-parameters "face" :follow (-call-interactively #'describe-face) - :activate-func #'+org-link--face-link-activate-face + :activate-func #'+org-link--face-link-activate-fn :face '(font-lock-type-face underline)) (org-link-set-parameters "cmd" :follow (-call-interactively #'describe-command) - :activate-func #'+org-link--command-link-activate-command + :activate-func #'+org-link--command-link-activate-fn :face 'help-key-binding :help-echo #'+org-link-doom--help-echo-from-textprop) (org-link-set-parameters From 2279a42c50109d4e4adf2be7ed922ad8d0bd21e1 Mon Sep 17 00:00:00 2001 From: Liam Hupfer Date: Tue, 19 Sep 2023 22:07:11 -0500 Subject: [PATCH 180/523] fix(org): address fancy links regressions - several all-the-icons references were missed, and some code points are different in nerd-fonts. the variable icon became a folder, the package icon became a scissors, and the file-icons font icon is not available - make face link type face passthrough work - remove extraneous rear-nonsticky and height properties that nerd-icons already sets - generally improve consistency across link types - material design icons, underlines, and font lock faces for symbols, shadow if unbound - octicons for packages, modules, and executables, blue links if installed, shadow if not. color coded icon based on status - refactor and remove extraneous code --- modules/lang/org/autoload/org-link.el | 107 +++++++++----------------- modules/lang/org/config.el | 8 +- 2 files changed, 41 insertions(+), 74 deletions(-) diff --git a/modules/lang/org/autoload/org-link.el b/modules/lang/org/autoload/org-link.el index 69fd98c7c..aea9d0084 100644 --- a/modules/lang/org/autoload/org-link.el +++ b/modules/lang/org/autoload/org-link.el @@ -98,17 +98,14 @@ exist, and `org-link' otherwise." (when buffer-read-only (add-text-properties start end - (list 'display - (concat - #(" " 0 1 - (rear-nonsticky - t display (raise 0.05) - face (:family "github-octicons" - :inherit font-lock-variable-name-face - :height 0.8 - :box (:line-width 1 :style none))) - 1 2 (face (:height 0.2))) - var))))) + (list + 'display + (concat (nerd-icons-mdicon "nf-md-toggle_switch") ; "󰔡" + " " (propertize var + 'face + (if (boundp (intern var)) + 'font-lock-variable-name-face + 'shadow))))))) ;;;###autoload (defun +org-link--fn-link-activate-fn (start end fn _bracketed-p) @@ -116,12 +113,12 @@ exist, and `org-link' otherwise." (add-text-properties start end (list 'display - (concat - #("λ " 0 1 (face (:inherit font-lock-function-name-face - :box (:line-width 1 :style none) - :height 0.9)) - 1 2 (face (:height 0.2))) - fn))))) + (concat (nerd-icons-mdicon "nf-md-function") ; "󰊕" + " " (propertize fn + 'face + (if (fboundp (intern fn)) + 'font-lock-function-name-face + 'shadow))))))) ;;;###autoload (defun +org-link--face-link-activate-fn (start end face _bracketed-p) @@ -129,18 +126,12 @@ exist, and `org-link' otherwise." (add-text-properties start end (list 'display - (concat - (propertize - "" - 'rear-nonsticky t - 'display '(raise -0.02) - 'face (list '(:family "file-icons" :height 1.0) - (if (facep (intern face)) - (intern face) - 'default) - '(:underline nil))) - #(" " 0 1 (face (:underline nil))) - face))))) + (concat (nerd-icons-mdicon "nf-md-format_text") ; "󰊄" + " " (propertize face + 'face + (if (facep (intern face)) + (intern face) + 'shadow))))))) (defun +org-link--command-keys (command) "Convert command reference TEXT to key binding representation." @@ -182,51 +173,37 @@ exist, and `org-link' otherwise." (org-show-entry) (recenter))))) -;;;###autoload -(defun +org-link--doom-module-link-face-fn (module-path) - (cl-destructuring-bind (&key category module flag) - (+org-link--read-module-spec module-path) - (if (and category (doom-module-locate-path category module)) - `(:inherit org-priority - :weight bold) - 'error))) - ;;;###autoload (defun +org-link--doom-module-link-activate-fn (start end module-path _bracketed-p) (when buffer-read-only (cl-destructuring-bind (&key category module flag) (+org-link--read-module-spec module-path) (let ((overall-face - (cond - ((doom-module-p category module flag) - '((:underline nil) org-link org-block bold)) - ((and category (doom-module-locate-path category module)) - '(shadow org-block bold)) - (t '((:strike-through t) error org-block)))) + (if (and category (doom-module-locate-path category module)) + '((:underline nil) org-link org-block bold) + '(shadow org-block bold))) (icon-face - (if (doom-module-p category module flag) 'success 'error))) + (cond + ((doom-module-p category module flag) 'success) + ((and category (doom-module-locate-path category module)) 'warning) + (t 'error)))) (add-text-properties start end (list 'face overall-face 'display (concat - (propertize - " " - 'rear-nonsticky t - 'display '(raise -0.02) - 'face `(:inherit ,icon-face - :family "FontAwesome" - :height 1.0)) - module-path))))))) + (nerd-icons-octicon "nf-oct-stack" ; "" + :face icon-face) + " " module-path))))))) ;;;###autoload (defun +org-link--doom-package-link-activate-fn (start end package _bracketed-p) (when buffer-read-only (let ((overall-face (if (locate-library package) - '((:underline nil) org-link org-block italic) + '((:underline nil :weight regular) org-link org-block italic) '(shadow org-block italic))) - (pkg-face + (icon-face (cond ((featurep (intern package)) 'success) ((locate-library package) 'warning) @@ -236,12 +213,8 @@ exist, and `org-link' otherwise." (list 'face overall-face 'display (concat - (propertize - "\uf0c4" ; Octicon package symbol - 'rear-nonsticky t - 'display '(raise -0.02) - 'face `(:family "github-octicons" :height 1.0 - :inherit ,pkg-face)) + (nerd-icons-octicon "nf-oct-package" ; "" + :face icon-face) " " package)))))) ;;;###autoload @@ -257,15 +230,11 @@ exist, and `org-link' otherwise." start end (list 'display (concat - (nerd-icons-devicon "nf-dev-terminal_badge" - :rear-nonsticky t - :display '(raise -0.02) - :face (list :height 1.0 - :inherit (if found 'success 'error))) + (nerd-icons-octicon "nf-oct-terminal" ; "" + :face (if found 'success 'error)) " " - (propertize - executable - 'face (if found 'org-verbatim 'default)))))))) + (propertize executable + 'face (if found 'org-verbatim 'shadow)))))))) ;; ;;; Help-echo / eldoc diff --git a/modules/lang/org/config.el b/modules/lang/org/config.el index 9d2e1be52..c5cc34542 100644 --- a/modules/lang/org/config.el +++ b/modules/lang/org/config.el @@ -548,12 +548,12 @@ relative to `org-directory', unless it is an absolute path." "var" :follow (-call-interactively #'helpful-variable) :activate-func #'+org-link--var-link-activate-fn - :face 'org-code) + :face '(font-lock-variable-name-face underline)) (org-link-set-parameters "fn" :follow (-call-interactively #'helpful-callable) :activate-func #'+org-link--fn-link-activate-fn - :face 'org-code) + :face '(font-lock-function-name-face underline)) (org-link-set-parameters "face" :follow (-call-interactively #'describe-face) @@ -569,13 +569,11 @@ relative to `org-directory', unless it is an absolute path." "doom-package" :follow #'+org-link--doom-package-link-follow-fn :activate-func #'+org-link--doom-package-link-activate-fn - :face (lambda (_) '(:inherit org-priority :slant italic)) :help-echo #'+org-link-doom--help-echo-from-textprop) (org-link-set-parameters "doom-module" :follow #'+org-link--doom-module-link-follow-fn :activate-func #'+org-link--doom-module-link-activate-fn - :face #'+org-link--doom-module-link-face-fn :help-echo #'+org-link-doom--help-echo-from-textprop) (org-link-set-parameters "doom-executable" @@ -614,7 +612,7 @@ relative to `org-directory', unless it is an absolute path." (format "https://github.com/%s" (string-remove-prefix "@" (+org-link-read-desc-at-point link))))) - :face (lambda (_) 'org-priority)) + :face 'org-priority) (org-link-set-parameters "doom-changelog" :follow (lambda (link) From 4b81a70aff1404bc8481e9e75e40e57625dbb546 Mon Sep 17 00:00:00 2001 From: Liam Hupfer Date: Tue, 19 Sep 2023 22:29:24 -0500 Subject: [PATCH 181/523] nit(docs): fix typo and extraneous backquote --- lisp/lib/docs.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lisp/lib/docs.el b/lisp/lib/docs.el index 9f78af04a..ff7218684 100644 --- a/lisp/lib/docs.el +++ b/lisp/lib/docs.el @@ -372,7 +372,7 @@ depending.") (defvar doom-docs--cookies nil) ;;;###autoload (define-minor-mode doom-docs-mode - "Hides metadata, tags, & drawers and activates all org-mode pretiffications. + "Hides metadata, tags, & drawers and activates all org-mode prettifications. This primes `org-mode' for reading." :lighter " Doom Docs" :after-hook (org-restart-font-lock) @@ -386,7 +386,7 @@ This primes `org-mode' for reading." (if doom-docs-mode (set (make-local-variable sym) t) (kill-local-variable sym))) - `(org-pretty-entities + '(org-pretty-entities org-hide-emphasis-markers org-hide-macro-markers)) (when doom-docs-mode From a02b4ddfe37bf33ded84e2d852a20311d48025c7 Mon Sep 17 00:00:00 2001 From: StrawberryTea Date: Wed, 20 Sep 2023 00:07:17 -0500 Subject: [PATCH 182/523] fix(mu4e): replace obsolete/removed functions This commit fixes several Doom mu4e functions which are broken on later versions of mu4e due to the variable prefix change from mu4e~ to mu4e--. I also added them to the forwards-compatibility aliases. --- modules/email/mu4e/config.el | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/modules/email/mu4e/config.el b/modules/email/mu4e/config.el index 40f1a328e..e3b5c2d99 100644 --- a/modules/email/mu4e/config.el +++ b/modules/email/mu4e/config.el @@ -42,7 +42,8 @@ "read-patch-directory" "replace-first-line-matching" "request-contacts-maybe" "rfc822-phrase-type" "start" "stop" "temp-window" "update-contacts" "update-mail-and-index-real" - "update-mail-mode" "update-sentinel-func")) + "update-mail-mode" "update-sentinel-func" "view-gather-mime-parts" + "view-open-file" "view-mime-part-to-temp-file")) (defalias (intern (concat "mu4e--" transferable-suffix)) (intern (concat "mu4e~" transferable-suffix)) "Alias to provide the API of mu4e 1.8 (mu4e~ ⟶ mu4e--).") @@ -272,7 +273,7 @@ Acts like a singular `mu4e-view-save-attachments', without the saving." (lambda (part) (when (assoc "attachment" (cdr part)) part)) - (mu4e~view-gather-mime-parts)))) + (mu4e--view-gather-mime-parts)))) (files (+mu4e-part-selectors parts))) (cdr (assoc (completing-read "Select attachment: " (mapcar #'car files)) files)) (user-error (mu4e-format "No attached files found")))) @@ -280,13 +281,13 @@ Acts like a singular `mu4e-view-save-attachments', without the saving." (defun +mu4e-view-open-attachment () "Select an attachment, and open it." (interactive) - (mu4e~view-open-file - (mu4e~view-mime-part-to-temp-file (cdr (+mu4e-view-select-attachment))))) + (mu4e--view-open-file + (mu4e--view-mime-part-to-temp-file (cdr (+mu4e-view-select-attachment))))) (defun +mu4e-view-select-mime-part-action () "Select a MIME part, and perform an action on it." (interactive) - (let ((labeledparts (+mu4e-part-selectors (mu4e~view-gather-mime-parts)))) + (let ((labeledparts (+mu4e-part-selectors (mu4e--view-gather-mime-parts)))) (if labeledparts (mu4e-view-mime-part-action (cadr (assoc (completing-read "Select part: " (mapcar #'car labeledparts)) @@ -361,13 +362,14 @@ This should already be the case yet it does not always seem to be." (defvar +mu4e-main-bullet "⚫" "Prefix to use instead of \" *\" in the mu4e main view. -This is enacted by `+mu4e~main-action-str-prettier-a' and -`+mu4e~main-keyval-str-prettier-a'.") +This is enacted by `+mu4e--main-action-str-prettier-a' and +`+mu4e--main-keyval-str-prettier-a'.") - (advice-add #'mu4e--key-val :filter-return #'+mu4e~main-keyval-str-prettier-a) - (advice-add #'mu4e--main-action-str :override #'+mu4e~main-action-str-prettier-a) + (advice-add #'mu4e--key-val :filter-return #'+mu4e--main-keyval-str-prettier-a) + (advice-add #'mu4e--main-action-str :override #'+mu4e--main-action-str-prettier-a) (when (modulep! :editor evil) - ;; As +mu4e~main-action-str-prettier replaces [k]ey with key q]uit should become quit + ;; As +mu4e--main-action-str-prettier replaces [k]ey with key [q]uit should + ;; become quit (setq evil-collection-mu4e-end-region-misc "quit")) ;; process lock control From 531a8bdfebe4ad717042b766a75a4d77e9d62be6 Mon Sep 17 00:00:00 2001 From: StrawberryTea Date: Wed, 20 Sep 2023 10:34:55 -0500 Subject: [PATCH 183/523] fix(mu4e): remove broken pretty bullets advice --- modules/email/mu4e/autoload/advice.el | 32 --------------------------- modules/email/mu4e/config.el | 12 ---------- 2 files changed, 44 deletions(-) diff --git a/modules/email/mu4e/autoload/advice.el b/modules/email/mu4e/autoload/advice.el index c053d83e7..29b24d502 100644 --- a/modules/email/mu4e/autoload/advice.el +++ b/modules/email/mu4e/autoload/advice.el @@ -1,37 +1,5 @@ ;;; email/mu4e/autoload/advice.el -*- lexical-binding: t; -*- -;;;###autoload -(defun +mu4e~main-action-str-prettier-a (str &optional func-or-shortcut) - "Highlight the first occurrence of [.] in STR. -If FUNC-OR-SHORTCUT is non-nil and if it is a function, call it -when STR is clicked (using RET or mouse-2); if FUNC-OR-SHORTCUT is -a string, execute the corresponding keyboard action when it is -clicked." - (let ((newstr - (replace-regexp-in-string - "\\[\\(..?\\)\\]" - (lambda(m) - (format "%s" - (propertize (match-string 1 m) 'face 'mu4e-highlight-face))) - (replace-regexp-in-string "\t\\*" (format "\t%s" +mu4e-main-bullet) str))) - (map (make-sparse-keymap)) - (func (if (functionp func-or-shortcut) - func-or-shortcut - (if (stringp func-or-shortcut) - (lambda()(interactive) - (execute-kbd-macro func-or-shortcut)))))) - (define-key map [mouse-2] func) - (define-key map (kbd "RET") func) - (put-text-property 0 (length newstr) 'keymap map newstr) - (put-text-property (string-match "[A-Za-z].+$" newstr) - (- (length newstr) 1) 'mouse-face 'highlight newstr) - newstr)) - -;;;###autoload -(defun +mu4e~main-keyval-str-prettier-a (str) - "Replace '*' with `+mu4e-main-bullet' in STR." - (replace-regexp-in-string "\t\\*" (format "\t%s" +mu4e-main-bullet) str)) - ;; Org msg LaTeX image scaling ;;;###autoload diff --git a/modules/email/mu4e/config.el b/modules/email/mu4e/config.el index e3b5c2d99..8ab1418ff 100644 --- a/modules/email/mu4e/config.el +++ b/modules/email/mu4e/config.el @@ -360,18 +360,6 @@ This should already be the case yet it does not always seem to be." :before #'mu4e-compose-resend (read-only-mode -1)) - (defvar +mu4e-main-bullet "⚫" - "Prefix to use instead of \" *\" in the mu4e main view. -This is enacted by `+mu4e--main-action-str-prettier-a' and -`+mu4e--main-keyval-str-prettier-a'.") - - (advice-add #'mu4e--key-val :filter-return #'+mu4e--main-keyval-str-prettier-a) - (advice-add #'mu4e--main-action-str :override #'+mu4e--main-action-str-prettier-a) - (when (modulep! :editor evil) - ;; As +mu4e--main-action-str-prettier replaces [k]ey with key [q]uit should - ;; become quit - (setq evil-collection-mu4e-end-region-misc "quit")) - ;; process lock control (when IS-WINDOWS (setq From fed0f49ca7d23101fe309fad664e596c32b60b70 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 19 Sep 2023 21:19:23 +0200 Subject: [PATCH 184/523] fix(dart,scala,swift,treemacs): ignore lsp-* packages for eglot Close: #7441 Co-authored-by: itome --- modules/lang/dart/packages.el | 3 ++- modules/lang/scala/packages.el | 3 ++- modules/lang/swift/packages.el | 3 ++- modules/ui/treemacs/packages.el | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/modules/lang/dart/packages.el b/modules/lang/dart/packages.el index 297a54530..5a7c93395 100644 --- a/modules/lang/dart/packages.el +++ b/modules/lang/dart/packages.el @@ -3,7 +3,8 @@ (package! dart-mode :pin "9c846769abd37f7fdc7ba8388d1f3a2b844b75e3") -(when (modulep! +lsp) +(when (and (modulep! +lsp) + (not (modulep! :tools lsp +eglot))) (package! lsp-dart :pin "3db9f93c83052d6a8976c92d67d2b24473930760")) (when (modulep! +flutter) diff --git a/modules/lang/scala/packages.el b/modules/lang/scala/packages.el index 2acdf10b8..8616e07ee 100644 --- a/modules/lang/scala/packages.el +++ b/modules/lang/scala/packages.el @@ -4,5 +4,6 @@ (package! sbt-mode :pin "9fe1e8807c22cc1dc56a6233e000969518907f4d") (package! scala-mode :pin "5d7cf21c37e345c49f921fe5111a49fd54efd1e0") -(when (modulep! +lsp) +(when (and (modulep! +lsp) + (not (modulep! :tools lsp +eglot))) (package! lsp-metals :pin "a2df7263ece6ac69214e41c52d66aab8d3f650eb")) diff --git a/modules/lang/swift/packages.el b/modules/lang/swift/packages.el index 4ff56d17d..e3ed615bd 100644 --- a/modules/lang/swift/packages.el +++ b/modules/lang/swift/packages.el @@ -4,7 +4,8 @@ (package! swift-mode :pin "1244ee48de1895d33f55fed81fc90acda0c901f1") (if (modulep! +lsp) - (package! lsp-sourcekit :pin "468c641e35877e4e843f6b7c52a35937de562995") + (unless (modulep! :tools lsp +eglot) + (package! lsp-sourcekit :pin "468c641e35877e4e843f6b7c52a35937de562995")) (when (modulep! :completion company) (package! company-sourcekit :pin "a1860ad4dd3a542acd2fa0dfac2a388cbdf4af0c")) (when (and (modulep! :checkers syntax) diff --git a/modules/ui/treemacs/packages.el b/modules/ui/treemacs/packages.el index 6b0d5f20d..381c171e0 100644 --- a/modules/ui/treemacs/packages.el +++ b/modules/ui/treemacs/packages.el @@ -11,5 +11,6 @@ (package! treemacs-magit)) (when (modulep! :ui workspaces) (package! treemacs-persp)) -(when (modulep! +lsp) +(when (and (modulep! +lsp) + (not (modulep! :tools lsp +eglot))) (package! lsp-treemacs :pin "e66ae2196503d4e84334519e56b4388feffa5060")) From 7266c11366bd4e5ee63234f9a6f7c0047c5e2cc0 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 19 Sep 2023 23:34:35 +0200 Subject: [PATCH 185/523] fix(swift): activate `lsp!` on +lsp Close: #7441 Co-authored-by: itome --- modules/lang/swift/config.el | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/lang/swift/config.el b/modules/lang/swift/config.el index 912898172..8de47b3ce 100644 --- a/modules/lang/swift/config.el +++ b/modules/lang/swift/config.el @@ -3,6 +3,8 @@ (after! swift-mode (set-repl-handler! 'swift-mode #'run-swift) + (when (modulep! +lsp) + (add-hook 'swift-mode-local-vars-hook #'lsp! 'append)) (when (modulep! +tree-sitter) (add-hook 'swift-mode-local-vars-hook #'tree-sitter! 'append))) From cdbf58a8710403fff829326af86741928903a3e4 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 19 Sep 2023 23:37:51 +0200 Subject: [PATCH 186/523] refactor(format): swap to string-blank-p & memq --- modules/editor/format/config.el | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/editor/format/config.el b/modules/editor/format/config.el index eca7f38b0..86dea4e41 100644 --- a/modules/editor/format/config.el +++ b/modules/editor/format/config.el @@ -38,7 +38,7 @@ select buffers.") "Enable formatting on save in certain major modes. This is controlled by `+format-on-save-disabled-modes'." (or (eq major-mode 'fundamental-mode) - (string-empty-p (string-trim (buffer-name))) + (string-blank-p (buffer-name)) (not (null (memq major-mode +format-on-save-disabled-modes))))) @@ -46,13 +46,14 @@ This is controlled by `+format-on-save-disabled-modes'." (after! apheleia-core (add-to-list 'apheleia-inhibit-functions #'+format-inhibit-maybe-h))) + ;; ;;; Hacks (defadvice! +format--inhibit-reformat-on-prefix-arg-a (orig-fn &optional arg) "Make it so \\[save-buffer] with prefix arg inhibits reformatting." :around #'save-buffer - (let ((apheleia-mode (and apheleia-mode (member arg '(nil 1))))) + (let ((apheleia-mode (and apheleia-mode (memq arg '(nil 1))))) (funcall orig-fn))) (add-hook! From fba8dda5c80c0bbda255172be9b766d670a95d3a Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 19 Sep 2023 23:35:33 +0200 Subject: [PATCH 187/523] bump: :term akermu/emacs-libvterm@3e5a9b754b8e -> akermu/emacs-libvterm@94e2b0b2b4a7 akreisher/eshell-syntax-highlighting@1ba39a9ffb22 -> akreisher/eshell-syntax-highlighting@8bf0494ca719 szermatt/emacs-bash-completion@25611eed1e08 -> szermatt/emacs-bash-completion@f1daac0386c2 --- modules/term/eshell/packages.el | 4 ++-- modules/term/vterm/packages.el | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/term/eshell/packages.el b/modules/term/eshell/packages.el index 8abed67b5..128c16500 100644 --- a/modules/term/eshell/packages.el +++ b/modules/term/eshell/packages.el @@ -6,8 +6,8 @@ (package! shrink-path :pin "c14882c8599aec79a6e8ef2d06454254bb3e1e41") (package! esh-help :pin "417673ed18a983930a66a6692dbfb288a995cb80") (package! eshell-did-you-mean :pin "80cd8c4b186a2fb29621cf634bcf2bcd914f1e3d") -(package! eshell-syntax-highlighting :pin "1ba39a9ffb2298cd716a4314cf3f369028c7bafe") +(package! eshell-syntax-highlighting :pin "8bf0494ca71944b9d4bfb8ec3c93ea29d46bc2f9") (unless IS-WINDOWS (package! fish-completion :pin "10384881817b5ae38cf6197a077a663420090d2c") - (package! bash-completion :pin "25611eed1e086c4e8cdd335dbd38b1d796be5b8d")) + (package! bash-completion :pin "f1daac0386c24cbe8a244a62c7588cc6847b07ae")) diff --git a/modules/term/vterm/packages.el b/modules/term/vterm/packages.el index cb4e88537..74efc3bcd 100644 --- a/modules/term/vterm/packages.el +++ b/modules/term/vterm/packages.el @@ -3,4 +3,4 @@ (package! vterm :built-in 'prefer - :pin "3e5a9b754b8e61850bb7d1b63b090b9fbf6687f3") + :pin "94e2b0b2b4a750e7907dacd5b4c0584900846dd1") From 7cae2b01f6d6add0415ad6d1c37c689ac478fcb2 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 19 Sep 2023 23:39:33 +0200 Subject: [PATCH 188/523] bump: :emacs ibuffer undo emacs-straight/undo-tree@16f4121032d0 -> emacs-straight/undo-tree@f9e7eac16f67 emacs-straight/vundo@26c929229ae0 -> emacs-straight/vundo@24271862a2f7 ideasman42/emacs-undo-fu-session@7b3fd0647dd1 -> ideasman42/emacs-undo-fu-session@a6c4f73bc224 ideasman42/emacs-undo-fu@0e22308de833 -> ideasman42/emacs-undo-fu@0e74116fd5c7 purcell/ibuffer-projectile@ecbe482804a2 -> purcell/ibuffer-projectile@710ecac15782 purcell/ibuffer-vc@9204001d1c5c -> purcell/ibuffer-vc@1388d2ea1828 --- modules/emacs/ibuffer/packages.el | 4 ++-- modules/emacs/undo/packages.el | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/emacs/ibuffer/packages.el b/modules/emacs/ibuffer/packages.el index 21ae2d78c..0a2bc9401 100644 --- a/modules/emacs/ibuffer/packages.el +++ b/modules/emacs/ibuffer/packages.el @@ -1,5 +1,5 @@ ;; -*- no-byte-compile: t; -*- ;;; emacs/ibuffer/packages.el -(package! ibuffer-projectile :pin "ecbe482804a217b1471593f6c7a8b3d64f3cdc47") -(package! ibuffer-vc :pin "9204001d1c5ca39409485c1574fd315b0e137a92") +(package! ibuffer-projectile :pin "710ecac1578273bf31debe52870f5844472e3428") +(package! ibuffer-vc :pin "1388d2ea18287c74a79d053619dbdfa9090c26a2") diff --git a/modules/emacs/undo/packages.el b/modules/emacs/undo/packages.el index 359ae9ff0..a3bb404d6 100644 --- a/modules/emacs/undo/packages.el +++ b/modules/emacs/undo/packages.el @@ -2,8 +2,8 @@ ;;; emacs/undo/packages.el (if (modulep! +tree) - (package! undo-tree :pin "16f4121032d09ef44b3d7d02c4d02c3c2f18041f") - (package! undo-fu :pin "0e22308de8337a9291ddd589edae167d458fbe77") - (package! undo-fu-session :pin "7b3fd0647dd1fbd02101eec61440e6d44953bcd9") + (package! undo-tree :pin "f9e7eac16f674aa7ed8fa065401d26c0258a84f8") + (package! undo-fu :pin "0e74116fd5c7797811a91ba4eadef50d67523eb6") + (package! undo-fu-session :pin "a6c4f73bc22401fd36e0f2fd4fe058bb28566d84") (when (> emacs-major-version 27) ; unsupported in 27 - (package! vundo :pin "26c929229ae03b8d942907541f0844988b36d0ce"))) + (package! vundo :pin "24271862a2f746be038306eafe20f5eff55c4566"))) From 7da57e72f1a5b9300a0a3586e97e1d2e62ff4a44 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 20 Sep 2023 15:39:43 +0200 Subject: [PATCH 189/523] bump: :ui Alexander-Miller/treemacs@fe471314f198 -> Alexander-Miller/treemacs@56691a530abb doomemacs/themes@d1d6c2953ff3 -> doomemacs/themes@4aee1f5a0e54 emacs-straight/minimap@ed7490652a67 -> emacs-straight/minimap@90aeeb5798ff seagle0128/doom-modeline@173ad0a27f2c -> seagle0128/doom-modeline@93f240f7a0bf tarsius/hl-todo@0faf8569b67f -> tarsius/hl-todo@70ce48470c85 --- modules/ui/doom/packages.el | 2 +- modules/ui/hl-todo/packages.el | 2 +- modules/ui/minimap/packages.el | 2 +- modules/ui/modeline/packages.el | 2 +- modules/ui/treemacs/packages.el | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/ui/doom/packages.el b/modules/ui/doom/packages.el index 03455fa5e..edbc97da6 100644 --- a/modules/ui/doom/packages.el +++ b/modules/ui/doom/packages.el @@ -1,5 +1,5 @@ ;; -*- no-byte-compile: t; -*- ;;; ui/doom/packages.el -(package! doom-themes :pin "d1d6c2953ff39352a9312e87d5e460b60a118fc4") +(package! doom-themes :pin "4aee1f5a0e54552669f747aa7c25e6027e73d76d") (package! solaire-mode :pin "8af65fbdc50b25ed3214da949b8a484527c7cc14") diff --git a/modules/ui/hl-todo/packages.el b/modules/ui/hl-todo/packages.el index ab0a665d5..c0f5daa24 100644 --- a/modules/ui/hl-todo/packages.el +++ b/modules/ui/hl-todo/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; ui/hl-todo/packages.el -(package! hl-todo :pin "0faf8569b67f5b23891416d9e7a67e3843338f2a") +(package! hl-todo :pin "70ce48470c85f1441de2c9428a240c3287995846") diff --git a/modules/ui/minimap/packages.el b/modules/ui/minimap/packages.el index b020b77c0..eb736c7cc 100644 --- a/modules/ui/minimap/packages.el +++ b/modules/ui/minimap/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; ui/minimap/packages.el -(package! minimap :pin "ed7490652a676c0510ed57d5366c445de20a370b") +(package! minimap :pin "90aeeb5798ff2fa8b08bd4965af5e43806e01645") diff --git a/modules/ui/modeline/packages.el b/modules/ui/modeline/packages.el index 7f8330dc8..274df912a 100644 --- a/modules/ui/modeline/packages.el +++ b/modules/ui/modeline/packages.el @@ -2,7 +2,7 @@ ;;; ui/modeline/packages.el (unless (modulep! +light) - (package! doom-modeline :pin "173ad0a27f2c3babe2009a3b760b92d3c8718f5a")) + (package! doom-modeline :pin "93f240f7a0bf35511cfc0a8dd75786744b4bcf77")) (package! anzu :pin "5abb37455ea44fa401d5f4c1bdc58adb2448db67") (when (modulep! :editor evil) (package! evil-anzu :pin "d1e98ee6976437164627542909a25c6946497899")) diff --git a/modules/ui/treemacs/packages.el b/modules/ui/treemacs/packages.el index 381c171e0..97c87198d 100644 --- a/modules/ui/treemacs/packages.el +++ b/modules/ui/treemacs/packages.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; -*- ;;; ui/treemacs/packages.el -(package! treemacs :pin "fe471314f198f9aff268637a766a6ade0a5b5d96") +(package! treemacs :pin "56691a530abb61564c8df0456a18ff0f301c2055") (package! treemacs-nerd-icons :pin "9876cb478145a0ec4e36f64ff6583f3de7126216") ;; These packages have no :pin because they're in the same repo (when (modulep! :editor evil +everywhere) From a4d95674ec8ed653e0d2349d65042d1c8a2248e5 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 20 Sep 2023 15:40:13 +0200 Subject: [PATCH 190/523] tweak(format): doom-debug-variables: add apheleia-log-only-errors --- modules/editor/format/config.el | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/editor/format/config.el b/modules/editor/format/config.el index 86dea4e41..6c97ca6b4 100644 --- a/modules/editor/format/config.el +++ b/modules/editor/format/config.el @@ -42,8 +42,10 @@ This is controlled by `+format-on-save-disabled-modes'." (not (null (memq major-mode +format-on-save-disabled-modes))))) -(when (modulep! +onsave) - (after! apheleia-core +(after! apheleia-core + (add-to-list 'doom-debug-variables '(apheleia-log-only-errors . nil)) + + (when (modulep! +onsave) (add-to-list 'apheleia-inhibit-functions #'+format-inhibit-maybe-h))) From 96e6b72be6ed90465535cd6d7b9ef62b3ae7492a Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 20 Sep 2023 15:44:29 +0200 Subject: [PATCH 191/523] nit(beancount): revise docstrings & sharp-quotes functions --- modules/lang/beancount/autoload.el | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/modules/lang/beancount/autoload.el b/modules/lang/beancount/autoload.el index 2d9c41a9f..1c9710342 100644 --- a/modules/lang/beancount/autoload.el +++ b/modules/lang/beancount/autoload.el @@ -3,7 +3,7 @@ ;; ;;; Helpers -;; Lifted from ledger +;; Lifted from ledger-mode (defconst +beancount--payee-any-status-regex "^[0-9]+[-/][-/.=0-9]+\\(\\s-+\\*\\)?\\(\\s-+(.*?)\\)?\\s-+\\(.+?\\)\\s-*\\(;\\|$\\)") @@ -111,9 +111,9 @@ If REVERSE (the prefix arg) is non-nil, sort the transactions in reverst order." (let ((inhibit-field-text-motion t)) (sort-subr reverse - '+beancount--navigate-next-xact - '+beancount--navigate-end-of-xact - '+beancount--sort-startkey)))) + #'+beancount--navigate-next-xact + #'+beancount--navigate-end-of-xact + #'+beancount--sort-startkey)))) (goto-char (point-min)) (re-search-forward (regexp-quote target-xact)) (goto-char (+ (match-beginning 0) point-delta)))) @@ -121,14 +121,16 @@ If REVERSE (the prefix arg) is non-nil, sort the transactions in reverst order." (defvar compilation-read-command) ;;;###autoload (defun +beancount/balance () - "Run 'bean-report bal'." + "Display a balance report with bean-report (bean-report bal)." (interactive) (let (compilation-read-command) (beancount--run "bean-report" buffer-file-name "bal"))) ;;;###autoload (defun +beancount/clone-transaction () - "TODO" + "Clones a transaction from (and to the bottom of) the current ledger buffer. + +Updates the date to today." (interactive) (save-restriction (widen) @@ -144,8 +146,9 @@ If REVERSE (the prefix arg) is non-nil, sort the transactions in reverst order." ;;;###autoload (defun +beancount/clone-this-transaction (&optional arg) - "Copy the current transaction to the bottom of the ledger. -Updates the date to today" + "Clones the transaction at point to the bottom of the ledger. + +Updates the date to today." (interactive "P") (if (and (not arg) (looking-at-p "^$")) (call-interactively #'+beancount/clone-transaction) From 36651d6e6662cfe5e784f39936cf10df888db785 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 20 Sep 2023 16:05:34 +0200 Subject: [PATCH 192/523] tweak(beancount): include directives for next/prev transaction +beancount/next-transaction and +beancount/previous-transaction would formerly skip timestampped directives, e.g. 2016-09-15 * "Foo" "" Expenses:Y 779.00 DKK Assets:X:Checkings 2016-11-16 balance Assets:X:Checkings 8,417.58 DKK 2016-12-13 * "Bar" "" Assets:X:Checkings 2,100.00 DKK Income:Z The `balance` directive would be skipped over. This commit changes that to include them. Perhaps the commands should be renamed to +beancount/{next,previous}-entry to better reflect my intended purpose for them? --- modules/lang/beancount/autoload.el | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/modules/lang/beancount/autoload.el b/modules/lang/beancount/autoload.el index 1c9710342..d894a2245 100644 --- a/modules/lang/beancount/autoload.el +++ b/modules/lang/beancount/autoload.el @@ -172,12 +172,19 @@ Updates the date to today." (defun +beancount/next-transaction (&optional count) "Jump to the start of the next COUNT-th transaction." (interactive "p") - (dotimes (_ (or count 1)) - (beancount-goto-next-transaction))) + (let ((beancount-transaction-regexp + ;; Don't skip over timestamped directives (like balance or event + ;; declarations). + (concat beancount-timestamped-directive-regexp + "\\|" beancount-transaction-regexp))) + (dotimes (_ (or count 1)) + (beancount-goto-next-transaction)))) ;;;###autoload (defun +beancount/previous-transaction (&optional count) "Jump to the start of current or previous COUNT-th transaction." (interactive "p") (re-search-backward - beancount-transaction-regexp nil t (or count 1))) + (concat beancount-timestamped-directive-regexp + "\\|" beancount-transaction-regexp) + nil t)) From c5e387f7b42be1870565a5ab72f92f03e8a76e4a Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 20 Sep 2023 16:19:18 +0200 Subject: [PATCH 193/523] fix(beancount): previous-transaction: jump-to-start behavior To match +beancount/previous-transaction's docstring: this command should jump to the start of the transaction/directive at point first, before jumping to the previous one. Now it does so. It should also return nil if it fails. --- modules/lang/beancount/autoload.el | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/modules/lang/beancount/autoload.el b/modules/lang/beancount/autoload.el index d894a2245..0f162a0c3 100644 --- a/modules/lang/beancount/autoload.el +++ b/modules/lang/beancount/autoload.el @@ -182,9 +182,18 @@ Updates the date to today." ;;;###autoload (defun +beancount/previous-transaction (&optional count) - "Jump to the start of current or previous COUNT-th transaction." + "Jump to the start of current or previous COUNT-th transaction. + +Return non-nil if successful." (interactive "p") - (re-search-backward - (concat beancount-timestamped-directive-regexp - "\\|" beancount-transaction-regexp) - nil t)) + (let ((pos (point))) + (condition-case e + (progn + ;; Ensures "jump to top of current transaction" behavior that is + ;; common for jump-to-previous commands like this in other Emacs modes + ;; (like org-mode). + (or (bolp) (goto-char (eol))) + (re-search-backward + (concat beancount-timestamped-directive-regexp + "\\|" beancount-transaction-regexp))) + ('search-failed (goto-char pos) nil)))) From 1baea0c4c2c528e78c4f3881d5c2650ac7bd73b6 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 20 Sep 2023 20:18:53 +0200 Subject: [PATCH 194/523] feat(beancount): add +beancount/occur command Inspired by org-occur (or org-sparse-tree): hides all transactions/directives in the buffer that don't involve a selected account. --- modules/lang/beancount/autoload.el | 34 ++++++++++++++++++++++++++++++ modules/lang/beancount/config.el | 1 + 2 files changed, 35 insertions(+) diff --git a/modules/lang/beancount/autoload.el b/modules/lang/beancount/autoload.el index 0f162a0c3..599620ca3 100644 --- a/modules/lang/beancount/autoload.el +++ b/modules/lang/beancount/autoload.el @@ -168,6 +168,40 @@ Updates the date to today." (beancount-insert-date) (insert transaction))))) +;;;###autoload +(defun +beancount/occur (account &optional disable?) + "Hide transactions that don't involve ACCOUNT. + +If DISABLE? (universal arg), reveal hidden accounts without prompting." + (interactive + (list (unless current-prefix-arg + ;; REVIEW: Could/should this be generalized to search for arbitrary + ;; regexps, if desired? + (completing-read "Account: " #'beancount-account-completion-table)) + current-prefix-arg)) + (with-silent-modifications + (save-excursion + (setq header-line-format nil) + ;; TODO: Namespace these text-properties, in case of conflicts + (remove-text-properties (point-min) (point-max) '(invisible nil display nil)) + (unless disable? + ;; TODO: Prettier header-line display + (setq header-line-format `("" "Filtering by account: " ,account)) + (let ((start (point-min)) + (placeholder (propertize "[...]\n" 'face 'shadow))) + (goto-char start) + (while (re-search-forward (concat "\\_<" (regexp-quote account) "\\_>") nil t) + (save-excursion + (seq-let (beg end) (beancount-find-transaction-extents (point)) + ;; TODO: Highlight entry (ala org-occur) + (if (= beg end) + (setq end (save-excursion (goto-char end) (1+ (eol))))) + (put-text-property start beg 'invisible t) + (put-text-property start beg 'display placeholder) + (setq start end)))) + (put-text-property start (point-max) 'invisible t) + (put-text-property start (point-max) 'display placeholder)))))) + ;;;###autoload (defun +beancount/next-transaction (&optional count) "Jump to the start of the next COUNT-th transaction." diff --git a/modules/lang/beancount/config.el b/modules/lang/beancount/config.el index 86dac64c0..79e2cffc8 100644 --- a/modules/lang/beancount/config.el +++ b/modules/lang/beancount/config.el @@ -25,6 +25,7 @@ :localleader "b" #'+beancount/balance "c" #'beancount-check + "s" #'+beancount/occur "l" #'beancount-linked "q" #'beancount-query "x" #'beancount-context From 96aed4bf351cc2e918384626a80cc8ef0105dd33 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 20 Sep 2023 21:00:53 +0200 Subject: [PATCH 195/523] perf(evil): defer evil-collection-tab-bar It gets pulled in early and unavoidably, slowing down startup. --- modules/editor/evil/init.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/editor/evil/init.el b/modules/editor/evil/init.el index 0c3cc57b6..baf9744ed 100644 --- a/modules/editor/evil/init.el +++ b/modules/editor/evil/init.el @@ -43,12 +43,13 @@ indent image kotlin-mode + lispy outline replace shortdoc simple slime - lispy) + tab-bar) "A list of `evil-collection' modules to ignore. See the definition of this variable for an explanation of the defaults (in comments). See `evil-collection-mode-list' for a list of available options.") From 3983fba5b5d9ed0b707cfa49dcab2038d5b2aed2 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 20 Sep 2023 21:01:55 +0200 Subject: [PATCH 196/523] perf(zig): quote flycheck-define-checker Eager expansion of the flycheck-define-checker macro causes flycheck to be unavoidably eager-loaded at startup, regardless of other deferral techniques, slowing down startup considerably, as it pulls in a number of associated packages/config with it. --- modules/lang/zig/config.el | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/modules/lang/zig/config.el b/modules/lang/zig/config.el index a9f21522f..ae69af00c 100644 --- a/modules/lang/zig/config.el +++ b/modules/lang/zig/config.el @@ -21,12 +21,13 @@ (when (and (modulep! :checkers syntax) (not (modulep! :checkers syntax +flymake))) - (flycheck-define-checker zig - "A zig syntax checker using zig's `ast-check` command." - :command ("zig" "ast-check" (eval (buffer-file-name))) - :error-patterns - ((error line-start (file-name) ":" line ":" column ": error: " (message) line-end)) - :modes zig-mode) + (eval '(flycheck-define-checker zig + "A zig syntax checker using zig's `ast-check` command." + :command ("zig" "ast-check" (eval (buffer-file-name))) + :error-patterns + ((error line-start (file-name) ":" line ":" column ": error: " (message) line-end)) + :modes zig-mode) + t) (add-to-list 'flycheck-checkers 'zig)) (map! :localleader From db29f71f103d268fc42a5ebe2b14f2dc82432f81 Mon Sep 17 00:00:00 2001 From: mosquito-magnet <24659697+mosquito-magnet@users.noreply.github.com> Date: Thu, 21 Sep 2023 22:12:50 +0200 Subject: [PATCH 197/523] fix(org): add missing autoloads for org-attach org-attach-delete-one and -all are bound to keys, thus requiring autoload. --- modules/lang/org/config.el | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/lang/org/config.el b/modules/lang/org/config.el index c5cc34542..d32c76928 100644 --- a/modules/lang/org/config.el +++ b/modules/lang/org/config.el @@ -481,7 +481,9 @@ relative to `org-directory', unless it is an absolute path." ;; Autoload all these commands that org-attach doesn't autoload itself (use-package! org-attach - :commands (org-attach-new + :commands (org-attach-delete-one + org-attach-delete-all + org-attach-new org-attach-open org-attach-open-in-emacs org-attach-reveal-in-emacs From 844a82c4a0cacbb5a1aa558c88675ba1a9ee80a3 Mon Sep 17 00:00:00 2001 From: Vitaly Slobodin Date: Fri, 22 Sep 2023 15:44:26 +0200 Subject: [PATCH 198/523] bump: :lang ruby pd/yard-mode.el@ef3426ff55b6 -> pd/yard-mode.el@de1701753a64 nonsequitur/inf-ruby@6f1df882ab31 -> nonsequitur/inf-ruby@03475ac1cca4 dgutov/robe@b9d5ab549f73 -> dgutov/robe@912ae2ba1f46 pezra/rspec-mode@62853a428b41 -> pezra/rspec-mode@29df3d081c6a --- modules/lang/ruby/packages.el | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/lang/ruby/packages.el b/modules/lang/ruby/packages.el index 43bfbc241..274775c9f 100644 --- a/modules/lang/ruby/packages.el +++ b/modules/lang/ruby/packages.el @@ -3,16 +3,16 @@ ;; Major modes (package! ruby-mode :built-in t) -(package! yard-mode :pin "ef3426ff55b6e91d581c8da12f5f64855d932527") +(package! yard-mode :pin "de1701753a64544c3376b015805f3661136d8038") ;; REPL -(package! inf-ruby :pin "6f1df882ab319758af43877fa20465f6566efbf3") +(package! inf-ruby :pin "03475ac1cca410ee63a523f5c63f859cfafe1aeb") (when (modulep! :completion company) (package! company-inf-ruby :pin "fe3e4863bc971fbb81edad447efad5795ead1b17")) ;; Programming environment (package! rubocop :pin "f5fd18aa810c3d3269188cbbd731ddc09006f8f5") -(package! robe :pin "b9d5ab549f73c5587415f538303fa76e0833354d") +(package! robe :pin "912ae2ba1f467bd55b2da64bfec9db3f8a723916") ;; Project tools (package! bundler :pin "43efb6be4ed118b06d787ce7fbcffd68a31732a7") @@ -27,7 +27,7 @@ (package! chruby :pin "42bc6d521f832eca8e2ba210f30d03ad5529788f")) ;; Testing frameworks -(package! rspec-mode :pin "62853a428b416e6a5fd3d8f57ff83a1798188a3f") +(package! rspec-mode :pin "29df3d081c6a1cbdf840cd13d45ea1c100c5bbaa") (package! minitest :pin "ddd152c990a528ad09a696bfad23afa4330ea4d7") ;; Rails From 8eebab4f9762e93d44cfee6264e7dbaa9f2e9a03 Mon Sep 17 00:00:00 2001 From: Pieter-Jan Vandenbussche Date: Mon, 2 Oct 2023 15:57:41 +0200 Subject: [PATCH 199/523] fix(ocaml): add dune-project to ocaml projectile root files --- modules/lang/ocaml/config.el | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/lang/ocaml/config.el b/modules/lang/ocaml/config.el index 4ab8956ca..b678437b5 100644 --- a/modules/lang/ocaml/config.el +++ b/modules/lang/ocaml/config.el @@ -1,5 +1,8 @@ ;;; lang/ocaml/config.el -*- lexical-binding: t; -*- +(after! projectile + (pushnew! projectile-project-root-files "dune-project")) + ;; ;;; Packages From 2497d58e9a8da7387334dd6168459bcbaa77793d Mon Sep 17 00:00:00 2001 From: Liam Hupfer Date: Tue, 26 Sep 2023 20:58:38 -0500 Subject: [PATCH 200/523] fix(vertico): ensure recentf-mode for consult-buffer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `consult-buffer` uses `recentf` to populate file candidates. It is not uncommon to use `consult-buffer` as a single entry point to buffers, bookmarks and recent files, effectively replacing `recentf` and `consult-recent-file`. To improve startup performance, Doom enables `recentf-mode` after the first file is opened (0e851ace9ba4). When executing `consult-buffer` at startup, `recentf-mode` won’t be enabled yet. Add it to the `consult-recent-file` advice to ensure that can’t happen. Unlike `consult-recent-file`, `consult-buffer` does have significant functionality without `recentf-mode`, but for the tiny fraction of Doom users that disable `recentf-mode`, this is easy enough to `advice-remove`. Fix: https://github.com/doomemacs/doomemacs/issues/7461 --- modules/completion/vertico/config.el | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/modules/completion/vertico/config.el b/modules/completion/vertico/config.el index 3d84d9f79..a4efa7c4e 100644 --- a/modules/completion/vertico/config.el +++ b/modules/completion/vertico/config.el @@ -136,9 +136,10 @@ orderless." [remap yank-pop] #'consult-yank-pop [remap persp-switch-to-buffer] #'+vertico/switch-workspace-buffer) :config - (defadvice! +vertico--consult-recent-file-a (&rest _args) - "`consult-recent-file' needs to have `recentf-mode' on to work correctly" - :before #'consult-recent-file + (defadvice! +vertico--consult-recentf-a (&rest _args) + "`consult-recent-file' needs to have `recentf-mode' on to work correctly. +`consult-buffer' needs `recentf-mode' to show file candidates." + :before (list #'consult-recent-file #'consult-buffer) (recentf-mode +1)) (setq consult-project-root-function #'doom-project-root From 1e1e6150d82a2c51be721c551cb85b8d0409cc24 Mon Sep 17 00:00:00 2001 From: Liam Hupfer Date: Wed, 27 Sep 2023 00:18:32 -0500 Subject: [PATCH 201/523] fix(data): correct XML closing tag insertion MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `nxml-slash-auto-complete-flag` inserts the rest of the closing tag when `")` for `sp--html-modes`, so two `>` are inserted for closing tags. Apply the upstream developer’s suggested fix. Fix: https://github.com/doomemacs/doomemacs/issues/6331 Ref: https://github.com/Fuco1/smartparens/issues/397 --- modules/lang/data/config.el | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/lang/data/config.el b/modules/lang/data/config.el index d0777a910..f46042a09 100644 --- a/modules/lang/data/config.el +++ b/modules/lang/data/config.el @@ -7,6 +7,9 @@ :config (setq nxml-slash-auto-complete-flag t nxml-auto-insert-xml-declaration-flag t) + ;; https://github.com/Fuco1/smartparens/issues/397#issuecomment-501059014 + (after! smartparens + (sp-local-pair 'nxml-mode "<" ">" :post-handlers '(("[d1]" "/")))) (set-company-backend! 'nxml-mode '(company-nxml company-yasnippet)) (setq-hook! 'nxml-mode-hook tab-width nxml-child-indent) (set-formatter! 'xmllint '("xmllint" "--format" "-") :modes '(nxml-mode))) From f5be3ec1e58ca4702079004a045bf945889423bd Mon Sep 17 00:00:00 2001 From: StrawberryTea Date: Wed, 27 Sep 2023 18:58:08 -0500 Subject: [PATCH 202/523] fix: use ansi-color-compilation-filter on emacs28+ I'm using Emacs30 and on my version, doom-apply-ansi-color-to-compilation-buffer-h does not colorize all the escape sequences. Using ansi-color-compilation-filter instead fixes this for me. --- lisp/doom-ui.el | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lisp/doom-ui.el b/lisp/doom-ui.el index 172a67634..8245a0fbe 100644 --- a/lisp/doom-ui.el +++ b/lisp/doom-ui.el @@ -316,9 +316,10 @@ windows, switch to `doom-fallback-buffer'. Otherwise, delegate to original (setq compilation-always-kill t ; kill compilation process before starting another compilation-ask-about-save nil ; save all buffers on `compile' compilation-scroll-output 'first-error) - ;; Handle ansi codes in compilation buffer - ;; DEPRECATED Use `ansi-color-compilation-filter' when dropping 27.x support - (add-hook 'compilation-filter-hook #'doom-apply-ansi-color-to-compilation-buffer-h) + (add-hook 'compilation-filter-hook + (if (< emacs-major-version 28) + #'doom-apply-ansi-color-to-compilation-buffer-h + #'ansi-color-compilation-filter)) ;; Automatically truncate compilation buffers so they don't accumulate too ;; much data and bog down the rest of Emacs. (autoload 'comint-truncate-buffer "comint" nil t) From da99d39e4daed6db855556e297e4f8f83d93a1f3 Mon Sep 17 00:00:00 2001 From: terru Date: Thu, 5 Oct 2023 17:45:50 +0200 Subject: [PATCH 203/523] docs(nix): mention +lsp flag Ref: #6592 --- modules/lang/nix/README.org | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules/lang/nix/README.org b/modules/lang/nix/README.org index 96669dc36..1752a3b84 100644 --- a/modules/lang/nix/README.org +++ b/modules/lang/nix/README.org @@ -22,6 +22,12 @@ Includes: - +tree-sitter :: Leverages tree-sitter for better syntax highlighting and structural text editing. Requires [[doom-module::tools tree-sitter]]. +- +lsp :: + Enable an LSP hook for ~nix-mode~. Requires [[doom-module::tools lsp]] and a language + server (one of either ~nil~ or ~rnix-lsp~). + + You can still start a nix lsp manually without this flag, this just adds + a hook to always start the lsp when loading ~nix-mode~. ** Packages - [[doom-package:company-nixos-options]] if [[doom-module::completion company]] From 1a2789c9229f6a6bd4c9001667f3134ec8b8247b Mon Sep 17 00:00:00 2001 From: roife Date: Thu, 5 Oct 2023 23:46:46 +0800 Subject: [PATCH 204/523] fix(workspaces): check before loading tab configuration Fix: #7139 --- modules/ui/workspaces/autoload/workspaces.el | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/ui/workspaces/autoload/workspaces.el b/modules/ui/workspaces/autoload/workspaces.el index 678cae5b8..840ca1d5c 100644 --- a/modules/ui/workspaces/autoload/workspaces.el +++ b/modules/ui/workspaces/autoload/workspaces.el @@ -598,8 +598,9 @@ This be hooked to `projectile-after-switch-project-hook'." ;;;###autoload (defun +workspaces-load-tab-bar-data-from-file-h (&rest _) "Restores the tab bar data from file." - (tab-bar-tabs-set (persp-parameter 'tab-bar-tabs)) - (tab-bar--update-tab-bar-lines t)) + (when-let ((persp-tab-data (persp-parameter 'tab-bar-tabs))) + (tab-bar-tabs-set persp-tab-data) + (tab-bar--update-tab-bar-lines t))) ;; ;;; Advice From bd9aef928c6b32c368173f69458e8797841eeea3 Mon Sep 17 00:00:00 2001 From: arnfaldur Date: Fri, 6 Oct 2023 22:36:59 +0200 Subject: [PATCH 205/523] fix(rust): make cargo popups consistent When invoking `rustic-cargo-run` a buffer called `*cargo-run*` is opened. This adds a rule such that this buffer opens in a popup window that is the same as the popup windows for other rustic cargo commands. Ref: #2623 --- modules/lang/rust/config.el | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/lang/rust/config.el b/modules/lang/rust/config.el index 571a63077..9ed0483e3 100644 --- a/modules/lang/rust/config.el +++ b/modules/lang/rust/config.el @@ -30,6 +30,7 @@ (add-hook 'rustic-mode-hook #'rainbow-delimiters-mode) (set-docsets! 'rustic-mode "Rust") (set-popup-rule! "^\\*rustic-compilation" :vslot -1) + (set-popup-rule! "^\\*cargo-run" :vslot -1) (setq rustic-indent-method-chain t) From 10567b6cec47e24a6f124aa94a4e4d20367aa3d1 Mon Sep 17 00:00:00 2001 From: Sean Farley Date: Thu, 28 Sep 2023 20:56:07 -0700 Subject: [PATCH 206/523] nit(mu4e): :height parameter was already the default value No need to send it since it's the default value. --- modules/email/mu4e/autoload/email.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/email/mu4e/autoload/email.el b/modules/email/mu4e/autoload/email.el index b740868ac..ff48f57c9 100644 --- a/modules/email/mu4e/autoload/email.el +++ b/modules/email/mu4e/autoload/email.el @@ -132,7 +132,7 @@ will also be the width of all other printable characters." (setq mu4e-use-fancy-chars t mu4e-headers-draft-mark (cons "D" (+mu4e-normalised-icon "nf-fa-pencil")) mu4e-headers-flagged-mark (cons "F" (+mu4e-normalised-icon "nf-fa-flag")) - mu4e-headers-new-mark (cons "N" (+mu4e-normalised-icon "nf-md-sync" :set "mdicon" :height 0.8 :v-adjust -0.10)) + mu4e-headers-new-mark (cons "N" (+mu4e-normalised-icon "nf-md-sync" :set "mdicon" :v-adjust -0.10)) mu4e-headers-passed-mark (cons "P" (+mu4e-normalised-icon "nf-fa-arrow_right")) mu4e-headers-replied-mark (cons "R" (+mu4e-normalised-icon "nf-fa-reply")) mu4e-headers-seen-mark (cons "S" "") ;(+mu4e-normalised-icon "eye" :height 0.6 :v-adjust 0.07 :color "dsilver")) From 9f922065baeff5e5686da4f687481334426a94e1 Mon Sep 17 00:00:00 2001 From: Sean Farley Date: Thu, 28 Sep 2023 21:06:42 -0700 Subject: [PATCH 207/523] refactor(mu4e): prepare `+mu4e-normalised-icon' for extra padding This is non-functional change to use `format' instead of `concat'. It will make the next patch easier to read. --- modules/email/mu4e/autoload/email.el | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/email/mu4e/autoload/email.el b/modules/email/mu4e/autoload/email.el index ff48f57c9..c9c65b586 100644 --- a/modules/email/mu4e/autoload/email.el +++ b/modules/email/mu4e/autoload/email.el @@ -123,8 +123,10 @@ will also be the width of all other printable characters." (apply icon-set `(,name :height ,height :v-adjust ,v-adjust)))) (icon-width (+mu4e--get-string-width icon)) (space-width (+mu4e--get-string-width " ")) - (space-factor (- 2 (/ (float icon-width) space-width)))) - (concat (propertize " " 'display `(space . (:width ,space-factor))) icon))) + (space-factor (- 2 (/ (float icon-width) space-width))) + ;; always pad the left + (space-left (propertize " " 'display `(space . (:width ,space-factor))))) + (format "%s%s" space-left icon))) ;; Set up all the fancy icons ;;;###autoload From b40e435f539fdac0c9f4dfe70fbda26a70f30da2 Mon Sep 17 00:00:00 2001 From: Sean Farley Date: Thu, 28 Sep 2023 21:19:22 -0700 Subject: [PATCH 208/523] feat(mu4e): add space-right argument to `+mu4e-normalised-icon' This allows a tiny (but equal) amount of space to the right of the icon. In the next patch, we'll use this for some icons in the modeline. --- modules/email/mu4e/autoload/email.el | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/modules/email/mu4e/autoload/email.el b/modules/email/mu4e/autoload/email.el index c9c65b586..42e356a18 100644 --- a/modules/email/mu4e/autoload/email.el +++ b/modules/email/mu4e/autoload/email.el @@ -113,7 +113,7 @@ will also be the width of all other printable characters." (insert str) (car (window-text-pixel-size))))) -(cl-defun +mu4e-normalised-icon (name &key set color height v-adjust) +(cl-defun +mu4e-normalised-icon (name &key set color height v-adjust space-right) "Convert :icon declaration to icon" (let* ((icon-set (intern (concat "nerd-icons-" (or set "faicon")))) (v-adjust (or v-adjust 0.02)) @@ -125,8 +125,10 @@ will also be the width of all other printable characters." (space-width (+mu4e--get-string-width " ")) (space-factor (- 2 (/ (float icon-width) space-width))) ;; always pad the left - (space-left (propertize " " 'display `(space . (:width ,space-factor))))) - (format "%s%s" space-left icon))) + (space-left (propertize " " 'display `(space . (:width ,space-factor)))) + ;; optionally pad the right + (space-right (if space-right space-left ""))) + (format "%s%s%s" space-left icon space-right))) ;; Set up all the fancy icons ;;;###autoload From feec9368e2dc8a425d1d388a451595343cef5b80 Mon Sep 17 00:00:00 2001 From: Sean Farley Date: Thu, 28 Sep 2023 21:21:56 -0700 Subject: [PATCH 209/523] feat(mu4e): set consistent icons for `mu4e-modeline-*' variables These are new variables in mu4e so let's go ahead and set them to match doom's style for email icons. --- modules/email/mu4e/autoload/email.el | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules/email/mu4e/autoload/email.el b/modules/email/mu4e/autoload/email.el index 42e356a18..336ed40f1 100644 --- a/modules/email/mu4e/autoload/email.el +++ b/modules/email/mu4e/autoload/email.el @@ -134,6 +134,12 @@ will also be the width of all other printable characters." ;;;###autoload (defun +mu4e-initialise-icons () (setq mu4e-use-fancy-chars t + + mu4e-modeline-all-clear (cons "C:" (+mu4e-normalised-icon "nf-md-check" :set "mdicon" :height 1.0 :space-right t)) ;;󰄬 + mu4e-modeline-all-read (cons "R:" (+mu4e-normalised-icon "nf-md-email_check" :set "mdicon" :height 1.0 :space-right t)) ;;󰪱 + mu4e-modeline-unread-items (cons "U:" (+mu4e-normalised-icon "nf-md-email_alert" :set "mdicon" :height 1.0 :space-right t)) ;;󰛏 + mu4e-modeline-new-items (cons "N:" (+mu4e-normalised-icon "nf-md-sync" :set "mdicon" :height 1.0 :space-right t)) ;;󰓦 + mu4e-headers-draft-mark (cons "D" (+mu4e-normalised-icon "nf-fa-pencil")) mu4e-headers-flagged-mark (cons "F" (+mu4e-normalised-icon "nf-fa-flag")) mu4e-headers-new-mark (cons "N" (+mu4e-normalised-icon "nf-md-sync" :set "mdicon" :v-adjust -0.10)) From ce8c2af08c9d528fa38a2b29e6ee185c3494a1c8 Mon Sep 17 00:00:00 2001 From: Sean Farley Date: Thu, 28 Sep 2023 21:34:15 -0700 Subject: [PATCH 210/523] fix(mu4e): set popup rules for mu4e I'm not sure how this works for anyone without setting these rules. By setting them here, users will have a good out-of-box experience of using mu4e. --- modules/email/mu4e/config.el | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/email/mu4e/config.el b/modules/email/mu4e/config.el index 8ab1418ff..d95fb6d6e 100644 --- a/modules/email/mu4e/config.el +++ b/modules/email/mu4e/config.el @@ -221,6 +221,9 @@ is non-nil." ;; Wrap text in messages (setq-hook! 'mu4e-view-mode-hook truncate-lines nil) + ;; mu4e now uses `display-buffer-alist' so we need to add some rules of our own + (set-popup-rule! "^\\*mu4e-\\(main\\|headers\\)\\*" :ignore t) + ;; Html mails might be better rendered in a browser (add-to-list 'mu4e-view-actions '("View in browser" . mu4e-action-view-in-browser)) (when (fboundp 'make-xwidget) From 5df41be02b0de41d45d4c6d0e25148e40fdb4a22 Mon Sep 17 00:00:00 2001 From: Sean Farley Date: Fri, 29 Sep 2023 13:36:45 -0700 Subject: [PATCH 211/523] nit(mu4e): remove underline for blank space Previously, this was a bit confusing and didn't look quite right. Instead, just pad the space in the temp buffer instead of fontifying it into a button. --- modules/email/mu4e/config.el | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/modules/email/mu4e/config.el b/modules/email/mu4e/config.el index d95fb6d6e..9f2791271 100644 --- a/modules/email/mu4e/config.el +++ b/modules/email/mu4e/config.el @@ -120,6 +120,7 @@ is non-nil." ;; Better search symbols (letf! ((defun make-help-button (text help-echo) (with-temp-buffer + (insert " ") (insert-text-button text 'help-echo help-echo 'mouse-face nil) @@ -128,13 +129,13 @@ is non-nil." (cons (make-help-button text1 help-echo) (make-help-button text2 help-echo)))) (setq mu4e-headers-threaded-label - (make-help-button-cons "T" (concat " " (nerd-icons-octicon "nf-oct-git_branch" :v-adjust 0.05)) + (make-help-button-cons "T" (nerd-icons-octicon "nf-oct-git_branch" :v-adjust 0.05) "Thread view") mu4e-headers-related-label - (make-help-button-cons "R" (concat " " (nerd-icons-mdicon "nf-md-link" :v-adjust -0.1)) + (make-help-button-cons "R" (nerd-icons-mdicon "nf-md-link" :v-adjust -0.1) "Showing related emails") mu4e-headers-full-label - (make-help-button-cons "F" (concat " " (nerd-icons-mdicon "nf-md-disc")) + (make-help-button-cons "F" (nerd-icons-mdicon "nf-md-disc") "Search is full!"))) ;; set mail user agent From c4bb95e073c3cd8bc9e0a115bbc31d7d3023e788 Mon Sep 17 00:00:00 2001 From: How Si Wei Date: Mon, 25 Sep 2023 13:44:37 +0800 Subject: [PATCH 212/523] fix(popup): change evil function to call following upstream rename --- modules/ui/popup/+hacks.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ui/popup/+hacks.el b/modules/ui/popup/+hacks.el index a7010ad7e..1b040fd34 100644 --- a/modules/ui/popup/+hacks.el +++ b/modules/ui/popup/+hacks.el @@ -120,7 +120,7 @@ were followed." (setq-local evil-command-window-execute-fn execute-fn) (setq-local evil-command-window-cmd-key cmd-key) (evil-command-window-mode) - (evil-command-window-insert-commands hist))) + (evil--command-window-insert-commands hist))) (defadvice! +popup--evil-command-window-execute-a () "Execute the command under the cursor in the appropriate buffer, rather than From 5e6430e9e6e642fc12913cc6b10e599317a2bb7a Mon Sep 17 00:00:00 2001 From: Liam Hupfer Date: Wed, 20 Sep 2023 17:46:48 -0500 Subject: [PATCH 213/523] fix: assign Nerd Fonts directly to Unicode PUAs Nerd Fonts assign icons to code points in these Unicode Private Use Areas. `doom-unicode-font` is now available again as a user-defined fallback of last resort for non-PUA Unicode code points. Ref: https://github.com/ryanoasis/nerd-fonts/wiki/Glyph-Sets-and-Code-Points/f12c615e4d2a411d5e9b3cc57533cf4866e6e3f2#overview --- lisp/doom-ui.el | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lisp/doom-ui.el b/lisp/doom-ui.el index 8245a0fbe..e343d9bd3 100644 --- a/lisp/doom-ui.el +++ b/lisp/doom-ui.el @@ -36,7 +36,7 @@ Must be a `font-spec', a font object, an XFT font string, or an XLFD string. See An omitted font size means to inherit `doom-font''s size.") -(defvar doom-unicode-font (font-spec :family "Symbols Nerd Font Mono") +(defvar doom-unicode-font nil "Fallback font for Unicode glyphs. Must be a `font-spec', a font object, an XFT font string, or an XLFD string. See `doom-font' for examples. @@ -531,7 +531,10 @@ windows, switch to `doom-fallback-buffer'. Otherwise, delegate to original (when-let (font (cl-find-if fn doom-emoji-fallback-font-families)) (set-fontset-font t 'unicode font)) (when doom-unicode-font - (set-fontset-font t 'unicode doom-unicode-font)))) + (set-fontset-font t 'unicode doom-unicode-font))) + ;; Nerd Fonts use these Private Use Areas + (dolist (range '((#xe000 . #xf8ff) (#xf0000 . #xfffff))) + (set-fontset-font t range "Symbols Nerd Font Mono"))) ;; Users should inject their own font logic in `after-setting-font-hook' (run-hooks 'after-setting-font-hook)) From 317cea5eefda4c4fa9dde036985ffd7887dad792 Mon Sep 17 00:00:00 2001 From: Liam Hupfer Date: Wed, 20 Sep 2023 18:10:49 -0500 Subject: [PATCH 214/523] fix: assign emoji fallbacks directly to emoji script Ref: https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=12d2fb58c416b557924174f57bfb1c9b9e7cf999 --- lisp/doom-ui.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/doom-ui.el b/lisp/doom-ui.el index e343d9bd3..690163004 100644 --- a/lisp/doom-ui.el +++ b/lisp/doom-ui.el @@ -529,7 +529,7 @@ windows, switch to `doom-fallback-buffer'. Otherwise, delegate to original (when-let (font (cl-find-if fn doom-symbol-fallback-font-families)) (set-fontset-font t 'symbol font)) (when-let (font (cl-find-if fn doom-emoji-fallback-font-families)) - (set-fontset-font t 'unicode font)) + (set-fontset-font t 'emoji font)) (when doom-unicode-font (set-fontset-font t 'unicode doom-unicode-font))) ;; Nerd Fonts use these Private Use Areas From 1cc7b040598a1cc6c1d76e9747cf10f5147cca52 Mon Sep 17 00:00:00 2001 From: Liam Hupfer Date: Wed, 20 Sep 2023 19:59:52 -0500 Subject: [PATCH 215/523] docs: clarify doom-unicode-font default MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit d4dec3565870 removed Apple Color Emoji, and it wasn’t clear how Symbola was set if this variable was nil. --- docs/faq.org | 4 ++-- lisp/doom-ui.el | 4 +--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/docs/faq.org b/docs/faq.org index db7bed816..a93c18eb6 100644 --- a/docs/faq.org +++ b/docs/faq.org @@ -248,8 +248,8 @@ Doom exposes a couple variables for setting fonts. They are: - [[var:doom-variable-pitch-font]]: used for non-monospace fonts (e.g. when using variable-pitch-mode or mixed-pitch-mode). Popular for text modes, like Org or Markdown. -- [[var:doom-unicode-font]]: used for rendering unicode glyphs. This is ~Symbola~ by - default. It is ignored if the [[doom-module::ui unicode]] module is enabled. +- [[var:doom-unicode-font]]: used for rendering unicode glyphs. Emacs defaults to + Symbola. It is ignored if the [[doom-module::ui unicode]] module is enabled. - [[var:doom-serif-font]]: the sans-serif font to use wherever the [[face:fixed-pitch-serif]] face is used. - [[var:doom-big-font]]: the large font to use when [[fn:doom-big-font-mode]] is active. diff --git a/lisp/doom-ui.el b/lisp/doom-ui.el index 690163004..d03678c7d 100644 --- a/lisp/doom-ui.el +++ b/lisp/doom-ui.el @@ -39,9 +39,7 @@ An omitted font size means to inherit `doom-font''s size.") (defvar doom-unicode-font nil "Fallback font for Unicode glyphs. Must be a `font-spec', a font object, an XFT font string, or an XLFD string. See -`doom-font' for examples. - -The defaults on macOS and Linux are Apple Color Emoji and Symbola, respectively. +`doom-font' for examples. Emacs defaults to Symbola. WARNING: if you specify a size for this font it will hard-lock any usage of this font to that size. It's rarely a good idea to do so!") From 4499ce7b0a0137766387289000d45d253e6e1ee2 Mon Sep 17 00:00:00 2001 From: Liam Hupfer Date: Sun, 24 Sep 2023 21:39:01 -0500 Subject: [PATCH 216/523] refactor: doom-unicode-font -> doom-symbol-font MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit No font supports all of Unicode or anywhere near it. It’s not even really possible with current font formats. Therefore, rename `doom-unicode-font` to `doom-symbol-font`. Only set it as a fallback for characters in the `symbol` and `mathematical` scripts. --- docs/faq.org | 7 +++---- lisp/doom-ui.el | 16 ++++++++++------ modules/README.org | 4 ++-- modules/ui/doom/README.org | 4 ++-- modules/ui/ligatures/README.org | 7 +++---- modules/ui/unicode/README.org | 10 +++++----- modules/ui/unicode/autoload.el | 8 ++++---- templates/config.example.el | 2 +- 8 files changed, 30 insertions(+), 28 deletions(-) diff --git a/docs/faq.org b/docs/faq.org index a93c18eb6..97f95aa0b 100644 --- a/docs/faq.org +++ b/docs/faq.org @@ -248,8 +248,7 @@ Doom exposes a couple variables for setting fonts. They are: - [[var:doom-variable-pitch-font]]: used for non-monospace fonts (e.g. when using variable-pitch-mode or mixed-pitch-mode). Popular for text modes, like Org or Markdown. -- [[var:doom-unicode-font]]: used for rendering unicode glyphs. Emacs defaults to - Symbola. It is ignored if the [[doom-module::ui unicode]] module is enabled. +- [[var:doom-symbol-font]]: used for rendering symbols. - [[var:doom-serif-font]]: the sans-serif font to use wherever the [[face:fixed-pitch-serif]] face is used. - [[var:doom-big-font]]: the large font to use when [[fn:doom-big-font-mode]] is active. @@ -267,7 +266,7 @@ For example: ;; in $DOOMDIR/config.el (setq doom-font (font-spec :family "JetBrainsMono" :size 12 :weight 'light) doom-variable-pitch-font (font-spec :family "DejaVu Sans" :size 13) - doom-unicode-font (font-spec :family "Symbola") + doom-symbol-font (font-spec :family "JuliaMono") doom-big-font (font-spec :family "JetBrainsMono" :size 24)) #+end_src @@ -524,7 +523,7 @@ Here are a few common causes for random crashes: - Some fonts cause Emacs to crash when they lack support for a particular glyph (typically symbols). Try changing your font by changing ~doom-font~ or - ~doom-unicode-font~. + ~doom-symbol-font~. - Ligatures can cause Emacs to crash. Try a different [[doom-module::ui ligatures +fira][ligature font]] or disable the [[doom-module::ui ligatures]] module altogether. diff --git a/lisp/doom-ui.el b/lisp/doom-ui.el index d03678c7d..1762e1b8a 100644 --- a/lisp/doom-ui.el +++ b/lisp/doom-ui.el @@ -36,14 +36,16 @@ Must be a `font-spec', a font object, an XFT font string, or an XLFD string. See An omitted font size means to inherit `doom-font''s size.") -(defvar doom-unicode-font nil - "Fallback font for Unicode glyphs. +(defvar doom-symbol-font nil + "Fallback font for symbols. Must be a `font-spec', a font object, an XFT font string, or an XLFD string. See `doom-font' for examples. Emacs defaults to Symbola. WARNING: if you specify a size for this font it will hard-lock any usage of this font to that size. It's rarely a good idea to do so!") +(define-obsolete-variable-alias 'doom-unicode-font 'doom-symbol-font "3.0.0") + (defvar doom-emoji-fallback-font-families '("Apple Color Emoji" "Segoe UI Emoji" @@ -525,11 +527,13 @@ windows, switch to `doom-fallback-buffer'. Otherwise, delegate to original (when (fboundp 'set-fontset-font) (let ((fn (doom-rpartial #'member (font-family-list)))) (when-let (font (cl-find-if fn doom-symbol-fallback-font-families)) - (set-fontset-font t 'symbol font)) + (dolist (script '(symbol mathematical)) + (set-fontset-font t script font))) (when-let (font (cl-find-if fn doom-emoji-fallback-font-families)) - (set-fontset-font t 'emoji font)) - (when doom-unicode-font - (set-fontset-font t 'unicode doom-unicode-font))) + (set-fontset-font t 'emoji font))) + (when doom-symbol-font + (dolist (script '(symbol mathematical)) + (set-fontset-font t script doom-symbol-font))) ;; Nerd Fonts use these Private Use Areas (dolist (range '((#xe000 . #xf8ff) (#xf0000 . #xfffff))) (set-fontset-font t range "Symbols Nerd Font Mono"))) diff --git a/modules/README.org b/modules/README.org index f2f6e5f07..2a017c3cb 100644 --- a/modules/README.org +++ b/modules/README.org @@ -1417,12 +1417,12 @@ emacs fontset to cover as many unicode glyphs as possible by scanning all available glyphs from all available fonts. When this module is enabled: -- Emacs will prefer to use the ~doom-unicode-font~ font to display non-latin +- Emacs will prefer to use the ~doom-symbol-font~ font to display non-latin glyphs if it provides coverage for them. - The first time you run Emacs a unicode cache will be generated -- this will take a while! - The cache will be regenerated every time Emacs is made aware of new fonts or - you change the font configuration e.g. by modifying ~doom-unicode-font~. + you change the font configuration e.g. by modifying ~doom-symbol-font~. - The cache will be stored and should not be regenerated unless font-related configuration or the versions of relevant packages changes. diff --git a/modules/ui/doom/README.org b/modules/ui/doom/README.org index e614537f8..b46335d87 100644 --- a/modules/ui/doom/README.org +++ b/modules/ui/doom/README.org @@ -71,13 +71,13 @@ core/core-ui.el has four relevant variables: - ~doom-big-font~ :: the font to use when ~doom-big-font-mode~ is enabled. - ~doom-variable-pitch-font~ :: the font to use when ~variable-pitch-mode~ is active (or where the ~variable-pitch~ face is used). -- ~doom-unicode-font~ :: the font used to display unicode symbols. This is +- ~doom-symbol-font~ :: the font used to display unicode symbols. This is ignored if the [[doom-module::ui unicode]] module is enabled. #+begin_src emacs-lisp (setq doom-font (font-spec :family "Fira Mono" :size 12) doom-variable-pitch-font (font-spec :family "Fira Sans") - doom-unicode-font (font-spec :family "DejaVu Sans Mono") + doom-symbol-font (font-spec :family "JuliaMono") doom-big-font (font-spec :family "Fira Mono" :size 19)) #+end_src diff --git a/modules/ui/ligatures/README.org b/modules/ui/ligatures/README.org index b893a4662..8cd7a4478 100644 --- a/modules/ui/ligatures/README.org +++ b/modules/ui/ligatures/README.org @@ -247,10 +247,9 @@ happen in all modes, you can use ** Some symbols are not rendering correctly This can usually be fixed by doing one of the following: -- Make sure Symbola (the font) is installed on your system. -- Otherwise, change [[var:doom-unicode-font]] (set to Symbola by default). -- Disable the [[doom-module::ui unicode]] module. It not only overrides [[var:doom-unicode-font]], but - should only be used as a last resort. +- Set [[var:doom-symbol-font]]. +- Disable the [[doom-module::ui unicode]] module. It overrides [[var:doom-symbol-font]] + and should only be used as a last resort. * Frequently asked questions /This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]] diff --git a/modules/ui/unicode/README.org b/modules/ui/unicode/README.org index a9180609e..dd7a796ec 100644 --- a/modules/ui/unicode/README.org +++ b/modules/ui/unicode/README.org @@ -13,12 +13,12 @@ emacs fontset to cover as many unicode glyphs as possible by scanning all available glyphs from all available fonts. When this module is enabled: -- Emacs will prefer to use the ~doom-unicode-font~ font to display non-latin +- Emacs will prefer to use the ~doom-symbol-font~ font to display non-latin glyphs if it provides coverage for them. - The first time you run Emacs a unicode cache will be generated -- this will take a while! - The cache will be regenerated every time Emacs is made aware of new fonts or - you change the font configuration e.g. by modifying ~doom-unicode-font~. + you change the font configuration e.g. by modifying ~doom-symbol-font~. - The cache will be stored and should not be regenerated unless font-related configuration or the versions of relevant packages changes. @@ -54,16 +54,16 @@ When this module is enabled: #+end_quote The first font that will be analyzed to see if it contains the glyphs of -non-latin characters will be ~doom-unicode-font~: +non-latin characters will be ~doom-symbol-font~: #+begin_src emacs-lisp ;; in $DOOMDIR/config.el -(setq doom-unicode-font (font-spec :family "Fira Mono")) +(setq doom-symbol-font (font-spec :family "JuliaMono")) #+end_src If your ~doom-font~ provides good unicode coverage use: #+begin_src emacs-lisp ;; in $DOOMDIR/config.el -(setq doom-unicode-font doom-font) +(setq doom-symbol-font doom-font) #+end_src If your font does not provide some glyphs, this package will try its best to diff --git a/modules/ui/unicode/autoload.el b/modules/ui/unicode/autoload.el index 45a63ca66..7f9a857e7 100644 --- a/modules/ui/unicode/autoload.el +++ b/modules/ui/unicode/autoload.el @@ -12,14 +12,14 @@ necessary." (defun +unicode-setup-fonts-h (&optional frame) "Initialize `unicode-fonts', if in a GUI session. -If doom-unicode-font is set, add it as preferred font for all unicode blocks." +If doom-symbol-font is set, add it as a preferred font for all Unicode blocks." (when (and frame (display-multi-font-p frame)) (with-selected-frame frame (require 'unicode-fonts) - (when doom-unicode-font - (let ((doom-unicode-font-family (plist-get (font-face-attributes doom-unicode-font) :family))) + (when doom-symbol-font + (let ((doom-symbol-font-family (plist-get (font-face-attributes doom-symbol-font) :family))) (dolist (unicode-block unicode-fonts-block-font-mapping) - (push doom-unicode-font-family (cadr unicode-block))))) + (push doom-symbol-font-family (cadr unicode-block))))) ;; NOTE: will impact startup time on first run (let (inhibit-redisplay inhibit-message) (unicode-fonts-setup))))) diff --git a/templates/config.example.el b/templates/config.example.el index fa39ec981..9746b74ff 100644 --- a/templates/config.example.el +++ b/templates/config.example.el @@ -15,7 +15,7 @@ ;; - `doom-variable-pitch-font' -- a non-monospace font (where applicable) ;; - `doom-big-font' -- used for `doom-big-font-mode'; use this for ;; presentations or streaming. -;; - `doom-unicode-font' -- for unicode glyphs +;; - `doom-symbol-font' -- for symbols ;; - `doom-serif-font' -- for the `fixed-pitch-serif' face ;; ;; See 'C-h v doom-font' for documentation and more examples of what they From 37affa5cff40c61ca68a6f544e6daa10377f3abe Mon Sep 17 00:00:00 2001 From: Liam Hupfer Date: Sun, 24 Sep 2023 21:28:13 -0500 Subject: [PATCH 217/523] feat: add doom-emoji-font This parallels doom-symbol-font for emoji. In the process, refactor symbol and emoji font setup to take advantage of these parallels. --- docs/faq.org | 2 ++ lisp/doom-ui.el | 25 +++++++++++++++++-------- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/docs/faq.org b/docs/faq.org index 97f95aa0b..480ae45a0 100644 --- a/docs/faq.org +++ b/docs/faq.org @@ -248,6 +248,8 @@ Doom exposes a couple variables for setting fonts. They are: - [[var:doom-variable-pitch-font]]: used for non-monospace fonts (e.g. when using variable-pitch-mode or mixed-pitch-mode). Popular for text modes, like Org or Markdown. +- [[var:doom-emoji-font]]: used for rendering emoji. Only needed if you want to use + a font other than your operating system’s default. - [[var:doom-symbol-font]]: used for rendering symbols. - [[var:doom-serif-font]]: the sans-serif font to use wherever the [[face:fixed-pitch-serif]] face is used. diff --git a/lisp/doom-ui.el b/lisp/doom-ui.el index 1762e1b8a..b3867e851 100644 --- a/lisp/doom-ui.el +++ b/lisp/doom-ui.el @@ -46,6 +46,14 @@ font to that size. It's rarely a good idea to do so!") (define-obsolete-variable-alias 'doom-unicode-font 'doom-symbol-font "3.0.0") +(defvar doom-emoji-font nil + "Fallback font for emoji. +Must be a `font-spec', a font object, an XFT font string, or an XLFD string. See +`doom-font' for examples. + +WARNING: if you specify a size for this font it will hard-lock any usage of this +font to that size. It's rarely a good idea to do so!") + (defvar doom-emoji-fallback-font-families '("Apple Color Emoji" "Segoe UI Emoji" @@ -525,15 +533,16 @@ windows, switch to `doom-fallback-buffer'. Otherwise, delegate to original (custom-push-theme 'theme-face face 'user 'set new-specs) (put face 'face-modified nil)))) (when (fboundp 'set-fontset-font) - (let ((fn (doom-rpartial #'member (font-family-list)))) - (when-let (font (cl-find-if fn doom-symbol-fallback-font-families)) + (let* ((fn (doom-rpartial #'member (font-family-list))) + (symbol-font (or doom-symbol-font + (cl-find-if fn doom-symbol-fallback-font-families))) + (emoji-font (or doom-emoji-font + (cl-find-if fn doom-emoji-fallback-font-families)))) + (when symbol-font (dolist (script '(symbol mathematical)) - (set-fontset-font t script font))) - (when-let (font (cl-find-if fn doom-emoji-fallback-font-families)) - (set-fontset-font t 'emoji font))) - (when doom-symbol-font - (dolist (script '(symbol mathematical)) - (set-fontset-font t script doom-symbol-font))) + (set-fontset-font t script symbol-font))) + (when emoji-font + (set-fontset-font t 'emoji emoji-font))) ;; Nerd Fonts use these Private Use Areas (dolist (range '((#xe000 . #xf8ff) (#xf0000 . #xfffff))) (set-fontset-font t range "Symbols Nerd Font Mono"))) From 7abed4dbf1619ff581bf24dc72822c625b9983fc Mon Sep 17 00:00:00 2001 From: Liam Hupfer Date: Wed, 27 Sep 2023 20:14:39 -0500 Subject: [PATCH 218/523] fix: fall back to emoji font for symbols Symbols fonts vary widely in their coverage of Unicode symbols blocks. Emoji fonts are generally guaranteed to cover the small subset of symbols code points that have assigned emoji representations, so fall back to them when symbols fonts are lacking. Ref: https://en.wikipedia.org/w/index.php?title=Variant_form_(Unicode)&oldid=1175107681#Blocks_with_standardized_variation_sequences --- lisp/doom-ui.el | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lisp/doom-ui.el b/lisp/doom-ui.el index b3867e851..8e35f34b7 100644 --- a/lisp/doom-ui.el +++ b/lisp/doom-ui.el @@ -542,7 +542,10 @@ windows, switch to `doom-fallback-buffer'. Otherwise, delegate to original (dolist (script '(symbol mathematical)) (set-fontset-font t script symbol-font))) (when emoji-font - (set-fontset-font t 'emoji emoji-font))) + (set-fontset-font t 'emoji emoji-font) + ;; some characters in the Emacs symbol script are often covered by emoji + ;; fonts + (set-fontset-font t 'symbol emoji-font nil 'append))) ;; Nerd Fonts use these Private Use Areas (dolist (range '((#xe000 . #xf8ff) (#xf0000 . #xfffff))) (set-fontset-font t range "Symbols Nerd Font Mono"))) From b42882c54520e783beb7fa0784a9657c5a2625fe Mon Sep 17 00:00:00 2001 From: Liam Hupfer Date: Sun, 24 Sep 2023 21:28:42 -0500 Subject: [PATCH 219/523] refactor: make fallback font families constant These are undocumented internal variables for basic platform-specific fallbacks. Now that doom-symbol-font and doom-emoji-font exist, make them constant. --- lisp/doom-ui.el | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lisp/doom-ui.el b/lisp/doom-ui.el index 8e35f34b7..fc3821246 100644 --- a/lisp/doom-ui.el +++ b/lisp/doom-ui.el @@ -54,17 +54,21 @@ Must be a `font-spec', a font object, an XFT font string, or an XLFD string. See WARNING: if you specify a size for this font it will hard-lock any usage of this font to that size. It's rarely a good idea to do so!") -(defvar doom-emoji-fallback-font-families +(defconst doom-emoji-fallback-font-families '("Apple Color Emoji" "Segoe UI Emoji" "Noto Color Emoji" "Noto Emoji") - "A list of fallback font families to use for emojis.") + "A list of fallback font families to use for emojis. +These are platform-specific fallbacks for internal use. If you +want to change your emoji font, use `doom-emoji-font'.") -(defvar doom-symbol-fallback-font-families +(defconst doom-symbol-fallback-font-families '("Segoe UI Symbol" "Apple Symbols") - "A list of fallback font families for general symbol glyphs.") + "A list of fallback font families for general symbol glyphs. +These are platform-specific fallbacks for internal use. If you +want to change your symbol font, use `doom-symbol-font'.") ;; From 986398504d09e585c7d1a8d73a6394024fe6f164 Mon Sep 17 00:00:00 2001 From: Liam Hupfer Date: Sun, 24 Sep 2023 23:02:44 -0500 Subject: [PATCH 220/523] refactor: defvar -> defcustom Ref: 8c442d84b9c055200e61c4333e117c1ce914027d --- lisp/doom-ui.el | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/lisp/doom-ui.el b/lisp/doom-ui.el index fc3821246..360998c66 100644 --- a/lisp/doom-ui.el +++ b/lisp/doom-ui.el @@ -5,13 +5,13 @@ ;; ;;; Variables -(defvar doom-theme nil +(defcustom doom-theme nil "A symbol representing the Emacs theme to load at startup. Set to `nil' to load no theme at all. This variable is changed by `load-theme'.") -(defvar doom-font nil +(defcustom doom-font nil "The default font to use. Must be a `font-spec', a font object, an XFT font string, or an XLFD string. @@ -22,21 +22,21 @@ Examples: (setq doom-font \"Terminus (TTF):pixelsize=12:antialias=off\") (setq doom-font \"Fira Code-14\")") -(defvar doom-variable-pitch-font nil +(defcustom doom-variable-pitch-font nil "The default font to use for variable-pitch text. Must be a `font-spec', a font object, an XFT font string, or an XLFD string. See `doom-font' for examples. An omitted font size means to inherit `doom-font''s size.") -(defvar doom-serif-font nil +(defcustom doom-serif-font nil "The default font to use for the `fixed-pitch-serif' face. Must be a `font-spec', a font object, an XFT font string, or an XLFD string. See `doom-font' for examples. An omitted font size means to inherit `doom-font''s size.") -(defvar doom-symbol-font nil +(defcustom doom-symbol-font nil "Fallback font for symbols. Must be a `font-spec', a font object, an XFT font string, or an XLFD string. See `doom-font' for examples. Emacs defaults to Symbola. @@ -46,7 +46,7 @@ font to that size. It's rarely a good idea to do so!") (define-obsolete-variable-alias 'doom-unicode-font 'doom-symbol-font "3.0.0") -(defvar doom-emoji-font nil +(defcustom doom-emoji-font nil "Fallback font for emoji. Must be a `font-spec', a font object, an XFT font string, or an XLFD string. See `doom-font' for examples. @@ -74,20 +74,20 @@ want to change your symbol font, use `doom-symbol-font'.") ;; ;;; Custom hooks -(defvar doom-init-ui-hook nil +(defcustom doom-init-ui-hook nil "List of hooks to run when the UI has been initialized.") -(defvar doom-load-theme-hook nil +(defcustom doom-load-theme-hook nil "Hook run after the theme is loaded with `load-theme' or reloaded with `doom/reload-theme'.") -(defvar doom-switch-buffer-hook nil +(defcustom doom-switch-buffer-hook nil "A list of hooks run after changing the current buffer.") -(defvar doom-switch-window-hook nil +(defcustom doom-switch-window-hook nil "A list of hooks run after changing the focused windows.") -(defvar doom-switch-frame-hook nil +(defcustom doom-switch-frame-hook nil "A list of hooks run after changing the focused frame.") (defun doom-run-switch-buffer-hooks-h (&optional _) From a7b810a93f05e4966d3dcce207c7c2ce77bd4039 Mon Sep 17 00:00:00 2001 From: Jeetaditya Chatterjee Date: Sun, 15 Oct 2023 19:33:07 +0100 Subject: [PATCH 221/523] fix(emacs-lisp): lexical argument, error popup this was caused by the use of fn! and an argument which interacted badly with doom snippets of all things. --- modules/lang/emacs-lisp/autoload.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/lang/emacs-lisp/autoload.el b/modules/lang/emacs-lisp/autoload.el index 1dc48759b..a94b8e4b2 100644 --- a/modules/lang/emacs-lisp/autoload.el +++ b/modules/lang/emacs-lisp/autoload.el @@ -309,7 +309,7 @@ as `+emacs-lisp-non-package-mode' will enable it and disable the other checkers. :command `(,(expand-file-name invocation-name invocation-directory) "-Q" "--batch" - ,@(mapcan (fn! (list "-L" %)) elisp-flymake-byte-compile-load-path) + ,@(mapcan (lambda (p) (list "-L" p)) elisp-flymake-byte-compile-load-path) ;; this is what silences the byte compiler "--eval" ,(prin1-to-string `(setq doom-modules ',doom-modules doom-disabled-packages ',doom-disabled-packages From c5f561b0c54f9adab1a133ed91d2f9cbd50eeda0 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 23 Nov 2023 16:32:04 -0500 Subject: [PATCH 222/523] bump: :core Fuco1/smartparens@79a338db115f -> Fuco1/smartparens@0778a8a84064 Wilfred/helpful@66ba816b26b6 -> Wilfred/helpful@a32a5b3d959a bbatsov/projectile@971cd5c4f25f -> bbatsov/projectile@9446ea92d284 emacs-compat/compat@ecf53005abf6 -> emacs-compat/compat@ea8de2ea18cf emacs-straight/project@ce140cdb7013 -> emacs-straight/project@f64bcf065c07 radian-software/straight.el@5e84c4e2cd8c -> radian-software/straight.el@b3760f5829db rainstormstudio/nerd-icons.el@619a0382d2e1 -> rainstormstudio/nerd-icons.el@e109d09b9570 Co-authored-by: LemonBreezes Close: #7527 --- lisp/packages.el | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lisp/packages.el b/lisp/packages.el index fcf692262..07c83ce38 100644 --- a/lisp/packages.el +++ b/lisp/packages.el @@ -17,11 +17,11 @@ :branch ,straight-repository-branch :local-repo "straight.el" :files ("straight*.el")) - :pin "5e84c4e2cd8ca79560477782ee4c9e5187725def") + :pin "b3760f5829dba37e855add7323304561eb57a3d4") ;; doom-ui.el (package! all-the-icons :pin "be9d5dcda9c892e8ca1535e288620eec075eb0be") -(package! nerd-icons :pin "619a0382d2e159f3142c4200fe4cfc2e89247ef1") +(package! nerd-icons :pin "e109d09b95706bb93c821b1229ca09cf00195690") (package! hide-mode-line :pin "bc5d293576c5e08c29e694078b96a5ed85631942") (package! highlight-numbers :pin "8b4744c7f46c72b1d3d599d4fb75ef8183dee307") (package! rainbow-delimiters :pin "f40ece58df8b2f0fb6c8576b527755a552a5e763") @@ -30,9 +30,9 @@ ;; doom-editor.el (package! better-jumper :pin "47622213783ece37d5337dc28d33b530540fc319") (package! dtrt-indent :pin "e0630f74f915c6cded05f76f66d66e540fcc37c3") -(package! helpful :pin "66ba816b26b68dd7df08e86f8b96eaae16c8d6a2") +(package! helpful :pin "a32a5b3d959a7fccf09a71d97b3d7c888ac31c69") (package! pcre2el :pin "018531ba0cf8e2b28d1108136a0e031b6a45f1c1") -(package! smartparens :pin "79a338db115f441cd47bb91e6f75816c5e78a772") +(package! smartparens :pin "0778a8a84064cf2bc3a9857bd0e7a4619cc1e5c3") (package! ws-butler ;; Use my fork of ws-butler, which has a few choice improvements and ;; optimizations (the original has been abandoned). @@ -40,8 +40,8 @@ :pin "572a10c11b6cb88293de48acbb59a059d36f9ba5") ;; doom-projects.el -(package! projectile :pin "971cd5c4f25ff1f84ab7e8337ffc7f89f67a1b52") -(package! project :pin "ce140cdb70138a4938c999d4606a52dbeced4676") +(package! projectile :pin "9446ea92d28462aeb37846a8be0a0c97a7bc0cee") +(package! project :pin "f64bcf065c0731caecbdcff5ca1c7f2d711b5b1e") ;; doom-keybinds.el (package! general :pin "833dea2c4a60e06fcd552b653dfc8960935c9fb4") @@ -49,4 +49,4 @@ (package! compat :recipe (:host github :repo "emacs-compat/compat") - :pin "ecf53005abf6f0325d14e0e024222e22e982c8dd") + :pin "ea8de2ea18cf7c348aadb6eb2aeb2a9d840bd064") From a180579d6f1343dac87a5794c05641b20b8eef19 Mon Sep 17 00:00:00 2001 From: LemonBreezes Date: Thu, 23 Nov 2023 17:08:14 -0500 Subject: [PATCH 223/523] bump: :term eshell Ambrevar/emacs-fish-completion@10384881817b -> Ambrevar/emacs-fish-completion@df42e1530829 akreisher/eshell-syntax-highlighting@8bf0494ca719 -> akreisher/eshell-syntax-highlighting@4ac27eec6595# Please enter the commit message for your changes. Lines starting - (#7529) Fix elisp code-completion in Eshell. Close: #7529 --- modules/term/eshell/config.el | 4 +++- modules/term/eshell/packages.el | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/modules/term/eshell/config.el b/modules/term/eshell/config.el index 91db53186..358389add 100644 --- a/modules/term/eshell/config.el +++ b/modules/term/eshell/config.el @@ -230,7 +230,9 @@ Emacs versions < 29." (use-package eshell-syntax-highlighting - :hook (eshell-mode . eshell-syntax-highlighting-mode)) + :hook (eshell-mode . eshell-syntax-highlighting-mode) + :init + (add-hook 'eshell-syntax-highlighting-elisp-buffer-setup-hook #'highlight-quoted-mode)) (use-package! fish-completion diff --git a/modules/term/eshell/packages.el b/modules/term/eshell/packages.el index 128c16500..4bbff9fe5 100644 --- a/modules/term/eshell/packages.el +++ b/modules/term/eshell/packages.el @@ -6,8 +6,8 @@ (package! shrink-path :pin "c14882c8599aec79a6e8ef2d06454254bb3e1e41") (package! esh-help :pin "417673ed18a983930a66a6692dbfb288a995cb80") (package! eshell-did-you-mean :pin "80cd8c4b186a2fb29621cf634bcf2bcd914f1e3d") -(package! eshell-syntax-highlighting :pin "8bf0494ca71944b9d4bfb8ec3c93ea29d46bc2f9") +(package! eshell-syntax-highlighting :pin "4ac27eec6595ba116a6151dfaf0b0e0440101e10") (unless IS-WINDOWS - (package! fish-completion :pin "10384881817b5ae38cf6197a077a663420090d2c") + (package! fish-completion :pin "df42e153082927536763bdf408184152a7c938c3") (package! bash-completion :pin "f1daac0386c24cbe8a244a62c7588cc6847b07ae")) From 1bc5f441f00a06e61087e59e94e8ce1642ffeea6 Mon Sep 17 00:00:00 2001 From: LemonBreezes Date: Thu, 23 Nov 2023 17:34:57 -0500 Subject: [PATCH 224/523] tweak: helpful-set-variable-function: use setq! helpful-set-variable-function defaults to setopt if it's available, setq otherwise. `setopt` is superior for this use case because it uses custom.el's mechanism for setting variables (thus respecting custom.el's setters and type checks), however, it is unavailable in Emacs 28 and earlier (`setopt` was introduced in 29). Doom defines `setq!`, which is a drop-in replacement for setopt, and is functional in Emacs 28, so it is the better option here. Ref: #7527 --- lisp/doom-editor.el | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lisp/doom-editor.el b/lisp/doom-editor.el index 9f79d7d57..2159b885c 100644 --- a/lisp/doom-editor.el +++ b/lisp/doom-editor.el @@ -584,7 +584,9 @@ current buffer." filename)) (prog1 (apply fn args) (when (buffer-live-p buf) - (with-current-buffer buf (goto-char pos))))))))) + (with-current-buffer buf (goto-char pos)))))))) + :config + (setq helpful-set-variable-function #'setq!)) (use-package! smartparens From 574cd321479ea66c0d1961da86a6969de06241a2 Mon Sep 17 00:00:00 2001 From: Zardoz <64504946+zardoz03@users.noreply.github.com> Date: Thu, 23 Nov 2023 22:55:13 +0000 Subject: [PATCH 225/523] tweak(doom-quit): make quit message OS-sensitive --- modules/ui/doom-quit/config.el | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/modules/ui/doom-quit/config.el b/modules/ui/doom-quit/config.el index 89f54f7b8..3e6f69702 100644 --- a/modules/ui/doom-quit/config.el +++ b/modules/ui/doom-quit/config.el @@ -1,10 +1,13 @@ ;;; ui/doom-quit/config.el -*- lexical-binding: t; -*- (defvar +doom-quit-messages - '(;; from Doom 1 + `(;; from Doom 1 "Please don't leave, there's more demons to toast!" "Let's beat it -- This is turning into a bloodbath!" - "I wouldn't leave if I were you. DOS is much worse." + ,(format "I wouldn't leave if I were you. %s is much worse." + (if (member system-type '(ms-dos-windows-nt cygwin)) + "DOS" + "UNIX")) "Don't leave yet -- There's a demon around that corner!" "Ya know, next time you come in here I'm gonna toast ya." "Go ahead and leave. See if I care." From edd95854fd81f60a7132d830d07f4e4f22cbce89 Mon Sep 17 00:00:00 2001 From: Liam Hupfer Date: Thu, 23 Nov 2023 17:17:52 -0600 Subject: [PATCH 226/523] fix: premature use of emoji fontset in <=28.1 317cea5 assumed Emacs 28, but Doom still tries to support 27. Attempting to use the undefined emoji script on 27 results in an error. Prior to 28, emoji are part of the symbol script, which the following `set-fontset-font` call already handles. Amend: 317cea5eefda Ref: #7448 Fix: #7505 --- lisp/doom-ui.el | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lisp/doom-ui.el b/lisp/doom-ui.el index 360998c66..ab5e116a3 100644 --- a/lisp/doom-ui.el +++ b/lisp/doom-ui.el @@ -546,7 +546,9 @@ windows, switch to `doom-fallback-buffer'. Otherwise, delegate to original (dolist (script '(symbol mathematical)) (set-fontset-font t script symbol-font))) (when emoji-font - (set-fontset-font t 'emoji emoji-font) + ;; DEPRECATED: make unconditional when we drop 27 support + (when (version<= "28.1" emacs-version) + (set-fontset-font t 'emoji emoji-font)) ;; some characters in the Emacs symbol script are often covered by emoji ;; fonts (set-fontset-font t 'symbol emoji-font nil 'append))) From a00f03079ac0da2fe0af4193477d277132e3ae1e Mon Sep 17 00:00:00 2001 From: Chromium Date: Fri, 24 Nov 2023 00:32:04 +0100 Subject: [PATCH 227/523] bump: :app rss remyhonig/elfeed-org@7f3ad868f2fa -> remyhonig/elfeed-org@fe59a96969bd - fix elfeed-org-export-opml error - perf: use temporary buffers instead of find-file - replace outline-on-heading-p with org-at-heading-p - fix typo in last changes Ref: remyhonig/elfeed-org#88 --- modules/app/rss/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/app/rss/packages.el b/modules/app/rss/packages.el index f78955804..f486b1729 100644 --- a/modules/app/rss/packages.el +++ b/modules/app/rss/packages.el @@ -4,4 +4,4 @@ (package! elfeed :pin "55fb162fa27e71b88effa59a83c57842e262b00f") (package! elfeed-goodies :pin "544ef42ead011d960a0ad1c1d34df5d222461a6b") (when (modulep! +org) - (package! elfeed-org :pin "7f3ad868f2fa3c17492340f7af84f208b9c25635")) + (package! elfeed-org :pin "fe59a96969bd321f5f9ec7317a4bc80943b94c86")) From 80f8b6b6802c38c3aa07bc4c428ca8fd7e9770dc Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 23 Nov 2023 18:05:01 -0500 Subject: [PATCH 228/523] bump: :editor fold emacs-tree-sitter/ts-fold@9d9e0c5cf7b5 -> emacs-tree-sitter/ts-fold@75e72c658ad8 - (#7480) Adds/enhances support for new languages. Co-authored-by: jperras Close: #7480 Ref: https://github.com/emacs-tree-sitter/ts-fold/releases/tag/0.2.0 --- modules/editor/fold/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/editor/fold/packages.el b/modules/editor/fold/packages.el index 8676dbac8..032d3ed72 100644 --- a/modules/editor/fold/packages.el +++ b/modules/editor/fold/packages.el @@ -7,5 +7,5 @@ (when (modulep! :editor evil) (package! evil-vimish-fold :pin "b6e0e6b91b8cd047e80debef1a536d9d49eef31a")) (when (modulep! :tools tree-sitter) - (package! ts-fold :pin "9d9e0c5cf7b5397e06571bb6bf497598dc8796a8" + (package! ts-fold :pin "75e72c658ad8d8aac3af554a6b51b3c5c22dd0aa" :recipe (:host github :repo "emacs-tree-sitter/ts-fold"))) From 9be60fba435e41549d7e933293a25d9ede9a11c9 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 23 Nov 2023 18:06:12 -0500 Subject: [PATCH 229/523] bump: :lang scala emacs-lsp/lsp-metals@a2df7263ece6 -> emacs-lsp/lsp-metals@da7e54ed65f4 - (#7475) lsp-metals moved on from treemacs-extensions (obsolete) to treemacs-treelib. Co-authored-by: prashantvithani Close: #7475 --- modules/lang/scala/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/lang/scala/packages.el b/modules/lang/scala/packages.el index 8616e07ee..ba727aef4 100644 --- a/modules/lang/scala/packages.el +++ b/modules/lang/scala/packages.el @@ -6,4 +6,4 @@ (when (and (modulep! +lsp) (not (modulep! :tools lsp +eglot))) - (package! lsp-metals :pin "a2df7263ece6ac69214e41c52d66aab8d3f650eb")) + (package! lsp-metals :pin "da7e54ed65f4e153c94b9c54689908dce142ef37")) From 13fa55da8200e4482d5cb0d473762a3e08e21057 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 23 Nov 2023 18:23:08 -0500 Subject: [PATCH 230/523] bump: :lang java Groovy-Emacs-Modes/groovy-emacs-modes@c612ac1e9f74 -> Groovy-Emacs-Modes/groovy-emacs-modes@7b8520b2e2d3 emacs-lsp/lsp-java@dbe448a886e2 -> emacs-lsp/lsp-java@449673da7221 mopemope/meghanada-emacs@59c46cabb7ee -> mopemope/meghanada-emacs@fb29746e442e Co-authored-by: aveseli Close: #7554 --- modules/lang/java/packages.el | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/lang/java/packages.el b/modules/lang/java/packages.el index 8bbde7eaf..e9ec41e84 100644 --- a/modules/lang/java/packages.el +++ b/modules/lang/java/packages.el @@ -2,10 +2,10 @@ ;;; lang/java/packages.el (package! android-mode :pin "d5332e339a1f5e30559a53feffb8442ca79265d6") -(package! groovy-mode :pin "c612ac1e9f742856914ad6e8eb9e9dc169f489ab") +(package! groovy-mode :pin "7b8520b2e2d3ab1d62b35c426e17ac25ed0120bb") (when (modulep! +meghanada) - (package! meghanada :pin "59c46cabb7eee715fe810ce59424934a1286df84")) + (package! meghanada :pin "fb29746e442e3d7b903759d15977d142a4bf2131")) (when (modulep! +eclim) (package! eclim :pin "222ddd48fcf0ee01592dec77c58e0cf3f2ea1100") @@ -14,4 +14,4 @@ (when (modulep! +lsp) (unless (modulep! :tools lsp +eglot) - (package! lsp-java :pin "dbe448a886e2f4fb5d3a616f4499adbe643ba7a5"))) + (package! lsp-java :pin "449673da7221a30f1b1756cedcc48b9a2b52a51e"))) From c3b228fedd050d8d028aa3d4ec2c439ab4a19bad Mon Sep 17 00:00:00 2001 From: Kiana Sheibani Date: Sun, 15 Oct 2023 00:22:24 -0400 Subject: [PATCH 231/523] fix(treemacs): do not overwrite git mode when treemacs-python-executable is set --- modules/ui/treemacs/config.el | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/ui/treemacs/config.el b/modules/ui/treemacs/config.el index 0b8ab61ce..9f3febb6a 100644 --- a/modules/ui/treemacs/config.el +++ b/modules/ui/treemacs/config.el @@ -33,6 +33,7 @@ This must be set before `treemacs' has loaded.") (when +treemacs-git-mode ;; If they aren't supported, fall back to simpler methods (when (and (memq +treemacs-git-mode '(deferred extended)) + (not treemacs-python-executable) (not (executable-find "python3"))) (setq +treemacs-git-mode 'simple)) (treemacs-git-mode +treemacs-git-mode) From 31b2ad22fbf09d99f6c1492274e48b2ffbbf5873 Mon Sep 17 00:00:00 2001 From: Leo Okawa Ericson Date: Fri, 24 Nov 2023 02:21:08 +0000 Subject: [PATCH 232/523] fix(org): call org-reveal in correct buffer Sometimes, `org-reveal` is called in the wrong buffer which throws an error. For example, `org-link-open-from-string` creates an temporary org-mode buffer that gets killed very quickly which means that `org-reveal` gets called in a different buffer. I have also had issues with org-reveal getting called in the org-roam buffer, which is why this commit also saves the buffer it was called in. Co-authored-by: Leo Okawa Ericson --- modules/lang/org/autoload/org.el | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/modules/lang/org/autoload/org.el b/modules/lang/org/autoload/org.el index 6ca2c2211..8690b1318 100644 --- a/modules/lang/org/autoload/org.el +++ b/modules/lang/org/autoload/org.el @@ -508,7 +508,11 @@ All my (performant) foldings needs are met between this and `org-show-subtree' ;; Must be done on a timer because `org-show-set-visibility' (used by ;; `org-reveal') relies on overlays that aren't immediately available ;; when `org-mode' first initializes. - (run-at-time 0.1 nil #'org-reveal '(4)))) + (let ((buf (current-buffer))) + (unless (doom-temp-buffer-p buf) + (run-at-time 0.1 nil (lambda () + (with-current-buffer buf + (org-reveal '(4))))))))) ;;;###autoload (defun +org-remove-occur-highlights-h () From cb3d01920c83904a8af0805346c460d2f4f5a698 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 23 Nov 2023 22:05:33 -0500 Subject: [PATCH 233/523] bump: :tools debugger lsp emacs-lsp/dap-mode@096070aacff8 -> emacs-lsp/dap-mode@755845ae053b emacs-lsp/lsp-mode@266945b3e470 -> emacs-lsp/lsp-mode@d441f3d268a3 emacs-straight/eglot@8ccec6532e70 -> emacs-straight/eglot@2b145778ba5e realgud/realgud@220ce2c348da -> realgud/realgud@365063ea8ce8 Fix: #7540 --- modules/tools/debugger/packages.el | 4 ++-- modules/tools/lsp/packages.el | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/tools/debugger/packages.el b/modules/tools/debugger/packages.el index b418d4d3a..208504513 100644 --- a/modules/tools/debugger/packages.el +++ b/modules/tools/debugger/packages.el @@ -1,10 +1,10 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/debugger/packages.el -(when (package! realgud :pin "220ce2c348dab6cfc1cfa3c3f59644e777f9e8ff") +(when (package! realgud :pin "365063ea8ce8ec6a852cb388088d84147421c3c2") (when (modulep! :lang javascript) (package! realgud-trepan-ni :pin "0ec088ea343835e24ae73da09bea96bfb02a3130"))) (when (modulep! +lsp) - (package! dap-mode :pin "096070aacff875a09c13e596e5d60a55e0f07ab1") + (package! dap-mode :pin "755845ae053bbfdd3f7b3dca13efa4be480370b5") (package! posframe :pin "017deece88360c7297265680d78a0bb316470716")) diff --git a/modules/tools/lsp/packages.el b/modules/tools/lsp/packages.el index c4f76e1d6..8ca5f8cd5 100644 --- a/modules/tools/lsp/packages.el +++ b/modules/tools/lsp/packages.el @@ -3,13 +3,13 @@ (if (modulep! +eglot) (progn - (package! eglot :pin "8ccec6532e70f68289a06acc24437986a8a8a6c1") + (package! eglot :pin "2b145778ba5e57f393e50aea76b28e518c401828") (when (modulep! :completion vertico) (package! consult-eglot :pin "db9d41c9812a5a8a7b9a22fa7f3c314e37584d41")) (when (and (modulep! :checkers syntax) (not (modulep! :checkers syntax +flymake))) (package! flycheck-eglot :pin "9ff8d0068be59b1450964b390349d75a68af21ed"))) - (package! lsp-mode :pin "266945b3e470212305812581d24a938a96c47a3a") + (package! lsp-mode :pin "d441f3d268a31a4a514af2db506a5eec47ee617d") (package! lsp-ui :pin "0dd39900c8ed8145d207985cb2f65cedd1ffb410") (when (modulep! :completion ivy) (package! lsp-ivy :pin "9ecf4dd9b1207109802bd1882aa621eb1c385106")) From fba1d4005ee5c342cf1d974bc8700983a99f00e1 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 24 Nov 2023 10:01:45 -0500 Subject: [PATCH 234/523] bump: :tools tree-sitter emacs-tree-sitter/tree-sitter-langs@2f0f97abbd97 -> emacs-tree-sitter/tree-sitter-langs@3a3ad0527d5f meain/evil-textobj-tree-sitter@19979843f5fc -> meain/evil-textobj-tree-sitter@9a9edd42a2dc Close: #7560 Co-authored-by: l2dy --- modules/tools/tree-sitter/packages.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/tools/tree-sitter/packages.el b/modules/tools/tree-sitter/packages.el index 6b57fb998..c2f9a1ef5 100644 --- a/modules/tools/tree-sitter/packages.el +++ b/modules/tools/tree-sitter/packages.el @@ -2,9 +2,9 @@ ;;; tools/tree-sitter/packages.el (package! tree-sitter :pin "3cfab8a0e945db9b3df84437f27945746a43cc71") -(package! tree-sitter-langs :pin "2f0f97abbd97e17773a24eec3f329d262f81d020") +(package! tree-sitter-langs :pin "3a3ad0527d5f8c7768678878eb5cfe399bedf703") (package! tree-sitter-indent :pin "4ef246db3e4ff99f672fe5e4b416c890f885c09e") (when (modulep! :editor evil +everywhere) (package! evil-textobj-tree-sitter - :pin "19979843f5fc437917f9a4dae977f5e6d4793726")) + :pin "9a9edd42a2dca9dfd0bc6026d47f689fa117b90f")) From e4b1ed5a6aefb81f75a75a59f78f4b62dd2613b5 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 24 Nov 2023 10:25:34 -0500 Subject: [PATCH 235/523] refactor(eshell): eshell-prompt-regexp This new default makes eshell-prompt-regexp's consumers a little less susceptible to false positives in garbage/process output and a little more resistant to user changes to eshell-prompt-function. It's also closer to its default value (KISS). --- modules/term/eshell/config.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/term/eshell/config.el b/modules/term/eshell/config.el index 358389add..c3496ffe9 100644 --- a/modules/term/eshell/config.el +++ b/modules/term/eshell/config.el @@ -69,7 +69,7 @@ You should use `set-eshell-alias!' to change this.") ;; TODO Use `eshell-input-filter-initial-space' when Emacs 25 support is dropped eshell-input-filter (lambda (input) (not (string-match-p "\\`\\s-+" input))) ;; em-prompt - eshell-prompt-regexp "^.* λ " + eshell-prompt-regexp "^[^#$\n]* [#$λ] " eshell-prompt-function #'+eshell-default-prompt-fn ;; em-glob eshell-glob-case-insensitive t From dc16fe10e39f04ebb8e1bcf7f9befa19e9542fb6 Mon Sep 17 00:00:00 2001 From: StrawberryTea Date: Fri, 27 Oct 2023 23:23:39 -0500 Subject: [PATCH 236/523] feat(eshell): add imenu support --- modules/term/eshell/config.el | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules/term/eshell/config.el b/modules/term/eshell/config.el index c3496ffe9..cf2beb9b2 100644 --- a/modules/term/eshell/config.el +++ b/modules/term/eshell/config.el @@ -105,6 +105,12 @@ You should use `set-eshell-alias!' to change this.") ;; cursor comes close to the left/right edges of the window. (setq-hook! 'eshell-mode-hook hscroll-margin 0) + ;; Recognize prompts as Imenu entries. + (setq-hook! 'eshell-mode-hook + imenu-generic-expression + `((,(propertize "λ" 'face 'eshell-prompt) + ,(concat eshell-prompt-regexp "\\(.*\\)") 1))) + ;; Don't auto-write our aliases! Let us manage our own `eshell-aliases-file' ;; or configure `+eshell-aliases' via elisp. (advice-add #'eshell-write-aliases-list :override #'ignore) From 6bea1f6a35d766dabb033b6eb461cc854df78297 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zden=C4=9Bk=20=27Vlk=27=20M=C5=BEourek?= Date: Thu, 26 Oct 2023 20:42:23 +0200 Subject: [PATCH 237/523] perf(lsp): turn off eglot events buffer The `eglot-events-buffer-size` setting disables the `eglot-events-buffer` when 0, enabling more consistent performance on long running emacs instance. Default is 2000000 lines. After each new event the events buffer is pretty printed as a whole, which causes steady performance decrease over time. Quite a bit of CPU is spent on pretty priting and Emacs GC is put under high pressure. --- modules/tools/lsp/+eglot.el | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/modules/tools/lsp/+eglot.el b/modules/tools/lsp/+eglot.el index 95294f5eb..5b56b600e 100644 --- a/modules/tools/lsp/+eglot.el +++ b/modules/tools/lsp/+eglot.el @@ -16,6 +16,12 @@ (setq eglot-sync-connect 1 eglot-autoshutdown t eglot-send-changes-idle-time 0.5 + ;; NOTE This setting disable the eglot-events-buffer enabling more + ;; consistent performance on long running emacs instance. + ;; Default is 2000000 lines. After each new event the whole buffer + ;; is pretty printed which causes steady performance decrease over time. + ;; CPU is spent on pretty priting and Emacs GC is put under high pressure. + eglot-events-buffer-size 0 ;; NOTE We disable eglot-auto-display-help-buffer because :select t in ;; its popup rule causes eglot to steal focus too often. eglot-auto-display-help-buffer nil) @@ -32,7 +38,7 @@ :type-definition #'eglot-find-typeDefinition :documentation #'+eglot-lookup-documentation) - (add-to-list 'doom-debug-variables '(eglot-events-buffer-size . 0)) + (add-to-list 'doom-debug-variables '(eglot-events-buffer-size . 2000000)) (defadvice! +lsp--defer-server-shutdown-a (fn &optional server) "Defer server shutdown for a few seconds. From 5100ab121d7b3d6bee6bf06773443fe3581be308 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 24 Nov 2023 10:33:57 -0500 Subject: [PATCH 238/523] fix(upload): ssh-deploy-on-explicit-save: incorrect type According to upstream package emacs-ssh-deploy, the value 0 should disable the auto-save behavior. As the ssh-deploy-on-explicit-save is considered true if its value is 0, it triggers the after-save-hook anyway. This commit fixes the hook so it conforms to upstream definition: ssh-deploy-on-explicit-save Enabled automatic uploads on save (integer) Co-authored-by: visika Close: #7513 Fix: #7512 --- modules/tools/upload/README.org | 2 +- modules/tools/upload/config.el | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/tools/upload/README.org b/modules/tools/upload/README.org index 0cdff03e6..4b2445a61 100644 --- a/modules/tools/upload/README.org +++ b/modules/tools/upload/README.org @@ -47,7 +47,7 @@ to establish this mapping. E.g. #+begin_src emacs-lisp ((nil . ((ssh-deploy-root-local . "/local/path/to/project") (ssh-deploy-root-remote . "/ssh:user@server:/remote/project/") - (ssh-deploy-on-explicit-save . t)))) + (ssh-deploy-on-explicit-save . 1)))) #+end_src #+begin_quote diff --git a/modules/tools/upload/config.el b/modules/tools/upload/config.el index dadc824c7..25e2829be 100644 --- a/modules/tools/upload/config.el +++ b/modules/tools/upload/config.el @@ -37,7 +37,8 @@ (add-hook! 'after-save-hook (defun +upload-init-after-save-h () (when (and (bound-and-true-p ssh-deploy-root-remote) - ssh-deploy-on-explicit-save) + (integerp ssh-deploy-on-explicit-save) + (> ssh-deploy-on-explicit-save 0)) (ssh-deploy-upload-handler ssh-deploy-force-on-explicit-save)))) ;; Enable ssh-deploy if variables are set, and check for changes on open file From e133da7435eaa64ff8427fe4c60ad6cbf08298c8 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 24 Nov 2023 10:54:36 -0500 Subject: [PATCH 239/523] docs(upload): append slash to ssh-deploy-root-local Suffix ssh-deploy-root-local's path with a trailing slash (to be consistent with upstream documentation and the example value for ssh-deploy-root-remote right below it). Co-authored-by: visika Ref: #7513 --- modules/tools/upload/README.org | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/tools/upload/README.org b/modules/tools/upload/README.org index 4b2445a61..ecd373ca1 100644 --- a/modules/tools/upload/README.org +++ b/modules/tools/upload/README.org @@ -45,7 +45,7 @@ Uses ~ssh-deploy~ to map a local folder to a remote one. Set ~ssh-deploy-root-remote~ and ~ssh-deploy-root-local~ in a =.dir-locals.el= file to establish this mapping. E.g. #+begin_src emacs-lisp -((nil . ((ssh-deploy-root-local . "/local/path/to/project") +((nil . ((ssh-deploy-root-local . "/local/path/to/project/") (ssh-deploy-root-remote . "/ssh:user@server:/remote/project/") (ssh-deploy-on-explicit-save . 1)))) #+end_src @@ -66,7 +66,7 @@ Check out [[https://github.com/cjohansson/emacs-ssh-deploy#deployment-configurat ** ~root-local~ and ~root-remote~ must match The final directory names much match: #+begin_src emacs-lisp -((nil . ((ssh-deploy-root-local . "/local/path/to/example-project") +((nil . ((ssh-deploy-root-local . "/local/path/to/example-project/") (ssh-deploy-root-remote . "/ssh:user@server:/remote/example-project/") #+end_src From 2a875d9727f4b3b69db57a38ae2833acdc98ad96 Mon Sep 17 00:00:00 2001 From: StrawberryTea Date: Fri, 24 Nov 2023 10:00:52 -0600 Subject: [PATCH 240/523] refactor(evil): remove lisp prefix-function embrace pair A more generalized lisp prefix function was added upstream, so ours is no longer needed. Ref: cute-jumper/embrace.el#26 --- modules/editor/evil/config.el | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/modules/editor/evil/config.el b/modules/editor/evil/config.el index 3e56729ff..74d7b942c 100644 --- a/modules/editor/evil/config.el +++ b/modules/editor/evil/config.el @@ -245,8 +245,6 @@ directives. By default, this only recognizes C directives.") :hook (org-mode . embrace-org-mode-hook) :hook (ruby-mode . embrace-ruby-mode-hook) :hook (emacs-lisp-mode . embrace-emacs-lisp-mode-hook) - :hook ((lisp-mode emacs-lisp-mode clojure-mode racket-mode hy-mode) - . +evil-embrace-lisp-mode-hook-h) :hook ((c++-mode c++-ts-mode rustic-mode csharp-mode java-mode swift-mode typescript-mode) . +evil-embrace-angle-bracket-modes-hook-h) :hook (scala-mode . +evil-embrace-scala-mode-hook-h) @@ -284,16 +282,6 @@ directives. By default, this only recognizes C directives.") embrace--pairs-list)) (embrace-add-pair-regexp ?l "\\[a-z]+{" "}" #'+evil--embrace-latex)) - (defun +evil-embrace-lisp-mode-hook-h () - ;; Avoid `embrace-add-pair-regexp' because it would overwrite the default - ;; `f' rule, which we want for other modes - (push (cons ?f (make-embrace-pair-struct - :key ?f - :read-function #'+evil--embrace-elisp-fn - :left-regexp "([^ ]+ " - :right-regexp ")")) - embrace--pairs-list)) - (defun +evil-embrace-angle-bracket-modes-hook-h () (let ((var (make-local-variable 'evil-embrace-evil-surround-keys))) (set var (delq ?< evil-embrace-evil-surround-keys)) From d9a5b326b848f3b4fbbb24b6ef2d163da764f24c Mon Sep 17 00:00:00 2001 From: Eric Date: Mon, 30 Oct 2023 10:24:01 +1300 Subject: [PATCH 241/523] docs: replace single -> double semicolons --- templates/packages.example.el | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/templates/packages.example.el b/templates/packages.example.el index 839b83c58..364e6e9b7 100644 --- a/templates/packages.example.el +++ b/templates/packages.example.el @@ -7,44 +7,44 @@ ;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror: -;(package! some-package) +;; (package! some-package) ;; To install a package directly from a remote git repo, you must specify a ;; `:recipe'. You'll find documentation on what `:recipe' accepts here: ;; https://github.com/radian-software/straight.el#the-recipe-format -;(package! another-package -; :recipe (:host github :repo "username/repo")) +;; (package! another-package +;; :recipe (:host github :repo "username/repo")) ;; If the package you are trying to install does not contain a PACKAGENAME.el ;; file, or is located in a subdirectory of the repo, you'll need to specify ;; `:files' in the `:recipe': -;(package! this-package -; :recipe (:host github :repo "username/repo" -; :files ("some-file.el" "src/lisp/*.el"))) +;; (package! this-package +;; :recipe (:host github :repo "username/repo" +;; :files ("some-file.el" "src/lisp/*.el"))) ;; If you'd like to disable a package included with Doom, you can do so here ;; with the `:disable' property: -;(package! builtin-package :disable t) +;; (package! builtin-package :disable t) ;; You can override the recipe of a built in package without having to specify ;; all the properties for `:recipe'. These will inherit the rest of its recipe ;; from Doom or MELPA/ELPA/Emacsmirror: -;(package! builtin-package :recipe (:nonrecursive t)) -;(package! builtin-package-2 :recipe (:repo "myfork/package")) +;; (package! builtin-package :recipe (:nonrecursive t)) +;; (package! builtin-package-2 :recipe (:repo "myfork/package")) ;; Specify a `:branch' to install a package from a particular branch or tag. ;; This is required for some packages whose default branch isn't 'master' (which ;; our package manager can't deal with; see radian-software/straight.el#279) -;(package! builtin-package :recipe (:branch "develop")) +;; (package! builtin-package :recipe (:branch "develop")) ;; Use `:pin' to specify a particular commit to install. -;(package! builtin-package :pin "1a2b3c4d5e") +;; (package! builtin-package :pin "1a2b3c4d5e") ;; Doom's packages are pinned to a specific commit and updated from release to ;; release. The `unpin!' macro allows you to unpin single packages... -;(unpin! pinned-package) +;; (unpin! pinned-package) ;; ...or multiple packages -;(unpin! pinned-package another-pinned-package) +;; (unpin! pinned-package another-pinned-package) ;; ...Or *all* packages (NOT RECOMMENDED; will likely break things) -;(unpin! t) +;; (unpin! t) From 52be142e5cda428620b892daeefd9102afb1919f Mon Sep 17 00:00:00 2001 From: Eric Lim Date: Mon, 6 Nov 2023 11:20:55 +1300 Subject: [PATCH 242/523] docs(rss): add a missing double quote in README --- modules/app/rss/README.org | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/app/rss/README.org b/modules/app/rss/README.org index cd05ed240..f4a092151 100644 --- a/modules/app/rss/README.org +++ b/modules/app/rss/README.org @@ -78,7 +78,7 @@ configure feeds to follow: - You can "name" feeds as you please with ~org-mode~ ~org-insert-link~ ([[kbd:][C-c C-l]]) and put name as you want into ~description~. - If you don't want to use ~org-directory/elfeed.org~ file you can specify it - with ~(setq rmh-elfeed-org-files '("path/to/your/elfeed/file.org))~ + with ~(setq rmh-elfeed-org-files '("path/to/your/elfeed/file.org"))~ ** Keybindings + General From 7fb69fac64672dbd002b6a7b35fea6845447615a Mon Sep 17 00:00:00 2001 From: Jonas Jelten Date: Fri, 24 Nov 2023 17:05:30 +0100 Subject: [PATCH 243/523] bump: :lang markdown jrblevin/markdown-mode@c765b73b370f -> jrblevin/markdown-mode@b1a862f0165b - The workaround introduced aad7bc521f188 addressed an issue that was fixed upstream (jrblevin/markdown-mode@44f0e89534e6). Ref: jrblevin/markdown-mode#578 Revert: aad7bc521f18 --- modules/lang/markdown/config.el | 4 ---- modules/lang/markdown/packages.el | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/modules/lang/markdown/config.el b/modules/lang/markdown/config.el index 6602d1339..6182d8eb1 100644 --- a/modules/lang/markdown/config.el +++ b/modules/lang/markdown/config.el @@ -26,10 +26,6 @@ capture, the end position, and the output buffer.") markdown-make-gfm-checkboxes-buttons t markdown-fontify-whole-heading-line t - ;; HACK Due to jrblevin/markdown-mode#578, invoking `imenu' throws a - ;; 'wrong-type-argument consp nil' error if you use native-comp. - markdown-nested-imenu-heading-index (not (ignore-errors (native-comp-available-p))) - ;; `+markdown-compile' offers support for many transpilers (see ;; `+markdown-compile-functions'), which it tries until one succeeds. markdown-command #'+markdown-compile diff --git a/modules/lang/markdown/packages.el b/modules/lang/markdown/packages.el index 1afd00040..cc59bb7fc 100644 --- a/modules/lang/markdown/packages.el +++ b/modules/lang/markdown/packages.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/markdown/packages.el -(package! markdown-mode :pin "c765b73b370f0fcaaa3cee28b2be69652e2d2c39") +(package! markdown-mode :pin "b1a862f0165b7bafe0f874738a55be1b1720dd7d") (package! markdown-toc :pin "3d724e518a897343b5ede0b976d6fb46c46bcc01") (package! edit-indirect :pin "f80f63822ffae78de38dbe72cacaeb1aaa96c732") From 7d5ceff5ec9683b975d5a60c1a287b804ab5a4c3 Mon Sep 17 00:00:00 2001 From: Nikita Bloshchanevich Date: Tue, 14 Nov 2023 11:35:45 +0100 Subject: [PATCH 244/523] fix(plantuml): flycheck: executable support The flycheck-plantuml is by default configured to always run plantuml via "java". This only works with a downloaded plantuml. However, I would prefer to have plantuml installed via my package manager (fedora/dnf). A locally installed PlantUML executable is already detected by default for normal use (export/preview), we can also use it for flycheck. If plantuml is downloaded using plantuml-download-jar, this jar is still used by default (see setq plantuml-exec-mode), so this should not affect previous setups. --- modules/lang/plantuml/config.el | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/modules/lang/plantuml/config.el b/modules/lang/plantuml/config.el index f55d45395..64ff4ed13 100644 --- a/modules/lang/plantuml/config.el +++ b/modules/lang/plantuml/config.el @@ -17,7 +17,11 @@ (use-package! flycheck-plantuml :when (modulep! :checkers syntax) :after plantuml-mode - :config (flycheck-plantuml-setup)) + :config + (flycheck-plantuml-setup) + (when (eq plantuml-default-exec-mode 'executable) + ;; Surprisingly, this works, even though flycheck-plantuml specifies -Djava.awt... + (setq-default flycheck-plantuml-executable plantuml-executable-path))) (after! ob-plantuml From 6a12331f8711e929c81b2546a726e5e3a0e692a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alfonso=20Fernando=20=C3=81lvarez?= Date: Sun, 19 Nov 2023 19:21:28 +0000 Subject: [PATCH 245/523] docs(terraform): mention +lsp flag --- modules/tools/terraform/README.org | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/tools/terraform/README.org b/modules/tools/terraform/README.org index ade7f1820..36506eb99 100644 --- a/modules/tools/terraform/README.org +++ b/modules/tools/terraform/README.org @@ -12,7 +12,9 @@ run Terraform commands directly from Emacs. /This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]] ** Module flags -/This module has no flags./ +- +lsp :: + Enable LSP support for ~terraform-mode~. Requires [[doom-module::tools lsp]] and a langserver + (supports terraform-ls or terraform-lsp). ** Packages - [[doom-package:company-terraform]] if [[doom-package::completion company]] From 45f86d945944781890a83ae661abf95bd7879b2e Mon Sep 17 00:00:00 2001 From: Ellis Kenyo Date: Fri, 24 Nov 2023 14:47:38 +0000 Subject: [PATCH 246/523] bump: :lang clojure babashka/neil@1dbac785cee4 -> babashka/neil@40993873bb4e clojure-emacs/cider@1ed5163433c9 -> clojure-emacs/cider@120fd885d37c clojure-emacs/clj-refactor.el@b5abe655e572 -> clojure-emacs/clj-refactor.el@0a2a6cbc2e29 clojure-emacs/clojure-mode@3453cd229b41 -> clojure-emacs/clojure-mode@25d713a67d8e clojure-emacs/parseclj@4d0e780e00f1 -> clojure-emacs/parseclj@74ff7d63fed9 clojure-emacs/parseedn@a09686fbb911 -> clojure-emacs/parseedn@c8f07926a688 ericdallo/jet.el@f007660c568e -> ericdallo/jet.el@7d5157aac692 Closes #7515 --- modules/lang/clojure/packages.el | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/modules/lang/clojure/packages.el b/modules/lang/clojure/packages.el index 5603afe85..33c4f5fe9 100644 --- a/modules/lang/clojure/packages.el +++ b/modules/lang/clojure/packages.el @@ -10,17 +10,17 @@ ;; HACK Forward declare these clj-refactor/cider deps so that their deps are ;; byte-compiled first. -(package! parseclj :pin "4d0e780e00f1828b00c43099e6eebc6582998f72") -(package! parseedn :pin "a09686fbb9113b8b1b4f20c9e1dc0d6fea01a64f") +(package! parseclj :pin "74ff7d63fed92a3c859e474ae85f011e794b751a") +(package! parseedn :pin "c8f07926a688bfe995fde4460103915d401a1aff") ;;; Core packages -(package! clojure-mode :pin "3453cd229b412227aaffd1dc2870fa8fa213c5b1") -(package! clj-refactor :pin "b5abe655e572a6ecfed02bb8164b64716ef76b8e") -(package! cider :pin "1ed5163433c991c00ea83fdd4447e8daf4aeccbe") +(package! clojure-mode :pin "25d713a67d8e0209ee74bfc0153fdf677697b43f") +(package! clj-refactor :pin "0a2a6cbc2e29177f4f55730637a357433a03fa38") +(package! cider :pin "120fd885d37c07137f1c162e8d522ab3eed1ac3f") (when (and (modulep! :checkers syntax) (not (modulep! :checkers syntax +flymake))) (package! flycheck-clj-kondo :pin "ff7bed2315755cfe02ef471edf522e27b78cd5ca")) -(package! jet :pin "f007660c568e924e32d486a02aa4cd18203313cc") +(package! jet :pin "7d5157aac692fc761d8ed7a9f820fa6522136254") (package! neil :recipe (:host github :repo "babashka/neil" :files ("*.el")) - :pin "1dbac785cee4af8ad499839adbb83a8a297e7c70") + :pin "40993873bb4ef6d88af450e8a96d03275e266f6b") From fbf7e86b8e8372e460af5a283c05f8caf9cbd0c7 Mon Sep 17 00:00:00 2001 From: Ellis Kenyo Date: Fri, 24 Nov 2023 14:47:44 +0000 Subject: [PATCH 247/523] docs(clojure): clarify optional deps & add enrich-classpath note --- modules/lang/clojure/README.org | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/modules/lang/clojure/README.org b/modules/lang/clojure/README.org index 36f57233a..d9d98d2e8 100644 --- a/modules/lang/clojure/README.org +++ b/modules/lang/clojure/README.org @@ -43,6 +43,8 @@ This module adds support for the Clojure(Script) language. This module requires: - [[https://clojure.org/][clojure]] + +This module optionally requires: - [[https://github.com/borkdude/clj-kondo][clj-kondo]], for linting code (if [[doom-module::checkers syntax]]) - [[https://clojure-lsp.github.io/clojure-lsp/][clojure-lsp]], for LSP support (if [[doom-module:+lsp]]) - [[https://github.com/babashka/neil][neil]] for the ability to add packages to your Clojure project from Emacs @@ -147,10 +149,17 @@ Several bindings used for viewing documentation for various functions, both insi | [[kbd:][K]] | ~+lookup/documentation~ | -* TODO Configuration -#+begin_quote - 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] -#+end_quote +* Configuration +** =enrich-classpath= +In recent versions, an option has been introduced that attempts to improve the experience of CIDER by accessing java source & javadocs, though this option is still currently considered beta. + +In order to opt into this, add the following to your =config.el= + +#+begin_src emacs-lisp +(setq cider-enrich-classpath t) +#+end_src + +See [[https://docs.cider.mx/cider/config/basic_config.html#use-enrich-classpath][the docs]] for more * Troubleshooting /There are no known problems with this module./ [[doom-report:][Report one?]] From 95e3491c3b65a753fab4612c01a1fc68acf0402d Mon Sep 17 00:00:00 2001 From: Maoli Date: Sun, 26 Nov 2023 18:32:08 +0800 Subject: [PATCH 248/523] bump: :completion company sebastiencs/company-box@766546b2668b -> sebastiencs/company-box@b6f53e26adf9 company-mode/company-mode@2ca3e29abf87 -> company-mode/company-mode@9b21604d1969 Fix: doomemacs/doomemacs#6710 --- modules/completion/company/packages.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/completion/company/packages.el b/modules/completion/company/packages.el index 5d9090b0c..0851bde07 100644 --- a/modules/completion/company/packages.el +++ b/modules/completion/company/packages.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; -*- ;;; completion/company/packages.el -(package! company :pin "2ca3e29abf87392714bc2b26e50e1c0f4b9f4e2c") +(package! company :pin "9b21604d19696de2c79ee28931620839b3a908b4") (package! company-dict :pin "cd7b8394f6014c57897f65d335d6b2bd65dab1f4") (when (modulep! +childframe) - (package! company-box :pin "766546b2668b5ef4eb4abbde632c9acd370c7788")) + (package! company-box :pin "b6f53e26adf948aca55c3ff6c22c21a6a6614253")) From cdbf97b4e9f64e189010edb73e3cc4b24ff4185f Mon Sep 17 00:00:00 2001 From: John Goff Date: Thu, 16 Nov 2023 12:37:46 -0500 Subject: [PATCH 249/523] fix(format): align behaviour and documentation `+format-on-save-disabled-modes` documentation was referencing behaviour that no longer exists, as well as documenting behaviour that was not implemented. --- modules/editor/format/config.el | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/editor/format/config.el b/modules/editor/format/config.el index 6c97ca6b4..4b02bf22d 100644 --- a/modules/editor/format/config.el +++ b/modules/editor/format/config.el @@ -5,11 +5,10 @@ tex-mode ; latexindent is broken latex-mode org-msg-edit-mode) ; doesn't need a formatter - "A list of major modes in which to reformat the buffer upon saving. -If this list begins with `not', then it negates the list. -If it is `t', it is enabled in all modes. -If nil, it is disabled in all modes, the same as if the +onsave flag wasn't - used at all. + "A list of major modes in which to not reformat the buffer upon saving. +If it is t, it is disabled in all modes, the same as if the +onsave flag + wasn't used at all. +If nil, formatting is enabled in all modes. Irrelevant if you do not have the +onsave flag enabled for this module.") (defvar +format-preserve-indentation t @@ -39,6 +38,7 @@ select buffers.") This is controlled by `+format-on-save-disabled-modes'." (or (eq major-mode 'fundamental-mode) (string-blank-p (buffer-name)) + (eq +format-on-save-disabled-modes t) (not (null (memq major-mode +format-on-save-disabled-modes))))) From 9b718f8a5aff68dc63a6ece8d44db4ee77fcc511 Mon Sep 17 00:00:00 2001 From: John Goff Date: Thu, 16 Nov 2023 17:16:14 -0500 Subject: [PATCH 250/523] docs(format): document +format-on-save-disabled-modes in README --- modules/editor/format/README.org | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/editor/format/README.org b/modules/editor/format/README.org index dc3126934..21dcced27 100644 --- a/modules/editor/format/README.org +++ b/modules/editor/format/README.org @@ -25,8 +25,8 @@ be formatted and returned to the buffer using ** Module flags - +onsave :: Enable reformatting of a buffer when it is saved. See - [[var:+format-on-save-disabled-modes]] to control what major modes to (or not to) - format on save. + [[var:+format-on-save-disabled-modes]] to disable format on save for certain + major modes. ** Packages - [[doom-package:apheleia]] From 85d20f71ca45112af897931b20dac2cab2c89ebb Mon Sep 17 00:00:00 2001 From: John Goff Date: Thu, 16 Nov 2023 17:18:47 -0500 Subject: [PATCH 251/523] docs(format): fix name of doom-package --- modules/editor/format/README.org | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/editor/format/README.org b/modules/editor/format/README.org index 21dcced27..3c45f3e5b 100644 --- a/modules/editor/format/README.org +++ b/modules/editor/format/README.org @@ -117,7 +117,7 @@ formatted on save, but can still be formatted by manually invoking the commands ** Disabling the LSP formatter If you are in a buffer with ~lsp-mode~ enabled and a server that supports -=textDocument/formatting=, it will be used instead of [[doom-package:format-all]]'s formatter. +=textDocument/formatting=, it will be used instead of [[doom-package:apheleia]]'s formatter. + To disable this behavior universally use: ~(setq +format-with-lsp nil)~ + To disable this behavior in one mode: ~(setq-hook! 'python-mode-hook From 9d8f657b37f14a75eff6900bd9441c47083d5b01 Mon Sep 17 00:00:00 2001 From: John Goff Date: Thu, 16 Nov 2023 17:21:09 -0500 Subject: [PATCH 252/523] refactor(format): describe what hook does --- modules/editor/format/config.el | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/editor/format/config.el b/modules/editor/format/config.el index 4b02bf22d..e73159b73 100644 --- a/modules/editor/format/config.el +++ b/modules/editor/format/config.el @@ -33,8 +33,8 @@ select buffers.") (when (modulep! +onsave) (add-hook 'doom-first-file-hook #'apheleia-global-mode)) -(defun +format-inhibit-maybe-h () - "Enable formatting on save in certain major modes. +(defun +format-maybe-inhibit-h () + "Check if formatting should be disabled for current buffer. This is controlled by `+format-on-save-disabled-modes'." (or (eq major-mode 'fundamental-mode) (string-blank-p (buffer-name)) @@ -46,7 +46,7 @@ This is controlled by `+format-on-save-disabled-modes'." (add-to-list 'doom-debug-variables '(apheleia-log-only-errors . nil)) (when (modulep! +onsave) - (add-to-list 'apheleia-inhibit-functions #'+format-inhibit-maybe-h))) + (add-to-list 'apheleia-inhibit-functions #'+format-maybe-inhibit-h))) ;; From 9da33cf9e7e853fb66781cf66f74d6986aba0e50 Mon Sep 17 00:00:00 2001 From: John Goff Date: Thu, 16 Nov 2023 17:24:29 -0500 Subject: [PATCH 253/523] docs(format): describe interaction between +onsave and LSP --- modules/editor/format/config.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/editor/format/config.el b/modules/editor/format/config.el index e73159b73..91584d1a3 100644 --- a/modules/editor/format/config.el +++ b/modules/editor/format/config.el @@ -21,7 +21,8 @@ Indentation is always preserved when formatting regions.") "If non-nil, format with LSP formatter if it's available. This can be set buffer-locally with `setq-hook!' to disable LSP formatting in -select buffers.") +select buffers. +This has no effect on the +onsave flag, apheleia will always be used there.") (defvaralias '+format-with 'apheleia-formatter "Set this to explicitly use a certain formatter for the current buffer.") From c076b1237f0b89a1c2ae95df8bda3c4a44e99450 Mon Sep 17 00:00:00 2001 From: John Goff Date: Thu, 16 Nov 2023 17:31:37 -0500 Subject: [PATCH 254/523] docs(format): reasoning for using +format/buffer --- modules/editor/format/README.org | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/modules/editor/format/README.org b/modules/editor/format/README.org index 3c45f3e5b..d5c855bac 100644 --- a/modules/editor/format/README.org +++ b/modules/editor/format/README.org @@ -60,8 +60,9 @@ When this flag is enabled, you shouldn't need to do anything other than write code and save it. ** Without +onsave -Without the flag, formatting will only occur when either =apheleia-format-buffer= -or =+format/buffer= is called. +Without the flag, formatting will only occur when either =+format/buffer= +or =apheleia-format-buffer= is called. The difference between them is +=+format/buffer= will use a LSP server if configured and available. * Configuration @@ -113,7 +114,7 @@ This behaviour is controlled via [[var:+format-on-save-disabled-modes]] thus; In this case, =emacs-lisp-mode=, =sql-mode=, =tex-mode= and =latex-mode= will not be formatted on save, but can still be formatted by manually invoking the commands -=apheleia-format-buffer= or =+format/buffer=. +=+format/buffer= or =apheleia-format-buffer=. ** Disabling the LSP formatter If you are in a buffer with ~lsp-mode~ enabled and a server that supports From fbd00b6a08300b453c15410e693823078c9015af Mon Sep 17 00:00:00 2001 From: John Goff Date: Tue, 21 Nov 2023 14:46:02 -0500 Subject: [PATCH 255/523] fix(format): correct name of feature --- modules/editor/format/config.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/editor/format/config.el b/modules/editor/format/config.el index 91584d1a3..77dd06479 100644 --- a/modules/editor/format/config.el +++ b/modules/editor/format/config.el @@ -43,7 +43,7 @@ This is controlled by `+format-on-save-disabled-modes'." (not (null (memq major-mode +format-on-save-disabled-modes))))) -(after! apheleia-core +(after! apheleia (add-to-list 'doom-debug-variables '(apheleia-log-only-errors . nil)) (when (modulep! +onsave) From 9c3d1951e3d125b9dadd348f6c1c46f26c4a3a24 Mon Sep 17 00:00:00 2001 From: Patrick Norton <36009535+PatrickNorton@users.noreply.github.com> Date: Mon, 27 Nov 2023 18:08:36 -0800 Subject: [PATCH 256/523] fix(swift): don't load lsp-sourcekit with eglot The `use-package!` declaration for lsp-sourcekit in `config.el` did not match the `package!` declaration in `packages.el`: this resulted in `lsp-sourcekit` being loaded but never installed. The removal of this package also resulted in there no longer being a proper LSP client with eglot--this has also been fixed. --- modules/lang/swift/config.el | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/lang/swift/config.el b/modules/lang/swift/config.el index 8de47b3ce..5fc4d9888 100644 --- a/modules/lang/swift/config.el +++ b/modules/lang/swift/config.el @@ -4,7 +4,9 @@ (set-repl-handler! 'swift-mode #'run-swift) (when (modulep! +lsp) - (add-hook 'swift-mode-local-vars-hook #'lsp! 'append)) + (add-hook 'swift-mode-local-vars-hook #'lsp! 'append) + (when (modulep! :tools lsp +eglot) + (set-eglot-client! swift-mode 'swift-mode '("sourcekit-lsp")))) (when (modulep! +tree-sitter) (add-hook 'swift-mode-local-vars-hook #'tree-sitter! 'append))) @@ -25,7 +27,7 @@ (use-package! lsp-sourcekit - :when (modulep! +lsp) + :when (and (modulep! +lsp) (not (modulep! :tools lsp +eglot))) :after swift-mode :init (add-hook 'swift-mode-local-vars-hook #'lsp! 'append) :config From c2818bcfaa5dc1a0139d1deff7d77bf42a08eede Mon Sep 17 00:00:00 2001 From: Maoli Date: Fri, 24 Nov 2023 14:24:40 +0800 Subject: [PATCH 257/523] fix(latex): avoid stealing focus after compilation Current LaTeX module uses `TeX-command-run-all` for compilation, which by default opens the compiled document in a viewer. This behavior causes a loss of focus from the Emacs window. We address this by adding a custom compilation function. --- modules/lang/latex/config.el | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/modules/lang/latex/config.el b/modules/lang/latex/config.el index 3bc13b18b..ed8e59fd5 100644 --- a/modules/lang/latex/config.el +++ b/modules/lang/latex/config.el @@ -102,16 +102,23 @@ If no viewer is found, `latex-preview-pane-mode' is used.") (add-hook! '(tex-mode-local-vars-hook latex-mode-local-vars-hook) :append #'lsp!)) + ;; Define a function to compile the project. + (defun +latex/compile () + (interactive) + (TeX-save-document (TeX-master-file)) + (TeX-command TeX-command-default 'TeX-master-file -1)) (map! :localleader :map latex-mode-map :desc "View" "v" #'TeX-view - :desc "Compile" "c" #'TeX-command-run-all + :desc "Compile" "c" #'+latex/compile + :desc "Run all" "a" #'TeX-command-run-all :desc "Run a command" "m" #'TeX-command-master) (map! :after latex :localleader :map LaTeX-mode-map :desc "View" "v" #'TeX-view - :desc "Compile" "c" #'TeX-command-run-all + :desc "Compile" "c" #'+latex/compile + :desc "Run all" "a" #'TeX-command-run-all :desc "Run a command" "m" #'TeX-command-master)) From 9a1022ef08d4d449e76341627325ff7756c4e178 Mon Sep 17 00:00:00 2001 From: Peter Hoeg Date: Wed, 29 Nov 2023 17:27:06 +0100 Subject: [PATCH 258/523] bump: :editor format radian-software/apheleia@c222927f7086 -> radian-software/apheleia@56651724ad22 fbd00b6 changes aphelia-core to aphelia, but only in 1 out of 2 places and this is not the correct name in the version pinned in doom. Fix: #7568 Amend: fbd00b6a0830 --- modules/editor/format/autoload/settings.el | 2 +- modules/editor/format/packages.el | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/editor/format/autoload/settings.el b/modules/editor/format/autoload/settings.el index 968338f0d..ea12a1ac2 100644 --- a/modules/editor/format/autoload/settings.el +++ b/modules/editor/format/autoload/settings.el @@ -74,7 +74,7 @@ Advanced examples: \"elm-format --yes --stdin\")" (declare (indent defun)) (cl-check-type name symbol) - (after! apheleia-core + (after! apheleia (if (null args) (progn (setq apheleia-formatters diff --git a/modules/editor/format/packages.el b/modules/editor/format/packages.el index 17a308621..da69e9682 100644 --- a/modules/editor/format/packages.el +++ b/modules/editor/format/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; editor/format/packages.el -(package! apheleia :pin "c222927f7086d407dad01b2609ff68768e9adddb") +(package! apheleia :pin "56651724ad22f2769bbdaccf54cbe75c1cb35c91") From e5cbe36fd75ed6b833837f08f423a479bfa66f3d Mon Sep 17 00:00:00 2001 From: Colin Woodbury Date: Thu, 30 Nov 2023 01:30:04 +0900 Subject: [PATCH 259/523] bump: :tools tree-sitter emacs-tree-sitter/tree-sitter-langs@3a3ad0527d5f -> emacs-tree-sitter/tree-sitter-langs@5eb24557f542 Fixes broken syntax highlighting in Clojure buffers. --- modules/tools/tree-sitter/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/tools/tree-sitter/packages.el b/modules/tools/tree-sitter/packages.el index c2f9a1ef5..6be4f7141 100644 --- a/modules/tools/tree-sitter/packages.el +++ b/modules/tools/tree-sitter/packages.el @@ -2,7 +2,7 @@ ;;; tools/tree-sitter/packages.el (package! tree-sitter :pin "3cfab8a0e945db9b3df84437f27945746a43cc71") -(package! tree-sitter-langs :pin "3a3ad0527d5f8c7768678878eb5cfe399bedf703") +(package! tree-sitter-langs :pin "5eb24557f542d5fa18e7baaf07969cf7f297bfcd") (package! tree-sitter-indent :pin "4ef246db3e4ff99f672fe5e4b416c890f885c09e") (when (modulep! :editor evil +everywhere) From f4e02a2d390ff411c05521c179732267b6543439 Mon Sep 17 00:00:00 2001 From: Tim Ruffing Date: Wed, 29 Nov 2023 11:28:28 +0100 Subject: [PATCH 260/523] fix(org): don't call org-reveal in dead buffer This fixes a bug introduced in bb3431a (#7509). This shows up for example in `org-capture`, which uses multiple org buffers and the initial one (with name `*Capture*`) will be dead already by the time the timer runs. Amend: #7509 --- modules/lang/org/autoload/org.el | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/lang/org/autoload/org.el b/modules/lang/org/autoload/org.el index 8690b1318..7b318e5c2 100644 --- a/modules/lang/org/autoload/org.el +++ b/modules/lang/org/autoload/org.el @@ -511,8 +511,9 @@ All my (performant) foldings needs are met between this and `org-show-subtree' (let ((buf (current-buffer))) (unless (doom-temp-buffer-p buf) (run-at-time 0.1 nil (lambda () - (with-current-buffer buf - (org-reveal '(4))))))))) + (when (buffer-live-p buf) + (with-current-buffer buf + (org-reveal '(4)))))))))) ;;;###autoload (defun +org-remove-occur-highlights-h () From 87f6f7ab91089235a66d9076fa50a5fc4d37dfea Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 29 Nov 2023 13:32:57 -0500 Subject: [PATCH 261/523] bump: :lang scheme emacs-geiser/chez@246ec4c8bc4e -> emacs-geiser/chez@605a81ff7b2d emacs-geiser/geiser@e54d5e6dc659 -> emacs-geiser/geiser@49d12a14482c emacs-geiser/guile@24ce15de235c -> emacs-geiser/guile@ee33af6b4ef8 flatwhatson/flycheck-guile@e23a4d781317 -> flatwhatson/flycheck-guile@dd7bbdc48fd2 flatwhatson/scheme-mode@aaef1f88cc34 -> flatwhatson/scheme-mode@51e586e5f1dd - Lazy autoloads hack for geiser is no longer needed (see https://gitlab.com/emacs-geiser/geiser/-/commit/47bb86d6829ffa81ec021ee6217379b216d95bfc) - (#7472) Fixes geiser-activate-implementation errors from `doom doctor` Fix: #7472 Ref: https://gitlab.com/emacs-geiser/geiser/-/commit/47bb86d6829ffa81ec021ee6217379b216d95bfc --- modules/lang/scheme/autoload.el | 17 ----------------- modules/lang/scheme/packages.el | 10 +++++----- 2 files changed, 5 insertions(+), 22 deletions(-) diff --git a/modules/lang/scheme/autoload.el b/modules/lang/scheme/autoload.el index 47d664680..75796492d 100644 --- a/modules/lang/scheme/autoload.el +++ b/modules/lang/scheme/autoload.el @@ -1,22 +1,5 @@ ;;; lang/scheme/autoload.el -*- lexical-binding: t; -*- -;; HACK `geiser' has poor autoload etiquette. It calls -;; `geiser-activate-implementation' and `geiser-implementation-extension' -;; in their autoloads files. Sure, these functions are autoloaded, but this -;; needlessly (and unavoidably) pulls in the `geiser-impl' package (et co) -;; when geiser-X's autoloads are read (i.e. at startup). -;; -;; I rectify this by inlining calls to these two functions (and the -;; `geiser-impl--add-to-alist' sub-call in -;; `geiser-implementation-extension'), and autoloading the two variables -;; they operate on. I do this from our autoloads file (which is -;; byte-compiled and read at startup before package autoloads). -;; TODO At some point, PR this behavior upstream (but not verbatim!) -;;;###autoload (defvar geiser-active-implementations ()) -;;;###autoload (defvar geiser-implementations-alist ()) -;;;###autoload (eval-and-compile (dolist (sym '(geiser-impl--add-to-alist geiser-activate-implementation geiser-implementation-extension)) (put sym 'byte-optimizer 'byte-compile-inline-expand))) - - (defvar calculate-lisp-indent-last-sexp) ;; Adapted from https://github.com/alezost/emacs-config/blob/master/utils/al-scheme.el#L76-L123 ;;;###autoload diff --git a/modules/lang/scheme/packages.el b/modules/lang/scheme/packages.el index 449e3c8a6..5486dba71 100644 --- a/modules/lang/scheme/packages.el +++ b/modules/lang/scheme/packages.el @@ -4,12 +4,12 @@ (when (< emacs-major-version 29) (package! scheme :recipe (:host gitlab :repo "flatwhatson/scheme-mode") - :pin "aaef1f88cc34e8b6e07c207f9b8caff33f6e0740")) + :pin "51e586e5f1ddb5ea71d2cac8d401faf718c4627e")) -(when (package! geiser :pin "e54d5e6dc659c252d10c4280f4c4d78d38623df5") +(when (package! geiser :pin "49d12a14482ce9a193c049a5ccdd2fed90b0bdbe") (package! macrostep-geiser :pin "f6a2d5bb96ade4f23df557649af87ebd0cc45125") (when (modulep! +chez) - (package! geiser-chez :pin "246ec4c8bc4e7f64414e5cbe0fa66f0e5ef7d527")) + (package! geiser-chez :pin "605a81ff7b2d2b275a3ec68e3ce7e5b50f85014d")) (when (modulep! +chibi) (package! geiser-chibi :pin "5a6a5a580ea45cd4974df21629a8d50cbe3d6e99")) (when (modulep! +chicken) @@ -19,12 +19,12 @@ (when (modulep! +gauche) (package! geiser-gauche :pin "8ff743f6416f00751e24aef8b9791501a40f5421")) (when (modulep! +guile) - (package! geiser-guile :pin "24ce15de235c105daf5ecfb818200dae1c9815ee") + (package! geiser-guile :pin "ee33af6b4ef8fdaccbdf93c62b50fe17c07a1ade") (when (and (modulep! :checkers syntax) (not (modulep! :checkers syntax +flymake))) (package! flycheck-guile :recipe (:host github :repo "flatwhatson/flycheck-guile") - :pin "e23a4d7813179124fd98abf1c2f4190a72569bee"))) + :pin "dd7bbdc48fd21cf8d270c913c56cd580f8ec3d03"))) (when (modulep! +kawa) (package! geiser-kawa :pin "5896b19642923f74f718eb68d447560b2d26d797")) (when (modulep! +mit) From f9c2397a3cee34732b8279bba49af1e6f09eb113 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 29 Nov 2023 16:07:21 -0500 Subject: [PATCH 262/523] fix: autoloads load order in profile bootstrap Package autoloads should be assembled in the order they're installed/built, so that dependencies between them (such as the case where geiser-* packages call geiser-activate-implementation, which is defined in geiser.el's autoloads file -- see #7472) don't throw errors. Fix: #7472 Amend: 87f6f7ab9108 --- lisp/doom-profiles.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lisp/doom-profiles.el b/lisp/doom-profiles.el index 2e482c0ec..f60531174 100644 --- a/lisp/doom-profiles.el +++ b/lisp/doom-profiles.el @@ -449,8 +449,8 @@ Defaults to the profile at `doom-profile-default'." (defun doom-profile--generate-package-autoloads () (doom-autoloads--scan (mapcar #'straight--autoloads-file - (seq-difference (hash-table-keys straight--build-cache) - doom-autoloads-excluded-packages)) + (nreverse (seq-difference (hash-table-keys straight--build-cache) + doom-autoloads-excluded-packages))) doom-autoloads-excluded-files 'literal)) From 6ca6bf09355dac948118c341d5ecf2731b66b50f Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 29 Nov 2023 16:11:16 -0500 Subject: [PATCH 263/523] bump: :lang haskell emacs-lsp/lsp-haskell@918ffa2516a5 -> emacs-lsp/lsp-haskell@89d16370434e haskell/haskell-mode@3e146c1a89db -> haskell/haskell-mode@79eaf444a721 - (#7569) Fixes flymake-proc load error. Fix: #7569 Close: #7574 Co-authored-by: PatrickNorton --- modules/lang/haskell/packages.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/lang/haskell/packages.el b/modules/lang/haskell/packages.el index a6b80c28f..6eecc104d 100644 --- a/modules/lang/haskell/packages.el +++ b/modules/lang/haskell/packages.el @@ -1,8 +1,8 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/haskell/packages.el -(package! haskell-mode :pin "3e146c1a89db257bb75c7b33fa2a5a1a85aabd51") +(package! haskell-mode :pin "79eaf444a72109f93f552abb53f834cc63bbf9f2") (when (and (modulep! +lsp) (not (modulep! :tools lsp +eglot))) - (package! lsp-haskell :pin "918ffa2516a59c90f909b584f7c9968716c0e006")) + (package! lsp-haskell :pin "89d16370434e9a247e95b8b701f524f5abfc884b")) From d55b078fa183cb2d44ad902e7d3760b1112b94b3 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 29 Nov 2023 16:13:01 -0500 Subject: [PATCH 264/523] bump: :checkers alexmurray/flycheck-posframe@8f60c9bf124a -> alexmurray/flycheck-posframe@19896b922c76 bnbeckwith/writegood-mode@ed42d918d988 -> bnbeckwith/writegood-mode@d54eadeedb8b d12frosted/flyspell-correct@7d7b6b01188b -> d12frosted/flyspell-correct@1e7a5a56362d flycheck/flycheck@784f184cdd9f -> flycheck/flycheck@e56e30d8c66f ideasman42/emacs-spell-fu@aed6e87aa310 -> ideasman42/emacs-spell-fu@e4031935803c mhayashi1120/Emacs-langtool@8276eccc5587 -> mhayashi1120/Emacs-langtool@d86101eafe9a --- modules/checkers/grammar/packages.el | 4 ++-- modules/checkers/spell/packages.el | 4 ++-- modules/checkers/syntax/packages.el | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/checkers/grammar/packages.el b/modules/checkers/grammar/packages.el index 39da67b3b..f0082e185 100644 --- a/modules/checkers/grammar/packages.el +++ b/modules/checkers/grammar/packages.el @@ -1,5 +1,5 @@ ;; -*- no-byte-compile: t; -*- ;;; checkers/grammar/packages.el -(package! langtool :pin "8276eccc5587bc12fd205ee58a7a982f0a136e41") -(package! writegood-mode :pin "ed42d918d98826ad88928b7af9f2597502afc6b0") +(package! langtool :pin "d86101eafe9a994eb0425e08e7c1795e9cb0cd42") +(package! writegood-mode :pin "d54eadeedb8bf3aa0e0a584c0a7373c69644f4b8") diff --git a/modules/checkers/spell/packages.el b/modules/checkers/spell/packages.el index 2af2169f0..eb2c07269 100644 --- a/modules/checkers/spell/packages.el +++ b/modules/checkers/spell/packages.el @@ -2,8 +2,8 @@ ;;; checkers/spell/packages.el (if (not (modulep! +flyspell)) - (package! spell-fu :pin "aed6e87aa31013534b7a6cbedb26e4f29ccea735") - (package! flyspell-correct :pin "7d7b6b01188bd28e20a13736ac9f36c3367bd16e") + (package! spell-fu :pin "e4031935803c66eca2f076dce72b0a6a770d026c") + (package! flyspell-correct :pin "1e7a5a56362dd875dddf848b9a9e25d1395b9d37") (cond ((modulep! :completion ivy) (package! flyspell-correct-ivy)) ((modulep! :completion helm) diff --git a/modules/checkers/syntax/packages.el b/modules/checkers/syntax/packages.el index ccaaedc61..bd708b566 100644 --- a/modules/checkers/syntax/packages.el +++ b/modules/checkers/syntax/packages.el @@ -2,10 +2,10 @@ ;;; checkers/syntax/packages.el (unless (modulep! +flymake) - (package! flycheck :pin "784f184cdd9f9cb4e3dbb997c09d93e954142842") + (package! flycheck :pin "e56e30d8c66ffc9776d07740658d3b542c1a8e21") (package! flycheck-popup-tip :pin "ef86aad907f27ca076859d8d9416f4f7727619c6") (when (modulep! +childframe) - (package! flycheck-posframe :pin "8f60c9bf124ab9597d681504a73fdf116a0bde12"))) + (package! flycheck-posframe :pin "19896b922c76a0f460bf3fe8d8ebc2f9ac9028d8"))) ;; Flymake (when (modulep! +flymake) From 88c59129ec89afe8f38e3adb4676561fb5b41ccd Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 29 Nov 2023 16:29:42 -0500 Subject: [PATCH 265/523] fix(lib): doom/bumpify-diff: skip non-package! forms Would formerly error out if it tries to read invalid forms in misc files included in bump commits. --- lisp/lib/packages.el | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/lisp/lib/packages.el b/lisp/lib/packages.el index 96531b451..496091155 100644 --- a/lisp/lib/packages.el +++ b/lisp/lib/packages.el @@ -239,13 +239,14 @@ Must be run from a magit diff buffer." (unless (= (length before) (length after)) (user-error "Uneven number of packages being bumped")) (dolist (p1 before) - (cl-destructuring-bind (package &key plist _beg _end &allow-other-keys) p1 - (let ((p2 (cdr (assq package after)))) - (if (null p2) - (push package errors) - (let ((bstr1 (doom--package-to-bump-string package plist)) - (bstr2 (doom--package-to-bump-string package (plist-get p2 :plist)))) - (cl-pushnew (format "%s -> %s" bstr1 bstr2) lines :test #'equal)))))) + (when (and (listp p1) (eq (car p1) 'package!)) + (cl-destructuring-bind (package &key plist _beg _end &allow-other-keys) p1 + (let ((p2 (cdr (assq package after)))) + (if (null p2) + (push package errors) + (let ((bstr1 (doom--package-to-bump-string package plist)) + (bstr2 (doom--package-to-bump-string package (plist-get p2 :plist)))) + (cl-pushnew (format "%s -> %s" bstr1 bstr2) lines :test #'equal))))))) (if (null lines) (user-error "No bumps to bumpify") (prog1 (funcall (if interactive #'kill-new #'identity) From fde4289f5ce2d5222b6cc81db5a6b6e6a5f71c31 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 29 Nov 2023 23:14:34 -0500 Subject: [PATCH 266/523] bump: :completion company helm ivy Sodel-the-Vociferous/helm-company@6eb5c2d730a6 -> Sodel-the-Vociferous/helm-company@4622b8235322 abo-abo/swiper@9d630d800e85 -> abo-abo/swiper@8c30f4cab594 bbatsov/helm-projectile@35a2111d00c0 -> bbatsov/helm-projectile@e2e38825c975 company-mode/company-mode@9b21604d1969 -> company-mode/company-mode@ed46a616ab99 emacs-helm/helm-org@d67186d3a64e -> emacs-helm/helm-org@c80e53315ce6 emacs-helm/helm@dfd6403947c5 -> emacs-helm/helm@96aad023cb12 emacs-jp/helm-c-yasnippet@e214eec8b287 -> emacs-jp/helm-c-yasnippet@c5880e740da1 radian-software/prescient.el@d7cc55dad453 -> radian-software/prescient.el@707c25c947a9 tumashu/helm-posframe@87461b52b6f3 -> tumashu/helm-posframe@0b6bb016f0ff yyoncho/helm-icons@53349000b114 -> yyoncho/helm-icons@0d113719ee72 --- modules/completion/company/packages.el | 2 +- modules/completion/helm/packages.el | 14 +++++++------- modules/completion/ivy/packages.el | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/modules/completion/company/packages.el b/modules/completion/company/packages.el index 0851bde07..d594c638b 100644 --- a/modules/completion/company/packages.el +++ b/modules/completion/company/packages.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; -*- ;;; completion/company/packages.el -(package! company :pin "9b21604d19696de2c79ee28931620839b3a908b4") +(package! company :pin "ed46a616ab9906fd43a630479b6a6c3f79e606f0") (package! company-dict :pin "cd7b8394f6014c57897f65d335d6b2bd65dab1f4") (when (modulep! +childframe) (package! company-box :pin "b6f53e26adf948aca55c3ff6c22c21a6a6614253")) diff --git a/modules/completion/helm/packages.el b/modules/completion/helm/packages.el index b97a060df..f037a770b 100644 --- a/modules/completion/helm/packages.el +++ b/modules/completion/helm/packages.el @@ -1,20 +1,20 @@ ;; -*- no-byte-compile: t; -*- ;;; completion/helm/packages.el -(package! helm :pin "dfd6403947c5cd9f32afcd6bc92a1756cc958c82") -(package! helm-company :pin "6eb5c2d730a60e394e005b47c1db018697094dde") -(package! helm-c-yasnippet :pin "e214eec8b2875d8a7cd09006dfb6a8e15e9e4079") +(package! helm :pin "96aad023cb12e995e92763195086ccee3aa5a141") +(package! helm-company :pin "4622b82353220ee6cc33468f710fa5b6b253b7f1") +(package! helm-c-yasnippet :pin "c5880e740da101fde7a995e94a7b16c330e57583") (package! helm-descbinds :pin "b72515982396b6e336ad7beb6767e95a80fca192") (package! helm-describe-modes :pin "11fb36af119b784539d31c6160002de1957408aa") -(package! helm-projectile :pin "35a2111d00c0c0c9d8743280d3f1243bb217118a") +(package! helm-projectile :pin "e2e38825c975269a4971df25e79b2ae98929624e") (package! helm-rg :pin "ee0a3c09da0c843715344919400ab0a0190cc9dc") (package! swiper-helm :pin "93fb6db87bc6a5967898b5fd3286954cc72a0008") (when (modulep! +childframe) - (package! helm-posframe :pin "87461b52b6f3f378c63642a33f584d4a4ba28351")) + (package! helm-posframe :pin "0b6bb016f0ff4980860a9d00574de311748c40b0")) (when (modulep! +fuzzy) (package! helm-flx :pin "5220099e695a3586dba2d59640217fe378e66310")) (when (modulep! +icons) - (package! helm-icons :pin "53349000b114b2dfc874252de6605e3bafa435e2")) + (package! helm-icons :pin "0d113719ee72cb7b6bb7db29f7200d667bd86607")) (when (modulep! :lang org) - (package! helm-org :pin "d67186d3a64e610c03a5f3d583488f018fb032e4")) + (package! helm-org :pin "c80e53315ce6b096e2d0e630702df924bf00bf6a")) diff --git a/modules/completion/ivy/packages.el b/modules/completion/ivy/packages.el index f2b89e47a..e170dc7a4 100644 --- a/modules/completion/ivy/packages.el +++ b/modules/completion/ivy/packages.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; -*- ;;; completion/ivy/packages.el -(package! swiper :pin "9d630d800e856a2c984c5a62a6f0ad313a9d2228") +(package! swiper :pin "8c30f4cab5948aa8d942a3b2bbf5fb6a94d9441d") (package! ivy) (package! ivy-hydra) (package! ivy-avy) @@ -13,7 +13,7 @@ (package! wgrep :pin "3132abd3750b8c87cbcf6942db952acfab5edccd") (if (modulep! +prescient) - (package! ivy-prescient :pin "d7cc55dad453c465af9ececbab94426202b5b32b") + (package! ivy-prescient :pin "707c25c947a9f17a1d43f97b3b28aba91ec9addb") (when (modulep! +fuzzy) (package! flx :pin "7b44a5abb254bbfbeca7a29336f7f4ebd8aabbf2"))) From 29b19412f6dcc36cf64a55c339f9a723fc0de3bc Mon Sep 17 00:00:00 2001 From: Liam Hupfer Date: Sun, 24 Sep 2023 10:09:27 -0500 Subject: [PATCH 267/523] dev: ignore .DS_Store at top level --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 124310e16..907145aa2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ +# generated by macOS +.DS_Store + # machine generated doom profiles or metadata /profiles/*.el /.local*/ From a89d4b7df556bb8b309d1c23e0b60404e750f156 Mon Sep 17 00:00:00 2001 From: Tim Ruffing Date: Fri, 1 Dec 2023 19:15:36 +0100 Subject: [PATCH 268/523] tweak(default): add binding for undo-tree This also makes the check for the presence of vundo consistent with the rest of the file by using modulep! instead of fboundp. --- modules/config/default/+evil-bindings.el | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/config/default/+evil-bindings.el b/modules/config/default/+evil-bindings.el index f6d1c9225..a62541d4c 100644 --- a/modules/config/default/+evil-bindings.el +++ b/modules/config/default/+evil-bindings.el @@ -760,8 +760,9 @@ ((modulep! :completion helm) #'swiper-isearch-thing-at-point)) :desc "Dictionary" "t" #'+lookup/dictionary-definition :desc "Thesaurus" "T" #'+lookup/synonyms - (:when (fboundp 'vundo) - :desc "Undo history" "u" #'vundo)) + :desc "Undo history" "u" + (cond ((modulep! :emacs undo +tree) #'undo-tree-visualize) + ((modulep! :emacs undo) #'vundo))) ;;; t --- toggle (:prefix-map ("t" . "toggle") From c7ddbe049f2d4f36f808b9113f5ca80a5892e54f Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 2 Dec 2023 10:48:42 -0500 Subject: [PATCH 269/523] fix(swift): set-eglot-client!: extra argument And move setter out of condition (it will no-op if :tools lsp +eglot isn't enabled). Plus, it should be configured even when +lsp isn't enabled for :lang swift. Amend: #7567 Close: #7577 Co-authored-by: ncihnegn --- modules/lang/swift/config.el | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/modules/lang/swift/config.el b/modules/lang/swift/config.el index 5fc4d9888..ab66f2c48 100644 --- a/modules/lang/swift/config.el +++ b/modules/lang/swift/config.el @@ -2,11 +2,10 @@ (after! swift-mode (set-repl-handler! 'swift-mode #'run-swift) + (set-eglot-client! 'swift-mode '("sourcekit-lsp")) (when (modulep! +lsp) - (add-hook 'swift-mode-local-vars-hook #'lsp! 'append) - (when (modulep! :tools lsp +eglot) - (set-eglot-client! swift-mode 'swift-mode '("sourcekit-lsp")))) + (add-hook 'swift-mode-local-vars-hook #'lsp! 'append)) (when (modulep! +tree-sitter) (add-hook 'swift-mode-local-vars-hook #'tree-sitter! 'append))) From f8274f208c3f60a9407a8d432be137748d97134d Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 2 Dec 2023 11:20:42 -0500 Subject: [PATCH 270/523] bump: :lang org aimebertrand/org-mac-link@3a30a937e135 -> aimebertrand/org-mac-link@e30171a6e98d alf/ob-restclient.el@ded3b7eb7b05 -> alf/ob-restclient.el@1a127eb0165f awth13/org-appear@eb9f9db40aa5 -> awth13/org-appear@81eba5d7a5b7 bastibe/org-journal@18df4d5ae5e1 -> bastibe/org-journal@a306f76ee2b0 emacs-jupyter/jupyter@1baabc8f2d06 -> emacs-jupyter/jupyter@0a92c0c978ab emacs-straight/org-mode@e90a8a69a7fa -> emacs-straight/org-mode@57b94f3447b9 emacsmirror/org-contrib@dc59cdd46be8 -> emacsmirror/org-contrib@79286861ae3f hakimel/reveal.js@07a6cf1249e4 -> hakimel/reveal.js@d5896c968b24 magit/orgit-forge@8ba92a54aee9 -> magit/orgit-forge@f595a30aa75a magit/orgit@4a585029875a -> magit/orgit@b60efabc4a1b oer/org-re-reveal@93396b531ba1 -> oer/org-re-reveal@e7895dae9807 org-noter/org-noter@ab838691f0d6 -> org-noter/org-noter@a4296d8338d4 Ref: bastibe/org-journal#415 Close: #7506 Fix: #7545 Co-authored-by: SeanMaclochlainn --- modules/lang/org/packages.el | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/modules/lang/org/packages.el b/modules/lang/org/packages.el index f67a07819..ac75cc70d 100644 --- a/modules/lang/org/packages.el +++ b/modules/lang/org/packages.el @@ -31,11 +31,11 @@ (format "(defun org-git-version (&rest _) \"%s-??-%s\")\n" version (cdr (doom-call-process "git" "rev-parse" "--short" "HEAD"))) "(provide 'org-version)\n"))))) - :pin "e90a8a69a7fa2d83c995b5d32bc0b24a68218ed3") + :pin "57b94f3447b9046dac2f9238e24ad902510056cc") (package! org-contrib :recipe (:host github :repo "emacsmirror/org-contrib") - :pin "dc59cdd46be8f6854c5d6e9252263d0e4e62e896") + :pin "79286861ae3f4a47fbc66ce97cd527196f60c4a8") (package! avy) (package! htmlize :pin "dd27bc3f26efd728f2b1f01f9e4ac4f61f2ffbf9") @@ -56,7 +56,7 @@ (when (and IS-MAC (modulep! :os macos)) - (package! org-mac-link :pin "3a30a937e135a6637a5126e2ac096b6c90584045")) + (package! org-mac-link :pin "e30171a6e98db90787ab8a23b3a7dc4fd13b10f9")) (when (modulep! +passwords) (package! org-passwords @@ -71,9 +71,9 @@ (when (modulep! :tools pdf) (package! org-pdftools :pin "4e420233a153a9c4ab3d1a7e1d7d3211c836f0ac")) (when (modulep! :tools magit) - (package! orgit :pin "4a585029875a1dbbe96d8ac157bd2fd02875f289") + (package! orgit :pin "b60efabc4a1b15d7eacaabc5bdfe6f3c20fee161") (when (modulep! :tools magit +forge) - (package! orgit-forge :pin "8ba92a54aee9693b1bf03baf14f83550a7c89b18"))) + (package! orgit-forge :pin "f595a30aa75af55522b1203cd29198fb9aa3a0a5"))) (when (modulep! +brain) (package! org-brain :pin "2bad7732aae1a3051e2a14de2e30f970bbe43c25")) (when (modulep! +dragndrop) @@ -84,15 +84,15 @@ (when (modulep! +ipython) ; DEPRECATED (package! ob-ipython :pin "7147455230841744fb5b95dcbe03320313a77124")) (when (modulep! +jupyter) - (package! jupyter :pin "1baabc8f2d0631f8f4308400f9a53f1aadd58d14")) + (package! jupyter :pin "0a92c0c978ab12bd31a50a7e8b1295f5d1767e20")) (when (modulep! +journal) - (package! org-journal :pin "18df4d5ae5e15580df42562c143d007c6d28d75f")) + (package! org-journal :pin "a306f76ee2b0292946a20530bd9114aefc85a263")) (when (modulep! +noter) - (package! org-noter :pin "ab838691f0d6ae281597451de311f71a50ba8da6")) + (package! org-noter :pin "a4296d8338d46b5c863d3d339b50e201172f218c")) (when (modulep! +pomodoro) (package! org-pomodoro :pin "3f5bcfb80d61556d35fc29e5ddb09750df962cc6")) (when (modulep! +pretty) - (package! org-appear :pin "eb9f9db40aa529fe4b977235d86494b115281d17") + (package! org-appear :pin "81eba5d7a5b74cdb1bad091d85667e836f16b997") (package! org-superstar :pin "54c81c27dde2a6dc461bb064e79a8b2089093a2e") (package! org-fancy-priorities :pin "7f677c6c14ecf05eab8e0efbfe7f1b00ae68eb1d")) (when (modulep! +present) @@ -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 "93396b531ba13219bdbb968c197d5c44535ce1cd") + (package! org-re-reveal :pin "e7895dae9807df38b6e17b6c24e1e824caad6c46") (package! revealjs :recipe (:host github :repo "hakimel/reveal.js" :files ("css" "dist" "js" "plugin")) - :pin "07a6cf1249e40164705713ed9ad60f13846789fb")) + :pin "d5896c968b2406126ca0beafecdffe219230b6b4")) (cond ((modulep! +roam) (package! org-roam @@ -152,7 +152,7 @@ :recipe (:host github :repo "DEADB17/ob-racket") :pin "d8fd51bddb019b0eb68755255f88fc800cfe03cb")) (when (modulep! :lang rest) - (package! ob-restclient :pin "ded3b7eb7b0592328a7a08ecce6f25278cba4a1d")) + (package! ob-restclient :pin "1a127eb0165f10bb9d33606aa8529051118805e7")) (when (modulep! :lang scala) (package! ob-ammonite :pin "39937dff395e70aff76a4224fa49cf2ec6c57cca")) From 0d8479ae9bc736a0cb2465eab16dae7c449d84de Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 2 Dec 2023 11:23:54 -0500 Subject: [PATCH 271/523] tweak: emit feedback when started in daemon mode --- lisp/doom.el | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lisp/doom.el b/lisp/doom.el index 2d59d5ffa..42465738d 100644 --- a/lisp/doom.el +++ b/lisp/doom.el @@ -697,6 +697,16 @@ appropriately against `noninteractive' or the `cli' context." ;; ;;; Last minute initialization +(when (daemonp) + (message "Starting Doom Emacs in daemon mode!") + (unless doom-inhibit-log + (add-hook! 'doom-after-init-hook :depth 106 + (unless doom-inhibit-log + (setq doom-inhibit-log (not (or noninteractive init-file-debug)))) + (message "Disabling verbose mode. Have fun!")) + (add-hook! 'kill-emacs-hook :depth 110 + (message "Killing Emacs. Sayonara!")))) + (add-hook! 'doom-before-init-hook :depth -105 (defun doom--begin-init-h () "Begin the startup process." From b1d8d1cd9f4a2245329330cd92c04cf8f9e41472 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 2 Dec 2023 11:25:54 -0500 Subject: [PATCH 272/523] nit: reformatting, comment, and markup revision --- lisp/doom.el | 6 +++--- modules/editor/evil/init.el | 2 +- modules/lang/org/config.el | 2 +- profiles/README.org | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lisp/doom.el b/lisp/doom.el index 42465738d..464803b03 100644 --- a/lisp/doom.el +++ b/lisp/doom.el @@ -119,9 +119,9 @@ (let ((inhibit-changing-match-data t)) (if (string-match "HARFBUZZ" system-configuration-features) ; no alternative (push 'harfbuzz features))) -;; `native-compile' exists whether or not it is functional (e.g. libgcc is -;; available or not). This seems silly, so pretend it doesn't exist if it -;; isn't available. +;; The `native-compile' feature exists whether or not it is functional (e.g. +;; libgcc is available or not). This seems silly, so pretend it doesn't exist if +;; it isn't functional. (if (featurep 'native-compile) (if (not (native-comp-available-p)) (delq 'native-compile features))) diff --git a/modules/editor/evil/init.el b/modules/editor/evil/init.el index baf9744ed..fb8cc330a 100644 --- a/modules/editor/evil/init.el +++ b/modules/editor/evil/init.el @@ -40,8 +40,8 @@ free-keys helm help - indent image + indent kotlin-mode lispy outline diff --git a/modules/lang/org/config.el b/modules/lang/org/config.el index d32c76928..52dec99e7 100644 --- a/modules/lang/org/config.el +++ b/modules/lang/org/config.el @@ -160,7 +160,7 @@ Is relative to `org-directory', unless it is absolute. Is used in Doom's default "IDEA(i)" ; An unconfirmed and unapproved task or notion "|" "DONE(d)" ; Task successfully completed - "KILL(k)") ; Task was cancelled, aborted or is no longer applicable + "KILL(k)") ; Task was cancelled, aborted, or is no longer applicable (sequence "[ ](T)" ; A task that needs doing "[-](S)" ; Task is in progress diff --git a/profiles/README.org b/profiles/README.org index dfc2b067f..b9bcd8348 100644 --- a/profiles/README.org +++ b/profiles/README.org @@ -113,7 +113,7 @@ There are two caveats with this profile system: 1. Delete [[https://github.com/plexus/chemacs2][Chemacs]] from =$EMACSDIR=. 2. Install Doom there: ~$ git clone https://github.com/doomemacs/doomemacs - ~/.config/emacs~ + \~/.config/emacs~ 3. Move =~/.emacs-profiles.el= to =~/.config/doom/profiles.el= and transform the string keys to symbols and adapt =env= entries like so: From 5b9da18bc10cff72026e63552cd5241a806d676d Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 2 Dec 2023 11:27:59 -0500 Subject: [PATCH 273/523] fix(csharp): enable lsp in csharp-tree-sitter-mode Fix: #7541 --- modules/lang/csharp/config.el | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/lang/csharp/config.el b/modules/lang/csharp/config.el index 94f64cc61..e0fe64a49 100644 --- a/modules/lang/csharp/config.el +++ b/modules/lang/csharp/config.el @@ -50,8 +50,10 @@ or terminating simple string." :defer t :init (add-hook 'csharp-mode-local-vars-hook #'tree-sitter! 'append) - (if (fboundp #'csharp-tree-sitter-mode) - (add-to-list 'auto-mode-alist '("\\.cs\\'" . csharp-tree-sitter-mode)))) + (when (fboundp #'csharp-tree-sitter-mode) + (add-to-list 'auto-mode-alist '("\\.cs\\'" . csharp-tree-sitter-mode)) + (when (modulep! +lsp) + (add-hook 'csharp-tree-sitter-mode-local-vars-hook #'lsp! 'append)))) ;; Unity shaders From 36d18d6da59f3b5acd5fa36e9a24724bd7c03f11 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 2 Dec 2023 11:32:28 -0500 Subject: [PATCH 274/523] fix(cc): enable lsp in cuda-mode Fix: #7576 --- modules/lang/cc/config.el | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/modules/lang/cc/config.el b/modules/lang/cc/config.el index d56bcb3e1..75f74a55b 100644 --- a/modules/lang/cc/config.el +++ b/modules/lang/cc/config.el @@ -250,7 +250,12 @@ If rtags or rdm aren't available, fail silently instead of throwing a breaking e (add-hook! '(c-mode-local-vars-hook c++-mode-local-vars-hook objc-mode-local-vars-hook - cmake-mode-local-vars-hook) + cmake-mode-local-vars-hook + ;; HACK Can't use cude-mode-local-vars-hook because cuda-mode + ;; isn't a proper major mode (just a plain function + ;; masquarading as one, so your standard mode hooks won't fire + ;; from switching to cuda-mode). + cuda-mode-hook) :append #'lsp!) (map! :after ccls From 4d072ce888577b023774460f6036abefcd0a1fa6 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 2 Dec 2023 13:57:53 -0500 Subject: [PATCH 275/523] release(modules): 23.12.0-dev This version bumps comes 3 months due to a short hiatus from moving back from Denmark to Toronto and all the ensuing catch-up. Ref: 2b39e4136850 --- lisp/doom.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/doom.el b/lisp/doom.el index 464803b03..988a0d795 100644 --- a/lisp/doom.el +++ b/lisp/doom.el @@ -168,7 +168,7 @@ "Current version of Doom Emacs core.") ;; DEPRECATED: Remove these when the modules are moved out of core. -(defconst doom-modules-version "23.09.0-pre" +(defconst doom-modules-version "23.12.0-pre" "Current version of Doom Emacs.") (defvar doom-init-time nil From abd29569a6b78515599c2133fcb06da3e06bee14 Mon Sep 17 00:00:00 2001 From: Yuriy Glukhov Date: Wed, 6 Dec 2023 18:40:42 +0100 Subject: [PATCH 276/523] bump: :lang nim nim-lang/nim-mode@744e076f0bea -> nim-lang/nim-mode@1338e5b0d5e1 --- modules/lang/nim/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/lang/nim/packages.el b/modules/lang/nim/packages.el index b085dcde7..30993cbcc 100644 --- a/modules/lang/nim/packages.el +++ b/modules/lang/nim/packages.el @@ -3,7 +3,7 @@ ;;; requires nim nimsuggest nimble -(package! nim-mode :pin "744e076f0bea1c5ddc49f92397d9aa98ffa7eff8") +(package! nim-mode :pin "1338e5b0d5e111ad932efb77d3cad680cc3b86c9") (when (and (modulep! :checkers syntax) (not (modulep! :checkers syntax +flymake))) From f6851d56ef6baa5e7de8a1b2adea8c7a80f8f0fe Mon Sep 17 00:00:00 2001 From: Ocean Shen <30361859+OceanS2000@users.noreply.github.com> Date: Fri, 8 Dec 2023 00:09:06 +0800 Subject: [PATCH 277/523] fix(org): correct face for doom-user links `org-link-set-parameters` accepts `:face` for a function returning a face or a symbol naming a face. Use a lambda returning `org-priority` to avoid it being called directly as a function. --- modules/lang/org/config.el | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/lang/org/config.el b/modules/lang/org/config.el index 52dec99e7..9f614017b 100644 --- a/modules/lang/org/config.el +++ b/modules/lang/org/config.el @@ -614,7 +614,9 @@ relative to `org-directory', unless it is an absolute path." (format "https://github.com/%s" (string-remove-prefix "@" (+org-link-read-desc-at-point link))))) - :face 'org-priority) + :face (lambda (_) + ;; Avoid confusion with function `org-priority' + 'org-priority)) (org-link-set-parameters "doom-changelog" :follow (lambda (link) From 03d692f129633e3bf0bd100d91b3ebf3f77db6d1 Mon Sep 17 00:00:00 2001 From: Kalle Lindqvist Date: Fri, 8 Dec 2023 12:13:10 +0100 Subject: [PATCH 278/523] fix(vertico): embark open in new workspace action --- modules/completion/vertico/autoload/workspaces.el | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/completion/vertico/autoload/workspaces.el b/modules/completion/vertico/autoload/workspaces.el index fcf63506d..01610da8c 100644 --- a/modules/completion/vertico/autoload/workspaces.el +++ b/modules/completion/vertico/autoload/workspaces.el @@ -86,8 +86,8 @@ buffer will be opened in the current workspace instead." (funcall consult--buffer-display (car buffer))))))) ;;;###autoload -(defun +vertico/embark-open-in-new-workspace (x) - "Open X (a file) in a new workspace." - (interactive) +(defun +vertico/embark-open-in-new-workspace (file) + "Open file in a new workspace." + (interactive "GFile:") (+workspace/new) - (find-file x)) + (find-file file)) From 19482ee5823b426969574a4cc45302b9257efd04 Mon Sep 17 00:00:00 2001 From: Vu Quoc Huy <5112602+vqhuy@users.noreply.github.com> Date: Wed, 24 Jan 2024 18:06:35 +0100 Subject: [PATCH 279/523] feat(latex): allow fill-paragraph in description Ref: #1849 --- modules/lang/latex/config.el | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/modules/lang/latex/config.el b/modules/lang/latex/config.el index ed8e59fd5..c24273487 100644 --- a/modules/lang/latex/config.el +++ b/modules/lang/latex/config.el @@ -182,19 +182,21 @@ Math faces should stay fixed by the mixed-pitch blacklist, this is mostly for (dolist (env '("itemize" "enumerate" "description")) (add-to-list 'LaTeX-indent-environment-list `(,env +latex-indent-item-fn))) - ;; Fix #1849: allow fill-paragraph in itemize/enumerate. - (defadvice! +latex--re-indent-itemize-and-enumerate-a (fn &rest args) + ;; Fix #1849: allow fill-paragraph in itemize/enumerate/description. + (defadvice! +latex--re-indent-itemize-and-enumerate-and-description-a (fn &rest args) :around #'LaTeX-fill-region-as-para-do (let ((LaTeX-indent-environment-list (append LaTeX-indent-environment-list - '(("itemize" +latex-indent-item-fn) - ("enumerate" +latex-indent-item-fn))))) + '(("itemize" +latex-indent-item-fn) + ("enumerate" +latex-indent-item-fn) + ("description" +latex-indent-item-fn))))) (apply fn args))) - (defadvice! +latex--dont-indent-itemize-and-enumerate-a (fn &rest args) + (defadvice! +latex--dont-indent-itemize-and-enumerate-and-description-a (fn &rest args) :around #'LaTeX-fill-region-as-paragraph (let ((LaTeX-indent-environment-list LaTeX-indent-environment-list)) (delq! "itemize" LaTeX-indent-environment-list 'assoc) (delq! "enumerate" LaTeX-indent-environment-list 'assoc) + (delq! "description" LaTeX-indent-environment-list 'assoc) (apply fn args)))) From 1ee429406bc24055d18ab0dfaee5f29b8fbc301d Mon Sep 17 00:00:00 2001 From: Tim Ruffing Date: Tue, 9 Jan 2024 23:14:40 +0100 Subject: [PATCH 280/523] fix(org): restart org-mode before indirect buffer Fix: #5714 --- modules/lang/org/config.el | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/modules/lang/org/config.el b/modules/lang/org/config.el index 9f614017b..6d162f428 100644 --- a/modules/lang/org/config.el +++ b/modules/lang/org/config.el @@ -852,6 +852,17 @@ can grow up to be fully-fledged org-mode buffers." (add-hook 'doom-switch-buffer-hook #'+org--restart-mode-h nil 'local)))))) + (defadvice! +org--restart-mode-before-indirect-buffer-a (base-buffer &rest _) + "Restart `org-mode' in buffers in which the mode has been deferred (see +`+org-defer-mode-in-agenda-buffers-h') before they become the base buffer for an +indirect buffer. This ensures that the buffer is fully functional not only when +the *user* visits it, but also when some code interacts with it via an indirect +buffer as done, e.g., by `org-capture'." + :before #'make-indirect-buffer + (with-current-buffer base-buffer + (when (memq #'+org--restart-mode-h doom-switch-buffer-hook) + (+org--restart-mode-h)))) + (defvar recentf-exclude) (defadvice! +org--optimize-backgrounded-agenda-buffers-a (fn file) "Prevent temporarily opened agenda buffers from polluting recentf." From 2b54b5732c8b01c70a543db970b32b9a91602deb Mon Sep 17 00:00:00 2001 From: Tim Ruffing Date: Thu, 21 Dec 2023 17:59:51 +0100 Subject: [PATCH 281/523] docs(lib): improve docs of doom-file-read/-write --- lisp/lib/files.el | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lisp/lib/files.el b/lisp/lib/files.el index 5e5bfc5c1..2d94f66a6 100644 --- a/lisp/lib/files.el +++ b/lisp/lib/files.el @@ -245,7 +245,8 @@ special values: 'read* -- read all forms in FILE and return it as a list of S-exps. '(read . N) -- read the first N (an integer) S-exps in FILE. -CODING dictates the encoding of the buffer. This defaults to `utf-8'. +CODING dictates the encoding of the buffer. This defaults to `utf-8'. If set to +nil, `binary' is used. If NOERROR is non-nil, don't throw an error if FILE doesn't exist. This will still throw an error if FILE is unreadable, however. @@ -305,7 +306,7 @@ MODE dictates the permissions of the file. If FILE already exists, its permissions will be changed. CODING dictates the encoding to read/write with (see `coding-system-for-write'). -If set to nil, `binary' is used. +This defaults to `utf-8'. If set to nil, `binary' is used. APPEND dictates where CONTENTS will be written. If neither is set, the file will be overwritten. If both are, the contents will be written to both From efe8d476bcca6c0ef64ee0538c32b1a3f4733c25 Mon Sep 17 00:00:00 2001 From: Tim Ruffing Date: Thu, 21 Dec 2023 18:03:18 +0100 Subject: [PATCH 282/523] fix(lib): use unibyte in binary temp buffers --- lisp/lib/files.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/lib/files.el b/lisp/lib/files.el index 2d94f66a6..906d9504f 100644 --- a/lisp/lib/files.el +++ b/lisp/lib/files.el @@ -220,7 +220,7 @@ single file or nested compound statement of `and' and `or' statements." (let* ((buffer-file-name (doom-path ,file)) (coding-system-for-read (or ,coding 'binary)) (coding-system-for-write (or coding-system-for-write coding-system-for-read 'binary))) - (unless (eq coding-system-for-read 'binary) + (when (eq coding-system-for-read 'binary) (set-buffer-multibyte nil) (setq-local buffer-file-coding-system 'binary)) ,@body)) From fcf63d615a1cb3837e051f24d76fe2630bf714fd Mon Sep 17 00:00:00 2001 From: Tim Ruffing Date: Thu, 21 Dec 2023 18:03:55 +0100 Subject: [PATCH 283/523] tweak(lib): write elisp in escaped form to files --- lisp/lib/files.el | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lisp/lib/files.el b/lisp/lib/files.el index 906d9504f..d850596be 100644 --- a/lisp/lib/files.el +++ b/lisp/lib/files.el @@ -326,7 +326,12 @@ ends. Set either APPEND or PREPEND to `noerror' to silently ignore read errors." ((let ((standard-output (current-buffer)) (print-quoted t) (print-level nil) - (print-length nil)) + (print-length nil) + ;; Escape special chars to avoid any shenanigans + (print-escape-newlines t) + (print-escape-control-characters t) + (print-escape-nonascii t) + (print-escape-multibyte t)) (funcall printfn datum)))))) (let (write-region-annotate-functions write-region-post-annotation-function) From dca4e4a8ed41e0a025d41500297d6fa662d8e22b Mon Sep 17 00:00:00 2001 From: Tim Ruffing Date: Sun, 24 Dec 2023 02:25:56 +0100 Subject: [PATCH 284/523] fix(popup): find internal major side windows Fix: #5485 --- modules/ui/popup/autoload/popup.el | 13 ++++++++++++- modules/ui/popup/test/test-popup.el | 16 +++++++++------- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/modules/ui/popup/autoload/popup.el b/modules/ui/popup/autoload/popup.el index 46bd5e2f0..27880b432 100644 --- a/modules/ui/popup/autoload/popup.el +++ b/modules/ui/popup/autoload/popup.el @@ -505,11 +505,22 @@ Accepts the same arguments as `display-buffer-in-side-window'. You must set ((not (numberp vslot)) (error "Invalid vslot %s specified" vslot))) - (let* ((major (get-window-with-predicate + (let* ((live (get-window-with-predicate (lambda (window) (and (eq (window-parameter window 'window-side) side) (eq (window-parameter window 'window-vslot) vslot))) nil)) + ;; As opposed to the `window-side' property, the `window-vslot' + ;; property is set only on a single live window and never on internal + ;; windows. Moreover, as opposed to `window-with-parameter' (as used + ;; by the original `display-buffer-in-side-window'), + ;; `get-window-with-predicate' only returns live windows anyway. In + ;; any case, we will have missed the major side window and got a + ;; child instead if the major side window happens to be an internal + ;; window. In that case, the major side window is the parent of the + ;; live window. + (major (and live + (if (window-next-sibling live) (window-parent live) live))) (reversed (window--sides-reverse-on-frame-p (selected-frame))) (windows (cond ((window-live-p major) diff --git a/modules/ui/popup/test/test-popup.el b/modules/ui/popup/test/test-popup.el index 945f5a937..569e3ebbc 100644 --- a/modules/ui/popup/test/test-popup.el +++ b/modules/ui/popup/test/test-popup.el @@ -44,14 +44,14 @@ :to-contain '(size . 5))))) (describe "popup rules" - :var (origin a b c d e f g) + :var (origin a b c d e f g h i) (before-all (setq origin (current-buffer))) (before-each - (dolist (name '(a b c d e f g)) + (dolist (name '(a b c d e f g h i)) (set name (get-buffer-create (symbol-name name))))) (after-each (let (kill-buffer-query-functions kill-buffer-hook) - (dolist (x (list a b c d e f g)) + (dolist (x (list a b c d e f g h i)) (ignore-errors (delete-window (get-buffer-window x))) (kill-buffer x)))) @@ -64,11 +64,13 @@ ("d" :slot 2 :vslot 2) ("e" :slot 1 :vslot 3) ("f" :slot 1 :vslot 3) - ("g")))) + ("g" :slot 2 :vslot 3) + ("h" :slot 2 :vslot 3) + ("i")))) (it "replaces popups with the same slots" - (mapc #'display-buffer (list e f)) - (expect (length (+popup-windows)) :to-be 1)) + (mapc #'display-buffer (list e f g h)) + (expect (length (+popup-windows)) :to-be 2)) (it "replaces popups among multiple that have the same slots" (let ((first (display-buffer a)) @@ -92,7 +94,7 @@ (expect (window-in-direction 'right first t) :to-equal second))) (it "obeys default :slot" - (let ((window (display-buffer g))) + (let ((window (display-buffer i))) (expect (window-parameter window 'window-slot) :to-be 1) (expect (window-parameter window 'window-vslot) :to-be 1)))) From 41289cfef6fcf785a0b789d0dd6c8fdeff9acb09 Mon Sep 17 00:00:00 2001 From: Colin Woodbury Date: Sun, 31 Dec 2023 22:57:21 +0900 Subject: [PATCH 285/523] fix(lib): doom/bumpify-diff: respect structure of given list The old check was a bug fix to work around noisy values that somehow made it into diff checks. The `package!` symbol is never actually present in the list of values yielded by the search in `read-package`, so this commit alters the lookup to respect what is actually present, thus guaranteeing that `destructuring-bind` succeeds and bump diffs are actually detected. --- lisp/lib/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/lib/packages.el b/lisp/lib/packages.el index 496091155..0b86a9085 100644 --- a/lisp/lib/packages.el +++ b/lisp/lib/packages.el @@ -239,7 +239,7 @@ Must be run from a magit diff buffer." (unless (= (length before) (length after)) (user-error "Uneven number of packages being bumped")) (dolist (p1 before) - (when (and (listp p1) (eq (car p1) 'package!)) + (when (and (listp p1) (plist-get (cdr p1) :package)) (cl-destructuring-bind (package &key plist _beg _end &allow-other-keys) p1 (let ((p2 (cdr (assq package after)))) (if (null p2) From 68d59f726d1d8b40cb0069b43edfff1fedbd37db Mon Sep 17 00:00:00 2001 From: Vitaly Slobodin Date: Wed, 24 Jan 2024 18:25:30 +0100 Subject: [PATCH 286/523] bump: :term eshell ambrevar/emacs-fish-completion@df42e1530829 -> LemonBreezes/emacs-fish-completion@d34d0b96fde6 The emacs-fish-completion package has changed owners and moved to https://github.com/Ambrevar/emacs-fish-completion. --- modules/term/eshell/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/term/eshell/packages.el b/modules/term/eshell/packages.el index 4bbff9fe5..fc1385f0b 100644 --- a/modules/term/eshell/packages.el +++ b/modules/term/eshell/packages.el @@ -9,5 +9,5 @@ (package! eshell-syntax-highlighting :pin "4ac27eec6595ba116a6151dfaf0b0e0440101e10") (unless IS-WINDOWS - (package! fish-completion :pin "df42e153082927536763bdf408184152a7c938c3") + (package! fish-completion :pin "d34d0b96fde63feedf13c4288183d8d4d4d748cf") (package! bash-completion :pin "f1daac0386c24cbe8a244a62c7588cc6847b07ae")) From 819f3f11ccb8f8185dbeb48afd8988a5f0ba6214 Mon Sep 17 00:00:00 2001 From: Ivan Necas Date: Wed, 3 Jan 2024 22:14:34 +0100 Subject: [PATCH 287/523] bump: :ui doom doomemacs/themes@4aee1f5a0e54 -> doomemacs/themes@ff26f26ea3d7 Improves Emacs 30 compatibility (see ref). Ref: https://github.com/doomemacs/themes/issues/809 --- modules/ui/doom/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ui/doom/packages.el b/modules/ui/doom/packages.el index edbc97da6..15cc260ba 100644 --- a/modules/ui/doom/packages.el +++ b/modules/ui/doom/packages.el @@ -1,5 +1,5 @@ ;; -*- no-byte-compile: t; -*- ;;; ui/doom/packages.el -(package! doom-themes :pin "4aee1f5a0e54552669f747aa7c25e6027e73d76d") +(package! doom-themes :pin "ff26f26ea3d761375f5fc4070438fbd0f3473d33") (package! solaire-mode :pin "8af65fbdc50b25ed3214da949b8a484527c7cc14") From c1516edd66b2cd108f07f1be9ef08db8d9dde2a8 Mon Sep 17 00:00:00 2001 From: Colin Woodbury Date: Sun, 31 Dec 2023 23:07:04 +0900 Subject: [PATCH 288/523] bump: :lang common-lisp joaotavora/sly@f34c22289a2b -> joaotavora/sly@ed17d2c2bd7a --- modules/lang/common-lisp/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/lang/common-lisp/packages.el b/modules/lang/common-lisp/packages.el index 47e185dd6..d6b13ff87 100644 --- a/modules/lang/common-lisp/packages.el +++ b/modules/lang/common-lisp/packages.el @@ -1,6 +1,6 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/common-lisp/packages.el -(when (package! sly :pin "f34c22289a2b3ab10e607f9f8822d62bb5c98cf5") +(when (package! sly :pin "ed17d2c2bd7aead0fbb09c3d22861c80a522a097") (package! sly-macrostep :pin "5113e4e926cd752b1d0bcc1508b3ebad5def5fad") (package! sly-repl-ansi-color :pin "b9cd52d1cf927bf7e08582d46ab0bcf1d4fb5048")) From 2853982447926f561d448ac5f1f15ce2bef836dd Mon Sep 17 00:00:00 2001 From: Colin Woodbury Date: Sun, 31 Dec 2023 23:44:29 +0900 Subject: [PATCH 289/523] feat(common-lisp): use `sly-asdf` This allows us to offload system loading and testing to a third-party library. --- .../lang/common-lisp/autoload/common-lisp.el | 45 +------------------ modules/lang/common-lisp/config.el | 9 +++- modules/lang/common-lisp/packages.el | 1 + 3 files changed, 10 insertions(+), 45 deletions(-) diff --git a/modules/lang/common-lisp/autoload/common-lisp.el b/modules/lang/common-lisp/autoload/common-lisp.el index 33cc28ef1..087ae51b2 100644 --- a/modules/lang/common-lisp/autoload/common-lisp.el +++ b/modules/lang/common-lisp/autoload/common-lisp.el @@ -18,50 +18,9 @@ (t (recurse (1+ attempt)))))) (recurse 1)))) -;;;###autoload -(defun +lisp/load-project-systems () - "Load all systems of the current Lisp project into Sly." - (interactive) - (thread-last (+lisp--project-asd-file) - (+lisp--systems-from-asd) - (mapcar (lambda (s) (format ":%s" s))) - (funcall (lambda (ss) (string-join ss " "))) - (format "(ql:quickload '(%s))") - (sly-interactive-eval))) - -(defun +lisp--project-asd-file () - "Yield an absolute file path to the current project's `.asd' file." - (let* ((proot (doom-project-root)) - (files (doom-files-in proot :depth 1 :match "[.]asd$"))) - (pcase files - ('() (error "No .asd file found in: %s" proot)) - (`(,asdf) asdf) - (_ (error "Too many .asd files found in : %s" proot))))) - -(defun +lisp--systems-from-asd (asdf) - "Given a path to an ASDF project definition, extract the names of -the systems defined therein." - (let ((file (doom-file-read asdf)) - (patt "defsystem \"\\([a-z-/]+\\)")) - (when (not (string-match patt file)) - (error "No systems defined in: %s" asdf)) - (thread-last (s-match-strings-all patt file) - (mapcar #'cl-second)))) - -;; TODO Get this to run in a comint buffer? -;;;###autoload -(defun +lisp/test-system () - "Run `asdf:test-system' on the selected system of the current project." - (interactive) - (thread-last (+lisp--project-asd-file) - (+lisp--systems-from-asd) - (completing-read "Test which Lisp system?") - (format "(asdf:test-system :%s)") - (sly-interactive-eval))) - ;;;###autoload (defun +lisp/reload-project () - "Restart the Sly session and reload the current project." + "Restart the Sly session and reload a chosen system." (interactive) (sly-restart-inferior-lisp) (cl-labels ((recurse (attempt) @@ -72,7 +31,7 @@ the systems defined therein." (error "Failed to reload Lisp project in 5 attempts.") (recurse (1+ attempt))))))) (recurse 1) - (+lisp/load-project-systems))) + (sly-asdf-load-system))) ;;;###autoload (defun +lisp/find-file-in-quicklisp () diff --git a/modules/lang/common-lisp/config.el b/modules/lang/common-lisp/config.el index 83a0a3030..3acb60bc5 100644 --- a/modules/lang/common-lisp/config.el +++ b/modules/lang/common-lisp/config.el @@ -141,7 +141,7 @@ :desc "Who sets" "S" #'sly-who-sets) (:prefix ("r" . "repl") :desc "Clear REPL" "c" #'sly-mrepl-clear-repl - :desc "Load Project" "l" #'+lisp/load-project-systems + :desc "Load System" "l" #'sly-asdf-load-system :desc "Quit connection" "q" #'sly-quit-lisp :desc "Restart connection" "r" #'sly-restart-inferior-lisp :desc "Reload Project" "R" #'+lisp/reload-project @@ -154,7 +154,7 @@ :desc "Replay stickers" "r" #'sly-stickers-replay :desc "Add/remove sticker" "s" #'sly-stickers-dwim) (:prefix ("t" . "test") - :desc "Test System" "s" #'+lisp/test-system) + :desc "Test System" "s" #'sly-asdf-test-system) (:prefix ("T" . "trace") :desc "Toggle" "t" #'sly-toggle-trace-fdefinition :desc "Toggle (fancy)" "T" #'sly-toggle-fancy-trace @@ -168,3 +168,8 @@ :defer t :init (add-to-list 'sly-contribs 'sly-repl-ansi-color)) + +(use-package! sly-asdf + :defer t + :init + (add-to-list 'sly-contribs 'sly-asdf 'append)) diff --git a/modules/lang/common-lisp/packages.el b/modules/lang/common-lisp/packages.el index d6b13ff87..0917fe0c4 100644 --- a/modules/lang/common-lisp/packages.el +++ b/modules/lang/common-lisp/packages.el @@ -2,5 +2,6 @@ ;;; lang/common-lisp/packages.el (when (package! sly :pin "ed17d2c2bd7aead0fbb09c3d22861c80a522a097") + (package! sly-asdf :pin "6f9d751469bb82530db1673c22e7437ca6c95f45") (package! sly-macrostep :pin "5113e4e926cd752b1d0bcc1508b3ebad5def5fad") (package! sly-repl-ansi-color :pin "b9cd52d1cf927bf7e08582d46ab0bcf1d4fb5048")) From 56b6169ae739fb67a33746cc5863030b3e4fc6d3 Mon Sep 17 00:00:00 2001 From: John Goff <33040621+John-Goff@users.noreply.github.com> Date: Wed, 24 Jan 2024 12:31:20 -0500 Subject: [PATCH 290/523] fix(default): read correct manpath on MacOS Versions of `man` shipped with the latest MacOS do not support the `--path` argument, which causes `M-x woman` in Emacs to break. However the `manpath` command gives the same information and exists on MacOS and Linux, at least the systems that I tested. Check for its existence, and if there is no `manpath` command then fall back to the logic that existed before. Fix: #7021 --- modules/config/default/config.el | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/modules/config/default/config.el b/modules/config/default/config.el index f4a301488..14bed119c 100644 --- a/modules/config/default/config.el +++ b/modules/config/default/config.el @@ -59,11 +59,16 @@ (after! woman ;; The woman-manpath default value does not necessarily match man. If we have ;; man available but aren't using it for performance reasons, we can extract - ;; it's manpath. - (when (executable-find "man") - (setq woman-manpath - (split-string (cdr (doom-call-process "man" "--path")) - path-separator t)))) + ;; its manpath. + (let ((manpath (cond + ((executable-find "manpath") + (split-string (cdr (doom-call-process "manpath")) + path-separator t)) + ((executable-find "man") + (split-string (cdr (doom-call-process "man" "--path")) + path-separator t))))) + (when manpath + (setq woman-manpath manpath)))) (use-package! drag-stuff From 8352562b2cff2258075f2349e0695b86fd4e6359 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 5 Dec 2023 17:09:36 -0500 Subject: [PATCH 291/523] fix(lib): appease byte-compiler-sama Silences some byte-compiler warnings about: - 'nreverse on constant list' on add-hook! calls. - inhibit-changing-match-data deprecation warning. - unescaped quotes in docstring in some doom-*-dir variables. - Variable non-essential should be quoted (though it isn't referring to a variable). - CONTEXT -> CONTEXTS to match argument name. --- lisp/doom-lib.el | 2 +- lisp/doom.el | 24 ++++++++++++------------ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/lisp/doom-lib.el b/lisp/doom-lib.el index 9821e64f2..561eb2070 100644 --- a/lisp/doom-lib.el +++ b/lisp/doom-lib.el @@ -801,7 +801,7 @@ This macro accepts, in order: func-forms))) `(progn ,@defn-forms - (dolist (hook (nreverse ',hook-forms)) + (dolist (hook ',(nreverse hook-forms)) (dolist (func (list ,@func-forms)) ,(if remove-p `(remove-hook hook func ,local-p) diff --git a/lisp/doom.el b/lisp/doom.el index 988a0d795..41f39c7c2 100644 --- a/lisp/doom.el +++ b/lisp/doom.el @@ -116,9 +116,9 @@ (push 'dynamic-modules features)) (if (fboundp #'json-parse-string) (push 'jansson features)) -(let ((inhibit-changing-match-data t)) - (if (string-match "HARFBUZZ" system-configuration-features) ; no alternative - (push 'harfbuzz features))) +(if (string-match-p "HARFBUZZ" system-configuration-features) ; no alternative + (push 'harfbuzz features)) + ;; The `native-compile' feature exists whether or not it is functional (e.g. ;; libgcc is available or not). This seems silly, so pretend it doesn't exist if ;; it isn't functional. @@ -237,7 +237,7 @@ These files should not be shared across systems. By default, it is used by Data files contain shared and long-lived data that Doom, Emacs, and their packages require to function correctly or at all. Deleting them by hand will -cause breakage, and require user intervention (e.g. a 'doom sync' or 'doom env') +cause breakage, and require user intervention (e.g. a `doom sync` or `doom env`) to restore. Use this for: server binaries, package source, pulled module libraries, @@ -254,10 +254,10 @@ For profile-local data files, use `doom-profile-data-dir' instead.") (file-name-concat doom-local-dir "cache/")) "Where Doom stores its global cache files. -Cache files represent non-essential data that shouldn't be problematic when +Cache files represent unessential data that shouldn't be problematic when deleted (besides, perhaps, a one-time performance hit), lack portability (and so shouldn't be copied to other systems/configs), and are regenerated when needed, -without user input (e.g. a 'doom sync'). +without user input (e.g. a `doom sync`). Some examples: images/data caches, elisp bytecode, natively compiled elisp, session files, ELPA archives, authinfo files, org-persist, etc. @@ -273,11 +273,11 @@ For profile-local cache files, use `doom-profile-cache-dir' instead.") (file-name-concat doom-local-dir "state/")) "Where Doom stores its global state files. -State files contain non-essential, unportable, but persistent data which, if -lost won't cause breakage, but may be inconvenient as they cannot be -automatically regenerated or restored. For example, a recently-opened file list -is not essential, but losing it means losing this record, and restoring it -requires revisiting all those files. +State files contain unessential, unportable, but persistent data which, if lost +won't cause breakage, but may be inconvenient as they cannot be automatically +regenerated or restored. For example, a recently-opened file list is not +essential, but losing it means losing this record, and restoring it requires +revisiting all those files. Use this for: history, logs, user-saved data, autosaves/backup files, known projects, recent files, bookmarks. @@ -529,7 +529,7 @@ wasn't active when this was called." (setq doom-context (delq context doom-context)))) (defmacro doom-context-with (contexts &rest body) - "Evaluate BODY with CONTEXT added to `doom-context'." + "Evaluate BODY with CONTEXTS added to `doom-context'." (declare (indent 1)) `(let ((doom-context doom-context)) (dolist (context (ensure-list ,contexts)) From be900213300254d384fd55a77a782a7cfe8f346c Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 5 Dec 2023 17:12:40 -0500 Subject: [PATCH 292/523] fix(cli): ensure local file/dir permissions May catch edge cases where profile directories are created with over-restrictive permissions (mentioned in #5832). Ref: #5832 --- lisp/doom-cli.el | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/lisp/doom-cli.el b/lisp/doom-cli.el index 64072373e..674e07e94 100644 --- a/lisp/doom-cli.el +++ b/lisp/doom-cli.el @@ -1050,9 +1050,9 @@ considered as well." "\n"))) (print! (warn "Wrote extended straight log to %s") (path (let ((coding-system-for-write 'utf-8-auto)) - (with-temp-file error-file - (insert-buffer-substring (straight--process-buffer))) - (set-file-modes error-file #o600) + (with-file-modes #o600 + (with-temp-file error-file + (insert-buffer-substring (straight--process-buffer)))) error-file)))) ((eq type 'error) (let* ((generic? (eq (car data) 'error)) @@ -1123,11 +1123,12 @@ See `doom-cli-log-file-format' for details." (let* ((buffer (doom-cli-context-stderr context)) (file (doom-cli--output-file "log" context))) (when (> (buffer-size buffer) 0) - (make-directory (file-name-directory file) t) - (with-temp-file file - (insert-buffer-substring buffer) - (ansi-color-filter-region (point-min) (point-max))) - (set-file-modes file #o600))))) + (with-file-modes #o700 + (make-directory (file-name-directory file) t)) + (with-file-modes #o600 + (with-temp-file file + (insert-buffer-substring buffer) + (ansi-color-filter-region (point-min) (point-max)))))))) (defun doom-cli--output-benchmark-h (context) "Write this session's benchmark to stdout or stderr, depending. @@ -1351,10 +1352,11 @@ ARGS are options passed to less. If DOOMPAGER is set, ARGS are ignored." ((let ((tmpfile (doom-cli--output-file 'output context)) (coding-system-for-write 'utf-8-auto)) - (make-directory (file-name-directory tmpfile) t) - (with-temp-file tmpfile - (insert-buffer-substring (doom-cli-context-stdout context))) - (set-file-modes tmpfile #o600) + (with-file-modes #o700 + (make-directory (file-name-directory tmpfile) t)) + (with-file-modes #o600 + (with-temp-file tmpfile + (insert-buffer-substring (doom-cli-context-stdout context)))) (doom-cli--restart (format "%s <%s; rm -f%s %s" (or pager From f1e77e66924d0f32878941e3fdeed8494873d5a1 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 5 Dec 2023 17:14:27 -0500 Subject: [PATCH 293/523] feat(lib): doom-file-write: separate :mode for directories doom-file-write's :mode parameter now accepts a cons cell, whose CDR will determine the file mode for directories that get implicitly created by the function. --- lisp/lib/files.el | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/lisp/lib/files.el b/lisp/lib/files.el index d850596be..1feb20a26 100644 --- a/lisp/lib/files.el +++ b/lisp/lib/files.el @@ -302,8 +302,10 @@ If CONTENTS is list of forms. Any literal strings in the list are inserted verbatim, as text followed by a newline, with `insert'. Sexps are inserted with `prin1'. BY is the function to use to emit -MODE dictates the permissions of the file. If FILE already exists, its -permissions will be changed. +MODE dictates the permissions of created file and directories. MODE is either an +integer or a cons cell whose car is the mode for files and cdr the mode for +directories. If FILE already exists, its permissions will be changed. The +permissions of existing directories will never be changed. CODING dictates the encoding to read/write with (see `coding-system-for-write'). This defaults to `utf-8'. If set to nil, `binary' is used. @@ -311,9 +313,10 @@ This defaults to `utf-8'. If set to nil, `binary' is used. APPEND dictates where CONTENTS will be written. If neither is set, the file will be overwritten. If both are, the contents will be written to both ends. Set either APPEND or PREPEND to `noerror' to silently ignore read errors." - (doom--with-prepared-file-buffer file coding mode - (let ((contents (ensure-list contents)) - datum) + (let ((mode (ensure-list mode)) + (contents (ensure-list contents)) + datum) + (doom--with-prepared-file-buffer file coding (car mode) (while (setq datum (pop contents)) (cond ((stringp datum) (funcall @@ -332,14 +335,15 @@ ends. Set either APPEND or PREPEND to `noerror' to silently ignore read errors." (print-escape-control-characters t) (print-escape-nonascii t) (print-escape-multibyte t)) - (funcall printfn datum)))))) - (let (write-region-annotate-functions - write-region-post-annotation-function) - (when mkdir - (make-directory (file-name-directory buffer-file-name) - (eq mkdir 'parents))) - (write-region nil nil buffer-file-name append :silent)) - buffer-file-name)) + (funcall printfn datum))))) + (let (write-region-annotate-functions + write-region-post-annotation-function) + (when mkdir + (with-file-modes (or (cdr mode) (default-file-modes)) + (make-directory (file-name-directory buffer-file-name) + (eq mkdir 'parents)))) + (write-region nil nil buffer-file-name append :silent)) + buffer-file-name))) ;;;###autoload (defmacro with-file-contents! (file &rest body) From a5ffbd85502634a8b291216b589cb936e539bf85 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 5 Dec 2023 17:20:34 -0500 Subject: [PATCH 294/523] fix: ensure top-level file-name-handler-alist is affected Ensures that lexical contexts are never taken into account, in the case where Doom's core is loaded in an isolated environment (e.g. the sandbox). Also improves my startup time by 10%? I'll take it. --- lisp/doom.el | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/lisp/doom.el b/lisp/doom.el index 41f39c7c2..ab1096b26 100644 --- a/lisp/doom.el +++ b/lisp/doom.el @@ -331,19 +331,20 @@ users).") ;; `file-remote-p'). You get a noteable boost to startup time by unsetting ;; or simplifying its value. (let ((old-value (default-toplevel-value 'file-name-handler-alist))) - (setq file-name-handler-alist - ;; HACK: If the bundled elisp for this Emacs install isn't - ;; byte-compiled (but is compressed), then leave the gzip file - ;; handler there so Emacs won't forget how to read read them. - ;; - ;; calc-loaddefs.el is our heuristic for this because it is built-in - ;; to all supported versions of Emacs, and calc.el explicitly loads - ;; it uncompiled. This ensures that the only other, possible - ;; fallback would be calc-loaddefs.el.gz. - (if (eval-when-compile - (locate-file-internal "calc-loaddefs.el" load-path)) - nil - (list (rassq 'jka-compr-handler old-value)))) + (set-default-toplevel-value + 'file-name-handler-alist + ;; HACK: If the bundled elisp for this Emacs install isn't byte-compiled + ;; (but is compressed), then leave the gzip file handler there so Emacs + ;; won't forget how to read read them. + ;; + ;; calc-loaddefs.el is our heuristic for this because it is built-in to + ;; all supported versions of Emacs, and calc.el explicitly loads it + ;; uncompiled. This ensures that the only other, possible fallback would + ;; be calc-loaddefs.el.gz. + (if (eval-when-compile + (locate-file-internal "calc-loaddefs.el" load-path)) + nil + (list (rassq 'jka-compr-handler old-value)))) ;; Make sure the new value survives any current let-binding. (set-default-toplevel-value 'file-name-handler-alist file-name-handler-alist) ;; Remember it so it can be reset where needed. @@ -352,10 +353,11 @@ users).") ;; needed for handling encrypted or compressed files, among other things. (add-hook! 'emacs-startup-hook :depth 101 (defun doom--reset-file-handler-alist-h () - (setq file-name-handler-alist - ;; Merge instead of overwrite because there may have been changes to - ;; `file-name-handler-alist' since startup we want to preserve. - (delete-dups (append file-name-handler-alist old-value)))))) + (set-default-toplevel-value + 'file-name-handler-alist + ;; Merge instead of overwrite because there may have been changes to + ;; `file-name-handler-alist' since startup we want to preserve. + (delete-dups (append file-name-handler-alist old-value)))))) (unless noninteractive ;; PERF: Resizing the Emacs frame (to accommodate fonts that are smaller or From fcd95a09d02b5dc3655c011d76547de454f6c420 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 5 Dec 2023 17:39:33 -0500 Subject: [PATCH 295/523] nit: minor comment revision, reformatting, & internal refactor --- lisp/doom.el | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/lisp/doom.el b/lisp/doom.el index ab1096b26..a0dabd4e4 100644 --- a/lisp/doom.el +++ b/lisp/doom.el @@ -411,23 +411,23 @@ users).") (define-advice startup--load-user-init-file (:before (&rest _) undo-silence) (advice-remove #'load-file #'load-file@silence)) - ;; PERF: `load-suffixes' and `load-file-rep-suffixes' are consulted on each - ;; `require' and `load'. Doom won't load any dmodules this early, so omit - ;; .so for a small startup boost. This is later restored in doom-start. + ;; PERF: `load-suffixes' and `load-file-rep-suffixes' are consulted on + ;; each `require' and `load'. Doom won't load any modules this early, so + ;; omit .so for a tiny startup boost. Is later restored in doom-start. (put 'load-suffixes 'initial-value (default-toplevel-value 'load-suffixes)) (put 'load-file-rep-suffixes 'initial-value (default-toplevel-value 'load-file-rep-suffixes)) (set-default-toplevel-value 'load-suffixes '(".elc" ".el")) (set-default-toplevel-value 'load-file-rep-suffixes '("")) - ;; COMPAT: Undo any problematic startup optimizations; from this point, I make - ;; no assumptions about what might be loaded in userland. + ;; COMPAT: Undo any problematic startup optimizations; from this point, I + ;; make no assumptions about what might be loaded in userland. (add-hook! 'doom-before-init-hook (defun doom--reset-load-suffixes-h () (setq load-suffixes (get 'load-suffixes 'initial-value) load-file-rep-suffixes (get 'load-file-rep-suffixes 'initial-value)))) - ;; PERF: Doom uses `defcustom' to indicate variables that users are expected - ;; to reconfigure. Trouble is it fires off initializers meant to - ;; accommodate any user attempts to configure them before they were + ;; PERF: Doom uses `defcustom' to indicate variables that users are + ;; expected to reconfigure. Trouble is it fires off initializers meant + ;; to accommodate any user attempts to configure them before they were ;; defined. This is unnecessary before $DOOMDIR/init.el is loaded, so I ;; disable them until it is. (setq custom-dont-initialize t) @@ -436,8 +436,8 @@ users).") (setq custom-dont-initialize nil))) ;; PERF: The mode-line procs a couple dozen times during startup. This is - ;; normally quite fast, but disabling the default mode-line and reducing the - ;; update delay timer seems to stave off ~30-50ms. + ;; normally quite fast, but disabling the default mode-line and reducing + ;; the update delay timer seems to stave off ~30-50ms. (put 'mode-line-format 'initial-value (default-toplevel-value 'mode-line-format)) (setq-default mode-line-format nil) (dolist (buf (buffer-list)) @@ -446,8 +446,8 @@ users).") ;; produce ugly flashes of unstyled Emacs. (setq-default inhibit-redisplay t inhibit-message t) - ;; COMPAT: Then reset it with advice, because `startup--load-user-init-file' - ;; will never be interrupted by errors. And if these settings are left + ;; COMPAT: Then reset with advice, because `startup--load-user-init-file' + ;; will never be interrupted by errors. And if these settings are left ;; set, Emacs could appear frozen or garbled. (defun doom--reset-inhibited-vars-h () (setq-default inhibit-redisplay nil @@ -461,8 +461,8 @@ users).") (unless (default-toplevel-value 'mode-line-format) (setq-default mode-line-format (get 'mode-line-format 'initial-value)))) - ;; PERF: Doom disables the UI elements by default, so that there's less for - ;; the frame to initialize. However, the toolbar is still populated + ;; PERF: Doom disables the UI elements by default, so that there's less + ;; for the frame to initialize. However, the toolbar is still populated ;; regardless, so I lazy load it until tool-bar-mode is actually used. (advice-add #'tool-bar-setup :override #'ignore) (define-advice startup--load-user-init-file (:before (&rest _) defer-tool-bar-setup) @@ -499,7 +499,7 @@ All valid contexts: (put 'doom-context 'valid-values '(cli compile eval init modules packages reload doctor sandbox)) (put 'doom-context 'risky-local-variable t) -(defun doom-context--check (context) +(defun doom-context--assert (context) (let ((valid (get 'doom-context 'valid-values))) (unless (memq context valid) (signal 'doom-context-error @@ -514,7 +514,7 @@ All valid contexts: Return non-nil if successful. Throws an error if CONTEXT is invalid." (unless (memq context doom-context) - (doom-context--check context) + (doom-context--assert context) (doom-log ":context: +%s %s" context doom-context) (push context doom-context))) From 6edb9dfc773028a9de4015aeae8c75418c264d20 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 5 Dec 2023 17:41:59 -0500 Subject: [PATCH 296/523] tweak(indent-guides): default to bitmap in GUI --- modules/ui/indent-guides/config.el | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/ui/indent-guides/config.el b/modules/ui/indent-guides/config.el index 662cb5140..f3524f9cd 100644 --- a/modules/ui/indent-guides/config.el +++ b/modules/ui/indent-guides/config.el @@ -2,7 +2,9 @@ (use-package! highlight-indent-guides :hook ((prog-mode text-mode conf-mode) . highlight-indent-guides-mode) - :init (setq highlight-indent-guides-method 'character) + :init + (setq highlight-indent-guides-method (if (display-graphic-p) 'bitmap 'character) + highlight-indent-guides-bitmap-function #'highlight-indent-guides--bitmap-line) :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 From ae451ff754b975d27de05a114095c815c644d295 Mon Sep 17 00:00:00 2001 From: 45mm <45mm@no.mail> Date: Thu, 18 Jan 2024 16:18:44 +0530 Subject: [PATCH 297/523] docs(vertico): mention `:args` option in docstring --- modules/completion/vertico/autoload/vertico.el | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/completion/vertico/autoload/vertico.el b/modules/completion/vertico/autoload/vertico.el index 0bfd9e00f..0199d431d 100644 --- a/modules/completion/vertico/autoload/vertico.el +++ b/modules/completion/vertico/autoload/vertico.el @@ -13,7 +13,9 @@ :in PATH Sets what directory to base the search out of. Defaults to the current project's root. :recursive BOOL - Whether or not to search files recursively from the base directory." + Whether or not to search files recursively from the base directory. +:args LIST + Arguments to be appended to `consult-ripgrep-args'." (declare (indent defun)) (unless (executable-find "rg") (user-error "Couldn't find ripgrep in your PATH")) From acb5af177b0a57ca4b05d00d5055d109198e2984 Mon Sep 17 00:00:00 2001 From: 45mm <45mm@no.mail> Date: Thu, 18 Jan 2024 16:20:15 +0530 Subject: [PATCH 298/523] fix(vertico): don't shell-quote consult-ripgrep-args We were using `shell-quote-argument`, which is meant for passing file names, strings and so on, not command-line arguments. For example, `(shell-quote-argument "--foo=bar")` yields "--foo\\=bar", which is obviiously invalid unless we're trying to pass an option named '--foo\'. At any rate, there is no quoting/escaping for shells in the default value of `consult-ripgrep-args`, so it doesn't look like this is something we need to do. --- modules/completion/vertico/autoload/vertico.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/completion/vertico/autoload/vertico.el b/modules/completion/vertico/autoload/vertico.el index 0199d431d..0b4219eaf 100644 --- a/modules/completion/vertico/autoload/vertico.el +++ b/modules/completion/vertico/autoload/vertico.el @@ -31,7 +31,7 @@ "--path-separator / --smart-case --no-heading " "--with-filename --line-number --search-zip " "--hidden -g !.git -g !.svn -g !.hg " - (mapconcat #'shell-quote-argument args " "))) + (mapconcat #'identity args " "))) (prompt (if (stringp prompt) (string-trim prompt) "Search")) (query (or query (when (doom-region-active-p) From 6275ed7e8f67d4633ee83c80336603ee48fff772 Mon Sep 17 00:00:00 2001 From: George Thomas Date: Sat, 27 Jan 2024 09:14:35 +0100 Subject: [PATCH 299/523] bump: :ui modeline seagle0128/doom-modeline@93f240f7a0bf -> seagle0128/doom-modeline@bf880ae56f3f --- modules/ui/modeline/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ui/modeline/packages.el b/modules/ui/modeline/packages.el index 274df912a..c95d740be 100644 --- a/modules/ui/modeline/packages.el +++ b/modules/ui/modeline/packages.el @@ -2,7 +2,7 @@ ;;; ui/modeline/packages.el (unless (modulep! +light) - (package! doom-modeline :pin "93f240f7a0bf35511cfc0a8dd75786744b4bcf77")) + (package! doom-modeline :pin "bf880ae56f3f6aab7bd334de9bd9b455c63a24c0")) (package! anzu :pin "5abb37455ea44fa401d5f4c1bdc58adb2448db67") (when (modulep! :editor evil) (package! evil-anzu :pin "d1e98ee6976437164627542909a25c6946497899")) From f9137b40e73ab9054d5500da2759d45e48dc4aa9 Mon Sep 17 00:00:00 2001 From: ncihnegn Date: Sat, 27 Jan 2024 00:16:06 -0800 Subject: [PATCH 300/523] docs(idris): add doctor.el --- modules/lang/idris/doctor.el | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 modules/lang/idris/doctor.el diff --git a/modules/lang/idris/doctor.el b/modules/lang/idris/doctor.el new file mode 100644 index 000000000..882cebbc1 --- /dev/null +++ b/modules/lang/idris/doctor.el @@ -0,0 +1,5 @@ +;;; lang/idris/doctor.el -*- lexical-binding: t; -*- + +(when (require 'idris-mode nil t) + (unless (executable-find idris-interpreter-path) + (warn! "Cannot find the idris interpreter. Most features will not work."))) From d87c181aea740a5a628d5689c4e5d034ec640656 Mon Sep 17 00:00:00 2001 From: Oscar Marshall Date: Sat, 27 Jan 2024 00:17:57 -0800 Subject: [PATCH 301/523] fix(upload): ssh-deploy-on-explicit-save = 1 #7513 changed the expected value of `ssh-deploy-on-explicit-save` to be #an integer, but the default value was still `t`. This commit changes it #to be `1`. Amend: #7513 --- modules/tools/upload/config.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/tools/upload/config.el b/modules/tools/upload/config.el index 25e2829be..6592e4331 100644 --- a/modules/tools/upload/config.el +++ b/modules/tools/upload/config.el @@ -7,7 +7,7 @@ ;; Example: ;; ((nil . ((ssh-deploy-root-local . "/local/path/to/project") ;; (ssh-deploy-root-remote . "/ssh:user@server:/remote/project/") -;; (ssh-deploy-on-explicit-save . t)))) +;; (ssh-deploy-on-explicit-save . 1)))) ;; ;; Note: `ssh-deploy-root-local' is optional, and will resort to ;; `doom-project-root' if unspecified. @@ -20,7 +20,7 @@ ssh-deploy-remote-changes-handler) :init (setq ssh-deploy-revision-folder (concat doom-cache-dir "ssh-revisions/") - ssh-deploy-on-explicit-save t + ssh-deploy-on-explicit-save 1 ssh-deploy-automatically-detect-remote-changes nil) ;; Make these safe as file-local variables From 9bfc0ee0293913d9ede8b1b1eee454cdaa306634 Mon Sep 17 00:00:00 2001 From: "Itai Y. Efrat" Date: Sun, 24 Sep 2023 19:25:32 +0300 Subject: [PATCH 302/523] bump: :completion vertico karthink/consult-dir@ed8f0874d26f -> karthink/consult-dir@3f5f4b71ebe8 minad/consult@fe49dedd7180 -> minad/consult@43380042daaa minad/marginalia@866e50aee4f0 -> minad/marginalia@f1734375a5d8 minad/vertico@a28370d07f35 -> minad/vertico@03bfb71a2b5d oantolin/embark@9a44418c349e -> oantolin/embark@7758a1ac64d7 oantolin/orderless@e6784026717a -> oantolin/orderless@d6b402a89e23 tumashu/vertico-posframe@7da6d648ff42 -> tumashu/vertico-posframe@db9fbc95bb83 --- modules/completion/vertico/packages.el | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/modules/completion/vertico/packages.el b/modules/completion/vertico/packages.el index 68f1b73e9..98ce55310 100644 --- a/modules/completion/vertico/packages.el +++ b/modules/completion/vertico/packages.el @@ -1,22 +1,19 @@ ;; -*- no-byte-compile: t; -*- ;;; completion/vertico/packages.el -(package! vertico - :recipe (:host github :repo "minad/vertico" - :files ("*.el" "extensions/*.el")) - :pin "a28370d07f35c5387c7a9ec2e5b67f0d4598058d") +(package! vertico :pin "03bfb71a2b5db296a93eeb0752bd934d112e0792") -(package! orderless :pin "e6784026717a8a6a7dcd0bf31fd3414f148c542e") +(package! orderless :pin "d6b402a89e234d0e6166247ed6025f9acc8b4d9a") -(package! consult :pin "fe49dedd71802ff97be7b89f1ec4bd61b98c2b13") -(package! consult-dir :pin "ed8f0874d26f10f5c5b181ab9f2cf4107df8a0eb") +(package! consult :pin "43380042daaaf57f60aa22962a97ed904a7d56ce") +(package! consult-dir :pin "3f5f4b71ebe819392cb090cda71bd39a93bd830a") (when (and (modulep! :checkers syntax) (not (modulep! :checkers syntax +flymake))) (package! consult-flycheck :pin "3f2a7c17cc2fe64e0c07e3bf90e33c885c0d7062")) -(package! embark :pin "9a44418c349e41020cdc5ad1bd21e8c77a429062") -(package! embark-consult :pin "9a44418c349e41020cdc5ad1bd21e8c77a429062") +(package! embark :pin "7758a1ac64d784fa71f14b202b7a26c27f29d03e") +(package! embark-consult :pin "7758a1ac64d784fa71f14b202b7a26c27f29d03e") -(package! marginalia :pin "866e50aee4f066b0903752c69b33e9b7cab93f97") +(package! marginalia :pin "f1734375a5d8fa18e9cecb47ae4b5ae86c72399f") (package! wgrep :pin "3132abd3750b8c87cbcf6942db952acfab5edccd") @@ -26,4 +23,4 @@ (when (modulep! +childframe) (package! vertico-posframe :recipe (:host github :repo "tumashu/vertico-posframe") - :pin "7da6d648ff4202a48eb6647ee7dce8d65de48779")) + :pin "db9fbc95bb8316165ec74e500a76d6857e6ced1a")) From 60e22fd2eb614876039db75eb4d2958092a43e2d Mon Sep 17 00:00:00 2001 From: "Itai Y. Efrat" Date: Mon, 25 Sep 2023 19:29:32 +0300 Subject: [PATCH 303/523] refactor(vertico): use consult-fd Close: #7458 Co-authored-by: LemonBreezes --- lisp/lib/projects.el | 4 +- .../completion/vertico/autoload/vertico.el | 41 +------------------ modules/completion/vertico/config.el | 19 ++++----- modules/tools/lookup/autoload/lookup.el | 2 +- 4 files changed, 12 insertions(+), 54 deletions(-) diff --git a/lisp/lib/projects.el b/lisp/lib/projects.el index ce7964421..ffd2aa9b1 100644 --- a/lisp/lib/projects.el +++ b/lisp/lib/projects.el @@ -150,8 +150,8 @@ If DIR is not a project, it will be indexed (but not cached)." #'counsel-projectile-find-file #'projectile-find-file))) ((and (bound-and-true-p vertico-mode) - (fboundp '+vertico/find-file-in)) - (+vertico/find-file-in default-directory)) + (fboundp '+vertico/consult-fd-or-find)) + (+vertico/consult-fd-or-find default-directory)) ((and (bound-and-true-p ivy-mode) (fboundp 'counsel-file-jump)) (call-interactively #'counsel-file-jump)) diff --git a/modules/completion/vertico/autoload/vertico.el b/modules/completion/vertico/autoload/vertico.el index 0b4219eaf..c38f21df2 100644 --- a/modules/completion/vertico/autoload/vertico.el +++ b/modules/completion/vertico/autoload/vertico.el @@ -137,26 +137,6 @@ Supports exporting consult-grep to wgrep, file to wdeired, and consult-location (+vertico/embark-preview) (user-error (vertico-directory-enter))))) -(defvar +vertico/find-file-in--history nil) -;;;###autoload -(defun +vertico/find-file-in (&optional dir initial) - "Jump to file under DIR (recursive). -If INITIAL is non-nil, use as initial input." - (interactive) - (require 'consult) - (let* ((default-directory (or dir default-directory)) - (prompt-dir (consult--directory-prompt "Find" default-directory)) - (cmd (split-string-and-unquote +vertico-consult-fd-args " "))) - (find-file - (consult--read - (split-string (cdr (apply #'doom-call-process cmd)) "\n" t) - :prompt default-directory - :sort nil - :initial (if initial (shell-quote-argument initial)) - :add-history (thing-at-point 'filename) - :category 'file - :history '(:input +vertico/find-file-in--history))))) - ;;;###autoload (defun +vertico/jump-list (jump) "Go to an entry in evil's (or better-jumper's) jumplist." @@ -229,27 +209,10 @@ targets." (not (string-suffix-p "-argument" (cdr binding)))))))) ;;;###autoload -(defun +vertico--consult--fd-make-builder () - (let ((cmd (split-string-and-unquote +vertico-consult-fd-args))) - (lambda (input) - (pcase-let* ((`(,arg . ,opts) (consult--command-split input)) - (`(,re . ,hl) (funcall consult--regexp-compiler - arg 'extended t))) - (when re - (cons (append cmd - (list (consult--join-regexps re 'extended)) - opts) - hl)))))) - -(autoload #'consult--directory-prompt "consult") -;;;###autoload -(defun +vertico/consult-fd (&optional dir initial) +(defun +vertico/consult-fd-or-find (&optional dir initial) (interactive "P") (if doom-projectile-fd-binary - (pcase-let* ((`(,prompt ,paths ,dir) (consult--directory-prompt "Fd" dir)) - (default-directory dir) - (builder (consult--find-make-builder paths))) - (find-file (consult--find prompt builder initial))) + (consult-fd dir initial) (consult-find dir initial))) ;;;###autoload diff --git a/modules/completion/vertico/config.el b/modules/completion/vertico/config.el index a4efa7c4e..16f3f9252 100644 --- a/modules/completion/vertico/config.el +++ b/modules/completion/vertico/config.el @@ -7,9 +7,6 @@ The completion/vertico module uses the orderless completion style by default, but this returns too broad a candidate set for company completion. This variable overrides `completion-styles' during company completion sessions.") -(defvar +vertico-consult-fd-args nil - "Shell command and arguments the vertico module uses for fd.") - (defvar +vertico-consult-dir-container-executable "docker" "Command to call for listing container hosts.") @@ -149,13 +146,11 @@ orderless." consult-async-refresh-delay 0.15 consult-async-input-throttle 0.2 consult-async-input-debounce 0.1) - (unless +vertico-consult-fd-args - (setq +vertico-consult-fd-args - (if doom-projectile-fd-binary - (format "%s --color=never -i -H -E .git --regex %s" - doom-projectile-fd-binary - (if IS-WINDOWS "--path-separator=/" "")) - consult-find-args))) + (if doom-projectile-fd-binary + (setq consult-fd-args + '(doom-projectile-fd-binary + "--full-path --color=never -i -H -E .git --regex" + (when IS-WINDOWS "--path-separator=/")))) (consult-customize consult-ripgrep consult-git-grep consult-grep @@ -305,9 +300,9 @@ orderless." (map! (:map embark-file-map :desc "Open target with sudo" "s" #'doom/sudo-find-file (:when (modulep! :tools magit) - :desc "Open magit-status of target" "g" #'+vertico/embark-magit-status) + :desc "Open magit-status of target" "g" #'+vertico/embark-magit-status) (:when (modulep! :ui workspaces) - :desc "Open in new workspace" "TAB" #'+vertico/embark-open-in-new-workspace)))) + :desc "Open in new workspace" "TAB" #'+vertico/embark-open-in-new-workspace)))) (use-package! marginalia diff --git a/modules/tools/lookup/autoload/lookup.el b/modules/tools/lookup/autoload/lookup.el index 0a2002773..b72a52f4e 100644 --- a/modules/tools/lookup/autoload/lookup.el +++ b/modules/tools/lookup/autoload/lookup.el @@ -283,7 +283,7 @@ otherwise falling back to ffap.el (find-file-at-point)." (counsel-file-jump guess (doom-project-root))) ((and (modulep! :completion vertico) (doom-project-p)) - (+vertico/find-file-in (doom-project-root) guess)) + (+vertico/consult-fd-or-find (doom-project-root) guess)) ((find-file-at-point (ffap-prompter guess)))) t)) From 7803ea2e739438f20b388c6a50ed9b68bccc4843 Mon Sep 17 00:00:00 2001 From: "Itai Y. Efrat" Date: Mon, 25 Sep 2023 19:38:21 +0300 Subject: [PATCH 304/523] fix(vertico): consult-project(-root->)-function --- modules/completion/vertico/config.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/completion/vertico/config.el b/modules/completion/vertico/config.el index 16f3f9252..d01f2c112 100644 --- a/modules/completion/vertico/config.el +++ b/modules/completion/vertico/config.el @@ -139,7 +139,7 @@ orderless." :before (list #'consult-recent-file #'consult-buffer) (recentf-mode +1)) - (setq consult-project-root-function #'doom-project-root + (setq consult-project-function #'doom-project-root consult-narrow-key "<" consult-line-numbers-widen t consult-async-min-input 2 From cb62ec0905afff50d99f8030201a637c5bc3a407 Mon Sep 17 00:00:00 2001 From: Liam Hupfer Date: Mon, 25 Sep 2023 21:47:51 -0500 Subject: [PATCH 305/523] =?UTF-8?q?tweak(vertico):=20use=20fd=E2=80=99s=20?= =?UTF-8?q?smart=20case?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If the user is going to the trouble of capitalizing input, that’s probably all they want to match. Ref: https://github.com/sharkdp/fd/commit/6482f3ac09673f52805cfea0b3640483dee7cf03 --- modules/completion/vertico/config.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/completion/vertico/config.el b/modules/completion/vertico/config.el index d01f2c112..3bc6706a8 100644 --- a/modules/completion/vertico/config.el +++ b/modules/completion/vertico/config.el @@ -149,7 +149,7 @@ orderless." (if doom-projectile-fd-binary (setq consult-fd-args '(doom-projectile-fd-binary - "--full-path --color=never -i -H -E .git --regex" + "--full-path --color=never -H -E .git --regex" (when IS-WINDOWS "--path-separator=/")))) (consult-customize From 25a89491a384a48c2dee56b76fdcb69e9ebdbf2a Mon Sep 17 00:00:00 2001 From: Liam Hupfer Date: Mon, 25 Sep 2023 21:52:05 -0500 Subject: [PATCH 306/523] nit(vertico): remove default --regex option for fd Ref: https://github.com/sharkdp/fd/commit/eac20a813256ecdd387c28d32abee26b5da66c35 --- modules/completion/vertico/config.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/completion/vertico/config.el b/modules/completion/vertico/config.el index 3bc6706a8..8e7a9f0a8 100644 --- a/modules/completion/vertico/config.el +++ b/modules/completion/vertico/config.el @@ -149,7 +149,7 @@ orderless." (if doom-projectile-fd-binary (setq consult-fd-args '(doom-projectile-fd-binary - "--full-path --color=never -H -E .git --regex" + "--full-path --color=never -H -E .git" (when IS-WINDOWS "--path-separator=/")))) (consult-customize From 76f309ceb5f223e21638afe9f831fb348f810e99 Mon Sep 17 00:00:00 2001 From: Liam Hupfer Date: Mon, 25 Sep 2023 22:15:40 -0500 Subject: [PATCH 307/523] tweak(vertico): show entire path for fd results Currently, fd does not expose a way to match against only the path components beneath the target path. When --full-path is specified, the pattern matches against all components. For example, executing consult-fd from /home/hlissner/.emacs.d with `home` as the query would match every file (not excluded by other arguments) under .emacs.d. Despite this --full-path behavior, fd still outputs relative paths, so the user cannot even determine why some candidates are returned. Until there is a method to match only against subdirectories, use --absolute-path to at least to show the user why all matches are occurring. Ref: https://github.com/sharkdp/fd/issues/839 --- modules/completion/vertico/config.el | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/completion/vertico/config.el b/modules/completion/vertico/config.el index 8e7a9f0a8..e92b9ec47 100644 --- a/modules/completion/vertico/config.el +++ b/modules/completion/vertico/config.el @@ -149,7 +149,10 @@ orderless." (if doom-projectile-fd-binary (setq consult-fd-args '(doom-projectile-fd-binary - "--full-path --color=never -H -E .git" + "--color=never" + ;; https://github.com/sharkdp/fd/issues/839 + "--full-path --absolute-path" + "--hidden --exclude .git" (when IS-WINDOWS "--path-separator=/")))) (consult-customize From 190a37043c772e9652df9f33b694e019df58d5ec Mon Sep 17 00:00:00 2001 From: "Itai Y. Efrat" Date: Mon, 4 Dec 2023 02:25:58 +0200 Subject: [PATCH 308/523] bump: :completion vertico minad/consult@43380042daaa -> minad/consult@9c7dbbe4d626 minad/marginalia@f1734375a5d8 -> minad/marginalia@27ccfd2213bb minad/vertico@03bfb71a2b5d -> minad/vertico@e8edac107df5 oantolin/embark@7758a1ac64d7 -> oantolin/embark@b9f2b3b9a5b9 oantolin/orderless@d6b402a89e23 -> oantolin/orderless@b24748093b00 tumashu/vertico-posframe@db9fbc95bb83 -> tumashu/vertico-posframe@15168c92ca06 --- modules/completion/vertico/packages.el | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/modules/completion/vertico/packages.el b/modules/completion/vertico/packages.el index 98ce55310..80b1540fe 100644 --- a/modules/completion/vertico/packages.el +++ b/modules/completion/vertico/packages.el @@ -1,19 +1,19 @@ ;; -*- no-byte-compile: t; -*- ;;; completion/vertico/packages.el -(package! vertico :pin "03bfb71a2b5db296a93eeb0752bd934d112e0792") +(package! vertico :pin "e8edac107df5883f2fa8690356a8d8deee1a83de") -(package! orderless :pin "d6b402a89e234d0e6166247ed6025f9acc8b4d9a") +(package! orderless :pin "b24748093b00b37c3a572c4909f61c08fa27504f") -(package! consult :pin "43380042daaaf57f60aa22962a97ed904a7d56ce") +(package! consult :pin "9c7dbbe4d626987e40d7a157430021e13a6906bd") (package! consult-dir :pin "3f5f4b71ebe819392cb090cda71bd39a93bd830a") (when (and (modulep! :checkers syntax) (not (modulep! :checkers syntax +flymake))) - (package! consult-flycheck :pin "3f2a7c17cc2fe64e0c07e3bf90e33c885c0d7062")) -(package! embark :pin "7758a1ac64d784fa71f14b202b7a26c27f29d03e") -(package! embark-consult :pin "7758a1ac64d784fa71f14b202b7a26c27f29d03e") + (package! consult-flycheck :pin "0662839aa5db429130f5ffd15c14d4a980b2e694")) +(package! embark :pin "b9f2b3b9a5b9c72cf1416097b9941c4f275dae94") +(package! embark-consult :pin "b9f2b3b9a5b9c72cf1416097b9941c4f275dae94") -(package! marginalia :pin "f1734375a5d8fa18e9cecb47ae4b5ae86c72399f") +(package! marginalia :pin "27ccfd2213bb9432883427cf058c63af10196aa6") (package! wgrep :pin "3132abd3750b8c87cbcf6942db952acfab5edccd") @@ -23,4 +23,4 @@ (when (modulep! +childframe) (package! vertico-posframe :recipe (:host github :repo "tumashu/vertico-posframe") - :pin "db9fbc95bb8316165ec74e500a76d6857e6ced1a")) + :pin "15168c92ca06a39fbf84ac27d4e2ae02216300b5")) From 1584f8a61ea064e1fff41609882c20dbde2e975d Mon Sep 17 00:00:00 2001 From: "Itai Y. Efrat" Date: Sat, 9 Dec 2023 23:03:10 +0200 Subject: [PATCH 309/523] fix(vertico): use consult-fd only with new enough fd --- modules/completion/vertico/autoload/vertico.el | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/modules/completion/vertico/autoload/vertico.el b/modules/completion/vertico/autoload/vertico.el index c38f21df2..50059b68b 100644 --- a/modules/completion/vertico/autoload/vertico.el +++ b/modules/completion/vertico/autoload/vertico.el @@ -210,8 +210,21 @@ targets." ;;;###autoload (defun +vertico/consult-fd-or-find (&optional dir initial) + "Runs consult-fd if fd version > 8.6.0 exists, consult-find otherwise. +See URL `https://github.com/minad/consult/issues/770'." (interactive "P") - (if doom-projectile-fd-binary + ;; TODO this condition was adapted from a similar one in lisp/doom-projects.el, to be replaced with a more robust check post v3 + (if (when-let* + ((bin (if (ignore-errors (file-remote-p default-directory nil t)) + (cl-find-if (doom-rpartial #'executable-find t) + (list "fdfind" "fd")) + doom-projectile-fd-binary)) + (version (with-memoization doom-projects--fd-version + (cadr (split-string (cdr (doom-call-process bin "--version")) + " " t)))) + ((ignore-errors (version-to-list version)))) + ;; TODO remove once fd 8.6.0 is widespread enough to be the minimum version for doom + (version< "8.6.0" version)) (consult-fd dir initial) (consult-find dir initial))) From 828445dbfb66355fd1e2f3e244ccc45bc078b722 Mon Sep 17 00:00:00 2001 From: "Itai Y. Efrat" Date: Sat, 27 Jan 2024 23:59:34 +0200 Subject: [PATCH 310/523] bump: :completion vertico mhayashi1120/Emacs-wgrep@3132abd3750b -> mhayashi1120/Emacs-wgrep@208b9d01cfff minad/consult-flycheck@0662839aa5db -> minad/consult-flycheck@d83f87581af7 minad/consult@9c7dbbe4d626 -> minad/consult@e4d371235647 minad/marginalia@27ccfd2213bb -> minad/marginalia@ea356ebb1ddb minad/vertico@e8edac107df5 -> minad/vertico@cf8b2abf5207 oantolin/embark@b9f2b3b9a5b9 -> oantolin/embark@33c392cf3ce5 tumashu/vertico-posframe@15168c92ca06 -> tumashu/vertico-posframe@bc0e67cbbba4 --- modules/completion/vertico/packages.el | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/modules/completion/vertico/packages.el b/modules/completion/vertico/packages.el index 80b1540fe..0189e2357 100644 --- a/modules/completion/vertico/packages.el +++ b/modules/completion/vertico/packages.el @@ -1,21 +1,21 @@ ;; -*- no-byte-compile: t; -*- ;;; completion/vertico/packages.el -(package! vertico :pin "e8edac107df5883f2fa8690356a8d8deee1a83de") +(package! vertico :pin "cf8b2abf5207696c054c33214c86e3969d415054") (package! orderless :pin "b24748093b00b37c3a572c4909f61c08fa27504f") -(package! consult :pin "9c7dbbe4d626987e40d7a157430021e13a6906bd") +(package! consult :pin "e4d371235647a7f4967f093eff2125652796957c") (package! consult-dir :pin "3f5f4b71ebe819392cb090cda71bd39a93bd830a") (when (and (modulep! :checkers syntax) (not (modulep! :checkers syntax +flymake))) - (package! consult-flycheck :pin "0662839aa5db429130f5ffd15c14d4a980b2e694")) -(package! embark :pin "b9f2b3b9a5b9c72cf1416097b9941c4f275dae94") -(package! embark-consult :pin "b9f2b3b9a5b9c72cf1416097b9941c4f275dae94") + (package! consult-flycheck :pin "d83f87581af74f7a2739d8b1b90c37da5ae3d310")) +(package! embark :pin "33c392cf3ce5b92ad73ed5c4f44dbca5d0741cde") +(package! embark-consult :pin "33c392cf3ce5b92ad73ed5c4f44dbca5d0741cde") -(package! marginalia :pin "27ccfd2213bb9432883427cf058c63af10196aa6") +(package! marginalia :pin "ea356ebb1ddb8d6da78574b517155475cf52d46f") -(package! wgrep :pin "3132abd3750b8c87cbcf6942db952acfab5edccd") +(package! wgrep :pin "208b9d01cfffa71037527e3a324684b3ce45ddc4") (when (modulep! +icons) (package! nerd-icons-completion :pin "c2db8557a3c1a9588d111f8c8e91cae96ee85010")) @@ -23,4 +23,4 @@ (when (modulep! +childframe) (package! vertico-posframe :recipe (:host github :repo "tumashu/vertico-posframe") - :pin "15168c92ca06a39fbf84ac27d4e2ae02216300b5")) + :pin "bc0e67cbbba4daaf6ce7b8701a0dc7797d468752")) From 3852791066a7a3557aa56990b9302e8ed37e5e3f Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 28 Jan 2024 00:46:24 -0500 Subject: [PATCH 311/523] bump: :tools debugger lsp emacs-lsp/dap-mode@755845ae053b -> emacs-lsp/dap-mode@2f0c5b28578c emacs-lsp/lsp-mode@d441f3d268a3 -> emacs-lsp/lsp-mode@02c5ba59ce3d emacs-lsp/lsp-ui@0dd39900c8ed -> emacs-lsp/lsp-ui@bc58c6664577 emacs-straight/eglot@2b145778ba5e -> emacs-straight/eglot@f73594f58989 mohkale/consult-eglot@db9d41c9812a -> mohkale/consult-eglot@049c6319b8a4 --- modules/tools/debugger/packages.el | 2 +- modules/tools/lsp/packages.el | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/tools/debugger/packages.el b/modules/tools/debugger/packages.el index 208504513..bde6bede8 100644 --- a/modules/tools/debugger/packages.el +++ b/modules/tools/debugger/packages.el @@ -6,5 +6,5 @@ (package! realgud-trepan-ni :pin "0ec088ea343835e24ae73da09bea96bfb02a3130"))) (when (modulep! +lsp) - (package! dap-mode :pin "755845ae053bbfdd3f7b3dca13efa4be480370b5") + (package! dap-mode :pin "2f0c5b28578ce65ec746e4084ba72ba5c652ea79") (package! posframe :pin "017deece88360c7297265680d78a0bb316470716")) diff --git a/modules/tools/lsp/packages.el b/modules/tools/lsp/packages.el index 8ca5f8cd5..19fda1523 100644 --- a/modules/tools/lsp/packages.el +++ b/modules/tools/lsp/packages.el @@ -3,14 +3,14 @@ (if (modulep! +eglot) (progn - (package! eglot :pin "2b145778ba5e57f393e50aea76b28e518c401828") + (package! eglot :pin "f73594f58989fd2fd3bc6b2c1775c74e65a9eaa0") (when (modulep! :completion vertico) - (package! consult-eglot :pin "db9d41c9812a5a8a7b9a22fa7f3c314e37584d41")) + (package! consult-eglot :pin "049c6319b8a48ff66189d49592c7759f0b356596")) (when (and (modulep! :checkers syntax) (not (modulep! :checkers syntax +flymake))) (package! flycheck-eglot :pin "9ff8d0068be59b1450964b390349d75a68af21ed"))) - (package! lsp-mode :pin "d441f3d268a31a4a514af2db506a5eec47ee617d") - (package! lsp-ui :pin "0dd39900c8ed8145d207985cb2f65cedd1ffb410") + (package! lsp-mode :pin "02c5ba59ce3d1cede4aa689c530f16cccfb5e1d1") + (package! lsp-ui :pin "bc58c6664577d1d79060c6b32b7ad20e70ee19d0") (when (modulep! :completion ivy) (package! lsp-ivy :pin "9ecf4dd9b1207109802bd1882aa621eb1c385106")) (when (modulep! :completion helm) From 46567088079a084319b90cc337e47ab34c5f2dd8 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 28 Jan 2024 00:46:40 -0500 Subject: [PATCH 312/523] bump: :lang python cybniv/poetry.el@5ca52b221e57 -> cybniv/poetry.el@ca2cffb0b174 emacs-lsp/lsp-pyright@54a2acddfdd7 -> emacs-lsp/lsp-pyright@2f2631ae242d emacs-lsp/lsp-python-ms@f8e7c4bcaefb -> emacs-lsp/lsp-python-ms@7bda327bec7b necaris/conda.el@6a6a27dad7ab -> necaris/conda.el@60e14d1e9793 pythonic-emacs/anaconda-mode@1fd13a0f20fc -> pythonic-emacs/anaconda-mode@efd42aa8736d pythonic-emacs/company-anaconda@da1566db41a6 -> pythonic-emacs/company-anaconda@dabc0adc9a0e pythonic-emacs/pyenv-mode@b818901b8eac -> pythonic-emacs/pyenv-mode@c93dc07e8549 wbolster/emacs-python-pytest@33c921adaa6c -> wbolster/emacs-python-pytest@bdfb3e81eedc Fix: #7602 Close: #7603 Co-authored-by: EsAu79p --- modules/lang/python/packages.el | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/modules/lang/python/packages.el b/modules/lang/python/packages.el index b67f9755d..6eb269de7 100644 --- a/modules/lang/python/packages.el +++ b/modules/lang/python/packages.el @@ -12,27 +12,27 @@ (when (modulep! +lsp) (unless (modulep! :tools lsp +eglot) (if (modulep! +pyright) - (package! lsp-pyright :pin "54a2acddfdd7c3d31cb804a042305a3c6e60cf81") - (package! lsp-python-ms :pin "f8e7c4bcaefbc3fd96e1ca53d17589be0403b828")))) + (package! lsp-pyright :pin "2f2631ae242d5770dbe6cb924e44c1ee5671789d") + (package! lsp-python-ms :pin "7bda327bec7b219d140c34dab4b1e1fbd41bc516")))) ;; Programming environment -(package! anaconda-mode :pin "1fd13a0f20fcc9e841e2d5c9af73c0b23f09cf39") +(package! anaconda-mode :pin "efd42aa8736d855a3c95e06e6daf4aa797290a93") (when (modulep! :completion company) - (package! company-anaconda :pin "da1566db41a68809ef7f91ebf2de28118067c89b")) + (package! company-anaconda :pin "dabc0adc9a0e56357e046de5fd4dbd8fc797e542")) ;; Environment management (package! pipenv :pin "3af159749824c03f59176aff7f66ddd6a5785a10") (package! pyvenv :pin "31ea715f2164dd611e7fc77b26390ef3ca93509b") (when (modulep! +pyenv) - (package! pyenv-mode :pin "b818901b8eac0e260ced66a6a5acabdbf6f5ba99")) + (package! pyenv-mode :pin "c93dc07e85494b4420e6c50160f38d6915c85684")) (when (modulep! +conda) - (package! conda :pin "6a6a27dad7ab696b41b54a1cb7591ca489133fec")) + (package! conda :pin "60e14d1e9793431b91913a5688e278bd91d56224")) (when (modulep! +poetry) - (package! poetry :pin "5ca52b221e57bb9dce7c89f62e7b01da1346a273")) + (package! poetry :pin "ca2cffb0b174e9d814ad95178af84b525dd2b64d")) ;; Testing frameworks (package! nose :pin "f8528297519eba911696c4e68fa88892de9a7b72") -(package! python-pytest :pin "33c921adaa6c9c8f7cceba2342114c6b406e0d7c") +(package! python-pytest :pin "bdfb3e81eedc6b76ed0c5f77079e7cc8adff7b00") ;; Import managements (package! pyimport :pin "c006a5fd0e5c9e297aa2ad71b2f02f463286b5e3") From ff33ec8f7a89d168ca533612e2562883c89e029f Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 28 Jan 2024 00:46:56 -0500 Subject: [PATCH 313/523] bump: :lang swift emacs-lsp/lsp-sourcekit@468c641e3587 -> emacs-lsp/lsp-sourcekit@1cd5e7d26995 swift-emacs/swift-mode@1244ee48de18 -> swift-emacs/swift-mode@84059659de4d Contains updates for Swift 5.9 and Emacs 29. Close: #7587 Co-authored-by: jpgrayson --- modules/lang/swift/packages.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/lang/swift/packages.el b/modules/lang/swift/packages.el index e3ed615bd..3b38feb40 100644 --- a/modules/lang/swift/packages.el +++ b/modules/lang/swift/packages.el @@ -1,11 +1,11 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/swift/packages.el -(package! swift-mode :pin "1244ee48de1895d33f55fed81fc90acda0c901f1") +(package! swift-mode :pin "84059659de4da89d3d2902611cebed6d0423bf06") (if (modulep! +lsp) (unless (modulep! :tools lsp +eglot) - (package! lsp-sourcekit :pin "468c641e35877e4e843f6b7c52a35937de562995")) + (package! lsp-sourcekit :pin "1cd5e7d2699598a97bdbcd289d9a88b249db474c")) (when (modulep! :completion company) (package! company-sourcekit :pin "a1860ad4dd3a542acd2fa0dfac2a388cbdf4af0c")) (when (and (modulep! :checkers syntax) From 1ddd74b003cf6b803c15a64a1e97bb754f042497 Mon Sep 17 00:00:00 2001 From: "Kirill A. Korinsky" Date: Fri, 12 Jan 2024 02:57:25 +0100 Subject: [PATCH 314/523] bump: :email wanderlust wanderlust/flim@80b8121f05a5 -> wanderlust/flim@abdd2315006e wanderlust/semi@9370961ddcee -> wanderlust/semi@9063a4485b14 wanderlust/wanderlust@8369b2d5170a -> wanderlust/wanderlust@9fd2c65e8d69 --- modules/email/wanderlust/packages.el | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/email/wanderlust/packages.el b/modules/email/wanderlust/packages.el index 4d9a109a9..57afc4e87 100644 --- a/modules/email/wanderlust/packages.el +++ b/modules/email/wanderlust/packages.el @@ -5,7 +5,7 @@ ;; 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 "80b8121f05a5a0d7fcfe3e54085467a646dd2028") -(package! semi :recipe (:branch "semi-1_14-wl") :pin "9370961ddcee78e389e44b36d38c3d93f8351619") +(package! flim :recipe (:branch "flim-1_14-wl") :pin "abdd2315006eb31476249223569808adb1c0f7b2") +(package! semi :recipe (:branch "semi-1_14-wl") :pin "9063a4485b148a767ea924f0e7cc78d3524ba256") -(package! wanderlust :pin "8369b2d5170a174652294835dd9a18ed21a38cb2") +(package! wanderlust :pin "9fd2c65e8d690625f35035a71e73f51f740dbe04") From 916c97bdf1add1f964ca630848bd2c5e544e21de Mon Sep 17 00:00:00 2001 From: "Kirill A. Korinsky" Date: Sun, 14 Jan 2024 14:09:05 +0100 Subject: [PATCH 315/523] tweak(wanderlust): switch to alerting --- modules/email/wanderlust/config.el | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/email/wanderlust/config.el b/modules/email/wanderlust/config.el index 23b7bf70a..021a3f996 100644 --- a/modules/email/wanderlust/config.el +++ b/modules/email/wanderlust/config.el @@ -70,6 +70,10 @@ (setq wl-message-id-domain wl-local-domain) + ;; Use alert for alerting + (when (fboundp 'alert) + (setq wl-biff-notify-hook '((lambda () (alert "You have new mail!" :title "Wanderlust"))))) + (when (modulep! :editor evil) ;; Neither `wl-folder-mode' nor `wl-summary-mode' are correctly defined as ;; major modes, so we cannot use `set-evil-initial-state!' here. From dbbd1f2b01010c5f784241d066ccf586167b099c Mon Sep 17 00:00:00 2001 From: "Kirill A. Korinsky" Date: Sun, 14 Jan 2024 14:10:54 +0100 Subject: [PATCH 316/523] tweak(wanderlust): don't show DKIM, ARC and similar signatures --- modules/email/wanderlust/config.el | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/modules/email/wanderlust/config.el b/modules/email/wanderlust/config.el index 021a3f996..ce1a4bcf0 100644 --- a/modules/email/wanderlust/config.el +++ b/modules/email/wanderlust/config.el @@ -29,6 +29,7 @@ "^References:" "^Replied:" "^Errors-To:" + "^Mail-.*-To:" "^Lines:" "^Sender:" ".*Host:" @@ -40,7 +41,14 @@ "^MIME.*:" "^In-Reply-To:" "^Content-Transfer-Encoding:" - "^List-.*:") + "^Content-Disposition:" + "^List-.*:" + "^Received-SPF:" + "^DKIM-.*:" + "^SPF-.*:" + "^Autocrypt:" + "^ARC-.*:" + "^Authentication-Results:") wl-message-visible-field-list '("^Message-Id:" "^User-Agent:" From e09838e01ae42b1043b6e5f7262e0a91270d173f Mon Sep 17 00:00:00 2001 From: "Kirill A. Korinsky" Date: Sun, 14 Jan 2024 14:13:17 +0100 Subject: [PATCH 317/523] fix(wanderlust): avoid `File name too long...` --- modules/email/wanderlust/config.el | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/email/wanderlust/config.el b/modules/email/wanderlust/config.el index ce1a4bcf0..f9a718355 100644 --- a/modules/email/wanderlust/config.el +++ b/modules/email/wanderlust/config.el @@ -20,6 +20,10 @@ wl-init-file (expand-file-name "wl.el" doom-user-dir) wl-folders-file (expand-file-name "folders.wl" doom-user-dir)) + ;; macOS allows file names up to 255 characters, + ;; use half of that size as threshold to switch to hashing + (setq elmo-msgdb-path-encode-threshold 128) + (setq wl-message-truncate-lines t wl-summary-width 120 wl-message-ignored-field-list From ebcb383c99008a25e1c4f1cb3ea2b80c645d2be6 Mon Sep 17 00:00:00 2001 From: "Kirill A. Korinsky" Date: Sun, 14 Jan 2024 14:18:23 +0100 Subject: [PATCH 318/523] tweak(wanderlust): do not truncate long subjects or mail lines --- modules/email/wanderlust/config.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/email/wanderlust/config.el b/modules/email/wanderlust/config.el index f9a718355..b393760c7 100644 --- a/modules/email/wanderlust/config.el +++ b/modules/email/wanderlust/config.el @@ -24,8 +24,8 @@ ;; use half of that size as threshold to switch to hashing (setq elmo-msgdb-path-encode-threshold 128) - (setq wl-message-truncate-lines t - wl-summary-width 120 + (setq wl-message-truncate-lines nil + wl-summary-width nil wl-message-ignored-field-list '(".*Received:" ".*Path:" From a20ca0cc0a316881546bd6aaa0fe636ae0459ab4 Mon Sep 17 00:00:00 2001 From: "Kirill A. Korinsky" Date: Sun, 14 Jan 2024 14:19:53 +0100 Subject: [PATCH 319/523] fix(wanderlust): enforce `wl-message-id-domain` only on automatic gmail config --- modules/email/wanderlust/config.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/email/wanderlust/config.el b/modules/email/wanderlust/config.el index b393760c7..31e16c889 100644 --- a/modules/email/wanderlust/config.el +++ b/modules/email/wanderlust/config.el @@ -78,9 +78,9 @@ wl-draft-folder "%[Gmail]/Drafts" wl-trash-folder "%[Gmail]/Trash" wl-fcc-force-as-read t - wl-default-spec "%")) + wl-default-spec "%") - (setq wl-message-id-domain wl-local-domain) + (setq wl-message-id-domain wl-local-domain)) ;; Use alert for alerting (when (fboundp 'alert) From a461a1f62c625dcbaaa6ccb141ac945063f32b23 Mon Sep 17 00:00:00 2001 From: "Kirill A. Korinsky" Date: Sun, 14 Jan 2024 14:31:31 +0100 Subject: [PATCH 320/523] tweak(wanderlust): add +xface flag --- modules/email/wanderlust/README.org | 6 ++++++ modules/email/wanderlust/config.el | 5 +++++ modules/email/wanderlust/packages.el | 6 ++++++ 3 files changed, 17 insertions(+) diff --git a/modules/email/wanderlust/README.org b/modules/email/wanderlust/README.org index 21f236458..3c9f17333 100644 --- a/modules/email/wanderlust/README.org +++ b/modules/email/wanderlust/README.org @@ -15,6 +15,9 @@ - +gmail :: Enable gmail-specific configuration for mail ~To~ or ~From~ a gmail address. +- +xface :: + Enable support of [X-Face] powered by [compface]. + ** Packages - [[doom-package:wanderlust]] @@ -52,3 +55,6 @@ #+begin_quote 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote + +[X-Face]: https://en.wikipedia.org/wiki/X-Face +[compface]: http://freecode.com/projects/compface/ diff --git a/modules/email/wanderlust/config.el b/modules/email/wanderlust/config.el index 31e16c889..679c04f9d 100644 --- a/modules/email/wanderlust/config.el +++ b/modules/email/wanderlust/config.el @@ -82,6 +82,11 @@ (setq wl-message-id-domain wl-local-domain)) + ;; Use x-face only when compface installed + (when (modulep! +xface) + (autoload 'x-face-decode-message-header "x-face-e21") + (setq wl-highlight-x-face-function 'x-face-decode-message-header)) + ;; Use alert for alerting (when (fboundp 'alert) (setq wl-biff-notify-hook '((lambda () (alert "You have new mail!" :title "Wanderlust"))))) diff --git a/modules/email/wanderlust/packages.el b/modules/email/wanderlust/packages.el index 57afc4e87..48203a6bd 100644 --- a/modules/email/wanderlust/packages.el +++ b/modules/email/wanderlust/packages.el @@ -9,3 +9,9 @@ (package! semi :recipe (:branch "semi-1_14-wl") :pin "9063a4485b148a767ea924f0e7cc78d3524ba256") (package! wanderlust :pin "9fd2c65e8d690625f35035a71e73f51f740dbe04") + +(when (modulep! +xface) + (package! x-face-e21 + :recipe (:host nil :repo "https://salsa.debian.org/debian/x-face-el.git" + :files ("debian/x-face-e21.el")) + :pin "871156a776cc1bc9dd035205b6875c55db6ae215")) From 302b72d9ed0e90186d9c79730ee9b9927947495c Mon Sep 17 00:00:00 2001 From: "Kirill A. Korinsky" Date: Thu, 18 Jan 2024 00:40:46 +0100 Subject: [PATCH 321/523] tweak(wanderlust): sane forward tag --- modules/email/wanderlust/config.el | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/email/wanderlust/config.el b/modules/email/wanderlust/config.el index 679c04f9d..3175268c3 100644 --- a/modules/email/wanderlust/config.el +++ b/modules/email/wanderlust/config.el @@ -26,6 +26,7 @@ (setq wl-message-truncate-lines nil wl-summary-width nil + wl-forward-subject-prefix "Fwd: " wl-message-ignored-field-list '(".*Received:" ".*Path:" From 2c15e4e6fc2f8edb95ca0344364877b20a6483db Mon Sep 17 00:00:00 2001 From: Mathew <45mm.cartridge421@slmail.me> Date: Thu, 1 Feb 2024 07:36:16 +0000 Subject: [PATCH 322/523] fix(evil): obsolete `evil-command-window` advice As noted in #7556, the advice `+popup--evil-command-window-a` fails, preventing the command window from being opened. This is because `evil-command-window` has been rewritten extensively. In particular, emacs-evil/evil@a09fdca0b35e made it use `display-buffer` instead of `switch-to-buffer`, so that users could customize how the window opens. Since this was the function of this advice, it is obsolete and can be removed. Fix: #7556 Ref: emacs-evil/evil@a09fdca0b35e --- modules/ui/popup/+hacks.el | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/modules/ui/popup/+hacks.el b/modules/ui/popup/+hacks.el index 1b040fd34..ab3e70275 100644 --- a/modules/ui/popup/+hacks.el +++ b/modules/ui/popup/+hacks.el @@ -102,26 +102,6 @@ were followed." ;;;###package evil (progn - ;; Make evil-mode cooperate with popups - (defadvice! +popup--evil-command-window-a (hist cmd-key execute-fn) - "Monkey patch the evil command window to use `pop-to-buffer' instead of -`switch-to-buffer', allowing the popup manager to handle it." - :override #'evil-command-window - (when (eq major-mode 'evil-command-window-mode) - (user-error "Cannot recursively open command line window")) - (dolist (win (window-list)) - (when (equal (buffer-name (window-buffer win)) - "*Command Line*") - (kill-buffer (window-buffer win)) - (delete-window win))) - (setq evil-command-window-current-buffer (current-buffer)) - (ignore-errors (kill-buffer "*Command Line*")) - (with-current-buffer (pop-to-buffer "*Command Line*") - (setq-local evil-command-window-execute-fn execute-fn) - (setq-local evil-command-window-cmd-key cmd-key) - (evil-command-window-mode) - (evil--command-window-insert-commands hist))) - (defadvice! +popup--evil-command-window-execute-a () "Execute the command under the cursor in the appropriate buffer, rather than the command buffer." From d509d8bea1ad27ab9b7e9ddca329f494686b336e Mon Sep 17 00:00:00 2001 From: RBckmnn <53320014+RBckmnn@users.noreply.github.com> Date: Thu, 1 Feb 2024 08:38:34 +0100 Subject: [PATCH 323/523] fix(file-templates): invalid function call `evil-initialize-state` recently changed to no longer accept any arguments, so use `evil-change-state` instead. Ref: emacs-evil/evil@1c4c3bfff898 --- modules/editor/file-templates/autoload.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/editor/file-templates/autoload.el b/modules/editor/file-templates/autoload.el index 7cbd0f343..934c84880 100644 --- a/modules/editor/file-templates/autoload.el +++ b/modules/editor/file-templates/autoload.el @@ -81,7 +81,7 @@ evil is loaded and enabled)." (and yas--active-field-overlay (overlay-buffer yas--active-field-overlay) (overlay-get yas--active-field-overlay 'yas--field))) - (evil-initialize-state 'insert)))))) + (evil-change-state 'insert)))))) ;;;###autoload (defun +file-templates-get-short-path () From 66666859939a7a438c075ce7a3e49ea160417ec8 Mon Sep 17 00:00:00 2001 From: Liam Hupfer Date: Sat, 9 Sep 2023 12:07:27 -0500 Subject: [PATCH 324/523] fix(emacs-lisp): add elisp flymake load path advice We set flycheck-emacs-lisp-load-path to 'inherit, which evaluates load-path when spawning the Emacs subprocess. flymake relies on a static variable, hence the advice. elisp-flymake-byte-compile is autoloaded by elisp-mode, so there is little reason to condition on `:checkers syntax +flymake`. Ref: https://github.com/flycheck/flycheck/blob/e56e30d8c66ffc9776d07740658d3b542c1a8e21/flycheck.el#L8725-L8727 Ref: https://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/progmodes/elisp-mode.el?h=emacs-29.1#n2166 Ref: https://emacs.stackexchange.com/questions/48661/how-do-i-get-flymake-to-recognize-files-in-my-load-path --- modules/lang/emacs-lisp/config.el | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/modules/lang/emacs-lisp/config.el b/modules/lang/emacs-lisp/config.el index 1e140a00e..34c88ed16 100644 --- a/modules/lang/emacs-lisp/config.el +++ b/modules/lang/emacs-lisp/config.el @@ -101,6 +101,13 @@ See `+emacs-lisp-non-package-mode' for details.") ;; original in the flycheck instance (see `+emacs-lisp-linter-warnings'). (add-hook 'flycheck-mode-hook #'+emacs-lisp-non-package-mode) + (defadvice! +syntax--fix-elisp-flymake-load-path (orig-fn &rest args) + "Set load path for elisp byte compilation Flymake backend" + :around #'elisp-flymake-byte-compile + (let ((elisp-flymake-byte-compile-load-path + (append elisp-flymake-byte-compile-load-path load-path))) + (apply orig-fn args))) + ;; Enhance elisp syntax highlighting, by highlighting Doom-specific ;; constructs, defined symbols, and truncating :pin's in `package!' calls. (font-lock-add-keywords From d1d0a7e258c7cf33e3037d8e37506c03063bd059 Mon Sep 17 00:00:00 2001 From: StrawberryTea Date: Thu, 1 Feb 2024 17:47:20 -0600 Subject: [PATCH 325/523] fix(eshell): remove fish executable advice Ref: LemonBreezes/emacs-fish-completion@99f0672c20ea --- modules/term/eshell/config.el | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/modules/term/eshell/config.el b/modules/term/eshell/config.el index cf2beb9b2..af7633082 100644 --- a/modules/term/eshell/config.el +++ b/modules/term/eshell/config.el @@ -244,12 +244,5 @@ Emacs versions < 29." (use-package! fish-completion :unless IS-WINDOWS :hook (eshell-mode . fish-completion-mode) - :init (setq fish-completion-fallback-on-bash-p t) - :config - ;; HACK Even with `fish-completion-fallback-on-bash-p' non-nil, - ;; `fish-completion--list-completions-with-desc' will throw an error if - ;; fish isn't installed (and so, will fail to fall back to bash), so we - ;; advise it to fail silently. - (defadvice! +eshell--fallback-to-bash-a (&rest _) - :before-until #'fish-completion--list-completions-with-desc - (unless (executable-find "fish") ""))) + :init (setq fish-completion-fallback-on-bash-p t + fish-completion-inhibit-missing-fish-command-warning t)) From 0290663cf32dd2f6cbfff3ac22b2ff6843f1539f Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 2 Feb 2024 03:15:35 -0500 Subject: [PATCH 326/523] fix(emacs-lisp): void-variable flycheck-disabled-checkers error Fix: #7644 Amend: b50b2c464004 Amend: #7341 --- modules/lang/emacs-lisp/autoload.el | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/modules/lang/emacs-lisp/autoload.el b/modules/lang/emacs-lisp/autoload.el index a94b8e4b2..6aeab83f4 100644 --- a/modules/lang/emacs-lisp/autoload.el +++ b/modules/lang/emacs-lisp/autoload.el @@ -399,9 +399,10 @@ This generally applies to your private config (`doom-user-dir') or Doom's source (when (derived-mode-p 'emacs-lisp-mode) (add-hook 'after-save-hook #'+emacs-lisp-non-package-mode nil t)) (let ((toggle (if +emacs-lisp-non-package-mode +1 -1))) - (if (modulep! :checkers syntax +flymake) - (+emacs-lisp--flymake-non-package-mode toggle) - (+emacs-lisp--flycheck-non-package-mode toggle)))) + (cond ((modulep! :checkers syntax +flymake) + (+emacs-lisp--flymake-non-package-mode toggle)) + ((modulep! :checkers syntax) + (+emacs-lisp--flycheck-non-package-mode toggle))))) ;; From 82b6bd31590d05307cdb1a9608ee0eadb3e375ca Mon Sep 17 00:00:00 2001 From: 45mm <45mm.cartridge421@slmail.me> Date: Tue, 30 Jan 2024 21:15:22 +0530 Subject: [PATCH 327/523] docs(ivy): mention lowered `ivy-sort-max-size` Depending on the system, this can cause sorting to be disabled long before the performance hit would be felt, and it's not obvious that this is the reason. --- modules/completion/ivy/README.org | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/modules/completion/ivy/README.org b/modules/completion/ivy/README.org index 500f22396..d10206b0a 100644 --- a/modules/completion/ivy/README.org +++ b/modules/completion/ivy/README.org @@ -176,7 +176,16 @@ A wgrep buffer can be opened from swiper with [[kbd:][C-c C-e]]. ** TODO Change the position of the ivy childframe * TODO Troubleshooting -/There are no known problems with this module./ [[doom-report:][Report one?]] +** Sorting is not applied at all sometimes +If the number of candidates is greater than ~ivy-sort-max-size~, sorting will be +disabled completely. Doom lowers the default value to prevent performance +issues, so increasing the value may fix your issue: +#+begin_src elisp +;;; add to $DOOMDIR/config.el +(after! ivy + (setq ivy-sort-max-size 30000)) ; Doom sets this to 7500, but Ivy's default is 30k +#+end_src + * Frequently asked questions [[doom-suggest-faq:][Ask a question?]] From d03ac051bfcb62f14ded89af413f220028698ee0 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 2 Feb 2024 03:32:36 -0500 Subject: [PATCH 328/523] fix(coq): inhibit indent detection Indent detection (via dtrt-indent) is slow and inconclusive in coq-mode files. Since it's rarely helpful for them anyway, I inhibit it. Fix: #5823 --- modules/lang/coq/config.el | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/lang/coq/config.el b/modules/lang/coq/config.el index 18b2b0147..8427e2cf8 100644 --- a/modules/lang/coq/config.el +++ b/modules/lang/coq/config.el @@ -13,6 +13,10 @@ ;; sane `comment-line-break-function', so... comment-line-break-function nil) +;; HACK: See #5823: indent detection is slow and inconclusive in coq-mode files, +;; and rarely helpful anyway, so I inhibit it. +(add-to-list 'doom-detect-indentation-excluded-modes 'coq-mode) + ;; We've replaced coq-mode abbrevs with yasnippet snippets (in the snippets ;; library included with Doom). (setq coq-mode-abbrev-table '()) From 180ffd3fa8243579e10a3e42efb6b678e6b0a2ac Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 2 Feb 2024 03:23:06 -0500 Subject: [PATCH 329/523] release(modules): 24.02.0-dev Ref: 2b39e4136850 --- lisp/doom.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/doom.el b/lisp/doom.el index a0dabd4e4..17fc2e32f 100644 --- a/lisp/doom.el +++ b/lisp/doom.el @@ -168,7 +168,7 @@ "Current version of Doom Emacs core.") ;; DEPRECATED: Remove these when the modules are moved out of core. -(defconst doom-modules-version "23.12.0-pre" +(defconst doom-modules-version "24.02.0-pre" "Current version of Doom Emacs.") (defvar doom-init-time nil From ffd2654aa3166f767ed2eafebfc9cae34d75f454 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 2 Feb 2024 18:47:15 -0500 Subject: [PATCH 330/523] fix(emacs-lisp): non-package-mode: only enable in elisp buffers This prevents +emacs-lisp-non-package-mode from being activated in non-elisp buffers. Amend: #7341 Close: #7645 Co-authored-by: PatrickNorton --- modules/lang/emacs-lisp/autoload.el | 19 ++++++++++++------- modules/lang/emacs-lisp/config.el | 9 +++++---- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/modules/lang/emacs-lisp/autoload.el b/modules/lang/emacs-lisp/autoload.el index 6aeab83f4..a9cbffc48 100644 --- a/modules/lang/emacs-lisp/autoload.el +++ b/modules/lang/emacs-lisp/autoload.el @@ -379,6 +379,7 @@ as `+emacs-lisp-non-package-mode' will enable it and disable the other checkers. ,(read (default-toplevel-value 'flycheck-emacs-lisp-check-form)))) flycheck-disabled-checkers (cons 'emacs-lisp-checkdoc flycheck-disabled-checkers)))) + ;;;###autoload (define-minor-mode +emacs-lisp-non-package-mode "Reduce flycheck/flymake verbosity where it is appropriate. @@ -394,15 +395,19 @@ This generally applies to your private config (`doom-user-dir') or Doom's source :since "3.0.0" (unless (and (or (bound-and-true-p flycheck-mode) (bound-and-true-p flymake-mode)) + (derived-mode-p 'emacs-lisp-mode) (not (+emacs-lisp--in-package-buffer-p))) (setq +emacs-lisp-non-package-mode nil)) - (when (derived-mode-p 'emacs-lisp-mode) - (add-hook 'after-save-hook #'+emacs-lisp-non-package-mode nil t)) - (let ((toggle (if +emacs-lisp-non-package-mode +1 -1))) - (cond ((modulep! :checkers syntax +flymake) - (+emacs-lisp--flymake-non-package-mode toggle)) - ((modulep! :checkers syntax) - (+emacs-lisp--flycheck-non-package-mode toggle))))) + (when-let ((modesym (cond ((modulep! :checkers syntax +flymake) + #'+emacs-lisp--flymake-non-package-mode) + ((modulep! :checkers syntax) + #'+emacs-lisp--flycheck-non-package-mode)))) + (if (not +emacs-lisp-non-package-mode) + (when (symbol-value modesym) + (funcall modesym -1)) + (when (derived-mode-p 'emacs-lisp-mode) + (add-hook 'after-save-hook #'+emacs-lisp-non-package-mode nil t)) + (funcall modesym +1)))) ;; diff --git a/modules/lang/emacs-lisp/config.el b/modules/lang/emacs-lisp/config.el index 90c613053..3cabce3b6 100644 --- a/modules/lang/emacs-lisp/config.el +++ b/modules/lang/emacs-lisp/config.el @@ -95,10 +95,11 @@ See `+emacs-lisp-non-package-mode' for details.") ;; Ensure straight sees modifications to installed packages #'+emacs-lisp-init-straight-maybe-h) - ;; UX: Both Flycheck's and Flymake's two - ;; emacs-lisp checkers produce a *lot* of false positives in non-packages - ;; (like Emacs configs or elisp scripts), so I disable `checkdoc' (`emacs-lisp-checkdoc', `elisp-flymake-checkdoc') - ;; and set `byte-compile-warnings' to a subset that makes more sense (see `+emacs-lisp-linter-warnings') + ;; UX: Both Flycheck's and Flymake's two emacs-lisp checkers produce a *lot* + ;; of false positives in non-packages (like Emacs configs or elisp + ;; scripts), so I disable `checkdoc' (`emacs-lisp-checkdoc', + ;; `elisp-flymake-checkdoc') and set `byte-compile-warnings' to a subset + ;; that makes more sense (see `+emacs-lisp-linter-warnings') (add-hook! '(flycheck-mode-hook flymake-mode-hook) #'+emacs-lisp-non-package-mode) (defadvice! +syntax--fix-elisp-flymake-load-path (orig-fn &rest args) From d38787edf48f4c08bdf7ea8b3b54fcbc268f13b5 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 2 Feb 2024 18:49:05 -0500 Subject: [PATCH 331/523] bump: :lang emacs-lisp Wilfred/elisp-def@1d2e88a232ec -> Wilfred/elisp-def@1ad4baccbf3d jorgenschaefer/emacs-buttercup@30c703d215b0 -> jorgenschaefer/emacs-buttercup@24d43b2ce262 purcell/flycheck-package@3a6aaed29ff6 -> purcell/flycheck-package@75efa098cf17 tonini/overseer.el@02d49f582e80 -> tonini/overseer.el@7fdcf1a6fba6 xuchunyang/elisp-demos@8d0cd806b109 -> xuchunyang/elisp-demos@1a108d1c5011 --- modules/lang/emacs-lisp/packages.el | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/lang/emacs-lisp/packages.el b/modules/lang/emacs-lisp/packages.el index ce563644c..1e7bf2f93 100644 --- a/modules/lang/emacs-lisp/packages.el +++ b/modules/lang/emacs-lisp/packages.el @@ -8,13 +8,13 @@ ;; Tools (package! macrostep :pin "0b04a89f698c335c9ea492553470a8d45c113edd") -(package! overseer :pin "02d49f582e80e36b4334c9187801c5ecfb027789") -(package! elisp-def :pin "1d2e88a232ec16bce036b49577c4d4d96035f9f7") -(package! elisp-demos :pin "8d0cd806b109076e6c4383edf59dbab9435dc5dc") +(package! overseer :pin "7fdcf1a6fba6b1569a09c1666b4e51bcde266ed9") +(package! elisp-def :pin "1ad4baccbf3d0d13e7607d332ae6bc60a5dd7360") +(package! elisp-demos :pin "1a108d1c5011f9ced58be2ca98bea1fbd4130a2f") (when (and (modulep! :checkers syntax) (not (modulep! :checkers syntax +flymake))) - (package! flycheck-package :pin "3a6aaed29ff61418c48c0251e1432c30748ae739") + (package! flycheck-package :pin "75efa098cf17dc14c363e2ca9b68afdac7766b5b") (package! flycheck-cask :pin "4b2ede6362ded4a45678dfbef1876faa42edbd58")) ;; Libraries -(package! buttercup :pin "30c703d215b075aaede936a2c424f65b5f7b6391") +(package! buttercup :pin "24d43b2ce262faf59e5ff9f72466efb293aa6154") From 659f7bfc71d4d321728a5b8d68c5d2cd218d3dcb Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 5 Dec 2023 17:05:13 -0500 Subject: [PATCH 332/523] refactor!: deprecate IS-* OS constants BREAKING CHANGE: This deprecates the IS-(MAC|WINDOWS|LINUX|BSD) family of global constants in favor of a native `featurep` check: IS-MAC -> (featurep :system 'macos) IS-WINDOWS -> (featurep :system 'windows) IS-LINUX -> (featurep :system 'linux) IS-BSD -> (featurep :system 'bsd) The constants will stick around until the v3 release so folks can still use it -- and there are still some modules that use it, but I'll phase those uses out gradually. Fix: #7479 --- docs/examples.org | 6 +- lisp/cli/packages.el | 2 +- lisp/doom-keybinds.el | 4 +- lisp/doom-projects.el | 6 +- lisp/doom-start.el | 4 +- lisp/doom.el | 72 +++++++++++++++------- lisp/lib/system.el | 4 +- modules/app/everywhere/doctor.el | 4 +- modules/app/irc/config.el | 4 +- modules/checkers/grammar/config.el | 4 +- modules/completion/helm/config.el | 2 +- modules/completion/ivy/config.el | 6 +- modules/completion/vertico/config.el | 2 +- modules/config/default/+evil-bindings.el | 2 +- modules/config/default/autoload/default.el | 2 +- modules/config/default/config.el | 6 +- modules/editor/format/autoload/format.el | 2 +- modules/editor/multiple-cursors/config.el | 3 +- modules/editor/parinfer/config.el | 13 ++-- modules/emacs/dired/config.el | 8 +-- modules/emacs/dired/doctor.el | 2 +- modules/emacs/vc/config.el | 2 +- modules/email/mu4e/autoload/advice.el | 2 +- modules/email/mu4e/config.el | 4 +- modules/email/mu4e/doctor.el | 2 +- modules/lang/cc/config.el | 10 +-- modules/lang/latex/+viewers.el | 6 +- modules/lang/lua/autoload/lua.el | 2 +- modules/lang/lua/config.el | 6 +- modules/lang/markdown/config.el | 4 +- modules/lang/nim/config.el | 2 +- modules/lang/org/autoload/org-capture.el | 4 +- modules/lang/org/autoload/org-export.el | 9 +-- modules/lang/org/config.el | 6 +- modules/lang/org/contrib/dragndrop.el | 4 +- modules/lang/org/contrib/ipython.el | 2 +- modules/lang/org/doctor.el | 6 +- modules/lang/org/packages.el | 2 +- modules/lang/sh/config.el | 2 +- modules/os/macos/config.el | 2 +- modules/os/tty/config.el | 4 +- modules/term/eshell/config.el | 2 +- modules/term/eshell/packages.el | 2 +- modules/tools/debugger/config.el | 2 +- modules/tools/lookup/autoload/lookup.el | 2 +- modules/tools/lookup/config.el | 2 +- modules/tools/lookup/packages.el | 2 +- modules/ui/ligatures/config.el | 3 +- modules/ui/ligatures/doctor.el | 8 +-- modules/ui/modeline/+light.el | 2 +- modules/ui/modeline/config.el | 4 +- templates/init.example.el | 2 +- 52 files changed, 150 insertions(+), 120 deletions(-) diff --git a/docs/examples.org b/docs/examples.org index 9b1107f43..c88ba5fd5 100644 --- a/docs/examples.org +++ b/docs/examples.org @@ -379,7 +379,7 @@ Or to create aliases for functions that behave differently: "C-x C-r" 'a-global-keybind :g "C-x C-r" 'another-global-keybind ; same as above - (:when IS-MAC + (:when (featurep :system 'macos) :n "M-s" 'some-fn :i "M-o" (cmd! (message "Hi")))) @@ -604,7 +604,7 @@ These are side-by-side comparisons, showing how to bind keys with and without ;;helm :tools - (:if IS-MAC macos) + (:if (featurep :system 'macos) macos) docker lsp @@ -617,7 +617,7 @@ These are side-by-side comparisons, showing how to bind keys with and without ((string= system-name "writing-pc") (org +dragndrop) ruby)) - (:if IS-LINUX + (:if (featurep :system 'linux) (web +lsp) web) diff --git a/lisp/cli/packages.el b/lisp/cli/packages.el index 74daa9ea7..1cd6d4d45 100644 --- a/lisp/cli/packages.el +++ b/lisp/cli/packages.el @@ -297,7 +297,7 @@ declaration) or dependency thereof that hasn't already been." ;; variables entry is missing the suffix" errors when ;; installing them (see hlissner/doom-emacs#2637), so ;; have git handle conversion by force. - (when (and IS-WINDOWS (stringp local-repo)) + (when (and doom--system-windows-p (stringp local-repo)) (let ((default-directory (straight--repos-dir local-repo))) (when (file-in-directory-p default-directory straight-base-dir) (straight--process-run "git" "config" "core.autocrlf" "true"))))) diff --git a/lisp/doom-keybinds.el b/lisp/doom-keybinds.el index 0cc6e4841..f6ff2a99a 100644 --- a/lisp/doom-keybinds.el +++ b/lisp/doom-keybinds.el @@ -30,7 +30,7 @@ and Emacs states, and for non-evil users.") ;;; Global keybind settings (cond - (IS-MAC + (doom--system-macos-p ;; mac-* variables are used by the special emacs-mac build of Emacs by ;; Yamamoto Mitsuharu, while other builds use ns-*. (setq mac-command-modifier 'super @@ -40,7 +40,7 @@ and Emacs states, and for non-evil users.") ;; Free up the right option for character composition mac-right-option-modifier 'none ns-right-option-modifier 'none)) - (IS-WINDOWS + (doom--system-windows-p (setq w32-lwindow-modifier 'super w32-rwindow-modifier 'super))) diff --git a/lisp/doom-projects.el b/lisp/doom-projects.el index 98c4affb4..4d434e32d 100644 --- a/lisp/doom-projects.el +++ b/lisp/doom-projects.el @@ -147,7 +147,7 @@ c) are not valid projectile projects." (projectile-serialize-cache)))) ;; Some MSYS utilities auto expanded the `/' path separator, so we need to prevent it. - (when IS-WINDOWS + (when doom--system-windows-p (setenv "MSYS_NO_PATHCONV" "1") ; Fix path in Git Bash (setenv "MSYS2_ARG_CONV_EXCL" "--path-separator")) ; Fix path in MSYS2 @@ -192,11 +192,11 @@ And if it's a function, evaluate it." (concat (format "%s . -0 -H --color=never --type file --type symlink --follow --exclude .git %s" bin (if (version< version "8.3.0") "" "--strip-cwd-prefix")) - (if IS-WINDOWS " --path-separator=/")))) + (if doom--system-windows-p " --path-separator=/")))) ;; Otherwise, resort to ripgrep, which is also faster than find ((executable-find "rg" t) (concat "rg -0 --files --follow --color=never --hidden -g!.git" - (if IS-WINDOWS " --path-separator=/"))) + (if doom--system-windows-p " --path-separator=/"))) ("find . -type f -print0")))) (defadvice! doom--projectile-default-generic-command-a (fn &rest args) diff --git a/lisp/doom-start.el b/lisp/doom-start.el index a3777b47b..5a68dd036 100644 --- a/lisp/doom-start.el +++ b/lisp/doom-start.el @@ -120,7 +120,7 @@ ;; focus when it is started, among other things, so enable the menu-bar for ;; GUI frames, but keep it disabled in terminal frames because there it ;; activates an ugly, in-frame menu bar. -(eval-when! IS-MAC +(eval-when! doom--system-macos-p (add-hook! '(window-setup-hook after-make-frame-functions) (defun doom-restore-menu-bar-in-gui-frames-h (&optional frame) (when-let (frame (or frame (selected-frame))) @@ -137,7 +137,7 @@ (setq default-input-method nil) ;; ...And the clipboard on Windows could be in a wider encoding (UTF-16), so ;; leave Emacs to its own devices. -(eval-when! IS-WINDOWS +(eval-when! (not doom--system-windows-p) (setq selection-coding-system 'utf-8)) diff --git a/lisp/doom.el b/lisp/doom.el index 17fc2e32f..d6812e6f2 100644 --- a/lisp/doom.el +++ b/lisp/doom.el @@ -107,7 +107,30 @@ "recompile it.") emacs-version old-version))) -;;; Custom features +;;; Custom features & global constants +;; Doom has its own features that its modules, CLI, and user extensions can +;; announce, and don't belong in `features', so they are stored here, which can +;; include information about the external system environment. +(defconst doom-features + (pcase system-type + ('darwin '(macos bsd)) + ((or 'cygwin 'windows-nt 'ms-dos) '(windows)) + ((or 'gnu 'gnu/linux) '(linux)) + ((or 'gnu/kfreebsd 'berkeley-unix) '(linux bsd))) + "A list of symbols denoting available features in the active Doom profile.") + +;; Convenience aliases for internal use only (may be removed later). +(defconst doom-system (car doom-features)) +(defconst doom--system-windows-p (eq 'windows doom-system)) +(defconst doom--system-macos-p (eq 'macos doom-system)) +(defconst doom--system-linux-p (eq 'linux doom-system)) + +;; `system-type' is esoteric, so I create a pseudo feature as a stable and +;; consistent alternative, and all while using the same `featurep' interface +;; we're already familiar with. +(push :system features) +(put :system 'subfeatures doom-features) + ;; Emacs needs a more consistent way to detect build features, and the docs ;; claim `system-configuration-features' is not da way. Some features (that ;; don't represent packages) can be found in `features' (which `featurep' @@ -126,25 +149,30 @@ (if (not (native-comp-available-p)) (delq 'native-compile features))) -;;; Global constants ;; DEPRECATED remove in v3 -(defconst IS-MAC (eq system-type 'darwin)) -(defconst IS-LINUX (memq system-type '(gnu gnu/linux gnu/kfreebsd berkeley-unix))) -(defconst IS-WINDOWS (memq system-type '(cygwin windows-nt ms-dos))) -(defconst IS-BSD (memq system-type '(darwin berkeley-unix gnu/kfreebsd))) -(defconst EMACS28+ (> emacs-major-version 27)) -(defconst EMACS29+ (> emacs-major-version 28)) -(defconst MODULES (featurep 'dynamic-modules)) -(defconst NATIVECOMP (featurep 'native-compile)) +(with-no-warnings + (defconst IS-MAC doom--system-macos-p) + (defconst IS-LINUX doom--system-linux-p) + (defconst IS-WINDOWS doom--system-windows-p) + (defconst IS-BSD (memq 'bsd doom-features)) + (defconst EMACS28+ (> emacs-major-version 27)) + (defconst EMACS29+ (> emacs-major-version 28)) + (defconst MODULES (featurep 'dynamic-modules)) + (defconst NATIVECOMP (featurep 'native-compile)) + + (make-obsolete-variable 'IS-MAC "Use (featurep :system 'macos) instead" "3.0.0") + (make-obsolete-variable 'IS-LINUX "Use (featurep :system 'linux) instead" "3.0.0") + (make-obsolete-variable 'IS-WINDOWS "Use (featurep :system 'windows) instead" "3.0.0") + (make-obsolete-variable 'IS-BSD "Use (featurep :system 'bsd) instead" "3.0.0") + (make-obsolete-variable 'EMACS28+ "Use (>= emacs-major-version 28) instead" "3.0.0") + (make-obsolete-variable 'EMACS29+ "Use (>= emacs-major-version 29) instead" "3.0.0") + (make-obsolete-variable 'MODULES "Use (featurep 'dynamic-modules) instead" "3.0.0") + (make-obsolete-variable 'NATIVECOMP "Use (featurep 'native-compile) instead" "3.0.0")) -(make-obsolete-variable 'EMACS28+ "Use (>= emacs-major-version 28) instead" "3.0.0") -(make-obsolete-variable 'EMACS29+ "Use (>= emacs-major-version 29) instead" "3.0.0") -(make-obsolete-variable 'MODULES "Use (featurep 'dynamic-modules) instead" "3.0.0") -(make-obsolete-variable 'NATIVECOMP "Use (featurep 'native-compile) instead" "3.0.0") ;;; Fix $HOME on Windows ;; $HOME isn't normally defined on Windows, but many unix tools expect it. -(when IS-WINDOWS +(when doom--system-windows-p (when-let (realhome (and (null (getenv-internal "HOME")) (getenv "USERPROFILE"))) @@ -228,7 +256,7 @@ These files should not be shared across systems. By default, it is used by (define-obsolete-variable-alias 'doom-etc-dir 'doom-data-dir "3.0.0") (defvar doom-data-dir (if doom-profile - (if IS-WINDOWS + (if doom--system-windows-p (expand-file-name "doomemacs/data/" (getenv-internal "APPDATA")) (expand-file-name "doom/" (or (getenv-internal "XDG_DATA_HOME") "~/.local/share"))) ;; DEPRECATED: .local will be removed entirely in 3.0 @@ -247,7 +275,7 @@ For profile-local data files, use `doom-profile-data-dir' instead.") (defvar doom-cache-dir (if doom-profile - (if IS-WINDOWS + (if doom--system-windows-p (expand-file-name "doomemacs/cache/" (getenv-internal "APPDATA")) (expand-file-name "doom/" (or (getenv-internal "XDG_CACHE_HOME") "~/.cache"))) ;; DEPRECATED: .local will be removed entirely in 3.0 @@ -266,7 +294,7 @@ For profile-local cache files, use `doom-profile-cache-dir' instead.") (defvar doom-state-dir (if doom-profile - (if IS-WINDOWS + (if doom--system-windows-p (expand-file-name "doomemacs/state/" (getenv-internal "APPDATA")) (expand-file-name "doom/" (or (getenv-internal "XDG_STATE_HOME") "~/.local/state"))) ;; DEPRECATED: .local will be removed entirely in 3.0 @@ -470,8 +498,8 @@ users).") (add-transient-hook! 'tool-bar-mode (tool-bar-setup))) ;; PERF: Unset a non-trivial list of command line options that aren't - ;; relevant to our current OS, but `command-line-1' still processes. - (unless IS-MAC + ;; relevant to this session, but `command-line-1' still processes. + (unless doom--system-macos-p (setq command-line-ns-option-alist nil)) (unless (memq initial-window-system '(x pgtk)) (setq command-line-x-option-alist nil))))) @@ -649,7 +677,7 @@ of 'doom sync' or 'doom gc'." gnutls-algorithm-priority (when (boundp 'libgnutls-version) (concat "SECURE128:+SECURE192:-VERS-ALL" - (if (and (not IS-WINDOWS) + (if (and (not doom--system-windows-p) (>= libgnutls-version 30605)) ":+VERS-TLS1.3") ":+VERS-TLS1.2")) @@ -713,6 +741,8 @@ appropriately against `noninteractive' or the `cli' context." (defun doom--begin-init-h () "Begin the startup process." (when (doom-context-push 'init) + ;; HACK: Ensure OS checks are as fast as possible (given their ubiquity). + (setq features (cons :system (delq :system features))) ;; Remember these variables' initial values, so we can safely reset them at ;; a later time, or consult them without fear of contamination. (dolist (var '(exec-path load-path process-environment)) diff --git a/lisp/lib/system.el b/lisp/lib/system.el index 7a07d1975..0c8d7ea61 100644 --- a/lisp/lib/system.el +++ b/lisp/lib/system.el @@ -4,8 +4,8 @@ (defun doom-system-distro () "Return a symbol representing the installed distro." (with-memoization (get 'doom-system-distro 'cached-value) - (cond (IS-WINDOWS 'windows) - (IS-MAC 'macos) + (cond (doom--system-windows-p 'windows) + (doom--system-macos-p 'macos) ((ignore-errors (with-file-contents! "/etc/os-release" (when (re-search-forward "^ID=\"?\\([^\"\n]+\\)\"?" nil t) diff --git a/modules/app/everywhere/doctor.el b/modules/app/everywhere/doctor.el index 8e7223710..db697d65e 100644 --- a/modules/app/everywhere/doctor.el +++ b/modules/app/everywhere/doctor.el @@ -1,9 +1,9 @@ ;;; app/everywhere/doctor.el -*- lexical-binding: t; -*- -(when IS-WINDOWS +(when (featurep :system 'windows) (error! "emacs-everywhere package does not support windows.")) -(when IS-LINUX +(when (featurep :system 'linux) (let (unmet-deps) (dolist (dep '("xclip" "xdotool" "xprop" "xwininfo")) (unless (executable-find dep) diff --git a/modules/app/irc/config.el b/modules/app/irc/config.el index bf1d73cf1..35133b887 100644 --- a/modules/app/irc/config.el +++ b/modules/app/irc/config.el @@ -187,8 +187,8 @@ playback.") (setq circe-notifications-watch-strings +irc-notifications-watch-strings circe-notifications-emacs-focused nil circe-notifications-alert-style - (cond (IS-MAC 'osx-notifier) - (IS-LINUX 'libnotify) + (cond ((featurep :system 'macos) 'osx-notifier) + ((featurep :system 'linux) 'libnotify) (circe-notifications-alert-style)))) diff --git a/modules/checkers/grammar/config.el b/modules/checkers/grammar/config.el index 174298f5e..64f7ec911 100644 --- a/modules/checkers/grammar/config.el +++ b/modules/checkers/grammar/config.el @@ -13,7 +13,7 @@ (cond ((setq langtool-bin (or (executable-find "languagetool-commandline") (executable-find "languagetool")))) ; for nixpkgs.languagetool - (IS-MAC + ((featurep :system 'macos) (cond ;; is user using home brew? ((file-directory-p "/usr/local/Cellar/languagetool") @@ -25,7 +25,7 @@ ;; macports compatibility ((file-directory-p "/opt/local/share/java/LanguageTool") (setq langtool-java-classpath "/opt/local/share/java/LanguageTool/*")))) - (IS-LINUX + ((featurep :system 'linux) (setq langtool-java-classpath "/usr/share/languagetool:/usr/share/java/languagetool/*"))))) diff --git a/modules/completion/helm/config.el b/modules/completion/helm/config.el index 39dd73c91..7f983f872 100644 --- a/modules/completion/helm/config.el +++ b/modules/completion/helm/config.el @@ -148,7 +148,7 @@ Can be negative.") (defvar helm-generic-files-map (make-sparse-keymap)) (after! helm-locate - (when (and IS-MAC + (when (and (featurep :system 'macos) (null helm-locate-command) (executable-find "mdfind")) (setq helm-locate-command "mdfind -name %s")) diff --git a/modules/completion/ivy/config.el b/modules/completion/ivy/config.el index e1a758dc8..e537abf81 100644 --- a/modules/completion/ivy/config.el +++ b/modules/completion/ivy/config.el @@ -237,7 +237,7 @@ results buffer.") (add-to-list 'ivy-sort-functions-alist '(counsel-imenu)) ;; `counsel-locate' - (when IS-MAC + (when (featurep :system 'macos) ;; Use spotlight on mac by default since it doesn't need any additional setup (setq counsel-locate-cmd #'counsel-locate-cmd-mdfind)) @@ -276,13 +276,13 @@ results buffer.") (cl-loop for dir in projectile-globally-ignored-directories collect "--exclude" collect dir) - (if IS-WINDOWS '("--path-separator=/"))))) + (if (featurep :system 'windows) '("--path-separator=/"))))) ((executable-find "rg" t) (append (list "rg" "--hidden" "--files" "--follow" "--color=never" "--no-messages") (cl-loop for dir in projectile-globally-ignored-directories collect "--glob" collect (concat "!" dir)) - (if IS-WINDOWS '("--path-separator=/")))) + (if (featurep :system 'windows) '("--path-separator=/")))) ((cons find-program args))) (unless (listp args) (user-error "`counsel-file-jump-args' is a list now, please customize accordingly.")) diff --git a/modules/completion/vertico/config.el b/modules/completion/vertico/config.el index e92b9ec47..f92bd85a2 100644 --- a/modules/completion/vertico/config.el +++ b/modules/completion/vertico/config.el @@ -153,7 +153,7 @@ orderless." ;; https://github.com/sharkdp/fd/issues/839 "--full-path --absolute-path" "--hidden --exclude .git" - (when IS-WINDOWS "--path-separator=/")))) + (if (featurep :system 'windows) "--path-separator=/")))) (consult-customize consult-ripgrep consult-git-grep consult-grep diff --git a/modules/config/default/+evil-bindings.el b/modules/config/default/+evil-bindings.el index a62541d4c..c79c078f6 100644 --- a/modules/config/default/+evil-bindings.el +++ b/modules/config/default/+evil-bindings.el @@ -228,7 +228,7 @@ :g "M-8" #'+workspace/switch-to-7 :g "M-9" #'+workspace/switch-to-8 :g "M-0" #'+workspace/switch-to-final - (:when IS-MAC + (:when (featurep :system 'macos) :g "s-t" #'+workspace/new :g "s-T" #'+workspace/display :n "s-1" #'+workspace/switch-to-0 diff --git a/modules/config/default/autoload/default.el b/modules/config/default/autoload/default.el index d49ea8643..a1f645b81 100644 --- a/modules/config/default/autoload/default.el +++ b/modules/config/default/autoload/default.el @@ -24,7 +24,7 @@ If ARG (universal argument), runs `compile' from the current directory." generate `completing-read' candidates." (interactive) (call-interactively - (if (and (not IS-MAC) (executable-find "man")) + (if (and (not (featurep :system 'macos)) (executable-find "man")) (or (command-remapping #'man) #'man) #'woman))) diff --git a/modules/config/default/config.el b/modules/config/default/config.el index 14bed119c..e67adf1e3 100644 --- a/modules/config/default/config.el +++ b/modules/config/default/config.el @@ -81,7 +81,7 @@ ;;;###package tramp -(unless IS-WINDOWS +(unless (featurep :system 'windows) (setq tramp-default-method "ssh")) ; faster than the default scp @@ -300,7 +300,7 @@ Continues comments if executed from a commented line. Consults (define-key tabulated-list-mode-map "q" #'quit-window)) ;; OS specific fixes -(when IS-MAC +(when (featurep :system 'macos) ;; Fix MacOS shift+tab (define-key key-translation-map [S-iso-lefttab] [backtab]) ;; Fix conventional OS keys in Emacs @@ -487,7 +487,7 @@ Continues comments if executed from a commented line. Consults :gi "C-S-RET" #'+default/newline-above :gn [C-S-return] #'+default/newline-above - (:when IS-MAC + (:when (featurep :system 'macos) :gn "s-RET" #'+default/newline-below :gn [s-return] #'+default/newline-below :gn "S-s-RET" #'+default/newline-above diff --git a/modules/editor/format/autoload/format.el b/modules/editor/format/autoload/format.el index 90929cb22..63b932f4e 100644 --- a/modules/editor/format/autoload/format.el +++ b/modules/editor/format/autoload/format.el @@ -17,7 +17,7 @@ (indent 0)) (with-current-buffer formatted-buffer (erase-buffer) - (unless IS-WINDOWS + (unless (featurep :system 'windows) (setq-local coding-system-for-read 'utf-8) (setq-local coding-system-for-write 'utf-8)) ;; Ensure this temp buffer seems as much like the origin buffer as diff --git a/modules/editor/multiple-cursors/config.el b/modules/editor/multiple-cursors/config.el index 107844ed4..cbc4e0d0f 100644 --- a/modules/editor/multiple-cursors/config.el +++ b/modules/editor/multiple-cursors/config.el @@ -74,8 +74,7 @@ (apply fn args))) ;; REVIEW This is tremendously slow on macos and windows for some reason. - (setq evil-mc-enable-bar-cursor (not (or IS-MAC - IS-WINDOWS))) + (setq evil-mc-enable-bar-cursor (featurep :system 'linux)) (after! smartparens ;; Make evil-mc cooperate with smartparens better diff --git a/modules/editor/parinfer/config.el b/modules/editor/parinfer/config.el index a11155393..f76c71a28 100644 --- a/modules/editor/parinfer/config.el +++ b/modules/editor/parinfer/config.el @@ -11,12 +11,13 @@ hy-mode) . parinfer-rust-mode) :init (setq parinfer-rust-library - (concat doom-data-dir "parinfer-rust/" - (cond (IS-MAC "parinfer-rust-darwin.so") - (IS-LINUX "parinfer-rust-linux.so") - (IS-WINDOWS "parinfer-rust-windows.dll") - (IS-BSD "libparinfer_rust.so"))) - parinfer-rust-auto-download (not IS-BSD)) + (file-name-concat + doom-data-dir "parinfer-rust/" + (cond ((featurep :system 'macos) "parinfer-rust-darwin.so") + ((featurep :system 'linux) "parinfer-rust-linux.so") + ((featurep :system 'windows) "parinfer-rust-windows.dll") + ((featurep :system 'bsd) "libparinfer_rust.so"))) + parinfer-rust-auto-download (not (featurep :system 'bsd))) :config (map! :map parinfer-rust-mode-map :localleader diff --git a/modules/emacs/dired/config.el b/modules/emacs/dired/config.el index fe1404ee5..11eab8a36 100644 --- a/modules/emacs/dired/config.el +++ b/modules/emacs/dired/config.el @@ -29,7 +29,7 @@ (set-evil-initial-state! 'image-dired-display-image-mode 'emacs) (let ((args (list "-ahl" "-v" "--group-directories-first"))) - (when IS-BSD + (when (featurep :system 'bsd) ;; Use GNU ls as `gls' from `coreutils' if available. Add `(setq ;; dired-use-ls-dired nil)' to your config to suppress the Dired warning ;; when not using GNU ls. @@ -188,9 +188,9 @@ we have to clean it up ourselves." ;; deleted directory. Of course I do! (setq dired-clean-confirm-killing-deleted-buffers nil) ;; Let OS decide how to open certain files - (when-let (cmd (cond (IS-MAC "open") - (IS-LINUX "xdg-open") - (IS-WINDOWS "start"))) + (when-let (cmd (cond ((featurep :system 'macos) "open") + ((featurep :system 'linux) "xdg-open") + ((featurep :system 'windows) "start"))) (setq dired-guess-shell-alist-user `(("\\.\\(?:docx\\|pdf\\|djvu\\|eps\\)\\'" ,cmd) ("\\.\\(?:jpe?g\\|png\\|gif\\|xpm\\)\\'" ,cmd) diff --git a/modules/emacs/dired/doctor.el b/modules/emacs/dired/doctor.el index 2c2e77b29..bb157a484 100644 --- a/modules/emacs/dired/doctor.el +++ b/modules/emacs/dired/doctor.el @@ -1,4 +1,4 @@ ;;; emacs/dired/doctor.el -*- lexical-binding: t; -*- -(when (and IS-BSD (not (executable-find "gls"))) +(when (and (featurep :system 'bsd) (not (executable-find "gls"))) (warn! "Cannot find gls (GNU ls). This may cause issues with dired")) diff --git a/modules/emacs/vc/config.el b/modules/emacs/vc/config.el index 0fef2c56f..3ea79365c 100644 --- a/modules/emacs/vc/config.el +++ b/modules/emacs/vc/config.el @@ -5,7 +5,7 @@ ;; 2021, amirite? (setq-default vc-handled-backends '(SVN Git Hg)) -(when IS-WINDOWS +(when (featurep :system 'windows) (setenv "GIT_ASKPASS" "git-gui--askpass")) ;; In case the user is using `bug-reference-mode' diff --git a/modules/email/mu4e/autoload/advice.el b/modules/email/mu4e/autoload/advice.el index 29b24d502..d39eaa424 100644 --- a/modules/email/mu4e/autoload/advice.el +++ b/modules/email/mu4e/autoload/advice.el @@ -6,7 +6,7 @@ (defun +org-msg-img-scale-css (img-uri) "For a given IMG-URI, use imagemagick to find its width." (if +org-msg-currently-exporting - (when (and (not IS-WINDOWS)) ; relies on posix path + (when (and (not (featurep :system 'windows))) ; relies on posix path (let ((width-call (and (executable-find "identify") (doom-call-process "identify" "-format" "%w" (substring img-uri 7))))) ; 7=(length "file://") diff --git a/modules/email/mu4e/config.el b/modules/email/mu4e/config.el index 9f2791271..f4f6d9c5b 100644 --- a/modules/email/mu4e/config.el +++ b/modules/email/mu4e/config.el @@ -365,7 +365,7 @@ This should already be the case yet it does not always seem to be." (read-only-mode -1)) ;; process lock control - (when IS-WINDOWS + (when (featurep :system 'windows) (setq +mu4e-lock-file (expand-file-name "~/AppData/Local/Temp/mu4e_lock") +mu4e-lock-request-file (expand-file-name "~/AppData/Local/Temp/mu4e_lock_request"))) @@ -696,7 +696,7 @@ See `+mu4e-msg-gmail-p' and `mu4e-sent-messages-behavior'.") t))) mails))) - (when IS-LINUX + (when (featurep :system 'linux) (mu4e-alert-set-default-style 'libnotify) (defvar +mu4e-alert-bell-cmd '("paplay" . "/usr/share/sounds/freedesktop/stereo/message.oga") diff --git a/modules/email/mu4e/doctor.el b/modules/email/mu4e/doctor.el index bfe18dc4c..24f7c5381 100644 --- a/modules/email/mu4e/doctor.el +++ b/modules/email/mu4e/doctor.el @@ -9,7 +9,7 @@ You may not have a way of fetching mail.")) (when (and (modulep! +org) - (not IS-WINDOWS)) + (not (featurep :system 'windows))) (unless (executable-find "identify") (warn! "Couldn't find the identify command from imagemagick. \ LaTeX fragment re-scaling with org-msg will not work."))) diff --git a/modules/lang/cc/config.el b/modules/lang/cc/config.el index 75f74a55b..81514b2a9 100644 --- a/modules/lang/cc/config.el +++ b/modules/lang/cc/config.el @@ -17,7 +17,7 @@ This is ignored by ccls.") `((c-mode . nil) (c++-mode . ,(list "-std=c++1z" ; use C++17 draft by default - (when IS-MAC + (when (featurep :system 'macos) ;; NOTE beware: you'll get abi-inconsistencies when passing ;; std-objects to libraries linked with libstdc++ (e.g. if you ;; use boost which wasn't compiled with libc++) @@ -286,7 +286,7 @@ If rtags or rdm aren't available, fail silently instead of throwing a breaking e ;; NOTE : This setting is untested yet (after! eglot - (when IS-MAC + (when (featurep :system 'macos) (add-to-list 'eglot-workspace-configuration `((:ccls . ((:clang . ,(list :extraArgs ["-isystem/Library/Developer/CommandLineTools/usr/include/c++/v1" "-isystem/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include" @@ -313,12 +313,12 @@ If rtags or rdm aren't available, fail silently instead of throwing a breaking e (setq-hook! 'lsp-configure-hook ccls-sem-highlight-method (if lsp-enable-semantic-highlighting ccls-sem-highlight-method)) - (when (or IS-MAC - IS-LINUX) + (when (or (featurep :system 'macos) + (featurep :system 'linux)) (setq ccls-initialization-options `(:index (:trackDependency 1 :threads ,(max 1 (/ (doom-system-cpus) 2)))))) - (when IS-MAC + (when (featurep :system 'macos) (setq ccls-initialization-options (append ccls-initialization-options `(:clang ,(list :extraArgs ["-isystem/Library/Developer/CommandLineTools/usr/include/c++/v1" diff --git a/modules/lang/latex/+viewers.el b/modules/lang/latex/+viewers.el index e4c0787a3..f1d439c4b 100644 --- a/modules/lang/latex/+viewers.el +++ b/modules/lang/latex/+viewers.el @@ -9,7 +9,7 @@ (`skim (when-let (app-path - (and IS-MAC + (and (featurep :system 'macos) (file-exists-p! (or "/Applications/Skim.app" "~/Applications/Skim.app")))) (add-to-list 'TeX-view-program-selection '(output-pdf "Skim")) @@ -18,7 +18,7 @@ app-path))))) (`sumatrapdf - (when (and IS-WINDOWS + (when (and (featurep :system 'windows) (executable-find "SumatraPDF")) (add-to-list 'TeX-view-program-selection '(output-pdf "SumatraPDF")))) @@ -40,7 +40,7 @@ (`pdf-tools (when (modulep! :tools pdf) (add-to-list 'TeX-view-program-selection '(output-pdf "PDF Tools")) - (when IS-MAC + (when (featurep :system 'macos) ;; PDF Tools isn't in `TeX-view-program-list-builtin' on macs. (add-to-list 'TeX-view-program-list '("PDF Tools" TeX-pdf-tools-sync-view))) ;; Update PDF buffers after successful LaTeX runs. diff --git a/modules/lang/lua/autoload/lua.el b/modules/lang/lua/autoload/lua.el index 0e359d0d7..c519cbab5 100644 --- a/modules/lang/lua/autoload/lua.el +++ b/modules/lang/lua/autoload/lua.el @@ -5,7 +5,7 @@ (format "%s %s" (if (executable-find "love") "love" - (if IS-MAC "open -a love.app")) + (if (featurep :system 'macos) "open -a love.app")) (shell-quote-argument root)))) ;;;###autoload diff --git a/modules/lang/lua/config.el b/modules/lang/lua/config.el index f93a10611..7d04fd665 100644 --- a/modules/lang/lua/config.el +++ b/modules/lang/lua/config.el @@ -34,9 +34,9 @@ lua-language-server.") ;; is a function is to dynamically change when/if `+lua-lsp-dir' does (list (or (executable-find "lua-language-server") (doom-path +lua-lsp-dir - (cond (IS-MAC "bin/macOS") - (IS-LINUX "bin/Linux") - (IS-WINDOWS "bin/Windows")) + (cond ((featurep :system 'macos) "bin/macOS") + ((featurep :system 'linux) "bin/Linux") + ((featurep :system 'windows) "bin/Windows")) "lua-language-server")) "-E" "-e" "LANG=en" (doom-path +lua-lsp-dir "main.lua"))) diff --git a/modules/lang/markdown/config.el b/modules/lang/markdown/config.el index 6182d8eb1..9461635c9 100644 --- a/modules/lang/markdown/config.el +++ b/modules/lang/markdown/config.el @@ -32,8 +32,8 @@ capture, the end position, and the output buffer.") ;; This is set to `nil' by default, which causes a wrong-type-arg error ;; when you use `markdown-open'. These are more sensible defaults. markdown-open-command - (cond (IS-MAC "open") - (IS-LINUX "xdg-open")) + (cond ((featurep :system 'macos) "open") + ((featurep :system 'linux) "xdg-open")) ;; A sensible and simple default preamble for markdown exports that ;; takes after the github asthetic (plus highlightjs syntax coloring). diff --git a/modules/lang/nim/config.el b/modules/lang/nim/config.el index d15c271c5..ddaf986f3 100644 --- a/modules/lang/nim/config.el +++ b/modules/lang/nim/config.el @@ -14,7 +14,7 @@ nimsuggest isn't installed." (set-formatter! 'nmfmt '("nimfmt" filepath) :modes '(nim-mode)) - (when IS-WINDOWS + (when (featurep :system 'windows) ;; TODO File PR/report upstream (https://github.com/nim-lang/nim-mode) (defadvice! +nim--suggest-get-temp-file-name-a (path) "Removes invalid characters from the temp file path, including the unicode diff --git a/modules/lang/org/autoload/org-capture.el b/modules/lang/org/autoload/org-capture.el index 1430d2336..c00bf2755 100644 --- a/modules/lang/org/autoload/org-capture.el +++ b/modules/lang/org/autoload/org-capture.el @@ -15,12 +15,12 @@ (width . 70) (height . 25) (transient . t) - ,@(when IS-LINUX + ,@(when (featurep :system 'linux) `((window-system . ,(if (boundp 'pgtk-initialized) 'pgtk 'x)) (display . ,(or (getenv "WAYLAND_DISPLAY") (getenv "DISPLAY") ":0")))) - ,(if IS-MAC '(menu-bar-lines . 1))) + ,(if (featurep :system 'macos) '(menu-bar-lines . 1))) "TODO") ;;;###autoload diff --git a/modules/lang/org/autoload/org-export.el b/modules/lang/org/autoload/org-export.el index 5641d8a80..471b59eb0 100644 --- a/modules/lang/org/autoload/org-export.el +++ b/modules/lang/org/autoload/org-export.el @@ -3,13 +3,14 @@ (defun +org--yank-html-buffer (buffer) (with-current-buffer buffer (require 'ox-clip) - (cond ((or IS-WINDOWS IS-MAC) + (cond ((or (featurep :system 'windows) + (featurep :system 'macos)) (shell-command-on-region (point-min) (point-max) - (cond (IS-WINDOWS ox-clip-w32-cmd) - (IS-MAC ox-clip-osx-cmd)))) - (IS-LINUX + (cond ((featurep :system 'windows) ox-clip-w32-cmd) + ((featurep :system 'macos) ox-clip-osx-cmd)))) + ((featurep :system 'linux) (let ((html (buffer-string))) (with-temp-file (make-temp-file "ox-clip-md" nil ".html") (insert html)) diff --git a/modules/lang/org/config.el b/modules/lang/org/config.el index 6d162f428..aae33583c 100644 --- a/modules/lang/org/config.el +++ b/modules/lang/org/config.el @@ -507,7 +507,7 @@ relative to `org-directory', unless it is an absolute path." "file" :face (lambda (path) (if (or (file-remote-p path) ;; filter out network shares on windows (slow) - (if IS-WINDOWS (string-prefix-p "\\\\" path)) + (if (featurep :system 'windows) (string-prefix-p "\\\\" path)) (file-exists-p path)) 'org-link '(warning org-link)))) @@ -931,7 +931,7 @@ between the two." [C-return] #'+org/insert-item-below [C-S-return] #'+org/insert-item-above [C-M-return] #'org-insert-subheading - (:when IS-MAC + (:when (featurep :system 'macos) [s-return] #'+org/insert-item-below [s-S-return] #'+org/insert-item-above [s-M-return] #'org-insert-subheading) @@ -1391,7 +1391,7 @@ between the two." "Advise `server-visit-files' to load `org-protocol' lazily." :around #'server-visit-files (if (not (cl-loop with protocol = - (if IS-WINDOWS + (if (featurep :system 'windows) ;; On Windows, the file arguments for `emacsclient' ;; get funnelled through `expand-file-path' by ;; `server-process-filter'. This substitutes diff --git a/modules/lang/org/contrib/dragndrop.el b/modules/lang/org/contrib/dragndrop.el index e233619b3..fb3dcae11 100644 --- a/modules/lang/org/contrib/dragndrop.el +++ b/modules/lang/org/contrib/dragndrop.el @@ -26,8 +26,8 @@ (setq org-download-method 'attach org-download-timestamp "_%Y%m%d_%H%M%S" org-download-screenshot-method - (cond (IS-MAC "screencapture -i %s") - (IS-LINUX + (cond ((featurep :system 'macos) "screencapture -i %s") + ((featurep :system 'linux) (cond ((executable-find "maim") "maim -s %s") ((executable-find "scrot") "scrot -s %s") ((executable-find "gnome-screenshot") "gnome-screenshot -a -f %s")))) diff --git a/modules/lang/org/contrib/ipython.el b/modules/lang/org/contrib/ipython.el index c8047cf37..9b2016bc0 100644 --- a/modules/lang/org/contrib/ipython.el +++ b/modules/lang/org/contrib/ipython.el @@ -33,7 +33,7 @@ (advice-add #'org-babel-ipython-initiate-session :override #'+org-ob-ipython-initiate-session-a) ;; retina resolution image hack - (when IS-MAC + (when (featurep :system 'macos) (advice-add #'ob-ipython--write-base64-string :around #'+org-ob-ipython-write-base64-string-a)) ;; ipython has its own async keyword, disable ipython in ob-async. diff --git a/modules/lang/org/doctor.el b/modules/lang/org/doctor.el index 38e659fe3..b32bfd294 100644 --- a/modules/lang/org/doctor.el +++ b/modules/lang/org/doctor.el @@ -16,10 +16,10 @@ Migrate your notes to org-roam-v2 and switch to the +roam2 flag (see the module (warn! "Couldn't find the dot executable (from graphviz). org-roam will not be able to generate graph visualizations."))) (when (modulep! +dragndrop) - (when IS-MAC + (when (featurep :system 'macos) (unless (executable-find "pngpaste") (warn! "Couldn't find the pngpaste executable. org-download-clipboard will not work."))) - (when IS-LINUX + (when (featurep :system 'linux) (unless (or (executable-find "maim") (executable-find "scrot") (executable-find "gnome-screenshot")) (warn! "Couldn't find the maim, scrot or gnome-screenshot executable. org-download-clipboard will not work.")) (if (string= "wayland" (getenv "XDG_SESSION_TYPE")) @@ -27,6 +27,6 @@ Migrate your notes to org-roam-v2 and switch to the +roam2 flag (see the module (warn! "Couldn't find the wl-paste executable (from wl-clipboard). org-download-clipboard will not work.")) (unless (executable-find "xclip") (warn! "Couldn't find the xclip executable. org-download-clipboard will not work.")))) - (when IS-WINDOWS + (when (featurep :system 'windows) (unless (executable-find "convert") (warn! "Couldn't find the convert program (from ImageMagick). org-download-clipboard will not work.")))) diff --git a/modules/lang/org/packages.el b/modules/lang/org/packages.el index ac75cc70d..e91a6defd 100644 --- a/modules/lang/org/packages.el +++ b/modules/lang/org/packages.el @@ -54,7 +54,7 @@ :type git :repo "https://repo.or.cz/org-contacts.git"))) -(when (and IS-MAC +(when (and (featurep :system 'macos) (modulep! :os macos)) (package! org-mac-link :pin "e30171a6e98db90787ab8a23b3a7dc4fd13b10f9")) diff --git a/modules/lang/sh/config.el b/modules/lang/sh/config.el index 5a5cd7ed5..8967e60e6 100755 --- a/modules/lang/sh/config.el +++ b/modules/lang/sh/config.el @@ -83,7 +83,7 @@ (set-company-backend! 'sh-mode '(company-shell company-files)) (setq company-shell-delete-duplicates t ;; whatis lookups are exceptionally slow on macOS (#5860) - company-shell-dont-fetch-meta IS-MAC)) + company-shell-dont-fetch-meta (featurep :system 'macos))) (use-package! powershell diff --git a/modules/os/macos/config.el b/modules/os/macos/config.el index 0644a1e0b..848aaf06c 100644 --- a/modules/os/macos/config.el +++ b/modules/os/macos/config.el @@ -48,6 +48,6 @@ (when (not (fboundp 'system-move-file-to-trash)) (defun system-move-file-to-trash (file) "Move FILE to trash." - (when (and (not IS-LINUX) + (when (and (not (featurep :system 'linux)) (not (file-remote-p default-directory))) (osx-trash-move-file-to-trash file))))) diff --git a/modules/os/tty/config.el b/modules/os/tty/config.el index 674c00fea..444b4ba0d 100644 --- a/modules/os/tty/config.el +++ b/modules/os/tty/config.el @@ -19,8 +19,8 @@ (add-hook 'tty-setup-hook #'xterm-mouse-mode) ;; Windows terminals don't support what I'm about to do, but best not to wrap -;; this in a IS-WINDOWS check, in case you're using WSL or Cygwin, which do and -;; *might* support it. +;; this in an OS check, in case you're using WSL or Cygwin, which *might* +;; support it. (add-hook! 'tty-setup-hook (defun doom-init-clipboard-in-tty-emacs-h () ;; Fix the clipboard in tty Emacs by... diff --git a/modules/term/eshell/config.el b/modules/term/eshell/config.el index af7633082..f8e69ed2b 100644 --- a/modules/term/eshell/config.el +++ b/modules/term/eshell/config.el @@ -242,7 +242,7 @@ Emacs versions < 29." (use-package! fish-completion - :unless IS-WINDOWS + :unless (featurep :system 'windows) :hook (eshell-mode . fish-completion-mode) :init (setq fish-completion-fallback-on-bash-p t fish-completion-inhibit-missing-fish-command-warning t)) diff --git a/modules/term/eshell/packages.el b/modules/term/eshell/packages.el index fc1385f0b..21cf6e767 100644 --- a/modules/term/eshell/packages.el +++ b/modules/term/eshell/packages.el @@ -8,6 +8,6 @@ (package! eshell-did-you-mean :pin "80cd8c4b186a2fb29621cf634bcf2bcd914f1e3d") (package! eshell-syntax-highlighting :pin "4ac27eec6595ba116a6151dfaf0b0e0440101e10") -(unless IS-WINDOWS +(unless (featurep :system 'windows) (package! fish-completion :pin "d34d0b96fde63feedf13c4288183d8d4d4d748cf") (package! bash-completion :pin "f1daac0386c24cbe8a244a62c7588cc6847b07ae")) diff --git a/modules/tools/debugger/config.el b/modules/tools/debugger/config.el index 55ebd72be..8e914bc60 100644 --- a/modules/tools/debugger/config.el +++ b/modules/tools/debugger/config.el @@ -27,7 +27,7 @@ ((:lang rust +lsp) :after rustic-mode :require (dap-lldb dap-cpptools)) ((:lang javascript +lsp) :after (js2-mode typescript-mode) - :require (dap-node dap-chrome dap-firefox ,@(if IS-WINDOWS '(dap-edge))))) + :require (dap-node dap-chrome dap-firefox ,@(if (featurep :system 'windows) '(dap-edge))))) "TODO") diff --git a/modules/tools/lookup/autoload/lookup.el b/modules/tools/lookup/autoload/lookup.el index b72a52f4e..befd335fd 100644 --- a/modules/tools/lookup/autoload/lookup.el +++ b/modules/tools/lookup/autoload/lookup.el @@ -413,7 +413,7 @@ Otherwise, falls back on `find-file-at-point'." (read-string "Look up in dictionary: ")) current-prefix-arg)) (message "Looking up dictionary definition for %S" identifier) - (cond ((and IS-MAC (require 'osx-dictionary nil t)) + (cond ((and (featurep :system 'macos) (require 'osx-dictionary nil t)) (osx-dictionary--view-result identifier)) ((and +lookup-dictionary-prefer-offline (require 'wordnut nil t)) diff --git a/modules/tools/lookup/config.el b/modules/tools/lookup/config.el index 4c8daeca0..3a778332a 100644 --- a/modules/tools/lookup/config.el +++ b/modules/tools/lookup/config.el @@ -216,7 +216,7 @@ Dictionary.app behind the scenes to get definitions.") (use-package! define-word :when (modulep! +dictionary) - :unless IS-MAC + :unless (featurep :system 'macos) :defer t :config (setq define-word-displayfn-alist diff --git a/modules/tools/lookup/packages.el b/modules/tools/lookup/packages.el index 545a20fb1..98cff03a9 100644 --- a/modules/tools/lookup/packages.el +++ b/modules/tools/lookup/packages.el @@ -25,7 +25,7 @@ (package! counsel-dash :pin "8decb980f111ebe7027361ee252279a9076da261"))) (when (modulep! +dictionary) - (if IS-MAC + (if (featurep :system 'macos) (package! osx-dictionary :pin "0715e5a3ac659df32a0f0fabfbbeef0228fbd9a9") (package! define-word :pin "31a8c67405afa99d0e25e7c86a4ee7ef84a808fe") ;; REVIEW: This fork fixes SavchenkoValeriy/emacs-powerthesaurus#40. diff --git a/modules/ui/ligatures/config.el b/modules/ui/ligatures/config.el index e11d19579..6312493ba 100644 --- a/modules/ui/ligatures/config.el +++ b/modules/ui/ligatures/config.el @@ -157,7 +157,8 @@ and cannot run in." ;; using the same composition-function-table method ;; https://bitbucket.org/mituharu/emacs-mac/src/26c8fd9920db9d34ae8f78bceaec714230824dac/lisp/term/mac-win.el?at=master#lines-345:805 ;; so use that instead if this module is enabled. - ((and IS-MAC (fboundp 'mac-auto-operator-composition-mode)) + ((if (featurep :system 'macos) + (fboundp 'mac-auto-operator-composition-mode)) (add-hook 'doom-init-ui-hook #'mac-auto-operator-composition-mode 'append)) ;; NOTE: the module does not support Emacs 27 and less, but if we still try to enable ligatures, diff --git a/modules/ui/ligatures/doctor.el b/modules/ui/ligatures/doctor.el index 9ae683ab4..1b1534f67 100644 --- a/modules/ui/ligatures/doctor.el +++ b/modules/ui/ligatures/doctor.el @@ -1,7 +1,8 @@ ;; This cond expression mimics the activation conditional of ligatures, ;; with a fallback that triggers a warning. (cond - ((and IS-MAC (fboundp 'mac-auto-operator-composition-mode)) + ((if (featurep :system 'macos) + (fboundp 'mac-auto-operator-composition-mode)) (ignore)) ((and (> emacs-major-version 27) @@ -10,7 +11,6 @@ (featurep 'composite)) ; Emacs loads `composite' at startup (ignore)) - (t - (if IS-MAC - (warn! "The (:ui ligatures) module does not support your version of Emacs. Install emacs-plus with at least Emacs 28, or emacs-mac.") + ((if (featurep :system 'macos) + (warn! "The (:ui ligatures) module does not support your version of Emacs. Install emacs-plus with at least Emacs 28, or emacs-mac.") (warn! "The (:ui ligatures) module does not support your version of Emacs. Make sure to have at least Emacs 28 with Harfbuzz configured (should be the default).")))) diff --git a/modules/ui/modeline/+light.el b/modules/ui/modeline/+light.el index 8f96d9bf0..26515b65f 100644 --- a/modules/ui/modeline/+light.el +++ b/modules/ui/modeline/+light.el @@ -489,7 +489,7 @@ lines are selected, or the NxM dimensions of a block selection.") `(:eval (let ((sys (coding-system-plist buffer-file-coding-system)) (eol (coding-system-eol-type-mnemonic buffer-file-coding-system))) - (concat (unless (equal eol ,(if IS-WINDOWS "CRLF" "LF")) + (concat (unless (equal eol ,(if (featurep :system 'windows) "CRLF" "LF")) (concat " " eol " ")) (if (memq (plist-get sys :category) '(coding-category-undecided coding-category-utf-8)) diff --git a/modules/ui/modeline/config.el b/modules/ui/modeline/config.el index b58bf3eff..8aef20d7e 100644 --- a/modules/ui/modeline/config.el +++ b/modules/ui/modeline/config.el @@ -24,9 +24,7 @@ ;; than the current OSes preference doom-modeline-buffer-encoding 'nondefault doom-modeline-default-eol-type - (cond (IS-MAC 2) - (IS-WINDOWS 1) - (0))) + (pcase doom-system ('macos 2) ('windows 1) (_ 0))) :config ;; Fix an issue where these two variables aren't defined in TTY Emacs on MacOS diff --git a/templates/init.example.el b/templates/init.example.el index a55152d26..169604c3b 100644 --- a/templates/init.example.el +++ b/templates/init.example.el @@ -110,7 +110,7 @@ ;;upload ; map local to remote projects via ssh/ftp :os - (:if IS-MAC macos) ; improve compatibility with macOS + (:if (featurep :system 'macos) macos) ; improve compatibility with macOS ;;tty ; improve the terminal Emacs experience :lang From fc6934c24073f07c7caecba65bf303479ef036c7 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 2 Feb 2024 18:54:14 -0500 Subject: [PATCH 333/523] refactor: introduce doom-module-load-path This renames doom-modules-dirs to doom-module-load-path, which dictates where Doom searches for module trees or single modules, in preparation for more sophisticated module lookups in v3. This also deprecates doom-modules-dirs, which will be fully removed in the v3 release. --- lisp/doom-modules.el | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/lisp/doom-modules.el b/lisp/doom-modules.el index fa7f4ccbc..34a87863b 100644 --- a/lisp/doom-modules.el +++ b/lisp/doom-modules.el @@ -8,10 +8,18 @@ (defvar doom-modules (make-hash-table :test 'equal) "A hash table of enabled modules. Set by `doom-initialize-modules'.") -(defvar doom-modules-dirs - (list (expand-file-name "modules/" doom-user-dir) - doom-modules-dir) - "A list of module root directories. Order determines priority.") +(defvar doom-module-load-path + (list (file-name-concat doom-user-dir "modules") + (file-name-concat doom-emacs-dir "modules")) + "A list of paths where Doom should search for modules. + +Order determines priority (from highest to lowest). + +Each entry is a string; an absolute path to the root directory of a module tree. +In other words, they should contain a two-level nested directory structure, +where the module's group and name was deduced from the first and second level of +directories. For example: if $DOOMDIR/modules/ is an entry, a +$DOOMDIR/modules/lang/ruby/ directory represents a ':lang ruby' module.") ;;; Module file variables (defvar doom-module-init-file "init.el" @@ -41,6 +49,12 @@ NOT IMPLEMENTED YET. This file contains a module's metadata: their version, maintainers, checks, features, submodules, debug information, etc. And are used to locate modules in the user's file tree.") + +;; +;;; Obsolete variables + +(define-obsolete-variable-alias 'doom-modules-dirs 'doom-module-load-path "3.0.0") + (defconst doom-obsolete-modules '((:feature (version-control (:emacs vc) (:ui vc-gutter)) (spellcheck (:checkers spell)) @@ -342,14 +356,15 @@ If ENABLED-ONLY, return nil if the containing module isn't enabled." ((file-in-directory-p path doom-user-dir) (cons :user nil)))))) -(defun doom-module-load-path (&optional module-dirs) +(defun doom-module-load-path (&optional module-load-path) "Return a list of file paths to activated modules. The list is in no particular order and its file paths are absolute. If MODULE-DIRS is non-nil, include all modules (even disabled ones) available in those directories." (declare (pure t) (side-effect-free t)) - (cl-loop for (cat . mod) in (doom-module-list module-dirs) + (cl-loop with module-load-path = (or module-load-path doom-module-load-path) + for (cat . mod) in (doom-module-list module-load-path) collect (doom-module-locate-path cat mod))) (defun doom-module-mplist-map (fn mplist) From 77ea4013dd1a13253a712e593265e8164c144fee Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 2 Feb 2024 18:58:34 -0500 Subject: [PATCH 334/523] refactor: doom-module: conform variables to conventions - Rename doom--empty-module-context to doom-module--empty-context. - Nest doom-module-context symbol plist in its 'keys' property. (By convention, Doom uses keywords as keys in most places. Let's be consistent) - Updates all uses of doom-module--context-field and doom-module-context-get. --- lisp/doom-modules.el | 31 +++++++++++++++++-------------- modules/lang/org/config.el | 2 +- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/lisp/doom-modules.el b/lisp/doom-modules.el index 34a87863b..0d0c5fd9b 100644 --- a/lisp/doom-modules.el +++ b/lisp/doom-modules.el @@ -125,12 +125,12 @@ your `doom!' block, a warning is emitted before replacing it with :emacs vc and ;; ;;; `doom-module-context' -(defvar doom--empty-module-context [nil nil nil nil nil nil nil]) +(defvar doom-module--empty-context [nil nil nil nil nil nil nil]) (eval-and-compile - (setplist 'doom-module-context '(index 0 initdepth 1 configdepth 2 - group 3 name 4 flags 5 features 6))) -(defvar doom-module-context doom--empty-module-context + (put 'doom-module-context 'keys '(:index 0 :initdepth 1 :configdepth 2 + :group 3 :name 4 :flags 5 :features 6))) +(defvar doom-module-context doom-module--empty-context "A vector describing the module associated it with the active context. Contains the following: [INDEX INITDEPTH CONFIGDEPTH :GROUP MODULE FLAGS FEATURES] @@ -138,7 +138,8 @@ Contains the following: [INDEX INITDEPTH CONFIGDEPTH :GROUP MODULE FLAGS FEATURE Do not directly set this variable, only let-bind it.") ;; DEPRECATED: Remove this when byte-compilation is introduced to Doom core. -(defmacro doom-module--context-field (field) (get 'doom-module-context field)) +(defmacro doom-module--context-field (field) + (plist-get (get 'doom-module-context 'keys) field)) (defun doom-module-context-get (field &optional context) "Return the FIELD of CONTEXT. @@ -146,7 +147,9 @@ Do not directly set this variable, only let-bind it.") FIELD should be one of `index', `initdepth', `configdepth', `group', `name', `flags', or `features'. CONTEXT should be a `doom-module-context' vector. If omitted, defaults to `doom-module-context'." - (aref (or context doom-module-context) (get 'doom-module-context field))) + (aref (or context doom-module-context) + (plist-get (get 'doom-module-context 'keys) + field))) (defun doom-module-context (group &optional name) "Create a `doom-module-context' from a module by GROUP and NAME. @@ -156,14 +159,14 @@ If NAME is omitted, GROUP is treated as a module key cons cell: (GROUP . NAME)." (let ((key (if name (cons group name) group))) (or (get (or (car-safe key) key) (cdr-safe key)) - doom--empty-module-context))) + doom-module--empty-context))) (defun doom-module-context-key (&optional context) "Return the module of the active `doom-module-context' as a module key." (declare (side-effect-free t)) (let ((context (or context doom-module-context))) - (cons (aref context (doom-module--context-field group)) - (aref context (doom-module--context-field name))))) + (cons (aref context (doom-module--context-field :group)) + (aref context (doom-module--context-field :name))))) (defmacro doom-module-context-with (module-key &rest body) "Evaluate BODY with `doom-module-context' informed by MODULE-KEY." @@ -477,20 +480,20 @@ For more about modules and flags, see `doom!'." ;; PERF: This macro bypasses the module API to spare startup their runtime ;; cost, as `modulep!' gets called *a lot* during startup. In the future, ;; Doom will byte-compile its core files. At that time, we can use it again. - (and (cond (flag (memq flag (aref (or (get category module) doom--empty-module-context) - (doom-module--context-field flags)))) + (and (cond (flag (memq flag (aref (or (get category module) doom-module--empty-context) + (doom-module--context-field :flags)))) (module (get category module)) ((aref doom-module-context 0) (memq category (aref doom-module-context - (doom-module--context-field flags)))) + (doom-module--context-field :flags)))) ((let ((file ;; This must be expanded at the call site, not in ;; `modulep!'s definition, to get the file we want. (macroexpand '(file!)))) (if-let (module (doom-module-from-path file)) (memq category (aref (or (get (car module) (cdr module)) - doom--empty-module-context) - (doom-module--context-field flags))) + doom-module--empty-context) + (doom-module--context-field :flags))) (error "(modulep! %s %s %s) couldn't figure out what module it was called from (in %s)" category module flag file))))) t)) diff --git a/modules/lang/org/config.el b/modules/lang/org/config.el index aae33583c..0fda370f9 100644 --- a/modules/lang/org/config.el +++ b/modules/lang/org/config.el @@ -1352,7 +1352,7 @@ between the two." )) ;;; Custom org modules - (dolist (flag (doom-module-context-get 'flags)) + (dolist (flag (doom-module-context-get :flags)) (load! (concat "contrib/" (substring (symbol-name flag) 1)) nil t)) ;; Add our general hooks after the submodules, so that any hooks the From 3bea4f66a8443ef8a0525bd3b180b0c650dccdb8 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 3 Feb 2024 17:01:37 -0500 Subject: [PATCH 335/523] refactor(emacs-lisp): elisp-demos: reorganize Doom demos - Move Doom core elisp API demos out of docs/examples.org into lisp/demos.org. - Recognize and search demos.org file in modules for additional demos (including $DOOMDIR/demos.org). - Refactor emacs-lisp module to use new elisp-demos-user-files variable instead of an advice. This way, elisp-demo's commands (such as `elisp-demos-find-demo` and `elisp-demos-add-demo`) will include Doom's demos. --- docs/examples.org | 678 +--------------------------- lisp/demos.org | 654 +++++++++++++++++++++++++++ modules/lang/emacs-lisp/autoload.el | 25 - modules/lang/emacs-lisp/config.el | 21 +- 4 files changed, 675 insertions(+), 703 deletions(-) create mode 100644 lisp/demos.org diff --git a/docs/examples.org b/docs/examples.org index c88ba5fd5..51287c7ab 100644 --- a/docs/examples.org +++ b/docs/examples.org @@ -34,33 +34,6 @@ of our contributing guide first. This section is dedicated to examples of concepts and libraries that can benefit all Emacs users, whether or not they use Doom. -** TODO Emacs Lisp :demos: -**** file-name-with-extension -:PROPERTIES: -:added: 28.1 -:END: -#+begin_src emacs-lisp -(file-name-with-extension "some/file.cpp" "h") -#+end_src - -#+RESULTS: -: some/file.h - -**** file-name-concat -:PROPERTIES: -:added: 28.1 -:END: -#+begin_src emacs-lisp -(file-name-concat user-emacs-directory "lisp" "file.el") -#+end_src - -#+begin_src emacs-lisp -(file-name-concat "foo" "bar" "baz") -#+end_src - -#+RESULTS: -: foo/bar/baz - ** TODO Templates *** TODO Emacs package *** TODO Dynamic module @@ -70,655 +43,6 @@ This section is dedicated to examples of concepts and libraries only relevant to Doom and its users. These are intended to be demonstrations, not substitutes for documentation. -** TODO Emacs Lisp :demos: -*** doom-lib -**** add-hook! -:PROPERTIES: -:added: 3.0.0-pre -:END: -#+begin_src emacs-lisp -;; With only one hook and one function, this is identical to `add-hook'. In that -;; case, use that instead. -(add-hook! 'some-mode-hook #'enable-something) - -;; Adding many-to-many functions to hooks -(add-hook! some-mode #'enable-something #'and-another) -(add-hook! some-mode '(enable-something and-another)) -(add-hook! '(one-mode-hook second-mode-hook) #'enable-something) -(add-hook! (one-mode second-mode) #'enable-something) - -;; Appending and local hooks -(add-hook! (one-mode second-mode) :append #'enable-something) -(add-hook! (one-mode second-mode) :local #'enable-something) - -;; With arbitrary forms -(add-hook! (one-mode second-mode) (setq v 5) (setq a 2)) -(add-hook! (one-mode second-mode) :append :local (setq v 5) (setq a 2)) - -;; Inline named hook functions -(add-hook! '(one-mode-hook second-mode-hook) - (defun do-something () - ...) - (defun do-another-thing () - ...)) -#+end_src - -**** TODO add-transient-hook! -:PROPERTIES: -:added: 3.0.0-pre -:END: -**** after! -:PROPERTIES: -:added: 3.0.0-pre -:END: -#+begin_src emacs-lisp :eval no -;;; `after!' will take: - -;; An unquoted package symbol (the name of a package) -(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) ...) - -;; An unquoted, nested list of compound package lists, using any combination of -;; :or/:any and :and/:all -(after! (:or package-a package-b ...) ...) -(after! (:and package-a package-b ...) ...) -(after! (:and package-a (:or package-b package-c) ...) ...) -;; (Without :or/:any/:and/:all, :and/:all are implied.) - -;; A common mistake is to pass it the names of major or minor modes, e.g. -(after! rustic-mode ...) -(after! python-mode ...) -;; But the code in them will never run! rustic-mode is in the `rustic' package -;; and python-mode is in the `python' package. This is what you want: -(after! rustic ...) -(after! python ...) -#+end_src -**** appendq! -:PROPERTIES: -:added: 3.0.0-pre -:END: -#+begin_src emacs-lisp -(let ((x '(a b c))) - (appendq! x '(c d e)) - x) -#+end_src - -#+RESULTS: -: (a b c c d e) - -#+begin_src emacs-lisp -(let ((x '(a b c)) - (y '(c d e)) - (z '(f g))) - (appendq! x y z '(h)) - x) -#+end_src - -#+RESULTS: -: (a b c c d e f g h) - -**** custom-set-faces! -:PROPERTIES: -:added: 3.0.0-pre -:END: -#+begin_src emacs-lisp :eval no -(custom-set-faces! - '(outline-1 :weight normal) - '(outline-2 :weight normal) - '(outline-3 :weight normal) - '(outline-4 :weight normal) - '(outline-5 :weight normal) - '(outline-6 :weight normal) - '(default :background "red" :weight bold) - '(region :background "red" :weight bold)) - -(custom-set-faces! - '((outline-1 outline-2 outline-3 outline-4 outline-5 outline-6) - :weight normal) - '((default region) - :background "red" :weight bold)) - -(let ((red-bg-faces '(default region))) - (custom-set-faces! - `(,(cl-loop for i from 0 to 6 collect (intern (format "outline-%d" i))) - :weight normal) - `(,red-bg-faces - :background "red" :weight bold))) - -;; You may utilise `doom-themes's theme API to fetch or tweak colors from their -;; palettes. No need to wait until the theme or package is loaded. e.g. -(custom-set-faces! - `(outline-1 :foreground ,(doom-color 'red)) - `(outline-2 :background ,(doom-color 'blue))) -#+end_src - -**** custom-theme-set-faces! -:PROPERTIES: -:added: 3.0.0-pre -:END: -#+begin_src emacs-lisp :eval no -(custom-theme-set-faces! 'doom-one - '(outline-1 :weight normal) - '(outline-2 :weight normal) - '(outline-3 :weight normal) - '(outline-4 :weight normal) - '(outline-5 :weight normal) - '(outline-6 :weight normal) - '(default :background "red" :weight bold) - '(region :background "red" :weight bold)) - -(custom-theme-set-faces! '(doom-one-theme doom-one-light-theme) - '((outline-1 outline-2 outline-3 outline-4 outline-5 outline-6) - :weight normal) - '((default region) - :background "red" :weight bold)) - -(let ((red-bg-faces '(default region))) - (custom-theme-set-faces! '(doom-one-theme doom-one-light-theme) - `(,(cl-loop for i from 0 to 6 collect (intern (format "outline-%d" i))) - :weight normal) - `(,red-bg-faces - :background "red" :weight bold))) - -;; You may utilise `doom-themes's theme API to fetch or tweak colors from their -;; palettes. No need to wait until the theme or package is loaded. e.g. -(custom-theme-set-faces! 'doom-one - `(outline-1 :foreground ,(doom-color 'red)) - `(outline-2 :background ,(doom-color 'blue))) -#+end_src - -**** TODO defer-feature! -:PROPERTIES: -:added: 3.0.0-pre -:END: -**** TODO defer-until! -:PROPERTIES: -:added: 3.0.0-pre -:END: -**** disable-packages! -:PROPERTIES: -:added: 3.0.0-pre -:END: -#+begin_src emacs-lisp :eval no -;; Disable packages enabled by DOOM -(disable-packages! some-package second-package) -#+end_src - -**** file-exists-p! -:PROPERTIES: -:added: 3.0.0-pre -:END: -#+begin_src emacs-lisp -(file-exists-p! "init.el" doom-emacs-dir) -#+end_src - -#+RESULTS: -: /home/hlissner/.emacs.d/init.el - -#+begin_src emacs-lisp -(file-exists-p! (and (or "doesnotexist" "init.el") - "LICENSE") - doom-emacs-dir) -#+end_src - -#+RESULTS: -: /home/hlissner/.emacs.d/LICENSE - -**** cmd! -:PROPERTIES: -:added: 3.0.0-pre -:END: -#+begin_src emacs-lisp :eval no -(map! "C-j" (cmd! (newline) (indent-according-to-mode))) -#+end_src - -**** cmd!! -:PROPERTIES: -:added: 3.0.0-pre -:END: -When ~newline~ is passed a numerical prefix argument (=C-u 5 M-x newline=), it -inserts N newlines. We can use ~cmd!!~ to easily create a keybinds that bakes in -the prefix arg into the command call: - -#+begin_src emacs-lisp :eval no -(map! "C-j" (cmd!! #'newline 5)) -#+end_src - -Or to create aliases for functions that behave differently: - -#+begin_src emacs-lisp :eval no -(fset 'insert-5-newlines (cmd!! #'newline 5)) - -;; The equivalent of C-u M-x org-global-cycle, which resets the org document to -;; its startup visibility settings. -(fset 'org-reset-global-visibility (cmd!! #'org-global-cycle '(4)) -#+end_src - -**** cmds! -:PROPERTIES: -:added: 3.0.0-pre -:END: -#+begin_src emacs-lisp :eval no -(map! :i [tab] (cmds! (and (modulep! :editor snippets) - (bound-and-true-p yas-minor-mode) - (yas-maybe-expand-abbrev-key-filter 'yas-expand)) - #'yas-expand - (modulep! :completion company +tng) - #'company-indent-or-complete-common) - :m [tab] (cmds! (and (bound-and-true-p yas-minor-mode) - (evil-visual-state-p) - (or (eq evil-visual-selection 'line) - (not (memq (char-after) (list ?\( ?\[ ?\{ ?\} ?\] ?\)))))) - #'yas-insert-snippet - (and (modulep! :editor fold) - (save-excursion (end-of-line) (invisible-p (point)))) - #'+fold/toggle - (fboundp 'evil-jump-item) - #'evil-jump-item)) -#+end_src - -**** kbd! -:PROPERTIES: -:added: 3.0.0-pre -:END: -#+begin_src emacs-lisp :eval no -(map! "," (kbd! "SPC") - ";" (kbd! ":")) -#+end_src - -**** lambda! -#+begin_src emacs-lisp -(mapcar (lambda! ((&key foo bar baz)) - (list foo bar baz)) - '((:foo 10 :bar 25) - (:baz hello :boop nil) - (:bar 42))) -#+end_src - -**** fn! -#+begin_src emacs-lisp -(mapcar (fn! (symbol-name %)) '(hello world)) -#+end_src - -#+begin_src emacs-lisp -(seq-sort (fn! (string-lessp (symbol-name %1) - (symbol-name %2))) - '(bonzo foo bar buddy doomguy baz zombies)) -#+end_src - -#+begin_src emacs-lisp -(format "You passed %d arguments to this function" - (funcall (fn! (length %*)) :foo :bar :baz "hello" 123 t)) -#+end_src - -**** load! -:PROPERTIES: -:added: 3.0.0-pre -:END: -#+begin_src emacs-lisp :eval no -;;; Lets say we're in ~/.doom.d/config.el -(load! "lisp/module") ; loads ~/.doom.d/lisp/module.el -(load! "somefile" doom-emacs-dir) ; loads ~/.emacs.d/somefile.el -(load! "anotherfile" doom-user-dir) ; loads ~/.doom.d/anotherfile.el - -;; If you don't want a `load!' call to throw an error if the file doesn't exist: -(load! "~/.maynotexist" nil t) -#+end_src - -**** map! -:PROPERTIES: -:added: 3.0.0-pre -:END: -#+begin_src emacs-lisp :eval no -(map! :map magit-mode-map - :m "C-r" 'do-something ; C-r in motion state - :nv "q" 'magit-mode-quit-window ; q in normal+visual states - "C-x C-r" 'a-global-keybind - :g "C-x C-r" 'another-global-keybind ; same as above - - (:when (featurep :system 'macos) - :n "M-s" 'some-fn - :i "M-o" (cmd! (message "Hi")))) - -(map! (:when (modulep! :completion company) ; Conditional loading - :i "C-@" #'+company/complete - (:prefix "C-x" ; Use a prefix key - :i "C-l" #'+company/whole-lines))) - -(map! (:when (modulep! :lang latex) ; local conditional - (:map LaTeX-mode-map - :localleader ; Use local leader - :desc "View" "v" #'TeX-view)) ; Add which-key description - :leader ; Use leader key from now on - :desc "Eval expression" ";" #'eval-expression) -#+end_src - -These are side-by-side comparisons, showing how to bind keys with and without -~map!~: - -#+begin_src emacs-lisp :eval no -;; bind a global key -(global-set-key (kbd "C-x y") #'do-something) -(map! "C-x y" #'do-something) - -;; bind a key on a keymap -(define-key emacs-lisp-mode-map (kbd "C-c p") #'do-something) -(map! :map emacs-lisp-mode-map "C-c p" #'do-something) - -;; unbind a key defined elsewhere -(define-key lua-mode-map (kbd "SPC m b") nil) -(map! :map lua-mode-map "SPC m b" nil) - -;; bind multiple keys -(global-set-key (kbd "C-x x") #'do-something) -(global-set-key (kbd "C-x y") #'do-something-else) -(global-set-key (kbd "C-x z") #'do-another-thing) -(map! "C-x x" #'do-something - "C-x y" #'do-something-else - "C-x z" #'do-another-thing) - -;; bind global keys in normal mode -(evil-define-key* 'normal 'global - (kbd "C-x x") #'do-something - (kbd "C-x y") #'do-something-else - (kbd "C-x z") #'do-another-thing) -(map! :n "C-x x" #'do-something - :n "C-x y" #'do-something-else - :n "C-x z" #'do-another-thing) - -;; or on a deferred keymap -(evil-define-key 'normal emacs-lisp-mode-map - (kbd "C-x x") #'do-something - (kbd "C-x y") #'do-something-else - (kbd "C-x z") #'do-another-thing) -(map! :map emacs-lisp-mode-map - :n "C-x x" #'do-something - :n "C-x y" #'do-something-else - :n "C-x z" #'do-another-thing) - -;; or multiple maps -(dolist (map (list emacs-lisp-mode go-mode-map ivy-minibuffer-map)) - (evil-define-key '(normal insert) map - "a" #'a - "b" #'b - "c" #'c)) -(map! :map (emacs-lisp-mode go-mode-map ivy-minibuffer-map) - :ni "a" #'a - :ni "b" #'b - :ni "c" #'c) - -;; or in multiple states (order of states doesn't matter) -(evil-define-key* '(normal visual) emacs-lisp-mode-map (kbd "C-x x") #'do-something) -(evil-define-key* 'insert emacs-lisp-mode-map (kbd "C-x x") #'do-something-else) -(evil-define-key* '(visual normal insert emacs) emacs-lisp-mode-map (kbd "C-x z") #'do-another-thing) -(map! :map emacs-lisp-mode - :nv "C-x x" #'do-something ; normal+visual - :i "C-x y" #'do-something-else ; insert - :vnie "C-x z" #'do-another-thing) ; visual+normal+insert+emacs - -;; You can nest map! calls: -(evil-define-key* '(normal visual) emacs-lisp-mode-map (kbd "C-x x") #'do-something) -(evil-define-key* 'normal go-lisp-mode-map (kbd "C-x x") #'do-something-else) -(map! (:map emacs-lisp-mode :nv "C-x x" #'do-something) - (:map go-lisp-mode :n "C-x x" #'do-something-else)) -#+end_src - -**** pushnew! -:PROPERTIES: -:added: 3.0.0-pre -:END: -#+begin_src emacs-lisp -(let ((list '(a b c))) - (pushnew! list 'c 'd 'e) - list) -#+end_src - -#+RESULTS: -: (e d a b c) - -**** prependq! -:PROPERTIES: -:added: 3.0.0-pre -:END: -#+begin_src emacs-lisp -(let ((x '(a b c))) - (prependq! x '(c d e)) - x) -#+end_src - -#+RESULTS: -: (c d e a b c) - -#+begin_src emacs-lisp -(let ((x '(a b c)) - (y '(c d e)) - (z '(f g))) - (prependq! x y z '(h)) - x) -#+end_src - -#+RESULTS: -: (c d e f g h a b c) - -**** quiet! -:PROPERTIES: -:added: 3.0.0-pre -:END: -#+begin_src emacs-lisp :eval no -;; Enters recentf-mode without extra output -(quiet! (recentf-mode +1)) -#+end_src -**** remove-hook! -:PROPERTIES: -:added: 3.0.0-pre -:END: -#+begin_src emacs-lisp :eval no -;; With only one hook and one function, this is identical to `remove-hook'. In -;; that case, use that instead. -(remove-hook! 'some-mode-hook #'enable-something) - -;; Removing N functions from M hooks -(remove-hook! some-mode #'enable-something #'and-another) -(remove-hook! some-mode #'(enable-something and-another)) -(remove-hook! '(one-mode-hook second-mode-hook) #'enable-something) -(remove-hook! (one-mode second-mode) #'enable-something) - -;; Removing buffer-local hooks -(remove-hook! (one-mode second-mode) :local #'enable-something) - -;; Removing arbitrary forms (must be exactly the same as the definition) -(remove-hook! (one-mode second-mode) (setq v 5) (setq a 2)) -#+end_src -**** setq! -:PROPERTIES: -:added: 3.0.0-pre -:END: -#+begin_src emacs-lisp -;; Each of these have a setter associated with them, which must be triggered in -;; order for their new values to have an effect. -(setq! evil-want-Y-yank-to-eol nil - evil-want-C-u-scroll nil - evil-want-C-d-scroll nil) -#+end_src -**** setq-hook! -:PROPERTIES: -:added: 3.0.0-pre -:END: -#+begin_src emacs-lisp :eval no -;; Set multiple variables after a hook -(setq-hook! 'markdown-mode-hook - line-spacing 2 - fill-column 80) - -;; Set variables after multiple hooks -(setq-hook! '(eshell-mode-hook term-mode-hook) - hscroll-margin 0) -#+end_src - -**** unsetq-hook! -:PROPERTIES: -:added: 3.0.0-pre -:END: -#+begin_src emacs-lisp :eval no -(unsetq-hook! 'markdown-mode-hook line-spacing) - -;; Removes the following variable hook -(setq-hook! 'markdown-mode-hook line-spacing 2) - -;; Removing N variables from M hooks -(unsetq-hook! some-mode enable-something and-another) -(unsetq-hook! some-mode (enable-something and-another)) -(unsetq-hook! '(one-mode-hook second-mode-hook) enable-something) -(unsetq-hook! (one-mode second-mode) enable-something) -#+end_src -**** versionp! -:PROPERTIES: -:added: 3.0.0-pre -:END: -#+begin_src emacs-lisp -(versionp! "25.3" > "27.1") -#+end_src - -#+RESULTS: -: nil - -#+begin_src emacs-lisp -(versionp! "28.0" <= emacs-version <= "28.1") -#+end_src - -#+RESULTS: -: t - -*** doom-modules -**** doom! -:PROPERTIES: -:added: 3.0.0-pre -:END: -#+begin_src emacs-lisp :eval no -(doom! :completion - company - ivy - ;;helm - - :tools - (:if (featurep :system 'macos) macos) - docker - lsp - - :lang - (cc +lsp) - (:cond ((string= system-name "work-pc") - python - rust - web) - ((string= system-name "writing-pc") - (org +dragndrop) - ruby)) - (:if (featurep :system 'linux) - (web +lsp) - web) - - :config - literate - (default +bindings +smartparens)) -#+end_src - -**** use-package! -:PROPERTIES: -:added: 3.0.0-pre -:END: -#+begin_src emacs-lisp :eval no -;; Use after-call to load package before hook -(use-package! projectile - :after-call (pre-command-hook after-find-file dired-before-readin-hook)) - -;; defer recentf packages one by one -(use-package! recentf - :defer-incrementally easymenu tree-widget timer - :after-call after-find-file) - -;; This is equivalent to :defer-incrementally (abc) -(use-package! abc - :defer-incrementally t) -#+end_src - -**** package! -:PROPERTIES: -:added: 3.0.0-pre -:END: -#+begin_src emacs-lisp :eval no -;; To install a package that can be found on ELPA or any of the sources -;; specified in `straight-recipe-repositories': -(package! evil) -(package! js2-mode) -(package! rainbow-delimiters) - -;; To disable a package included with Doom (which will no-op all its `after!' -;; and `use-package!' blocks): -(package! evil :disable t) -(package! rainbow-delimiters :disable t) - -;; To install a package from a github repo -(package! so-long :recipe (:host github :repo "hlissner/emacs-so-long")) - -;; If a package is particularly big and comes with submodules you don't need, -;; you can tell the package manager not to clone the repo recursively: -(package! ansible :recipe (:nonrecursive t)) - -;; To pin a package to a specific commit: -(package! evil :pin "e7bc39de2f9") -;; ...or branch: -(package! evil :recipe (:branch "stable")) -;; To unpin a pinned package: -(package! evil :pin nil) - -;; If you share your config between two computers, and don't want bin/doom -;; refresh to delete packages used only on one system, use :ignore -(package! evil :ignore (not (equal system-name "my-desktop"))) -#+end_src - -*** doom-cli -**** TODO defcli! -**** TODO defcli-alias! -**** TODO defcli-obsolete! -**** TODO defcli-stub! -**** TODO defcli-autoload! -**** TODO defcli-group! -**** TODO exit! -**** TODO call! -**** TODO run! -**** TODO sh! -**** TODO sh!! -**** TODO git! -**** TODO def-cli-context-get -**** TODO def-cli-context-put -**** TODO def-cli-context-find-option -**** TODO def-cli-call -**** TODO def-cli-exit -**** TODO def-cli-load -**** TODO def-cli-load-all -**** TODO doom-cli-find -**** TODO doom-cli-get -**** TODO doom-cli-prop -**** TODO doom-cli-subcommands -**** TODO doom-cli-aliases -*** TODO lib/files.el -**** TODO doom-path -**** TODO doom-glob -**** TODO doom-dir -**** TODO doom-files-in -**** TODO doom-file-cookie-p -**** TODO file-exists-p! -**** TODO doom-file-size -**** TODO doom-file-line-count -**** TODO doom-directory-size -**** TODO doom-file-read -**** TODO doom-file-write -**** TODO with-file-contents! - ** TODO Configuration files *** =profiles.el= :PROPERTIES: @@ -785,7 +109,7 @@ Here is an exhaustive example of all its syntax and capabilities: (profile3 ...)) #+end_src - + *** =.doomprofile= :PROPERTIES: :ID: ac37ac6f-6082-4c34-b98c-962bc1e528c9 diff --git a/lisp/demos.org b/lisp/demos.org new file mode 100644 index 000000000..c79910811 --- /dev/null +++ b/lisp/demos.org @@ -0,0 +1,654 @@ +#+title: Doom Emacs API Demos +#+property: header-args:elisp :results pp :exports both :eval never-export + +This module installs the elisp-demos package, which adds code examples to +documentation buffers (the ones help.el or helpful produces). The built-in demos +are great, but this file exists to add demos for Doom's API and beyond. + +#+begin_quote + 󰐃 Please make sure new additions to this file are arranged alphabetically and + has a :PROPERTIES: drawer that includes in what version of Doom that the + symbol/function was added. +#+end_quote + +#+begin_quote + 󰐃 Please don't add demos for code outside of Doom Emacs. PR those to the parent + project: https://github.com/xuchunyang/elisp-demos. And please don't add + functions from modules, put those in that module's demo.org file, or your + own in $DOOMDIR/demos.org. +#+end_quote + +* add-hook! +:PROPERTIES: +:added: 3.0.0-pre +:END: +#+begin_src emacs-lisp +;; With only one hook and one function, this is identical to `add-hook'. In that +;; case, use that instead. +(add-hook! 'some-mode-hook #'enable-something) + +;; Adding many-to-many functions to hooks +(add-hook! some-mode #'enable-something #'and-another) +(add-hook! some-mode '(enable-something and-another)) +(add-hook! '(one-mode-hook second-mode-hook) #'enable-something) +(add-hook! (one-mode second-mode) #'enable-something) + +;; Appending and local hooks +(add-hook! (one-mode second-mode) :append #'enable-something) +(add-hook! (one-mode second-mode) :local #'enable-something) + +;; With arbitrary forms +(add-hook! (one-mode second-mode) (setq v 5) (setq a 2)) +(add-hook! (one-mode second-mode) :append :local (setq v 5) (setq a 2)) + +;; Inline named hook functions +(add-hook! '(one-mode-hook second-mode-hook) + (defun do-something () + ...) + (defun do-another-thing () + ...)) +#+end_src + +* TODO add-transient-hook! +:PROPERTIES: +:added: 3.0.0-pre +:END: +* after! +:PROPERTIES: +:added: 3.0.0-pre +:END: +#+begin_src emacs-lisp :eval no +;;; `after!' will take: + +;; An unquoted package symbol (the name of a package) +(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) ...) + +;; An unquoted, nested list of compound package lists, using any combination of +;; :or/:any and :and/:all +(after! (:or package-a package-b ...) ...) +(after! (:and package-a package-b ...) ...) +(after! (:and package-a (:or package-b package-c) ...) ...) +;; (Without :or/:any/:and/:all, :and/:all are implied.) + +;; A common mistake is to pass it the names of major or minor modes, e.g. +(after! rustic-mode ...) +(after! python-mode ...) +;; But the code in them will never run! rustic-mode is in the `rustic' package +;; and python-mode is in the `python' package. This is what you want: +(after! rustic ...) +(after! python ...) +#+end_src +* appendq! +:PROPERTIES: +:added: 3.0.0-pre +:END: +#+begin_src emacs-lisp +(let ((x '(a b c))) + (appendq! x '(c d e)) + x) +#+end_src + +#+RESULTS: +: (a b c c d e) + +#+begin_src emacs-lisp +(let ((x '(a b c)) + (y '(c d e)) + (z '(f g))) + (appendq! x y z '(h)) + x) +#+end_src + +#+RESULTS: +: (a b c c d e f g h) + +* cmd! +:PROPERTIES: +:added: 3.0.0-pre +:END: +#+begin_src emacs-lisp :eval no +(map! "C-j" (cmd! (newline) (indent-according-to-mode))) +#+end_src + +* cmd!! +:PROPERTIES: +:added: 3.0.0-pre +:END: +When ~newline~ is passed a numerical prefix argument (=C-u 5 M-x newline=), it +inserts N newlines. We can use ~cmd!!~ to easily create a keybinds that bakes in +the prefix arg into the command call: + +#+begin_src emacs-lisp :eval no +(map! "C-j" (cmd!! #'newline 5)) +#+end_src + +Or to create aliases for functions that behave differently: + +#+begin_src emacs-lisp :eval no +(fset 'insert-5-newlines (cmd!! #'newline 5)) + +;; The equivalent of C-u M-x org-global-cycle, which resets the org document to +;; its startup visibility settings. +(fset 'org-reset-global-visibility (cmd!! #'org-global-cycle '(4)) +#+end_src + +* cmds! +:PROPERTIES: +:added: 3.0.0-pre +:END: +#+begin_src emacs-lisp :eval no +(map! :i [tab] (cmds! (and (modulep! :editor snippets) + (bound-and-true-p yas-minor-mode) + (yas-maybe-expand-abbrev-key-filter 'yas-expand)) + #'yas-expand + (modulep! :completion company +tng) + #'company-indent-or-complete-common) + :m [tab] (cmds! (and (bound-and-true-p yas-minor-mode) + (evil-visual-state-p) + (or (eq evil-visual-selection 'line) + (not (memq (char-after) (list ?\( ?\[ ?\{ ?\} ?\] ?\)))))) + #'yas-insert-snippet + (and (modulep! :editor fold) + (save-excursion (end-of-line) (invisible-p (point)))) + #'+fold/toggle + (fboundp 'evil-jump-item) + #'evil-jump-item)) +#+end_src + +* custom-set-faces! +:PROPERTIES: +:added: 3.0.0-pre +:END: +#+begin_src emacs-lisp :eval no +(custom-set-faces! + '(outline-1 :weight normal) + '(outline-2 :weight normal) + '(outline-3 :weight normal) + '(outline-4 :weight normal) + '(outline-5 :weight normal) + '(outline-6 :weight normal) + '(default :background "red" :weight bold) + '(region :background "red" :weight bold)) + +(custom-set-faces! + '((outline-1 outline-2 outline-3 outline-4 outline-5 outline-6) + :weight normal) + '((default region) + :background "red" :weight bold)) + +(let ((red-bg-faces '(default region))) + (custom-set-faces! + `(,(cl-loop for i from 0 to 6 collect (intern (format "outline-%d" i))) + :weight normal) + `(,red-bg-faces + :background "red" :weight bold))) + +;; You may utilise `doom-themes's theme API to fetch or tweak colors from their +;; palettes. No need to wait until the theme or package is loaded. e.g. +(custom-set-faces! + `(outline-1 :foreground ,(doom-color 'red)) + `(outline-2 :background ,(doom-color 'blue))) +#+end_src + +* custom-theme-set-faces! +:PROPERTIES: +:added: 3.0.0-pre +:END: +#+begin_src emacs-lisp :eval no +(custom-theme-set-faces! 'doom-one + '(outline-1 :weight normal) + '(outline-2 :weight normal) + '(outline-3 :weight normal) + '(outline-4 :weight normal) + '(outline-5 :weight normal) + '(outline-6 :weight normal) + '(default :background "red" :weight bold) + '(region :background "red" :weight bold)) + +(custom-theme-set-faces! '(doom-one-theme doom-one-light-theme) + '((outline-1 outline-2 outline-3 outline-4 outline-5 outline-6) + :weight normal) + '((default region) + :background "red" :weight bold)) + +(let ((red-bg-faces '(default region))) + (custom-theme-set-faces! '(doom-one-theme doom-one-light-theme) + `(,(cl-loop for i from 0 to 6 collect (intern (format "outline-%d" i))) + :weight normal) + `(,red-bg-faces + :background "red" :weight bold))) + +;; You may utilise `doom-themes's theme API to fetch or tweak colors from their +;; palettes. No need to wait until the theme or package is loaded. e.g. +(custom-theme-set-faces! 'doom-one + `(outline-1 :foreground ,(doom-color 'red)) + `(outline-2 :background ,(doom-color 'blue))) +#+end_src + +* TODO defer-feature! +:PROPERTIES: +:added: 3.0.0-pre +:END: +* TODO defer-until! +:PROPERTIES: +:added: 3.0.0-pre +:END: +* disable-packages! +:PROPERTIES: +:added: 3.0.0-pre +:END: +#+begin_src emacs-lisp :eval no +;; Disable packages enabled by DOOM +(disable-packages! some-package second-package) +#+end_src + +* doom! +:PROPERTIES: +:added: 3.0.0-pre +:END: +#+begin_src emacs-lisp :eval no +(doom! :completion + company + ivy + ;;helm + + :tools + (:if (featurep :system 'macos) macos) + docker + lsp + + :lang + (cc +lsp) + (:cond ((string= system-name "work-pc") + python + rust + web) + ((string= system-name "writing-pc") + (org +dragndrop) + ruby)) + (:if (featurep :system 'linux) + (web +lsp) + web) + + :config + literate + (default +bindings +smartparens)) + +(doom! + (pin "v3.0.0") + + (source "modules/") ; Modules in $DOOMDIR/modules/*/* + (source :name doom :repo "doomemacs/modules" :pin "v21.12.0") ; Doom's default modules + (source :name contrib :repo "doomemacs/contrib-modules" :pin "v21.12.0") ; Community-contributed + ;; Examples: + (source :name my :repo "my/modules" :root "unorthodox/path/to/modules/") + (source :name more :host gitlab :repo "more/modules") + + ;;; To enable (or disable) flags globally, they can be given at top-level: + +lsp -tree-sitter + + ;;;; Examples of explicit and/or remote modules: + :lang + (rust :repo "doomemacs/modules" :branch "somePR" :pin "1a2b3c4d" + :path "lang/rust" + :flags '(-lsp)) + ;; A local, out-of-tree module + (python :path "/nonstandard/location/for/modules/python" + :flags '(+pyenv +conda)) + (cc :source 'doom) ; explicit source + (agda :source '(doom more)) ; multiple sources + + :lang + (clojure +lsp) ; shorthand format still works for flags + nix + + ;; Conditional modules + (:os :if (featurep :system 'macos)) ; category-wide + macos + (tty :if (equal (system-name) "headless-machine")) ; per-module + + ...) +#+end_src + +* file-exists-p! +:PROPERTIES: +:added: 3.0.0-pre +:END: +#+begin_src emacs-lisp +(file-exists-p! "init.el" doom-emacs-dir) +#+end_src + +#+begin_src emacs-lisp +(file-exists-p! (and (or "doesnotexist" "init.el") + "LICENSE") + doom-emacs-dir) +#+end_src + +* fn! +#+begin_src emacs-lisp +(mapcar (fn! (symbol-name %)) '(hello world)) +#+end_src + +#+begin_src emacs-lisp +(seq-sort (fn! (string-lessp (symbol-name %1) + (symbol-name %2))) + '(bonzo foo bar buddy doomguy baz zombies)) +#+end_src + +#+begin_src emacs-lisp +(format "You passed %d arguments to this function" + (funcall (fn! (length %*)) :foo :bar :baz "hello" 123 t)) +#+end_src + +* kbd! +:PROPERTIES: +:added: 3.0.0-pre +:END: +#+begin_src emacs-lisp :eval no +(map! "," (kbd! "SPC") + ";" (kbd! ":")) +#+end_src + +* lambda! +#+begin_src emacs-lisp +(mapcar (lambda! ((&key foo bar baz)) + (list foo bar baz)) + '((:foo 10 :bar 25) + (:baz hello :boop nil) + (:bar 42))) +#+end_src + +* load! +:PROPERTIES: +:added: 3.0.0-pre +:END: +#+begin_src emacs-lisp :eval no +;;; Lets say we're in ~/.doom.d/config.el +(load! "lisp/module") ; loads ~/.doom.d/lisp/module.el +(load! "somefile" doom-emacs-dir) ; loads ~/.emacs.d/somefile.el +(load! "anotherfile" doom-user-dir) ; loads ~/.doom.d/anotherfile.el + +;; If you don't want a `load!' call to throw an error if the file doesn't exist: +(load! "~/.maynotexist" nil t) +#+end_src + +* map! +:PROPERTIES: +:added: 3.0.0-pre +:END: +#+begin_src emacs-lisp :eval no +(map! :map magit-mode-map + :m "C-r" 'do-something ; C-r in motion state + :nv "q" 'magit-mode-quit-window ; q in normal+visual states + "C-x C-r" 'a-global-keybind + :g "C-x C-r" 'another-global-keybind ; same as above + + (:when (featurep :system 'macos) + :n "M-s" 'some-fn + :i "M-o" (cmd! (message "Hi")))) + +(map! (:when (modulep! :completion company) ; Conditional loading + :i "C-@" #'+company/complete + (:prefix "C-x" ; Use a prefix key + :i "C-l" #'+company/whole-lines))) + +(map! (:when (modulep! :lang latex) ; local conditional + (:map LaTeX-mode-map + :localleader ; Use local leader + :desc "View" "v" #'TeX-view)) ; Add which-key description + :leader ; Use leader key from now on + :desc "Eval expression" ";" #'eval-expression) +#+end_src + +These are side-by-side comparisons, showing how to bind keys with and without +~map!~: + +#+begin_src emacs-lisp :eval no +;; bind a global key +(global-set-key (kbd "C-x y") #'do-something) +(map! "C-x y" #'do-something) + +;; bind a key on a keymap +(define-key emacs-lisp-mode-map (kbd "C-c p") #'do-something) +(map! :map emacs-lisp-mode-map "C-c p" #'do-something) + +;; unbind a key defined elsewhere +(define-key lua-mode-map (kbd "SPC m b") nil) +(map! :map lua-mode-map "SPC m b" nil) + +;; bind multiple keys +(global-set-key (kbd "C-x x") #'do-something) +(global-set-key (kbd "C-x y") #'do-something-else) +(global-set-key (kbd "C-x z") #'do-another-thing) +(map! "C-x x" #'do-something + "C-x y" #'do-something-else + "C-x z" #'do-another-thing) + +;; bind global keys in normal mode +(evil-define-key* 'normal 'global + (kbd "C-x x") #'do-something + (kbd "C-x y") #'do-something-else + (kbd "C-x z") #'do-another-thing) +(map! :n "C-x x" #'do-something + :n "C-x y" #'do-something-else + :n "C-x z" #'do-another-thing) + +;; or on a deferred keymap +(evil-define-key 'normal emacs-lisp-mode-map + (kbd "C-x x") #'do-something + (kbd "C-x y") #'do-something-else + (kbd "C-x z") #'do-another-thing) +(map! :map emacs-lisp-mode-map + :n "C-x x" #'do-something + :n "C-x y" #'do-something-else + :n "C-x z" #'do-another-thing) + +;; or multiple maps +(dolist (map (list emacs-lisp-mode go-mode-map ivy-minibuffer-map)) + (evil-define-key '(normal insert) map + "a" #'a + "b" #'b + "c" #'c)) +(map! :map (emacs-lisp-mode go-mode-map ivy-minibuffer-map) + :ni "a" #'a + :ni "b" #'b + :ni "c" #'c) + +;; or in multiple states (order of states doesn't matter) +(evil-define-key* '(normal visual) emacs-lisp-mode-map (kbd "C-x x") #'do-something) +(evil-define-key* 'insert emacs-lisp-mode-map (kbd "C-x x") #'do-something-else) +(evil-define-key* '(visual normal insert emacs) emacs-lisp-mode-map (kbd "C-x z") #'do-another-thing) +(map! :map emacs-lisp-mode + :nv "C-x x" #'do-something ; normal+visual + :i "C-x y" #'do-something-else ; insert + :vnie "C-x z" #'do-another-thing) ; visual+normal+insert+emacs + +;; You can nest map! calls: +(evil-define-key* '(normal visual) emacs-lisp-mode-map (kbd "C-x x") #'do-something) +(evil-define-key* 'normal go-lisp-mode-map (kbd "C-x x") #'do-something-else) +(map! (:map emacs-lisp-mode :nv "C-x x" #'do-something) + (:map go-lisp-mode :n "C-x x" #'do-something-else)) +#+end_src + +* package! +:PROPERTIES: +:added: 3.0.0-pre +:END: +#+begin_src emacs-lisp :eval no +;; To install a package that can be found on ELPA or any of the sources +;; specified in `straight-recipe-repositories': +(package! evil) +(package! js2-mode) +(package! rainbow-delimiters) + +;; To disable a package included with Doom (which will no-op all its `after!' +;; and `use-package!' blocks): +(package! evil :disable t) +(package! rainbow-delimiters :disable t) + +;; To install a package from a github repo +(package! so-long :host 'github :repo "hlissner/emacs-so-long") + +;; If a package is particularly big and comes with submodules you don't need, +;; you can tell the package manager not to clone the repo recursively: +(package! ansible :nonrecursive t) + +;; To pin a package to a specific commit: +(package! evil :pin "e7bc39de2f9") +;; ...or branch: +(package! evil :branch "stable") +;; To unpin a pinned package: +(package! evil :pin nil) + +;; If you share your config between two computers, and don't want bin/doom +;; refresh to delete packages used only on one system, use :ignore +(package! evil :ignore (not (equal system-name "my-desktop"))) +#+end_src +* prependq! +:PROPERTIES: +:added: 3.0.0-pre +:END: +#+begin_src emacs-lisp +(let ((x '(a b c))) + (prependq! x '(c d e)) + x) +#+end_src + +#+RESULTS: +: (c d e a b c) + +#+begin_src emacs-lisp +(let ((x '(a b c)) + (y '(c d e)) + (z '(f g))) + (prependq! x y z '(h)) + x) +#+end_src + +#+RESULTS: +: (c d e f g h a b c) + +* pushnew! +:PROPERTIES: +:added: 3.0.0-pre +:END: +#+begin_src emacs-lisp +(let ((list '(a b c))) + (pushnew! list 'c 'd 'e) + list) +#+end_src + +#+RESULTS: +: (e d a b c) + +* quiet! +:PROPERTIES: +:added: 3.0.0-pre +:END: +#+begin_src emacs-lisp :eval no +;; Enters recentf-mode without extra output +(quiet! (recentf-mode +1)) +#+end_src +* remove-hook! +:PROPERTIES: +:added: 3.0.0-pre +:END: +#+begin_src emacs-lisp :eval no +;; With only one hook and one function, this is identical to `remove-hook'. In +;; that case, use that instead. +(remove-hook! 'some-mode-hook #'enable-something) + +;; Removing N functions from M hooks +(remove-hook! some-mode #'enable-something #'and-another) +(remove-hook! some-mode #'(enable-something and-another)) +(remove-hook! '(one-mode-hook second-mode-hook) #'enable-something) +(remove-hook! (one-mode second-mode) #'enable-something) + +;; Removing buffer-local hooks +(remove-hook! (one-mode second-mode) :local #'enable-something) + +;; Removing arbitrary forms (must be exactly the same as the definition) +(remove-hook! (one-mode second-mode) (setq v 5) (setq a 2)) +#+end_src +* setq! +:PROPERTIES: +:added: 3.0.0-pre +:END: +#+begin_src emacs-lisp +;; Each of these have a setter associated with them, which must be triggered in +;; order for their new values to have an effect. +(setq! evil-want-Y-yank-to-eol nil + evil-want-C-u-scroll nil + evil-want-C-d-scroll nil) +#+end_src +* setq-hook! +:PROPERTIES: +:added: 3.0.0-pre +:END: +#+begin_src emacs-lisp :eval no +;; Set multiple variables after a hook +(setq-hook! 'markdown-mode-hook + line-spacing 2 + fill-column 80) + +;; Set variables after multiple hooks +(setq-hook! '(eshell-mode-hook term-mode-hook) + hscroll-margin 0) +#+end_src + +* unsetq-hook! +:PROPERTIES: +:added: 3.0.0-pre +:END: +#+begin_src emacs-lisp :eval no +(unsetq-hook! 'markdown-mode-hook line-spacing) + +;; Removes the following variable hook +(setq-hook! 'markdown-mode-hook line-spacing 2) + +;; Removing N variables from M hooks +(unsetq-hook! some-mode enable-something and-another) +(unsetq-hook! some-mode (enable-something and-another)) +(unsetq-hook! '(one-mode-hook second-mode-hook) enable-something) +(unsetq-hook! (one-mode second-mode) enable-something) +#+end_src +* use-package! +:PROPERTIES: +:added: 3.0.0-pre +:END: +#+begin_src emacs-lisp :eval no +;; Use after-call to load package before hook +(use-package! projectile + :after-call (pre-command-hook after-find-file dired-before-readin-hook)) + +;; defer recentf packages one by one +(use-package! recentf + :defer-incrementally easymenu tree-widget timer + :after-call after-find-file) + +;; This is equivalent to :defer-incrementally (abc) +(use-package! abc + :defer-incrementally t) +#+end_src + +* versionp! +:PROPERTIES: +:added: 3.0.0-pre +:END: +#+begin_src emacs-lisp +(versionp! "25.3" > "27.1") +#+end_src + +#+RESULTS: +: nil + +#+begin_src emacs-lisp +(versionp! "28.0" <= emacs-version <= "28.1") +#+end_src + +#+RESULTS: +: t diff --git a/modules/lang/emacs-lisp/autoload.el b/modules/lang/emacs-lisp/autoload.el index a9cbffc48..8076a5cb2 100644 --- a/modules/lang/emacs-lisp/autoload.el +++ b/modules/lang/emacs-lisp/autoload.el @@ -469,31 +469,6 @@ library/userland functions" ;; ;;; Advice -;;;###autoload -(defun +emacs-lisp--add-doom-elisp-demos-a (fn symbol) - "Add Doom's own demos to `elisp-demos'. - -Intended as :around advice for `elisp-demos--search'." - (let ((org-inhibit-startup t) - enable-dir-local-variables - org-mode-hook) - (or (funcall fn symbol) - (with-file-contents! (doom-path doom-docs-dir "examples.org") - (save-excursion - (when (re-search-forward - (format "^\\*+[ \t]+\\(?:TODO \\)?%s$" - (regexp-quote (symbol-name symbol))) - nil t) - (forward-line 1) - (let ((demos - (string-trim - (buffer-substring-no-properties - (point) (if (re-search-forward "^\\*+ " nil t) - (line-beginning-position) - (point-max)))))) - (unless (string-blank-p demos) - demos)))))))) - ;;;###autoload (put 'map! 'indent-plists-as-data t) ;;;###autoload (defun +emacs-lisp--calculate-lisp-indent-a (&optional parse-start) diff --git a/modules/lang/emacs-lisp/config.el b/modules/lang/emacs-lisp/config.el index 3cabce3b6..4d8ff38f5 100644 --- a/modules/lang/emacs-lisp/config.el +++ b/modules/lang/emacs-lisp/config.el @@ -217,7 +217,26 @@ See `+emacs-lisp-non-package-mode' for details.") (advice-add #'describe-function-1 :after #'elisp-demos-advice-describe-function-1) (advice-add #'helpful-update :after #'elisp-demos-advice-helpful-update) :config - (advice-add #'elisp-demos--search :around #'+emacs-lisp--add-doom-elisp-demos-a)) + ;; Add Doom's core and module demo files, so additional demos can be specified + ;; by end-users (in $DOOMDIR/demos.org), by modules (modules/X/Y/demos.org), + ;; or Doom's core (lisp/demos.org). + (dolist (file (doom-module-locate-paths (doom-module-list) "demos.org")) + (add-to-list 'elisp-demos-user-files file)) + + ;; HACK: These functions open Org files non-interactively without any + ;; performance optimizations. Given how prone org-mode is to being tied to + ;; expensive functionality, this will often introduce unexpected freezes + ;; without this advice. + ;; TODO: PR upstream? + (defadvice! +emacs-lisp--optimize-org-init-a (fn &rest args) + "Disable unrelated functionality to optimize calls to `org-mode'." + :around #'elisp-demos--export-json-file + :around #'elisp-demos--symbols + :around #'elisp-demos--syntax-highlight + (let ((org-inhibit-startup t) + enable-dir-local-variables + org-mode-hook) + (apply fn args)))) (use-package! buttercup From 4c89262a6b51d391f6e57f510d30845b06aca42b Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 3 Feb 2024 17:05:52 -0500 Subject: [PATCH 336/523] nit(emacs-lisp): reformat/revise comments --- modules/lang/emacs-lisp/config.el | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/lang/emacs-lisp/config.el b/modules/lang/emacs-lisp/config.el index 4d8ff38f5..a07ae55e3 100644 --- a/modules/lang/emacs-lisp/config.el +++ b/modules/lang/emacs-lisp/config.el @@ -76,10 +76,10 @@ See `+emacs-lisp-non-package-mode' for details.") face warning mouse-face mode-line-highlight))))) - ;; Fixed indenter that intends plists sensibly. + ;; Introduces logic to improve plist indentation in emacs-lisp-mode. (advice-add #'calculate-lisp-indent :override #'+emacs-lisp--calculate-lisp-indent-a) - ;; variable-width indentation is superior in elisp. Otherwise, `dtrt-indent' + ;; Variable-width indentation is superior in elisp. Otherwise, `dtrt-indent' ;; and `editorconfig' would force fixed indentation on elisp. (add-to-list 'doom-detect-indentation-excluded-modes 'emacs-lisp-mode) @@ -96,10 +96,10 @@ See `+emacs-lisp-non-package-mode' for details.") #'+emacs-lisp-init-straight-maybe-h) ;; UX: Both Flycheck's and Flymake's two emacs-lisp checkers produce a *lot* - ;; of false positives in non-packages (like Emacs configs or elisp - ;; scripts), so I disable `checkdoc' (`emacs-lisp-checkdoc', - ;; `elisp-flymake-checkdoc') and set `byte-compile-warnings' to a subset - ;; that makes more sense (see `+emacs-lisp-linter-warnings') + ;; of false positives in non-packages (like Emacs configs or elisp scripts), + ;; so I disable `checkdoc' (`emacs-lisp-checkdoc', `elisp-flymake-checkdoc') + ;; and set `byte-compile-warnings' to a subset that makes more sense (see + ;; `+emacs-lisp-linter-warnings') (add-hook! '(flycheck-mode-hook flymake-mode-hook) #'+emacs-lisp-non-package-mode) (defadvice! +syntax--fix-elisp-flymake-load-path (orig-fn &rest args) From 66d70c38a6c567ca06c26de46a68500b9f6e29fc Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 4 Feb 2024 17:48:04 -0500 Subject: [PATCH 337/523] docs: bump supported Emacs version to 29.2 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9a01c856d..40f5211b8 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ [Install](#install) • [Documentation] • [FAQ] • [Screenshots] • [Contribute](#contribute) ![Made with Doom Emacs](https://img.shields.io/github/tag/doomemacs/doomemacs.svg?style=flat-square&label=release&color=58839b) -![Supports Emacs 27.1–29.1](https://img.shields.io/badge/Supports-Emacs_27.1–29.1-blueviolet.svg?style=flat-square&logo=GNU%20Emacs&logoColor=white) +![Supports Emacs 27.1–29.2](https://img.shields.io/badge/Supports-Emacs_27.1–29.2-blueviolet.svg?style=flat-square&logo=GNU%20Emacs&logoColor=white) ![Latest commit](https://img.shields.io/github/last-commit/doomemacs/doomemacs/master?style=flat-square) ![Build status: master](https://img.shields.io/github/workflow/status/doomemacs/doomemacs/CI/master?style=flat-square) [![Discord Server](https://img.shields.io/discord/406534637242810369?color=738adb&label=Discord&logo=discord&logoColor=white&style=flat-square)][Discord] @@ -99,7 +99,7 @@ Check out [the FAQ][FAQ] for answers to common questions about the project. # Prerequisites - Git 2.23+ -- Emacs 27.1–29.1 (**Recommended: 29.1 + +- Emacs 27.1–29.2 (**Recommended: 29.2 + [native-comp](https://www.emacswiki.org/emacs/GccEmacs)**) - [ripgrep] 11.0+ - GNU `find` From b4f39e53698eaeb43a4277a057db91e418b0c590 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 4 Feb 2024 17:55:07 -0500 Subject: [PATCH 338/523] nit: doom-modules: reformat & declare obsolete variables defs --- lisp/doom-modules.el | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/lisp/doom-modules.el b/lisp/doom-modules.el index 0d0c5fd9b..cf9ebe471 100644 --- a/lisp/doom-modules.el +++ b/lisp/doom-modules.el @@ -8,6 +8,7 @@ (defvar doom-modules (make-hash-table :test 'equal) "A hash table of enabled modules. Set by `doom-initialize-modules'.") +(define-obsolete-variable-alias 'doom-modules-dirs 'doom-module-load-path "3.0.0") (defvar doom-module-load-path (list (file-name-concat doom-user-dir "modules") (file-name-concat doom-emacs-dir "modules")) @@ -49,12 +50,8 @@ NOT IMPLEMENTED YET. This file contains a module's metadata: their version, maintainers, checks, features, submodules, debug information, etc. And are used to locate modules in the user's file tree.") - -;; -;;; Obsolete variables - -(define-obsolete-variable-alias 'doom-modules-dirs 'doom-module-load-path "3.0.0") - +;; DEPRECATED: Module warnings will be rewritten in v3, and this variable will no longer be needed. +(make-obsolete-variable 'doom-obsolete-modules nil "3.0.0") (defconst doom-obsolete-modules '((:feature (version-control (:emacs vc) (:ui vc-gutter)) (spellcheck (:checkers spell)) @@ -97,6 +94,7 @@ syntax-checker modules obsolete. e.g. If :feature version-control is found in your `doom!' block, a warning is emitted before replacing it with :emacs vc and :ui vc-gutter.") +(make-obsolete-variable 'doom-inhibit-module-warnings nil "3.0.0") (defvar doom-inhibit-module-warnings (not noninteractive) "If non-nil, don't emit deprecated or missing module warnings at startup.") From 51dcb4dc997aca2d754d2df9b81e40ba1ae3f029 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 4 Feb 2024 17:59:31 -0500 Subject: [PATCH 339/523] nit: fix s/make/bake typo --- lisp/doom-profiles.el | 2 +- lisp/doom.el | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lisp/doom-profiles.el b/lisp/doom-profiles.el index f60531174..668eccb24 100644 --- a/lisp/doom-profiles.el +++ b/lisp/doom-profiles.el @@ -343,7 +343,7 @@ Defaults to the profile at `doom-profile-default'." ";; This file was autogenerated; do not edit it by hand!\n") ;; Doom needs to be synced/rebuilt if either Doom or Emacs has been ;; up/downgraded. This is because byte-code isn't backwards - ;; compatible, and many packages (including Doom), make in absolute + ;; compatible, and many packages (including Doom), bake in absolute ;; paths into their caches that need to be refreshed. (prin1 `(unless (equal doom-version ,doom-version) (error ,(concat diff --git a/lisp/doom.el b/lisp/doom.el index d6812e6f2..5f9835224 100644 --- a/lisp/doom.el +++ b/lisp/doom.el @@ -99,7 +99,7 @@ ;; Doom needs to be synced/rebuilt if either Doom or Emacs has been ;; up/downgraded. This is because byte-code isn't backwards compatible, and many -;; packages (including Doom), make in absolute paths into their caches that need +;; packages (including Doom), bake in absolute paths into their caches that need ;; to be refreshed. (let ((old-version (eval-when-compile emacs-version))) (unless (equal emacs-version old-version) From 7654262cdca57e6cddcf1d5c6acb9381ddbd3bc6 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 4 Feb 2024 18:00:16 -0500 Subject: [PATCH 340/523] tweak(lib): doom-info: show $EMACS/$EMACSDIR --- lisp/lib/debug.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lisp/lib/debug.el b/lisp/lib/debug.el index 2ee08c149..d43d593f7 100644 --- a/lisp/lib/debug.el +++ b/lisp/lib/debug.el @@ -260,7 +260,8 @@ ready to be pasted in a bug report on github." (bound-and-true-p emacs-repository-branch) (and (stringp emacs-repository-version) (substring emacs-repository-version 0 9)) - (symlink-path doom-emacs-dir)))) + (format "EMACSDIR=%s" (symlink-path doom-emacs-dir)) + (format "EMACS=%s" (expand-file-name invocation-name invocation-directory))))) (doom . ,(list doom-version (if doom-profile (format "PROFILE=%s@%s" From e0c9ef6ad681548d27943f0a1b98cd790b347e16 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 4 Feb 2024 18:50:33 -0500 Subject: [PATCH 341/523] bump: :lang ocaml OCamlPro/ocp-indent@7c4d434132ce -> OCamlPro/ocp-indent@f38578c25d62 diml/utop@ace481388a54 -> diml/utop@8cc563282597 ocaml-ppx/ocamlformat@1ad4bdba9e1f -> ocaml-ppx/ocamlformat@7db948a8946e ocaml/dune@f5a5a9c17be6 -> ocaml/dune@360b00027166 ocaml/merlin@306af713e268 -> ocaml/merlin@8404f9669372 ocaml/tuareg@53ce2fdfdd37 -> ocaml/tuareg@1d53723e39f2 Fix: #7412 --- modules/lang/ocaml/packages.el | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/modules/lang/ocaml/packages.el b/modules/lang/ocaml/packages.el index b24f1fc9b..dfc50c3e8 100644 --- a/modules/lang/ocaml/packages.el +++ b/modules/lang/ocaml/packages.el @@ -1,26 +1,26 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/ocaml/packages.el -(package! tuareg :pin "53ce2fdfdd372d52f3a6547c33b687e7d403357a") +(package! tuareg :pin "1d53723e39f22ab4ab76d31f2b188a2879305092") (unless (modulep! +lsp) - (package! merlin :pin "306af713e268d810ea0dc80bdf8e98265f96bd51") + (package! merlin :pin "8404f96693727f7b0edc0d0b14db57843d79e27b") (package! merlin-eldoc :pin "bf8edc63d85b35e4def352fa7ce4ea39f43e1fd8") - (package! merlin-company :pin "306af713e268d810ea0dc80bdf8e98265f96bd51") + (package! merlin-company :pin "8404f96693727f7b0edc0d0b14db57843d79e27b") (when (and (modulep! :checkers syntax) (not (modulep! :checkers syntax +flymake))) (package! flycheck-ocaml :pin "77f8ddbd9bfc3a11957ac7ec7e45d5fa9179b192"))) -(package! ocp-indent :pin "7c4d434132cebc15a8213c8be9e7323692eb0a2b") +(package! ocp-indent :pin "f38578c25d62701847b1bcb45099a9020e2032fe") (when (modulep! :tools eval) - (package! utop :pin "ace481388a54fdf89244a76497fbdedb4ff15207")) + (package! utop :pin "8cc563282597abdb8f5cca64df41166c5ebca6b5")) (when (modulep! :editor format) (package! ocamlformat :recipe (:host github :repo "ocaml-ppx/ocamlformat" :files ("emacs/*.el")) - :pin "1ad4bdba9e1fd4a0bd73e22f75b3079c70cdba53")) + :pin "7db948a8946e589edd11334dda56505f8d826dca")) (package! dune :recipe (:host github :repo "ocaml/dune" :files ("editor-integration/emacs/*.el")) - :pin "f5a5a9c17be60b1cf2ec22fee35d35ccc3bb5e5e") + :pin "360b00027166473a01a9010a04fc30af3ee883a0") From be48f3588b26aa92d7c0b9b8da30f8443a3857c3 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 4 Feb 2024 18:52:46 -0500 Subject: [PATCH 342/523] bump: :lang org alf/ob-restclient.el@1a127eb0165f -> alf/ob-restclient.el@8183f8af0883 bastibe/org-journal@a306f76ee2b0 -> bastibe/org-journal@605a7eb984a9 emacs-jupyter/jupyter@0a92c0c978ab -> emacs-jupyter/jupyter@da306a6dbda6 emacs-straight/org-mode@57b94f3447b9 -> emacs-straight/org-mode@7a6bb0904d01 emacsmirror/org-contrib@79286861ae3f -> emacsmirror/org-contrib@8fbaceb247a7 emacsorphanage/ox-pandoc@0f758517f512 -> emacsorphanage/ox-pandoc@399d787b6e21 hakimel/reveal.js@d5896c968b24 -> hakimel/reveal.js@16f663301467 magit/orgit-forge@f595a30aa75a -> magit/orgit-forge@f2ff9e5ad68b magit/orgit@b60efabc4a1b -> magit/orgit@84bcb5c318f0 oer/org-re-reveal@e7895dae9807 -> oer/org-re-reveal@7c39d15b841c org-noter/org-noter@a4296d8338d4 -> org-noter/org-noter@8be376384772 org-roam/org-roam@5c06471c3a11 -> org-roam/org-roam@8667e441876c Fix: #7392 --- modules/lang/org/packages.el | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/modules/lang/org/packages.el b/modules/lang/org/packages.el index e91a6defd..ce2e1d785 100644 --- a/modules/lang/org/packages.el +++ b/modules/lang/org/packages.el @@ -31,11 +31,11 @@ (format "(defun org-git-version (&rest _) \"%s-??-%s\")\n" version (cdr (doom-call-process "git" "rev-parse" "--short" "HEAD"))) "(provide 'org-version)\n"))))) - :pin "57b94f3447b9046dac2f9238e24ad902510056cc") + :pin "7a6bb0904d01b50680f9028f7c0f3cfc6ae3aa6e") (package! org-contrib :recipe (:host github :repo "emacsmirror/org-contrib") - :pin "79286861ae3f4a47fbc66ce97cd527196f60c4a8") + :pin "8fbaceb247a775ad1534af97859c740e82cc955a") (package! avy) (package! htmlize :pin "dd27bc3f26efd728f2b1f01f9e4ac4f61f2ffbf9") @@ -71,9 +71,9 @@ (when (modulep! :tools pdf) (package! org-pdftools :pin "4e420233a153a9c4ab3d1a7e1d7d3211c836f0ac")) (when (modulep! :tools magit) - (package! orgit :pin "b60efabc4a1b15d7eacaabc5bdfe6f3c20fee161") + (package! orgit :pin "84bcb5c318f01b9ffc8d5aa18a7c393fe9c714b2") (when (modulep! :tools magit +forge) - (package! orgit-forge :pin "f595a30aa75af55522b1203cd29198fb9aa3a0a5"))) + (package! orgit-forge :pin "f2ff9e5ad68b3e860379a1d368ad6d8a9696b719"))) (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 "0a92c0c978ab12bd31a50a7e8b1295f5d1767e20")) + (package! jupyter :pin "da306a6dbda6f1e285281765a311938a1d9db022")) (when (modulep! +journal) - (package! org-journal :pin "a306f76ee2b0292946a20530bd9114aefc85a263")) + (package! org-journal :pin "605a7eb984a95fc6ec122df800632bf56ff59514")) (when (modulep! +noter) - (package! org-noter :pin "a4296d8338d46b5c863d3d339b50e201172f218c")) + (package! org-noter :pin "8be376384772c1f053cb2ce907ddf4d484b390dd")) (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 "e7895dae9807df38b6e17b6c24e1e824caad6c46") + (package! org-re-reveal :pin "7c39d15b841c7a8d197a24c89e5fef5d54e271aa") (package! revealjs :recipe (:host github :repo "hakimel/reveal.js" :files ("css" "dist" "js" "plugin")) - :pin "d5896c968b2406126ca0beafecdffe219230b6b4")) + :pin "16f6633014672567de85aefd1f4639ffea0dde56")) (cond ((modulep! +roam) (package! org-roam @@ -115,7 +115,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 "5c06471c3a11348342719fd9011486455adeb701"))) + :pin "8667e441876cd2583fbf7282a65796ea149f0e5f"))) ;;; Babel (package! ob-async :pin "9aac486073f5c356ada20e716571be33a350a982") @@ -152,13 +152,13 @@ :recipe (:host github :repo "DEADB17/ob-racket") :pin "d8fd51bddb019b0eb68755255f88fc800cfe03cb")) (when (modulep! :lang rest) - (package! ob-restclient :pin "1a127eb0165f10bb9d33606aa8529051118805e7")) + (package! ob-restclient :pin "8183f8af08838854cf145ca4855b373f3e7c44b0")) (when (modulep! :lang scala) (package! ob-ammonite :pin "39937dff395e70aff76a4224fa49cf2ec6c57cca")) ;;; Export (when (modulep! +pandoc) - (package! ox-pandoc :pin "0f758517f512e375825679541b5d905be40342eb")) + (package! ox-pandoc :pin "399d787b6e2124bd782615338b845c3724a47718")) (when (modulep! +hugo) (package! ox-hugo :recipe (:host github :repo "kaushalmodi/ox-hugo" :nonrecursive t) From 615a77fafcd5ca85c117cc7c91ea4f9a23c3739c Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 4 Feb 2024 18:54:21 -0500 Subject: [PATCH 343/523] bump: :config magnars/expand-region.el@b70feaa64431 -> magnars/expand-region.el@e8f4e0fe9c9a noctuid/link-hint.el@36ce929331f2 -> noctuid/link-hint.el@9153eafc7765 --- modules/config/default/packages.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/config/default/packages.el b/modules/config/default/packages.el index 10310fd9d..99bdda060 100644 --- a/modules/config/default/packages.el +++ b/modules/config/default/packages.el @@ -3,7 +3,7 @@ (package! avy :pin "be612110cb116a38b8603df367942e2bb3d9bdbe") (package! drag-stuff :pin "6d06d846cd37c052d79acd0f372c13006aa7e7c8") -(package! link-hint :pin "36ce929331f2838213bcaa1145ece4b73ce84afe") +(package! link-hint :pin "9153eafc776549376bb85d9ff555fef83aca8285") (unless (modulep! :editor evil) - (package! expand-region :pin "b70feaa644310dc2d599dc277cd20a1f2b6446ac")) + (package! expand-region :pin "e8f4e0fe9c9a80a6a26e2b438502aba9a799d580")) From 210a5d416209d4f4a0866786935775c66d3e8a23 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 4 Feb 2024 18:58:53 -0500 Subject: [PATCH 344/523] bump: :ui Alexander-Miller/treemacs@56691a530abb -> Alexander-Miller/treemacs@df26b6ab9a0f Bad-ptr/persp-mode.el@df95ea710e2a -> Bad-ptr/persp-mode.el@345baaa520ab dgutov/diff-hl@b5651f1c57b4 -> dgutov/diff-hl@b8b2727a72fd edkolev/evil-goggles@0070c9d8447e -> edkolev/evil-goggles@34ca276a85f6 emacs-lsp/lsp-treemacs@e66ae2196503 -> emacs-lsp/lsp-treemacs@e54e74deb815 emacsorphanage/anzu@5abb37455ea4 -> emacsorphanage/anzu@26fb50b429ee joostkremers/writeroom-mode@1fd52848eb58 -> joostkremers/writeroom-mode@f4d035e91d20 mickeynp/ligature.el@0e5d0a855462 -> mickeynp/ligature.el@6ac1634612db rolandwalker/unicode-fonts@44d0a22420c3 -> rolandwalker/unicode-fonts@6245b97d8dda tarsius/hl-todo@70ce48470c85 -> tarsius/hl-todo@f1fef158f99a --- modules/ui/hl-todo/packages.el | 2 +- modules/ui/ligatures/packages.el | 2 +- modules/ui/modeline/packages.el | 2 +- modules/ui/ophints/packages.el | 2 +- modules/ui/treemacs/packages.el | 4 ++-- modules/ui/unicode/packages.el | 2 +- modules/ui/vc-gutter/packages.el | 2 +- modules/ui/workspaces/packages.el | 2 +- modules/ui/zen/packages.el | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/modules/ui/hl-todo/packages.el b/modules/ui/hl-todo/packages.el index c0f5daa24..36d220441 100644 --- a/modules/ui/hl-todo/packages.el +++ b/modules/ui/hl-todo/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; ui/hl-todo/packages.el -(package! hl-todo :pin "70ce48470c85f1441de2c9428a240c3287995846") +(package! hl-todo :pin "f1fef158f99a70746926ef52c59f4863a29b7ed7") diff --git a/modules/ui/ligatures/packages.el b/modules/ui/ligatures/packages.el index 813e08649..c14ec65da 100644 --- a/modules/ui/ligatures/packages.el +++ b/modules/ui/ligatures/packages.el @@ -2,4 +2,4 @@ (string-match-p "HARFBUZZ" system-configuration-features)) (featurep 'composite)) (package! ligature - :pin "0e5d0a8554622bcb0ec634e364795650ff4f2457")) + :pin "6ac1634612dbd42f7eb81ecaf022bd239aabb954")) diff --git a/modules/ui/modeline/packages.el b/modules/ui/modeline/packages.el index c95d740be..8bdce9b70 100644 --- a/modules/ui/modeline/packages.el +++ b/modules/ui/modeline/packages.el @@ -3,6 +3,6 @@ (unless (modulep! +light) (package! doom-modeline :pin "bf880ae56f3f6aab7bd334de9bd9b455c63a24c0")) -(package! anzu :pin "5abb37455ea44fa401d5f4c1bdc58adb2448db67") +(package! anzu :pin "26fb50b429ee968eb944b0615dd0aed1dd66172c") (when (modulep! :editor evil) (package! evil-anzu :pin "d1e98ee6976437164627542909a25c6946497899")) diff --git a/modules/ui/ophints/packages.el b/modules/ui/ophints/packages.el index 67f3bc377..ccd75d1da 100644 --- a/modules/ui/ophints/packages.el +++ b/modules/ui/ophints/packages.el @@ -2,5 +2,5 @@ ;;; ui/ophints/packages.el (if (modulep! :editor evil) - (package! evil-goggles :pin "0070c9d8447e1696f8713d0c13ff64ef0979d580") + (package! evil-goggles :pin "34ca276a85f615d2b45e714c9f8b5875bcb676f3") (package! volatile-highlights :pin "fcf6e2778454ce514c189a7d1fe70e03ad81c325")) diff --git a/modules/ui/treemacs/packages.el b/modules/ui/treemacs/packages.el index 97c87198d..59c5fbdea 100644 --- a/modules/ui/treemacs/packages.el +++ b/modules/ui/treemacs/packages.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; -*- ;;; ui/treemacs/packages.el -(package! treemacs :pin "56691a530abb61564c8df0456a18ff0f301c2055") +(package! treemacs :pin "df26b6ab9a0f467e5ff99f7ed97551ccf756e06c") (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 "e66ae2196503d4e84334519e56b4388feffa5060")) + (package! lsp-treemacs :pin "e54e74deb8150964e3c3024e1ec14295a34e2a3b")) diff --git a/modules/ui/unicode/packages.el b/modules/ui/unicode/packages.el index f8ad47ea6..29d8b16b5 100644 --- a/modules/ui/unicode/packages.el +++ b/modules/ui/unicode/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; ui/unicode/packages.el -(package! unicode-fonts :pin "44d0a22420c39709d1e1fa659a3f135facf3c986") +(package! unicode-fonts :pin "6245b97d8ddaeaf1de4dbe2cd85ca0f3b20ef81b") diff --git a/modules/ui/vc-gutter/packages.el b/modules/ui/vc-gutter/packages.el index 8bcf90ecf..2651562a6 100644 --- a/modules/ui/vc-gutter/packages.el +++ b/modules/ui/vc-gutter/packages.el @@ -2,5 +2,5 @@ ;;; ui/vc-gutter/packages.el (if (modulep! +diff-hl) - (package! diff-hl :pin "b5651f1c57b42e0f38e01a8fc8c7df9bc76d5d38") + (package! diff-hl :pin "b8b2727a72fdf64ac98e6cfa136a43cb0cacf72f") (package! git-gutter-fringe :pin "648cb5b57faec55711803cdc9434e55a733c3eba")) diff --git a/modules/ui/workspaces/packages.el b/modules/ui/workspaces/packages.el index 9440eae48..8ed2e3c33 100644 --- a/modules/ui/workspaces/packages.el +++ b/modules/ui/workspaces/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; ui/workspaces/packages.el -(package! persp-mode :pin "df95ea710e2a72f7a88293b72137acb0ca024d90") +(package! persp-mode :pin "345baaa520ab2d62205f85cc5f29d57d6063c141") diff --git a/modules/ui/zen/packages.el b/modules/ui/zen/packages.el index f4c07b585..c743c252c 100644 --- a/modules/ui/zen/packages.el +++ b/modules/ui/zen/packages.el @@ -1,5 +1,5 @@ ;; -*- no-byte-compile: t; -*- ;;; ui/zen/packages.el -(package! writeroom-mode :pin "1fd52848eb58301c864712fd26c4ec37a938cc19") +(package! writeroom-mode :pin "f4d035e91d20bf1dd3f2857b9cc344f844979a78") (package! mixed-pitch :pin "519e05f74825abf04b7d2e0e38ec040d013a125a") From b070a801ed3d95e896cf87044223d24dfb0a7b19 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 4 Feb 2024 19:02:33 -0500 Subject: [PATCH 345/523] bump: :tools collab https://code.librehq.com/qhong/crdt.el@3ba890658d65 -> emacs-straight/crdt@4a18cd8539c8 Moved to github mirror since old source was unreliable. --- modules/tools/collab/packages.el | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/modules/tools/collab/packages.el b/modules/tools/collab/packages.el index 326af8b39..a81b7f6b0 100644 --- a/modules/tools/collab/packages.el +++ b/modules/tools/collab/packages.el @@ -1,6 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/collab/packages.el -(package! crdt - :recipe (:host nil :repo "https://code.librehq.com/qhong/crdt.el") - :pin "3ba890658d657db5d6aaedd5c2a78b6f93a5f139") +(package! crdt :pin "4a18cd8539c8f3364e3ae903580328dd8b05fa78") From 1a05e2fa6429adf3e4c0efbfda8fdee9e9279600 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 4 Feb 2024 19:07:25 -0500 Subject: [PATCH 346/523] bump: :tools NicolasPetton/pass@c721604b3bd0 -> NicolasPetton/pass@ed7031c5c33a Silex/docker.el@6997c86a24d4 -> Silex/docker.el@d5255a65b724 alphapapa/magit-todos@cadf29d1cc41 -> alphapapa/magit-todos@debb77b3589f andras-simonyi/citeproc-el@290320fc579f -> andras-simonyi/citeproc-el@c61c98b9d230 doomelpa/code-review@26f426e99221 -> doomelpa/code-review@c34ff1ee64c7 editorconfig/editorconfig-emacs@2fed9599bcfe -> editorconfig/editorconfig-emacs@4b81a5992858 emacs-citar/citar-org-roam@761eed66782f -> emacs-citar/citar-org-roam@7d67dccf8006 emacs-citar/citar@2c0547db57f2 -> emacs-citar/citar@885b86f6733f emacs-lsp/lsp-mode@02c5ba59ce3d -> emacs-lsp/lsp-mode@fb88cc6b8bca emacs-straight/eglot@f73594f58989 -> emacs-straight/eglot@cd4e45b700b1 emacs-straight/rainbow-mode@24437ec2c66a -> emacs-straight/rainbow-mode@70ed10d410ef emacs-tree-sitter/tree-sitter-langs@5eb24557f542 -> emacs-tree-sitter/tree-sitter-langs@20fbbb85735a emacsorphanage/quickrun@6f963189305e -> emacsorphanage/quickrun@248149b02610 hcl-emacs/terraform-mode@39d2fd5bfc86 -> hcl-emacs/terraform-mode@e8b57df8c2a3 jacktasia/dumb-jump@d9503c157ab8 -> jacktasia/dumb-jump@ede6a04187e7 magit/forge@ba35ffc9bafc -> magit/forge@b16b6ec4f761 magit/magit@48818355728c -> magit/magit@54d37dc14c3f meain/evil-textobj-tree-sitter@9a9edd42a2dc -> meain/evil-textobj-tree-sitter@220ceae06585 purcell/envrc@33d01388ce7f -> purcell/envrc@1385e72a7309 rejeep/prodigy.el@a3be00d3b90a -> rejeep/prodigy.el@cc68fa9d604a tmalsburg/helm-bibtex@ef07adfeda1e -> tmalsburg/helm-bibtex@bf184cc311c9 xuchunyang/osx-dictionary.el@0715e5a3ac65 -> xuchunyang/osx-dictionary.el@1f5a74f3e5d7 yoshiki/yaml-mode@3fcb36d6039b -> yoshiki/yaml-mode@5b58248ab255 zx2c4/password-store@28cec11f1dbe -> zx2c4/password-store@b5e965a838bb --- modules/tools/ansible/packages.el | 2 +- modules/tools/biblio/packages.el | 16 ++++++++-------- modules/tools/direnv/packages.el | 2 +- modules/tools/docker/packages.el | 2 +- modules/tools/editorconfig/packages.el | 2 +- modules/tools/eval/packages.el | 2 +- modules/tools/lookup/config.el | 4 ++++ modules/tools/lookup/packages.el | 4 ++-- modules/tools/lsp/packages.el | 4 ++-- modules/tools/magit/packages.el | 16 +++++++--------- modules/tools/pass/packages.el | 4 ++-- modules/tools/prodigy/packages.el | 2 +- modules/tools/rgb/packages.el | 2 +- modules/tools/terraform/packages.el | 2 +- modules/tools/tree-sitter/packages.el | 4 ++-- 15 files changed, 35 insertions(+), 33 deletions(-) diff --git a/modules/tools/ansible/packages.el b/modules/tools/ansible/packages.el index 23d38139d..a9f9837b7 100644 --- a/modules/tools/ansible/packages.el +++ b/modules/tools/ansible/packages.el @@ -4,7 +4,7 @@ (package! ansible :recipe (:nonrecursive t) :pin "d89ac0ee57742cca0f0e0a3453d9dcc521575690") (package! ansible-doc :pin "86083a7bb2ed0468ca64e52076b06441a2f8e9e0") (package! jinja2-mode :pin "03e5430a7efe1d163a16beaf3c82c5fd2c2caee1") -(package! yaml-mode :pin "3fcb36d6039bef57e2a0f6e24c51f623c0bf5fb7") +(package! yaml-mode :pin "5b58248ab255dff6cfa4c4057a191bc4446ee5b6") (when (modulep! :completion company) (package! company-ansible :pin "79dd421b161efa49fbdffad57fa40edb41f484a3")) diff --git a/modules/tools/biblio/packages.el b/modules/tools/biblio/packages.el index 7d8105bd7..d53e8a994 100644 --- a/modules/tools/biblio/packages.el +++ b/modules/tools/biblio/packages.el @@ -2,16 +2,16 @@ ;;; tools/biblio/packages.el (when (modulep! :completion ivy) - (package! bibtex-completion :pin "ef07adfeda1e25d891875cb9a11983d5e26fc36d") - (package! ivy-bibtex :pin "ef07adfeda1e25d891875cb9a11983d5e26fc36d")) + (package! bibtex-completion :pin "bf184cc311c9e1724f8b2eaf75b9e202c3aedd16") + (package! ivy-bibtex :pin "bf184cc311c9e1724f8b2eaf75b9e202c3aedd16")) (when (modulep! :completion helm) - (package! bibtex-completion :pin "ef07adfeda1e25d891875cb9a11983d5e26fc36d") - (package! helm-bibtex :pin "ef07adfeda1e25d891875cb9a11983d5e26fc36d")) + (package! bibtex-completion :pin "bf184cc311c9e1724f8b2eaf75b9e202c3aedd16") + (package! helm-bibtex :pin "bf184cc311c9e1724f8b2eaf75b9e202c3aedd16")) (when (modulep! :completion vertico) - (package! citar :pin "2c0547db57f2fb30ff071d126b256287a4e9452c") - (package! citar-embark :pin "2c0547db57f2fb30ff071d126b256287a4e9452c") + (package! citar :pin "885b86f6733fd70f42c32dd7791d3447f93db990") + (package! citar-embark :pin "885b86f6733fd70f42c32dd7791d3447f93db990") (when (modulep! :lang org +roam2) - (package! citar-org-roam :pin "761eed66782fdbb6d65749098caa42ba43e8441d"))) + (package! citar-org-roam :pin "7d67dccf80065a88cb86ce9a8274383a9e8269c1"))) (package! parsebib :pin "ace9df707108b17759c004c7387655277122d4c1") -(package! citeproc :pin "290320fc579f886255f00d7268600df7fa5cc7e8") +(package! citeproc :pin "c61c98b9d230ea28b2ca49498134803e1f8ea526") diff --git a/modules/tools/direnv/packages.el b/modules/tools/direnv/packages.el index 2b955547d..4f474b5ee 100644 --- a/modules/tools/direnv/packages.el +++ b/modules/tools/direnv/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/direnv/packages.el -(package! envrc :pin "33d01388ce7ff14cb209015ce6f0d1a5bda6eb07") +(package! envrc :pin "1385e72a730924664697a0961d43516a47a977d7") diff --git a/modules/tools/docker/packages.el b/modules/tools/docker/packages.el index 22f158c64..77f353589 100644 --- a/modules/tools/docker/packages.el +++ b/modules/tools/docker/packages.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/docker/packages.el -(package! docker :pin "6997c86a24d440fa04035aa8c9499a52df6e655d") +(package! docker :pin "d5255a65b7240d0038cc417f301b43df05a27922") ;; tramp-container (included with Emacs 29+) replaces docker-tramp (when (< emacs-major-version 29) (package! docker-tramp :pin "19d0771db4e6b89e19c00af5806438e315779c15")) diff --git a/modules/tools/editorconfig/packages.el b/modules/tools/editorconfig/packages.el index e991a7e1e..022f9f75f 100644 --- a/modules/tools/editorconfig/packages.el +++ b/modules/tools/editorconfig/packages.el @@ -3,4 +3,4 @@ (package! editorconfig :recipe (:nonrecursive t) - :pin "2fed9599bcfea5d1aa9fb57dc9118d0f82b6c999") + :pin "4b81a5992858cbf03bcd7ed6ef31e4be0b55a7c1") diff --git a/modules/tools/eval/packages.el b/modules/tools/eval/packages.el index c03341c3d..560920a2d 100644 --- a/modules/tools/eval/packages.el +++ b/modules/tools/eval/packages.el @@ -1,6 +1,6 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/eval/packages.el -(package! quickrun :pin "6f963189305e8311c8193ba774f4244eb1315f57") +(package! quickrun :pin "248149b0261051bd9eec8bdbc21c22d18d7b1b11") (when (modulep! +overlay) (package! eros :pin "a9a92bdc6be0521a6a06eb464be55ed61946639c")) diff --git a/modules/tools/lookup/config.el b/modules/tools/lookup/config.el index 3a778332a..726ad117c 100644 --- a/modules/tools/lookup/config.el +++ b/modules/tools/lookup/config.el @@ -31,6 +31,10 @@ ("MDN" "https://developer.mozilla.org/en-US/search?q=%s") ("Internet archive" "https://web.archive.org/web/*/%s") ("Sourcegraph" "https://sourcegraph.com/search?q=context:global+%s&patternType=literal")) + (when (modulep! +yandex) + '(("Yandex" "https://yandex.com/search/?text=%s") + ("Yandex images" "https://yandex.com/images/search?text=%s") + ("Yandex maps" "https://yandex.com/maps?text=%s"))) (when (modulep! :lang rust) '(("Rust Docs" "https://doc.rust-lang.org/std/?search=%s")))) "An alist that maps online resources to either: diff --git a/modules/tools/lookup/packages.el b/modules/tools/lookup/packages.el index 98cff03a9..d1abb858a 100644 --- a/modules/tools/lookup/packages.el +++ b/modules/tools/lookup/packages.el @@ -8,7 +8,7 @@ (package! helm)) ;; -(package! dumb-jump :pin "d9503c157ab88f0ed2fa1301aeb57e95ac564760") +(package! dumb-jump :pin "ede6a04187e79a29ef31d14760ac0d8d4c5f4cc5") (when (modulep! :completion ivy) (package! ivy-xref :pin "a82e8e117d2dd62c28b6a3e3d6e4cfb11c0bda38")) (when (modulep! :completion helm) @@ -26,7 +26,7 @@ (when (modulep! +dictionary) (if (featurep :system 'macos) - (package! osx-dictionary :pin "0715e5a3ac659df32a0f0fabfbbeef0228fbd9a9") + (package! osx-dictionary :pin "1f5a74f3e5d7f3c443f07433951512cd99e820a6") (package! define-word :pin "31a8c67405afa99d0e25e7c86a4ee7ef84a808fe") ;; REVIEW: This fork fixes SavchenkoValeriy/emacs-powerthesaurus#40. (package! powerthesaurus diff --git a/modules/tools/lsp/packages.el b/modules/tools/lsp/packages.el index 19fda1523..a0adf1a2d 100644 --- a/modules/tools/lsp/packages.el +++ b/modules/tools/lsp/packages.el @@ -3,13 +3,13 @@ (if (modulep! +eglot) (progn - (package! eglot :pin "f73594f58989fd2fd3bc6b2c1775c74e65a9eaa0") + (package! eglot :pin "cd4e45b700b117d360aac24d749c3c4a4be3d2e2") (when (modulep! :completion vertico) (package! consult-eglot :pin "049c6319b8a48ff66189d49592c7759f0b356596")) (when (and (modulep! :checkers syntax) (not (modulep! :checkers syntax +flymake))) (package! flycheck-eglot :pin "9ff8d0068be59b1450964b390349d75a68af21ed"))) - (package! lsp-mode :pin "02c5ba59ce3d1cede4aa689c530f16cccfb5e1d1") + (package! lsp-mode :pin "fb88cc6b8bcad4df5dd1d4e5d785adc7663e5c76") (package! lsp-ui :pin "bc58c6664577d1d79060c6b32b7ad20e70ee19d0") (when (modulep! :completion ivy) (package! lsp-ivy :pin "9ecf4dd9b1207109802bd1882aa621eb1c385106")) diff --git a/modules/tools/magit/packages.el b/modules/tools/magit/packages.el index 58654cade..a3acd6227 100644 --- a/modules/tools/magit/packages.el +++ b/modules/tools/magit/packages.el @@ -1,14 +1,12 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/magit/packages.el -(when (package! magit :pin "48818355728c48d986d74dde8b1e9fba25f0fd53") +(when (package! magit :pin "54d37dc14c3f715dd0328a70bc65d63c54ee9613") (when (modulep! +forge) - (package! forge :pin "ba35ffc9bafc6457cc95633904e53e34e544543f") + (package! forge :pin "b16b6ec4f7612f5a8fc6d50133cc6189f062c183") (package! code-review - :recipe (:files ("graphql" "code-review*.el")) - :pin "26f426e99221a1f9356aabf874513e9105b68140") - ; HACK closql c3b34a6ec438 breaks code-review wandersoncferreira/code-review#245, - ; and the current forge commit (but forge does have an upstream fix), - ; pinned as a temporary measure to prevent user breakages - (package! closql :pin "0a7226331ff1f96142199915c0ac7940bac4afdd")) - (package! magit-todos :pin "cadf29d1cc410c71a0020c7f83999d9f61721b90")) + :recipe (:host github + :repo "doomelpa/code-review" + :files ("graphql" "code-review*.el")) + :pin "c34ff1ee64c7ecb654635bee4e2c147b10c66297")) + (package! magit-todos :pin "debb77b3589f2d83c8b43706edc1f8f90bf1ad91")) diff --git a/modules/tools/pass/packages.el b/modules/tools/pass/packages.el index 5e0816c15..46dbc962f 100644 --- a/modules/tools/pass/packages.el +++ b/modules/tools/pass/packages.el @@ -1,8 +1,8 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/pass/packages.el -(package! pass :pin "c721604b3bd0c7ce7870f1a9fa0aa71f352a1009") -(package! password-store :pin "28cec11f1dbe6c4273d30370af45b69c9f408386") +(package! pass :pin "ed7031c5c33a384d07da2d15c9d5f854027a26a2") +(package! password-store :pin "b5e965a838bb68c1227caa2cdd874ba496f10149") (package! password-store-otp :pin "be3a00a981921ed1b2f78012944dc25eb5a0beca") (when (modulep! :completion ivy) diff --git a/modules/tools/prodigy/packages.el b/modules/tools/prodigy/packages.el index 2f86f6f26..d8e0b7d5c 100644 --- a/modules/tools/prodigy/packages.el +++ b/modules/tools/prodigy/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/prodigy/packages.el -(package! prodigy :pin "a3be00d3b90a77118c2d7d9f5a2f26151091fa07") +(package! prodigy :pin "cc68fa9d604a0739a63247237a801b03a184aca6") diff --git a/modules/tools/rgb/packages.el b/modules/tools/rgb/packages.el index 587095dc8..ef8a2dbf4 100644 --- a/modules/tools/rgb/packages.el +++ b/modules/tools/rgb/packages.el @@ -1,5 +1,5 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/rgb/packages.el -(package! rainbow-mode :pin "24437ec2c66a889643c5c5b3fbd27c239a68976c") +(package! rainbow-mode :pin "70ed10d410ef00c82c49b2ba41647930626d6218") (package! kurecolor :pin "fbf98e1e384dd11bbb5764ae54b36353f0691d1e") diff --git a/modules/tools/terraform/packages.el b/modules/tools/terraform/packages.el index 8283ef173..8409d4229 100644 --- a/modules/tools/terraform/packages.el +++ b/modules/tools/terraform/packages.el @@ -1,6 +1,6 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/terraform/packages.el -(package! terraform-mode :pin "39d2fd5bfc86c6bf1c7bc38e6f0016d714f2d79d") +(package! terraform-mode :pin "e8b57df8c2a3d3171f3768f60eb84067f553289c") (when (modulep! :completion company) (package! company-terraform :pin "8d5a16d1bbeeb18ca49a8fd57b5d8cd30c8b8dc7")) diff --git a/modules/tools/tree-sitter/packages.el b/modules/tools/tree-sitter/packages.el index 6be4f7141..db244eba5 100644 --- a/modules/tools/tree-sitter/packages.el +++ b/modules/tools/tree-sitter/packages.el @@ -2,9 +2,9 @@ ;;; tools/tree-sitter/packages.el (package! tree-sitter :pin "3cfab8a0e945db9b3df84437f27945746a43cc71") -(package! tree-sitter-langs :pin "5eb24557f542d5fa18e7baaf07969cf7f297bfcd") +(package! tree-sitter-langs :pin "20fbbb85735a9196ba3e7fb33f99b3a904b363ba") (package! tree-sitter-indent :pin "4ef246db3e4ff99f672fe5e4b416c890f885c09e") (when (modulep! :editor evil +everywhere) (package! evil-textobj-tree-sitter - :pin "9a9edd42a2dca9dfd0bc6026d47f689fa117b90f")) + :pin "220ceae065852ef4f717fa41efd1ab51ca2346d3")) From 53998a024965ddb328e9deea38c1e4089a1e5bb2 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 4 Feb 2024 19:11:29 -0500 Subject: [PATCH 347/523] module: remove :tools gist This module had been deprecated for some years, because it's central package (gist.el) has been non-functional and unmaintained for years. This will later be replaced with a more general module (powered by webpaste.el or similar) for interacting with pastebin services (including gist). --- modules/tools/gist/README.org | 55 ----------------------------- modules/tools/gist/autoload/evil.el | 19 ---------- modules/tools/gist/config.el | 31 ---------------- modules/tools/gist/packages.el | 4 --- templates/init.example.el | 1 - 5 files changed, 110 deletions(-) delete mode 100644 modules/tools/gist/README.org delete mode 100644 modules/tools/gist/autoload/evil.el delete mode 100644 modules/tools/gist/config.el delete mode 100644 modules/tools/gist/packages.el diff --git a/modules/tools/gist/README.org b/modules/tools/gist/README.org deleted file mode 100644 index c2f09021a..000000000 --- a/modules/tools/gist/README.org +++ /dev/null @@ -1,55 +0,0 @@ -#+title: :tools gist -#+subtitle: A pastebin for Githubsters -#+created: May 07, 2017 -#+since: 2.0.3 - -#+begin_quote -  *This module is deprecated.* gist.el has been abandoned and is generally - buggy. This may be replaced by a more general pastebin module that - interfaces with various pastebin servers. -#+end_quote - -* Description :unfold: -Adds the ability to manage, pull from, or push to your [[https://gist.github.com][Gists]] from within Emacs. - -** Maintainers -/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]] - -** Module flags -/This module has no flags./ - -** Packages -- [[doom-package:gist]] - -** Hacks -/No hacks documented for this module./ - -** TODO Changelog -# This section will be machine generated. Don't edit it by hand. -/This module does not have a changelog yet./ - -* Installation -[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]] - -/This module has no external requirements./ - -* TODO Usage -#+begin_quote - 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] -#+end_quote - -* TODO Configuration -#+begin_quote - 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] -#+end_quote - -* Troubleshooting -/There are no known problems with this module./ [[doom-report:][Report one?]] - -* Frequently asked questions -/This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]] - -* TODO Appendix -#+begin_quote - 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]] -#+end_quote diff --git a/modules/tools/gist/autoload/evil.el b/modules/tools/gist/autoload/evil.el deleted file mode 100644 index 654d658ee..000000000 --- a/modules/tools/gist/autoload/evil.el +++ /dev/null @@ -1,19 +0,0 @@ -;;; tools/gist/autoload/evil.el -*- lexical-binding: t; -*- -;;;###if (modulep! :editor evil) - -;;;###autoload (autoload '+gist:send "tools/gist/autoload/evil" nil t) -(evil-define-operator +gist:send (bang) - "Create a private gist from the buffer. If BANG then make it public." - :type inclusive :repeat nil - (interactive "") - (if bang - (gist-region-or-buffer) - (gist-region-or-buffer-private))) - -;;;###autoload (autoload '+gist:list "tools/gist/autoload/evil" nil t) -(evil-define-command +gist:list (&optional username) - "Pop up a listing of gists." - (interactive "") - (if username - (gist-list-user username) - (gist-list))) diff --git a/modules/tools/gist/config.el b/modules/tools/gist/config.el deleted file mode 100644 index cd902c213..000000000 --- a/modules/tools/gist/config.el +++ /dev/null @@ -1,31 +0,0 @@ -;;; tools/gist/config.el -*- lexical-binding: t; -*- - -;; NOTE On occasion, the cache gets corrupted, causing wrong-type-argument -;; errors. If that happens, try `+gist/kill-cache'. You may have to restart -;; Emacs. - -(after! gist - (set-evil-initial-state! 'gist-list-mode 'normal) - - (set-popup-rule! "^\\*gist-" :ignore t) - - (defadvice! +gist--open-in-popup-a (fn &rest args) - :around #'gist-list-render - (funcall fn (car args) t) - (unless (cadr args) - (pop-to-buffer (current-buffer)))) - - (map! :map gist-list-menu-mode-map - :n "RET" #'gist-fetch-current - :n "TAB" #'gist-fetch-current - :n [tab] #'gist-fetch-current-noselect - :n "go" #'gist-browse-current-url - :n "gr" #'gist-list-reload - :n "c" #'gist-add-buffer - :n "d" #'gist-kill-current - :n "e" #'gist-edit-current-description - :n "f" #'gist-fork - :n "q" #'kill-current-buffer - :n "s" #'gist-star - :n "S" #'gist-unstar - :n "y" #'gist-print-current-url)) diff --git a/modules/tools/gist/packages.el b/modules/tools/gist/packages.el deleted file mode 100644 index f8a971d9f..000000000 --- a/modules/tools/gist/packages.el +++ /dev/null @@ -1,4 +0,0 @@ -;; -*- no-byte-compile: t; -*- -;;; tools/gist/packages.el - -(package! gist :pin "314fe6ab80fae35b95f0734eceb82f72813b6f41") diff --git a/templates/init.example.el b/templates/init.example.el index 169604c3b..7a5e4e6c7 100644 --- a/templates/init.example.el +++ b/templates/init.example.el @@ -94,7 +94,6 @@ ;;editorconfig ; let someone else argue about tabs vs spaces ;;ein ; tame Jupyter notebooks with emacs (eval +overlay) ; run code, run (also, repls) - ;;gist ; interacting with github gists lookup ; navigate your code and its documentation ;;lsp ; M-x vscode magit ; a git porcelain for Emacs From 151b67baf27bc17e2cfaf47253f66f7ffd43c5df Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 4 Feb 2024 19:17:18 -0500 Subject: [PATCH 348/523] bump: :editor evil TheBB/evil-indent-plus@b4dacbfdb57f -> TheBB/evil-indent-plus@f392696e4813 emacs-evil/evil-collection@8be4b75c86bc -> emacs-evil/evil-collection@8c84f9bc89fe emacs-evil/evil-surround@8fad8540c490 -> emacs-evil/evil-surround@c7116cdc774b emacs-evil/evil@5fc16776c5eb -> emacs-evil/evil@5995f6f21f66 --- modules/editor/evil/init.el | 4 +++- modules/editor/evil/packages.el | 8 ++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/modules/editor/evil/init.el b/modules/editor/evil/init.el index fb8cc330a..146d59406 100644 --- a/modules/editor/evil/init.el +++ b/modules/editor/evil/init.el @@ -99,6 +99,7 @@ variable for an explanation of the defaults (in comments). See bm bookmark (buff-menu "buff-menu") + bufler calc calendar cider @@ -112,8 +113,8 @@ variable for an explanation of the defaults (in comments). See crdt (custom cus-edit) cus-theme - daemons dashboard + daemons deadgrep debbugs debug @@ -197,6 +198,7 @@ variable for an explanation of the defaults (in comments). See markdown-mode monky mpc + mpdel mu4e mu4e-conversation neotree diff --git a/modules/editor/evil/packages.el b/modules/editor/evil/packages.el index 20c2c832e..b38f6ebe4 100644 --- a/modules/editor/evil/packages.el +++ b/modules/editor/evil/packages.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; -*- ;;; editor/evil/packages.el -(package! evil :pin "5fc16776c5eb00c956ec7e9d83facb6a38dd868d") +(package! evil :pin "5995f6f21f662484440ed67a28ce59e365feb9ad") (package! evil-args :pin "2671071a4a57eaee7cc8c27b9e4b6fc60fd2ccd3") (package! evil-easymotion :pin "f96c2ed38ddc07908db7c3c11bcd6285a3e8c2e9") (package! evil-embrace :pin "3081d37811b6a3dfaaf01d578c7ab7a746c6064d") @@ -9,12 +9,12 @@ :recipe (:host github :repo "hlissner/evil-escape") :pin "819f1ee1cf3f69a1ae920e6004f2c0baeebbe077") (package! evil-exchange :pin "5f0a2d41434c17c6fb02e4f744043775de1c63a2") -(package! evil-indent-plus :pin "b4dacbfdb57f474f798bfbf5026d434d549eb65c") +(package! evil-indent-plus :pin "f392696e4813f1d3a92c7eeed333248914ba6dae") (package! evil-lion :pin "1e838a53b8f18a3c8bdf3e952186abc2ee9cb98e") (package! evil-nerd-commenter :pin "3b197a2b559b06a7cf39978704b196f53dac802a") (package! evil-numbers :pin "7a1b62afc12da2b582bf84d722e7b10ca8b97065") (package! evil-snipe :pin "c2108d3932fcd2f75ac3e48250d6badd668f5b4f") -(package! evil-surround :pin "8fad8540c490d94a820004f227552ca08e3e3857") +(package! evil-surround :pin "c7116cdc774b1e259eaf3e9e7a318a6c99c2da17") (package! evil-textobj-anyblock :recipe (:host github :repo "willghatch/evil-textobj-anyblock" @@ -35,4 +35,4 @@ (package! neotree) (autoload 'neotree-make-executor "neotree" nil nil 'macro)) - (package! evil-collection :pin "8be4b75c86bc637dbcd14be7522d6da06df1747e")) + (package! evil-collection :pin "8c84f9bc89fe56e71b56519f886085ddcbc671cf")) From e701522d680b54299d43f03bd0d8d00c19bfe28a Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 4 Feb 2024 19:18:11 -0500 Subject: [PATCH 349/523] bump: :editor doomemacs/snippets@d490cba6d762 -> doomemacs/snippets@f022984ee131 emacs-straight/adaptive-wrap@fc9f0306f14c -> emacs-straight/adaptive-wrap@70005d2012ab emacs-tree-sitter/ts-fold@75e72c658ad8 -> emacs-tree-sitter/ts-fold@0627723e5f96 joaotavora/yasnippet@5cbdbf0d2015 -> joaotavora/yasnippet@297546f0853a joostkremers/visual-fill-column@695a59789209 -> joostkremers/visual-fill-column@db7c7c236555 justinbarclay/parinfer-rust-mode@6e6bdeeba325 -> justinbarclay/parinfer-rust-mode@8df117a3b54d raxod502/apheleia@56651724ad22 -> raxod502/apheleia@96a9805ecb75 --- modules/editor/file-templates/packages.el | 2 +- modules/editor/fold/packages.el | 2 +- modules/editor/format/packages.el | 2 +- modules/editor/parinfer/packages.el | 2 +- modules/editor/snippets/packages.el | 4 ++-- modules/editor/word-wrap/packages.el | 4 ++-- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/modules/editor/file-templates/packages.el b/modules/editor/file-templates/packages.el index 247da6b7e..20195a6bd 100644 --- a/modules/editor/file-templates/packages.el +++ b/modules/editor/file-templates/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; editor/file-templates/packages.el -(package! yasnippet :pin "5cbdbf0d2015540c59ed8ee0fcf4788effdf75b6") +(package! yasnippet :pin "297546f0853a6a51f5b05e954d0c6aea8caa5ec2") diff --git a/modules/editor/fold/packages.el b/modules/editor/fold/packages.el index 032d3ed72..ebb3a4768 100644 --- a/modules/editor/fold/packages.el +++ b/modules/editor/fold/packages.el @@ -7,5 +7,5 @@ (when (modulep! :editor evil) (package! evil-vimish-fold :pin "b6e0e6b91b8cd047e80debef1a536d9d49eef31a")) (when (modulep! :tools tree-sitter) - (package! ts-fold :pin "75e72c658ad8d8aac3af554a6b51b3c5c22dd0aa" + (package! ts-fold :pin "0627723e5f962fc72b238d4cf99a7f217e72aa3e" :recipe (:host github :repo "emacs-tree-sitter/ts-fold"))) diff --git a/modules/editor/format/packages.el b/modules/editor/format/packages.el index da69e9682..842765725 100644 --- a/modules/editor/format/packages.el +++ b/modules/editor/format/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; editor/format/packages.el -(package! apheleia :pin "56651724ad22f2769bbdaccf54cbe75c1cb35c91") +(package! apheleia :pin "96a9805ecb75aac2adde7568d26b3e3b3ffc19af") diff --git a/modules/editor/parinfer/packages.el b/modules/editor/parinfer/packages.el index 65ae55b11..30ecb21fc 100644 --- a/modules/editor/parinfer/packages.el +++ b/modules/editor/parinfer/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; editor/parinfer/packages.el -(package! parinfer-rust-mode :pin "6e6bdeeba32534acca5928fe4201ce013094988d") +(package! parinfer-rust-mode :pin "8df117a3b54d9e01266a3905b132a1d082944702") diff --git a/modules/editor/snippets/packages.el b/modules/editor/snippets/packages.el index 798e65cf9..3b3b46387 100644 --- a/modules/editor/snippets/packages.el +++ b/modules/editor/snippets/packages.el @@ -1,10 +1,10 @@ ;; -*- no-byte-compile: t; -*- ;;; editor/snippets/packages.el -(package! yasnippet :pin "76e1eee654ea9479ba1441f9c17567694e6a2096") +(package! yasnippet :pin "297546f0853a6a51f5b05e954d0c6aea8caa5ec2") (package! auto-yasnippet :pin "6a9e406d0d7f9dfd6dff7647f358cb05a0b1637e") (package! doom-snippets :recipe (:host github :repo "doomemacs/snippets" :files (:defaults "*")) - :pin "d490cba6d762e69b483be308bc387c1f785742f0") + :pin "f022984ee1318a4015d5d081b3c3dab5a60dc6ff") diff --git a/modules/editor/word-wrap/packages.el b/modules/editor/word-wrap/packages.el index 635b6f4be..5b0f9317c 100644 --- a/modules/editor/word-wrap/packages.el +++ b/modules/editor/word-wrap/packages.el @@ -1,5 +1,5 @@ ;; -*- no-byte-compile: t; -*- ;;; editor/word-wrap/packages.el -(package! adaptive-wrap :pin "fc9f0306f14c3859c9903b0a0336478bf070c943") -(package! visual-fill-column :pin "695a59789209c42fa08a5bce92963ee32f4455be") +(package! adaptive-wrap :pin "70005d2012ab57c20be03c05aebd49318fe49c99") +(package! visual-fill-column :pin "db7c7c236555c9c684e1294a277efefdc25fa5c4") From 2f7d8f41e1ceeb38bec25113e1c50e6245be9c67 Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Mon, 1 Jan 2024 12:30:06 -0600 Subject: [PATCH 350/523] feat(lookup): add Kagi --- modules/tools/lookup/config.el | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/tools/lookup/config.el b/modules/tools/lookup/config.el index 726ad117c..5d48d1529 100644 --- a/modules/tools/lookup/config.el +++ b/modules/tools/lookup/config.el @@ -20,6 +20,7 @@ ("Google" +lookup--online-backend-google "https://google.com/search?q=%s") ("Google images" "https://www.google.com/images?q=%s") ("Google maps" "https://maps.google.com/maps?q=%s") + ("Kagi" "https://kagi.com/search?q=%s") ("Project Gutenberg" "http://www.gutenberg.org/ebooks/search/?query=%s") ("DuckDuckGo" +lookup--online-backend-duckduckgo "https://duckduckgo.com/?q=%s") ("DevDocs.io" "https://devdocs.io/#q=%s") From 2ace90233cd6cc93fd82777b42e85ee4fe8e2bba Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Mon, 1 Jan 2024 12:32:33 -0600 Subject: [PATCH 351/523] feat(org): add Kagi custom link type --- modules/lang/org/README.org | 1 + modules/lang/org/config.el | 1 + 2 files changed, 2 insertions(+) diff --git a/modules/lang/org/README.org b/modules/lang/org/README.org index 1c923dd34..031bcd0f5 100644 --- a/modules/lang/org/README.org +++ b/modules/lang/org/README.org @@ -234,6 +234,7 @@ They are (with examples): - ~github:hlissner/doom-emacs~ - ~gmap:Toronto, Ontario~ (Google Maps) - ~google:search terms~ +- ~kagi:search terms~ - ~org:todo.org~ -> ={org-directory}/%s= - ~wolfram:sin(x^3)~ - ~wikipedia:Emacs~ diff --git a/modules/lang/org/config.el b/modules/lang/org/config.el index 0fda370f9..c7f7a422f 100644 --- a/modules/lang/org/config.el +++ b/modules/lang/org/config.el @@ -519,6 +519,7 @@ relative to `org-directory', unless it is an absolute path." '("google" . "https://google.com/search?q=") '("gimages" . "https://google.com/images?q=%s") '("gmap" . "https://maps.google.com/maps?q=%s") + '("kagi" . "https://kagi.com/search?q=%s") '("duckduckgo" . "https://duckduckgo.com/?q=%s") '("wikipedia" . "https://en.wikipedia.org/wiki/%s") '("wolfram" . "https://wolframalpha.com/input/?i=%s") From 343c3a82b06a666da34a885a81a0c525529887fa Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 5 Feb 2024 03:33:22 -0500 Subject: [PATCH 352/523] refactor: s/doom-modules-dirs/doom-module-load-path/ Ref: fc6934c24073 --- lisp/cli/compile.el | 2 +- lisp/doom-modules.el | 10 +++++----- lisp/doom-profiles.el | 2 +- lisp/lib/autoloads.el | 2 +- lisp/lib/debug.el | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/lisp/cli/compile.el b/lisp/cli/compile.el index 5dd251d45..88cfed2d9 100644 --- a/lisp/cli/compile.el +++ b/lisp/cli/compile.el @@ -199,7 +199,7 @@ module. This does not include your byte-compiled, third party packages.'" in (append (doom-glob doom-emacs-dir "*.elc") (doom-files-in doom-user-dir :match "\\.elc$" :depth 1) (doom-files-in doom-core-dir :match "\\.elc$") - (doom-files-in doom-modules-dirs :match "\\.elc$" :depth 4)) + (doom-files-in doom-module-load-path :match "\\.elc$" :depth 4)) if (file-exists-p path) do (delete-file path) and do (print! (success "\033[KDeleted %s%s") (relpath path) esc) diff --git a/lisp/doom-modules.el b/lisp/doom-modules.el index cf9ebe471..24e8f70f8 100644 --- a/lisp/doom-modules.el +++ b/lisp/doom-modules.el @@ -267,7 +267,7 @@ If PLIST consists of a single nil, the module is purged from memory instead." PATHS-OR-ALL can either be a non-nil value or a list of directories. If given a list of directories, return a list of module keys for all modules present -underneath it. If non-nil, return the same, but search `doom-modules-dirs' +underneath it. If non-nil, return the same, but search `doom-module-load-path' (includes :core and :user). Modules that are enabled are sorted first by their :depth, followed by disabled modules in lexicographical order (unless a :depth is specified in their .doommodule). @@ -279,7 +279,7 @@ configdepth. See `doom-module-set' for details." (append (seq-remove #'cdr (doom-module-list nil initorder?)) (doom-files-in (if (listp paths-or-all) paths-or-all - doom-modules-dirs) + doom-modules-load-path) :map #'doom-module-from-path :type 'dirs :mindepth 1 @@ -309,7 +309,7 @@ If the category isn't enabled this returns nil. For finding disabled modules use path))) (defun doom-module-locate-path (category &optional module file) - "Searches `doom-modules-dirs' to find the path to a module. + "Searches `doom-module-load-path' to find the path to a module. CATEGORY is a keyword (e.g. :lang) and MODULE is a symbol (e.g. 'python). FILE is a string that will be appended to the resulting path. If no path exists, this @@ -325,8 +325,8 @@ returns nil, otherwise an absolute path." (if file ;; PERF: locate-file-internal is a little faster for finding files, ;; but its interface for finding directories is clumsy. - (locate-file-internal path doom-modules-dirs '("" ".elc" ".el")) - (cl-loop for default-directory in doom-modules-dirs + (locate-file-internal path doom-module-load-path '("" ".elc" ".el")) + (cl-loop for default-directory in doom-module-load-path if (file-exists-p path) return (expand-file-name path))))))) diff --git a/lisp/doom-profiles.el b/lisp/doom-profiles.el index 668eccb24..94dd3dd09 100644 --- a/lisp/doom-profiles.el +++ b/lisp/doom-profiles.el @@ -439,7 +439,7 @@ Defaults to the profile at `doom-profile-default'." (doom-autoloads--scan (append (doom-glob doom-core-dir "lib/*.el") (cl-loop for dir - in (append (doom-module-load-path doom-modules-dirs) + in (append (doom-module-load-path) (list doom-user-dir)) if (doom-glob dir "autoload.el") collect (car it) if (doom-glob dir "autoload/*.el") append it) diff --git a/lisp/lib/autoloads.el b/lisp/lib/autoloads.el index 958db1c8d..9dec16be5 100644 --- a/lisp/lib/autoloads.el +++ b/lisp/lib/autoloads.el @@ -186,7 +186,7 @@ non-nil, treat FILES as pre-generated autoload files instead." (let ((load-file-name file) (load-path (append (list doom-user-dir) - doom-modules-dirs + doom-module-load-path load-path))) (condition-case _ (while t diff --git a/lisp/lib/debug.el b/lisp/lib/debug.el index d43d593f7..741e59ff3 100644 --- a/lisp/lib/debug.el +++ b/lisp/lib/debug.el @@ -301,7 +301,7 @@ ready to be pasted in a bug report on github." 'compiled-user-config) (if (doom-files-in doom-core-dir :type 'files :match "\\.elc$") 'compiled-core) - (if (doom-files-in doom-modules-dirs :type 'files :match "\\.elc$") + (if (doom-files-in doom-module-load-path :type 'files :match "\\.elc$") 'compiled-modules))))) (custom ,@(when (and (stringp custom-file) From f14e7907f63bfade786d930dcbe452069cab7587 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 5 Feb 2024 15:22:31 -0500 Subject: [PATCH 353/523] fix: doom-module-locate-paths: remove file-name-sans-extension call This was preventing its usage in :lang emacs-lisp from finding demos.org files in modules. Amend: 3bea4f66a844 --- lisp/doom-modules.el | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lisp/doom-modules.el b/lisp/doom-modules.el index 24e8f70f8..bafce77a3 100644 --- a/lisp/doom-modules.el +++ b/lisp/doom-modules.el @@ -335,8 +335,7 @@ returns nil, otherwise an absolute path." MODULE-LIST is a list of cons cells (GROUP . NAME). See `doom-module-list' for an example." - (cl-loop with file = (file-name-sans-extension file) - for (group . name) in module-list + (cl-loop for (group . name) in (or module-list (doom-module-list)) if (doom-module-locate-path group name file) collect it)) From ce6ea7d85f35813dca9202e29346faed98bbfb53 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 5 Feb 2024 16:36:41 -0500 Subject: [PATCH 354/523] bump: :lang Andersbakken/rtags@ee1ab7b9a6c8 -> Andersbakken/rtags@05117a9a293a FStarLang/fstar-mode.el@ab0697b9474f -> FStarLang/fstar-mode.el@7d353de89248 Fanael/edit-indirect@f80f63822ffa -> Fanael/edit-indirect@82a28d8a8527 ProofGeneral/PG@8416875696cb -> ProofGeneral/PG@a38857a6a099 Sarcasm/irony-mode@870d1576fb27 -> Sarcasm/irony-mode@40e0ce19eb85 aaronjensen/flycheck-credo@e88f11ead538 -> aaronjensen/flycheck-credo@e285bd042a53 agda/agda@bb7603d19781 -> agda/agda@fbf9d159c3c8 amake/flutter.el@edd3f5eb3f46 -> amake/flutter.el@004c91e070a9 ananthakumaran/exunit.el@e0a8c2b81f3d -> ananthakumaran/exunit.el@e008c89e01e5 ananthakumaran/tide@29475d9eee26 -> ananthakumaran/tide@b38dfc3f8fb7 arthurnn/minitest-emacs@ddd152c990a5 -> arthurnn/minitest-emacs@5999c45c0472 babashka/neil@40993873bb4e -> babashka/neil@a1db63d420b8 beancount/beancount-mode@0f1e33067e50 -> beancount/beancount-mode@546163fd2ccc borkdude/flycheck-clj-kondo@ff7bed231575 -> borkdude/flycheck-clj-kondo@9089ade9e01b cdominik/cdlatex@ac024ce29318 -> cdominik/cdlatex@33770dec7313 clojure-emacs/cider@120fd885d37c -> clojure-emacs/cider@aa26d62ac599 clojure-emacs/clj-refactor.el@0a2a6cbc2e29 -> clojure-emacs/clj-refactor.el@fa3efe18e715 clojure-emacs/clojure-mode@25d713a67d8e -> clojure-emacs/clojure-mode@222fdafa2add clojure-emacs/parseclj@74ff7d63fed9 -> clojure-emacs/parseclj@6af22372e0fe clojure-emacs/parseedn@c8f07926a688 -> clojure-emacs/parseedn@3407e4530a36 crystal-lang-tools/emacs-crystal-mode@9bfb9f0f566e -> crystal-lang-tools/emacs-crystal-mode@ea89b108fa42 davazp/graphql-mode@1437b790060f -> davazp/graphql-mode@49a391b5290e dgutov/robe@912ae2ba1f46 -> dgutov/robe@4ecd868da9ad dominikh/go-mode.el@166dfb1e0902 -> dominikh/go-mode.el@8dce1e3ba1cd elixir-editors/emacs-elixir@7641373f0563 -> elixir-editors/emacs-elixir@00d6580a040a emacs-geiser/geiser@49d12a14482c -> emacs-geiser/geiser@bb77719c2583 emacs-geiser/guile@ee33af6b4ef8 -> emacs-geiser/guile@6e0811c75d13 emacs-lsp/emacs-ccls@dd33da8ed74e -> emacs-lsp/emacs-ccls@9b4a47e0418d emacs-lsp/lsp-dart@3db9f93c8305 -> emacs-lsp/lsp-dart@e7ee6afc2e16 emacs-lsp/lsp-java@449673da7221 -> emacs-lsp/lsp-java@c962a3b3ac2b emacs-php/composer.el@5af1707fefbd -> emacs-php/composer.el@91945f1bdb65 emacs-php/php-mode@fb11df8268b7 -> emacs-php/php-mode@a0bcafbe3049 emacs-php/phpactor.el@9440005814c4 -> emacs-php/phpactor.el@8733fef84b45 emacs-php/psysh.el@796b26a5cd75 -> emacs-php/psysh.el@c7dde979d9fd emacs-straight/adaptive-wrap@0d5b4a07de76 -> emacs-straight/adaptive-wrap@70005d2012ab emacs-straight/auctex@3929d5408b1e -> emacs-straight/auctex@86b2397abdc2 emacs-straight/csv-mode@d190a479b4f3 -> emacs-straight/csv-mode@81c1a9febd2a emacs-straight/rainbow-mode@8e96388fb4d6 -> emacs-straight/rainbow-mode@70ed10d410ef emacs-straight/sml-mode@5426ff473824 -> emacs-straight/sml-mode@e5354371f361 emacsmirror/cmake-mode@f9c7a21254a8 -> emacsmirror/cmake-mode@b08b5d904530 emacsorphanage/dart-mode@9c846769abd3 -> emacsorphanage/dart-mode@dffc0209a19f erlang/otp@be7109f43bee -> erlang/otp@0ca7e064f5a9 factor/factor@76ac65649d61 -> factor/factor@23fcfc70753a flycheck/flycheck-cask@4b2ede6362de -> flycheck/flycheck-cask@0eeec5197e9d fxbois/web-mode@57856ba64b93 -> fxbois/web-mode@82847071ce93 gcv/julia-snail@18b891b45690 -> gcv/julia-snail@d36653bb9380 gdkrmr/lsp-julia@c584f79c7fee -> gdkrmr/lsp-julia@c869b2f6c05a godotengine/emacs-gdscript-mode@d392e8aa7e7c -> godotengine/emacs-gdscript-mode@8a28276daaa2 greghendershott/racket-mode@947d9806ee27 -> greghendershott/racket-mode@d3ab936af109 haskell/haskell-mode@79eaf444a721 -> haskell/haskell-mode@43b4036bf02b hhvm/hack-mode@26f06ffe8257 -> hhvm/hack-mode@278e4cc4032b hvesalai/emacs-scala-mode@5d7cf21c37e3 -> hvesalai/emacs-scala-mode@4c6d636b86e3 idris-hackers/idris-mode@c96f45d1b8fa -> idris-hackers/idris-mode@37c6b8199031 immerrr/lua-mode@7eb8eaa420c2 -> immerrr/lua-mode@d074e4134b1b iyefrat/evil-tex@3e0a26b91a1a -> iyefrat/evil-tex@2a3177c818f1 jrblevin/markdown-mode@b1a862f0165b -> jrblevin/markdown-mode@e096bb97a91f json-emacs/json-mode@eedb4560034f -> json-emacs/json-mode@bfd1557aaa20 jwiegley/emacs-async@71cc50f27ffc -> jwiegley/emacs-async@d040f72cb0be ledger/ledger-mode@4b32f701736b -> ledger/ledger-mode@11e748d4838d ljos/jq-mode@071c1c29bac3 -> ljos/jq-mode@37028e120041 nex3/haml-mode@fe83c65c1f00 -> nex3/haml-mode@a64d58df8f09 nlamirault/phpunit.el@4a36906344c0 -> nlamirault/phpunit.el@650a50898de1 nonsequitur/inf-ruby@03475ac1cca4 -> nonsequitur/inf-ruby@dac615c7fdbb ocaml-ppx/ocamlformat@7db948a8946e -> ocaml-ppx/ocamlformat@b8b09566904c ocaml/dune@360b00027166 -> ocaml/dune@64d19876ad6d pashky/restclient.el@0ba72816f92f -> pashky/restclient.el@e2a2b13482d7 psibi/dhall-mode@c77f1c1e75b6 -> psibi/dhall-mode@87ab69fe765d purescript-emacs/emacs-psci@9bb6a3253254 -> purescript-emacs/emacs-psci@ef31045295f2 purescript-emacs/psc-ide-emacs@ce97d719458e -> purescript-emacs/psc-ide-emacs@4e614df553fb s-kostyaev/go-gen-test@f84f4177af7f -> s-kostyaev/go-gen-test@af00a9abbaba seagle0128/grip-mode@5809fb62f6dd -> seagle0128/grip-mode@e145adb22593 senny/rbenv.el@2ea1a5bdc126 -> senny/rbenv.el@588b817d5107 technomancy/fennel-mode@8f721285e123 -> technomancy/fennel-mode@5965c8fc693a tpapp/julia-repl@9503ef711073 -> tpapp/julia-repl@4947319bc948 weijiangan/flycheck-golangci-lint@8e446c683110 -> weijiangan/flycheck-golangci-lint@9def093e416e wwwjfy/emacs-fish@6869efbc05cd -> wwwjfy/emacs-fish@2526b1803b58 yoshiki/yaml-mode@3fcb36d6039b -> yoshiki/yaml-mode@5b58248ab255 Close: #7648 --- modules/lang/agda/packages.el | 4 ++-- modules/lang/beancount/packages.el | 2 +- modules/lang/cc/packages.el | 8 ++++---- modules/lang/clojure/packages.el | 14 +++++++------- modules/lang/coq/packages.el | 2 +- modules/lang/crystal/packages.el | 4 ++-- modules/lang/dart/packages.el | 6 +++--- modules/lang/data/packages.el | 2 +- modules/lang/dhall/packages.el | 2 +- modules/lang/elixir/packages.el | 6 +++--- modules/lang/emacs-lisp/packages.el | 2 +- modules/lang/erlang/packages.el | 2 +- modules/lang/factor/packages.el | 2 +- modules/lang/fstar/packages.el | 2 +- modules/lang/gdscript/packages.el | 2 +- modules/lang/go/packages.el | 8 ++++---- modules/lang/graphql/packages.el | 2 +- modules/lang/haskell/packages.el | 2 +- modules/lang/idris/packages.el | 2 +- modules/lang/java/packages.el | 2 +- modules/lang/javascript/packages.el | 2 +- modules/lang/json/packages.el | 2 +- modules/lang/julia/packages.el | 6 +++--- modules/lang/latex/packages.el | 8 ++++---- modules/lang/ledger/packages.el | 2 +- modules/lang/lua/packages.el | 4 ++-- modules/lang/markdown/packages.el | 6 +++--- modules/lang/ocaml/packages.el | 4 ++-- modules/lang/php/packages.el | 16 ++++++++-------- modules/lang/purescript/packages.el | 4 ++-- modules/lang/racket/packages.el | 2 +- modules/lang/rest/packages.el | 6 +++--- modules/lang/ruby/packages.el | 8 ++++---- modules/lang/scala/packages.el | 2 +- modules/lang/scheme/packages.el | 4 ++-- modules/lang/sh/packages.el | 2 +- modules/lang/sml/packages.el | 2 +- modules/lang/web/packages.el | 6 +++--- modules/lang/yaml/packages.el | 2 +- 39 files changed, 82 insertions(+), 82 deletions(-) diff --git a/modules/lang/agda/packages.el b/modules/lang/agda/packages.el index 1f9656286..25cc82dd4 100644 --- a/modules/lang/agda/packages.el +++ b/modules/lang/agda/packages.el @@ -6,11 +6,11 @@ :recipe (:host github :repo "agda/agda" :files ("src/data/emacs-mode/agda-input.el") :nonrecursive t) - :pin "bb7603d19781e4da2dc702a5a1611fd59e5325f2") + :pin "fbf9d159c3c874b8328ccdc78a0d57d57a310234") (package! agda2-mode :recipe (:host github :repo "agda/agda" :files ("src/data/emacs-mode/*.el" (:exclude "agda-input.el")) :nonrecursive t) - :pin "bb7603d19781e4da2dc702a5a1611fd59e5325f2")) + :pin "fbf9d159c3c874b8328ccdc78a0d57d57a310234")) diff --git a/modules/lang/beancount/packages.el b/modules/lang/beancount/packages.el index dc731fb8b..aa54f0fb7 100644 --- a/modules/lang/beancount/packages.el +++ b/modules/lang/beancount/packages.el @@ -4,4 +4,4 @@ (package! beancount :recipe (:host github :repo "beancount/beancount-mode") - :pin "0f1e33067e5032382f425b5280169f50aa7dd497") + :pin "546163fd2ccc007f28812faf5170eb954d3ca979") diff --git a/modules/lang/cc/packages.el b/modules/lang/cc/packages.el index 67bc7bb2b..817c2acd2 100644 --- a/modules/lang/cc/packages.el +++ b/modules/lang/cc/packages.el @@ -3,7 +3,7 @@ (package! cmake-mode :recipe (:host github :repo "emacsmirror/cmake-mode" :files (:defaults "*")) - :pin "f9c7a21254a82a8d44b623bdfded6d21b4ea33ef") + :pin "b08b5d9045308362a623a4f576896d55ffecfd52") (package! cuda-mode :pin "7f593518fd135fc6af994024bcb47986dfa502d2") (package! demangle-mode :pin "04f545adab066708d6151f13da65aaf519f8ac4e") (package! disaster :pin "16bba9afb92aacf06c088c29ba47813b65a80d87") @@ -19,8 +19,8 @@ (if (modulep! +lsp) (unless (modulep! :tools lsp +eglot) ;; ccls package is necessary only for lsp-mode. - (package! ccls :pin "dd33da8ed74ea3936c1ac969fe1be02879825e86")) - (when (package! irony :pin "870d1576fb279bb93f776a71e65f45283c423a9e") + (package! ccls :pin "9b4a47e0418de8cc2fc93317e27cbdde75286df1")) + (when (package! irony :pin "40e0ce19eb850bdf1f77225f11713cc816250d95") (package! irony-eldoc :pin "73e79a89fad982a2ba072f2fcc1b4e41f0aa2978") (when (and (modulep! :checkers syntax) (not (modulep! :checkers syntax +flymake))) @@ -28,7 +28,7 @@ (when (modulep! :completion company) (package! company-irony :pin "b44711dfce445610c1ffaec4951c6ff3882b216a") (package! company-irony-c-headers :pin "72c386aeb079fb261d9ec02e39211272f76bbd97"))) - (when (package! rtags :pin "ee1ab7b9a6c88dc05282d9e3c64c0d380bf53c11") + (when (package! rtags :pin "05117a9a293a729e30013a586c9e3437d9b856c0") (when (modulep! :completion ivy) (package! ivy-rtags)) (when (modulep! :completion helm) diff --git a/modules/lang/clojure/packages.el b/modules/lang/clojure/packages.el index 33c4f5fe9..0712af7ef 100644 --- a/modules/lang/clojure/packages.el +++ b/modules/lang/clojure/packages.el @@ -10,17 +10,17 @@ ;; HACK Forward declare these clj-refactor/cider deps so that their deps are ;; byte-compiled first. -(package! parseclj :pin "74ff7d63fed92a3c859e474ae85f011e794b751a") -(package! parseedn :pin "c8f07926a688bfe995fde4460103915d401a1aff") +(package! parseclj :pin "6af22372e0fe14df882dd300b22b12ba2d7e00b0") +(package! parseedn :pin "3407e4530a367b6c2b857dae261cdbb67a440aaa") ;;; Core packages -(package! clojure-mode :pin "25d713a67d8e0209ee74bfc0153fdf677697b43f") -(package! clj-refactor :pin "0a2a6cbc2e29177f4f55730637a357433a03fa38") -(package! cider :pin "120fd885d37c07137f1c162e8d522ab3eed1ac3f") +(package! clojure-mode :pin "222fdafa2add56a171ded245339a383e5e3078ec") +(package! clj-refactor :pin "fa3efe18e7150df5153a7d05c54e96d59398a0a8") +(package! cider :pin "aa26d62ac59930079e47e652ccd73e8e447defd5") (when (and (modulep! :checkers syntax) (not (modulep! :checkers syntax +flymake))) - (package! flycheck-clj-kondo :pin "ff7bed2315755cfe02ef471edf522e27b78cd5ca")) + (package! flycheck-clj-kondo :pin "9089ade9e01b091139321c78ad75946944ff845d")) (package! jet :pin "7d5157aac692fc761d8ed7a9f820fa6522136254") (package! neil :recipe (:host github :repo "babashka/neil" :files ("*.el")) - :pin "40993873bb4ef6d88af450e8a96d03275e266f6b") + :pin "a1db63d420b85db814207113ca4a0b4b959073cc") diff --git a/modules/lang/coq/packages.el b/modules/lang/coq/packages.el index b9533c0ad..d7b60edf9 100644 --- a/modules/lang/coq/packages.el +++ b/modules/lang/coq/packages.el @@ -1,5 +1,5 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/coq/packages.el -(package! proof-general :pin "8416875696cb0c4283e96fe721d343277882ecea") +(package! proof-general :pin "a38857a6a099d0d94184a50093ea6ad331c5c52e") (package! company-coq :pin "5affe7a96a25df9101f9e44bac8a828d8292c2fa") diff --git a/modules/lang/crystal/packages.el b/modules/lang/crystal/packages.el index 6fa5ef803..351e72eb6 100644 --- a/modules/lang/crystal/packages.el +++ b/modules/lang/crystal/packages.el @@ -1,9 +1,9 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/crystal/packages.el -(package! crystal-mode :pin "9bfb9f0f566e937cc6a2f2913d1b56978b81dc99") +(package! crystal-mode :pin "ea89b108fa4222df94ffb99e6e7eaec5d7aa4fea") (package! inf-crystal :pin "02007b2a2a3bea44902d7c83c4acba1e39d278e3") (when (and (modulep! :checkers syntax) (not (modulep! :checkers syntax +flymake))) - (package! flycheck-crystal :pin "9bfb9f0f566e937cc6a2f2913d1b56978b81dc99") + (package! flycheck-crystal :pin "ea89b108fa4222df94ffb99e6e7eaec5d7aa4fea") (package! flycheck-ameba :pin "0c4925ae0e998818326adcb47ed27ddf9761c7dc")) diff --git a/modules/lang/dart/packages.el b/modules/lang/dart/packages.el index 5a7c93395..19830a9b3 100644 --- a/modules/lang/dart/packages.el +++ b/modules/lang/dart/packages.el @@ -1,12 +1,12 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/dart/packages.el -(package! dart-mode :pin "9c846769abd37f7fdc7ba8388d1f3a2b844b75e3") +(package! dart-mode :pin "dffc0209a19fdfac72b861d6adb445c1b6b464f7") (when (and (modulep! +lsp) (not (modulep! :tools lsp +eglot))) - (package! lsp-dart :pin "3db9f93c83052d6a8976c92d67d2b24473930760")) + (package! lsp-dart :pin "e7ee6afc2e165291360fd35d16648307920837c7")) (when (modulep! +flutter) - (package! flutter :pin "edd3f5eb3f4603142f45c5890ee70b0dfb10772b") + (package! flutter :pin "004c91e070a9b4a2a5042f5bb20015ec65453acf") (package! hover :pin "4ca0638a14a8b304ac2b46e7b342b8d8732ad199")) diff --git a/modules/lang/data/packages.el b/modules/lang/data/packages.el index 3131a9369..70b3b96c7 100644 --- a/modules/lang/data/packages.el +++ b/modules/lang/data/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/data/packages.el -(package! csv-mode :pin "d190a479b4f36806b604da527e5d5a50909d3ceb") +(package! csv-mode :pin "81c1a9febd2adf79cfbdf939081ef7bf3a41ffd6") diff --git a/modules/lang/dhall/packages.el b/modules/lang/dhall/packages.el index a1313046a..1ed5f8d99 100644 --- a/modules/lang/dhall/packages.el +++ b/modules/lang/dhall/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/dhall/packages.el -(package! dhall-mode :pin "c77f1c1e75b6d2725019c5275fc102ae98d25628") +(package! dhall-mode :pin "87ab69fe765d87b3bb1604a306a8c44d6887681d") diff --git a/modules/lang/elixir/packages.el b/modules/lang/elixir/packages.el index 6521fcd40..fb6541bdd 100644 --- a/modules/lang/elixir/packages.el +++ b/modules/lang/elixir/packages.el @@ -2,8 +2,8 @@ ;;; lang/elixir/packages.el ;; +elixir.el -(package! elixir-mode :pin "7641373f0563cab67cc5459c34534a8176b5e676") -(package! exunit :pin "e0a8c2b81f3d53885ed753b911b3cb6ee9229bec") +(package! elixir-mode :pin "00d6580a040a750e019218f9392cf9a4c2dac23a") +(package! exunit :pin "e008c89e01e5680473278c7e7bab42842e294e4d") (when (and (modulep! :checkers syntax) (not (modulep! :checkers syntax +flymake))) - (package! flycheck-credo :pin "e88f11ead53805c361ec7706e44c3dfee1daa19f")) + (package! flycheck-credo :pin "e285bd042a535d0f13e0b4c5226df404cdda4033")) diff --git a/modules/lang/emacs-lisp/packages.el b/modules/lang/emacs-lisp/packages.el index 1e7bf2f93..d3894e575 100644 --- a/modules/lang/emacs-lisp/packages.el +++ b/modules/lang/emacs-lisp/packages.el @@ -14,7 +14,7 @@ (when (and (modulep! :checkers syntax) (not (modulep! :checkers syntax +flymake))) (package! flycheck-package :pin "75efa098cf17dc14c363e2ca9b68afdac7766b5b") - (package! flycheck-cask :pin "4b2ede6362ded4a45678dfbef1876faa42edbd58")) + (package! flycheck-cask :pin "0eeec5197e9d31bfcfc39380b262d65259a87d91")) ;; Libraries (package! buttercup :pin "24d43b2ce262faf59e5ff9f72466efb293aa6154") diff --git a/modules/lang/erlang/packages.el b/modules/lang/erlang/packages.el index 05c465987..092a55b3e 100644 --- a/modules/lang/erlang/packages.el +++ b/modules/lang/erlang/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/erlang/packages.el -(package! erlang :pin "be7109f43beeeea199ae74a42393927d013f75d9") +(package! erlang :pin "0ca7e064f5a948d68db12b5d9f9cfa2faf0f0ea3") diff --git a/modules/lang/factor/packages.el b/modules/lang/factor/packages.el index b14d8b3af..f6b4aff31 100644 --- a/modules/lang/factor/packages.el +++ b/modules/lang/factor/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/factor/packages.el -(package! fuel :pin "76ac65649d61975899070cf043447a995bf76c97") +(package! fuel :pin "23fcfc70753abbbdc0e86af06330d63da6e4ea64") diff --git a/modules/lang/fstar/packages.el b/modules/lang/fstar/packages.el index edb6dc9cd..ae0877453 100644 --- a/modules/lang/fstar/packages.el +++ b/modules/lang/fstar/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/fstar/packages.el -(package! fstar-mode :pin "ab0697b9474f36942a12a4b2a75251c247c18e9e") +(package! fstar-mode :pin "7d353de89248f1df6edd1f5672ab4d39f5d1353d") diff --git a/modules/lang/gdscript/packages.el b/modules/lang/gdscript/packages.el index 6d6ee074e..582c9d6dc 100644 --- a/modules/lang/gdscript/packages.el +++ b/modules/lang/gdscript/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/gdscript/packages.el -(package! gdscript-mode :pin "d392e8aa7e7c6dd79ce52fb55d78f7acfa443194") +(package! gdscript-mode :pin "8a28276daaa23f10e986367b80dc751c5d26829e") diff --git a/modules/lang/go/packages.el b/modules/lang/go/packages.el index 026a9b938..fc019527b 100644 --- a/modules/lang/go/packages.el +++ b/modules/lang/go/packages.el @@ -2,15 +2,15 @@ ;;; lang/go/packages.el (package! go-eldoc :pin "cbbd2ea1e94a36004432a9ac61414cb5a95a39bd") -(package! go-guru :pin "166dfb1e090233c4609a50c2ec9f57f113c1da72") -(package! go-mode :pin "166dfb1e090233c4609a50c2ec9f57f113c1da72") +(package! go-guru :pin "8dce1e3ba1cdc34a856ad53c8421413cfe33660e") +(package! go-mode :pin "8dce1e3ba1cdc34a856ad53c8421413cfe33660e") (package! gorepl-mode :pin "6a73bf352e8d893f89cad36c958c4db2b5e35e07") (package! go-tag :pin "33f2059551d5298ca228d90f525b99d1a8d70364") -(package! go-gen-test :pin "f84f4177af7fcbe10ce2116d5417ad5f0485034b") +(package! go-gen-test :pin "af00a9abbaba2068502327ecdef574fd894a884b") (when (modulep! :completion company) (package! company-go :pin "31948b463f2fc18f8801e5a8fe511fef300eb3dd")) (when (and (modulep! :checkers syntax) (not (modulep! :checkers syntax +flymake))) - (package! flycheck-golangci-lint :pin "8e446c68311048f0b87febf8ef0379e29d358851")) + (package! flycheck-golangci-lint :pin "9def093e416e9a6ddd3cae8590dbb7ff6314925a")) diff --git a/modules/lang/graphql/packages.el b/modules/lang/graphql/packages.el index f41bc1c74..bb9a771f0 100644 --- a/modules/lang/graphql/packages.el +++ b/modules/lang/graphql/packages.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/graphql/packages.el -(package! graphql-mode :pin "1437b790060f6ce4a8dc57df2023443645b899e5") +(package! graphql-mode :pin "49a391b5290e3354b07f7b77ded97a154c084f46") (package! graphql-doc :pin "d37140267e0c426c7c18aff31900aa1650257394") (unless (modulep! +lsp) (package! company-graphql diff --git a/modules/lang/haskell/packages.el b/modules/lang/haskell/packages.el index 6eecc104d..a4b5961c5 100644 --- a/modules/lang/haskell/packages.el +++ b/modules/lang/haskell/packages.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/haskell/packages.el -(package! haskell-mode :pin "79eaf444a72109f93f552abb53f834cc63bbf9f2") +(package! haskell-mode :pin "43b4036bf02b02de75643a1a2a31e28efac1c50b") (when (and (modulep! +lsp) (not (modulep! :tools lsp +eglot))) diff --git a/modules/lang/idris/packages.el b/modules/lang/idris/packages.el index 5eac5d034..92c502de1 100644 --- a/modules/lang/idris/packages.el +++ b/modules/lang/idris/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/idris/packages.el -(package! idris-mode :pin "c96f45d1b8fad193f09fb6139da17092003b5e74") +(package! idris-mode :pin "37c6b819903191acd85c56ef6f7ccf579b57eea4") diff --git a/modules/lang/java/packages.el b/modules/lang/java/packages.el index e9ec41e84..8e84b5088 100644 --- a/modules/lang/java/packages.el +++ b/modules/lang/java/packages.el @@ -14,4 +14,4 @@ (when (modulep! +lsp) (unless (modulep! :tools lsp +eglot) - (package! lsp-java :pin "449673da7221a30f1b1756cedcc48b9a2b52a51e"))) + (package! lsp-java :pin "c962a3b3ac2beabdf1ce83b815396d6c38e3cefa"))) diff --git a/modules/lang/javascript/packages.el b/modules/lang/javascript/packages.el index d9fbc635d..1196c229f 100644 --- a/modules/lang/javascript/packages.el +++ b/modules/lang/javascript/packages.el @@ -14,6 +14,6 @@ (package! skewer-mode :pin "e5bed351939c92a1f788f78398583c2f83f1bb3c") ;; Programming environment -(package! tide :pin "29475d9eee26f4101322209e9b6b199df5386094") +(package! tide :pin "b38dfc3f8fb754e64e48e76fc92d472cb3d1a3dc") (when (modulep! :tools lookup) (package! xref-js2 :pin "fd6b723e7f1f9793d189a815e1904364dc026b03")) diff --git a/modules/lang/json/packages.el b/modules/lang/json/packages.el index e4b0ff3f8..7cad731fa 100644 --- a/modules/lang/json/packages.el +++ b/modules/lang/json/packages.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/json/packages.el -(package! json-mode :pin "eedb4560034f795a7950fa07016bd4347c368873") +(package! json-mode :pin "bfd1557aaa20b7518b808fdc869f094b52205234") (package! json-snatcher :pin "b28d1c0670636da6db508d03872d96ffddbc10f2") (when (modulep! :completion ivy) (package! counsel-jq :pin "8cadd2e96470402ede4881b4e955872976443689")) diff --git a/modules/lang/julia/packages.el b/modules/lang/julia/packages.el index 50f36c8fe..5892896be 100644 --- a/modules/lang/julia/packages.el +++ b/modules/lang/julia/packages.el @@ -2,12 +2,12 @@ ;;; lang/julia/packages.el (package! julia-mode :pin "7a8c868e0d3e51ba4a2c621ee22ca9599e0e4bbb") -(package! julia-repl :pin "9503ef7110732e444e686e815c5b2ae8228d274d") +(package! julia-repl :pin "4947319bc948b3f80d61b0d65a719737275949b8") (when (modulep! +lsp) (if (modulep! :tools lsp +eglot) (package! eglot-jl :pin "7dc604fe42a459a987853d065cd6d0f3c4cbc02a") - (package! lsp-julia :pin "c584f79c7fee6176bbb6120f4cb0f1001bcf8113"))) + (package! lsp-julia :pin "c869b2f6c05a97e5495ed3cc6710a33b4faf41a2"))) (when (modulep! +snail) - (package! julia-snail :pin "18b891b4569096d541e996cf7e24da01efdf2e03")) + (package! julia-snail :pin "d36653bb938050cfabbe3c1ea6d4575071085577")) diff --git a/modules/lang/latex/packages.el b/modules/lang/latex/packages.el index dac796910..112fee398 100644 --- a/modules/lang/latex/packages.el +++ b/modules/lang/latex/packages.el @@ -4,11 +4,11 @@ (package! auctex :recipe (:files ("*.el" "*.info" "dir" "doc" "etc" "images" "latex" "style")) - :pin "3929d5408b1e0d68cadeef7536a26ce29b1d36ea") -(package! adaptive-wrap :pin "0d5b4a07de76d87dd64333a566a8a0a845f2b9f0") + :pin "86b2397abdc20a638e5751251026727bc6282022") +(package! adaptive-wrap :pin "70005d2012ab57c20be03c05aebd49318fe49c99") (package! latex-preview-pane :pin "5297668a89996b50b2b62f99cba01cc544dbed2e") (when (modulep! :editor evil +everywhere) - (package! evil-tex :pin "3e0a26b91a1a56b0f35cbd450d01431057551750")) + (package! evil-tex :pin "2a3177c818f106e6c11032ac261f8691f5e11f74")) ;; Optional module features. @@ -16,7 +16,7 @@ (package! auctex-latexmk :pin "b00a95e6b34c94987fda5a57c20cfe2f064b1c7a")) (when (modulep! +cdlatex) - (package! cdlatex :pin "ac024ce29318cab812a743ad132a531c855c27a5")) + (package! cdlatex :pin "33770dec73138909714711b05a63e79da5a19ccd")) ;; Features according to other user selected options. diff --git a/modules/lang/ledger/packages.el b/modules/lang/ledger/packages.el index da9ff31a6..47b1ef2bf 100644 --- a/modules/lang/ledger/packages.el +++ b/modules/lang/ledger/packages.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/ledger/packages.el -(package! ledger-mode :pin "4b32f701736b37f99048be79583b0bde7cc14c85") +(package! ledger-mode :pin "11e748d4838d51772f531a75849349ed8cd939ed") (when (modulep! :editor evil) (package! evil-ledger :pin "7a9f9f5d39c42fffdba8004f8982642351f2b233")) diff --git a/modules/lang/lua/packages.el b/modules/lang/lua/packages.el index b4250fa65..c5a16f5fd 100644 --- a/modules/lang/lua/packages.el +++ b/modules/lang/lua/packages.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/lua/packages.el -(package! lua-mode :pin "7eb8eaa420c25477c830623b830fd18dc350cdfb") +(package! lua-mode :pin "d074e4134b1beae9ed4c9b512af741ca0d852ba3") (when (modulep! +moonscript) (package! moonscript :pin "56f90471e2ced2b0a177aed4d8c2f854797e9cc7") @@ -12,7 +12,7 @@ :pin "fcb99e5efcf31db05f236f02eaa575986a57172d"))) (when (modulep! +fennel) - (package! fennel-mode :pin "8f721285e12382b72c2f7a769d21fd332461eb2a")) + (package! fennel-mode :pin "5965c8fc693a49e65237a087e693690cf8c9fcb3")) (when (modulep! :completion company) (package! company-lua :pin "29f6819de4d691e5fd0b62893a9f4fbc1c6fcb52")) diff --git a/modules/lang/markdown/packages.el b/modules/lang/markdown/packages.el index cc59bb7fc..c6566899d 100644 --- a/modules/lang/markdown/packages.el +++ b/modules/lang/markdown/packages.el @@ -1,12 +1,12 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/markdown/packages.el -(package! markdown-mode :pin "b1a862f0165b7bafe0f874738a55be1b1720dd7d") +(package! markdown-mode :pin "e096bb97a91fcd4dc2b46d8b6e093194b03b7364") (package! markdown-toc :pin "3d724e518a897343b5ede0b976d6fb46c46bcc01") -(package! edit-indirect :pin "f80f63822ffae78de38dbe72cacaeb1aaa96c732") +(package! edit-indirect :pin "82a28d8a85277cfe453af464603ea330eae41c05") (when (modulep! +grip) - (package! grip-mode :pin "5809fb62f6dd7b4bfa7685203aaa1474fca70f4e")) + (package! grip-mode :pin "e145adb22593a88249d964f77174207bcf755493")) (when (modulep! :editor evil +everywhere) (package! evil-markdown diff --git a/modules/lang/ocaml/packages.el b/modules/lang/ocaml/packages.el index dfc50c3e8..97c85b0f1 100644 --- a/modules/lang/ocaml/packages.el +++ b/modules/lang/ocaml/packages.el @@ -19,8 +19,8 @@ (when (modulep! :editor format) (package! ocamlformat :recipe (:host github :repo "ocaml-ppx/ocamlformat" :files ("emacs/*.el")) - :pin "7db948a8946e589edd11334dda56505f8d826dca")) + :pin "b8b09566904cf290cca294d3bf06a4f51793dfb7")) (package! dune :recipe (:host github :repo "ocaml/dune" :files ("editor-integration/emacs/*.el")) - :pin "360b00027166473a01a9010a04fc30af3ee883a0") + :pin "64d19876ad6d2ca8b36d6158d5ac58c6eae8bc9a") diff --git a/modules/lang/php/packages.el b/modules/lang/php/packages.el index 95ef51a9c..149b7f5bf 100644 --- a/modules/lang/php/packages.el +++ b/modules/lang/php/packages.el @@ -1,27 +1,27 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/php/packages.el -(package! psysh :pin "796b26a5cd75df9d2ecb206718b310ff21787063") +(package! psysh :pin "c7dde979d9fd3ce59771f050bd38b2796cace446") (package! php-extras :recipe (:host github :repo "arnested/php-extras") :pin "d410c5af663c30c01d461ac476d1cbfbacb49367") -(package! php-mode :pin "fb11df8268b7099766264cd53836ef159746adbd") +(package! php-mode :pin "a0bcafbe30494b2c5a70c2fe05f2bb0859e83645") (package! php-refactor-mode :pin "7a794b0618df2882b1bd586fdd698dba0bc5130d") -(package! phpunit :pin "4a36906344c0abc11f48cc08cd8d50a9f46963f8") -(package! composer :pin "5af1707fefbd9d7db1102afdaeb8f2da893fea37") +(package! phpunit :pin "650a50898de1fa4eeb47360b12aeb1126b2448c2") +(package! composer :pin "91945f1bdb655be272320d14dab306b661a128a1") (when (modulep! +hack) (package! hack-mode :recipe (:host github :repo "hhvm/hack-mode") - :pin "26f06ffe82574f98e7da381e48202eceb8ef0793")) + :pin "278e4cc4032bff92060496cf1179643cfc6f9c0f")) (unless (modulep! +lsp) - (package! phpactor :pin "9440005814c4858880ad45afdaa7d2e637a9d280") + (package! phpactor :pin "8733fef84b458457c1bfd188cfb861fc3150ee1c") (when (modulep! :completion company) - (package! company-phpactor :pin "9440005814c4858880ad45afdaa7d2e637a9d280"))) + (package! company-phpactor :pin "8733fef84b458457c1bfd188cfb861fc3150ee1c"))) (when (modulep! :editor format) (package! php-cs-fixer :pin "efe4368d891f1eec6311363cfd6be3e9eadb5e0a")) ;; For building php-extras -(package! async :pin "71cc50f27ffc598a89aeaa593488d87818647d02") +(package! async :pin "d040f72cb0be5265d50ac541ddb09ebbc68b7908") diff --git a/modules/lang/purescript/packages.el b/modules/lang/purescript/packages.el index 27b083e9f..505b163b6 100644 --- a/modules/lang/purescript/packages.el +++ b/modules/lang/purescript/packages.el @@ -1,6 +1,6 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/purescript/packages.el -(package! psc-ide :pin "ce97d719458ea099b40c02f05b6609601c727e66") +(package! psc-ide :pin "4e614df553fb315d32ee9dac085109ee7786a3cf") (package! purescript-mode :pin "eacc61aaafe6055b5f278c9843558f220f18b153") -(package! psci :pin "9bb6a325325480be704130c9c69731631d2cf3a6") +(package! psci :pin "ef31045295f29485fc697892fba53390fe193595") diff --git a/modules/lang/racket/packages.el b/modules/lang/racket/packages.el index 1c2a9a8b6..70987d450 100644 --- a/modules/lang/racket/packages.el +++ b/modules/lang/racket/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/racket/packages.el -(package! racket-mode :pin "947d9806ee27ef241643f978c7901fd1f9e10c98") +(package! racket-mode :pin "d3ab936af10909874443cadb2e6c952faf2f536f") diff --git a/modules/lang/rest/packages.el b/modules/lang/rest/packages.el index 937f62784..6ff464d43 100644 --- a/modules/lang/rest/packages.el +++ b/modules/lang/rest/packages.el @@ -1,10 +1,10 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/rest/packages.el -(package! restclient :pin "0ba72816f92f3d5906cdf76f418fd0a3ee72809b") +(package! restclient :pin "e2a2b13482d72634f8e49864cd9e5c907a5fe137") (when (modulep! :completion company) (package! company-restclient :pin "e5a3ec54edb44776738c13e13e34c85b3085277b")) (when (modulep! +jq) - (package! jq-mode :pin "071c1c29bac30351ad338136f2b625e5601365cd") - (package! restclient-jq :pin "0ba72816f92f3d5906cdf76f418fd0a3ee72809b")) + (package! jq-mode :pin "37028e120041a489eff352b79202361cb232377e") + (package! restclient-jq :pin "e2a2b13482d72634f8e49864cd9e5c907a5fe137")) diff --git a/modules/lang/ruby/packages.el b/modules/lang/ruby/packages.el index 274775c9f..70869493e 100644 --- a/modules/lang/ruby/packages.el +++ b/modules/lang/ruby/packages.el @@ -6,13 +6,13 @@ (package! yard-mode :pin "de1701753a64544c3376b015805f3661136d8038") ;; REPL -(package! inf-ruby :pin "03475ac1cca410ee63a523f5c63f859cfafe1aeb") +(package! inf-ruby :pin "dac615c7fdbb57587465b1c497f8be4c979439e1") (when (modulep! :completion company) (package! company-inf-ruby :pin "fe3e4863bc971fbb81edad447efad5795ead1b17")) ;; Programming environment (package! rubocop :pin "f5fd18aa810c3d3269188cbbd731ddc09006f8f5") -(package! robe :pin "912ae2ba1f467bd55b2da64bfec9db3f8a723916") +(package! robe :pin "4ecd868da9adb8565b42976b6035e36bd928acfe") ;; Project tools (package! bundler :pin "43efb6be4ed118b06d787ce7fbcffd68a31732a7") @@ -20,7 +20,7 @@ ;; Environment management (when (modulep! +rbenv) - (package! rbenv :pin "2ea1a5bdc1266caef1dd77700f2c8f42429b03f1")) + (package! rbenv :pin "588b817d510737b9d6afd6d1ecddd517d96b78e5")) (when (modulep! +rvm) (package! rvm :pin "e1e83b5466c132c066142ac63729ba833c530c83")) (when (modulep! +chruby) @@ -28,7 +28,7 @@ ;; Testing frameworks (package! rspec-mode :pin "29df3d081c6a1cbdf840cd13d45ea1c100c5bbaa") -(package! minitest :pin "ddd152c990a528ad09a696bfad23afa4330ea4d7") +(package! minitest :pin "5999c45c047212cee15a2be67e78787776a79c35") ;; Rails (when (modulep! +rails) diff --git a/modules/lang/scala/packages.el b/modules/lang/scala/packages.el index ba727aef4..ac9483e98 100644 --- a/modules/lang/scala/packages.el +++ b/modules/lang/scala/packages.el @@ -2,7 +2,7 @@ ;;; lang/scala/packages.el (package! sbt-mode :pin "9fe1e8807c22cc1dc56a6233e000969518907f4d") -(package! scala-mode :pin "5d7cf21c37e345c49f921fe5111a49fd54efd1e0") +(package! scala-mode :pin "4c6d636b86e3bb1d95de819dc48dda92abdfbcf4") (when (and (modulep! +lsp) (not (modulep! :tools lsp +eglot))) diff --git a/modules/lang/scheme/packages.el b/modules/lang/scheme/packages.el index 5486dba71..14ac588d6 100644 --- a/modules/lang/scheme/packages.el +++ b/modules/lang/scheme/packages.el @@ -6,7 +6,7 @@ :recipe (:host gitlab :repo "flatwhatson/scheme-mode") :pin "51e586e5f1ddb5ea71d2cac8d401faf718c4627e")) -(when (package! geiser :pin "49d12a14482ce9a193c049a5ccdd2fed90b0bdbe") +(when (package! geiser :pin "bb77719c25831b11d9357786efd6cc016fcdf6f7") (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 "ee33af6b4ef8fdaccbdf93c62b50fe17c07a1ade") + (package! geiser-guile :pin "6e0811c75d13c3c8488e7a11a018e1ea2ae3288a") (when (and (modulep! :checkers syntax) (not (modulep! :checkers syntax +flymake))) (package! flycheck-guile diff --git a/modules/lang/sh/packages.el b/modules/lang/sh/packages.el index faa47fc2e..0780c17b9 100644 --- a/modules/lang/sh/packages.el +++ b/modules/lang/sh/packages.el @@ -5,7 +5,7 @@ (package! company-shell :pin "5f959a63a6e66eb0cbdac3168cad523a62cc2ccd")) (when (modulep! +fish) - (package! fish-mode :pin "6869efbc05cdb628209338bf57fe52742e53d956")) + (package! fish-mode :pin "2526b1803b58cf145bc70ff6ce2adb3f6c246f89")) (when (modulep! +powershell) (package! powershell :pin "f2da15857e430206e215a3c65289b4058ae3c976")) diff --git a/modules/lang/sml/packages.el b/modules/lang/sml/packages.el index 0bd58437e..9e57bd6c5 100644 --- a/modules/lang/sml/packages.el +++ b/modules/lang/sml/packages.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/sml/packages.el -(package! sml-mode :pin "5426ff47382441cf079a75ab7fa0a1c90730bf09") +(package! sml-mode :pin "e5354371f361fb6b60e53d0e6743baf6088ad810") (when (modulep! :completion company) (package! company-mlton :recipe (:host github :repo "MatthewFluet/company-mlton" :files ("*.el" "*.basis")) diff --git a/modules/lang/web/packages.el b/modules/lang/web/packages.el index 53eeab9b6..53b0f1a35 100644 --- a/modules/lang/web/packages.el +++ b/modules/lang/web/packages.el @@ -3,10 +3,10 @@ ;; +html.el (package! emmet-mode :pin "63b6932603184956b5ea8919036d2b307b48d7fd") -(package! haml-mode :pin "fe83c65c1f002f7c36480b758727c1afbad9a1b2") +(package! haml-mode :pin "a64d58df8f098f858c6c11fa1629a90969f9c7e8") (package! pug-mode :pin "73f8c2f95eba695f701df20c8436f49abadebdc1") (package! slim-mode :pin "3636d18ab1c8b316eea71c4732eb44743e2ded87") -(when (package! web-mode :pin "57856ba64b9382811b35df0d9ab0a24aede0c1f0") +(when (package! web-mode :pin "82847071ce93293bdb7945db08d970f13fd883cf") (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 "8e96388fb4d616a9dde23e712bad0d9cd048fbf0") +(package! rainbow-mode :pin "70ed10d410ef00c82c49b2ba41647930626d6218") (when (modulep! :completion ivy) (package! counsel-css :pin "8e9c0515fc952452eee786d8ebb43d48ea86c9f8")) (when (modulep! :completion helm) diff --git a/modules/lang/yaml/packages.el b/modules/lang/yaml/packages.el index fdeb4c393..e66cd0864 100644 --- a/modules/lang/yaml/packages.el +++ b/modules/lang/yaml/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/yaml/packages.el -(package! yaml-mode :pin "3fcb36d6039bef57e2a0f6e24c51f623c0bf5fb7") +(package! yaml-mode :pin "5b58248ab255dff6cfa4c4057a191bc4446ee5b6") From 75ff47aef03e65cb419c926a77e48635a25c9f5c Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 5 Feb 2024 16:42:41 -0500 Subject: [PATCH 355/523] bump: :app abo-abo/avy@955c8dedd68c -> abo-abo/avy@be612110cb11 emacs-circe/circe@57fe189d7c0b -> emacs-circe/circe@d374042741cf https://git.savannah.gnu.org/git/emms.git@43c614124922 -> https://git.savannah.gnu.org/git/emms.git@87d0d1fb0566 kidd/org-gcal.el@9bb3720525ad -> kidd/org-gcal.el@a2d16b372e5a remyhonig/elfeed-org@fe59a96969bd -> remyhonig/elfeed-org@d62d23e25c5e tecosaur/emacs-everywhere@b461c4b42093 -> tecosaur/emacs-everywhere@fbeff1982533 --- modules/app/calendar/packages.el | 2 +- modules/app/emms/packages.el | 2 +- modules/app/everywhere/packages.el | 2 +- modules/app/irc/packages.el | 2 +- modules/app/rss/packages.el | 2 +- modules/app/twitter/packages.el | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/app/calendar/packages.el b/modules/app/calendar/packages.el index 9a2cc06fe..d9054fed6 100644 --- a/modules/app/calendar/packages.el +++ b/modules/app/calendar/packages.el @@ -5,4 +5,4 @@ (package! calfw-org :pin "03abce97620a4a7f7ec5f911e669da9031ab9088") (package! calfw-cal :pin "03abce97620a4a7f7ec5f911e669da9031ab9088") (package! calfw-ical :pin "03abce97620a4a7f7ec5f911e669da9031ab9088") -(package! org-gcal :pin "9bb3720525ad1c45823abab8ce910dd1225e7dcd") +(package! org-gcal :pin "a2d16b372e5a5972d8cc343cf999ee5f0ba1eea7") diff --git a/modules/app/emms/packages.el b/modules/app/emms/packages.el index 9a43d1747..60ec5f81c 100644 --- a/modules/app/emms/packages.el +++ b/modules/app/emms/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; app/emms/packages.el -(package! emms :pin "43c61412492229eb641fe572c89c826d8fcf64d9") +(package! emms :pin "87d0d1fb0566a80229029d0d8d7c863138d70aae") diff --git a/modules/app/everywhere/packages.el b/modules/app/everywhere/packages.el index 2f1ceee2f..91e7e4040 100644 --- a/modules/app/everywhere/packages.el +++ b/modules/app/everywhere/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; app/everywhere/packages.el -(package! emacs-everywhere :pin "b461c4b42093abc42e5ec0f73cb7021c2915cea8") +(package! emacs-everywhere :pin "fbeff19825336777dccaefedf3f376dd622cd294") diff --git a/modules/app/irc/packages.el b/modules/app/irc/packages.el index 97c41033a..299a83fba 100644 --- a/modules/app/irc/packages.el +++ b/modules/app/irc/packages.el @@ -1,5 +1,5 @@ ;; -*- no-byte-compile: t; -*- ;;; app/irc/packages.el -(package! circe :pin "57fe189d7c0b98b9b1b5a59767cea1c7e2c22b13") +(package! circe :pin "d374042741cfd0691135f215d311dca8b7a47d19") (package! circe-notifications :pin "291149ac12877bbd062da993479d3533a26862b0") diff --git a/modules/app/rss/packages.el b/modules/app/rss/packages.el index f486b1729..3e5c373dc 100644 --- a/modules/app/rss/packages.el +++ b/modules/app/rss/packages.el @@ -4,4 +4,4 @@ (package! elfeed :pin "55fb162fa27e71b88effa59a83c57842e262b00f") (package! elfeed-goodies :pin "544ef42ead011d960a0ad1c1d34df5d222461a6b") (when (modulep! +org) - (package! elfeed-org :pin "fe59a96969bd321f5f9ec7317a4bc80943b94c86")) + (package! elfeed-org :pin "d62d23e25c5e3be3d70b7fbe1eaeb6e43f93a061")) diff --git a/modules/app/twitter/packages.el b/modules/app/twitter/packages.el index ccdf1db9a..12533702a 100644 --- a/modules/app/twitter/packages.el +++ b/modules/app/twitter/packages.el @@ -2,4 +2,4 @@ ;;; app/twitter/packages.el (package! twittering-mode :pin "114891e8fdb4f06b1326a6cf795e49c205cf9e29") -(package! avy :pin "955c8dedd68c74f3cf692c1249513f048518c4c9") +(package! avy :pin "be612110cb116a38b8603df367942e2bb3d9bdbe") From 4cb06578fc8341cefe8793b3f370cd22e88ce37f Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 5 Feb 2024 16:44:07 -0500 Subject: [PATCH 356/523] bump: :completion DarwinAwardWinner/ido-completing-read-plus@49e7967ea8c0 -> DarwinAwardWinner/ido-completing-read-plus@5995b4605b4f company-mode/company-mode@ed46a616ab99 -> company-mode/company-mode@02903bd7088d emacs-helm/helm@96aad023cb12 -> emacs-helm/helm@f34ea6b70264 lewang/flx@7b44a5abb254 -> lewang/flx@4b1346eb9a8a mhayashi1120/Emacs-wgrep@3132abd3750b -> mhayashi1120/Emacs-wgrep@208b9d01cfff minad/consult@e4d371235647 -> minad/consult@9463146ba754 minad/vertico@cf8b2abf5207 -> minad/vertico@4a7da56b02c6 oantolin/embark@33c392cf3ce5 -> oantolin/embark@60139db8794f radian-software/prescient.el@707c25c947a9 -> radian-software/prescient.el@4b875be52e75 tumashu/vertico-posframe@bc0e67cbbba4 -> tumashu/vertico-posframe@2e0e09e5bbd6 --- modules/completion/company/packages.el | 2 +- modules/completion/helm/packages.el | 2 +- modules/completion/ido/packages.el | 4 ++-- modules/completion/ivy/packages.el | 6 +++--- modules/completion/vertico/packages.el | 10 +++++----- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/modules/completion/company/packages.el b/modules/completion/company/packages.el index d594c638b..43c389ea7 100644 --- a/modules/completion/company/packages.el +++ b/modules/completion/company/packages.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; -*- ;;; completion/company/packages.el -(package! company :pin "ed46a616ab9906fd43a630479b6a6c3f79e606f0") +(package! company :pin "02903bd7088d65a87df0ae0f0d0a7118de147b69") (package! company-dict :pin "cd7b8394f6014c57897f65d335d6b2bd65dab1f4") (when (modulep! +childframe) (package! company-box :pin "b6f53e26adf948aca55c3ff6c22c21a6a6614253")) diff --git a/modules/completion/helm/packages.el b/modules/completion/helm/packages.el index f037a770b..d348d6437 100644 --- a/modules/completion/helm/packages.el +++ b/modules/completion/helm/packages.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; -*- ;;; completion/helm/packages.el -(package! helm :pin "96aad023cb12e995e92763195086ccee3aa5a141") +(package! helm :pin "f34ea6b702648e5c7535a704bdb6c4d7afb4b3b8") (package! helm-company :pin "4622b82353220ee6cc33468f710fa5b6b253b7f1") (package! helm-c-yasnippet :pin "c5880e740da101fde7a995e94a7b16c330e57583") (package! helm-descbinds :pin "b72515982396b6e336ad7beb6767e95a80fca192") diff --git a/modules/completion/ido/packages.el b/modules/completion/ido/packages.el index 0a7213b07..8951a3ad9 100644 --- a/modules/completion/ido/packages.el +++ b/modules/completion/ido/packages.el @@ -1,8 +1,8 @@ ;; -*- no-byte-compile: t; -*- ;;; completion/ido/packages.el -(package! flx-ido :pin "7b44a5abb254bbfbeca7a29336f7f4ebd8aabbf2") -(package! ido-completing-read+ :pin "49e7967ea8c0ab0a206b40d70fc19be115083fa1") +(package! flx-ido :pin "4b1346eb9a8a76ee9c9dede69738c63ad97ac5b6") +(package! ido-completing-read+ :pin "5995b4605b4f2d568489491704ef21bc49ddecd5") (package! ido-sort-mtime :pin "f638ff0c922af862f5211779f2311a27fde428eb") (package! ido-vertical-mode :pin "b1659e967da0687abceca733b389ace24004fa66") (package! crm-custom :pin "f1aaccf64306a5f99d9bf7ba815d7ea41c15518d") diff --git a/modules/completion/ivy/packages.el b/modules/completion/ivy/packages.el index e170dc7a4..a5dce1fb1 100644 --- a/modules/completion/ivy/packages.el +++ b/modules/completion/ivy/packages.el @@ -10,12 +10,12 @@ (package! amx :pin "5b3aa1aae84f4a225cb8d26ab79a32f97693f023") (package! counsel-projectile :pin "40d1e1d4bb70acb00fddd6f4df9778bf2c52734b") (package! ivy-rich :pin "aff9b6bd53e0fdcf350ab83c90e64e651b47dba4") -(package! wgrep :pin "3132abd3750b8c87cbcf6942db952acfab5edccd") +(package! wgrep :pin "208b9d01cfffa71037527e3a324684b3ce45ddc4") (if (modulep! +prescient) - (package! ivy-prescient :pin "707c25c947a9f17a1d43f97b3b28aba91ec9addb") + (package! ivy-prescient :pin "4b875be52e75f7b81e68a16b62cfbb2f2584042c") (when (modulep! +fuzzy) - (package! flx :pin "7b44a5abb254bbfbeca7a29336f7f4ebd8aabbf2"))) + (package! flx :pin "4b1346eb9a8a76ee9c9dede69738c63ad97ac5b6"))) (when (modulep! +childframe) (package! ivy-posframe :pin "533a8e368fcabfd534761a5c685ce713376fa594")) diff --git a/modules/completion/vertico/packages.el b/modules/completion/vertico/packages.el index 0189e2357..348f43ce7 100644 --- a/modules/completion/vertico/packages.el +++ b/modules/completion/vertico/packages.el @@ -1,17 +1,17 @@ ;; -*- no-byte-compile: t; -*- ;;; completion/vertico/packages.el -(package! vertico :pin "cf8b2abf5207696c054c33214c86e3969d415054") +(package! vertico :pin "4a7da56b02c6aefff8f6b4574a530a7cb54bc21a") (package! orderless :pin "b24748093b00b37c3a572c4909f61c08fa27504f") -(package! consult :pin "e4d371235647a7f4967f093eff2125652796957c") +(package! consult :pin "9463146ba754103db9475ae56e46561366ba4773") (package! consult-dir :pin "3f5f4b71ebe819392cb090cda71bd39a93bd830a") (when (and (modulep! :checkers syntax) (not (modulep! :checkers syntax +flymake))) (package! consult-flycheck :pin "d83f87581af74f7a2739d8b1b90c37da5ae3d310")) -(package! embark :pin "33c392cf3ce5b92ad73ed5c4f44dbca5d0741cde") -(package! embark-consult :pin "33c392cf3ce5b92ad73ed5c4f44dbca5d0741cde") +(package! embark :pin "60139db8794f7e4a08076d9f7597d08f6c8083d1") +(package! embark-consult :pin "60139db8794f7e4a08076d9f7597d08f6c8083d1") (package! marginalia :pin "ea356ebb1ddb8d6da78574b517155475cf52d46f") @@ -23,4 +23,4 @@ (when (modulep! +childframe) (package! vertico-posframe :recipe (:host github :repo "tumashu/vertico-posframe") - :pin "bc0e67cbbba4daaf6ce7b8701a0dc7797d468752")) + :pin "2e0e09e5bbd6ec576ddbe566ab122575ef051fab")) From 792c41f638907e2515956d29c6aaf1f65ec39747 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 5 Feb 2024 17:16:50 -0500 Subject: [PATCH 357/523] bump: :email mu4e notmuch https://git.notmuchmail.org/git/notmuch@b6f144abe1f5 -> https://git.notmuchmail.org/git/notmuch@2f0320c5f24a jao/consult-notmuch@d0d4129d45cc -> jao/consult-notmuch@d8022e2ddc67 jeremy-compostella/org-msg@055de4abf611 -> jeremy-compostella/org-msg@0b65f0f77a7a org-mime/org-mime@d368bd4119bf -> org-mime/org-mime@9d4584651d89 tarsius/ol-notmuch@781c3518a537 -> tarsius/ol-notmuch@881991d94a1a --- modules/email/mu4e/packages.el | 2 +- modules/email/notmuch/packages.el | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/email/mu4e/packages.el b/modules/email/mu4e/packages.el index 352930640..6e0aa3fda 100644 --- a/modules/email/mu4e/packages.el +++ b/modules/email/mu4e/packages.el @@ -2,6 +2,6 @@ ;;; email/mu4e/packages.el (when (modulep! +org) - (package! org-msg :pin "055de4abf611c5d5e12c770fe149c1861b402817")) + (package! org-msg :pin "0b65f0f77a7a71881ddfce19a8cdc60465bda057")) (package! mu4e-alert :pin "6beda20fc69771f2778f507c4a9e069dbaf1b628") diff --git a/modules/email/notmuch/packages.el b/modules/email/notmuch/packages.el index aacc7e140..2ee3418d6 100644 --- a/modules/email/notmuch/packages.el +++ b/modules/email/notmuch/packages.el @@ -17,15 +17,15 @@ "??"))) (cdr (doom-call-process "git" "rev-parse" "HEAD"))) t t))) - :pin "b6f144abe1f5aa3519240cf52f4cb9907fefcd0e") + :pin "2f0320c5f24adfee026e938ebc379ca90e3045d3") (when (modulep! +org) - (package! org-mime :pin "d368bd4119bfcf2997a6a23bbf5f41e043164d29")) + (package! org-mime :pin "9d4584651d89806b79d5993b286d32d6f70499a9")) (when (modulep! :lang org) - (package! ol-notmuch :pin "781c3518a537da2a8b5e8a4424f9441df463a147")) + (package! ol-notmuch :pin "881991d94a1ad750633fcf1f2d8a9e0616979be3")) (when (modulep! :completion ivy) (package! counsel-notmuch :pin "a4a1562935e4180c42524c51609d1283e9be0688")) (when (modulep! :completion helm) (package! helm-notmuch :pin "97a01497e079a7b6505987e9feba6b603bbec288")) (when (modulep! :completion vertico) - (package! consult-notmuch :pin "d0d4129d45ccceddaeeaa3631eb42d5dd09a758b")) + (package! consult-notmuch :pin "d8022e2ddc67ed4e89cc6f5bbe664fdb04e1e815")) From e242ac9548487ae50857ec1b169a20d946019816 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 5 Feb 2024 17:17:22 -0500 Subject: [PATCH 358/523] bump: :emacs alexluigit/dirvish@4fe9c0089430 -> alexluigit/dirvish@119f9f59a618 emacs-straight/dired-git-info@9461476a28a5 -> emacs-straight/dired-git-info@6b6f2a5d716d emacs-straight/vundo@24271862a2f7 -> emacs-straight/vundo@10d011fb05a9 emacsmirror/git-timemachine@d8ffd0d7cc4a -> emacsmirror/git-timemachine@ac933e5cd295 ideasman42/emacs-undo-fu-session@a6c4f73bc224 -> ideasman42/emacs-undo-fu-session@2b355c9d39b2 ideasman42/emacs-undo-fu@0e74116fd5c7 -> ideasman42/emacs-undo-fu@04961ba77514 magit/git-modes@f0a0154bf48d -> magit/git-modes@4a61a9b86df9 magit/magit@48818355728c -> magit/magit@54d37dc14c3f purcell/diredfl@f9140b2c4215 -> purcell/diredfl@f6d599c30875 purcell/ibuffer-vc@1388d2ea1828 -> purcell/ibuffer-vc@66d02267334f rainstormstudio/nerd-icons-dired@4a068884bf86 -> rainstormstudio/nerd-icons-dired@c1c73488630c rmuslimov/browse-at-remote@c020975a8914 -> rmuslimov/browse-at-remote@76aa27dfd469 stsquad/dired-rsync@7940d9154d0a -> stsquad/dired-rsync@5bcb851f3bf9 --- modules/emacs/dired/packages.el | 10 +++++----- modules/emacs/ibuffer/packages.el | 2 +- modules/emacs/undo/packages.el | 6 +++--- modules/emacs/vc/packages.el | 8 ++++---- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/modules/emacs/dired/packages.el b/modules/emacs/dired/packages.el index 2bcecf0b9..340f87ceb 100644 --- a/modules/emacs/dired/packages.el +++ b/modules/emacs/dired/packages.el @@ -1,14 +1,14 @@ ;; -*- no-byte-compile: t; -*- ;;; emacs/dired/packages.el -(package! diredfl :pin "f9140b2c42151dca669003d685c9f079b2e3dc37") -(package! dired-git-info :pin "9461476a28a5fec0784260f6e318237c662c3430") -(package! dired-rsync :pin "7940d9154d0a908693999b0e1ea351a6d365c93d") +(package! diredfl :pin "f6d599c30875ab4894c1deab9713ff2faea54e06") +(package! dired-git-info :pin "6b6f2a5d716debba9a7dcac623d5a1e4c799eb62") +(package! dired-rsync :pin "5bcb851f3bf9c4f7c07299fcc25be7c408a68cda") (when (modulep! +ranger) (package! ranger :pin "2498519cb21dcd5791d240607a72a204d1761668")) (when (modulep! +dirvish) - (package! dirvish :pin "4fe9c00894304e99aca22ae4b6b656fe94b8f927")) + (package! dirvish :pin "119f9f59a618bb7b476c93e9ab1d7542c5c1df41")) (when (and (modulep! +icons) (not (modulep! +dirvish))) - (package! nerd-icons-dired :pin "4a068884bf86647d242c3adc8320cd603e15dac3")) + (package! nerd-icons-dired :pin "c1c73488630cc1d19ce1677359f614122ae4c1b9")) (package! fd-dired :pin "458464771bb220b6eb87ccfd4c985c436e57dc7e") diff --git a/modules/emacs/ibuffer/packages.el b/modules/emacs/ibuffer/packages.el index 0a2bc9401..5d8481d72 100644 --- a/modules/emacs/ibuffer/packages.el +++ b/modules/emacs/ibuffer/packages.el @@ -2,4 +2,4 @@ ;;; emacs/ibuffer/packages.el (package! ibuffer-projectile :pin "710ecac1578273bf31debe52870f5844472e3428") -(package! ibuffer-vc :pin "1388d2ea18287c74a79d053619dbdfa9090c26a2") +(package! ibuffer-vc :pin "66d02267334f536e978ed7f384f88bd04a3d4dbb") diff --git a/modules/emacs/undo/packages.el b/modules/emacs/undo/packages.el index a3bb404d6..1dbb71467 100644 --- a/modules/emacs/undo/packages.el +++ b/modules/emacs/undo/packages.el @@ -3,7 +3,7 @@ (if (modulep! +tree) (package! undo-tree :pin "f9e7eac16f674aa7ed8fa065401d26c0258a84f8") - (package! undo-fu :pin "0e74116fd5c7797811a91ba4eadef50d67523eb6") - (package! undo-fu-session :pin "a6c4f73bc22401fd36e0f2fd4fe058bb28566d84") + (package! undo-fu :pin "04961ba775142627c5fa4bb94c3e507afedaecd1") + (package! undo-fu-session :pin "2b355c9d39b2688f859a762f2289f23fd16fadc4") (when (> emacs-major-version 27) ; unsupported in 27 - (package! vundo :pin "24271862a2f746be038306eafe20f5eff55c4566"))) + (package! vundo :pin "10d011fb05a9db0cc2f641e5b5bebe4b5fb81b6f"))) diff --git a/modules/emacs/vc/packages.el b/modules/emacs/vc/packages.el index 39ad6dc4c..c9ddf918b 100644 --- a/modules/emacs/vc/packages.el +++ b/modules/emacs/vc/packages.el @@ -5,10 +5,10 @@ (package! vc-annotate :built-in t) (package! smerge-mode :built-in t) -(package! browse-at-remote :pin "c020975a891438e278ad1855213d4f3d62c9fccb") -(package! git-commit :pin "48818355728c48d986d74dde8b1e9fba25f0fd53") +(package! browse-at-remote :pin "76aa27dfd469fcae75ed7031bb73830831aaccbf") +(package! git-commit :pin "54d37dc14c3f715dd0328a70bc65d63c54ee9613") (package! git-timemachine ;; The original lives on codeberg.org; which has uptime issues. :recipe (:host github :repo "emacsmirror/git-timemachine") - :pin "d8ffd0d7cc4ab3dd7de494c9ea36dfd99e2744fa") -(package! git-modes :pin "f0a0154bf48dd1c0c587596cf4cfd3c90f673a05") + :pin "ac933e5cd29583c131401f3bd991d98129c316df") +(package! git-modes :pin "4a61a9b86df9c824a99c522f42d55e68faf85f91") From 83f5c4f81844364733f09a545807585161036e91 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 5 Feb 2024 17:18:13 -0500 Subject: [PATCH 359/523] bump: :input cute-jumper/fcitx.el@12dc2638ddd1 -> cute-jumper/fcitx.el@b399482ed8db emacs-jp/migemo@f756cba3d526 -> emacs-jp/migemo@7d78901773da laishulu/evil-pinyin@3e9e501ded86 -> laishulu/evil-pinyin@0fae5ad87614 merrickluo/liberime@8291e22cd099 -> merrickluo/liberime@cc9eb9812fd6 skk-dev/ddskk@c24a624884a3 -> skk-dev/ddskk@8c47f46e38a2 tumashu/posframe@0d23bc5f7cfa -> tumashu/posframe@017deece8836 tumashu/pyim@de7eff2a58d8 -> tumashu/pyim@64067b20ce0e --- modules/input/chinese/packages.el | 10 +++++----- modules/input/japanese/packages.el | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/modules/input/chinese/packages.el b/modules/input/chinese/packages.el index 017036a52..880d648d5 100644 --- a/modules/input/chinese/packages.el +++ b/modules/input/chinese/packages.el @@ -1,15 +1,15 @@ ;; -*- no-byte-compile: t; -*- ;;; input/chinese/packages.el -(package! pyim :pin "de7eff2a58d88b168e35c3c81484ea874991391c") -(package! fcitx :pin "12dc2638ddd15c8f6cfaecb20e1f428ab2bb5624") +(package! pyim :pin "64067b20ce0e964b1342b378180f24a1d4503797") +(package! fcitx :pin "b399482ed8db5893db2701df01db4c38cccda495") (package! ace-pinyin :pin "47662c0b05775ba353464b44c0f1a037c85e746e") (package! pangu-spacing :pin "2303013e5cd7852136f1429162fea0e1c8cb0221") (when (modulep! +rime) - (package! liberime :pin "8291e22cd0990a99cb2f88ca67a9065a157f39af")) + (package! liberime :pin "cc9eb9812fd6f68e78ed6a0c0a85da7a18765753")) (when (modulep! +childframe) - (package! posframe :pin "0d23bc5f7cfac00277d83ae7ba52c48685bcbc68")) + (package! posframe :pin "017deece88360c7297265680d78a0bb316470716")) (when (modulep! :editor evil +everywhere) (package! evil-pinyin :recipe (:build (:not autoloads)) - :pin "3e9e501ded86f88e01a4edec5d526ab0fab879d7")) + :pin "0fae5ad8761417f027b33230382a50f826ad3bfb")) diff --git a/modules/input/japanese/packages.el b/modules/input/japanese/packages.el index fe0d143fa..a90f2e494 100644 --- a/modules/input/japanese/packages.el +++ b/modules/input/japanese/packages.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; -*- ;;; input/japanese/packages.el -(package! migemo :pin "f756cba3d5268968da361463c2e29b3a659a3de7") +(package! migemo :pin "7d78901773da3b503e5c0d5fa14a53ad6060c97f") (package! avy-migemo :pin "922a6dd82c0bfa316b0fbb56a9d4dd4ffa5707e7") -(package! ddskk :pin "c24a624884a3cfb0c28d6d5b9eb19e01387f0917") +(package! ddskk :pin "8c47f46e38a29a0f3eabcd524268d20573102467") (package! pangu-spacing :pin "2303013e5cd7852136f1429162fea0e1c8cb0221") From 36385091e89206dda7a8453cd90345fdba5442b2 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 5 Feb 2024 17:18:58 -0500 Subject: [PATCH 360/523] bump: :os tty 7696122/evil-terminal-cursor-changer@12ea9c0438c6 -> 7696122/evil-terminal-cursor-changer@2358f3e27d89 emacs-straight/xclip@a1ac607f75a2 -> emacs-straight/xclip@2dfa5fa17544 - evil-terminal-cursor-changer added kitty support --- modules/os/tty/packages.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/os/tty/packages.el b/modules/os/tty/packages.el index 71638a86e..26b559c0b 100644 --- a/modules/os/tty/packages.el +++ b/modules/os/tty/packages.el @@ -6,8 +6,8 @@ :recipe (:host github :repo "spudlyo/clipetty") :pin "01b39044b9b65fa4ea7d3166f8b1ffab6f740362") ;; Despite its name, this works for macOS as well. - (package! xclip :pin "a1ac607f75a250dddf49866918bb493884451130")) + (package! xclip :pin "2dfa5fa1754470253fc106b8bd55d9b2bd6702fe")) ;; NOTE Despite the evil-* prefix, evil-terminal-cursor-changer does not depend ;; on evil (anymore). -(package! evil-terminal-cursor-changer :pin "12ea9c0438c67e560b3866dc78b5c7d1d93f8cc5") +(package! evil-terminal-cursor-changer :pin "2358f3e27d89128361cf80fcfa092fdfe5b52fd8") From 7afc21a65262cd52b1a35bd2ee8e5d0321a6fbe9 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 5 Feb 2024 19:13:46 -0500 Subject: [PATCH 361/523] fix(magit): remove lazy emacsqlite build hack This was resolved upstream some time ago and is now a source of errors (void-variable emacsql-sqlite-executable errors) if forge were ever bumped (which it was, yesterday, in 1a05e2f). Ref: magit/forge@398ca3a17a3f Amend: 1a05e2fa6429 --- modules/tools/magit/config.el | 30 +----------------------------- 1 file changed, 1 insertion(+), 29 deletions(-) diff --git a/modules/tools/magit/config.el b/modules/tools/magit/config.el index 988cd2143..10a5d221d 100644 --- a/modules/tools/magit/config.el +++ b/modules/tools/magit/config.el @@ -157,35 +157,7 @@ Only has an effect in GUI Emacs.") :map magit-remote-section-map [remap magit-browse-thing] #'forge-browse-remote :map magit-branch-section-map [remap magit-browse-thing] #'forge-browse-branch)) (set-popup-rule! "^\\*?[0-9]+:\\(?:new-\\|[0-9]+$\\)" :size 0.45 :modeline t :ttl 0 :quit nil) - (set-popup-rule! "^\\*\\(?:[^/]+/[^ ]+ #[0-9]+\\*$\\|Issues\\|Pull-Requests\\|forge\\)" :ignore t) - - (defadvice! +magit--forge-get-repository-lazily-a (&rest _) - "Make `forge-get-repository' return nil if the binary isn't built yet. -This prevents emacsql getting compiled, which appears to come out of the blue -and blocks Emacs for a short while." - :before-while #'forge-get-repository - (file-executable-p emacsql-sqlite-executable)) - - (defadvice! +magit--forge-build-binary-lazily-a (&rest _) - "Make `forge-dispatch' only build emacsql if necessary. -Annoyingly, the binary gets built as soon as Forge is loaded. Since we've -disabled that in `+magit--forge-get-repository-lazily-a', we must manually -ensure it is built when we actually use Forge." - :before #'forge-dispatch - (unless (file-executable-p emacsql-sqlite-executable) - (emacsql-sqlite-compile 2) - (if (not (file-executable-p emacsql-sqlite-executable)) - (message (concat "Failed to build emacsql; forge may not work correctly.\n" - "See *Compile-Log* buffer for details")) - ;; HACK Due to changes upstream, forge doesn't initialize completely if - ;; it doesn't find `emacsql-sqlite-executable', so we have to do it - ;; manually after installing it. - (setq forge--sqlite-available-p t) - (magit-add-section-hook 'magit-status-sections-hook 'forge-insert-pullreqs nil t) - (magit-add-section-hook 'magit-status-sections-hook 'forge-insert-issues nil t) - (after! forge-topic - (dolist (hook forge-bug-reference-hooks) - (add-hook hook #'forge-bug-reference-setup))))))) + (set-popup-rule! "^\\*\\(?:[^/]+/[^ ]+ #[0-9]+\\*$\\|Issues\\|Pull-Requests\\|forge\\)" :ignore t)) (use-package! code-review From d124c7d19c5910ee4b66d2a41ac2fdfe93ed5bd5 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 5 Feb 2024 19:15:29 -0500 Subject: [PATCH 362/523] bump: code-review doomelpa/code-review@26f426e99221 -> doomelpa/code-review@2670a4beb663 Improves closql compatibility. Ref: doomelpa/code-review#2 --- modules/tools/magit/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/tools/magit/packages.el b/modules/tools/magit/packages.el index a3acd6227..2fe19978f 100644 --- a/modules/tools/magit/packages.el +++ b/modules/tools/magit/packages.el @@ -8,5 +8,5 @@ :recipe (:host github :repo "doomelpa/code-review" :files ("graphql" "code-review*.el")) - :pin "c34ff1ee64c7ecb654635bee4e2c147b10c66297")) + :pin "2670a4beb6636e6ee596c5b7cb5e784cf33d5a98")) (package! magit-todos :pin "debb77b3589f2d83c8b43706edc1f8f90bf1ad91")) From bd6a382b1804e8193932f68ac6a95a6aca0beaa1 Mon Sep 17 00:00:00 2001 From: Filipe Regadas Date: Tue, 6 Feb 2024 00:29:24 +0000 Subject: [PATCH 363/523] fix(dired): void-variable dired-omit-files error Caused by a recent bump to :emacs dired (see e242ac9). Fix: #6562 Amend: e242ac954848 --- modules/emacs/dired/config.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/emacs/dired/config.el b/modules/emacs/dired/config.el index 11eab8a36..b23fc20f2 100644 --- a/modules/emacs/dired/config.el +++ b/modules/emacs/dired/config.el @@ -137,6 +137,7 @@ we have to clean it up ourselves." :init (after! dired (dirvish-override-dired-mode)) :hook (dired-mode . dired-omit-mode) :config + (require 'dired-x) (setq dirvish-cache-dir (concat doom-cache-dir "dirvish/") dirvish-hide-details nil dirvish-attributes '(git-msg) @@ -171,7 +172,6 @@ we have to clean it up ourselves." (use-package! dired-x - :unless (modulep! +dirvish) :unless (modulep! +ranger) :hook (dired-mode . dired-omit-mode) :config From ba09e4323ad629ca0ef86e58f43fab976f88b8c4 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 5 Feb 2024 20:02:06 -0500 Subject: [PATCH 364/523] bump: :core bbatsov/projectile@9446ea92d284 -> bbatsov/projectile@e45f0b0cc43f domtronn/all-the-icons.el@be9d5dcda9c8 -> domtronn/all-the-icons.el@ee414384938c emacs-compat/compat@ea8de2ea18cf -> emacs-compat/compat@eb8fbfa5582a emacs-straight/project@f64bcf065c07 -> emacs-straight/project@10a6b691e36f jscheid/dtrt-indent@e0630f74f915 -> jscheid/dtrt-indent@0230ec503283 noctuid/general.el@833dea2c4a60 -> noctuid/general.el@bda777cd303d rainstormstudio/nerd-icons.el@e109d09b9570 -> rainstormstudio/nerd-icons.el@c6a4acf19454 --- lisp/packages.el | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lisp/packages.el b/lisp/packages.el index 07c83ce38..0020e1c61 100644 --- a/lisp/packages.el +++ b/lisp/packages.el @@ -20,8 +20,8 @@ :pin "b3760f5829dba37e855add7323304561eb57a3d4") ;; doom-ui.el -(package! all-the-icons :pin "be9d5dcda9c892e8ca1535e288620eec075eb0be") -(package! nerd-icons :pin "e109d09b95706bb93c821b1229ca09cf00195690") +(package! all-the-icons :pin "ee414384938ccf2ce93c77d717b85dc5538a257d") +(package! nerd-icons :pin "c6a4acf19454b415cba1c43daf4bfca8fccdd9ba") (package! hide-mode-line :pin "bc5d293576c5e08c29e694078b96a5ed85631942") (package! highlight-numbers :pin "8b4744c7f46c72b1d3d599d4fb75ef8183dee307") (package! rainbow-delimiters :pin "f40ece58df8b2f0fb6c8576b527755a552a5e763") @@ -29,7 +29,7 @@ ;; doom-editor.el (package! better-jumper :pin "47622213783ece37d5337dc28d33b530540fc319") -(package! dtrt-indent :pin "e0630f74f915c6cded05f76f66d66e540fcc37c3") +(package! dtrt-indent :pin "0230ec503283b895bd3df6c1e30b35a01aa0b9af") (package! helpful :pin "a32a5b3d959a7fccf09a71d97b3d7c888ac31c69") (package! pcre2el :pin "018531ba0cf8e2b28d1108136a0e031b6a45f1c1") (package! smartparens :pin "0778a8a84064cf2bc3a9857bd0e7a4619cc1e5c3") @@ -40,13 +40,13 @@ :pin "572a10c11b6cb88293de48acbb59a059d36f9ba5") ;; doom-projects.el -(package! projectile :pin "9446ea92d28462aeb37846a8be0a0c97a7bc0cee") -(package! project :pin "f64bcf065c0731caecbdcff5ca1c7f2d711b5b1e") +(package! projectile :pin "e45f0b0cc43fdc066e7971ff3ed3bf4c78015ed0") +(package! project :pin "10a6b691e36ff897fb2a4b48896e08818afa77b0") ;; doom-keybinds.el -(package! general :pin "833dea2c4a60e06fcd552b653dfc8960935c9fb4") +(package! general :pin "bda777cd303db217fd2fbf2087eff40ec4aafda1") (package! which-key :pin "4d20bc852545a2e602f59084a630f888542052b1") (package! compat :recipe (:host github :repo "emacs-compat/compat") - :pin "ea8de2ea18cf7c348aadb6eb2aeb2a9d840bd064") + :pin "eb8fbfa5582a8e5880e2eaa66d15d498bca6a45a") From 3dbbd8b68d99d04f0020e5fdb0dd2a7fb841a045 Mon Sep 17 00:00:00 2001 From: Colin Woodbury Date: Tue, 6 Feb 2024 15:16:29 +0900 Subject: [PATCH 365/523] feat(common-lisp): introduce `sly-overlay` --- modules/lang/common-lisp/config.el | 13 +++++++------ modules/lang/common-lisp/packages.el | 3 ++- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/modules/lang/common-lisp/config.el b/modules/lang/common-lisp/config.el index 3acb60bc5..e24ffcbb5 100644 --- a/modules/lang/common-lisp/config.el +++ b/modules/lang/common-lisp/config.el @@ -110,12 +110,13 @@ :desc "Remove notes" "n" #'sly-remove-notes :desc "Compile region" "r" #'sly-compile-region) (:prefix ("e" . "evaluate") - :desc "Evaluate buffer" "b" #'sly-eval-buffer - :desc "Evaluate last" "e" #'sly-eval-last-expression - :desc "Evaluate/print last" "E" #'sly-eval-print-last-expression - :desc "Evaluate defun" "f" #'sly-eval-defun - :desc "Undefine function" "F" #'sly-undefine-function - :desc "Evaluate region" "r" #'sly-eval-region) + :desc "Evaluate buffer" "b" #'sly-eval-buffer + :desc "Evaluate defun" "d" #'sly-overlay-eval-defun + :desc "Evaluate last" "e" #'sly-eval-last-expression + :desc "Evaluate/print last" "E" #'sly-eval-print-last-expression + :desc "Evaluate defun (async)" "f" #'sly-eval-defun + :desc "Undefine function" "F" #'sly-undefine-function + :desc "Evaluate region" "r" #'sly-eval-region) (:prefix ("g" . "goto") :desc "Go back" "b" #'sly-pop-find-definition-stack :desc "Go to" "d" #'sly-edit-definition diff --git a/modules/lang/common-lisp/packages.el b/modules/lang/common-lisp/packages.el index 0917fe0c4..07c972ca4 100644 --- a/modules/lang/common-lisp/packages.el +++ b/modules/lang/common-lisp/packages.el @@ -4,4 +4,5 @@ (when (package! sly :pin "ed17d2c2bd7aead0fbb09c3d22861c80a522a097") (package! sly-asdf :pin "6f9d751469bb82530db1673c22e7437ca6c95f45") (package! sly-macrostep :pin "5113e4e926cd752b1d0bcc1508b3ebad5def5fad") - (package! sly-repl-ansi-color :pin "b9cd52d1cf927bf7e08582d46ab0bcf1d4fb5048")) + (package! sly-repl-ansi-color :pin "b9cd52d1cf927bf7e08582d46ab0bcf1d4fb5048") + (package! sly-overlay :pin "916b50297a1f3bb110f840b89b8717d194623e5f")) From eb4e8960af0570bac997cb3c70cb39a7d9b16a24 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 6 Feb 2024 15:45:57 -0500 Subject: [PATCH 366/523] refactor: remove all-the-icons I began phasing out all-the-icons in 9787022. Now that Doom has no (first order) dependencies that depend on it (and enough time has passed), it's time to remove it. Ref: 9787022b839d --- lisp/packages.el | 1 - 1 file changed, 1 deletion(-) diff --git a/lisp/packages.el b/lisp/packages.el index 0020e1c61..11bd02520 100644 --- a/lisp/packages.el +++ b/lisp/packages.el @@ -20,7 +20,6 @@ :pin "b3760f5829dba37e855add7323304561eb57a3d4") ;; doom-ui.el -(package! all-the-icons :pin "ee414384938ccf2ce93c77d717b85dc5538a257d") (package! nerd-icons :pin "c6a4acf19454b415cba1c43daf4bfca8fccdd9ba") (package! hide-mode-line :pin "bc5d293576c5e08c29e694078b96a5ed85631942") (package! highlight-numbers :pin "8b4744c7f46c72b1d3d599d4fb75ef8183dee307") From fe18640376b1bbbb4e084305abbeee41f137eaa7 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 6 Feb 2024 15:48:39 -0500 Subject: [PATCH 367/523] fix: --profile switch in noninteractive sessions This fixes command-line-args getting prematurely cleared out just before being scanned for a --profile switch. Fix: #7457 Co-authored-by: hpfr --- early-init.el | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/early-init.el b/early-init.el index c6e6b4d68..a7fc58d29 100644 --- a/early-init.el +++ b/early-init.el @@ -51,14 +51,14 @@ ;; notable saving in startup time. This let-binding is just a stopgap though, ;; a more complete version of this optimization can be found in lisp/doom.el. (let (file-name-handler-alist) - (let* (;; FIX: Unset `command-line-args' in noninteractive sessions, to - ;; ensure upstream switches aren't misinterpreted. - (command-line-args (unless noninteractive command-line-args)) - ;; I avoid using `command-switch-alist' to process --profile (and - ;; --init-directory) because it is processed too late to change - ;; `user-emacs-directory' in time. - (profile (or (cadr (member "--profile" command-line-args)) - (getenv-internal "DOOMPROFILE")))) + (let (;; FIX: Unset `command-line-args' in noninteractive sessions, to + ;; ensure upstream switches aren't misinterpreted. + (command-line-args (unless noninteractive command-line-args)) + ;; I avoid using `command-switch-alist' to process --profile (and + ;; --init-directory) because it is processed too late to change + ;; `user-emacs-directory' in time. + (profile (or (cadr (member "--profile" command-line-args)) + (getenv-internal "DOOMPROFILE")))) (if (null profile) ;; REVIEW: Backported from Emacs 29. Remove when 28 support is dropped. (let ((init-dir (or (cadr (member "--init-directory" command-line-args)) From 5c3b8203350c2e9685754494cff90a14a056a3c9 Mon Sep 17 00:00:00 2001 From: Zero King Date: Wed, 7 Feb 2024 12:59:30 +0800 Subject: [PATCH 368/523] fix: void-variable doom-modules-load-path error Amend: 343c3a82b06a --- lisp/doom-modules.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/doom-modules.el b/lisp/doom-modules.el index bafce77a3..b0c1a58d2 100644 --- a/lisp/doom-modules.el +++ b/lisp/doom-modules.el @@ -279,7 +279,7 @@ configdepth. See `doom-module-set' for details." (append (seq-remove #'cdr (doom-module-list nil initorder?)) (doom-files-in (if (listp paths-or-all) paths-or-all - doom-modules-load-path) + doom-module-load-path) :map #'doom-module-from-path :type 'dirs :mindepth 1 From f55131f7458545903a2f9e9899d38e4363f35ec6 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 6 Feb 2024 16:38:58 -0500 Subject: [PATCH 369/523] fix: early-init: expand string-remove-suffix Some builds of Emacs inexplicably fail to autoload subr-x at startup, meaning functions like string-remove-suffix are not guaranteed to be available. Rather than eagerly load the library too early, I opt for the safer option: to expand the single call into its lower level components. Ref: #7608 --- early-init.el | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/early-init.el b/early-init.el index a7fc58d29..a8438e050 100644 --- a/early-init.el +++ b/early-init.el @@ -84,7 +84,10 @@ (or (load (expand-file-name (format (let ((lfile (getenv-internal "DOOMPROFILELOADFILE"))) (if lfile - (concat (string-remove-suffix ".el" lfile) + (concat (let ((suffix ".el")) + (if (string-suffix-p suffix lfile) + (substring lfile 0 (- (length lfile) (length suffix))) + lfile)) ".%d.elc") "profiles/load.%d.elc")) emacs-major-version) From 2fb0bf98ae75836aed2473dce28f0dc21a1c0f1d Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 6 Feb 2024 16:56:59 -0500 Subject: [PATCH 370/523] nit: early-init: revise comments --- early-init.el | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/early-init.el b/early-init.el index a8438e050..922972c02 100644 --- a/early-init.el +++ b/early-init.el @@ -27,16 +27,17 @@ ;;; Code: ;; PERF: Garbage collection is a big contributor to startup times. This fends it -;; off, but will be reset later by `gcmh-mode'. Not resetting it later will -;; cause stuttering/freezes. +;; off, but will be reset later by `gcmh-mode' (or in doom-cli.el, if in a +;; noninteractive session). Not resetting it later causes stuttering/freezes. (setq gc-cons-threshold most-positive-fixnum) ;; PERF: Don't use precious startup time checking mtime on elisp bytecode. ;; Ensuring correctness is 'doom sync's job, not the interactive session's. -;; Still, stale byte-code will cause *heavy* losses in startup efficiency. +;; Still, stale byte-code will cause *heavy* losses in startup efficiency, but +;; performance is unimportant when Emacs is in an error state. (setq load-prefer-newer noninteractive) -;; UX: Respect DEBUG envvar as an alternative to --debug-init, and to make are +;; UX: Respect DEBUG envvar as an alternative to --debug-init, and to make ;; startup sufficiently verbose from this point on. (when (getenv-internal "DEBUG") (setq init-file-debug t @@ -48,8 +49,8 @@ (or ;; PERF: `file-name-handler-alist' is consulted often. Unsetting it offers a - ;; notable saving in startup time. This let-binding is just a stopgap though, - ;; a more complete version of this optimization can be found in lisp/doom.el. + ;; notable saving in startup time. This is just a stopgap though; this + ;; optimization is continued more comprehensively in lisp/doom.el. (let (file-name-handler-alist) (let (;; FIX: Unset `command-line-args' in noninteractive sessions, to ;; ensure upstream switches aren't misinterpreted. @@ -97,13 +98,13 @@ ;; PERF: When `load'ing or `require'ing files, each permutation of ;; `load-suffixes' and `load-file-rep-suffixes' (then `load-suffixes' + - ;; `load-file-rep-suffixes') is used to locate the file. Each permutation - ;; is a file op, which is normally very fast, but they can add up over the - ;; hundreds/thousands of files Emacs needs to load. + ;; `load-file-rep-suffixes') is used to locate the file. Each permutation + ;; amounts to at least one file op, which is normally very fast, but can + ;; add up over the hundreds/thousands of files Emacs loads. ;; ;; To reduce that burden -- and since Doom doesn't load any dynamic modules - ;; -- I remove `.so' from `load-suffixes' and pass the `must-suffix' arg to - ;; `load'. See the docs of `load' for details. + ;; this early -- I remove `.so' from `load-suffixes' and pass the + ;; `must-suffix' arg to `load'. See the docs of `load' for details. (if (let ((load-suffixes '(".elc" ".el"))) ;; I avoid `load's NOERROR argument because other, legitimate errors ;; (like permission or IO errors) should not be suppressed or @@ -115,15 +116,15 @@ ;; Failing that, assume that we're loading a non-Doom config. (file-missing ;; HACK: `startup--load-user-init-file' resolves $EMACSDIR from a - ;; lexically bound `startup-init-directory', which means changes - ;; to `user-emacs-directory' won't be respected when loading - ;; $EMACSDIR/init.el, so I force it to: + ;; lexical (and so, not-trivially-modifiable) + ;; `startup-init-directory', so Emacs will fail to locate the + ;; correct $EMACSDIR/init.el without help. (define-advice startup--load-user-init-file (:filter-args (args) reroute-to-profile) (list (lambda () (expand-file-name "init.el" user-emacs-directory)) nil (nth 2 args))) - ;; Set `user-init-file' for the `load' call further below, and do so - ;; here while our `file-name-handler-alist' optimization is still - ;; effective (benefits `expand-file-name'). BTW: Emacs resets + ;; (Re)set `user-init-file' for the `load' call further below, and + ;; do so here while our `file-name-handler-alist' optimization is + ;; still effective (benefits `expand-file-name'). BTW: Emacs resets ;; `user-init-file' and `early-init-file' after this file is loaded. (setq user-init-file (expand-file-name "early-init" user-emacs-directory)) ;; COMPAT: I make no assumptions about the config we're going to @@ -136,7 +137,7 @@ ;; as a best fit guess. It's better than Emacs' 80kb default. (setq gc-cons-threshold (* 16 1024 1024)) nil))) - ;; ...But if Doom loaded then continue as normal. + ;; ...Otherwise, we're loading a Doom config, so continue as normal. (doom-require (if noninteractive 'doom-cli 'doom-start)))) ;; Then continue on to the config/profile we want to load. From a5ff292cbd294f58b1b77e1e43e14f81f695b6e4 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 7 Feb 2024 00:01:34 -0500 Subject: [PATCH 371/523] fix(emacs-lisp): 'defining as dynamic an already lexical var' error Fix: #7653 Amend: 3bea4f66a844 --- modules/lang/emacs-lisp/config.el | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/lang/emacs-lisp/config.el b/modules/lang/emacs-lisp/config.el index a07ae55e3..389589689 100644 --- a/modules/lang/emacs-lisp/config.el +++ b/modules/lang/emacs-lisp/config.el @@ -228,6 +228,8 @@ See `+emacs-lisp-non-package-mode' for details.") ;; expensive functionality, this will often introduce unexpected freezes ;; without this advice. ;; TODO: PR upstream? + (defvar org-inhibit-startup) + (defvar org-mode-hook) (defadvice! +emacs-lisp--optimize-org-init-a (fn &rest args) "Disable unrelated functionality to optimize calls to `org-mode'." :around #'elisp-demos--export-json-file From a2484538b48237636a70e5b4ccd358a4fb03c13c Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 7 Feb 2024 00:33:50 -0500 Subject: [PATCH 372/523] bump: :tools magit :emacs vc magit/forge@ba35ffc9bafc -> magit/forge@3fc6c362b016 magit/git-modes@4a61a9b86df9 -> magit/git-modes@3cc94974c09c magit/magit@54d37dc14c3f -> magit/magit@b68e0a3c3388 Ref: magit/forge@3fc6c362b016 --- modules/emacs/vc/packages.el | 4 ++-- modules/tools/magit/packages.el | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/emacs/vc/packages.el b/modules/emacs/vc/packages.el index c9ddf918b..7b1f30628 100644 --- a/modules/emacs/vc/packages.el +++ b/modules/emacs/vc/packages.el @@ -6,9 +6,9 @@ (package! smerge-mode :built-in t) (package! browse-at-remote :pin "76aa27dfd469fcae75ed7031bb73830831aaccbf") -(package! git-commit :pin "54d37dc14c3f715dd0328a70bc65d63c54ee9613") +(package! git-commit :pin "b68e0a3c3388af8daac662f25ccfd3e980590e12") (package! git-timemachine ;; The original lives on codeberg.org; which has uptime issues. :recipe (:host github :repo "emacsmirror/git-timemachine") :pin "ac933e5cd29583c131401f3bd991d98129c316df") -(package! git-modes :pin "4a61a9b86df9c824a99c522f42d55e68faf85f91") +(package! git-modes :pin "3cc94974c09c43462dfbfbe20396a414352dbb92") diff --git a/modules/tools/magit/packages.el b/modules/tools/magit/packages.el index 2fe19978f..726e6fa6d 100644 --- a/modules/tools/magit/packages.el +++ b/modules/tools/magit/packages.el @@ -1,9 +1,9 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/magit/packages.el -(when (package! magit :pin "54d37dc14c3f715dd0328a70bc65d63c54ee9613") +(when (package! magit :pin "b68e0a3c3388af8daac662f25ccfd3e980590e12") (when (modulep! +forge) - (package! forge :pin "b16b6ec4f7612f5a8fc6d50133cc6189f062c183") + (package! forge :pin "3fc6c362b0162082317c128c9c3226529f6965ae") (package! code-review :recipe (:host github :repo "doomelpa/code-review" From 90dae2594042ac73ea7e38fb044917e153e9ebeb Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 7 Feb 2024 15:24:08 -0500 Subject: [PATCH 373/523] fix(cli): ensure $EMACSDIR/lisp/cli is in $DOOMPATH If $DOOMPATH is malformed or set to a value that does not contain a valid path to Doom's CLI library in $EMACSDIR/lisp/cli (see #7608), bin/doom no longer functions, emitting "a subcommand is required" errors. This change ensures that the CLI library is always the last (implicit) element in doom-cli-load-path, and ensures $DOOMPATH is never written to the user's envvar file (in case they try to use bin/doom from inside a terminal within a Doom Emacs session), which should ensure users -- at least -- never find themselves stranded without the Doom CLI. Fix: #7608 Co-authored-by: bpizzi --- lisp/cli/env.el | 3 ++- lisp/doom-cli.el | 11 +++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/lisp/cli/env.el b/lisp/cli/env.el index 5256e7b93..e6463d893 100644 --- a/lisp/cli/env.el +++ b/lisp/cli/env.el @@ -33,7 +33,8 @@ "^SSH_\\(AUTH_SOCK\\|AGENT_PID\\)$" "^\\(SSH\\|GPG\\)_TTY$" "^GPG_AGENT_INFO$" ;; Internal Doom envvars - "^DEBUG$" "^INSECURE$" "^\\(EMACS\\|DOOM\\)DIR$" "^DOOMPROFILE$" "^__") + "^DEBUG$" "^INSECURE$" "^\\(EMACS\\|DOOM\\)DIR$" + "^DOOM\\(PATH\\|PROFILE\\)$" "^__") "Environment variables to omit from envvar files. Each string is a regexp, matched against variable names to omit from diff --git a/lisp/doom-cli.el b/lisp/doom-cli.el index 674e07e94..25c4e1216 100644 --- a/lisp/doom-cli.el +++ b/lisp/doom-cli.el @@ -92,15 +92,14 @@ :group 'doom) (defvar doom-cli-load-path - (let ((paths (split-string (or (getenv "DOOMPATH") "") path-separator))) - (if (member "" paths) - (cl-substitute (doom-path (dir!) "cli/") "" paths :test #'equal) - paths)) + (append (when-let ((doompath (getenv "DOOMPATH"))) + (cl-loop for dir in (split-string doompath path-separator) + collect (expand-file-name dir))) + (list (file-name-concat (dir!) "cli"))) "A list of paths to search for autoloaded Doom CLIs. It is prefilled by the DOOMPATH envvar (a colon-separated list on Linux/macOS, -semicolon otherwise). Empty entries in DOOMPATH are replaced with the -$EMACSDIR/cli/.") +semicolon otherwise).") ;;; CLI definition variables (defvar doom-cli-argument-types From 5ef7075f9645a784657606f34e1129c6f6f607d2 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 7 Feb 2024 18:25:04 -0500 Subject: [PATCH 374/523] nit(popup): mention post-command-select-window for 30.x+ Ref: emacs-mirror/emacs@6f75d0f36dd4 --- modules/ui/popup/autoload/popup.el | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/ui/popup/autoload/popup.el b/modules/ui/popup/autoload/popup.el index 27880b432..ba90d642f 100644 --- a/modules/ui/popup/autoload/popup.el +++ b/modules/ui/popup/autoload/popup.el @@ -139,6 +139,8 @@ the buffer is visible, then set another timer and try again later." (defun +popup--maybe-select-window (window origin) "Select a window based on `+popup--inhibit-select' and this window's `select' parameter." (unless +popup--inhibit-select + ;; REVIEW: Once our minimum version is bumped up to Emacs 30.x, replace this + ;; with `post-command-select-window' window parameter. (let ((select (+popup-parameter 'select window))) (if (functionp select) (funcall select window origin) From 15339e4671c2dfb06c8289e1ae6860e701a408b2 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 8 Feb 2024 00:56:40 -0500 Subject: [PATCH 375/523] fix(lib): doom-project-find-file: cl-no-applicable-method project-root Fix: #7312 --- lisp/lib/projects.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lisp/lib/projects.el b/lisp/lib/projects.el index ffd2aa9b1..91f528e12 100644 --- a/lisp/lib/projects.el +++ b/lisp/lib/projects.el @@ -155,8 +155,8 @@ If DIR is not a project, it will be indexed (but not cached)." ((and (bound-and-true-p ivy-mode) (fboundp 'counsel-file-jump)) (call-interactively #'counsel-file-jump)) - ((project-current nil dir) - (project-find-file-in nil nil dir)) + ((when-let ((pr (project-current nil dir))) + (project-find-file-in nil nil pr))) ((and (bound-and-true-p helm-mode) (fboundp 'helm-find-files)) (call-interactively #'helm-find-files)) From 1b0af3bfc747d9ef4973af0b5698b1c71cff86f5 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 8 Feb 2024 01:55:17 -0500 Subject: [PATCH 376/523] fix(lib): doom-project-find-file: remove +vertico/consult-fd-or-find When +vertico/find-file-in was replaced in 60e22fd with +vertico/consult-fd-or-find, it changed a key behavior for doom-project-find-file for Vertico users: instead of displaying an initial list of all files under the target directory, it would display nothing until the user entered in N * `consult-async-min-input` characters, causing confusion (see linked comment). Since Vertico integration modifies project-find-file-in's interface appropriately, I leave it to that command instead. Ref: https://github.com/doomemacs/doomemacs/issues/7312#issuecomment-1933404444 Amend: 60e22fd2eb61 --- lisp/lib/projects.el | 3 --- 1 file changed, 3 deletions(-) diff --git a/lisp/lib/projects.el b/lisp/lib/projects.el index 91f528e12..a1655f314 100644 --- a/lisp/lib/projects.el +++ b/lisp/lib/projects.el @@ -149,9 +149,6 @@ If DIR is not a project, it will be indexed (but not cached)." (if (doom-module-p :completion 'ivy) #'counsel-projectile-find-file #'projectile-find-file))) - ((and (bound-and-true-p vertico-mode) - (fboundp '+vertico/consult-fd-or-find)) - (+vertico/consult-fd-or-find default-directory)) ((and (bound-and-true-p ivy-mode) (fboundp 'counsel-file-jump)) (call-interactively #'counsel-file-jump)) From 4db347769e1254e55365e3e8be41410c548f90b8 Mon Sep 17 00:00:00 2001 From: Benjamin Schwehn Date: Fri, 9 Feb 2024 05:11:48 +0100 Subject: [PATCH 377/523] fix(file-templates): unknown directive error from __license-lgpl3 The misspelling produces a 'Ignoring unknown directive "contribuer"' error, which was introduced in joaotavora/yasnippet@25f5d88. Ref: joaotavora/yasnippet@25f5d8808af2 --- .../editor/file-templates/templates/text-mode/__license-lgpl3 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/editor/file-templates/templates/text-mode/__license-lgpl3 b/modules/editor/file-templates/templates/text-mode/__license-lgpl3 index 1f275c124..3c86d5843 100644 --- a/modules/editor/file-templates/templates/text-mode/__license-lgpl3 +++ b/modules/editor/file-templates/templates/text-mode/__license-lgpl3 @@ -2,7 +2,7 @@ # name: GNU LGPL v3 License # uuid: __license-lgpl3 # group: Licenses -# contribuer: https://choosealicense.com/licenses/lgpl-3.0/ +# contributor: https://choosealicense.com/licenses/lgpl-3.0/ # expand-env: ((yas-indent-line 'fixed)) # -- GNU LESSER GENERAL PUBLIC LICENSE From b655f6aa1f55c385f8821ffc29d950ec2b68a9b1 Mon Sep 17 00:00:00 2001 From: Colin Woodbury Date: Fri, 9 Feb 2024 09:20:30 +0900 Subject: [PATCH 378/523] docs(fortran): show how to customize fprettier --- modules/lang/fortran/README.org | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/modules/lang/fortran/README.org b/modules/lang/fortran/README.org index 6ccfa6598..1330d93ad 100644 --- a/modules/lang/fortran/README.org +++ b/modules/lang/fortran/README.org @@ -97,20 +97,28 @@ your Bash Profile, etc., and log out and in again._ Now Doom will be able to use Good luck and happy computing! -** efmt +** Auto-formatting When [[doom-module::editor format]] is enabled and [[doom-executable:fprettify]] is installed, buffers can be formatted with [[fn:apheleia-format-buffer]]. Enable [[doom-module::editor format +onsave]] to format the buffer on save. +See below for advanced configuration. + * TODO Usage #+begin_quote 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote -* TODO Configuration -#+begin_quote - 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] -#+end_quote +* Configuration + +** Customising fprettier + +If you want different arguments to be passed to =fprettier=, follow this example: + +#+begin_src emacs-lisp +(after! f90 + (set-formatter! 'fprettify '("fprettify" "--enable-decl" "-w" "4" "-") :modes '(f90-mode fortran-mode))) +#+end_src * Troubleshooting /There are no known problems with this module./ [[doom-report:][Report one?]] From 30a7f2d436b50645614b7734bacb104cf155437d Mon Sep 17 00:00:00 2001 From: Mathew <45mm.cartridge421@slmail.me> Date: Sat, 10 Feb 2024 21:57:22 +0000 Subject: [PATCH 379/523] fix(lib): doom/sudo-find-file: expand given path It's possible for the user to type shell variables (something like `$MYVAR/dir/filename`) as part of the filepath, so we need to call `expand-file-name`. --- lisp/lib/files.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/lib/files.el b/lisp/lib/files.el index 1feb20a26..2ffcc8c1e 100644 --- a/lisp/lib/files.el +++ b/lisp/lib/files.el @@ -487,7 +487,7 @@ If FORCE-P, overwrite the destination file if it exists, without confirmation." (defun doom/sudo-find-file (file) "Open FILE as root." (interactive "FOpen file as root: ") - (find-file (doom--sudo-file-path file))) + (find-file (doom--sudo-file-path (expand-file-name file)))) ;;;###autoload (defun doom/sudo-this-file () From d6db0312fdf8c3a69d1aac243808b824ec9491e7 Mon Sep 17 00:00:00 2001 From: Tim Ruffing Date: Sat, 10 Feb 2024 09:53:27 +0100 Subject: [PATCH 380/523] tweak(org): honor default command when archiving Change the binding for archiving to `org-archive-subtree-default`, which is the recommend "catch-all" command in the org manual. The user can specify the actual command in `org-archive-default-command`. The default for this variable is `org-archive-subtree`, which we previously used for the binding, so this commit changes behavior only for users who have set `org-archive-default-command` explicitly. --- modules/lang/org/config.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/lang/org/config.el b/modules/lang/org/config.el index c7f7a422f..c0606dec4 100644 --- a/modules/lang/org/config.el +++ b/modules/lang/org/config.el @@ -957,7 +957,7 @@ between the two." (:when (modulep! :completion vertico) "." #'consult-org-heading "/" #'consult-org-agenda) - "A" #'org-archive-subtree + "A" #'org-archive-subtree-default "e" #'org-export-dispatch "f" #'org-footnote-action "h" #'org-toggle-heading @@ -1090,7 +1090,7 @@ between the two." "n" #'org-narrow-to-subtree "r" #'org-refile "s" #'org-sparse-tree - "A" #'org-archive-subtree + "A" #'org-archive-subtree-default "N" #'widen "S" #'org-sort) (:prefix ("p" . "priority") From 52355c6131fdddea578bf3de737a46c60852a127 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 9 Feb 2024 00:25:05 -0500 Subject: [PATCH 381/523] fix(org): initialize eldoc in org-mode buffers A recent change upstream (see emacsmirror/org-contrib@6e208c87bf6e) removed the autoload for adding org-eldoc-load to org-mode-hook, so we have to add the hook ourselves (the function is still autoloaded, fortunately). Also moves org-eldoc config into its own use-package! block. Fix: #7633 Ref: emacsmirror/org-contrib@6e208c87bf6e --- modules/lang/org/config.el | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/modules/lang/org/config.el b/modules/lang/org/config.el index c0606dec4..087f95cf6 100644 --- a/modules/lang/org/config.el +++ b/modules/lang/org/config.el @@ -105,7 +105,6 @@ Is relative to `org-directory', unless it is absolute. Is used in Doom's default (defun +org-init-appearance-h () "Configures the UI for `org-mode'." (setq org-indirect-buffer-display 'current-window - org-eldoc-breadcrumb-separator " → " org-enforce-todo-dependencies t org-entities-user '(("flat" "\\flat" nil "" "" "266D" "♭") @@ -814,14 +813,6 @@ Unlike showNlevels, this will also unfold parent trees." :weight bold)))) (apply fn args))) - (after! org-eldoc - ;; HACK Fix #2972: infinite recursion when eldoc kicks in in 'org' or - ;; 'python' src blocks. - ;; TODO Should be reported upstream! - (puthash "org" #'ignore org-eldoc-local-functions-cache) - (puthash "plantuml" #'ignore org-eldoc-local-functions-cache) - (puthash "python" #'python-eldoc-function org-eldoc-local-functions-cache)) - (defun +org--restart-mode-h () "Restart `org-mode', but only once." (quiet! (org-mode-restart)) @@ -1194,6 +1185,20 @@ between the two." (add-hook 'kill-emacs-hook #'org-clock-save)) +(use-package! org-eldoc + ;; HACK: Fix #7633: this hook is no longer autoloaded by org-eldoc (in + ;; org-contrib), so we have to add it ourselves. + :hook (org-mode . org-eldoc-load) + :init (setq org-eldoc-breadcrumb-separator " → ") + :config + ;; HACK Fix #2972: infinite recursion when eldoc kicks in in 'org' or 'python' + ;; src blocks. + ;; TODO Should be reported upstream! + (puthash "org" #'ignore org-eldoc-local-functions-cache) + (puthash "plantuml" #'ignore org-eldoc-local-functions-cache) + (puthash "python" #'python-eldoc-function org-eldoc-local-functions-cache)) + + (use-package! org-pdftools :when (modulep! :tools pdf) :commands org-pdftools-export From 3986ee6c2b1b2629a12733017d675c9ac94a84ba Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 13 Feb 2024 12:36:20 -0500 Subject: [PATCH 382/523] fix: exclude indent detection in derived modes Changes what major modes we exclude from dtrt-indent's auto-detection. Any mode in doom-detect-indentation-excluded-modes, plus derived modes, will be excluded instead of only the parent modes. This indirectly fixes an issue where org-mode derivatives (like org-journal-mode) have their tab-width changed (#7670), causing the `org-current-text-column` macro to throw the following error: Tab width in Org files must be 8, not N. Please adjust your `tab-width' settings for Org mode. I opted for this solution instead rather than adding all possibly derivatives to `doom-detect-indentation-excluded-modes`. Fix: #7670 Ref: https://github.com/emacs-straight/org-mode/blob/38dd882685e3cc5843a9cf30155432b4ebce8514/lisp/org-macs.el#L1154 --- lisp/doom-editor.el | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/lisp/doom-editor.el b/lisp/doom-editor.el index 2159b885c..2827fde85 100644 --- a/lisp/doom-editor.el +++ b/lisp/doom-editor.el @@ -2,10 +2,8 @@ ;;; Commentary: ;;; Code: -(defvar doom-detect-indentation-excluded-modes - '(fundamental-mode pascal-mode so-long-mode doom-docs-org-mode) - "A list of major modes in which indentation should be automatically -detected.") +(defvar doom-detect-indentation-excluded-modes '(pascal-mode so-long-mode) + "A list of major modes where indentation shouldn't be auto-detected.") (defvar-local doom-inhibit-indent-detection nil "A buffer-local flag that indicates whether `dtrt-indent' should try to detect @@ -502,8 +500,9 @@ files, so this replace calls to `pp' with the much faster `prin1'." (unless (or (not after-init-time) doom-inhibit-indent-detection doom-large-file-p - (memq major-mode doom-detect-indentation-excluded-modes) - (member (substring (buffer-name) 0 1) '(" " "*"))) + (eq major-mode 'fundamental-mode) + (member (substring (buffer-name) 0 1) '(" " "*")) + (apply #'derived-mode-p doom-detect-indentation-excluded-modes)) ;; Don't display messages in the echo area, but still log them (let ((inhibit-message (not init-file-debug))) (dtrt-indent-mode +1)))) From fe776f8d84027759482c59bcb360b8eaef756864 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 13 Feb 2024 20:41:37 -0500 Subject: [PATCH 383/523] fix(vertico): use remote fd in tramp buffers --- modules/completion/vertico/config.el | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/modules/completion/vertico/config.el b/modules/completion/vertico/config.el index f92bd85a2..59c8d284d 100644 --- a/modules/completion/vertico/config.el +++ b/modules/completion/vertico/config.el @@ -145,15 +145,14 @@ orderless." consult-async-min-input 2 consult-async-refresh-delay 0.15 consult-async-input-throttle 0.2 - consult-async-input-debounce 0.1) - (if doom-projectile-fd-binary - (setq consult-fd-args - '(doom-projectile-fd-binary - "--color=never" - ;; https://github.com/sharkdp/fd/issues/839 - "--full-path --absolute-path" - "--hidden --exclude .git" - (if (featurep :system 'windows) "--path-separator=/")))) + consult-async-input-debounce 0.1 + consult-fd-args + '((if (executable-find "fdfind" 'remote) "fdfind" "fd") + "--color=never" + ;; https://github.com/sharkdp/fd/issues/839 + "--full-path --absolute-path" + "--hidden --exclude .git" + (if (featurep :system 'windows) "--path-separator=/"))) (consult-customize consult-ripgrep consult-git-grep consult-grep From 771051886912f934cdbc21a22abdc7c173c9f170 Mon Sep 17 00:00:00 2001 From: "Kirill A. Korinsky" Date: Wed, 14 Feb 2024 08:52:58 +0100 Subject: [PATCH 384/523] bump: :email wanderlust wanderlust/wanderlust@9fd2c65e8d69 -> wanderlust/wanderlust@c15e8ece4f34 --- modules/email/wanderlust/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/email/wanderlust/packages.el b/modules/email/wanderlust/packages.el index 48203a6bd..d6ec56a78 100644 --- a/modules/email/wanderlust/packages.el +++ b/modules/email/wanderlust/packages.el @@ -8,7 +8,7 @@ (package! flim :recipe (:branch "flim-1_14-wl") :pin "abdd2315006eb31476249223569808adb1c0f7b2") (package! semi :recipe (:branch "semi-1_14-wl") :pin "9063a4485b148a767ea924f0e7cc78d3524ba256") -(package! wanderlust :pin "9fd2c65e8d690625f35035a71e73f51f740dbe04") +(package! wanderlust :pin "c15e8ece4f34f10479e17cda19d10b98f6be3ec1") (when (modulep! +xface) (package! x-face-e21 From 8651651125f8009b669f0297c63683968a8f014e Mon Sep 17 00:00:00 2001 From: "Kirill A. Korinsky" Date: Wed, 14 Feb 2024 08:55:24 +0100 Subject: [PATCH 385/523] tweak(wanderlust): don't show DomainKey-Signature --- modules/email/wanderlust/config.el | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/email/wanderlust/config.el b/modules/email/wanderlust/config.el index 3175268c3..db4a5b696 100644 --- a/modules/email/wanderlust/config.el +++ b/modules/email/wanderlust/config.el @@ -50,6 +50,7 @@ "^List-.*:" "^Received-SPF:" "^DKIM-.*:" + "^DomainKey-Signature:" "^SPF-.*:" "^Autocrypt:" "^ARC-.*:" From 20de3d0f29c1f4924611bfd72d39aae4fa51e3eb Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 14 Feb 2024 17:44:21 -0500 Subject: [PATCH 386/523] refactor(format): introduce +format-functions --- modules/editor/format/autoload/format.el | 67 ++++++++++++++++++++---- modules/editor/format/config.el | 11 ++++ 2 files changed, 67 insertions(+), 11 deletions(-) diff --git a/modules/editor/format/autoload/format.el b/modules/editor/format/autoload/format.el index 63b932f4e..a581e2560 100644 --- a/modules/editor/format/autoload/format.el +++ b/modules/editor/format/autoload/format.el @@ -61,12 +61,8 @@ (defun +format/buffer (&optional arg) "Reformat the current buffer using LSP or `format-all-buffer'." (interactive "P") - (call-interactively - (if (and +format-with-lsp - (bound-and-true-p lsp-mode) - (lsp-feature? "textDocument/formatting")) - #'lsp-format-buffer - #'apheleia-format-buffer))) + (or (run-hook-with-args-until-success '+format-functions (point-min) (point-max) 'buffer) + (call-interactively #'apheleia-format-buffer))) ;;;###autoload (defun +format/region (beg end &optional arg) @@ -76,11 +72,8 @@ WARNING: this may not work everywhere. It will throw errors if the region contains a syntax error in isolation. It is mostly useful for formatting snippets or single lines." (interactive "rP") - (if (and +format-with-lsp - (bound-and-true-p lsp-mode) - (lsp-feature? "textDocument/rangeFormatting")) - (call-interactively #'lsp-format-region) - (+format-region beg end))) + (or (run-hook-with-args-until-success '+format-functions beg end 'region) + (+format-region beg end))) ;;;###autoload (defun +format/region-or-buffer () @@ -91,3 +84,55 @@ is selected)." (if (doom-region-active-p) #'+format/region #'+format/buffer))) + + +;; +;;; Specialized formatters + +;;;###autoload +(defun +format-with-lsp-fn (beg end op) + "Format the region/buffer using any available lsp-mode formatter. + +Does nothing if `+format-with-lsp' is nil or the active server doesn't support +the requested feature." + (when (and +format-with-lsp + (bound-and-true-p lsp-mode) + (lsp-feature? + (if (eq op 'buffer) + "textDocument/formatting" + "textDocument/rangeFormatting"))) + (call-interactively + (if (eq op 'buffer) + #'lsp-format-buffer + #'lsp-format-region)) + t)) + +;;;###autoload +(defun +format-in-org-src-blocks-fn (beg end _op) + "TODO" + (when (derived-mode-p 'org-mode) + (goto-char beg) + (while (re-search-forward org-babel-src-block-regexp end t) + (let* ((element (org-element-at-point)) + (block-beg (save-excursion + (goto-char (org-babel-where-is-src-block-head element)) + (line-beginning-position 2))) + (block-end (save-excursion + (goto-char (org-element-property :end element)) + (skip-chars-backward " \t\n") + (line-beginning-position))) + (beg (if beg (max beg block-beg) block-beg)) + (end (if end (min end block-end) block-end)) + (lang (org-element-property :language element)) + (major-mode (org-src-get-lang-mode lang))) + (save-excursion + (if (eq major-mode 'org-mode) + (user-error "Cannot reformat an org src block in org-mode") + ;; Determine formatter based on language and format the region + (let ((formatter (apheleia--get-formatters 'interactive))) + (unless formatter + (setq formatter (apheleia--get-formatters 'prompt)) + (unless formatter + (user-error "No formatter configured for language: %s" lang))) + (let ((apheleia-formatter formatter)) + (+format-region beg end))))))))) diff --git a/modules/editor/format/config.el b/modules/editor/format/config.el index 77dd06479..397dc92db 100644 --- a/modules/editor/format/config.el +++ b/modules/editor/format/config.el @@ -27,6 +27,17 @@ This has no effect on the +onsave flag, apheleia will always be used there.") (defvaralias '+format-with 'apheleia-formatter "Set this to explicitly use a certain formatter for the current buffer.") +(defvar +format-functions + '(+format-in-org-src-blocks-fn + +format-with-lsp-fn) + "A list of functions to run when formatting a buffer or region. + +Each function is given three arguments: the starting point, end point, and a +symbol indicating the type of operation being requested (as a symbol: either +`region' or `buffer'). + +The first function to return non-nil will abort all functions after it, +including Apheleia itself.") ;; ;;; Bootstrap From e9ea3cc5913cb0a996158a3cc855fe94c15a2b7d Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 14 Feb 2024 17:44:38 -0500 Subject: [PATCH 387/523] feat(format): add eglot support Fix: #7673 --- modules/editor/format/autoload/format.el | 17 +++++++++++++++++ modules/editor/format/config.el | 3 ++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/modules/editor/format/autoload/format.el b/modules/editor/format/autoload/format.el index a581e2560..b341da4d1 100644 --- a/modules/editor/format/autoload/format.el +++ b/modules/editor/format/autoload/format.el @@ -107,6 +107,23 @@ the requested feature." #'lsp-format-region)) t)) +;;;###autoload +(defun +format-with-eglot-fn (beg end op) + "Format the region/buffer using any available eglot formatter. + +Does nothing if `+format-with-lsp' is nil or the active server doesn't support +the requested feature." + (when (and +format-with-lsp + (bound-and-true-p eglot-managed-mode) + (eglot--server-capable + (if (eq op 'buffer) + :documentFormattingProvider + :documentRangeFormattingProvider))) + (if (eq op 'buffer) + (eglot-format-buffer) + (eglot-format beg end)) + t)) + ;;;###autoload (defun +format-in-org-src-blocks-fn (beg end _op) "TODO" diff --git a/modules/editor/format/config.el b/modules/editor/format/config.el index 397dc92db..0af781fb0 100644 --- a/modules/editor/format/config.el +++ b/modules/editor/format/config.el @@ -29,7 +29,8 @@ This has no effect on the +onsave flag, apheleia will always be used there.") (defvar +format-functions '(+format-in-org-src-blocks-fn - +format-with-lsp-fn) + +format-with-lsp-fn + +format-with-eglot-fn) "A list of functions to run when formatting a buffer or region. Each function is given three arguments: the starting point, end point, and a From 9ba6d7191ccb964584f0e392606ff6e5ccaa73db Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 14 Feb 2024 18:09:15 -0500 Subject: [PATCH 388/523] refactor(format): improve lsp/eglot formatter dispatchers --- modules/editor/format/autoload/format.el | 42 ++++++++++++------------ 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/modules/editor/format/autoload/format.el b/modules/editor/format/autoload/format.el index b341da4d1..ab49403bd 100644 --- a/modules/editor/format/autoload/format.el +++ b/modules/editor/format/autoload/format.el @@ -95,17 +95,19 @@ is selected)." Does nothing if `+format-with-lsp' is nil or the active server doesn't support the requested feature." - (when (and +format-with-lsp - (bound-and-true-p lsp-mode) - (lsp-feature? - (if (eq op 'buffer) - "textDocument/formatting" - "textDocument/rangeFormatting"))) - (call-interactively - (if (eq op 'buffer) - #'lsp-format-buffer - #'lsp-format-region)) - t)) + (and +format-with-lsp + (bound-and-true-p lsp-mode) + (pcase op + ('buffer (condition-case _ + ;; Avoid lsp-feature? checks for this, since + ;; `lsp-format-buffer' does its own, and allows clients + ;; without formatting support (but with rangeFormatting, + ;; for some reason) to work. + (always (lsp-format-buffer)) + ('lsp-capability-not-supported nil))) + ('region (if (lsp-feature? "textDocument/rangeFormatting") + (always (lsp-format-region beg end)))) + (_ (error "Invalid formatter operation: %s" op))))) ;;;###autoload (defun +format-with-eglot-fn (beg end op) @@ -113,16 +115,14 @@ the requested feature." Does nothing if `+format-with-lsp' is nil or the active server doesn't support the requested feature." - (when (and +format-with-lsp - (bound-and-true-p eglot-managed-mode) - (eglot--server-capable - (if (eq op 'buffer) - :documentFormattingProvider - :documentRangeFormattingProvider))) - (if (eq op 'buffer) - (eglot-format-buffer) - (eglot-format beg end)) - t)) + (and +format-with-lsp + (bound-and-true-p eglot-managed-mode) + (pcase op + ('buffer (if (eglot--server-capable :documentFormattingProvider) + (always (eglot-format-buffer)))) + ('region (if (eglot--server-capable :documentRangeFormattingProvider) + (always (eglot-format beg end)))) + (_ (error "Invalid formatter operation: %s" op))))) ;;;###autoload (defun +format-in-org-src-blocks-fn (beg end _op) From 3acb75cb166fcd947c7f87510377fc0fec4d458e Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 15 Feb 2024 15:51:35 -0500 Subject: [PATCH 389/523] bump: :lang dart emacs-lsp/lsp-dart@e7ee6afc2e16 -> emacs-lsp/lsp-dart@f51c80f5458d Includes a fix for the lsp-dart daemon failing to start (emacs-lsp/lsp-dart#209). Ref: emacs-lsp/lsp-dart#209 Close: #7677 Co-authored-by: abdulhaq-e --- modules/lang/dart/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/lang/dart/packages.el b/modules/lang/dart/packages.el index 19830a9b3..60b073187 100644 --- a/modules/lang/dart/packages.el +++ b/modules/lang/dart/packages.el @@ -5,7 +5,7 @@ (when (and (modulep! +lsp) (not (modulep! :tools lsp +eglot))) - (package! lsp-dart :pin "e7ee6afc2e165291360fd35d16648307920837c7")) + (package! lsp-dart :pin "f51c80f5458d8ba4db9dd3781d190c6c32213250")) (when (modulep! +flutter) (package! flutter :pin "004c91e070a9b4a2a5042f5bb20015ec65453acf") From 7984cd8e0fee24738fe911365738f2fe634854bb Mon Sep 17 00:00:00 2001 From: TEC Date: Fri, 16 Feb 2024 14:45:09 +0800 Subject: [PATCH 390/523] tweak(cli): use fancier string-dist suggestion alg To improve the quality of "did you mean?"-style suggestions, shift from using Ratcliff-Obershelp similarity to the Restricted Damerau-Levenshtein string distance (also known as Optimal String Alignment). This code is a translation of a Julia implementation that I wrote a while ago: https://github.com/tecosaur/DataToolkitBase.jl/blob/v0.4.1/src/model/utils.jl#L40-L107 See https://en.wikipedia.org/wiki/Damerau%E2%80%93Levenshtein_distance#Optimal_string_alignment_distance and https://en.wikipedia.org/wiki/Gestalt_pattern_matching for more information on these algorithms. --- lisp/cli/meta.el | 89 ++++++++++++++++++++++++++++++++++-------------- 1 file changed, 63 insertions(+), 26 deletions(-) diff --git a/lisp/cli/meta.el b/lisp/cli/meta.el index 503393339..9d0f01742 100644 --- a/lisp/cli/meta.el +++ b/lisp/cli/meta.el @@ -183,32 +183,69 @@ OPTIONS: input (doom-cli-command-string (cdr command))) command))))) -(defun doom-cli-help--similarity (s1 s2) - ;; Ratcliff-Obershelp similarity - (let* ((s1 (downcase s1)) - (s2 (downcase s2)) - (s1len (length s1)) - (s2len (length s2))) - (if (or (zerop s1len) - (zerop s2len)) - 0.0 - (/ (let ((i 0) (j 0) (score 0) jlast) - (while (< i s1len) - (unless jlast (setq jlast j)) - (if (and (< j s2len) - (= (aref s1 i) (aref s2 j))) - (progn (cl-incf score) - (cl-incf i) - (cl-incf j)) - (setq m 0) - (cl-incf j) - (when (>= j s2len) - (setq j (or jlast j) - jlast nil) - (cl-incf i)))) - (* 2.0 score)) - (+ (length s1) - (length s2)))))) +(defun doom-cli-help--similarity (a b) + (- 1 (/ (float (doom-cli-help--string-distance a b)) + (max (length a) (length b))))) + +(defun doom-cli-help--string-distance (a b) + "Calculate the Restricted Damerau-Levenshtein distance between A and B. +This is also known as the Optimal String Alignment algorithm. + +It is assumed that A and B are both strings, and before processing both are +converted to lowercase. + +This returns the minimum number of edits required to transform A +to B, where each edit is a deletion, insertion, substitution, or +transposition of a character, with the restriction that no +substring is edited more than once." + (let ((a (downcase a)) + (b (downcase b)) + (alen (length a)) + (blen (length b)) + (start 0)) + (when (> alen blen) + (let ((c a) + (clen alen)) + (setq a b alen blen + b c blen clen))) + (while (and (< start (min alen blen)) + (= (aref a start) (aref b start))) + (cl-incf start)) + (cl-decf start) + (if (= (1+ start) alen) + (- blen start) + (let ((v0 (make-vector (- blen start) 0)) + (v1 (make-vector (- blen start) 0)) + (a_i (aref a (max 0 start))) + (current 0) + a_i-1 b_j b_j-1 + left transition-next + above this-transition) + (dotimes (vi (length v0)) + (aset v0 vi (1+ vi))) + (dolist (i (number-sequence (1+ start) (1- alen))) + (setq a_i-1 a_i + a_i (aref a i) + b_j (aref b (max 0 start)) + left (- i start 1) + current (- i start) + transition-next 0) + (dolist (j (number-sequence (1+ start) (1- blen))) + (setq b_j-1 b_j + b_j (aref b j) + above current + current left + this-transition transition-next + transition-next (aref v1 (- j start))) + (aset v1 (- j start) current) + (setq left (aref v0 (- j start))) + (unless (= a_i b_j) + ;; Minimum between substitution, deletion, and insertion + (setq current (min (1+ current) (1+ above) (1+ left))) + (when (and (> i (1+ start)) (> j (1+ start)) (= a_i b_j-1) (= a_i-1 b_j)) + (setq current (min current (cl-incf this-transition))))) + (aset v0 (- j start) current))) + current)))) ;;; Help: printers ;; TODO Parameterize optional args with `cl-defun' From 8d4d831565ca492572796612c7f23e588a37c7cf Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 16 Feb 2024 01:53:22 -0500 Subject: [PATCH 391/523] dev: update license year Hey! The world didn't end. How about that? This year though... Ref: 2df6a2e28abd --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index fde4817c3..a367cd897 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2014-2022 Henrik Lissner. +Copyright (c) 2014-2024 Henrik Lissner. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the From 1e8fd0912009988ad101d3ead47c23b8e091699f Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 16 Feb 2024 02:09:45 -0500 Subject: [PATCH 392/523] fix(format): +format-in-org-src-blocks-fn Didn't return non-nil, so whether or not it worked, Apheleia would attempt to (ineffectually) format the org buffer afterwards. Also remove unneeded beg/end checks (the functions always receive a value). --- modules/editor/format/autoload/format.el | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/modules/editor/format/autoload/format.el b/modules/editor/format/autoload/format.el index ab49403bd..5dc51fd9d 100644 --- a/modules/editor/format/autoload/format.el +++ b/modules/editor/format/autoload/format.el @@ -138,8 +138,8 @@ the requested feature." (goto-char (org-element-property :end element)) (skip-chars-backward " \t\n") (line-beginning-position))) - (beg (if beg (max beg block-beg) block-beg)) - (end (if end (min end block-end) block-end)) + (beg (max beg block-beg)) + (end (min end block-end)) (lang (org-element-property :language element)) (major-mode (org-src-get-lang-mode lang))) (save-excursion @@ -152,4 +152,5 @@ the requested feature." (unless formatter (user-error "No formatter configured for language: %s" lang))) (let ((apheleia-formatter formatter)) - (+format-region beg end))))))))) + (+format-region beg end))))))) + t)) From 5c7149da670fa76f4422dee2e8b432a2af9189bc Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 16 Feb 2024 02:10:26 -0500 Subject: [PATCH 393/523] docs(format): +format-in-org-src-blocks-fn: add docstring --- modules/editor/format/autoload/format.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/editor/format/autoload/format.el b/modules/editor/format/autoload/format.el index 5dc51fd9d..709855817 100644 --- a/modules/editor/format/autoload/format.el +++ b/modules/editor/format/autoload/format.el @@ -126,7 +126,7 @@ the requested feature." ;;;###autoload (defun +format-in-org-src-blocks-fn (beg end _op) - "TODO" + "Reformat org src blocks with apheleia as if they were independent buffers." (when (derived-mode-p 'org-mode) (goto-char beg) (while (re-search-forward org-babel-src-block-regexp end t) From cce9438d9f7f28bb5ca3e05cf7c1202dff586956 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 16 Feb 2024 15:20:57 -0500 Subject: [PATCH 394/523] fix(default): +evil module flag typo --- modules/config/default/autoload/default.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/config/default/autoload/default.el b/modules/config/default/autoload/default.el index a1f645b81..b63a0d749 100644 --- a/modules/config/default/autoload/default.el +++ b/modules/config/default/autoload/default.el @@ -33,7 +33,7 @@ generate `completing-read' candidates." (defun +default/new-buffer () "TODO" (interactive) - (if (modulep! 'evil) + (if (modulep! +evil) (call-interactively #'evil-buffer-new) (let ((buffer (generate-new-buffer "*new*"))) (set-window-buffer nil buffer) From f0ad161643c05842ca41bcb5daadcf7a7db98983 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 17 Feb 2024 07:11:48 -0500 Subject: [PATCH 395/523] fix(org): list checkbox toggle on RET A subtle change in the way org-toggle-checkbox handles its prefix argument changed how RET (+org/dwim-at-point) handled list checkboxes (incorrectlying swapping [ ] with [-], but not back, unless the cursor was directly on top of the checkbox). --- modules/lang/org/autoload/org.el | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/modules/lang/org/autoload/org.el b/modules/lang/org/autoload/org.el index 7b318e5c2..f1c033344 100644 --- a/modules/lang/org/autoload/org.el +++ b/modules/lang/org/autoload/org.el @@ -272,13 +272,12 @@ If on a: (org-element-property :end lineage)) (org-open-at-point arg)))) + ((guard (org-element-property :checkbox (org-element-lineage context '(item) t))) + (org-toggle-checkbox)) + (`paragraph (+org--toggle-inline-images-in-subtree)) - ((guard (org-element-property :checkbox (org-element-lineage context '(item) t))) - (let ((match (and (org-at-item-checkbox-p) (match-string 1)))) - (org-toggle-checkbox (if (equal match "[ ]") '(16))))) - (_ (if (or (org-in-regexp org-ts-regexp-both nil t) (org-in-regexp org-tsr-regexp-both nil t) From 7a3773484be37f389119513f5f77b0c32d984d3b Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 20 Feb 2024 05:04:26 -0500 Subject: [PATCH 396/523] fix(doom): remove neotree icon config Since we've remove all-the-icons, doom-themes-neotree-config will no longer work properly, so I disable it for now (not a complete solution though; we still need proper nerd-icons support for neotree). Fix: #7634 Ref: #7664 --- modules/ui/doom/config.el | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/modules/ui/doom/config.el b/modules/ui/doom/config.el index c39c1bd5d..13b2c7c71 100644 --- a/modules/ui/doom/config.el +++ b/modules/ui/doom/config.el @@ -10,11 +10,12 @@ :hook (doom-load-theme . doom-themes-org-config) :init (setq doom-theme 'doom-one) ;; more Atom-esque file icons for neotree/treemacs - (when (modulep! :ui neotree) - (add-hook 'doom-load-theme-hook #'doom-themes-neotree-config) - (setq doom-themes-neotree-enable-variable-pitch t - doom-themes-neotree-file-icons 'simple - doom-themes-neotree-line-spacing 2))) + ;; (when (modulep! :ui neotree) + ;; (add-hook 'doom-load-theme-hook #'doom-themes-neotree-config) + ;; (setq doom-themes-neotree-enable-variable-pitch t + ;; doom-themes-neotree-file-icons 'simple + ;; doom-themes-neotree-line-spacing 2)) + ) (use-package! solaire-mode From 98d753e1036f76551ccaa61f5c810782cda3b48a Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 20 Feb 2024 05:30:13 -0500 Subject: [PATCH 397/523] fix: blank frame on can't-find-font error during startup Due to our inhibit-redisplay hack, a missing font could lead to a blank Emacs after startup. This change fixes that so that not only is an error emitted when Emacs can't find your font, but the error will be a little more readable. This is a stopgap solution until I finish a better one I'm preparing for v3. Fix: #7055 --- lisp/doom-ui.el | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/lisp/doom-ui.el b/lisp/doom-ui.el index ab5e116a3..ef5091ed0 100644 --- a/lisp/doom-ui.el +++ b/lisp/doom-ui.el @@ -524,18 +524,24 @@ windows, switch to `doom-fallback-buffer'. Otherwise, delegate to original (fixed-pitch . ,doom-font) (fixed-pitch-serif . ,doom-serif-font) (variable-pitch . ,doom-variable-pitch-font))) - (when-let* ((face (car map)) - (font (cdr map))) - (dolist (frame (frame-list)) - (when (display-multi-font-p frame) - (set-face-attribute face frame - :width 'normal :weight 'normal - :slant 'normal :font font))) - (let ((new-specs (doom--make-font-specs face font))) - ;; Don't save to `customized-face' so it's omitted from `custom-file' - ;;(put face 'customized-face new-specs) - (custom-push-theme 'theme-face face 'user 'set new-specs) - (put face 'face-modified nil)))) + (condition-case e + (when-let* ((face (car map)) + (font (cdr map))) + (dolist (frame (frame-list)) + (when (display-multi-font-p frame) + (set-face-attribute face frame + :width 'normal :weight 'normal + :slant 'normal :font font))) + (let ((new-specs (doom--make-font-specs face font))) + ;; Don't save to `customized-face' so it's omitted from `custom-file' + ;;(put face 'customized-face new-specs) + (custom-push-theme 'theme-face face 'user 'set new-specs) + (put face 'face-modified nil))) + ('error + (ignore-errors (doom--reset-inhibited-vars-h)) + (if (string-prefix-p "Font not available" (error-message-string e)) + (signal 'doom-font-error (list (font-get (cdr map) :family))) + (signal (car e) (cdr e)))))) (when (fboundp 'set-fontset-font) (let* ((fn (doom-rpartial #'member (font-family-list))) (symbol-font (or doom-symbol-font From 35dc13632b3177b9efedad212f2180f69e756853 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 28 Feb 2024 20:47:56 -0500 Subject: [PATCH 398/523] bump: :lang rust rust-lang/rust-mode@HEAD -> rust-lang/rust-mode@f74dd1cd8798 - rust-lang/rust-mode@08cea61 introduced some clumsy autoloads that will cause treesit and rust-ts-mode (and more in later commits) to be eagerly loaded at startup. This causes other problems, but the primary issue is that it causes errors at startup or when installing rust-mode (#7698), which this bump addresses. Eager-loading will have to be addressed upstream. Ref: rust-lang/rust-mode@08cea6139097 Fix: #7698 --- modules/lang/rust/packages.el | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/lang/rust/packages.el b/modules/lang/rust/packages.el index b30f336a2..c092f3ae3 100644 --- a/modules/lang/rust/packages.el +++ b/modules/lang/rust/packages.el @@ -1,4 +1,5 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/rust/packages.el +(package! rust-mode :pin "f74dd1cd87987ea7faf0cfc6240c2284ef9133cb") (package! rustic :pin "39423d1cf4fa054c36bf9577356451f4c06ee148") From b439300e6a0c4ccc8473c25d4182d3cdb5d4f8d0 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 29 Feb 2024 02:01:22 -0500 Subject: [PATCH 399/523] fix(everywhere): commandp error from C-c C-c A temporary fix for an issue introduced upstream. Ref: tecosaur/emacs-everywhere#75 --- modules/app/everywhere/config.el | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/app/everywhere/config.el b/modules/app/everywhere/config.el index 885495ede..d0512f754 100644 --- a/modules/app/everywhere/config.el +++ b/modules/app/everywhere/config.el @@ -14,6 +14,10 @@ ;; buffers anyway. (setq-hook! 'emacs-everywhere-init-hooks doom-inhibit-local-var-hooks t) + ;; REVIEW: Fixes tecosaur/emacs-everywhere#75. Remove when dealt with + ;; upstream. + (define-key emacs-everywhere-mode-map "\C-c\C-c" #'emacs-everywhere-finish) + (after! doom-modeline (doom-modeline-def-segment emacs-everywhere (concat From 179e300bfdd55d6dc8b002a63481990a1e86b574 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 4 Mar 2024 03:26:07 -0500 Subject: [PATCH 400/523] bump: visual-fill-column https://codeberg.org/joostkremers/visual-fill-column@db7c7c236555 -> emacsmirror/visual-fill-column@5e74afe39d0a codeberg has uptime issues. Where possible, we should prefer Github sources. Fix: #7013 --- modules/editor/word-wrap/packages.el | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/editor/word-wrap/packages.el b/modules/editor/word-wrap/packages.el index 5b0f9317c..349082221 100644 --- a/modules/editor/word-wrap/packages.el +++ b/modules/editor/word-wrap/packages.el @@ -2,4 +2,6 @@ ;;; editor/word-wrap/packages.el (package! adaptive-wrap :pin "70005d2012ab57c20be03c05aebd49318fe49c99") -(package! visual-fill-column :pin "db7c7c236555c9c684e1294a277efefdc25fa5c4") +(package! visual-fill-column + :recipe (:host github :repo "emacsmirror/visual-fill-column") + :pin "5e74afe39d0afb911dae51af4e7a60ccdf9701f3") From 183ab38926aa1506203ea9ea64f631d598f90b4a Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 4 Mar 2024 03:29:42 -0500 Subject: [PATCH 401/523] bump: spell-fu https://codeberg.org/ideasman42/emacs-spell-fu@e4031935803c -> emacsmirror/spell-fu@e4031935803c codeberg has uptime issues. Where possible, we should prefer Github sources. Ref: #7013 --- modules/checkers/spell/packages.el | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/checkers/spell/packages.el b/modules/checkers/spell/packages.el index eb2c07269..9226c235c 100644 --- a/modules/checkers/spell/packages.el +++ b/modules/checkers/spell/packages.el @@ -2,7 +2,9 @@ ;;; checkers/spell/packages.el (if (not (modulep! +flyspell)) - (package! spell-fu :pin "e4031935803c66eca2f076dce72b0a6a770d026c") + (package! spell-fu + :recipe (:host github :repo "emacsmirror/spell-fu") + :pin "e4031935803c66eca2f076dce72b0a6a770d026c") (package! flyspell-correct :pin "1e7a5a56362dd875dddf848b9a9e25d1395b9d37") (cond ((modulep! :completion ivy) (package! flyspell-correct-ivy)) From 2757a97a30e7c4a0c2a5d2de13f2214baf09b019 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 4 Mar 2024 05:08:14 -0500 Subject: [PATCH 402/523] fix(org): don't change tab-width in org-mode Recently, org-mode made a non-standard tab-width an error state. Unfortunately, it's way too easy for users to accidentally change it (e.g. with editorconfig, indiscriminate setter hooks, or other packages), and since there is zero reason to ever want a non-standard tab-width in org-mode, I not only exclude it from dtrt-indent as a global default (i.e. not only as part of :lang org), but I add a late org-mode-hook hook to reset tab-width, just in case. --- lisp/doom-editor.el | 7 ++++++- modules/lang/org/config.el | 8 +++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/lisp/doom-editor.el b/lisp/doom-editor.el index 2827fde85..e9d460adc 100644 --- a/lisp/doom-editor.el +++ b/lisp/doom-editor.el @@ -2,7 +2,12 @@ ;;; Commentary: ;;; Code: -(defvar doom-detect-indentation-excluded-modes '(pascal-mode so-long-mode) +(defvar doom-detect-indentation-excluded-modes + '(pascal-mode + so-long-mode + ;; Automatic indent detection in org files is meaningless. Not to mention, a + ;; non-standard `tab-width' causes an error in org-mode. + org-mode) "A list of major modes where indentation shouldn't be auto-detected.") (defvar-local doom-inhibit-indent-detection nil diff --git a/modules/lang/org/config.el b/modules/lang/org/config.el index 087f95cf6..f88057bf3 100644 --- a/modules/lang/org/config.el +++ b/modules/lang/org/config.el @@ -181,9 +181,6 @@ Is relative to `org-directory', unless it is absolute. Is used in Doom's default ("NO" . +org-todo-cancel) ("KILL" . +org-todo-cancel))) - ;; Automatic indent detection in org files is meaningless - (add-to-list 'doom-detect-indentation-excluded-modes 'org-mode) - (set-ligatures! 'org-mode :name "#+NAME:" :name "#+name:" @@ -1438,6 +1435,11 @@ between the two." :references #'+org-lookup-references-handler :documentation #'+org-lookup-documentation-handler) + ;; HACK: Somehow, users/packages still find a way to modify tab-width in + ;; org-mode. Since org-mode treats a non-standerd tab-width as an error + ;; state, I use this hook to makes it much harder to change by accident. + (add-hook! 'org-mode-hook :depth 110 (setq-local tab-width 8)) + ;; Save target buffer after archiving a node. (setq org-archive-subtree-save-file-p t) From 2e123839d12358895b37e190b1b8419666fb24e0 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 4 Mar 2024 22:09:28 -0500 Subject: [PATCH 403/523] bump: :lang rust rust-lang/rust-mode@f74dd1cd8798 -> rust-lang/rust-mode@d8a09f218e24 - Resolves the lingering autoload issue caused by rust-lang/rust-mode@35dc136, and first introduced in rust-lang/rust-mode@08cea61. Ref: rust-lang/rust-mode@35dc13632b31 Ref: rust-lang/rust-mode@08cea6139097 Ref: rust-lang/rust-mode#524 Fix: #7698 --- modules/lang/rust/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/lang/rust/packages.el b/modules/lang/rust/packages.el index c092f3ae3..3a98c7495 100644 --- a/modules/lang/rust/packages.el +++ b/modules/lang/rust/packages.el @@ -1,5 +1,5 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/rust/packages.el -(package! rust-mode :pin "f74dd1cd87987ea7faf0cfc6240c2284ef9133cb") +(package! rust-mode :pin "8b1ef9f54ff3800170801fefff416e9bddd5b1df") (package! rustic :pin "39423d1cf4fa054c36bf9577356451f4c06ee148") From ff127805d3b9f935076588e97d3e77d17afb6d97 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 4 Mar 2024 22:11:54 -0500 Subject: [PATCH 404/523] bump: :tools magit alphapapa/magit-todos@debb77b3589f -> alphapapa/magit-todos@1e9acc0ba63f magit/forge@3fc6c362b016 -> magit/forge@03b48be2a12a magit/magit@b68e0a3c3388 -> magit/magit@65ecb9c5fc75 --- modules/tools/magit/packages.el | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/tools/magit/packages.el b/modules/tools/magit/packages.el index 726e6fa6d..b129c8d86 100644 --- a/modules/tools/magit/packages.el +++ b/modules/tools/magit/packages.el @@ -1,12 +1,12 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/magit/packages.el -(when (package! magit :pin "b68e0a3c3388af8daac662f25ccfd3e980590e12") +(when (package! magit :pin "65ecb9c5fc7586a1c527b60d180a97ea230da99f") (when (modulep! +forge) - (package! forge :pin "3fc6c362b0162082317c128c9c3226529f6965ae") + (package! forge :pin "03b48be2a12a282cd47b92287fc1701a81f1cece") (package! code-review :recipe (:host github :repo "doomelpa/code-review" :files ("graphql" "code-review*.el")) :pin "2670a4beb6636e6ee596c5b7cb5e784cf33d5a98")) - (package! magit-todos :pin "debb77b3589f2d83c8b43706edc1f8f90bf1ad91")) + (package! magit-todos :pin "1e9acc0ba63fbc297001bf334d63cb4326be80df")) From b94d14811d069db1da891116b5ab4086359b67d3 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 4 Mar 2024 22:12:09 -0500 Subject: [PATCH 405/523] bump: :tools lsp emacs-lsp/lsp-mode@fb88cc6b8bca -> emacs-lsp/lsp-mode@a5f5ca9a8a4b emacs-straight/eglot@cd4e45b700b1 -> emacs-straight/eglot@24f2bf7b28c3 flycheck/flycheck-eglot@9ff8d0068be5 -> flycheck/flycheck-eglot@114e1315aaf0 --- modules/tools/lsp/packages.el | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/tools/lsp/packages.el b/modules/tools/lsp/packages.el index a0adf1a2d..c8c0f44b0 100644 --- a/modules/tools/lsp/packages.el +++ b/modules/tools/lsp/packages.el @@ -3,13 +3,13 @@ (if (modulep! +eglot) (progn - (package! eglot :pin "cd4e45b700b117d360aac24d749c3c4a4be3d2e2") + (package! eglot :pin "24f2bf7b28c33e1d677b547956ade5560d27f55f") (when (modulep! :completion vertico) (package! consult-eglot :pin "049c6319b8a48ff66189d49592c7759f0b356596")) (when (and (modulep! :checkers syntax) (not (modulep! :checkers syntax +flymake))) - (package! flycheck-eglot :pin "9ff8d0068be59b1450964b390349d75a68af21ed"))) - (package! lsp-mode :pin "fb88cc6b8bcad4df5dd1d4e5d785adc7663e5c76") + (package! flycheck-eglot :pin "114e1315aaf0dc3196da67da426bbe2b46384fe2"))) + (package! lsp-mode :pin "a5f5ca9a8a4b2ceaf236457bf2524f94c183c2f2") (package! lsp-ui :pin "bc58c6664577d1d79060c6b32b7ad20e70ee19d0") (when (modulep! :completion ivy) (package! lsp-ivy :pin "9ecf4dd9b1207109802bd1882aa621eb1c385106")) From 3dbdcb7947b8cfbc47d0790180de27ad0725a407 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 4 Mar 2024 22:20:17 -0500 Subject: [PATCH 406/523] fix: define doom-font-error Was meant to be in 98d753e. Amend: 98d753e1036f --- lisp/doom-lib.el | 1 + 1 file changed, 1 insertion(+) diff --git a/lisp/doom-lib.el b/lisp/doom-lib.el index 561eb2070..c33edede1 100644 --- a/lisp/doom-lib.el +++ b/lisp/doom-lib.el @@ -4,6 +4,7 @@ ;;; Custom error types (define-error 'doom-error "An unexpected Doom error") +(define-error 'doom-font-error "Could not find a font on your system" 'doom-error) (define-error 'doom-nosync-error "Doom hasn't been initialized yet; did you remember to run 'doom sync' in the shell?" 'doom-error) (define-error 'doom-core-error "Unexpected error in Doom's core" 'doom-error) (define-error 'doom-hook-error "Error in a Doom startup hook" 'doom-error) From 44bc88ec3986d477c64c405ed9bbae2981fd8141 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 4 Mar 2024 22:28:47 -0500 Subject: [PATCH 407/523] bump: code-review doomelpa/code-review@2670a4beb663 -> doomelpa/code-review@e4c34fa284da Ref: doomelpa/code-review@e4c34fa284da --- modules/tools/magit/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/tools/magit/packages.el b/modules/tools/magit/packages.el index b129c8d86..6bc86d4e5 100644 --- a/modules/tools/magit/packages.el +++ b/modules/tools/magit/packages.el @@ -8,5 +8,5 @@ :recipe (:host github :repo "doomelpa/code-review" :files ("graphql" "code-review*.el")) - :pin "2670a4beb6636e6ee596c5b7cb5e784cf33d5a98")) + :pin "e4c34fa284da25d8e0bafbae4300f1db5bdcda44")) (package! magit-todos :pin "1e9acc0ba63fbc297001bf334d63cb4326be80df")) From 2324ff4bb7e20fd0ed29a9ae05e4cd08ccc2c7f7 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 4 Mar 2024 22:56:58 -0500 Subject: [PATCH 408/523] bump: :lang rust rust-lang/rust-mode@f74dd1cd8798 -> rust-lang/rust-mode@d8a09f218e24 There was a mishap with the last bump (2e12383), and rust-mode was bumped to the wrong commit. Amend: 2e123839d123 --- modules/lang/rust/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/lang/rust/packages.el b/modules/lang/rust/packages.el index 3a98c7495..7d85ffe26 100644 --- a/modules/lang/rust/packages.el +++ b/modules/lang/rust/packages.el @@ -1,5 +1,5 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/rust/packages.el -(package! rust-mode :pin "8b1ef9f54ff3800170801fefff416e9bddd5b1df") +(package! rust-mode :pin "d8a09f218e24407acbc9f36c641be4f913f1a63c") (package! rustic :pin "39423d1cf4fa054c36bf9577356451f4c06ee148") From 9f198978f8a37d430175025b1c48418fd83bf268 Mon Sep 17 00:00:00 2001 From: Liam Hupfer Date: Sun, 3 Mar 2024 18:43:10 -0600 Subject: [PATCH 409/523] fix(biblio): avoid 'oc-csl dependency cycle MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Relevant portion of the dependency graph: 'oc-csl → 'citeproc → 'citeproc-itemgetters → 'org → 'org-keys → 'oc The :after linked 'oc to 'oc-csl so 'org-keys could load 'org. `+org-init-keybinds-h' could then execute before the body of 'org-keys, so Org default bindings could clobber Doom bindings. If the top-level 'org started the load sequence, `org-load-hook' functions would execute last and key bindings would be correct, but Doom’s deferred incremental loading of Org could lead to this scenario: 1. deferred incremental loader: (require 'org-src) 2. org-src.el: (require 'org-keys) 3. org-keys.el: (require 'oc) 4. oc.el: (provide 'oc): (require 'oc-csl) [via the :after this patch removes] 5. oc-csl.el: (require 'citeproc) 6. citeproc.el: (require 'citeproc-itemgetters) 7. citeproc-itemgetters.el: (require 'org) 8. org.el: (require 'org-keys) 9. 'org-keys from step 8 finishes loading. Keys are bound. 10. 'org finishes loading. `org-load-hook' functions are run. Doom’s keys are bound. 11. 'oc-csl finishes loading 12. 'org-keys from step 3 finishes loading. Keys are bound again, overwriting any keys Doom bound in step 10. 13. 'org-src finishes loading At some point, the deferred incremental loader will (require 'org), but it is a feature as of step 10, so it does not load and its hooks do not run again. --- modules/tools/biblio/config.el | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/tools/biblio/config.el b/modules/tools/biblio/config.el index a37263e7e..b73e0666f 100644 --- a/modules/tools/biblio/config.el +++ b/modules/tools/biblio/config.el @@ -78,7 +78,9 @@ ;; `org-cite' processors (use-package! oc-biblatex :after oc) -(use-package! oc-csl :after oc) +;; oc-csl requires citeproc, which requires the top-level org, so loading oc-csl +;; after oc interferes with incremental loading of Org +(use-package! oc-csl :after org) (use-package! oc-natbib :after oc) From 0fc32ed881e8b2fc8cd41c21c5f2977e160de06a Mon Sep 17 00:00:00 2001 From: Liam Hupfer Date: Sun, 3 Mar 2024 23:38:19 -0600 Subject: [PATCH 410/523] perf(biblio): do not load oc-natbib by default MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit natbib isn’t part of the default `org-cite-export-processors', so leave it to users to load if they enable it. --- modules/tools/biblio/config.el | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/tools/biblio/config.el b/modules/tools/biblio/config.el index b73e0666f..2a02a994f 100644 --- a/modules/tools/biblio/config.el +++ b/modules/tools/biblio/config.el @@ -81,7 +81,6 @@ ;; oc-csl requires citeproc, which requires the top-level org, so loading oc-csl ;; after oc interferes with incremental loading of Org (use-package! oc-csl :after org) -(use-package! oc-natbib :after oc) ;; From 2b2901593e00c999bded3fecd1b08192a1b821fe Mon Sep 17 00:00:00 2001 From: Liam Hupfer Date: Sun, 3 Mar 2024 23:55:40 -0600 Subject: [PATCH 411/523] refactor(biblio): tidy use-package usage :after can be misleading, so avoid it. :no-require is for working around byte compilation issues; deferral is sufficient here. Ref: https://github.com/jwiegley/use-package/issues/829 --- modules/tools/biblio/config.el | 41 +++++++++++++++------------------- 1 file changed, 18 insertions(+), 23 deletions(-) diff --git a/modules/tools/biblio/config.el b/modules/tools/biblio/config.el index 2a02a994f..61caf6677 100644 --- a/modules/tools/biblio/config.el +++ b/modules/tools/biblio/config.el @@ -3,9 +3,7 @@ ;; ;;; `org-cite' -(use-package! oc - :defer t - :config +(after! oc (setq org-cite-global-bibliography (ensure-list (or (bound-and-true-p citar-bibliography) @@ -13,16 +11,30 @@ ;; Setup export processor; default csl/citeproc-el, with biblatex for ;; latex org-cite-export-processors '((latex biblatex) (t csl)) - org-support-shift-select t)) + org-support-shift-select t) + + (require 'oc-biblatex)) + +;; oc-csl requires citeproc, which requires the top-level org, so loading oc-csl +;; after oc interferes with incremental loading of Org +(after! org (require 'oc-csl)) (use-package! citar :when (modulep! :completion vertico) - :no-require - :config + :defer t + :init (setq org-cite-insert-processor 'citar org-cite-follow-processor 'citar org-cite-activate-processor 'citar) + + :config + (after! embark + (citar-embark-mode)) + + (after! org-roam + (citar-org-roam-mode)) + (when (modulep! :completion vertico +icons) (defvar citar-indicator-files-icons (citar-indicator-create @@ -65,23 +77,6 @@ citar-indicator-notes-icons citar-indicator-cited-icons)))) -(use-package! citar-embark - :when (modulep! :completion vertico) - :after citar embark - :config (citar-embark-mode)) - -(use-package! citar-org-roam - :when (and (modulep! +roam2) - (modulep! :completion vertico)) - :after citar org-roam - :config (citar-org-roam-mode)) - -;; `org-cite' processors -(use-package! oc-biblatex :after oc) -;; oc-csl requires citeproc, which requires the top-level org, so loading oc-csl -;; after oc interferes with incremental loading of Org -(use-package! oc-csl :after org) - ;; ;;; Third-party From c03113906a6152ff232dc8c7c53513d97951a7fe Mon Sep 17 00:00:00 2001 From: StrawberryTea Date: Tue, 5 Mar 2024 00:11:19 -0600 Subject: [PATCH 412/523] fix(dired): hide flycheck temp files --- modules/emacs/dired/config.el | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/emacs/dired/config.el b/modules/emacs/dired/config.el index b23fc20f2..e8dbbfacd 100644 --- a/modules/emacs/dired/config.el +++ b/modules/emacs/dired/config.el @@ -179,6 +179,7 @@ we have to clean it up ourselves." dired-omit-files (concat dired-omit-files "\\|^\\.DS_Store\\'" + "\\|^flycheck_.*" "\\|^\\.project\\(?:ile\\)?\\'" "\\|^\\.\\(?:svn\\|git\\)\\'" "\\|^\\.ccls-cache\\'" From 5d77d317a37ed2d3211115763d34d4183c4c0d9f Mon Sep 17 00:00:00 2001 From: Krzysztof Baranowski Date: Mon, 4 Mar 2024 22:12:34 -0800 Subject: [PATCH 413/523] fix(clojure): obsolete ref to cider-repl-print-length cider-repl-print-length has been obsolete for a long time. --- modules/lang/clojure/config.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/lang/clojure/config.el b/modules/lang/clojure/config.el index 832fa659e..96238d2fa 100644 --- a/modules/lang/clojure/config.el +++ b/modules/lang/clojure/config.el @@ -79,6 +79,7 @@ nrepl-log-messages nil cider-font-lock-dynamically '(macro core function var deprecated) cider-overlays-use-font-lock t + cider-print-options '(("length" 100)) cider-prompt-for-symbol nil cider-repl-history-display-duplicates nil cider-repl-history-display-style 'one-line @@ -88,7 +89,6 @@ cider-repl-history-highlight-inserted-item t cider-repl-history-size 1000 cider-repl-result-prefix ";; => " - cider-repl-print-length 100 cider-repl-use-clojure-font-lock t cider-repl-use-pretty-printing t cider-repl-wrap-history nil From 78b85b8a72bd33ceda8071df37b3243907b633f1 Mon Sep 17 00:00:00 2001 From: 45mm <45mm.cartridge421@slmail.me> Date: Mon, 5 Feb 2024 16:40:47 +0530 Subject: [PATCH 414/523] fix(vertico): mapping for embark open in workspace We should always bind to both "TAB" and "" - if they have been mapped to different commands anywhere, Emacs will no longer treat them as equivalent. --- modules/completion/vertico/config.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/completion/vertico/config.el b/modules/completion/vertico/config.el index 59c8d284d..44d853b80 100644 --- a/modules/completion/vertico/config.el +++ b/modules/completion/vertico/config.el @@ -304,7 +304,8 @@ orderless." (:when (modulep! :tools magit) :desc "Open magit-status of target" "g" #'+vertico/embark-magit-status) (:when (modulep! :ui workspaces) - :desc "Open in new workspace" "TAB" #'+vertico/embark-open-in-new-workspace)))) + :desc "Open in new workspace" "TAB" #'+vertico/embark-open-in-new-workspace + :desc "Open in new workspace" "" #'+vertico/embark-open-in-new-workspace)))) (use-package! marginalia From 645c856de0cd9e0e419e22b7c00f3146009b55c5 Mon Sep 17 00:00:00 2001 From: StrawberryTea Date: Sat, 14 Oct 2023 14:21:02 -0500 Subject: [PATCH 415/523] fix(popup): allow killing popup buffers Currently, `SPC b k` does not allow us to kill popup buffers. If we are say using a comint/eshell/eat buffer and we borked the state while testing hooks or we sent EOF to the underlying process, our intention with `SPC b k` is to kill the underlying buffer. --- lisp/doom-ui.el | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/lisp/doom-ui.el b/lisp/doom-ui.el index ef5091ed0..2bfdc3d8c 100644 --- a/lisp/doom-ui.el +++ b/lisp/doom-ui.el @@ -210,10 +210,7 @@ windows, switch to `doom-fallback-buffer'. Otherwise, delegate to original `kill-current-buffer'." :before-until #'kill-current-buffer (let ((buf (current-buffer))) - (cond ((window-dedicated-p) - (delete-window) - t) - ((eq buf (doom-fallback-buffer)) + (cond ((eq buf (doom-fallback-buffer)) (message "Can't kill the fallback buffer.") t) ((doom-real-buffer-p buf) From 47dc59f3b21fe150033c62974ba2642610bcd9ae Mon Sep 17 00:00:00 2001 From: Yejun Su Date: Wed, 11 Oct 2023 10:18:34 +0800 Subject: [PATCH 416/523] fix(nix): make doctor check against nix-nixfmt-bin --- modules/lang/nix/doctor.el | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/lang/nix/doctor.el b/modules/lang/nix/doctor.el index 043ce4c8c..fe1b18b35 100644 --- a/modules/lang/nix/doctor.el +++ b/modules/lang/nix/doctor.el @@ -4,8 +4,9 @@ (unless (executable-find "nix") (warn! "Couldn't find the nix package manager. nix-mode won't work.")) -(unless (executable-find "nixfmt") - (warn! "Couldn't find nixfmt. nix-format-buffer won't work.")) +(when (require 'nix-mode nil t) + (unless (executable-find nix-nixfmt-bin) + (warn! (concat "Couldn't find " nix-nixfmt-bin ". nix-format-buffer won't work.")))) (assert! (or (not (modulep! +tree-sitter)) (modulep! :tools tree-sitter)) From bea81278fd2ecb65db6a63dbcd6db2f52921ee41 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 4 Mar 2024 23:08:33 -0500 Subject: [PATCH 417/523] bump: :checkers syntax flycheck/flycheck@e56e30d8c66f -> flycheck/flycheck@02148c6ce7ed Close: #7680 Co-authored-by: vitallium --- modules/checkers/syntax/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/checkers/syntax/packages.el b/modules/checkers/syntax/packages.el index bd708b566..a22c59a84 100644 --- a/modules/checkers/syntax/packages.el +++ b/modules/checkers/syntax/packages.el @@ -2,7 +2,7 @@ ;;; checkers/syntax/packages.el (unless (modulep! +flymake) - (package! flycheck :pin "e56e30d8c66ffc9776d07740658d3b542c1a8e21") + (package! flycheck :pin "02148c6ce7edb0fd0986460db327cc9463939747") (package! flycheck-popup-tip :pin "ef86aad907f27ca076859d8d9416f4f7727619c6") (when (modulep! +childframe) (package! flycheck-posframe :pin "19896b922c76a0f460bf3fe8d8ebc2f9ac9028d8"))) From d657be1744a1481dc4646d0b62d5ee1d3e75d1d8 Mon Sep 17 00:00:00 2001 From: Dev380 <49997896+Dev380@users.noreply.github.com> Date: Fri, 8 Mar 2024 20:21:36 -0500 Subject: [PATCH 418/523] feat(vertico): completion highlights a la ivy * feat(vertico): completion highlights a la ivy Adds completion highlighting that works similarly to ivy/counsel's one (which is enabled by default). It'll highlight enabled major/minor modes and directories in a different face. On by default. Ref: https://github.com/minad/vertico/wiki#candidate-display-transformations-custom-candidate-highlighting * fix(vertico): major mode not being highlighted The major mode was not being highlighted correctly; it should work now that the buffer is set correctly in `+vertico-highlight-enabled-mode`. * fix(vertico): make font lock prioritize match over type The mode and directory highlights were [overriding the match font-lock](https://github.com/doomemacs/doomemacs/pull/7706#issuecomment-1977722188). This should resolve that by prioritizing the match font lock using `'append` on `add-face-text-property` instead of `propertize`. --- modules/completion/vertico/config.el | 40 ++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/modules/completion/vertico/config.el b/modules/completion/vertico/config.el index 44d853b80..89f30a5c1 100644 --- a/modules/completion/vertico/config.el +++ b/modules/completion/vertico/config.el @@ -341,3 +341,43 @@ orderless." :hook (vertico-mode . vertico-posframe-mode) :config (add-hook 'doom-after-reload-hook #'posframe-delete-all)) + +;; From https://github.com/minad/vertico/wiki#candidate-display-transformations-custom-candidate-highlighting +;; +;; Uses `add-face-text-property' instead of `propertize' unlike the above snippet +;; because `'append' is necessary to not override the match font lock +;; See: https://github.com/minad/vertico/issues/389 +(use-package! vertico-multiform + :hook (vertico-mode . vertico-multiform-mode) + :config + (defvar +vertico-transform-functions nil) + + (cl-defmethod vertico--format-candidate :around + (cand prefix suffix index start &context ((not +vertico-transform-functions) null)) + (dolist (fun (ensure-list +vertico-transform-functions)) + (setq cand (funcall fun cand))) + (cl-call-next-method cand prefix suffix index start)) + + (defun +vertico-highlight-directory (file) + "If FILE ends with a slash, highlight it as a directory." + (when (string-suffix-p "/" file) + (add-face-text-property 0 (length file) 'marginalia-file-priv-dir 'append file)) + file) + + (defun +vertico-highlight-enabled-mode (cmd) + "If MODE is enabled, highlight it as font-lock-constant-face." + (let ((sym (intern cmd))) + (with-current-buffer (nth 1 (buffer-list)) + (if (or (eq sym major-mode) + (and + (memq sym minor-mode-list) + (boundp sym))) + (add-face-text-property 0 (length cmd) 'font-lock-constant-face 'append cmd))) + cmd)) + + (add-to-list 'vertico-multiform-categories + '(file + (+vertico-transform-functions . +vertico-highlight-directory))) + (add-to-list 'vertico-multiform-commands + '(execute-extended-command + (+vertico-transform-functions . +vertico-highlight-enabled-mode)))) From 7018cb45fbd4019214b4ee1a046ce94c4cb5e6ae Mon Sep 17 00:00:00 2001 From: Dev380 <49997896+Dev380@users.noreply.github.com> Date: Sat, 9 Mar 2024 21:54:06 -0800 Subject: [PATCH 419/523] fix(vertico): disable minor mode highlight duly Minor mode highlights did not disable as long as the mode was enabled. Amend: #7706 --- modules/completion/vertico/config.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/completion/vertico/config.el b/modules/completion/vertico/config.el index 89f30a5c1..0d52ab950 100644 --- a/modules/completion/vertico/config.el +++ b/modules/completion/vertico/config.el @@ -371,7 +371,8 @@ orderless." (if (or (eq sym major-mode) (and (memq sym minor-mode-list) - (boundp sym))) + (boundp sym) + (symbol-value sym))) (add-face-text-property 0 (length cmd) 'font-lock-constant-face 'append cmd))) cmd)) From aad8ec1895714f4fec6abfe444c9a69b4ee8f308 Mon Sep 17 00:00:00 2001 From: minh Date: Sun, 10 Mar 2024 11:52:34 +0700 Subject: [PATCH 420/523] feat(java): java.el takes java-ts-mode into account allow +java-current-package and +java-current-class functions to operate on java-ts-mode (the java tree-sitter mode) not just java-mode. --- modules/lang/java/autoload/java.el | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/modules/lang/java/autoload/java.el b/modules/lang/java/autoload/java.el index ed0ebddcd..82fc4a7f1 100644 --- a/modules/lang/java/autoload/java.el +++ b/modules/lang/java/autoload/java.el @@ -44,8 +44,9 @@ It does this by ignoring everything before the nearest package root (see root)." (cond ((doom-special-buffer-p (current-buffer)) "{PackageName}") - ((not (eq major-mode 'java-mode)) - (user-error "Not in java-mode")) + ((and (not (eq major-mode 'java-mode)) + (not (eq major-mode 'java-ts-mode)) + (user-error "Not in java-mode or java-ts-mode"))) ((when-let (project-root (doom-project-root)) (let* ((project-root (file-truename project-root)) (file-path @@ -73,8 +74,9 @@ root)." "Get the class name for the current file." (cond ((doom-special-buffer-p (current-buffer)) "{ClassName}") - ((not (eq major-mode 'java-mode)) - (user-error "Not in java-mode")) + ((and (not (eq major-mode 'java-mode)) + (not (eq major-mode 'java-ts-mode)) + (user-error "Not in java-mode or java-ts-mode"))) (buffer-file-name (file-name-sans-extension (file-name-base (buffer-file-name)))) ((user-error "Can't deduce the class name")))) From 79429ecc562893b77be257013f8150eb51005cc1 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 5 Mar 2024 02:29:18 -0500 Subject: [PATCH 421/523] fix(nim): swap nimfmt with nimpretty Nim 2.x+ comes with its own formatter (nimpretty). Close: #7578 Co-authored-by: pietrangelo --- modules/lang/nim/README.org | 4 ++-- modules/lang/nim/config.el | 2 +- modules/lang/nim/doctor.el | 5 ++--- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/modules/lang/nim/README.org b/modules/lang/nim/README.org index 166e0f6da..774d38a60 100644 --- a/modules/lang/nim/README.org +++ b/modules/lang/nim/README.org @@ -52,8 +52,8 @@ Alternatively, nim is usually available through your OS's package manager: - openSUSE: ~$ zypper install nim~ ** Formatter - -Formatting is handled using the [[doom-module::editor format]] module via [[https://github.com/FedericoCeratto/nimfmt#installation][nimfmt]]. +Formatting is handled using the [[doom-module::editor format]] module via nimpretty +(included with Nim). * TODO Usage #+begin_quote diff --git a/modules/lang/nim/config.el b/modules/lang/nim/config.el index ddaf986f3..231f29262 100644 --- a/modules/lang/nim/config.el +++ b/modules/lang/nim/config.el @@ -12,7 +12,7 @@ nimsuggest isn't installed." (when (and nimsuggest-path (file-executable-p nimsuggest-path)) (nimsuggest-mode)))) - (set-formatter! 'nmfmt '("nimfmt" filepath) :modes '(nim-mode)) + (set-formatter! 'nmfmt '("nimpretty" filepath) :modes '(nim-mode)) (when (featurep :system 'windows) ;; TODO File PR/report upstream (https://github.com/nim-lang/nim-mode) diff --git a/modules/lang/nim/doctor.el b/modules/lang/nim/doctor.el index 32980d7ed..f9927b6b6 100644 --- a/modules/lang/nim/doctor.el +++ b/modules/lang/nim/doctor.el @@ -1,4 +1,3 @@ - ;;; lang/nim/doctor.el (unless (executable-find "nimsuggest") @@ -8,5 +7,5 @@ (warn! "Could not find nim executable; build commands will be disabled.")) (when (modulep! :editor format) - (unless (executable-find "nimfmt") - (warn! "Could not find nimfmt. Formatting will be disabled."))) + (unless (executable-find "nimpretty") + (warn! "Could not find nimpretty. Formatting will be disabled."))) From d4434887281f87be8a6aefdc50a7360df4571328 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 5 Mar 2024 02:31:00 -0500 Subject: [PATCH 422/523] bump: :lang nim nim-lang/nim-mode@1338e5b0d5e1 -> nim-lang/nim-mode@625cc023bd75 --- modules/lang/nim/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/lang/nim/packages.el b/modules/lang/nim/packages.el index 30993cbcc..0f4d4c71f 100644 --- a/modules/lang/nim/packages.el +++ b/modules/lang/nim/packages.el @@ -3,7 +3,7 @@ ;;; requires nim nimsuggest nimble -(package! nim-mode :pin "1338e5b0d5e111ad932efb77d3cad680cc3b86c9") +(package! nim-mode :pin "625cc023bd75a741b7d4e629e5bec3a52f45b4be") (when (and (modulep! :checkers syntax) (not (modulep! :checkers syntax +flymake))) From 2bce9dbc1ad1e84641625a8d7d794f9644d58b21 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 5 Mar 2024 15:57:31 -0500 Subject: [PATCH 423/523] fix: doom-incremental-first-idle-timer: type error when nil If the user uses the doom-load-packages-incrementally function directly, and has set doom-incremental-first-idle-timer set to nil, it will throw a type error. Close: #7710 --- lisp/doom-start.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lisp/doom-start.el b/lisp/doom-start.el index 5a68dd036..e52624bcf 100644 --- a/lisp/doom-start.el +++ b/lisp/doom-start.el @@ -199,7 +199,7 @@ in daemon sessions (they are loaded immediately at startup).") (defvar doom-incremental-first-idle-timer (if (daemonp) 0 2.0) "How long (in idle seconds) until incremental loading starts. -Set this to nil to disable incremental loading. +Set this to nil to disable incremental loading at startup. Set this to 0 to load all incrementally deferred packages immediately at `emacs-startup-hook'.") @@ -222,7 +222,7 @@ intervals." (condition-case-unless-debug e (and (or (null (setq idle-time (current-idle-time))) - (< (float-time idle-time) doom-incremental-first-idle-timer) + (< (float-time idle-time) (or doom-incremental-first-idle-timer 0.0)) (not (while-no-input (doom-log "start:iloader: Loading %s (%d left)" req (length packages)) From f1c1efe420afffdec8557dd7bf0e1782158bfc12 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 6 Mar 2024 00:26:17 -0500 Subject: [PATCH 424/523] refactor(biblio): move 3rd party modes to use-package blocks This makes load-order more predictable for users wanting to modify the side-effects of citar-org-roam-mode or citar-embark-mode. I.e. (after! citar-org-roam ...) (after! citar-embark ...) Instead of: (after! (citar org-roam) ...) (after! (citar embark) ...) Ref: #7712 Co-authored-by: hpfr --- modules/tools/biblio/config.el | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/modules/tools/biblio/config.el b/modules/tools/biblio/config.el index 61caf6677..970990d27 100644 --- a/modules/tools/biblio/config.el +++ b/modules/tools/biblio/config.el @@ -29,12 +29,6 @@ org-cite-activate-processor 'citar) :config - (after! embark - (citar-embark-mode)) - - (after! org-roam - (citar-org-roam-mode)) - (when (modulep! :completion vertico +icons) (defvar citar-indicator-files-icons (citar-indicator-create @@ -81,6 +75,20 @@ ;; ;;; Third-party +(use-package! citar-embark + :defer t + :init + (after! (citar embark) + (citar-embark-mode))) + + +(use-package! citar-org-roam + :defer t + :init + (after! (citar org-roam) + (citar-org-roam-mode))) + + (use-package! bibtex-completion :when (or (modulep! :completion ivy) (modulep! :completion helm)) From 3820ead9e3b029abb2e09289d4b875e25cdea332 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 10 Mar 2024 00:38:13 -0500 Subject: [PATCH 425/523] tweak(markdown): disable wiki links & math highlights by default These two features are relatively expensive and shouldn't be enabled as a global default. --- modules/lang/markdown/config.el | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/modules/lang/markdown/config.el b/modules/lang/markdown/config.el index 9461635c9..cad315f38 100644 --- a/modules/lang/markdown/config.el +++ b/modules/lang/markdown/config.el @@ -18,9 +18,7 @@ capture, the end position, and the output buffer.") (use-package! markdown-mode :mode ("/README\\(?:\\.md\\)?\\'" . gfm-mode) :init - (setq markdown-enable-math t ; syntax highlighting for latex fragments - markdown-enable-wiki-links t - markdown-italic-underscore t + (setq markdown-italic-underscore t markdown-asymmetric-header t markdown-gfm-additional-languages '("sh") markdown-make-gfm-checkboxes-buttons t From 3b405c8d8146553a1faad664e529c1ed0f841fa8 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 10 Mar 2024 20:42:02 -0400 Subject: [PATCH 426/523] fix(lib): only use alpha-background on pgtk builds Fix: #7721 --- lisp/lib/ui.el | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/lisp/lib/ui.el b/lisp/lib/ui.el index ea553c1d1..d2d01e5e3 100644 --- a/lisp/lib/ui.el +++ b/lisp/lib/ui.el @@ -175,15 +175,18 @@ Use `winner-undo' to undo this. Alternatively, use "Interactively change the current frame's opacity. OPACITY is an integer between 0 to 100, inclusive." - (interactive - (list (read-number "Opacity (0-100): " - (or (frame-parameter - nil (if (> emacs-major-version 28) - 'alpha-background 'alpha)) - 100)))) - (set-frame-parameter nil (if (> emacs-major-version 28) - 'alpha-background 'alpha) - opacity)) + (interactive '(interactive)) + (let* ((parameter + (if (eq window-system 'pgtk) + 'alpha-background + 'alpha)) + (opacity + (if (eq opacity 'interactive) + (read-number "Opacity (0-100): " + (or (frame-parameter nil parameter) + 100)) + opacity))) + (set-frame-parameter nil parameter opacity))) (defvar doom--narrowed-base-buffer nil) ;;;###autoload From 198fe82b6d4989b7fdffb810e97371c44fa4dbcb Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 10 Mar 2024 20:43:52 -0400 Subject: [PATCH 427/523] feat(lib): backport find-sibling-file I will slowly phase out projectile in favor of project.el, starting with projectile-find-other-file, which -- as of Emacs 29 -- has a native alternative: `find-sibling-file`. Ref: doomemacs/community#1 --- lisp/lib/files.el | 72 ++++++++++++++++++++++++ modules/config/default/+evil-bindings.el | 2 +- modules/editor/evil/+commands.el | 2 +- modules/lang/cc/config.el | 2 + modules/lang/web/+css.el | 8 +-- 5 files changed, 77 insertions(+), 9 deletions(-) diff --git a/lisp/lib/files.el b/lisp/lib/files.el index 2ffcc8c1e..088463293 100644 --- a/lisp/lib/files.el +++ b/lisp/lib/files.el @@ -527,5 +527,77 @@ If FORCE-P, overwrite the destination file if it exists, without confirmation." (recentf-save-list) (message "Removed %S from `recentf-list'" (abbreviate-file-name file))) + +;; +;;; Backports + +;; Introduced in Emacs 29. +;;;###autoload +(eval-when! (not (fboundp 'find-sibling-file)) + (defvar find-sibling-rules nil) + + (defun find-sibling-file (file) + "Visit a \"sibling\" file of FILE. +When called interactively, FILE is the currently visited file. + +The \"sibling\" file is defined by the `find-sibling-rules' variable." + (interactive (progn + (unless buffer-file-name + (user-error "Not visiting a file")) + (list buffer-file-name))) + (unless find-sibling-rules + (user-error "The `find-sibling-rules' variable has not been configured")) + (let ((siblings (find-sibling-file-search (expand-file-name file) + find-sibling-rules))) + (cond + ((null siblings) + (user-error "Couldn't find any sibling files")) + ((length= siblings 1) + (find-file (car siblings))) + (t + (let ((relatives (mapcar (lambda (sibling) + (file-relative-name + sibling (file-name-directory file))) + siblings))) + (find-file + (completing-read (format-prompt "Find file" (car relatives)) + relatives nil t nil nil (car relatives)))))))) + + (defun find-sibling-file-search (file &optional rules) + "Return a list of FILE's \"siblings\". +RULES should be a list on the form defined by `find-sibling-rules' (which +see), and if nil, defaults to `find-sibling-rules'." + (let ((results nil)) + (pcase-dolist (`(,match . ,expansions) (or rules find-sibling-rules)) + ;; Go through the list and find matches. + (when (string-match match file) + (let ((match-data (match-data))) + (dolist (expansion expansions) + (let ((start 0)) + ;; Expand \\1 forms in the expansions. + (while (string-match "\\\\\\([&0-9]+\\)" expansion start) + (let ((index (string-to-number (match-string 1 expansion)))) + (setq start (match-end 0) + expansion + (replace-match + (substring file + (elt match-data (* index 2)) + (elt match-data (1+ (* index 2)))) + t t expansion))))) + ;; Then see which files we have that are matching. (And + ;; expand from the end of the file's match, since we might + ;; be doing a relative match.) + (let ((default-directory (substring file 0 (car match-data)))) + ;; Keep the first matches first. + (setq results + (nconc + results + (mapcar #'expand-file-name + (file-expand-wildcards expansion nil t))))))))) + ;; Delete the file itself (in case it matched), and remove + ;; duplicates, in case we have several expansions and some match + ;; the same subsets of files. + (delete file (delete-dups results))))) + (provide 'doom-lib '(files)) ;;; files.el ends here diff --git a/modules/config/default/+evil-bindings.el b/modules/config/default/+evil-bindings.el index c79c078f6..fd2487410 100644 --- a/modules/config/default/+evil-bindings.el +++ b/modules/config/default/+evil-bindings.el @@ -677,7 +677,7 @@ :desc "Configure project" "g" #'projectile-configure-project :desc "Invalidate project cache" "i" #'projectile-invalidate-cache :desc "Kill project buffers" "k" #'projectile-kill-buffers - :desc "Find other file" "o" #'projectile-find-other-file + :desc "Find sibling file" "o" #'find-sibling-file :desc "Switch project" "p" #'projectile-switch-project :desc "Find recent project files" "r" #'projectile-recentf :desc "Run project" "R" #'projectile-run-project diff --git a/modules/editor/evil/+commands.el b/modules/editor/evil/+commands.el index 7c05694bc..05bb798c2 100644 --- a/modules/editor/evil/+commands.el +++ b/modules/editor/evil/+commands.el @@ -52,7 +52,7 @@ (evil-ex-define-cmd "pop[up]" #'+popup/buffer) ;;; Project navigation -(evil-ex-define-cmd "a" #'projectile-find-other-file) +(evil-ex-define-cmd "a" #'find-sibling-file) (evil-ex-define-cmd "cd" #'+evil:cd) (evil-ex-define-cmd "pwd" #'+evil:pwd) diff --git a/modules/lang/cc/config.el b/modules/lang/cc/config.el index 81514b2a9..9b1c2acc3 100644 --- a/modules/lang/cc/config.el +++ b/modules/lang/cc/config.el @@ -78,6 +78,8 @@ This is ignored by ccls.") :return "return" :yield "#require") + (add-to-list 'find-sibling-rules '("/\\([^/]+\\)\\.c\\(c\\|pp\\)\\'" "\\1.\\(h\\|hh\\|hpp\\)")) + (when (modulep! +tree-sitter) (add-hook! '(c-mode-local-vars-hook c++-mode-local-vars-hook) diff --git a/modules/lang/web/+css.el b/modules/lang/web/+css.el index fdcc4c744..144670d42 100644 --- a/modules/lang/web/+css.el +++ b/modules/lang/web/+css.el @@ -8,13 +8,7 @@ be aligned. If set to `nil', disable all the above behaviors.") -(after! projectile - (pushnew! projectile-other-file-alist - '("css" "scss" "sass" "less" "styl") - '("scss" "css") - '("sass" "css") - '("less" "css") - '("styl" "css"))) +(add-to-list 'find-sibling-rules '("/\\([^/]+\\)\\.\\(\\(s[ac]\\|le\\)ss\\|styl\\)\\'" "\\1\\.css")) ;; From 43870bf8318f6471c4ce5e14565c9f0a3fb6e368 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 10 Mar 2024 23:50:14 -0400 Subject: [PATCH 428/523] fix(editorconfig): prevent changes to tab-width in org-mode - Add another measure for preventing changes to tab-width in org-mode. The hook introduced in 2757a97 runs too early and could be overwritten by editorconfig. - Fix the hook in 2757a97 to run much later, ensuring (as a last resort) no other packages can overwrite tab-width either. Amend: 2757a97a30e7 Ref: #7670 --- modules/lang/org/config.el | 7 ++++++- modules/tools/editorconfig/config.el | 16 +++++++++++++--- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/modules/lang/org/config.el b/modules/lang/org/config.el index f88057bf3..549f38c10 100644 --- a/modules/lang/org/config.el +++ b/modules/lang/org/config.el @@ -1438,7 +1438,12 @@ between the two." ;; HACK: Somehow, users/packages still find a way to modify tab-width in ;; org-mode. Since org-mode treats a non-standerd tab-width as an error ;; state, I use this hook to makes it much harder to change by accident. - (add-hook! 'org-mode-hook :depth 110 (setq-local tab-width 8)) + (add-hook! 'org-mode-hook + (add-hook! 'after-change-major-mode-hook :local + ;; The second check is necessary, in case of `org-edit-src-code' which + ;; clones a buffer and changes its major-mode. + (when (derived-mode-p 'org-mode) + (setq tab-width 8)))) ;; Save target buffer after archiving a node. (setq org-archive-subtree-save-file-p t) diff --git a/modules/tools/editorconfig/config.el b/modules/tools/editorconfig/config.el index e6d52b3c5..5fb5bfa87 100644 --- a/modules/tools/editorconfig/config.el +++ b/modules/tools/editorconfig/config.el @@ -48,6 +48,16 @@ extension, try to guess one." (defun +editorconfig-disable-indent-detection-h (props) "Inhibit `dtrt-indent' if an explicit indent_style and indent_size is specified by editorconfig." - (when (or (gethash 'indent_style props) - (gethash 'indent_size props)) - (setq doom-inhibit-indent-detection 'editorconfig))))) + (when (and (not doom-inhibit-indent-detection) + (or (gethash 'indent_style props) + (gethash 'indent_size props))) + (setq doom-inhibit-indent-detection 'editorconfig))) + ;; I use a hook over `editorconfig-exclude-modes' because the option + ;; inhibits all settings, and I only want to inhibit indent_size. Plus modes + ;; in that option won't apply to derived modes, so we'd have to add *all* + ;; possible org-mode derivatives to it. + (defun +editorconfig-unset-tab-width-in-org-mode-h (props) + "A tab-width != 8 is an error state in org-mode, so prevent changing it." + (when (and (gethash 'indent_size props) + (derived-mode-p 'org-mode)) + (setq tab-width 8))))) From 41e81f67a73bb6d042c83a02f5c9ac3125306fd5 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 11 Mar 2024 00:26:19 -0400 Subject: [PATCH 429/523] refactor(editorconfig): remove unused advice editorconfig-call-editorconfig-exec was renamed+redesigned upstream. The advice can no longer be trivially repurposed, so I'm removing it. Ref: editorconfig/editorconfig-emacs@f8f1a899dfc2 --- modules/tools/editorconfig/config.el | 30 ---------------------------- 1 file changed, 30 deletions(-) diff --git a/modules/tools/editorconfig/config.el b/modules/tools/editorconfig/config.el index 5fb5bfa87..f98078c97 100644 --- a/modules/tools/editorconfig/config.el +++ b/modules/tools/editorconfig/config.el @@ -1,21 +1,5 @@ ;;; tools/editorconfig/config.el -*- lexical-binding: t; -*- -;; editorconfig cannot procure the correct settings for extension-less files. -;; Executable scripts with a shebang line, for example. So why not use Emacs' -;; major mode to drop editorconfig a hint? This is accomplished by temporarily -;; appending an extension to `buffer-file-name' when we talk to editorconfig. -(defvar +editorconfig-mode-alist - '((emacs-lisp-mode . "el") - (js2-mode . "js") - (perl-mode . "pl") - (php-mode . "php") - (python-mode . "py") - (ruby-mode . "rb") - (sh-mode . "sh")) - "An alist mapping major modes to extensions. Used by -`doom--editorconfig-smart-detection-a' to give editorconfig filetype hints.") - - ;; Handles whitespace (tabs/spaces) settings externally. This way projects can ;; specify their own formatting rules. (use-package! editorconfig @@ -30,20 +14,6 @@ (add-to-list 'editorconfig-exclude-regexps "\\.\\(zip\\|\\(doc\\|xls\\|ppt\\)x\\)\\'") - (defadvice! +editorconfig--smart-detection-a (fn) - "Retrieve the properties for the current file. If it doesn't have an -extension, try to guess one." - :around #'editorconfig-call-editorconfig-exec - (let ((buffer-file-name - (if (and (not (bound-and-true-p org-src-mode)) - (file-name-extension buffer-file-name)) - buffer-file-name - (format "%s%s" (buffer-file-name (buffer-base-buffer)) - (if-let (ext (alist-get major-mode +editorconfig-mode-alist)) - (concat "." ext) - ""))))) - (funcall fn))) - (add-hook! 'editorconfig-after-apply-functions (defun +editorconfig-disable-indent-detection-h (props) "Inhibit `dtrt-indent' if an explicit indent_style and indent_size is From dec058fabb5ed188f712a90cfd987616ade3676a Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 11 Mar 2024 00:37:17 -0400 Subject: [PATCH 430/523] fix(treemacs): treemacs-nerd-icons load order w/ +lsp lsp-treemacs changes the default Treemacs theme, so treemacs-nerd-icons needs to be loaded after it, if it's installed/enabled. Fix: #7519 Fix: doomemacs/themes#801 Ref: emacs-lsp/lsp-treemacs#89 --- modules/ui/treemacs/config.el | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/modules/ui/treemacs/config.el b/modules/ui/treemacs/config.el index 9f3febb6a..211e1f3bc 100644 --- a/modules/ui/treemacs/config.el +++ b/modules/ui/treemacs/config.el @@ -44,7 +44,12 @@ This must be set before `treemacs' has loaded.") (use-package! treemacs-nerd-icons - :after treemacs + :defer t + ;; HACK: Because `lsp-treemacs' mutates Treemacs' default theme, and + ;; `treemacs-nerd-icons' reads from it to populate its nerd-icons theme, + ;; load order is important to ensure they don't step on each other's toes. + :init (with-eval-after-load (if (modulep! +lsp) 'lsp-treemacs 'treemacs) + (require 'treemacs-nerd-icons)) :config (treemacs-load-theme "nerd-icons")) From 6c1aa0fb621a912a1a7eaed4f5db30a821d97327 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 11 Mar 2024 00:41:00 -0400 Subject: [PATCH 431/523] bump: :tools editorconfig editorconfig/editorconfig-emacs@4b81a5992858 -> editorconfig/editorconfig-emacs@c3666c093f3a --- modules/tools/editorconfig/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/tools/editorconfig/packages.el b/modules/tools/editorconfig/packages.el index 022f9f75f..db1f0ecf0 100644 --- a/modules/tools/editorconfig/packages.el +++ b/modules/tools/editorconfig/packages.el @@ -3,4 +3,4 @@ (package! editorconfig :recipe (:nonrecursive t) - :pin "4b81a5992858cbf03bcd7ed6ef31e4be0b55a7c1") + :pin "c3666c093f3a2a80fb42e513bf0a10d597497c18") From 7f484f7010298d300d69fd0f70c5245e74949462 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 11 Mar 2024 00:42:17 -0400 Subject: [PATCH 432/523] refactor: remove explain-pause-mode Tools like these will be moved to a benchmark module later (or perhaps to `:lang emacs-lisp`). For the time being, it only takes up extra space that few users use. --- lisp/lib/debug.el | 3 --- lisp/packages.el | 4 ---- 2 files changed, 7 deletions(-) diff --git a/lisp/lib/debug.el b/lisp/lib/debug.el index 741e59ff3..792acb758 100644 --- a/lisp/lib/debug.el +++ b/lisp/lib/debug.el @@ -59,9 +59,6 @@ symbol and CDR is the value to set it to when `doom-debug-mode' is activated.") (let ((enabled doom-debug-mode)) (doom-log "debug: enabled!") (mapc #'doom-debug--set-var doom-debug-variables) - (when (called-interactively-p 'any) - (when (fboundp 'explain-pause-mode) - (explain-pause-mode (if enabled +1 -1)))) ;; Watch for changes in `doom-debug-variables', or when packages load (and ;; potentially define one of `doom-debug-variables'), in case some of them ;; aren't defined when `doom-debug-mode' is first loaded. diff --git a/lisp/packages.el b/lisp/packages.el index 11bd02520..dd908a10d 100644 --- a/lisp/packages.el +++ b/lisp/packages.el @@ -4,10 +4,6 @@ ;; doom.el (package! auto-minor-mode :pin "17cfa1b54800fdef2975c0c0531dad34846a5065") (package! gcmh :pin "0089f9c3a6d4e9a310d0791cf6fa8f35642ecfd9") -(package! explain-pause-mode - :recipe (:host github - :repo "lastquestion/explain-pause-mode") - :pin "2356c8c3639cbeeb9751744dbe737267849b4b51") ;; doom-packages.el (package! straight From c6063de4399411e45a06e8ac14249b323419ae6c Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 11 Mar 2024 00:47:13 -0400 Subject: [PATCH 433/523] nit: revise and reformat comments --- early-init.el | 6 +++--- lisp/doom-keybinds.el | 6 +++--- lisp/doom-lib.el | 14 +++++++------- lisp/doom-start.el | 24 +++++++++++++----------- lisp/doom.el | 18 ++++++++++++------ 5 files changed, 38 insertions(+), 30 deletions(-) diff --git a/early-init.el b/early-init.el index 922972c02..bc6032b42 100644 --- a/early-init.el +++ b/early-init.el @@ -106,9 +106,9 @@ ;; this early -- I remove `.so' from `load-suffixes' and pass the ;; `must-suffix' arg to `load'. See the docs of `load' for details. (if (let ((load-suffixes '(".elc" ".el"))) - ;; I avoid `load's NOERROR argument because other, legitimate errors - ;; (like permission or IO errors) should not be suppressed or - ;; interpreted as "this is not a Doom config". + ;; I avoid `load's NOERROR argument because it suppresses other, + ;; legitimate errors (like permission or IO errors), which gets + ;; incorrectly interpreted as "this is not a Doom config". (condition-case _ ;; Load the heart of Doom Emacs. (load (expand-file-name "lisp/doom" user-emacs-directory) diff --git a/lisp/doom-keybinds.el b/lisp/doom-keybinds.el index f6ff2a99a..210432fc5 100644 --- a/lisp/doom-keybinds.el +++ b/lisp/doom-keybinds.el @@ -46,12 +46,12 @@ and Emacs states, and for non-evil users.") ;; HACK: Emacs cannot distinguish between C-i from TAB. This is largely a ;; byproduct of its history in the terminal, which can't distinguish them -;; either, however, when GUIs came about Emacs greated separate input events +;; either, however, when GUIs came about Emacs created separate input events ;; for more contentious keys like TAB and RET. Therefore [return] != RET, ;; [tab] != TAB, and [backspace] != DEL. ;; -;; In the same vein, this keybind adds a [C-i] event, so users can bind to it. -;; Otherwise, it falls back to regular C-i keybinds. +;; In the same vein, this keybind adds a [C-i] event, so users can bind to it +;; independently of TAB. Otherwise, it falls back to keys bound to C-i. (define-key key-translation-map [?\C-i] (cmd! (if (let ((keys (this-single-command-raw-keys))) (and keys diff --git a/lisp/doom-lib.el b/lisp/doom-lib.el index c33edede1..9f996d3e7 100644 --- a/lisp/doom-lib.el +++ b/lisp/doom-lib.el @@ -303,9 +303,9 @@ TRIGGER-HOOK is a list of quoted hooks and/or sharp-quoted functions." (error "file!: cannot deduce the current file path"))) (defmacro dir! () - "Return the directory of the file this macro was called." - (let (file-name-handler-alist) - (file-name-directory (macroexpand '(file!))))) + "Return the directory of the file in which this macro was called." + (let (file-name-handler-alist) + (file-name-directory (macroexpand '(file!))))) ;; REVIEW Should I deprecate this? The macro's name is so long... (defalias 'letenv! 'with-environment-variables) @@ -883,16 +883,16 @@ testing advice (when combined with `rotate-text'). (dolist (target (cdr targets)) (advice-remove target #',symbol))))) + +;; +;;; Backports + (defmacro defbackport! (type symbol &rest body) "Backport a function/macro/alias from later versions of Emacs." (declare (indent defun) (doc-string 4)) (unless (fboundp (doom-unquote symbol)) `(,type ,symbol ,@body))) - -;; -;;; Backports - ;; `format-spec' wasn't autoloaded until 28.1 (defbackport! autoload 'format-spec "format-spec") diff --git a/lisp/doom-start.el b/lisp/doom-start.el index e52624bcf..2c25a3421 100644 --- a/lisp/doom-start.el +++ b/lisp/doom-start.el @@ -100,13 +100,15 @@ ;;; Disable UI elements early ;; PERF,UI: Doom strives to be keyboard-centric, so I consider these UI elements -;; clutter. Initializing them also costs a morsel of startup time. Whats more, -;; the menu bar exposes functionality that Doom doesn't endorse. Perhaps one -;; day Doom will support these, but today is not that day. -;; +;; clutter. Initializing them also costs a morsel of startup time. What's +;; more, the menu bar exposes functionality that Doom doesn't endorse. Perhaps +;; one day Doom will support these, but today is not that day. By disabling +;; them early, we save Emacs some time. + ;; HACK: I intentionally avoid calling `menu-bar-mode', `tool-bar-mode', and -;; `scroll-bar-mode' because they do extra work to manipulate frame variables -;; that isn't necessary this early in the startup process. +;; `scroll-bar-mode' because their manipulation of frame parameters can +;; trigger/queue a superfluous (and expensive, depending on the window system) +;; frame redraw at startup. (push '(menu-bar-lines . 0) default-frame-alist) (push '(tool-bar-lines . 0) default-frame-alist) (push '(vertical-scroll-bars) default-frame-alist) @@ -119,7 +121,7 @@ ;; non-application window -- which means it doesn't automatically capture ;; focus when it is started, among other things, so enable the menu-bar for ;; GUI frames, but keep it disabled in terminal frames because there it -;; activates an ugly, in-frame menu bar. +;; unavoidably activates an ugly, in-frame menu bar. (eval-when! doom--system-macos-p (add-hook! '(window-setup-hook after-make-frame-functions) (defun doom-restore-menu-bar-in-gui-frames-h (&optional frame) @@ -136,7 +138,7 @@ ;; a step too opinionated. (setq default-input-method nil) ;; ...And the clipboard on Windows could be in a wider encoding (UTF-16), so -;; leave Emacs to its own devices. +;; leave Emacs to its own devices there. (eval-when! (not doom--system-windows-p) (setq selection-coding-system 'utf-8)) @@ -180,7 +182,7 @@ (defvar doom-incremental-packages '(t) "A list of packages to load incrementally after startup. Any large packages here may cause noticeable pauses, so it's recommended you break them up into -sub-packages. For example, `org' is comprised of many packages, and can be +sub-packages. For example, `org' is comprised of many packages, and might be broken up into: (doom-load-packages-incrementally @@ -192,7 +194,7 @@ broken up into: This is already done by the lang/org module, however. If you want to disable incremental loading altogether, either remove -`doom-load-packages-incrementally-h' from `emacs-startup-hook' or set +`doom-load-packages-incrementally-h' from `doom-after-init-hook' or set `doom-incremental-first-idle-timer' to nil. Incremental loading does not occur in daemon sessions (they are loaded immediately at startup).") @@ -201,7 +203,7 @@ in daemon sessions (they are loaded immediately at startup).") Set this to nil to disable incremental loading at startup. Set this to 0 to load all incrementally deferred packages immediately at -`emacs-startup-hook'.") +`doom-after-init-hook'.") (defvar doom-incremental-idle-timer 0.75 "How long (in idle seconds) in between incrementally loading packages.") diff --git a/lisp/doom.el b/lisp/doom.el index 5f9835224..65924d1ec 100644 --- a/lisp/doom.el +++ b/lisp/doom.el @@ -59,9 +59,13 @@ ;; - On first switched-to buffer: `doom-first-buffer-hook' ;; - On first opened file: `doom-first-file-hook' ;; -;; This is Doom's heart, where I define all its major constants and variables, -;; set only its sanest global defaults, employ its hackiest (and least -;; offensive) optimizations, and load the minimum for all Doom sessions. +;; This file is Doom's heart, where I define all its major constants and +;; variables, set only its sanest global defaults, employ its hackiest (and +;; least offensive) optimizations, and load the minimum needed for all Doom +;; sessions, interactive or otherwise. +;; +;; See doom-start.el for initialization intended solely for interactive +;; sessions, and doom-cli.el for non-interactive sessions. ;; ;;; Code: @@ -110,7 +114,8 @@ ;;; Custom features & global constants ;; Doom has its own features that its modules, CLI, and user extensions can ;; announce, and don't belong in `features', so they are stored here, which can -;; include information about the external system environment. +;; include information about the external system environment. Module-specific +;; features are kept elsewhere, however. (defconst doom-features (pcase system-type ('darwin '(macos bsd)) @@ -410,8 +415,9 @@ users).") ;; PERF: Shave seconds off startup time by starting the scratch buffer in ;; `fundamental-mode', rather than, say, `org-mode' or `text-mode', which - ;; pull in a ton of packages. `doom/open-scratch-buffer' provides a better - ;; scratch buffer anyway. + ;; pull in a ton of packages. This buffer is created whether or not we're + ;; in an interactive session. Plus, `doom/open-scratch-buffer' provides a + ;; better scratch buffer, so keep the initial one blank. (setq initial-major-mode 'fundamental-mode initial-scratch-message nil) From e27d9b35d3a42e22951edcfbdaa63526f4b9c7b2 Mon Sep 17 00:00:00 2001 From: Tim Ruffing Date: Sun, 11 Feb 2024 03:49:35 +0100 Subject: [PATCH 434/523] fix(popup): fix finding of major side window Fix: #7647 Amend: #7598 --- modules/ui/popup/autoload/popup.el | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/modules/ui/popup/autoload/popup.el b/modules/ui/popup/autoload/popup.el index ba90d642f..aa31fac2a 100644 --- a/modules/ui/popup/autoload/popup.el +++ b/modules/ui/popup/autoload/popup.el @@ -512,17 +512,24 @@ Accepts the same arguments as `display-buffer-in-side-window'. You must set (and (eq (window-parameter window 'window-side) side) (eq (window-parameter window 'window-vslot) vslot))) nil)) - ;; As opposed to the `window-side' property, the `window-vslot' - ;; property is set only on a single live window and never on internal + ;; As opposed to the `window-side' property, our `window-vslot' + ;; parameter is set only on a single live window and never on internal ;; windows. Moreover, as opposed to `window-with-parameter' (as used ;; by the original `display-buffer-in-side-window'), ;; `get-window-with-predicate' only returns live windows anyway. In ;; any case, we will have missed the major side window and got a ;; child instead if the major side window happens to be an internal - ;; window. In that case, the major side window is the parent of the - ;; live window. + ;; window with multiple children. In that case, all childen should + ;; have the same `window-vslot' parameter, and the major side window + ;; is the parent of the live window. + (prev (and live (window-prev-sibling live))) + (next (and live (window-next-sibling live))) + (prev-vslot (and prev (window-parameter prev 'window-vslot))) + (next-vslot (and next (window-parameter next 'window-vslot))) (major (and live - (if (window-next-sibling live) (window-parent live) live))) + (if (or (eq prev-vslot vslot) (eq next-vslot vslot)) + (window-parent live) + live))) (reversed (window--sides-reverse-on-frame-p (selected-frame))) (windows (cond ((window-live-p major) @@ -614,6 +621,7 @@ Accepts the same arguments as `display-buffer-in-side-window'. You must set (setq window (ignore-errors (split-window prev-window nil prev-side)))))) (set-window-parameter window 'window-slot slot) + (set-window-parameter window 'window-vslot vslot) (with-current-buffer buffer (setq window--sides-shown t)) (window--display-buffer From 4be265ead73e587a9cc2e86f01e103728c5eaf20 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 11 Mar 2024 02:50:33 -0400 Subject: [PATCH 435/523] fix: doom-incremental-first-idle-timer: type error when nil (part 2) Amend: 2bce9dbc1ad1 Ref: #7710 --- lisp/doom-start.el | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/lisp/doom-start.el b/lisp/doom-start.el index 2c25a3421..c5b1d46b2 100644 --- a/lisp/doom-start.el +++ b/lisp/doom-start.el @@ -211,9 +211,13 @@ Set this to 0 to load all incrementally deferred packages immediately at (defun doom-load-packages-incrementally (packages &optional now) "Registers PACKAGES to be loaded incrementally. -If NOW is non-nil, load PACKAGES incrementally, in `doom-incremental-idle-timer' -intervals." - (let ((gc-cons-threshold most-positive-fixnum)) +If NOW is non-nil, PACKAGES will be marked for incremental loading next time +Emacs is idle for `doom-incremental-first-idle-timer' seconds (falls back to +`doom-incremental-idle-timer'), then in `doom-incremental-idle-timer' intervals +afterwards." + (let* ((gc-cons-threshold most-positive-fixnum) + (first-idle-timer (or doom-incremental-first-idle-timer + doom-incremental-idle-timer))) (if (not now) (cl-callf append doom-incremental-packages packages) (while packages @@ -224,7 +228,7 @@ intervals." (condition-case-unless-debug e (and (or (null (setq idle-time (current-idle-time))) - (< (float-time idle-time) (or doom-incremental-first-idle-timer 0.0)) + (< (float-time idle-time) first-idle-timer) (not (while-no-input (doom-log "start:iloader: Loading %s (%d left)" req (length packages)) @@ -244,7 +248,7 @@ intervals." (doom-log "start:iloader: Finished!") (run-at-time (if idle-time doom-incremental-idle-timer - doom-incremental-first-idle-timer) + first-idle-timer) nil #'doom-load-packages-incrementally packages t) (setq packages nil)))))))) From 61327bf77770d815d71ba84a872a2da3d8fd4a53 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 11 Mar 2024 03:24:44 -0400 Subject: [PATCH 436/523] refactor(lib): use doom-region-{beginning,end} --- lisp/lib/ui.el | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/lisp/lib/ui.el b/lisp/lib/ui.el index d2d01e5e3..f564248e4 100644 --- a/lisp/lib/ui.el +++ b/lisp/lib/ui.el @@ -198,12 +198,9 @@ narrowing doesn't affect other windows displaying the same buffer. Call `doom/widen-indirectly-narrowed-buffer' to undo it (incrementally). Inspired from http://demonastery.org/2013/04/emacs-evil-narrow-region/" - (interactive - (list (or (bound-and-true-p evil-visual-beginning) (region-beginning)) - (or (bound-and-true-p evil-visual-end) (region-end)))) - (unless (region-active-p) - (setq beg (line-beginning-position) - end (line-end-position))) + (interactive (if (region-active-p) + (list (doom-region-beginning) (doom-region-end)) + (list (bol) (eol)))) (deactivate-mark) (let ((orig-buffer (current-buffer))) (with-current-buffer (switch-to-buffer (clone-indirect-buffer nil nil)) @@ -242,12 +239,9 @@ If the current buffer is not an indirect buffer, it is `widen'ed." ;;;###autoload (defun doom/toggle-narrow-buffer (beg end) "Narrow the buffer to BEG END. If narrowed, widen it." - (interactive - (list (or (bound-and-true-p evil-visual-beginning) (region-beginning)) - (or (bound-and-true-p evil-visual-end) (region-end)))) + (interactive (if (region-active-p) + (list (doom-region-beginning) (doom-region-end)) + (list (bol) (eol)))) (if (buffer-narrowed-p) (widen) - (unless (region-active-p) - (setq beg (line-beginning-position) - end (line-end-position))) (narrow-to-region beg end))) From 559171575e7685463ae6608b6c37caf7c234f89d Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 11 Mar 2024 03:26:01 -0400 Subject: [PATCH 437/523] refactor(lib): doom-region-end: extract marker --- lisp/lib/text.el | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lisp/lib/text.el b/lisp/lib/text.el index 60a56b47e..cef1a098b 100644 --- a/lisp/lib/text.el +++ b/lisp/lib/text.el @@ -88,10 +88,11 @@ Uses `evil-visual-beginning' if available." "Return end position of selection. Uses `evil-visual-end' if available." (declare (side-effect-free t)) - (if (and (bound-and-true-p evil-local-mode) - (evil-visual-state-p)) - evil-visual-end - (region-end))) + (or (and (bound-and-true-p evil-local-mode) + (evil-visual-state-p) + (markerp evil-visual-end) + (marker-position evil-visual-end)) + (region-end))) ;;;###autoload (defun doom-thing-at-point-or-region (&optional thing prompt) From a0a1babc0d24e34909fbe6801edbe8388a022b98 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 11 Mar 2024 03:27:38 -0400 Subject: [PATCH 438/523] fix(cli): silence output from site-lisp Some site files will forcibly undo `inhibit-message` or set `force-load-messages`. This ensures site lisp files don't make unnecessary noise at startup. --- lisp/doom-cli.el | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/lisp/doom-cli.el b/lisp/doom-cli.el index 25c4e1216..7d5bff2f7 100644 --- a/lisp/doom-cli.el +++ b/lisp/doom-cli.el @@ -25,22 +25,22 @@ ;; HACK: Load `cl' and site files manually to prevent polluting logs and ;; stdout with deprecation and/or file load messages. - (let ((inhibit-message (not init-file-debug))) - (require 'cl nil t) - (unless site-run-file - (let ((site-run-file "site-start") - (tail load-path) - (lispdir (expand-file-name "../lisp" data-directory)) - dir) - (while tail - (setq dir (car tail)) - (let ((default-directory dir)) - (load (expand-file-name "subdirs.el") t inhibit-message t)) - (unless (string-prefix-p lispdir dir) - (let ((default-directory dir)) - (load (expand-file-name "leim-list.el") t inhibit-message t))) - (setq tail (cdr tail))) - (load site-run-file t inhibit-message)))) + (quiet! + (require 'cl nil t) + (unless site-run-file + (let ((site-run-file "site-start") + (tail load-path) + (lispdir (expand-file-name "../lisp" data-directory)) + dir) + (while tail + (setq dir (car tail)) + (let ((default-directory dir)) + (load (expand-file-name "subdirs.el") t inhibit-message t)) + (unless (string-prefix-p lispdir dir) + (let ((default-directory dir)) + (load (expand-file-name "leim-list.el") t inhibit-message t))) + (setq tail (cdr tail))) + (load site-run-file t inhibit-message)))) (setq-default ;; PERF: Don't generate superfluous files when writing temp buffers. From 1db96a1fdb76a9ab245a298db701880eeba8fe7d Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 11 Mar 2024 03:44:41 -0400 Subject: [PATCH 439/523] docs(web): correct type, mention JS comment hack, remove superfluous notice close: #7388 --- modules/lang/web/README.org | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/modules/lang/web/README.org b/modules/lang/web/README.org index 4418f522b..53ff8e32c 100644 --- a/modules/lang/web/README.org +++ b/modules/lang/web/README.org @@ -6,7 +6,7 @@ * Description :unfold: This module adds support for various web languages, including HTML5, CSS, SASS/SCSS, Pug/Jade/Slim, and HAML, as well as various web frameworks, like -ReactJS, Wordpress, Jekyll, Phaser, AngularJS, Djano, and more. +ReactJS, Wordpress, Jekyll, Phaser, AngularJS, Django, and more. ** Maintainers - @hlissner @@ -41,6 +41,9 @@ ReactJS, Wordpress, Jekyll, Phaser, AngularJS, Djano, and more. 󱌣 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]] #+end_quote +- Fixes ~//~ line commenting in JSX and Javascript files (if you aren't using + :lang javascript for some reason) + ** TODO Changelog # This section will be machine generated. Don't edit it by hand. /This module does not have a changelog yet./ @@ -49,13 +52,8 @@ ReactJS, Wordpress, Jekyll, Phaser, AngularJS, Djano, and more. [[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]] ** Formatter - Formatting is handled using the [[doom-module::editor format]] module via [[https://prettier.io/docs/en/install.html][prettier]]. -#+begin_quote - 󱌣 /No installation steps have been documented./ [[doom-contrib-module:][Document them?]] -#+end_quote - * TODO Usage #+begin_quote 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] From 68682ac01269f2ba55b51f368901cf6735d7c24a Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 11 Mar 2024 03:55:04 -0400 Subject: [PATCH 440/523] fix(ruby): ruby REPL w/ robe set-repl-handler! handlers have to return a buffer. Close: #7450 Co-authored-by: Zetagon --- modules/lang/ruby/autoload.el | 6 ++++++ modules/lang/ruby/config.el | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/modules/lang/ruby/autoload.el b/modules/lang/ruby/autoload.el index 70f3e68ff..47e5b1f73 100644 --- a/modules/lang/ruby/autoload.el +++ b/modules/lang/ruby/autoload.el @@ -13,3 +13,9 @@ open." (when (processp process) (kill-process (get-buffer-process inf-buffer)) (kill-buffer inf-buffer))))))) + +;;;###autoload +(defun +ruby-robe-repl-handler () + "Start Robe and open a REPL (for `set-repl-handler!')." + (robe-start) + (robe-inf-buffer)) diff --git a/modules/lang/ruby/config.el b/modules/lang/ruby/config.el index 61f2d46d1..31cc15c4b 100644 --- a/modules/lang/ruby/config.el +++ b/modules/lang/ruby/config.el @@ -48,7 +48,7 @@ (bound-and-true-p lsp--buffer-deferred) (robe-mode +1)))) :config - (set-repl-handler! 'ruby-mode #'robe-start) + (set-repl-handler! 'ruby-mode #'+ruby-robe-repl-handler) (set-company-backend! 'ruby-mode 'company-robe 'company-dabbrev-code) (set-lookup-handlers! 'ruby-mode :definition #'robe-jump From b3822557044ba21c8823bc209ac584e922028916 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 11 Mar 2024 03:30:10 -0400 Subject: [PATCH 441/523] release(modules): 24.03.0-dev Ref: 2b39e4136850 --- lisp/doom.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/doom.el b/lisp/doom.el index 65924d1ec..885e31f29 100644 --- a/lisp/doom.el +++ b/lisp/doom.el @@ -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.02.0-pre" +(defconst doom-modules-version "24.03.0-pre" "Current version of Doom Emacs.") (defvar doom-init-time nil From a0344ffc3ad7844075f6b0bc53c5130545d5a1d5 Mon Sep 17 00:00:00 2001 From: StrawberryTea Date: Mon, 11 Mar 2024 03:01:48 -0500 Subject: [PATCH 442/523] fix(mu4e): advice for new mu4e release mu4e-quit now takes an optional argument, BURY, which is a boolean that determines whether to bury the buffer or kill it. This commit updates the advice to reflect this change. --- modules/email/mu4e/autoload/mu-lock.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/email/mu4e/autoload/mu-lock.el b/modules/email/mu4e/autoload/mu-lock.el index 14cf1b01d..6f1a111cd 100644 --- a/modules/email/mu4e/autoload/mu-lock.el +++ b/modules/email/mu4e/autoload/mu-lock.el @@ -35,9 +35,9 @@ If STRICT only accept an unset lock file." (when (or strict (/= (emacs-pid) pid)) t)))) ;;;###autoload -(defun +mu4e-lock-file-delete-maybe () +(defun +mu4e-lock-file-delete-maybe (&optional bury) "Check `+mu4e-lock-file', and delete it if this process is responsible for it." - (when (+mu4e-lock-available) + (when (and (+mu4e-lock-available) (not bury)) (delete-file +mu4e-lock-file) (file-notify-rm-watch +mu4e-lock--request-watcher))) From f838c1790d1946dff3cd275e053417964dd121c4 Mon Sep 17 00:00:00 2001 From: cuithon <65674308+cuithon@users.noreply.github.com> Date: Wed, 13 Mar 2024 08:16:29 +0800 Subject: [PATCH 443/523] docs(default,mu4e,latex): fix repetition of `the` in docs --- modules/config/default/autoload/default.el | 2 +- modules/email/mu4e/README.org | 2 +- modules/lang/latex/autoload.el | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/config/default/autoload/default.el b/modules/config/default/autoload/default.el index b63a0d749..f229f3b7c 100644 --- a/modules/config/default/autoload/default.el +++ b/modules/config/default/autoload/default.el @@ -52,7 +52,7 @@ generate `completing-read' candidates." ;;;###autoload (defun +default/diagnostics (&rest arg) "List diagnostics for the current buffer/project. -If the the vertico and lsp modules are active, list lsp diagnostics for the +If the vertico and lsp modules are active, list lsp diagnostics for the current project. Otherwise list them for the current buffer" (interactive) (cond ((and (modulep! :completion vertico) diff --git a/modules/email/mu4e/README.org b/modules/email/mu4e/README.org index 1c34794f3..9dde00d3d 100644 --- a/modules/email/mu4e/README.org +++ b/modules/email/mu4e/README.org @@ -280,7 +280,7 @@ mail retrieval/indexing, change the value of ~mu4e-update-interval~: You will get =No such file or directory, mu4e= errors if you don't run ~$ doom sync~ after installing =mu= through your package manager. -Some times the the ~mu~ package does not include ~mu4e~ (*cough Ubuntu*). if +Some times the ~mu~ package does not include ~mu4e~ (*cough Ubuntu*). if that's the case you will need to [[https://github.com/djcb/mu][install]] it and add it to your ~load-path~ you can do that by: #+begin_src emacs-lisp diff --git a/modules/lang/latex/autoload.el b/modules/lang/latex/autoload.el index 1f58bf2e8..e9bec7a35 100644 --- a/modules/lang/latex/autoload.el +++ b/modules/lang/latex/autoload.el @@ -4,7 +4,7 @@ (defun +latex-indent-item-fn () "Indent LaTeX \"itemize\",\"enumerate\", and \"description\" environments. -\"\\item\" is indented `LaTeX-indent-level' spaces relative to the the beginning +\"\\item\" is indented `LaTeX-indent-level' spaces relative to the beginning of the environment. See `LaTeX-indent-level-item-continuation' for the indentation strategy this From 90f90fb34d36a029bcd69f203dd52887d13013a0 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 11 Mar 2024 05:28:51 -0400 Subject: [PATCH 444/523] fix(treemacs): simplify lsp-treemacs load-order dec058f fixed the load order between treemacs-nerd-icons and lsp-treemacs, but lsp-treemacs still loads so late that folks will see a theme-less Treemacs until they visit their first lsp-mode-enabled file. This ensures that won't happen. Amend: dec058fabb5e Amend: #7519 --- modules/ui/treemacs/config.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/ui/treemacs/config.el b/modules/ui/treemacs/config.el index 211e1f3bc..d232ec1b0 100644 --- a/modules/ui/treemacs/config.el +++ b/modules/ui/treemacs/config.el @@ -84,6 +84,7 @@ This must be set before `treemacs' has loaded.") :after treemacs :config (treemacs-set-scope-type 'Perspectives)) + (use-package! lsp-treemacs :when (modulep! +lsp) - :after (treemacs lsp)) + :after treemacs) From 4af536cde23b1cae50049f24546765fbe944d1f1 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 11 Mar 2024 19:14:14 -0400 Subject: [PATCH 445/523] fix(emacs-lisp): +emacs-lisp--module-at-point: wrong-number-of-arguments error --- modules/lang/emacs-lisp/autoload.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/lang/emacs-lisp/autoload.el b/modules/lang/emacs-lisp/autoload.el index 8076a5cb2..d2092fa9c 100644 --- a/modules/lang/emacs-lisp/autoload.el +++ b/modules/lang/emacs-lisp/autoload.el @@ -66,7 +66,7 @@ Intended to replace `lisp-outline-level'." (re-search-backward "\\_<:\\(?:\\sw\\|\\s_\\)+\\_>" ;; Find a keyword. doom-start 'noerror)) - (unless (looking-back "(") + (unless (looking-back "(" (bol)) (let ((kw-syntax (syntax-ppss))) (when (and (= (ppss-depth kw-syntax) doom-depth) (not (ppss-string-terminator kw-syntax)) From 5f858bb142ccd1adb283d81cc6c703e872b36092 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 11 Mar 2024 20:39:38 -0400 Subject: [PATCH 446/523] refactor(lsp): obsolete eglot-events-buffer-size Ref: https://github.com/joaotavora/eglot/commit/88c46bd4dbaa82b4af46aed9b578b121f0edfe48 --- modules/tools/lsp/+eglot.el | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/modules/tools/lsp/+eglot.el b/modules/tools/lsp/+eglot.el index 5b56b600e..5a06f2aae 100644 --- a/modules/tools/lsp/+eglot.el +++ b/modules/tools/lsp/+eglot.el @@ -16,15 +16,15 @@ (setq eglot-sync-connect 1 eglot-autoshutdown t eglot-send-changes-idle-time 0.5 - ;; NOTE This setting disable the eglot-events-buffer enabling more - ;; consistent performance on long running emacs instance. - ;; Default is 2000000 lines. After each new event the whole buffer - ;; is pretty printed which causes steady performance decrease over time. - ;; CPU is spent on pretty priting and Emacs GC is put under high pressure. - eglot-events-buffer-size 0 - ;; NOTE We disable eglot-auto-display-help-buffer because :select t in - ;; its popup rule causes eglot to steal focus too often. + ;; NOTE: We disable eglot-auto-display-help-buffer because :select t in + ;; its popup rule causes eglot to steal focus too often. eglot-auto-display-help-buffer nil) + ;; NOTE: This setting disable the eglot-events-buffer enabling more consistent + ;; performance on long running emacs instance. Default is 2000000 lines. + ;; After each new event the whole buffer is pretty printed which causes + ;; steady performance decrease over time. CPU is spent on pretty priting and + ;; Emacs GC is put under high pressure. + (cl-callf plist-put eglot-events-buffer-config :size 0) (when (and (modulep! :checkers syntax) (not (modulep! :checkers syntax +flymake))) (setq eglot-stay-out-of '(flymake))) @@ -38,7 +38,7 @@ :type-definition #'eglot-find-typeDefinition :documentation #'+eglot-lookup-documentation) - (add-to-list 'doom-debug-variables '(eglot-events-buffer-size . 2000000)) + (add-to-list 'doom-debug-variables '(eglot-events-buffer-size :size 2000000 :format full)) (defadvice! +lsp--defer-server-shutdown-a (fn &optional server) "Defer server shutdown for a few seconds. From 5cc4056abf30b0d9c5027b93a1022f8ee9e90f99 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 11 Mar 2024 20:46:02 -0400 Subject: [PATCH 447/523] fix(format): +format-with-eglot-fn: eglot detection --- modules/editor/format/autoload/format.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/editor/format/autoload/format.el b/modules/editor/format/autoload/format.el index 709855817..d0379c6a7 100644 --- a/modules/editor/format/autoload/format.el +++ b/modules/editor/format/autoload/format.el @@ -116,7 +116,7 @@ the requested feature." Does nothing if `+format-with-lsp' is nil or the active server doesn't support the requested feature." (and +format-with-lsp - (bound-and-true-p eglot-managed-mode) + (bound-and-true-p eglot--managed-mode) (pcase op ('buffer (if (eglot--server-capable :documentFormattingProvider) (always (eglot-format-buffer)))) From fec28a19e16cdd32364bf58e2c88699da514cb78 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 13 Mar 2024 00:05:26 -0400 Subject: [PATCH 448/523] fix: save-place: don't move point more than once In some contexts, like org-agenda-switch-to visiting a TODO in an agenda file, the visiting command will move the cursor after opening the file. If save-place moves the cursor yet again, the cursor will end up in an unpredictable place. --- lisp/doom-editor.el | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lisp/doom-editor.el b/lisp/doom-editor.el index e9d460adc..2df2cbb66 100644 --- a/lisp/doom-editor.el +++ b/lisp/doom-editor.el @@ -406,6 +406,11 @@ the unwritable tidbits." (unless doom-large-file-p (apply fn args))) + (defadvice! doom--inhibit-saveplace-if-point-not-at-bol-a (&rest _) + "If something else has moved point, don't try to move it again." + :before-while #'save-place-find-file-hook + (bobp)) + (defadvice! doom--dont-prettify-saveplace-cache-a (fn) "`save-place-alist-to-file' uses `pp' to prettify the contents of its cache. `pp' can be expensive for longer lists, and there's no reason to prettify cache From 39db5de5709a0e4a3b1a88bfd58d7d0075b2d728 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 13 Mar 2024 00:07:01 -0400 Subject: [PATCH 449/523] fix(org): only reveal point on save-place-after-find-file-hook Prior to this change, whenever you enter an org-mode buffer, any invisible regions around the cursor (which had been moved by save-place) would be unfolded unconditionally. There may be cases where moving the cursor immediately after visiting the file could cause errors (e.g. when yasnippet tries to wrestle control over the cursor, org-agenda-switch-to moves the cursor before switching to the buffer, etc). This change ensures the expansion *only* happens when save-place does its thing (and successfully). --- modules/lang/org/config.el | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/modules/lang/org/config.el b/modules/lang/org/config.el index 549f38c10..ffbfbb19b 100644 --- a/modules/lang/org/config.el +++ b/modules/lang/org/config.el @@ -1368,7 +1368,7 @@ between the two." #'doom-disable-show-trailing-whitespace-h ;; #'+org-enable-auto-reformat-tables-h ;; #'+org-enable-auto-update-cookies-h - #'+org-make-last-point-visible-h) + ) (add-hook! 'org-load-hook #'+org-init-org-directory-h @@ -1435,15 +1435,20 @@ between the two." :references #'+org-lookup-references-handler :documentation #'+org-lookup-documentation-handler) - ;; HACK: Somehow, users/packages still find a way to modify tab-width in - ;; org-mode. Since org-mode treats a non-standerd tab-width as an error - ;; state, I use this hook to makes it much harder to change by accident. (add-hook! 'org-mode-hook + ;; HACK: Somehow, users/packages still find a way to modify tab-width in + ;; org-mode. Since org-mode treats a non-standerd tab-width as an error + ;; state, I use this hook to makes it much harder to change by accident. (add-hook! 'after-change-major-mode-hook :local ;; The second check is necessary, in case of `org-edit-src-code' which ;; clones a buffer and changes its major-mode. (when (derived-mode-p 'org-mode) - (setq tab-width 8)))) + (setq tab-width 8))) + + ;; HACK: `save-place' can position the cursor in an invisible region. This + ;; makes it visible unless `org-inhibit-startup' or + ;; `org-inhibit-startup-visibility-stuff' is non-nil. + (add-hook 'save-place-after-find-file-hook #'+org-make-last-point-visible-h nil t)) ;; Save target buffer after archiving a node. (setq org-archive-subtree-save-file-p t) From 0073c3d70db750db94c53e67e725d11c73bff3f3 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 13 Mar 2024 00:55:46 -0400 Subject: [PATCH 450/523] docs(twitter): add deprecation notice twittering-mode is non-functional and no known alternative exists. Close: #6383 --- modules/app/twitter/README.org | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modules/app/twitter/README.org b/modules/app/twitter/README.org index 970e2da09..e4912d364 100644 --- a/modules/app/twitter/README.org +++ b/modules/app/twitter/README.org @@ -3,6 +3,11 @@ #+created: October 11, 2019 #+since: 2.0.0 +#+begin_quote +  *This module is deprecated.* Changes upstream to Twitter's API has rendered + twittering-mode non-functional, and there is no known alternative. +#+end_quote + * Description :unfold: Enjoy twitter from emacs. From 193475cd644a5c7a441da1ec468d6d59c1436672 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 13 Mar 2024 01:08:56 -0400 Subject: [PATCH 451/523] fix(lsp): s/eglot-events-buffer-size/eglot-events-buffer-config/ Amend: 5f858bb142cc --- modules/tools/lsp/+eglot.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/tools/lsp/+eglot.el b/modules/tools/lsp/+eglot.el index 5a06f2aae..9281047a4 100644 --- a/modules/tools/lsp/+eglot.el +++ b/modules/tools/lsp/+eglot.el @@ -38,7 +38,7 @@ :type-definition #'eglot-find-typeDefinition :documentation #'+eglot-lookup-documentation) - (add-to-list 'doom-debug-variables '(eglot-events-buffer-size :size 2000000 :format full)) + (add-to-list 'doom-debug-variables '(eglot-events-buffer-config :size 2000000 :format full)) (defadvice! +lsp--defer-server-shutdown-a (fn &optional server) "Defer server shutdown for a few seconds. From 5280fb2855eef82d65ae7cc5bc0ca52d06fcf2ca Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 13 Mar 2024 06:51:35 -0400 Subject: [PATCH 452/523] fix(lsp): void-variable eglot-events-buffer-config The variable was modified too early (before the package was loaded). Amend: 5f858bb142cc --- modules/tools/lsp/+eglot.el | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/modules/tools/lsp/+eglot.el b/modules/tools/lsp/+eglot.el index 9281047a4..8bf7ed20f 100644 --- a/modules/tools/lsp/+eglot.el +++ b/modules/tools/lsp/+eglot.el @@ -19,12 +19,6 @@ ;; NOTE: We disable eglot-auto-display-help-buffer because :select t in ;; its popup rule causes eglot to steal focus too often. eglot-auto-display-help-buffer nil) - ;; NOTE: This setting disable the eglot-events-buffer enabling more consistent - ;; performance on long running emacs instance. Default is 2000000 lines. - ;; After each new event the whole buffer is pretty printed which causes - ;; steady performance decrease over time. CPU is spent on pretty priting and - ;; Emacs GC is put under high pressure. - (cl-callf plist-put eglot-events-buffer-config :size 0) (when (and (modulep! :checkers syntax) (not (modulep! :checkers syntax +flymake))) (setq eglot-stay-out-of '(flymake))) @@ -38,6 +32,13 @@ :type-definition #'eglot-find-typeDefinition :documentation #'+eglot-lookup-documentation) + ;; NOTE: This setting disable the eglot-events-buffer enabling more consistent + ;; performance on long running emacs instance. Default is 2000000 lines. + ;; After each new event the whole buffer is pretty printed which causes + ;; steady performance decrease over time. CPU is spent on pretty priting and + ;; Emacs GC is put under high pressure. + (cl-callf plist-put eglot-events-buffer-config :size 0) + (add-to-list 'doom-debug-variables '(eglot-events-buffer-config :size 2000000 :format full)) (defadvice! +lsp--defer-server-shutdown-a (fn &optional server) From c20c2aa36ed0be93beca3fc63eea2724f57af6a7 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 13 Mar 2024 10:53:31 -0400 Subject: [PATCH 453/523] fix: tiny fonts in (daemon) GUI frames Due to a suppressed void-variable error, font initialization is short-circuited across daemon frames when the fonts are reloaded or changed (which is also triggered by changing themes), resulting in malformed (often tiny) fonts in GUI frames. Fix: #7730 --- lisp/doom-ui.el | 53 +++++++++++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/lisp/doom-ui.el b/lisp/doom-ui.el index 2bfdc3d8c..95d5b92ce 100644 --- a/lisp/doom-ui.el +++ b/lisp/doom-ui.el @@ -498,7 +498,7 @@ windows, switch to `doom-fallback-buffer'. Otherwise, delegate to original (cons 'custom-theme-directory (delq 'custom-theme-directory custom-theme-load-path))) -(defun doom--make-font-specs (face font) +(defun doom--make-font-specs (face font frame) (let* ((base-specs (cadr (assq 'user (get face 'theme-face)))) (base-specs (or base-specs '((t nil)))) (attrs '(:family :foundry :slant :weight :height :width)) @@ -509,36 +509,37 @@ windows, switch to `doom-fallback-buffer'. Otherwise, delegate to original (plist (copy-tree (nth 1 spec)))) ;; Alter only DISPLAY conditions matching this frame. (when (or (memq display '(t default)) - (face-spec-set-match-display display this-frame)) + (face-spec-set-match-display display frame)) (dolist (attr attrs) (setq plist (plist-put plist attr (face-attribute face attr))))) (push (list display plist) new-specs))) (nreverse new-specs))) -(defun doom-init-fonts-h (&optional reload) - "Loads `doom-font'." - (dolist (map `((default . ,doom-font) - (fixed-pitch . ,doom-font) - (fixed-pitch-serif . ,doom-serif-font) - (variable-pitch . ,doom-variable-pitch-font))) - (condition-case e - (when-let* ((face (car map)) - (font (cdr map))) - (dolist (frame (frame-list)) - (when (display-multi-font-p frame) - (set-face-attribute face frame - :width 'normal :weight 'normal - :slant 'normal :font font))) - (let ((new-specs (doom--make-font-specs face font))) - ;; Don't save to `customized-face' so it's omitted from `custom-file' - ;;(put face 'customized-face new-specs) - (custom-push-theme 'theme-face face 'user 'set new-specs) - (put face 'face-modified nil))) - ('error - (ignore-errors (doom--reset-inhibited-vars-h)) - (if (string-prefix-p "Font not available" (error-message-string e)) - (signal 'doom-font-error (list (font-get (cdr map) :family))) - (signal (car e) (cdr e)))))) +(defun doom-init-fonts-h (&optional _reload) + "Loads `doom-font', `doom-serif-font', and `doom-variable-pitch-font'." + (let ((this-frame (selected-frame))) + (dolist (map `((default . ,doom-font) + (fixed-pitch . ,doom-font) + (fixed-pitch-serif . ,doom-serif-font) + (variable-pitch . ,doom-variable-pitch-font))) + (condition-case e + (when-let* ((face (car map)) + (font (cdr map))) + (dolist (frame (frame-list)) + (when (display-multi-font-p frame) + (set-face-attribute face frame + :width 'normal :weight 'normal + :slant 'normal :font font))) + (let ((new-specs (doom--make-font-specs face font this-frame))) + ;; Don't save to `customized-face' so it's omitted from `custom-file' + ;;(put face 'customized-face new-specs) + (custom-push-theme 'theme-face face 'user 'set new-specs) + (put face 'face-modified nil))) + ('error + (ignore-errors (doom--reset-inhibited-vars-h)) + (if (string-prefix-p "Font not available" (error-message-string e)) + (signal 'doom-font-error (list (font-get (cdr map) :family))) + (signal (car e) (cdr e))))))) (when (fboundp 'set-fontset-font) (let* ((fn (doom-rpartial #'member (font-family-list))) (symbol-font (or doom-symbol-font From 85ce866953c0446294a4201e4a2a362a7fa32b6c Mon Sep 17 00:00:00 2001 From: Sean Farley Date: Wed, 29 Nov 2023 12:32:20 -0800 Subject: [PATCH 454/523] feat(macos): osx-trash is only needed by emacs < 29 --- modules/os/macos/config.el | 11 +++++++---- modules/os/macos/packages.el | 3 ++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/modules/os/macos/config.el b/modules/os/macos/config.el index 848aaf06c..06e9bea0a 100644 --- a/modules/os/macos/config.el +++ b/modules/os/macos/config.el @@ -33,17 +33,20 @@ (after! auth-source (pushnew! auth-sources 'macos-keychain-internet 'macos-keychain-generic)) +;; Delete files to trash on macOS, as an extra layer of precaution against +;; accidentally deleting wanted files. +(setq delete-by-moving-to-trash t) + ;; ;;; Packages (use-package! osx-trash + ;; DEPRECATED: Not needed on Emacs 29+. Remove when dropping 28 support. + ;; Fixed by https://debbugs.gnu.org/cgi/bugreport.cgi?bug=21340. + :when (< emacs-major-version 29) :commands osx-trash-move-file-to-trash :init - ;; Delete files to trash on macOS, as an extra layer of precaution against - ;; accidentally deleting wanted files. - (setq delete-by-moving-to-trash t) - ;; Lazy load `osx-trash' (when (not (fboundp 'system-move-file-to-trash)) (defun system-move-file-to-trash (file) diff --git a/modules/os/macos/packages.el b/modules/os/macos/packages.el index f7882e14e..c64ade649 100644 --- a/modules/os/macos/packages.el +++ b/modules/os/macos/packages.el @@ -1,5 +1,6 @@ ;; -*- no-byte-compile: t; -*- ;;; os/macos/packages.el -(package! osx-trash :pin "90f0c99206022fec646206018fcd63d9d2e57325") +(when (< emacs-major-version 29) + (package! osx-trash :pin "90f0c99206022fec646206018fcd63d9d2e57325")) (package! ns-auto-titlebar :pin "60273e764bf8d95abc40dd2fdc23af87ea9ee33b") From 6949451b00eccbf03a6e070afafca85bec5daac5 Mon Sep 17 00:00:00 2001 From: Luigi Sartor Piucco Date: Sat, 24 Sep 2022 17:33:32 -0300 Subject: [PATCH 455/523] module: add :completion corfu This commit's primary goal is allowing use of [Corfu](https://github.com/minad/corfu) as an alternative to [Company](https://github.com/company-mode/company-mode). It introduces a module under `:completion` for this purpose, plus some conditionals on other relevant modules to toggle functionality like lsp back-ends and [Cape](https://github.com/minad/cape) capfs for certain modes. Other optional or miscellaneous features include: - Corfu is enabled in the minibuffer if `completion-at-point` is bound; - Support for displaying the completion's documentation on a secondary popup; - Support for terminal display if :os tty; - Support for icons if +icons; --- modules/completion/corfu/README.org | 229 ++++++++++++++++++++++ modules/completion/corfu/autoload.el | 10 + modules/completion/corfu/config.el | 92 +++++++++ modules/completion/corfu/packages.el | 11 ++ modules/config/default/+emacs-bindings.el | 2 +- modules/config/default/+evil-bindings.el | 47 ++++- modules/config/default/config.el | 33 ++++ modules/tools/lsp/+lsp.el | 5 +- templates/init.example.el | 1 + 9 files changed, 422 insertions(+), 8 deletions(-) create mode 100644 modules/completion/corfu/README.org create mode 100644 modules/completion/corfu/autoload.el create mode 100644 modules/completion/corfu/config.el create mode 100644 modules/completion/corfu/packages.el diff --git a/modules/completion/corfu/README.org b/modules/completion/corfu/README.org new file mode 100644 index 000000000..82b910f43 --- /dev/null +++ b/modules/completion/corfu/README.org @@ -0,0 +1,229 @@ +#+title: :completion corfu +#+subtitle: Complete with cap(f), cape and a flying feather +#+created: September 9, 2022 +#+since: 3.0.0 (#7002) + +* Description :unfold: +This module provides code completion, powered by [[doom-package:corfu]]. + +It is recommended to enable either this or [[doom-module::completion company]] in +case you desire pre-configured auto-completion. Corfu is much lighter weight and +focused, plus it's built on native Emacs functionality, whereas Company is heavy +and highly non-native, but has some extra features and more maturity. + +If you choose Corfu, we also highly recomend reading [[https://github.com/minad/corfu][its README]] and [[https://github.com/minad/cape][cape's +README]], as the backend is very configurable and provides many power-user +utilities for fine-tuning. Only some of common behaviors are documented here. + +** Maintainers +- [[doom-user:][@LuigiPiucco]] + +[[doom-contrib-maintainer:][Become a maintainer?]] + +** Module flags +- +icons :: + Display icons beside completion suggestions. +- +orderless :: + Pull in [[doom-package:orderless]] if necessary and apply multi-component + completion (still needed if [[doom-module::completion vertico]] is active). + +** Packages +- [[doom-package:corfu]] +- [[doom-package:cape]] +- [[doom-package:nerd-icons-corfu]] if [[doom-module::completion corfu +icons]] +- [[doom-package:orderless]] if [[doom-module::completion corfu +orderless]] +- [[doom-package:corfu-terminal]] if [[doom-module::os tty]] + +** Hacks +/No hacks documented for this module./ + +** TODO Changelog +# This section will be machine generated. Don't edit it by hand. +/This module does not have a changelog yet./ + +* Installation +Enable this module in your ~doom!~ block. + +This module has no direct requirements, but some languages may have their own +requirements to fulfill before you get code completion in them (and some +languages may lack code completion support altogether). Run ~$ doom doctor~ to +find out if you're missing any dependencies. Note that Corfu may have support +for completions in languages that have no development intelligence, since it +supports generic, context insensitive candidates such as file names or recurring +words. + +* TODO Usage +#+begin_quote + 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] +#+end_quote + +By default, completion gets triggered after typing 2 non-space consecutive +characters, by means of [[kbd:][C-SPC]] at any moment or [[kbd:][TAB]] on a line with proper +indentation. Many styles of completion are documented below, which can be +composed to suit the user. The following keybindings are generally available: + +| Keybind | Description | +|---------+--------------------------------------------| +| [[kbd:][C-n]] | Go to next candidate | +| [[kbd:][C-p]] | Go to previous candidate | +| [[kbd:][C-S-n]] | Go to next doc line | +| [[kbd:][C-S-p]] | Go to previous doc line | +| [[kbd:][C-S-s]] | Export to minibuffer | +| [[kbd:][TAB]] | (when not completing) Indent or complete | +| [[kbd:][C-SPC]] | (when not completing) Complete | +| [[kbd:][C-u]] | (evil) Go to next candidate page | +| [[kbd:][C-d]] | (evil) Go to previous candidate page | +| [[kbd:][C-h]] | (evil) Toggle documentation (if available) | +| [[kbd:][M-t]] | (emacs) (when not completing) Complete | + +Bindings in the following sections are additive, and unless otherwise noted, are +enabled by default with configurable behavior. Additionally, for users of evil, +[[kdb:][C-SPC]] is smart regarding your state. In normal-like states, enter insert then +start corfu; in visual-like states, perform [[help:evil-change][evil-change]] (which leaves you in +insert state) then start corfu; in insert-like states, start corfu immediatelly. + +** Commit preview on type +When the completion popup is visible, by default the current candidate is +previewed into the buffer, and further input commits that candidate as previewed +(note it does not perform candidate exit actions, such as expanding snippets). + +The feature is in line with other common editors, but if you prefer the preview +to be only visual or for there to be no preview, configure +[[var:corfu-preview-current]]. + +#+begin_src emacs-lisp +;; Non-inserting preview +(setq corfu-preview-current t) +;; No preview +(setq corfu-preview-current nil) +#+end_src + +** Commit on [[kbd:][RET]] with pass-through +A lot of people like to use [[kbd:][RET]] to commit, so here we bind it to Corfu's +insertion function. Note that Corfu allows "no candidate" to be selected, and in +that case, we have a custom binding to quit completion and pass-through. To make +it less obtrusive by default, the popup starts in this unselected state. See +[[var:corfu-preselect]] to alter the initial behavior; it can start with the first +one selected, for instance. Then, you have to move one candidate backwards to +pass-through The exact action of [[kbd:][RET]] can be changed via +[[var:+corfu-want-ret-to-confirm]]. + +| Keybind | Description | +|---------+-----------------------| +| [[kbd:][RET]] | Insert candidate DWIM | + +** Cycle directionally +If you'd rather think in directions rather than next/previous, arrow keys and vi +movements to control the selection and documentation view are bound by default. +You may unbind them by setting to nil, see ~map!~'s documentation. + +| Keybind | Description | +|----------+---------------------------------| +| [[kbd:][]] | Go to next candidate | +| [[kbd:][]] | Go to previous candidate | +| [[kbd:][C-j]] | (evil) Go to next candidate | +| [[kbd:][C-k]] | (evil) Go to previous candidate | +| [[kbd:][C-]] | Go to next doc line | +| [[kbd:][C-]] | Go to previous doc line | +| [[kbd:][C-S-j]] | (evil) Go to next doc line | +| [[kbd:][C-S-k]] | (evil) Go to previous doc line | + +** Cycle with [[kbd:][TAB]] +[[kbd:][TAB]]-based cycling alternatives are also bound according to the table below: + +| Keybind | Description | +|---------+--------------------------| +| [[kbd:][TAB]] | Go to next candidate | +| [[kbd:][S-TAB]] | Go to previous candidate | + +** Searching with multiple keywords (~+orderless~) +If the [[doom-module::completion corfu +orderless]] flag is enabled, users can +perform code completion with multiple search keywords by use of space as the +separator. More information can be found [[https://github.com/oantolin/orderless#company][here]]. Pressing [[kdb:][C-SPC]] again while +completing inserts a space as separator. This allows searching with +space-separated terms; each piece will match individually and in any order, with +smart casing. Pressing just [[kbd:][SPC]] acts as normal and quits completion, so that +when typing sentences it doesn't try to complete the whole sentence instead of +just the word. + +| Keybind | Description | +|---------+-------------------------------------------------| +| [[kbd:][C-SPC]] | (evil) (when completing) Insert separator DWIM | +| [[kbd:][M-SPC]] | (emacs) (when completing) Insert separator DWIM | +| [[kbd:][SPC]] | (when completing) Quit autocompletion | +| [[kbd:][SPC]] | (when completing with separators) Self-insert | + +** Exporting to the minibuffer (requires [[doom-module::completion vertico]]) +When using the [[doom-module::completion vertico]] module, which pulls in the +[[doom-package:consult]] package, the entries shown in the completion popup can be +exported to a consult minibuffer, giving access to all the manipulations the +Vertico suite allows. For instance, one could use this to export with +[[doom-package:embark]] via [[kbd:][C-c C-l]] and get a buffer with all candidates. + +* Configuration +A few variables may be set to change behavior of this module: + +- [[var:completion-at-point-functions]] :: + This is not a module/package variable, but a builtin Emacs one. Even so, it's + very important to how Corfu works, so we document it here. It contains a list + of functions that are called in turn to generate completion candidates. The + regular (non-lexical) value should contain few entries and they should + generally be context aware, so as to predict what you need. Additional + functions can be added as you get into more and more specific contexts. Also, + there may be cases where you know beforehand the kind of candidate needed, and + want to enable only that one. For this, the variable may be lexically bound to + the correct value, or you may call the CAPF interactively if a single function + is all you need. +- [[var:corfu-auto-delay]] :: + Number of seconds till completion occurs automatically. Defaults to 0.1. +- [[var:corfu-auto-prefix]] :: + Number of characters till auto-completion starts to happen. Defaults to 2. +- [[var:corfu-on-exact-match]] :: + Configures behavior for exact matches. +- [[var:corfu-preselect]] :: + Configures startup selection, choosing between the first candidate or the + prompt. +- [[var:corfu-preview-current]] :: + Configures current candidate preview. +- [[var:+corfu-want-ret-to-confirm]] :: + Enables commiting with [[RET]] when the popup is visible. Default is ~t~, may be set to + ~'minibuffer~ if you want to commit both the completion and the minibuffer when + active. When ~nil~, it is always passed-through. + +** Adding CAPFs to a mode +To add other CAPFs on a mode-per-mode basis, put either of the following in your +~config.el~: + +#+begin_src emacs-lisp +(add-hook! some-mode (add-to-list 'completion-at-point-functions #'some-capf)) +;; OR, but note the different call signature +(add-hook 'some-mode-hook (lambda () (add-to-list 'completion-at-point-functions #'some-capf))) +#+end_src + +~DEPTH~ above is an integer between -100, 100, and defaults to 0 if nil. Also +see ~add-hook!~'s documentation for additional ways to call it. ~add-hook~ only +accepts the quoted arguments form above. + +** Adding CAPFs to a key +To add other CAPFs to keys, adapt the snippet below into your ~config.el~: + +#+begin_src emacs-lisp +(map! :map some-mode-map + "C-x e" #'cape-emoji) +#+end_src + +It's okay to add to the mode directly because ~completion-at-point~ works +regardless of Corfu (the latter is an enhanced UI for the former). Just note not +all CAPFs are interactive to be called this way, in which case you can use +[[doom-package:cape]]'s adapter to enable this. + +* Troubleshooting +[[doom-report:][Report an issue?]] + +* Frequently asked questions +/This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]] + +* TODO Appendix +#+begin_quote + 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] +#+end_quote diff --git a/modules/completion/corfu/autoload.el b/modules/completion/corfu/autoload.el new file mode 100644 index 000000000..c34cb8232 --- /dev/null +++ b/modules/completion/corfu/autoload.el @@ -0,0 +1,10 @@ +;;; completion/corfu/autoload.el -*- lexical-binding: t; -*- + +;;;###autoload +(defun +corfu-move-to-minibuffer () + ;; Taken from corfu's README. + ;; TODO: extend this to other completion front-ends. + (interactive) + (let ((completion-extra-properties corfu--extra) + (completion-cycle-threshold completion-cycling)) + (apply #'consult-completion-in-region completion-in-region--data))) diff --git a/modules/completion/corfu/config.el b/modules/completion/corfu/config.el new file mode 100644 index 000000000..997af183d --- /dev/null +++ b/modules/completion/corfu/config.el @@ -0,0 +1,92 @@ +;;; completion/corfu/config.el -*- lexical-binding: t; -*- + +(defvar +corfu-want-ret-to-confirm t + "Configure how the user expects RET to behave. +Possible values are: +- t (default): Insert candidate if one is selected, pass-through otherwise; +- `minibuffer': Insert candidate if one is selected, pass-through otherwise, + and immediatelly exit if in the minibuffer; +- nil: Pass-through without inserting.") + +;; +;;; Packages +(use-package! corfu + :hook (doom-first-input . global-corfu-mode) + :init + (add-hook! 'minibuffer-setup-hook + (defun +corfu-enable-in-minibuffer () + "Enable Corfu in the minibuffer if `completion-at-point' is bound." + (when (where-is-internal #'completion-at-point (list (current-local-map))) + (setq-local corfu-echo-delay nil) + (corfu-mode +1)))) + :config + (setq corfu-auto t + corfu-auto-delay 0.1 + corfu-auto-prefix 2 + global-corfu-modes '((not + erc-mode + circe-mode + help-mode + gud-mode + vterm-mode) + t) + corfu-cycle t + corfu-separator (when (modulep! +orderless) ?\s) + corfu-preselect 'prompt + corfu-count 16 + corfu-max-width 120 + corfu-preview-current 'insert + corfu-on-exact-match nil + corfu-quit-at-boundary (if (modulep! +orderless) 'separator t) + corfu-quit-no-match (if (modulep! +orderless) 'separator t) + tab-always-indent 'complete) + (add-to-list 'completion-category-overrides `(lsp-capf (styles ,@completion-styles))) + (add-to-list 'corfu-auto-commands #'lispy-colon) + (add-to-list 'corfu-continue-commands #'+corfu-move-to-minibuffer) + (add-hook 'evil-insert-state-exit-hook #'corfu-quit)) + +(use-package! cape + :defer t + :init + (add-hook! prog-mode + (defun +corfu-add-cape-file-h () + (add-to-list 'completion-at-point-functions #'cape-file))) + (add-hook! (org-mode markdown-mode) + (defun +corfu-add-cape-elisp-block-h () + (add-hook 'completion-at-point-functions #'cape-elisp-block 0 t))) + + ;; Make these capfs composable. + (advice-add #'lsp-completion-at-point :around #'cape-wrap-noninterruptible) + (advice-add #'lsp-completion-at-point :around #'cape-wrap-nonexclusive) + (advice-add #'comint-completion-at-point :around #'cape-wrap-nonexclusive) + (advice-add #'eglot-completion-at-point :around #'cape-wrap-nonexclusive) + (advice-add #'pcomplete-completions-at-point :around #'cape-wrap-nonexclusive) + ;; From the `cape' readme. Without this, Eshell autocompletion is broken on + ;; Emacs28. + (when (< emacs-major-version 29) + (advice-add 'pcomplete-completions-at-point :around #'cape-wrap-silent) + (advice-add 'pcomplete-completions-at-point :around #'cape-wrap-purify))) + +(use-package! corfu-terminal + :when (not (display-graphic-p)) + :hook ((corfu-mode . corfu-terminal-mode))) + +;; +;;; Extensions + +(use-package! corfu-history + :hook ((corfu-mode . corfu-history-mode)) + :config + (after! savehist (add-to-list 'savehist-additional-variables 'corfu-history))) + +(use-package! corfu-popupinfo + :hook ((corfu-mode . corfu-popupinfo-mode)) + :config + (setq corfu-popupinfo-delay '(0.5 . 1.0))) + +(use-package! nerd-icons-corfu + :when (modulep! +icons) + :defer t + :init + (after! corfu + (add-to-list 'corfu-margin-formatters #'nerd-icons-corfu-formatter))) diff --git a/modules/completion/corfu/packages.el b/modules/completion/corfu/packages.el new file mode 100644 index 000000000..fba829248 --- /dev/null +++ b/modules/completion/corfu/packages.el @@ -0,0 +1,11 @@ +;; -*- no-byte-compile: t; -*- +;;; completion/corfu/packages.el + +(package! corfu :pin "c1e7b6190b00158e67347b4db0a8f7964e5d2f8b") +(package! cape :pin "a397a0c92de38277b7f835fa999fac400a764908") +(when (modulep! +icons) + (package! nerd-icons-corfu :pin "7077bb76fefc15aed967476406a19dc5c2500b3c")) +(when (modulep! +orderless) + (package! orderless :pin "b24748093b00b37c3a572c4909f61c08fa27504f")) +(when (modulep! :os tty) + (package! corfu-terminal :pin "501548c3d51f926c687e8cd838c5865ec45d03cc")) diff --git a/modules/config/default/+emacs-bindings.el b/modules/config/default/+emacs-bindings.el index 7aa4dfc41..7c63e68e2 100644 --- a/modules/config/default/+emacs-bindings.el +++ b/modules/config/default/+emacs-bindings.el @@ -511,7 +511,7 @@ "C-x C-b" #'ibuffer "C-x K" #'doom/kill-this-buffer-in-all-windows - ;;; company-mode + ;;; completion (in-buffer) (:when (modulep! :completion company) "C-;" #'+company/complete (:after company diff --git a/modules/config/default/+evil-bindings.el b/modules/config/default/+evil-bindings.el index fd2487410..b07109ebe 100644 --- a/modules/config/default/+evil-bindings.el +++ b/modules/config/default/+evil-bindings.el @@ -43,7 +43,10 @@ #'yas-expand (and (bound-and-true-p company-mode) (modulep! :completion company +tng)) - #'company-indent-or-complete-common) + #'company-indent-or-complete-common + (and (bound-and-true-p corfu-mode) + (modulep! :completion corfu)) + #'completion-at-point) :m [tab] (cmds! (and (modulep! :editor snippets) (evil-visual-state-p) (or (eq evil-visual-selection 'line) @@ -127,7 +130,7 @@ ;; ;;; Module keybinds -;;; :completion +;;; :completion (in-buffer) (map! (:when (modulep! :completion company) :i "C-@" (cmds! (not (minibufferp)) #'company-complete-common) :i "C-SPC" (cmds! (not (minibufferp)) #'company-complete-common) @@ -156,7 +159,38 @@ "C-s" #'company-filter-candidates [escape] #'company-search-abort))) - (:when (modulep! :completion ivy) + (:when (modulep! :completion corfu) + (:after corfu + (:map corfu-mode-map + :i "C-SPC" #'completion-at-point + :n "C-SPC" (cmd! (call-interactively #'evil-insert-state) + (call-interactively #'completion-at-point)) + :v "C-SPC" (cmd! (call-interactively #'evil-change) + (call-interactively #'completion-at-point))) + (:map corfu-map + :i "C-SPC" #'corfu-insert-separator + "C-k" #'corfu-previous + "C-j" #'corfu-next + "C-u" (cmd! (let (corfu-cycle) + (funcall-interactively #'corfu-next (- corfu-count)))) + "C-d" (cmd! (let (corfu-cycle) + (funcall-interactively #'corfu-next corfu-count))))) + (:after corfu-popupinfo + :map corfu-popupinfo-map + "C-h" #'corfu-popupinfo-toggle + ;; Reversed because popupinfo assumes opposite of what feels intuitive + ;; with evil. + "C-S-k" #'corfu-popupinfo-scroll-down + "C-S-j" #'corfu-popupinfo-scroll-up + "C-" #'corfu-popupinfo-scroll-down + "C-" #'corfu-popupinfo-scroll-up + "C-S-p" #'corfu-popupinfo-scroll-down + "C-S-n" #'corfu-popupinfo-scroll-up + "C-S-u" (cmd!! #'corfu-popupinfo-scroll-down nil corfu-popupinfo-min-height) + "C-S-d" (cmd!! #'corfu-popupinfo-scroll-up nil corfu-popupinfo-min-height)))) + +;;; :completion (separate) +(map! (:when (modulep! :completion ivy) (:after ivy :map ivy-minibuffer-map "C-SPC" #'ivy-call-and-recenter ; preview file @@ -169,7 +203,8 @@ [C-return] #'+ivy/git-grep-other-window-action)) (:when (modulep! :completion helm) - (:after helm :map helm-map + (:after helm + :map helm-map [remap next-line] #'helm-next-line [remap previous-line] #'helm-previous-line [left] #'left-char @@ -387,9 +422,9 @@ :desc "Incoming call hierarchy" "y" #'lsp-treemacs-call-hierarchy :desc "Outgoing call hierarchy" "Y" (cmd!! #'lsp-treemacs-call-hierarchy t) :desc "References tree" "R" (cmd!! #'lsp-treemacs-references t) - :desc "Symbols" "S" #'lsp-treemacs-symbols) + :desc "Symbols" "S" #'lsp-treemacs-symbols :desc "LSP" "l" #'+default/lsp-command-map - :desc "LSP Rename" "r" #'lsp-rename) + :desc "LSP Rename" "r" #'lsp-rename)) (:when (modulep! :tools lsp +eglot) :desc "LSP Execute code action" "a" #'eglot-code-actions :desc "LSP Rename" "r" #'eglot-rename diff --git a/modules/config/default/config.el b/modules/config/default/config.el index e67adf1e3..8316284d8 100644 --- a/modules/config/default/config.el +++ b/modules/config/default/config.el @@ -458,6 +458,39 @@ Continues comments if executed from a commented line. Consults '(evil-ex-completion-map))) "C-s" command)) + (map! :when (modulep! :completion corfu) + :after corfu + (:map corfu-map + "C-S-s" #'+corfu-move-to-minibuffer + "C-p" #'corfu-previous + "C-n" #'corfu-next + "S-TAB" #'corfu-previous + [backtab] #'corfu-previous + "TAB" #'corfu-next + [tab] #'corfu-next)) + (let ((cmds-ret + `(menu-item "Insert completion DWIM" corfu-insert + :filter ,(lambda (cmd) + (interactive) + (cond ((null +corfu-want-ret-to-confirm) + (corfu-quit) + nil) + ((eq +corfu-want-ret-to-confirm 'minibuffer) + (funcall-interactively cmd) + nil) + ((and (or (not (minibufferp nil t)) + (eq +corfu-want-ret-to-confirm t)) + (>= corfu--index 0)) + cmd) + ((or (not (minibufferp nil t)) + (eq +corfu-want-ret-to-confirm t)) + nil) + (t cmd)))))) + (map! :when (modulep! :completion corfu) + :map corfu-map + :gi [return] cmds-ret + :gi "RET" cmds-ret)) + ;; Smarter C-a/C-e for both Emacs and Evil. C-a will jump to indentation. ;; Pressing it again will send you to the true bol. Same goes for C-e, except ;; it will ignore comments+trailing whitespace before jumping to eol. diff --git a/modules/tools/lsp/+lsp.el b/modules/tools/lsp/+lsp.el index 5ae4a417d..96361aae4 100644 --- a/modules/tools/lsp/+lsp.el +++ b/modules/tools/lsp/+lsp.el @@ -138,8 +138,11 @@ server getting expensively restarted when reverting buffers." " ")) (add-to-list 'global-mode-string '(t (:eval lsp-modeline-icon)) - 'append)))))) + 'append))))) + (when (modulep! :completion corfu) + (setq lsp-completion-provider :none) + (add-hook 'lsp-mode-hook #'lsp-completion-mode))) (use-package! lsp-ui :hook (lsp-mode . lsp-ui-mode) diff --git a/templates/init.example.el b/templates/init.example.el index 7a5e4e6c7..cef45ecb3 100644 --- a/templates/init.example.el +++ b/templates/init.example.el @@ -22,6 +22,7 @@ :completion company ; the ultimate code completion backend + ;;(corfu +orderless) ; complete with cap(f), cape and a flying feather! ;;helm ; the *other* search engine for love and life ;;ido ; the other *other* search engine... ;;ivy ; a search engine for love and life From 968a8975308c772d0298021884758792eab641e8 Mon Sep 17 00:00:00 2001 From: Luigi Sartor Piucco Date: Wed, 26 Jul 2023 19:57:21 -0300 Subject: [PATCH 456/523] feat(corfu): add snippets Yasnippet is now properly integrated! A previosly-unset default has now been given to `corfu-on-exact-match`. With snippets, it causes immediate expansion upon single match by default, so we set it to nil and recommend against changing it in the README. --- modules/completion/corfu/README.org | 3 ++- modules/completion/corfu/config.el | 8 ++++++++ modules/completion/corfu/packages.el | 2 ++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/modules/completion/corfu/README.org b/modules/completion/corfu/README.org index 82b910f43..74c8043d5 100644 --- a/modules/completion/corfu/README.org +++ b/modules/completion/corfu/README.org @@ -33,6 +33,7 @@ utilities for fine-tuning. Only some of common behaviors are documented here. - [[doom-package:nerd-icons-corfu]] if [[doom-module::completion corfu +icons]] - [[doom-package:orderless]] if [[doom-module::completion corfu +orderless]] - [[doom-package:corfu-terminal]] if [[doom-module::os tty]] +- [[doom-package:yasnippet-capf]] if [[doom-module::editor snippets]] ** Hacks /No hacks documented for this module./ @@ -50,7 +51,7 @@ languages may lack code completion support altogether). Run ~$ doom doctor~ to find out if you're missing any dependencies. Note that Corfu may have support for completions in languages that have no development intelligence, since it supports generic, context insensitive candidates such as file names or recurring -words. +words. Snippets may also appear in the candidate list if available. * TODO Usage #+begin_quote diff --git a/modules/completion/corfu/config.el b/modules/completion/corfu/config.el index 997af183d..6ad3fe349 100644 --- a/modules/completion/corfu/config.el +++ b/modules/completion/corfu/config.el @@ -67,6 +67,14 @@ Possible values are: (advice-add 'pcomplete-completions-at-point :around #'cape-wrap-silent) (advice-add 'pcomplete-completions-at-point :around #'cape-wrap-purify))) +(use-package! yasnippet-capf + :when (modulep! :editor snippets) + :defer t + :init + (add-hook! 'yas-minor-mode-hook + (defun +corfu-add-yasnippet-capf-h () + (add-hook 'completion-at-point-functions #'yasnippet-capf 30 t)))) + (use-package! corfu-terminal :when (not (display-graphic-p)) :hook ((corfu-mode . corfu-terminal-mode))) diff --git a/modules/completion/corfu/packages.el b/modules/completion/corfu/packages.el index fba829248..cf45a992f 100644 --- a/modules/completion/corfu/packages.el +++ b/modules/completion/corfu/packages.el @@ -9,3 +9,5 @@ (package! orderless :pin "b24748093b00b37c3a572c4909f61c08fa27504f")) (when (modulep! :os tty) (package! corfu-terminal :pin "501548c3d51f926c687e8cd838c5865ec45d03cc")) +(when (modulep! :editor snippets) + (package! yasnippet-capf :pin "9043f8275176a8f198ce8e81fadab1870fa165bb")) From 365a95de76e14939b7296c636192319a675844cf Mon Sep 17 00:00:00 2001 From: StrawberryTea Date: Mon, 30 Oct 2023 14:36:19 -0400 Subject: [PATCH 457/523] feat(corfu): more CAPFs and ergonomy changes Add CAPFs from cape: - `cape-dabbrev`; - `cape-elisp-block`; - `cape-file`; Fix some CAPFs via cape: - Make non-exclusive, purified and silent `pcomplete-completions-at-point`; - Make non-exclusive and non-interruptable `lsp-completion-at-point`; - Make non-exclusive `eglot-completion-at-point`; - Make non-exclusive `comint-completion-at-point`; Fix and improve keybindings: - Smart `DEL`; Add depth to CAPFs, allowing ordering to be adjustable. --- modules/completion/corfu/README.org | 21 +++++++++++++++++++-- modules/completion/corfu/config.el | 22 +++++++++++++++++++++- modules/config/default/config.el | 10 +++++++++- 3 files changed, 49 insertions(+), 4 deletions(-) diff --git a/modules/completion/corfu/README.org b/modules/completion/corfu/README.org index 74c8043d5..252423567 100644 --- a/modules/completion/corfu/README.org +++ b/modules/completion/corfu/README.org @@ -26,6 +26,9 @@ utilities for fine-tuning. Only some of common behaviors are documented here. - +orderless :: Pull in [[doom-package:orderless]] if necessary and apply multi-component completion (still needed if [[doom-module::completion vertico]] is active). +- +dabbrev :: + Enable and configure [[doom-package:dabbrev]] as a close-to-universal CAPF + fallback. ** Packages - [[doom-package:corfu]] @@ -190,15 +193,18 @@ A few variables may be set to change behavior of this module: Enables commiting with [[RET]] when the popup is visible. Default is ~t~, may be set to ~'minibuffer~ if you want to commit both the completion and the minibuffer when active. When ~nil~, it is always passed-through. +- [[var:+corfu-buffer-scanning-size-limit]] :: + Sets the maximum buffer size to be scanned by ~cape-dabbrev~. Defaults to 1 MB. + Set this if you are having performance problems using the CAPF. ** Adding CAPFs to a mode To add other CAPFs on a mode-per-mode basis, put either of the following in your ~config.el~: #+begin_src emacs-lisp -(add-hook! some-mode (add-to-list 'completion-at-point-functions #'some-capf)) +(add-hook! some-mode (add-hook 'completion-at-point-functions #'some-capf depth t)) ;; OR, but note the different call signature -(add-hook 'some-mode-hook (lambda () (add-to-list 'completion-at-point-functions #'some-capf))) +(add-hook 'some-mode-hook (lambda () (add-hook 'completion-at-point-functions #'some-capf depth t))) #+end_src ~DEPTH~ above is an integer between -100, 100, and defaults to 0 if nil. Also @@ -221,6 +227,17 @@ all CAPFs are interactive to be called this way, in which case you can use * Troubleshooting [[doom-report:][Report an issue?]] +If you have performance issues with ~cape-dabbrev~, the first thing I recommend +doing is to look at the list of buffers Dabbrev is scanning: + +#+begin_src emacs-lisp +(dabbrev--select-buffers) ; => (# #> # ...) +(length (dabbrev--select-buffers)) ; => 37 +#+end_src + +... and modify ~dabbrev-ignored-buffer-regexps~ or ~dabbrev-ignored-buffer-modes~ +accordingly. + * Frequently asked questions /This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]] diff --git a/modules/completion/corfu/config.el b/modules/completion/corfu/config.el index 6ad3fe349..ae2e8409a 100644 --- a/modules/completion/corfu/config.el +++ b/modules/completion/corfu/config.el @@ -8,6 +8,9 @@ Possible values are: and immediatelly exit if in the minibuffer; - nil: Pass-through without inserting.") +(defvar +corfu-buffer-scanning-size-limit (* 1 1024 1024) ; 1 MB + "Size limit for a buffer to be scanned by `cape-dabbrev'.") + ;; ;;; Packages (use-package! corfu @@ -50,10 +53,27 @@ Possible values are: :init (add-hook! prog-mode (defun +corfu-add-cape-file-h () - (add-to-list 'completion-at-point-functions #'cape-file))) + (add-hook 'completion-at-point-functions #'cape-file -10 t))) (add-hook! (org-mode markdown-mode) (defun +corfu-add-cape-elisp-block-h () (add-hook 'completion-at-point-functions #'cape-elisp-block 0 t))) + ;; Enable Dabbrev completion basically everywhere as a fallback. + (when (modulep! +dabbrev) + (setq cape-dabbrev-check-other-buffers t) + ;; Set up `cape-dabbrev' options. + (defun +dabbrev-friend-buffer-p (other-buffer) + (< (buffer-size other-buffer) +corfu-buffer-scanning-size-limit)) + (add-hook! (prog-mode text-mode conf-mode comint-mode minibuffer-setup + eshell-mode) + (defun +corfu-add-cape-dabbrev-h () + (add-hook 'completion-at-point-functions #'cape-dabbrev 20 t))) + (after! dabbrev + (setq dabbrev-friend-buffer-function #'+dabbrev-friend-buffer-p + dabbrev-ignored-buffer-regexps + '("^ " + "\\(TAGS\\|tags\\|ETAGS\\|etags\\|GTAGS\\|GRTAGS\\|GPATH\\)\\(<[0-9]+>\\)?") + dabbrev-upcase-means-case-search t) + (add-to-list 'dabbrev-ignored-buffer-modes 'pdf-view-mode))) ;; Make these capfs composable. (advice-add #'lsp-completion-at-point :around #'cape-wrap-noninterruptible) diff --git a/modules/config/default/config.el b/modules/config/default/config.el index 8316284d8..e3becc12a 100644 --- a/modules/config/default/config.el +++ b/modules/config/default/config.el @@ -468,7 +468,13 @@ Continues comments if executed from a commented line. Consults [backtab] #'corfu-previous "TAB" #'corfu-next [tab] #'corfu-next)) - (let ((cmds-ret + (let ((cmds-del + `(menu-item "Reset completion" corfu-reset + :filter ,(lambda (cmd) + (when (and (>= corfu--index 0) + (eq corfu-preview-current 'insert)) + cmd)))) + (cmds-ret `(menu-item "Insert completion DWIM" corfu-insert :filter ,(lambda (cmd) (interactive) @@ -488,6 +494,8 @@ Continues comments if executed from a commented line. Consults (t cmd)))))) (map! :when (modulep! :completion corfu) :map corfu-map + [backspace] cmds-del + "DEL" cmds-del :gi [return] cmds-ret :gi "RET" cmds-ret)) From 0588b42b46265450128e438cef82f7906d8722e5 Mon Sep 17 00:00:00 2001 From: Luigi Sartor Piucco Date: Sun, 29 Oct 2023 14:31:13 -0300 Subject: [PATCH 458/523] feat(corfu,vertico): use equal orderless config This removes the old `&` separator for Vertico (does anyone use that instead of just space?) in favor of escapable space and unifies orderless config with Corfu. Also implements smart separator insert/escape/reset on `C-SPC` Co-authored-by: Liam Hupfer --- modules/completion/corfu/README.org | 5 ++++- modules/completion/corfu/autoload.el | 12 ++++++++++++ modules/completion/corfu/config.el | 13 +++++++++++++ modules/completion/vertico/config.el | 2 +- modules/config/default/config.el | 1 + 5 files changed, 31 insertions(+), 2 deletions(-) diff --git a/modules/completion/corfu/README.org b/modules/completion/corfu/README.org index 252423567..9f0f7093c 100644 --- a/modules/completion/corfu/README.org +++ b/modules/completion/corfu/README.org @@ -148,7 +148,10 @@ completing inserts a space as separator. This allows searching with space-separated terms; each piece will match individually and in any order, with smart casing. Pressing just [[kbd:][SPC]] acts as normal and quits completion, so that when typing sentences it doesn't try to complete the whole sentence instead of -just the word. +just the word. Pressing [[kdb:][C-SPC]] with point after a separator escapes it with a +backslash, including the space in the search term, and pressing it with an +already escaped separator before point deletes it. Thus, you can cycle back if +you accidentaly press more than needed. | Keybind | Description | |---------+-------------------------------------------------| diff --git a/modules/completion/corfu/autoload.el b/modules/completion/corfu/autoload.el index c34cb8232..5003d3b7c 100644 --- a/modules/completion/corfu/autoload.el +++ b/modules/completion/corfu/autoload.el @@ -8,3 +8,15 @@ (let ((completion-extra-properties corfu--extra) (completion-cycle-threshold completion-cycling)) (apply #'consult-completion-in-region completion-in-region--data))) + +;;;###autoload +(defun +corfu-smart-sep-toggle-escape () + "Insert `corfu-separator' or toggle escape if it's already there." + (interactive) + (cond ((and (char-equal (char-before) corfu-separator) + (char-equal (char-before (1- (point))) ?\\)) + (save-excursion (delete-char -2))) + ((char-equal (char-before) corfu-separator) + (save-excursion (backward-char 1) + (insert-char ?\\))) + (t (call-interactively #'corfu-insert-separator)))) diff --git a/modules/completion/corfu/config.el b/modules/completion/corfu/config.el index ae2e8409a..bfa302546 100644 --- a/modules/completion/corfu/config.el +++ b/modules/completion/corfu/config.el @@ -46,6 +46,7 @@ Possible values are: (add-to-list 'completion-category-overrides `(lsp-capf (styles ,@completion-styles))) (add-to-list 'corfu-auto-commands #'lispy-colon) (add-to-list 'corfu-continue-commands #'+corfu-move-to-minibuffer) + (add-to-list 'corfu-continue-commands #'+corfu-smart-sep-toggle-escape) (add-hook 'evil-insert-state-exit-hook #'corfu-quit)) (use-package! cape @@ -118,3 +119,15 @@ Possible values are: :init (after! corfu (add-to-list 'corfu-margin-formatters #'nerd-icons-corfu-formatter))) + +;; If vertico is not enabled, orderless will be installed but not configured. +;; That may break smart separator behavior, so we conditionally configure it. +(use-package! orderless + :when (and (not (modulep! :completion vertico)) + (modulep! +orderless)) + :config + (setq completion-styles '(orderless basic) + completion-category-defaults nil + completion-category-overrides '((file (styles orderless partial-completion))) + orderless-component-separator #'orderless-escapable-split-on-space) + (set-face-attribute 'completions-first-difference nil :inherit nil)) diff --git a/modules/completion/vertico/config.el b/modules/completion/vertico/config.el index 0d52ab950..3f2bf3f30 100644 --- a/modules/completion/vertico/config.el +++ b/modules/completion/vertico/config.el @@ -107,7 +107,7 @@ orderless." ;; find-file etc. completion-category-overrides '((file (styles +vertico-basic-remote orderless partial-completion))) orderless-style-dispatchers '(+vertico-orderless-dispatch) - orderless-component-separator "[ &]") + orderless-component-separator #'orderless-escapable-split-on-space) ;; ...otherwise find-file gets different highlighting than other commands (set-face-attribute 'completions-first-difference nil :inherit nil)) diff --git a/modules/config/default/config.el b/modules/config/default/config.el index e3becc12a..21aa7268d 100644 --- a/modules/config/default/config.el +++ b/modules/config/default/config.el @@ -461,6 +461,7 @@ Continues comments if executed from a commented line. Consults (map! :when (modulep! :completion corfu) :after corfu (:map corfu-map + [remap corfu-insert-separator] #'+corfu-smart-sep-toggle-escape "C-S-s" #'+corfu-move-to-minibuffer "C-p" #'corfu-previous "C-n" #'corfu-next From 763464afdb9c46d5f60d4565c110d6d1a05fbf99 Mon Sep 17 00:00:00 2001 From: Luigi Sartor Piucco Date: Sun, 4 Feb 2024 17:17:13 -0300 Subject: [PATCH 459/523] feat(corfu): general move-to-minibuffer impl We previously implemented only consult/vertico as a target for export, now we have all of them. It was necessary to use case-by-case conditions, unfortunately, because other UIs have subtle quirks that prevent a single generalized approach to work. Ivy is almost compliant, but it needs beg and end to not be markers. Helm doesn't replace `completion-in-region-function`, it expects to go around the default `completion--in-region`. It's supposed to add the advice by itself, but it's very unreliable, so we do the wrapping manually. Ido doesn't implement `completion-in-region` and its `completing-read` is retricted to a list of strings as table, so we use default `completion--in-region` with no bells or whistles. --- modules/completion/corfu/README.org | 11 +++++------ modules/completion/corfu/autoload.el | 27 ++++++++++++++++++++++----- 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/modules/completion/corfu/README.org b/modules/completion/corfu/README.org index 9f0f7093c..7413f53a1 100644 --- a/modules/completion/corfu/README.org +++ b/modules/completion/corfu/README.org @@ -160,12 +160,11 @@ you accidentaly press more than needed. | [[kbd:][SPC]] | (when completing) Quit autocompletion | | [[kbd:][SPC]] | (when completing with separators) Self-insert | -** Exporting to the minibuffer (requires [[doom-module::completion vertico]]) -When using the [[doom-module::completion vertico]] module, which pulls in the -[[doom-package:consult]] package, the entries shown in the completion popup can be -exported to a consult minibuffer, giving access to all the manipulations the -Vertico suite allows. For instance, one could use this to export with -[[doom-package:embark]] via [[kbd:][C-c C-l]] and get a buffer with all candidates. +** Exporting to the minibuffer +The entries shown in the completion popup can be exported to a ~completing-read~ +minibuffer, giving access to all the manipulations that suite allows. Using +Vertico for instance, one could use this to export with [[doom-package:embark]] via +[[kbd:][C-c C-l]] and get a buffer with all candidates. * Configuration A few variables may be set to change behavior of this module: diff --git a/modules/completion/corfu/autoload.el b/modules/completion/corfu/autoload.el index 5003d3b7c..43005c6c1 100644 --- a/modules/completion/corfu/autoload.el +++ b/modules/completion/corfu/autoload.el @@ -2,12 +2,29 @@ ;;;###autoload (defun +corfu-move-to-minibuffer () - ;; Taken from corfu's README. - ;; TODO: extend this to other completion front-ends. + "Move the current list of candidates to your choice of minibuffer completion UI." (interactive) - (let ((completion-extra-properties corfu--extra) - (completion-cycle-threshold completion-cycling)) - (apply #'consult-completion-in-region completion-in-region--data))) + (pcase completion-in-region--data + (`(,beg ,end ,table ,pred ,extras) + (let ((completion-extra-properties extras) + completion-cycle-threshold completion-cycling) + (cond ((and (modulep! :completion vertico) + (fboundp #'consult-completion-in-region)) + (consult-completion-in-region beg end table pred)) + ((and (modulep! :completion ivy) + (fboundp #'ivy-completion-in-region)) + (ivy-completion-in-region (marker-position beg) (marker-position end) table pred)) + ;; Important: `completion-in-region-function' is set to corfu at + ;; this moment, so `completion-in-region' (single -) doesn't work + ;; below. + ((modulep! :completion helm) + ;; Helm is special and wants to _wrap_ `completion--in-region' + ;; instead of replacing it in `completion-in-region-function'. + ;; But because the advice is too unreliable we "fake" the wrapping. + (helm--completion-in-region #'completion--in-region beg end table pred)) + ((modulep! :completion ido) + (completion--in-region beg end table pred)) + (t (error "No minibuffer completion UI available for moving to!"))))))) ;;;###autoload (defun +corfu-smart-sep-toggle-escape () From 4192c811130c2c2e73eeb83a9f24a9ba40f8b02f Mon Sep 17 00:00:00 2001 From: StrawberryTea Date: Wed, 28 Feb 2024 17:42:47 -0600 Subject: [PATCH 460/523] feat(corfu): make minibuffer completion optional --- modules/completion/corfu/README.org | 3 +++ modules/completion/corfu/config.el | 21 +++++++++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/modules/completion/corfu/README.org b/modules/completion/corfu/README.org index 7413f53a1..48d591c91 100644 --- a/modules/completion/corfu/README.org +++ b/modules/completion/corfu/README.org @@ -198,6 +198,9 @@ A few variables may be set to change behavior of this module: - [[var:+corfu-buffer-scanning-size-limit]] :: Sets the maximum buffer size to be scanned by ~cape-dabbrev~. Defaults to 1 MB. Set this if you are having performance problems using the CAPF. +- [[var:+corfu-want-minibuffer-completion]] :: + Whether to enable Corfu in the minibuffer. See its documentation for + additional tweaks. ** Adding CAPFs to a mode To add other CAPFs on a mode-per-mode basis, put either of the following in your diff --git a/modules/completion/corfu/config.el b/modules/completion/corfu/config.el index bfa302546..8e9006765 100644 --- a/modules/completion/corfu/config.el +++ b/modules/completion/corfu/config.el @@ -11,6 +11,11 @@ Possible values are: (defvar +corfu-buffer-scanning-size-limit (* 1 1024 1024) ; 1 MB "Size limit for a buffer to be scanned by `cape-dabbrev'.") +(defvar +corfu-want-minibuffer-completion t + "Whether to enable Corfu in the minibuffer. +Setting this to `aggressive' will enable Corfu in more commands which +use the minibuffer such as `query-replace'.") + ;; ;;; Packages (use-package! corfu @@ -18,8 +23,20 @@ Possible values are: :init (add-hook! 'minibuffer-setup-hook (defun +corfu-enable-in-minibuffer () - "Enable Corfu in the minibuffer if `completion-at-point' is bound." - (when (where-is-internal #'completion-at-point (list (current-local-map))) + "Enable Corfu in the minibuffer." + (when (pcase +corfu-want-minibuffer-completion + ('aggressive + (not (or (bound-and-true-p mct--active) + (bound-and-true-p vertico--input) + (eq (current-local-map) read-passwd-map) + (and (featurep 'helm-core) (helm--alive-p)) + (and (featurep 'ido) (ido-active)) + (where-is-internal 'minibuffer-complete + (list (current-local-map))) + (memq #'ivy--queue-exhibit post-command-hook)))) + ('nil nil) + (_ (where-is-internal #'completion-at-point + (list (current-local-map))))) (setq-local corfu-echo-delay nil) (corfu-mode +1)))) :config From bfb9aabe27fbb89f9e3f31b306c0bc2a103f15fd Mon Sep 17 00:00:00 2001 From: StrawberryTea Date: Sat, 17 Feb 2024 10:47:35 -0600 Subject: [PATCH 461/523] feat(corfu): update minibuffer hints manually We need this advice to ensure that visual hints are updated before exiting. --- modules/completion/corfu/config.el | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/modules/completion/corfu/config.el b/modules/completion/corfu/config.el index 8e9006765..defdc8aaa 100644 --- a/modules/completion/corfu/config.el +++ b/modules/completion/corfu/config.el @@ -64,7 +64,26 @@ use the minibuffer such as `query-replace'.") (add-to-list 'corfu-auto-commands #'lispy-colon) (add-to-list 'corfu-continue-commands #'+corfu-move-to-minibuffer) (add-to-list 'corfu-continue-commands #'+corfu-smart-sep-toggle-escape) - (add-hook 'evil-insert-state-exit-hook #'corfu-quit)) + (add-hook 'evil-insert-state-exit-hook #'corfu-quit) + + ;; If you want to update the visual hints after completing minibuffer commands + ;; with Corfu and exiting, you have to do it manually. + (defadvice! +corfu--insert-before-exit-minibuffer-a () + :before #'exit-minibuffer + (when (or (and (frame-live-p corfu--frame) + (frame-visible-p corfu--frame)) + (and (featurep 'corfu-terminal) + (popon-live-p corfu-terminal--popon))) + (when (member isearch-lazy-highlight-timer timer-idle-list) + (apply (timer--function isearch-lazy-highlight-timer) + (timer--args isearch-lazy-highlight-timer))) + (when (member (bound-and-true-p anzu--update-timer) timer-idle-list) + (apply (timer--function anzu--update-timer) + (timer--args anzu--update-timer))) + (when (member (bound-and-true-p evil--ex-search-update-timer) + timer-idle-list) + (apply (timer--function evil--ex-search-update-timer) + (timer--args evil--ex-search-update-timer)))))) (use-package! cape :defer t From f9c0243211a4654347c7bb83daf5e80416739227 Mon Sep 17 00:00:00 2001 From: Luigi Sartor Piucco Date: Mon, 4 Mar 2024 14:17:56 -0300 Subject: [PATCH 462/523] docs(corfu): add @LemonBreezes as co-maintainer Co-authored-by: StrawberryTea --- modules/completion/corfu/README.org | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/completion/corfu/README.org b/modules/completion/corfu/README.org index 48d591c91..e10d1b17d 100644 --- a/modules/completion/corfu/README.org +++ b/modules/completion/corfu/README.org @@ -17,6 +17,7 @@ utilities for fine-tuning. Only some of common behaviors are documented here. ** Maintainers - [[doom-user:][@LuigiPiucco]] +- [[doom-user:][@LemonBreezes]] [[doom-contrib-maintainer:][Become a maintainer?]] From e8897421b183cd5bc8a5b7c3dad52586d3120f22 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 17 Mar 2024 08:01:37 -0400 Subject: [PATCH 463/523] fix(java): add lsp-treemacs lsp-java depends on lsp-treemacs without declaring it a dependency, so lsp-users using :lang (java +lsp) users without :ui (treemacs +lsp) will experience file-missing errors when lsp-java is loaded. --- modules/lang/java/packages.el | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules/lang/java/packages.el b/modules/lang/java/packages.el index 8e84b5088..c51e11afe 100644 --- a/modules/lang/java/packages.el +++ b/modules/lang/java/packages.el @@ -14,4 +14,10 @@ (when (modulep! +lsp) (unless (modulep! :tools lsp +eglot) + ;; HACK: lsp-java depends on lsp-treemacs without declaring it as a + ;; dependency, thereby throwing errors if :ui (treemacs +lsp) isn't + ;; 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 "e54e74deb8150964e3c3024e1ec14295a34e2a3b")) (package! lsp-java :pin "c962a3b3ac2beabdf1ce83b815396d6c38e3cefa"))) From b6e7bbbe07494df7c78f9e733454a87fb9672bbb Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 18 Mar 2024 20:45:11 -0400 Subject: [PATCH 464/523] fix(eval): overlay position Fix: #7732 Close: #7734 Co-authored-by: pysnow530 --- modules/tools/eval/autoload/eval.el | 49 ++++++++++++++--------------- 1 file changed, 24 insertions(+), 25 deletions(-) diff --git a/modules/tools/eval/autoload/eval.el b/modules/tools/eval/autoload/eval.el index dbec32bcf..78ded4c82 100644 --- a/modules/tools/eval/autoload/eval.el +++ b/modules/tools/eval/autoload/eval.el @@ -24,34 +24,33 @@ (defun +eval-display-results-in-overlay (output &optional source-buffer) "Display OUTPUT in a floating overlay next to the cursor." (require 'eros) - (let* ((this-command #'+eval/buffer-or-region) - (prefix eros-eval-result-prefix) - (lines (split-string output "\n")) - (prefixlen (length prefix)) - (len (+ (apply #'max (mapcar #'length lines)) - prefixlen)) - (col (- (current-column) (window-hscroll))) - (next-line? (or (cdr lines) - (< (- (window-width) - (save-excursion (goto-char (point-at-eol)) - (- (current-column) - (window-hscroll)))) - len))) - (pad (if next-line? - (+ (window-hscroll) prefixlen) - 0)) - (where (if next-line? - (line-beginning-position 2) - (line-end-position))) - eros-eval-result-prefix - eros-overlays-use-font-lock) - (with-current-buffer (or source-buffer (current-buffer)) + (with-current-buffer (or source-buffer (current-buffer)) + (let* ((this-command #'+eval/buffer-or-region) + (prefix eros-eval-result-prefix) + (lines (split-string output "\n")) + (prefixlen (length prefix)) + (len (+ (apply #'max (mapcar #'length lines)) + prefixlen)) + (col (- (current-column) (window-hscroll))) + (next-line? (or (cdr lines) + (< (- (window-width) + (save-excursion (goto-char (line-end-position)) + (- (current-column) + (window-hscroll)))) + len))) + (pad (if next-line? + (+ (window-hscroll) prefixlen) + 0)) + eros-overlays-use-font-lock) (eros--make-result-overlay (concat (make-string (max 0 (- pad prefixlen)) ?\s) prefix - (string-join lines (concat "\n" (make-string pad ?\s)))) - :where where - :duration eros-eval-result-duration)))) + (string-join lines (concat hard-newline (make-string pad ?\s)))) + :where (if next-line? + (line-beginning-position 2) + (line-end-position)) + :duration eros-eval-result-duration + :format "%s")))) ;;;###autoload (defun +eval-display-results (output &optional source-buffer) From 5e7c769315941f8af1507bf659c5607e4baae960 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 19 Mar 2024 20:30:11 -0400 Subject: [PATCH 465/523] fix: ensure inhibit-* is reset on startup error --- lisp/doom.el | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/lisp/doom.el b/lisp/doom.el index 885e31f29..74ca41754 100644 --- a/lisp/doom.el +++ b/lisp/doom.el @@ -489,11 +489,18 @@ users).") inhibit-message nil) (redraw-frame)) (add-hook 'after-init-hook #'doom--reset-inhibited-vars-h) - (define-advice startup--load-user-init-file (:after (&rest _) undo-inhibit-vars) - (when init-file-had-error - (doom--reset-inhibited-vars-h)) - (unless (default-toplevel-value 'mode-line-format) - (setq-default mode-line-format (get 'mode-line-format 'initial-value)))) + (define-advice startup--load-user-init-file (:around (fn &rest args) undo-inhibit-vars) + (let (--init--) + (unwind-protect + (progn + (apply fn args) + (setq --init-- t)) + (when (or (not --init--) init-file-had-error) + ;; If we don't undo our inhibit-{message,redisplay} and there's an + ;; error, we'll see nothing but a blank Emacs frame. + (doom--reset-inhibited-vars-h)) + (unless (default-toplevel-value 'mode-line-format) + (setq-default mode-line-format (get 'mode-line-format 'initial-value)))))) ;; PERF: Doom disables the UI elements by default, so that there's less ;; for the frame to initialize. However, the toolbar is still populated From 1d9b102181455710860bb7ddc07d86f1eb7f260c Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 19 Mar 2024 20:31:00 -0400 Subject: [PATCH 466/523] fix: shut up site-lisp One various OSes, Emacs ships with site-lisp files that load OS/architecture-specific config (like native-comp config), or load-lines for Emacs packages installed via your OS package manager (like mu4e). Output from these are rarely suppressed, for some reason, which causes noise in *Messages* at startup, which triggers a redraw, which can be very expensive during startup, depending on your window system. --- lisp/doom.el | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/lisp/doom.el b/lisp/doom.el index 74ca41754..f695a1a67 100644 --- a/lisp/doom.el +++ b/lisp/doom.el @@ -489,10 +489,24 @@ users).") inhibit-message nil) (redraw-frame)) (add-hook 'after-init-hook #'doom--reset-inhibited-vars-h) + + ;; PERF,UX: An annoying aspect of site-lisp files is that they're often + ;; noisy (they emit load messages or other output to stdout). These + ;; queue unnecessary redraws at startup, cost startup time, and pollute + ;; the logs. I get around it by suppressing it until we can load it + ;; manually, later (in the `startup--load-user-init-file' advice below). + (put 'site-run-file 'initial-value site-run-file) + (setq site-run-file nil) + (define-advice startup--load-user-init-file (:around (fn &rest args) undo-inhibit-vars) (let (--init--) (unwind-protect (progn + (when (setq site-run-file (get 'site-run-file 'initial-value)) + (let ((inhibit-startup-screen inhibit-startup-screen)) + (letf! (defun load (file &optional noerror _nomessage &rest args) + (apply load file noerror t args)) + (load site-run-file t t)))) (apply fn args) (setq --init-- t)) (when (or (not --init--) init-file-had-error) From 1d99d1f191ecfd5c03489c380b6e39497e7ab8d6 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 19 Mar 2024 20:32:00 -0400 Subject: [PATCH 467/523] refactor: consolidate startup--load-user-init-file advice Splitting up all this advice was unnecessary noise. --- lisp/doom.el | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/lisp/doom.el b/lisp/doom.el index f695a1a67..5f819eb5f 100644 --- a/lisp/doom.el +++ b/lisp/doom.el @@ -437,13 +437,10 @@ users).") ;; PERF,UX: Site files tend to use `load-file', which emits "Loading X..." ;; messages in the echo area. Writing to the echo-area triggers a ;; redisplay, which can be expensive during startup. This may also cause - ;; an flash of white when creating the first frame. + ;; an flash of white when creating the first frame. Needs to be undo + ;; later, though. (define-advice load-file (:override (file) silence) (load file nil 'nomessage)) - ;; COMPAT: But undo our `load-file' advice later, as to limit the scope of - ;; any edge cases it could induce. - (define-advice startup--load-user-init-file (:before (&rest _) undo-silence) - (advice-remove #'load-file #'load-file@silence)) ;; PERF: `load-suffixes' and `load-file-rep-suffixes' are consulted on ;; each `require' and `load'. Doom won't load any modules this early, so @@ -462,13 +459,18 @@ users).") ;; PERF: Doom uses `defcustom' to indicate variables that users are ;; expected to reconfigure. Trouble is it fires off initializers meant ;; to accommodate any user attempts to configure them before they were - ;; defined. This is unnecessary before $DOOMDIR/init.el is loaded, so I - ;; disable them until it is. + ;; defined. This is unnecessary work before $DOOMDIR/init.el is loaded, + ;; so I disable them until it is. (setq custom-dont-initialize t) (add-hook! 'doom-before-init-hook (defun doom--reset-custom-dont-initialize-h () (setq custom-dont-initialize nil))) + ;; PERF: Doom disables the UI elements by default, so that there's less + ;; for the frame to initialize. However, the toolbar is still populated + ;; regardless, so I lazy load it until tool-bar-mode is actually used. + (advice-add #'tool-bar-setup :override #'ignore) + ;; PERF: The mode-line procs a couple dozen times during startup. This is ;; normally quite fast, but disabling the default mode-line and reducing ;; the update delay timer seems to stave off ~30-50ms. @@ -476,8 +478,8 @@ users).") (setq-default mode-line-format nil) (dolist (buf (buffer-list)) (with-current-buffer buf (setq mode-line-format nil))) - ;; PERF,UX: Premature redisplays can substantially affect startup times and - ;; produce ugly flashes of unstyled Emacs. + ;; PERF,UX: Premature redisplays can substantially affect startup times + ;; and/or produce ugly flashes of unstyled Emacs. (setq-default inhibit-redisplay t inhibit-message t) ;; COMPAT: Then reset with advice, because `startup--load-user-init-file' @@ -502,11 +504,17 @@ users).") (let (--init--) (unwind-protect (progn + ;; COMPAT: Onces startup is sufficiently complete, undo some + ;; optimizations to reduce the scope of potential edge cases. + (advice-remove #'load-file #'load-file@silence) + (advice-remove #'tool-bar-setup #'ignore) + (add-transient-hook! 'tool-bar-mode (tool-bar-setup)) (when (setq site-run-file (get 'site-run-file 'initial-value)) (let ((inhibit-startup-screen inhibit-startup-screen)) (letf! (defun load (file &optional noerror _nomessage &rest args) (apply load file noerror t args)) (load site-run-file t t)))) + ;; Then startup as normal. (apply fn args) (setq --init-- t)) (when (or (not --init--) init-file-had-error) @@ -516,14 +524,6 @@ users).") (unless (default-toplevel-value 'mode-line-format) (setq-default mode-line-format (get 'mode-line-format 'initial-value)))))) - ;; PERF: Doom disables the UI elements by default, so that there's less - ;; for the frame to initialize. However, the toolbar is still populated - ;; regardless, so I lazy load it until tool-bar-mode is actually used. - (advice-add #'tool-bar-setup :override #'ignore) - (define-advice startup--load-user-init-file (:before (&rest _) defer-tool-bar-setup) - (advice-remove #'tool-bar-setup #'ignore) - (add-transient-hook! 'tool-bar-mode (tool-bar-setup))) - ;; PERF: Unset a non-trivial list of command line options that aren't ;; relevant to this session, but `command-line-1' still processes. (unless doom--system-macos-p From 6b55c6adc6056d2337240ffcb403324fb739be05 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 19 Mar 2024 20:33:39 -0400 Subject: [PATCH 468/523] refactor: inline doom--make-font-specs This function isn't (and won't be) used anywhere else. No reason for it to be its own function. --- lisp/doom-ui.el | 40 ++++++++++++++++++---------------------- 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/lisp/doom-ui.el b/lisp/doom-ui.el index 95d5b92ce..64db32afd 100644 --- a/lisp/doom-ui.el +++ b/lisp/doom-ui.el @@ -498,23 +498,6 @@ windows, switch to `doom-fallback-buffer'. Otherwise, delegate to original (cons 'custom-theme-directory (delq 'custom-theme-directory custom-theme-load-path))) -(defun doom--make-font-specs (face font frame) - (let* ((base-specs (cadr (assq 'user (get face 'theme-face)))) - (base-specs (or base-specs '((t nil)))) - (attrs '(:family :foundry :slant :weight :height :width)) - (new-specs nil)) - (dolist (spec base-specs) - ;; Each SPEC has the form (DISPLAY ATTRIBUTE-PLIST) - (let ((display (car spec)) - (plist (copy-tree (nth 1 spec)))) - ;; Alter only DISPLAY conditions matching this frame. - (when (or (memq display '(t default)) - (face-spec-set-match-display display frame)) - (dolist (attr attrs) - (setq plist (plist-put plist attr (face-attribute face attr))))) - (push (list display plist) new-specs))) - (nreverse new-specs))) - (defun doom-init-fonts-h (&optional _reload) "Loads `doom-font', `doom-serif-font', and `doom-variable-pitch-font'." (let ((this-frame (selected-frame))) @@ -530,11 +513,24 @@ windows, switch to `doom-fallback-buffer'. Otherwise, delegate to original (set-face-attribute face frame :width 'normal :weight 'normal :slant 'normal :font font))) - (let ((new-specs (doom--make-font-specs face font this-frame))) - ;; Don't save to `customized-face' so it's omitted from `custom-file' - ;;(put face 'customized-face new-specs) - (custom-push-theme 'theme-face face 'user 'set new-specs) - (put face 'face-modified nil))) + (custom-push-theme + 'theme-face face 'user 'set + (let* ((base-specs (cadr (assq 'user (get face 'theme-face)))) + (base-specs (or base-specs '((t nil)))) + (attrs '(:family :foundry :slant :weight :height :width)) + (new-specs nil)) + (dolist (spec base-specs) + ;; Each SPEC has the form (DISPLAY ATTRIBUTE-PLIST) + (let ((display (car spec)) + (plist (copy-tree (nth 1 spec)))) + ;; Alter only DISPLAY conditions matching this frame. + (when (or (memq display '(t default)) + (face-spec-set-match-display display this-frame)) + (dolist (attr attrs) + (setq plist (plist-put plist attr (face-attribute face attr))))) + (push (list display plist) new-specs))) + (nreverse new-specs))) + (put face 'face-modified nil)) ('error (ignore-errors (doom--reset-inhibited-vars-h)) (if (string-prefix-p "Font not available" (error-message-string e)) From d553ebc930d7d3d8a65740059250cfd4c037cc37 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 19 Mar 2024 20:34:10 -0400 Subject: [PATCH 469/523] fix: invoke debugger for early-init.el-level errors --- early-init.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/early-init.el b/early-init.el index bc6032b42..9d6778109 100644 --- a/early-init.el +++ b/early-init.el @@ -109,7 +109,7 @@ ;; I avoid `load's NOERROR argument because it suppresses other, ;; legitimate errors (like permission or IO errors), which gets ;; incorrectly interpreted as "this is not a Doom config". - (condition-case _ + (condition-case-unless-debug _ ;; Load the heart of Doom Emacs. (load (expand-file-name "lisp/doom" user-emacs-directory) nil (not init-file-debug) nil 'must-suffix) From 550d6ecd1984cc425ed89aa422ea0ce9119f8d27 Mon Sep 17 00:00:00 2001 From: Sean Farley Date: Tue, 19 Mar 2024 11:39:47 -0700 Subject: [PATCH 470/523] bump: :tools magit magit/forge@03b48be2a12a -> magit/forge@03b48be2a12a magit/magit@65ecb9c5fc75 -> magit/magit@65ecb9c5fc75 This fixes a bug in forge (which has been fixed upstream) that erroneously set `minibuffer-allow-text-properties' globally and caused seemingly random errors involving completion from the minibuffer. Ref: magit/forge#639 Ref: minad/jinx#140 --- modules/tools/magit/packages.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/tools/magit/packages.el b/modules/tools/magit/packages.el index 6bc86d4e5..7bebc3a57 100644 --- a/modules/tools/magit/packages.el +++ b/modules/tools/magit/packages.el @@ -1,9 +1,9 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/magit/packages.el -(when (package! magit :pin "65ecb9c5fc7586a1c527b60d180a97ea230da99f") +(when (package! magit :pin "0963697f24cfbe80f92312044bd9ab28b914b053") (when (modulep! +forge) - (package! forge :pin "03b48be2a12a282cd47b92287fc1701a81f1cece") + (package! forge :pin "68771ca4d53c3aea5c860eeb888cee8e9cb5ca37") (package! code-review :recipe (:host github :repo "doomelpa/code-review" From 9447e820740edbc3f3ce9a296be934ca635e0131 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 19 Mar 2024 19:49:54 -0400 Subject: [PATCH 471/523] bump: :completion vertico minad/consult-flycheck@d83f87581af7 -> minad/consult-flycheck@754f5497d827 minad/consult@9463146ba754 -> minad/consult@b48ff6bf0527 minad/marginalia@ea356ebb1ddb -> minad/marginalia@f6fe86b989a1 minad/vertico@4a7da56b02c6 -> minad/vertico@68cbd4758944 oantolin/embark@60139db8794f -> oantolin/embark@c93abadc8220 oantolin/orderless@b24748093b00 -> oantolin/orderless@dc7a781acf2e --- modules/completion/vertico/packages.el | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/modules/completion/vertico/packages.el b/modules/completion/vertico/packages.el index 348f43ce7..787d22140 100644 --- a/modules/completion/vertico/packages.el +++ b/modules/completion/vertico/packages.el @@ -1,19 +1,19 @@ ;; -*- no-byte-compile: t; -*- ;;; completion/vertico/packages.el -(package! vertico :pin "4a7da56b02c6aefff8f6b4574a530a7cb54bc21a") +(package! vertico :pin "68cbd47589446e9674921bae0b98ff8fbe28be23") -(package! orderless :pin "b24748093b00b37c3a572c4909f61c08fa27504f") +(package! orderless :pin "dc7a781acf2e58ac7d20d1b522be0cde5213e057") -(package! consult :pin "9463146ba754103db9475ae56e46561366ba4773") +(package! consult :pin "b48ff6bf0527baeb6bfd07c6da9d303ff0b79c3d") (package! consult-dir :pin "3f5f4b71ebe819392cb090cda71bd39a93bd830a") (when (and (modulep! :checkers syntax) (not (modulep! :checkers syntax +flymake))) - (package! consult-flycheck :pin "d83f87581af74f7a2739d8b1b90c37da5ae3d310")) -(package! embark :pin "60139db8794f7e4a08076d9f7597d08f6c8083d1") -(package! embark-consult :pin "60139db8794f7e4a08076d9f7597d08f6c8083d1") + (package! consult-flycheck :pin "754f5497d827f7d58009256a21af614cc44378a3")) +(package! embark :pin "c93abadc8220c0caa6fea805f7a736c346d47e7e") +(package! embark-consult :pin "c93abadc8220c0caa6fea805f7a736c346d47e7e") -(package! marginalia :pin "ea356ebb1ddb8d6da78574b517155475cf52d46f") +(package! marginalia :pin "f6fe86b989a177355ab3ff7e97a384e10a7b0bb1") (package! wgrep :pin "208b9d01cfffa71037527e3a324684b3ce45ddc4") From f71689304e057eeefb0b9000c92518593c842e12 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 19 Mar 2024 21:30:16 -0400 Subject: [PATCH 472/523] tweak: enable startup optimizations in debug mode Before this, startup optimizations were disabled in debug mode, but more often than not, this just made it difficult to reproduce some errors at startup. --- lisp/doom.el | 179 +++++++++++++++++++++++++-------------------------- 1 file changed, 89 insertions(+), 90 deletions(-) diff --git a/lisp/doom.el b/lisp/doom.el index 5f819eb5f..9545c215a 100644 --- a/lisp/doom.el +++ b/lisp/doom.el @@ -433,103 +433,102 @@ users).") (doom-partial #'tty-run-terminal-initialization (selected-frame) nil t)))) - (unless init-file-debug - ;; PERF,UX: Site files tend to use `load-file', which emits "Loading X..." - ;; messages in the echo area. Writing to the echo-area triggers a - ;; redisplay, which can be expensive during startup. This may also cause - ;; an flash of white when creating the first frame. Needs to be undo - ;; later, though. - (define-advice load-file (:override (file) silence) - (load file nil 'nomessage)) + ;; PERF,UX: Site files tend to use `load-file', which emits "Loading X..." + ;; messages in the echo area. Writing to the echo-area triggers a + ;; redisplay, which can be expensive during startup. This may also cause + ;; an flash of white when creating the first frame. Needs to be undo + ;; later, though. + (define-advice load-file (:override (file) silence) + (load file nil 'nomessage)) - ;; PERF: `load-suffixes' and `load-file-rep-suffixes' are consulted on - ;; each `require' and `load'. Doom won't load any modules this early, so - ;; omit .so for a tiny startup boost. Is later restored in doom-start. - (put 'load-suffixes 'initial-value (default-toplevel-value 'load-suffixes)) - (put 'load-file-rep-suffixes 'initial-value (default-toplevel-value 'load-file-rep-suffixes)) - (set-default-toplevel-value 'load-suffixes '(".elc" ".el")) - (set-default-toplevel-value 'load-file-rep-suffixes '("")) - ;; COMPAT: Undo any problematic startup optimizations; from this point, I - ;; make no assumptions about what might be loaded in userland. - (add-hook! 'doom-before-init-hook - (defun doom--reset-load-suffixes-h () - (setq load-suffixes (get 'load-suffixes 'initial-value) - load-file-rep-suffixes (get 'load-file-rep-suffixes 'initial-value)))) + ;; PERF: `load-suffixes' and `load-file-rep-suffixes' are consulted on + ;; each `require' and `load'. Doom won't load any modules this early, so + ;; omit .so for a tiny startup boost. Is later restored in doom-start. + (put 'load-suffixes 'initial-value (default-toplevel-value 'load-suffixes)) + (put 'load-file-rep-suffixes 'initial-value (default-toplevel-value 'load-file-rep-suffixes)) + (set-default-toplevel-value 'load-suffixes '(".elc" ".el")) + (set-default-toplevel-value 'load-file-rep-suffixes '("")) + ;; COMPAT: Undo any problematic startup optimizations; from this point, I + ;; make no assumptions about what might be loaded in userland. + (add-hook! 'doom-before-init-hook + (defun doom--reset-load-suffixes-h () + (setq load-suffixes (get 'load-suffixes 'initial-value) + load-file-rep-suffixes (get 'load-file-rep-suffixes 'initial-value)))) - ;; PERF: Doom uses `defcustom' to indicate variables that users are - ;; expected to reconfigure. Trouble is it fires off initializers meant - ;; to accommodate any user attempts to configure them before they were - ;; defined. This is unnecessary work before $DOOMDIR/init.el is loaded, - ;; so I disable them until it is. - (setq custom-dont-initialize t) - (add-hook! 'doom-before-init-hook - (defun doom--reset-custom-dont-initialize-h () - (setq custom-dont-initialize nil))) + ;; PERF: Doom uses `defcustom' to indicate variables that users are + ;; expected to reconfigure. Trouble is it fires off initializers meant + ;; to accommodate any user attempts to configure them before they were + ;; defined. This is unnecessary work before $DOOMDIR/init.el is loaded, + ;; so I disable them until it is. + (setq custom-dont-initialize t) + (add-hook! 'doom-before-init-hook + (defun doom--reset-custom-dont-initialize-h () + (setq custom-dont-initialize nil))) - ;; PERF: Doom disables the UI elements by default, so that there's less - ;; for the frame to initialize. However, the toolbar is still populated - ;; regardless, so I lazy load it until tool-bar-mode is actually used. - (advice-add #'tool-bar-setup :override #'ignore) + ;; PERF: Doom disables the UI elements by default, so that there's less + ;; for the frame to initialize. However, the toolbar is still populated + ;; regardless, so I lazy load it until tool-bar-mode is actually used. + (advice-add #'tool-bar-setup :override #'ignore) - ;; PERF: The mode-line procs a couple dozen times during startup. This is - ;; normally quite fast, but disabling the default mode-line and reducing - ;; the update delay timer seems to stave off ~30-50ms. - (put 'mode-line-format 'initial-value (default-toplevel-value 'mode-line-format)) - (setq-default mode-line-format nil) - (dolist (buf (buffer-list)) - (with-current-buffer buf (setq mode-line-format nil))) - ;; PERF,UX: Premature redisplays can substantially affect startup times - ;; and/or produce ugly flashes of unstyled Emacs. - (setq-default inhibit-redisplay t - inhibit-message t) - ;; COMPAT: Then reset with advice, because `startup--load-user-init-file' - ;; will never be interrupted by errors. And if these settings are left - ;; set, Emacs could appear frozen or garbled. - (defun doom--reset-inhibited-vars-h () - (setq-default inhibit-redisplay nil - ;; Inhibiting `message' only prevents redraws and - inhibit-message nil) - (redraw-frame)) - (add-hook 'after-init-hook #'doom--reset-inhibited-vars-h) + ;; PERF: The mode-line procs a couple dozen times during startup. This is + ;; normally quite fast, but disabling the default mode-line and reducing + ;; the update delay timer seems to stave off ~30-50ms. + (put 'mode-line-format 'initial-value (default-toplevel-value 'mode-line-format)) + (setq-default mode-line-format nil) + (dolist (buf (buffer-list)) + (with-current-buffer buf (setq mode-line-format nil))) + ;; PERF,UX: Premature redisplays can substantially affect startup times + ;; and/or produce ugly flashes of unstyled Emacs. + (setq-default inhibit-redisplay t + inhibit-message t) + ;; COMPAT: Then reset with advice, because `startup--load-user-init-file' + ;; will never be interrupted by errors. And if these settings are left + ;; set, Emacs could appear frozen or garbled. + (defun doom--reset-inhibited-vars-h () + (setq-default inhibit-redisplay nil + ;; Inhibiting `message' only prevents redraws and + inhibit-message nil) + (redraw-frame)) + (add-hook 'after-init-hook #'doom--reset-inhibited-vars-h) - ;; PERF,UX: An annoying aspect of site-lisp files is that they're often - ;; noisy (they emit load messages or other output to stdout). These - ;; queue unnecessary redraws at startup, cost startup time, and pollute - ;; the logs. I get around it by suppressing it until we can load it - ;; manually, later (in the `startup--load-user-init-file' advice below). - (put 'site-run-file 'initial-value site-run-file) - (setq site-run-file nil) + ;; PERF,UX: An annoying aspect of site-lisp files is that they're often + ;; noisy (they emit load messages or other output to stdout). These + ;; queue unnecessary redraws at startup, cost startup time, and pollute + ;; the logs. I get around it by suppressing it until we can load it + ;; manually, later (in the `startup--load-user-init-file' advice below). + (put 'site-run-file 'initial-value site-run-file) + (setq site-run-file nil) - (define-advice startup--load-user-init-file (:around (fn &rest args) undo-inhibit-vars) - (let (--init--) - (unwind-protect - (progn - ;; COMPAT: Onces startup is sufficiently complete, undo some - ;; optimizations to reduce the scope of potential edge cases. - (advice-remove #'load-file #'load-file@silence) - (advice-remove #'tool-bar-setup #'ignore) - (add-transient-hook! 'tool-bar-mode (tool-bar-setup)) - (when (setq site-run-file (get 'site-run-file 'initial-value)) - (let ((inhibit-startup-screen inhibit-startup-screen)) - (letf! (defun load (file &optional noerror _nomessage &rest args) - (apply load file noerror t args)) - (load site-run-file t t)))) - ;; Then startup as normal. - (apply fn args) - (setq --init-- t)) - (when (or (not --init--) init-file-had-error) - ;; If we don't undo our inhibit-{message,redisplay} and there's an - ;; error, we'll see nothing but a blank Emacs frame. - (doom--reset-inhibited-vars-h)) - (unless (default-toplevel-value 'mode-line-format) - (setq-default mode-line-format (get 'mode-line-format 'initial-value)))))) + (define-advice startup--load-user-init-file (:around (fn &rest args) undo-inhibit-vars) + (let (--init--) + (unwind-protect + (progn + ;; COMPAT: Onces startup is sufficiently complete, undo some + ;; optimizations to reduce the scope of potential edge cases. + (advice-remove #'load-file #'load-file@silence) + (advice-remove #'tool-bar-setup #'ignore) + (add-transient-hook! 'tool-bar-mode (tool-bar-setup)) + (when (setq site-run-file (get 'site-run-file 'initial-value)) + (let ((inhibit-startup-screen inhibit-startup-screen)) + (letf! (defun load (file &optional noerror _nomessage &rest args) + (apply load file noerror t args)) + (load site-run-file t t)))) + ;; Then startup as normal. + (apply fn args) + (setq --init-- t)) + (when (or (not --init--) init-file-had-error) + ;; If we don't undo our inhibit-{message,redisplay} and there's an + ;; error, we'll see nothing but a blank Emacs frame. + (doom--reset-inhibited-vars-h)) + (unless (default-toplevel-value 'mode-line-format) + (setq-default mode-line-format (get 'mode-line-format 'initial-value)))))) - ;; PERF: Unset a non-trivial list of command line options that aren't - ;; relevant to this session, but `command-line-1' still processes. - (unless doom--system-macos-p - (setq command-line-ns-option-alist nil)) - (unless (memq initial-window-system '(x pgtk)) - (setq command-line-x-option-alist nil))))) + ;; PERF: Unset a non-trivial list of command line options that aren't + ;; relevant to this session, but `command-line-1' still processes. + (unless doom--system-macos-p + (setq command-line-ns-option-alist nil)) + (unless (memq initial-window-system '(x pgtk)) + (setq command-line-x-option-alist nil)))) ;; From 875cd1aef99ca19d4534b4fbbb6bc931e2e10440 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 19 Mar 2024 21:34:03 -0400 Subject: [PATCH 473/523] fix(corfu): gate corfu-terminal config If :completion corfu users don't have :os tty enabled, loading corfu-terminal will throw an error in TTY Emacs. --- modules/completion/corfu/config.el | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/completion/corfu/config.el b/modules/completion/corfu/config.el index defdc8aaa..06dcd83cd 100644 --- a/modules/completion/corfu/config.el +++ b/modules/completion/corfu/config.el @@ -133,9 +133,11 @@ use the minibuffer such as `query-replace'.") (add-hook 'completion-at-point-functions #'yasnippet-capf 30 t)))) (use-package! corfu-terminal + :when (modulep! :os tty) :when (not (display-graphic-p)) :hook ((corfu-mode . corfu-terminal-mode))) + ;; ;;; Extensions From b52d2b2dd06a563e6f56aa2e36cb6e8c011b7061 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 19 Mar 2024 21:41:50 -0400 Subject: [PATCH 474/523] fix(corfu): ispell: only complain once per session --- modules/completion/corfu/config.el | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/modules/completion/corfu/config.el b/modules/completion/corfu/config.el index 06dcd83cd..d6948c90a 100644 --- a/modules/completion/corfu/config.el +++ b/modules/completion/corfu/config.el @@ -83,7 +83,21 @@ use the minibuffer such as `query-replace'.") (when (member (bound-and-true-p evil--ex-search-update-timer) timer-idle-list) (apply (timer--function evil--ex-search-update-timer) - (timer--args evil--ex-search-update-timer)))))) + (timer--args evil--ex-search-update-timer))))) + + ;; HACK: If your dictionaries aren't set up in text-mode buffers, ispell will + ;; continuously pester you about errors. This ensures it only happens once + ;; per session. + (defadvice! +corfu--auto-disable-ispell-capf-a (fn &rest args) + "If ispell isn't properly set up, only complain once per session." + :around #'ispell-completion-at-point + (condition-case-unless-debug e + (apply fn args) + ('error + (message "Error: %s" (error-message-string e)) + (message "Auto-disabling `text-mode-ispell-word-completion'") + (setq text-mode-ispell-word-completion nil) + (remove-hook 'completion-at-point-functions #'ispell-completion-at-point t))))) (use-package! cape :defer t From c9c221ca5992aa98495a934fa6a85c98fdbefeb8 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 19 Mar 2024 21:46:31 -0400 Subject: [PATCH 475/523] fix(corfu): wrong-type-argument characterp error Corfu doesn't support a nil corfu-separator in general, but +corfu-smart-sep-toggle-escape, specifically, will throw a characterp type error if the user hasn't enabled +orderless. --- modules/completion/corfu/config.el | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/completion/corfu/config.el b/modules/completion/corfu/config.el index d6948c90a..abd90c559 100644 --- a/modules/completion/corfu/config.el +++ b/modules/completion/corfu/config.el @@ -51,7 +51,6 @@ use the minibuffer such as `query-replace'.") vterm-mode) t) corfu-cycle t - corfu-separator (when (modulep! +orderless) ?\s) corfu-preselect 'prompt corfu-count 16 corfu-max-width 120 From 7547cdac6d7da88bdee2abb9f9ddb2f7d10f7122 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 19 Mar 2024 21:49:23 -0400 Subject: [PATCH 476/523] refactor(corfu): remove redundant setting Upstream, corfu-preview-current is already 'insert by default. --- modules/completion/corfu/config.el | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/completion/corfu/config.el b/modules/completion/corfu/config.el index abd90c559..475894fa5 100644 --- a/modules/completion/corfu/config.el +++ b/modules/completion/corfu/config.el @@ -54,7 +54,6 @@ use the minibuffer such as `query-replace'.") corfu-preselect 'prompt corfu-count 16 corfu-max-width 120 - corfu-preview-current 'insert corfu-on-exact-match nil corfu-quit-at-boundary (if (modulep! +orderless) 'separator t) corfu-quit-no-match (if (modulep! +orderless) 'separator t) From c564c17a6ba83d2864fe532191eca4398794f996 Mon Sep 17 00:00:00 2001 From: Ian McCowan Date: Mon, 6 Nov 2023 09:11:09 -0800 Subject: [PATCH 477/523] fix(fold): reorder fold type checks (+fold--ts-fold-p) just checks that the mode is active so it will block any checks following it. Move it to the end so other fold types have a chance, and consistently order fold type checks. --- modules/editor/fold/autoload/fold.el | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/editor/fold/autoload/fold.el b/modules/editor/fold/autoload/fold.el index 2b757cc87..1052374bb 100644 --- a/modules/editor/fold/autoload/fold.el +++ b/modules/editor/fold/autoload/fold.el @@ -75,8 +75,8 @@ Targets `vimmish-fold', `hideshow', `ts-fold' and `outline' folds." (cl-letf (((symbol-function #'outline-hide-subtree) (symbol-function #'outline-hide-entry))) (outline-toggle-children))) - ((+fold--ts-fold-p) (ts-fold-toggle)) - ((+fold--hideshow-fold-p) (+fold-from-eol (hs-toggle-hiding)))))) + ((+fold--hideshow-fold-p) (+fold-from-eol (hs-toggle-hiding))) + ((+fold--ts-fold-p) (ts-fold-toggle))))) ;;;###autoload (defun +fold/open () @@ -89,8 +89,8 @@ Targets `vimmish-fold', `hideshow', `ts-fold' and `outline' folds." ((+fold--outline-fold-p) (outline-show-children) (outline-show-entry)) - ((+fold--ts-fold-p) (ts-fold-open)) - ((+fold--hideshow-fold-p) (+fold-from-eol (hs-show-block)))))) + ((+fold--hideshow-fold-p) (+fold-from-eol (hs-show-block))) + ((+fold--ts-fold-p) (ts-fold-open))))) ;;;###autoload (defun +fold/close () @@ -100,9 +100,9 @@ Targets `vimmish-fold', `hideshow', `ts-fold' and `outline' folds." (interactive) (save-excursion (cond ((+fold--vimish-fold-p) (vimish-fold-refold)) - ((+fold--ts-fold-p) (ts-fold-close)) + ((+fold--outline-fold-p) (outline-hide-subtree)) ((+fold--hideshow-fold-p) (+fold-from-eol (hs-hide-block))) - ((+fold--outline-fold-p) (outline-hide-subtree))))) + ((+fold--ts-fold-p) (ts-fold-close))))) ;;;###autoload (defun +fold/open-all (&optional level) From 0ea84d1c3bff76cdf8983bd033717631016fb31b Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 20 Mar 2024 00:03:37 -0400 Subject: [PATCH 478/523] feat(vertico): add consult-yasnippet Close: #7471 Co-authored-by: LemonBreezes --- modules/completion/vertico/config.el | 5 +++++ modules/completion/vertico/packages.el | 3 +++ 2 files changed, 8 insertions(+) diff --git a/modules/completion/vertico/config.el b/modules/completion/vertico/config.el index 3f2bf3f30..e15bd0fb7 100644 --- a/modules/completion/vertico/config.el +++ b/modules/completion/vertico/config.el @@ -251,6 +251,11 @@ orderless." (not (modulep! :checkers syntax +flymake))) :after (consult flycheck)) +(use-package! consult-yasnippet + :when (modulep! :editor snippets) + :defer t + :init (map! [remap yas-insert-snippet] #'consult-yasnippet)) + (use-package! embark :defer t diff --git a/modules/completion/vertico/packages.el b/modules/completion/vertico/packages.el index 787d22140..8d1f9c75f 100644 --- a/modules/completion/vertico/packages.el +++ b/modules/completion/vertico/packages.el @@ -24,3 +24,6 @@ (package! vertico-posframe :recipe (:host github :repo "tumashu/vertico-posframe") :pin "2e0e09e5bbd6ec576ddbe566ab122575ef051fab")) + +(when (modulep! :editor snippets) + (package! consult-yasnippet :pin "834d39acfe8a7d2c304afbe4d649b9372118c756")) From 73f19acb66ff37d2ef1644516c0c983543ac2246 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 20 Mar 2024 00:12:23 -0400 Subject: [PATCH 479/523] fix(julia): revise julia-snail settings - julia-snail-multimedia-enable is buffer-local, so setq-default is needed. - julia-snail-popup-display-eval-results is already :command upstream. - julia-snail will automatically calculate a (reasonable) value for julia-snail-popup-display-face in the absence of an explicit setting. - julia-snail-popup-display-face was filled with references to doom-themes symbols that aren't global. It's any wonder they worked before this. Besidse, it's best we not couple this module with one specific theme (or theme pack in this case). Close: #7625 Co-authored-by: ngharrison --- modules/lang/julia/config.el | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/modules/lang/julia/config.el b/modules/lang/julia/config.el index 6f3f33358..657574431 100644 --- a/modules/lang/julia/config.el +++ b/modules/lang/julia/config.el @@ -106,12 +106,10 @@ :when (modulep! :term vterm) :hook (julia-mode . julia-snail-mode) :config - (setq julia-snail-popup-display-eval-results :command) - (setq julia-snail-multimedia-enable t) - (setq julia-snail-popup-display-face '(:background base3 :box `(:line-width -1 :color base5))) - (set-popup-rule! "^\\*julia.*\\*$" :ttl nil :select nil :quit nil) + (setq-default julia-snail-multimedia-enable t) + (after! julia-mode (set-repl-handler! 'julia-mode #'+julia/open-snail-repl :persist t From d22fa5a67014f49c1e6b732bbde7737fe9e2f33f Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 20 Mar 2024 03:09:05 -0400 Subject: [PATCH 480/523] fix(vertico): consult-dir: don't guess user from containers The tramp string used to connect to the container uses the first `container-runtime ps` argument as a username, but the first argument returned is the container ID, not a username. Close: #7674 Co-authored-by: bergmannf Co-authored-by: elken --- modules/completion/vertico/config.el | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/modules/completion/vertico/config.el b/modules/completion/vertico/config.el index e15bd0fb7..cce40e94f 100644 --- a/modules/completion/vertico/config.el +++ b/modules/completion/vertico/config.el @@ -201,7 +201,8 @@ orderless." ("C-x C-j" . consult-dir-jump-file)) :config (when (modulep! :tools docker) - ;; TODO Replace with `tramp-container--completion-function' when we drop support for <29 + ;; TODO: Replace with `tramp-container--completion-function' when we drop + ;; support for <29 (defun +vertico--consult-dir-container-hosts (host) "Get a list of hosts from HOST." (cl-loop for line in (cdr @@ -209,10 +210,7 @@ orderless." (apply #'process-lines +vertico-consult-dir-container-executable (append +vertico-consult-dir-container-args (list "ps"))))) for cand = (split-string line "[[:space:]]+" t) - collect (let ((user (unless (string-empty-p (car cand)) - (concat (car cand) "@"))) - (hostname (car (last cand)))) - (format "/%s:%s%s:/" host user hostname)))) + collect (format "/%s:%s:/" host (car (last cand))))) (defun +vertico--consult-dir-podman-hosts () (let ((+vertico-consult-dir-container-executable "podman")) From 367b6711343a483e2dbc181829d8ebe13cea68db Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 20 Mar 2024 12:28:00 -0400 Subject: [PATCH 481/523] refactor(lsp): suffix advice & remove redundancy - Advice functions ought to have a -a suffix. - `eglot-send-changes-idle-time` is already 0.5 upstream, by default. --- modules/tools/lsp/+eglot.el | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/modules/tools/lsp/+eglot.el b/modules/tools/lsp/+eglot.el index 8bf7ed20f..a020a00c1 100644 --- a/modules/tools/lsp/+eglot.el +++ b/modules/tools/lsp/+eglot.el @@ -4,7 +4,7 @@ :commands eglot eglot-ensure :hook (eglot-managed-mode . +lsp-optimization-mode) :init - (defadvice! +eglot--ensure-available-mode (fn) + (defadvice! +eglot--ensure-available-mode-a (fn) "Run `eglot-ensure' if the current mode has support." :around #'eglot-ensure (when (alist-get major-mode eglot-server-programs nil nil @@ -15,7 +15,6 @@ (funcall fn))) (setq eglot-sync-connect 1 eglot-autoshutdown t - eglot-send-changes-idle-time 0.5 ;; NOTE: We disable eglot-auto-display-help-buffer because :select t in ;; its popup rule causes eglot to steal focus too often. eglot-auto-display-help-buffer nil) @@ -44,8 +43,8 @@ (defadvice! +lsp--defer-server-shutdown-a (fn &optional server) "Defer server shutdown for a few seconds. This gives the user a chance to open other project files before the server is -auto-killed (which is a potentially expensive process). It also prevents the -server getting expensively restarted when reverting buffers." +auto-killed (which is a potentially expensive process). It also spares the +server an expensive restart when its buffer is reverted." :around #'eglot--managed-mode (letf! (defun eglot-shutdown (server) (if (or (null +lsp-defer-shutdown) From cd16150b8024808b394b6ac80eeac19751d81233 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 20 Mar 2024 12:30:23 -0400 Subject: [PATCH 482/523] bump: :lang julia JuliaEditorSupport/julia-emacs@7a8c868e0d3e -> JuliaEditorSupport/julia-emacs@2dfc869ff6b3 gcv/julia-snail@d36653bb9380 -> gcv/julia-snail@a25ce847480a non-Jedi/eglot-jl@7dc604fe42a4 -> non-Jedi/eglot-jl@1d9cab682380 --- modules/lang/julia/packages.el | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/lang/julia/packages.el b/modules/lang/julia/packages.el index 5892896be..410dc62b9 100644 --- a/modules/lang/julia/packages.el +++ b/modules/lang/julia/packages.el @@ -1,13 +1,13 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/julia/packages.el -(package! julia-mode :pin "7a8c868e0d3e51ba4a2c621ee22ca9599e0e4bbb") +(package! julia-mode :pin "2dfc869ff6b3878407fe7226669dfaae8d38d541") (package! julia-repl :pin "4947319bc948b3f80d61b0d65a719737275949b8") (when (modulep! +lsp) (if (modulep! :tools lsp +eglot) - (package! eglot-jl :pin "7dc604fe42a459a987853d065cd6d0f3c4cbc02a") + (package! eglot-jl :pin "1d9cab682380f37ca1e9e9933cda13164600706d") (package! lsp-julia :pin "c869b2f6c05a97e5495ed3cc6710a33b4faf41a2"))) (when (modulep! +snail) - (package! julia-snail :pin "d36653bb938050cfabbe3c1ea6d4575071085577")) + (package! julia-snail :pin "a25ce847480a0c2bed24fad3f1ee62904c9c93a5")) From 222dc47060e7151b89a6e34e2b1237de42439589 Mon Sep 17 00:00:00 2001 From: Sean Farley Date: Wed, 20 Mar 2024 20:27:17 -0700 Subject: [PATCH 483/523] feat(vertico): add orderless annotation filtering Ref: oantolin/orderless#162 --- modules/completion/vertico/config.el | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/completion/vertico/config.el b/modules/completion/vertico/config.el index cce40e94f..b5cda2c5b 100644 --- a/modules/completion/vertico/config.el +++ b/modules/completion/vertico/config.el @@ -83,6 +83,9 @@ orderless." ((string= "!" pattern) `(orderless-literal . "")) ;; Without literal ((string-prefix-p "!" pattern) `(orderless-without-literal . ,(substring pattern 1))) + ;; Annotation + ((string-prefix-p "&" pattern) `(orderless-annotation . ,(substring pattern 1))) + ((string-suffix-p "&" pattern) `(orderless-annotation . ,(substring pattern 0 -1))) ;; Character folding ((string-prefix-p "%" pattern) `(char-fold-to-regexp . ,(substring pattern 1))) ((string-suffix-p "%" pattern) `(char-fold-to-regexp . ,(substring pattern 0 -1))) From d3a00ba6af7357f00dd8a99b0a3f46ced766b170 Mon Sep 17 00:00:00 2001 From: Sean Farley Date: Wed, 20 Mar 2024 20:29:06 -0700 Subject: [PATCH 484/523] nit(vertico): fix spelling in some docstrings --- modules/completion/vertico/config.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/completion/vertico/config.el b/modules/completion/vertico/config.el index b5cda2c5b..46656a4c6 100644 --- a/modules/completion/vertico/config.el +++ b/modules/completion/vertico/config.el @@ -230,7 +230,7 @@ orderless." :face consult-file :history file-name-history :items ,#'+vertico--consult-dir-podman-hosts) - "Podman candiadate source for `consult-dir'.") + "Podman candidate source for `consult-dir'.") (defvar +vertico--consult-dir-source-tramp-docker `(:name "Docker" @@ -239,7 +239,7 @@ orderless." :face consult-file :history file-name-history :items ,#'+vertico--consult-dir-docker-hosts) - "Docker candiadate source for `consult-dir'.") + "Docker candidate source for `consult-dir'.") (add-to-list 'consult-dir-sources '+vertico--consult-dir-source-tramp-podman t) (add-to-list 'consult-dir-sources '+vertico--consult-dir-source-tramp-docker t)) From 2bdeabb0cf2b8a5bd4798a47da9b598ab46609e3 Mon Sep 17 00:00:00 2001 From: Sean Farley Date: Wed, 20 Mar 2024 19:54:05 -0700 Subject: [PATCH 485/523] refactor(corfu): consolidate +orderless logic without vertico This tidy ups the corfu module to use the logic when a user enables corfu +orderless without enabling vertico. Since that's probably a niche situation, we only specify commit to pin to orderless in the vertico module so that contributors aren't tripped up with trying to remember to update orderless in two different code locations. Of course, if this turns out to be a more popular use-case we can re-evaluate this logic. --- modules/completion/corfu/config.el | 6 ++++-- modules/completion/corfu/packages.el | 8 ++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/modules/completion/corfu/config.el b/modules/completion/corfu/config.el index 475894fa5..7cd7b5173 100644 --- a/modules/completion/corfu/config.el +++ b/modules/completion/corfu/config.el @@ -55,8 +55,10 @@ use the minibuffer such as `query-replace'.") corfu-count 16 corfu-max-width 120 corfu-on-exact-match nil - corfu-quit-at-boundary (if (modulep! +orderless) 'separator t) - corfu-quit-no-match (if (modulep! +orderless) 'separator t) + corfu-quit-at-boundary (if (or (modulep! :completion vertico) + (modulep! +orderless)) + 'separator t) + corfu-quit-no-match corfu-quit-at-boundary tab-always-indent 'complete) (add-to-list 'completion-category-overrides `(lsp-capf (styles ,@completion-styles))) (add-to-list 'corfu-auto-commands #'lispy-colon) diff --git a/modules/completion/corfu/packages.el b/modules/completion/corfu/packages.el index cf45a992f..3c0e58714 100644 --- a/modules/completion/corfu/packages.el +++ b/modules/completion/corfu/packages.el @@ -5,8 +5,12 @@ (package! cape :pin "a397a0c92de38277b7f835fa999fac400a764908") (when (modulep! +icons) (package! nerd-icons-corfu :pin "7077bb76fefc15aed967476406a19dc5c2500b3c")) -(when (modulep! +orderless) - (package! orderless :pin "b24748093b00b37c3a572c4909f61c08fa27504f")) +(when (and (not (modulep! :completion vertico)) + (modulep! +orderless)) + ;; enabling +orderless without vertico should be fairly niche enough that to + ;; save contributor headaches we should only pin vertico's orderless and leave + ;; this one unpinned + (package! orderless)) (when (modulep! :os tty) (package! corfu-terminal :pin "501548c3d51f926c687e8cd838c5865ec45d03cc")) (when (modulep! :editor snippets) From a83091469b317812be2fe408f5edce665d018a7c Mon Sep 17 00:00:00 2001 From: StrawberryTea Date: Thu, 21 Mar 2024 10:29:50 -0500 Subject: [PATCH 486/523] docs(corfu): debugging cape-dabbrev --- modules/completion/corfu/README.org | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/modules/completion/corfu/README.org b/modules/completion/corfu/README.org index e10d1b17d..541510cb5 100644 --- a/modules/completion/corfu/README.org +++ b/modules/completion/corfu/README.org @@ -244,6 +244,22 @@ doing is to look at the list of buffers Dabbrev is scanning: ... and modify ~dabbrev-ignored-buffer-regexps~ or ~dabbrev-ignored-buffer-modes~ accordingly. +If you see garbage completion candidates, you can use the following command to +debug the issue: + +#+begin_src emacs-lisp +;;;###autoload +(defun search-in-dabbrev-buffers (search-string) + "Search for SEARCH-STRING in all buffers returned by `dabbrev--select-buffers'." + (interactive "sSearch string: ") + (let ((buffers (dabbrev--select-buffers))) + (multi-occur buffers search-string))) + +;; Example usage: +;; Why are these weird characters appearing in my completions? +(search-in-dabbrev-buffers "\342\200\231") +#+end_src + * Frequently asked questions /This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]] From 665d808d09ecba0be1b2de3977950e579bb5daee Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 21 Mar 2024 12:02:02 -0400 Subject: [PATCH 487/523] bump: :ui Alexander-Miller/treemacs@df26b6ab9a0f -> Alexander-Miller/treemacs@8c6df39f01a4 dgutov/diff-hl@b8b2727a72fd -> dgutov/diff-hl@96620839430c doomemacs/themes@ff26f26ea3d7 -> doomemacs/themes@37d2182f5078 jrblevin/deft@28be94d89bff -> jrblevin/deft@bb1a16b87c3e seagle0128/doom-modeline@bf880ae56f3f -> seagle0128/doom-modeline@e09b8e989fa5 --- modules/ui/deft/packages.el | 2 +- modules/ui/doom/packages.el | 2 +- modules/ui/modeline/packages.el | 2 +- modules/ui/treemacs/packages.el | 2 +- modules/ui/vc-gutter/packages.el | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/ui/deft/packages.el b/modules/ui/deft/packages.el index ba3427f57..459447348 100644 --- a/modules/ui/deft/packages.el +++ b/modules/ui/deft/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; ui/deft/packages.el -(package! deft :pin "28be94d89bff2e1c7edef7244d7c5ba0636b1296") +(package! deft :pin "bb1a16b87c3e0fe70fade6227e47dd7712b89bf6") diff --git a/modules/ui/doom/packages.el b/modules/ui/doom/packages.el index 15cc260ba..744147bf2 100644 --- a/modules/ui/doom/packages.el +++ b/modules/ui/doom/packages.el @@ -1,5 +1,5 @@ ;; -*- no-byte-compile: t; -*- ;;; ui/doom/packages.el -(package! doom-themes :pin "ff26f26ea3d761375f5fc4070438fbd0f3473d33") +(package! doom-themes :pin "37d2182f5078d29fb22bbace346e523bb84b2c4e") (package! solaire-mode :pin "8af65fbdc50b25ed3214da949b8a484527c7cc14") diff --git a/modules/ui/modeline/packages.el b/modules/ui/modeline/packages.el index 8bdce9b70..1bc523b24 100644 --- a/modules/ui/modeline/packages.el +++ b/modules/ui/modeline/packages.el @@ -2,7 +2,7 @@ ;;; ui/modeline/packages.el (unless (modulep! +light) - (package! doom-modeline :pin "bf880ae56f3f6aab7bd334de9bd9b455c63a24c0")) + (package! doom-modeline :pin "e09b8e989fa5fc1d98320aaa29d7138631b20ae5")) (package! anzu :pin "26fb50b429ee968eb944b0615dd0aed1dd66172c") (when (modulep! :editor evil) (package! evil-anzu :pin "d1e98ee6976437164627542909a25c6946497899")) diff --git a/modules/ui/treemacs/packages.el b/modules/ui/treemacs/packages.el index 59c5fbdea..123adc09c 100644 --- a/modules/ui/treemacs/packages.el +++ b/modules/ui/treemacs/packages.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; -*- ;;; ui/treemacs/packages.el -(package! treemacs :pin "df26b6ab9a0f467e5ff99f7ed97551ccf756e06c") +(package! treemacs :pin "8c6df39f01a4d47fda2cc943645fa067f771b748") (package! treemacs-nerd-icons :pin "9876cb478145a0ec4e36f64ff6583f3de7126216") ;; These packages have no :pin because they're in the same repo (when (modulep! :editor evil +everywhere) diff --git a/modules/ui/vc-gutter/packages.el b/modules/ui/vc-gutter/packages.el index 2651562a6..3ed651912 100644 --- a/modules/ui/vc-gutter/packages.el +++ b/modules/ui/vc-gutter/packages.el @@ -2,5 +2,5 @@ ;;; ui/vc-gutter/packages.el (if (modulep! +diff-hl) - (package! diff-hl :pin "b8b2727a72fdf64ac98e6cfa136a43cb0cacf72f") + (package! diff-hl :pin "96620839430c1205cbb8c92dd54973397f70f9d2") (package! git-gutter-fringe :pin "648cb5b57faec55711803cdc9434e55a733c3eba")) From cb6e3f0e89ac6e51155409566947af633744f466 Mon Sep 17 00:00:00 2001 From: tecosaur Date: Fri, 22 Mar 2024 22:07:57 +0800 Subject: [PATCH 488/523] fix(modeline,everywhere): adjust checker -> check As part of the recent UI bump (665d808d09ec), the doom-modeline changed the name of the "checker" segment to "check". Amend: 665d808d09ec --- modules/app/everywhere/config.el | 2 +- modules/ui/modeline/README.org | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/app/everywhere/config.el b/modules/app/everywhere/config.el index d0512f754..9f5052784 100644 --- a/modules/app/everywhere/config.el +++ b/modules/app/everywhere/config.el @@ -36,7 +36,7 @@ (doom-modeline-def-modeline 'emacs-everywhere '(bar modals emacs-everywhere buffer-position word-count parrot selection-info) - '(input-method major-mode checker + '(input-method major-mode check #(" " 0 1 ; "Exit to app" icon + a little padding (rear-nonsticky t display (raise -0.25) diff --git a/modules/ui/modeline/README.org b/modules/ui/modeline/README.org index 128babe4f..f472fa83e 100644 --- a/modules/ui/modeline/README.org +++ b/modules/ui/modeline/README.org @@ -96,7 +96,7 @@ Some possible solutions: (after! doom-modeline (doom-modeline-def-modeline 'main '(bar matches buffer-info remote-host buffer-position parrot selection-info) - '(misc-info minor-modes checker input-method buffer-encoding major-mode process vcs " "))) ; <-- added padding here + '(misc-info minor-modes check input-method buffer-encoding major-mode process vcs " "))) ; <-- added padding here #+end_src 2. Use another font for the mode line (or a different ~:height~) (source) From 76b452278fcbe9f6087878568e56d4e5a6f5c677 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 22 Mar 2024 10:04:25 -0400 Subject: [PATCH 489/523] fix(default): restore accidentally gated keybinds These were accidentally gated as part of 6949451 (#7002). Amend: 6949451b00ec Close: #7745 Co-authored-by: raszi --- modules/config/default/+evil-bindings.el | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/modules/config/default/+evil-bindings.el b/modules/config/default/+evil-bindings.el index b07109ebe..7b1539bf8 100644 --- a/modules/config/default/+evil-bindings.el +++ b/modules/config/default/+evil-bindings.el @@ -405,9 +405,12 @@ ;;; c --- code (:prefix-map ("c" . "code") - (:when (and (modulep! :tools lsp) (not (modulep! :tools lsp +eglot))) - :desc "LSP Execute code action" "a" #'lsp-execute-code-action - :desc "LSP Organize imports" "o" #'lsp-organize-imports + (:when (modulep! :tools lsp -eglot) + :desc "LSP Execute code action" "a" #'lsp-execute-code-action + :desc "LSP Organize imports" "o" #'lsp-organize-imports + :desc "LSP" "l" #'+default/lsp-command-map + :desc "LSP Rename" "r" #'lsp-rename + :desc "Symbols" "S" #'lsp-treemacs-symbols (:when (modulep! :completion ivy) :desc "Jump to symbol in current workspace" "j" #'lsp-ivy-workspace-symbol :desc "Jump to symbol in any workspace" "J" #'lsp-ivy-global-workspace-symbol) @@ -421,10 +424,7 @@ :desc "Errors list" "X" #'lsp-treemacs-errors-list :desc "Incoming call hierarchy" "y" #'lsp-treemacs-call-hierarchy :desc "Outgoing call hierarchy" "Y" (cmd!! #'lsp-treemacs-call-hierarchy t) - :desc "References tree" "R" (cmd!! #'lsp-treemacs-references t) - :desc "Symbols" "S" #'lsp-treemacs-symbols - :desc "LSP" "l" #'+default/lsp-command-map - :desc "LSP Rename" "r" #'lsp-rename)) + :desc "References tree" "R" (cmd!! #'lsp-treemacs-references t))) (:when (modulep! :tools lsp +eglot) :desc "LSP Execute code action" "a" #'eglot-code-actions :desc "LSP Rename" "r" #'eglot-rename From 89e6b6849e5bee7fbf5e31f28ef4d4ae6b0ffc0b Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 22 Mar 2024 10:09:45 -0400 Subject: [PATCH 490/523] fix(default): restore accidentally gated keybinds (part 2) I haven't published support for negated flags (e.g. -eglot) yet; this snuck into 76b4522. Amend: 76b452278fcb Ref: #7745 --- modules/config/default/+evil-bindings.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/config/default/+evil-bindings.el b/modules/config/default/+evil-bindings.el index 7b1539bf8..bdd55d7bd 100644 --- a/modules/config/default/+evil-bindings.el +++ b/modules/config/default/+evil-bindings.el @@ -405,7 +405,7 @@ ;;; c --- code (:prefix-map ("c" . "code") - (:when (modulep! :tools lsp -eglot) + (:when (and (modulep! :tools lsp) (not (modulep! :tools lsp +eglot))) :desc "LSP Execute code action" "a" #'lsp-execute-code-action :desc "LSP Organize imports" "o" #'lsp-organize-imports :desc "LSP" "l" #'+default/lsp-command-map From bbadabda511027e515f02ccd7b70291ed03d8945 Mon Sep 17 00:00:00 2001 From: Jonas Jelten Date: Sun, 9 Apr 2023 17:29:43 +0200 Subject: [PATCH 491/523] feat: allow setting evil states for leader keys This allows adjusting the evil-states a leader key is active for. --- lisp/doom-keybinds.el | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lisp/doom-keybinds.el b/lisp/doom-keybinds.el index 210432fc5..31510484e 100644 --- a/lisp/doom-keybinds.el +++ b/lisp/doom-keybinds.el @@ -15,6 +15,12 @@ "An alternative leader prefix key, used for Insert and Emacs states, and for non-evil users.") +(defvar doom-leader-key-states '(normal visual motion) + "which evil modes to activate the leader key for") + +(defvar doom-leader-alt-key-states '(emacs insert) + "which evil modes to activate the alternative leader key for") + (defvar doom-localleader-key "SPC m" "The localleader prefix key, for major-mode specific commands.") @@ -212,8 +218,8 @@ localleader prefix." ((equal doom-leader-alt-key "C-x") (set-keymap-parent doom-leader-map ctl-x-map))) (define-key map (kbd doom-leader-alt-key) 'doom/leader)) - (evil-define-key* '(normal visual motion) map (kbd doom-leader-key) 'doom/leader) - (evil-define-key* '(emacs insert) map (kbd doom-leader-alt-key) 'doom/leader)) + (evil-define-key* doom-leader-key-states map (kbd doom-leader-key) 'doom/leader) + (evil-define-key* doom-leader-alt-key-states map (kbd doom-leader-alt-key) 'doom/leader)) (general-override-mode +1)))) From 506192199fa1332814aba2f09b9e052406c86e34 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 22 Mar 2024 14:24:19 -0400 Subject: [PATCH 492/523] docs(docker): use after! & don't recommend use-package! --- modules/tools/docker/README.org | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/modules/tools/docker/README.org b/modules/tools/docker/README.org index 3af7085c8..bc42c463d 100644 --- a/modules/tools/docker/README.org +++ b/modules/tools/docker/README.org @@ -95,14 +95,8 @@ C-x C-f /docker:$USER@$CONTAINER:/path/to/file Thanks to [[https://github.com/magit/magit-popup][magit-popup]], all the popups default arguments can be customized. For example, here is how to customize the arguments for =docker-image-run-popup=: #+begin_src emacs-lisp -(setq docker-image-run-arguments '("-i" "-t" "--rm")) -#+end_src - -or inside a =use-package= declaration: -#+begin_src emacs-lisp -(use-package! docker - :bind ("C-c d" . docker) - :custom (docker-image-run-arguments '("-i" "-t" "--rm"))) +(after! docker + (setq docker-image-run-arguments '("-i" "-t" "--rm"))) #+end_src *** Other useful variables From 18c88621a422357b4bcce317808125f20320b432 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 22 Mar 2024 14:31:55 -0400 Subject: [PATCH 493/523] refactor(vertico): don't use bind-key This is the only internal usage of :bind, which I want to avoid, because it pulls in bind-key, which offers no real benefit over just about any other key binding function or macro, so I'd rather use what is already available (like map!). --- modules/completion/vertico/config.el | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/modules/completion/vertico/config.el b/modules/completion/vertico/config.el index 46656a4c6..1c88689c1 100644 --- a/modules/completion/vertico/config.el +++ b/modules/completion/vertico/config.el @@ -198,10 +198,13 @@ orderless." (use-package! consult-dir - :bind (([remap list-directory] . consult-dir) + :defer t + :init + (map! [remap list-directory] #'consult-dir + (:after vertico :map vertico-map - ("C-x C-d" . consult-dir) - ("C-x C-j" . consult-dir-jump-file)) + "C-x C-d" #'consult-dir + "C-x C-j" #'consult-dir-jump-file)) :config (when (modulep! :tools docker) ;; TODO: Replace with `tramp-container--completion-function' when we drop From 63c470bff32875098fa5a7f205e0b5eb08247686 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 22 Mar 2024 17:02:26 -0400 Subject: [PATCH 494/523] refactor!(cli): remove compile and clean commands BREAKING CHANGE: This removes the 'doom compile' and 'doom clean' commands, and offers no immediate replacement for them (and no plan to include one). In the future, byte-compilation of Doom's internals will be baked into 'doom sync', but until then, Doom is not optimized to take advantage of byte-compilation, and forcing it provides no benefit. --- bin/doom | 3 - lisp/cli/compile.el | 214 -------------------------------------------- lisp/cli/upgrade.el | 1 - 3 files changed, 218 deletions(-) delete mode 100644 lisp/cli/compile.el diff --git a/bin/doom b/bin/doom index f9d1841e6..012a3cfd9 100755 --- a/bin/doom +++ b/bin/doom @@ -273,8 +273,6 @@ SEE ALSO: (defcli-autoload! (env)) (defcli-autoload! ((build b purge p rollback)) "packages") (defcli-autoload! ((install i))) - (defcli-autoload! ((compile c))) - (defcli-autoload! (clean) "compile") ;; TODO Post-3.0 commands ;; (load! "gc" dir) @@ -282,7 +280,6 @@ SEE ALSO: ;; (load! "nuke" dir) ;; (load! "package" dir) ;; (load! "profile" dir) - ;; (defcli-obsolete! ((compile c)) (sync "--compile") "v3.0.0") ;; (defcli-obsolete! ((build b)) (sync "--rebuild") "v3.0.0") ) diff --git a/lisp/cli/compile.el b/lisp/cli/compile.el deleted file mode 100644 index 88cfed2d9..000000000 --- a/lisp/cli/compile.el +++ /dev/null @@ -1,214 +0,0 @@ -;;; lisp/cli/commands/byte-compile.el -*- lexical-binding: t; -*- - -;; -;;; Variables - -;; None yet! - - -;; -;;; Commands - -(defcli! ((compile c)) - ((recompile-p ("-r" "--recompile")) - (core-p ("-c" "--core")) - (private-p ("-p" "--private")) - (verbose-p ("-v" "--verbose"))) - "Byte-compiles your config or selected modules. - - compile [TARGETS...] - compile :core :user lang/python - compile feature lang - -Accepts :core and :user as special arguments, which target Doom's core files -and your private config files, respectively. To recompile your packages, use -'doom build' instead." - (doom-cli-compile - (if (or core-p private-p) - (append (if core-p (doom-glob doom-emacs-dir "init.el")) - (if core-p (list doom-core-dir)) - (if private-p (list doom-user-dir))) - (or (y-or-n-p - (concat "WARNING: Changes made to your config after compiling it won't take effect until\n" - "this command is rerun or you run 'doom clean'! It will also make error backtraces\n" - "much more difficult to decipher.\n\n" - "If you intend to use it anyway, remember this or it will come back to bite you!\n\n" - "Continue anyway?")) - (user-error "Aborted")) - (append (doom-glob doom-emacs-dir "init.el") - (list doom-core-dir) - (seq-filter - ;; Only compile Doom's modules - (doom-rpartial #'file-in-directory-p doom-emacs-dir) - ;; Omit `doom-user-dir', which is always first - (doom-module-load-path)))) - recompile-p - verbose-p)) - -(defcli! clean () - "Delete all *.elc files." - (doom-compile-clean)) - - -;; -;;; Helpers - -(cl-defun doom-cli-compile (&optional targets recompile-p verbose-p) - "Byte compiles your emacs configuration. - -init.el is always byte-compiled by this. - -If TARGETS is specified, as a list of direcotries - -If MODULES is specified (a list of module strings, e.g. \"lang/php\"), those are -byte-compiled. Otherwise, all enabled modules are byte-compiled, including Doom -core. It always ignores unit tests and files with `no-byte-compile' enabled. - -WARNING: byte-compilation yields marginal gains and makes debugging new issues -difficult. It is recommended you don't use it unless you understand the -reprecussions. - -Use `doom-compile-clean' or `make clean' to reverse -byte-compilation. - -If RECOMPILE-P is non-nil, only recompile out-of-date files." - (let* ((default-directory doom-emacs-dir) - (targets (nreverse (delete-dups targets))) - ;; In case it is changed during compile-time - (auto-mode-alist auto-mode-alist) - kill-emacs-hook kill-buffer-query-functions) - - (let ((after-load-functions - (if (null targets) - after-load-functions - ;; Assemble el files we want to compile, and preserve in the order - ;; they are loaded in, so we don't run into any scary catch-22s - ;; while byte-compiling, like missing macros. - (cons (let ((target-dirs (seq-filter #'file-directory-p targets))) - (lambda (path) - (and (not (doom-compile--ignore-file-p path)) - (seq-find (doom-partial #'file-in-directory-p path) - target-dirs) - (cl-pushnew path targets)))) - after-load-functions)))) - (doom-log "Reloading Doom in preparation for byte-compilation") - ;; But first we must be sure that Doom and your private config have been - ;; fully loaded. Which usually aren't so in an noninteractive session. - (let ((load-prefer-newer t)) - (require 'doom-start))) - - (if (null targets) - (print! (item "No targets to %scompile" (if recompile-p "re" ""))) - (print! (start "%scompiling your config...") - (if recompile-p "Re" "Byte-")) - - (dolist (dir - (cl-remove-if-not #'file-directory-p targets) - (setq targets (cl-remove-if #'file-directory-p targets))) - (prependq! targets - (doom-files-in - dir :match "\\.el" :filter #'doom-compile--ignore-file-p))) - - (print-group! - (require 'use-package) - (condition-case-unless-debug e - (let* ((total-ok 0) - (total-fail 0) - (total-noop 0) - (byte-compile-verbose nil) - (byte-compile-warnings '(not free-vars unresolved noruntime lexical make-local)) - (byte-compile-dynamic-docstrings t) - (use-package-compute-statistics nil) - (use-package-defaults use-package-defaults) - (use-package-expand-minimally t) - (targets (delete-dups targets)) - (modules (seq-group-by #'doom-module-from-path targets)) - (total-files (length targets)) - (total-modules (length modules)) - (i 0) - last-module) - ;; Prevent packages from being loaded at compile time if they - ;; don't meet their own predicates. - (push (list :no-require t - (lambda (_name args) - (or (when-let (pred (or (plist-get args :if) - (plist-get args :when))) - (not (eval pred t))) - (when-let (pred (plist-get args :unless)) - (eval pred t))))) - use-package-defaults) - (dolist (module-files modules) - (cl-incf i) - (dolist (target (cdr module-files)) - (let ((elc-file (byte-compile-dest-file target))) - (cl-incf - (if (and recompile-p (not (file-newer-than-file-p target elc-file))) - total-noop - (pcase (if (not (doom-file-cookie-p target "if" t)) - 'no-byte-compile - (unless (equal last-module (car module-files)) - (print! (success "(% 3d/%d) Compiling %s") - i total-modules - (if-let (m (caar module-files)) - (format "%s %s module..." m (cdar module-files)) - (format "%d stand alone elisp files..." - (length (cdr module-files)))) - (caar module-files) (cdar module-files)) - (setq last-module (car module-files))) - (if verbose-p - (byte-compile-file target) - (quiet! (byte-compile-file target)))) - (`no-byte-compile - (doom-log "(% 3d/%d) Ignored %s" i total-modules target) - total-noop) - (`nil - (print! (error "(% 3d/%d) Failed to compile %s") - i total-modules (relpath target)) - total-fail) - (_ total-ok))))))) - (print! (class (if (= total-fail 0) 'success 'warn) - "%s %d/%d file(s) (%d ignored)") - (if recompile-p "Recompiled" "Byte-compiled") - total-ok total-files - total-noop) - (= total-fail 0)) - ((debug error) - (print! (error "There were breaking errors.\n\n%s") - "Reverting changes...") - (signal 'doom-error (list 'byte-compile e)))))))) - -(defun doom-compile--ignore-file-p (path) - (let ((filename (file-name-nondirectory path))) - (or (not (equal (file-name-extension path) "el")) - (member filename (list doom-module-packages-file "doctor.el")) - (string-prefix-p "." filename) - (string-prefix-p "test-" filename) - (string-prefix-p "flycheck_" filename) - (string-suffix-p ".example.el" filename)))) - -(defun doom-compile-clean () - "Delete all the compiled elc files in your Emacs configuration and private -module. This does not include your byte-compiled, third party packages.'" - (require 'doom-modules) - (print! (start "Cleaning .elc files")) - (print-group! - (cl-loop with default-directory = doom-emacs-dir - with success = 0 - with esc = (if init-file-debug "" "\033[1A") - for path - in (append (doom-glob doom-emacs-dir "*.elc") - (doom-files-in doom-user-dir :match "\\.elc$" :depth 1) - (doom-files-in doom-core-dir :match "\\.elc$") - (doom-files-in doom-module-load-path :match "\\.elc$" :depth 4)) - if (file-exists-p path) - do (delete-file path) - and do (print! (success "\033[KDeleted %s%s") (relpath path) esc) - and do (cl-incf success) - finally do - (print! (if (> success 0) - (success "\033[K%d elc files deleted" success) - (item "\033[KNo elc files to clean")))) - t)) - -(provide 'doom-cli-compile) -;;; compile.el ends here diff --git a/lisp/cli/upgrade.el b/lisp/cli/upgrade.el index f8584a583..58765c56a 100644 --- a/lisp/cli/upgrade.el +++ b/lisp/cli/upgrade.el @@ -3,7 +3,6 @@ ;;; Code: (load! "packages") -(load! "compile") ;; From 1fa8d3a4b99275a1bad2aba8e9195c282b49b12d Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 22 Mar 2024 17:25:55 -0400 Subject: [PATCH 495/523] fix(cli): retry on failure to clone packages (or abort) Something often reported are file-missing errors when a package that should be present isn't. This can easily happen if, say, during a 'doom sync' or 'doom upgrade' a package fails to clone correctly and the user misses the errors, then tries to carry on as normal. What's worse is that Straight leaves behind an empty directory, which it treats as a sign that the package has been cloned correctly, so it doesn't raise any fuss over them. With this change, 'doom sync' (and 'doom upgrade') will now try again, if the clone process fails the first time (up to 3 times) before aborting the whole process altogether, which should be loud enough for users not to miss. Note that these failures at 99.99% because of network (or upstream downtime) issues. For now, this does leave Doom in an incomplete state (until you try again when the connection issue is resolved), but a rollback step will be added in v3 to prevent this, as well as better error messages (as well as @doomelpa mirror for packages on less reliable hosts, like codeberg, savannah, etc). --- lisp/cli/packages.el | 56 ++++++++++++++++++++++++++++---------------- 1 file changed, 36 insertions(+), 20 deletions(-) diff --git a/lisp/cli/packages.el b/lisp/cli/packages.el index 1cd6d4d45..712035b05 100644 --- a/lisp/cli/packages.el +++ b/lisp/cli/packages.el @@ -283,26 +283,42 @@ declaration) or dependency thereof that hasn't already been." (if-let (built (doom-packages--with-recipes (doom-package-recipe-list) (recipe package type local-repo) - (unless (file-directory-p (straight--repos-dir local-repo)) - (doom-packages--cli-recipes-update)) - (condition-case-unless-debug e - (let ((straight-use-package-pre-build-functions - (cons (lambda (pkg &rest _) - (when-let (commit (cdr (assoc pkg pinned))) - (print! (item "Checked out %s: %s") pkg commit))) - straight-use-package-pre-build-functions))) - (straight-use-package (intern package)) - ;; HACK Line encoding issues can plague repos with dirty - ;; worktree prompts when updating packages or "Local - ;; variables entry is missing the suffix" errors when - ;; installing them (see hlissner/doom-emacs#2637), so - ;; have git handle conversion by force. - (when (and doom--system-windows-p (stringp local-repo)) - (let ((default-directory (straight--repos-dir local-repo))) - (when (file-in-directory-p default-directory straight-base-dir) - (straight--process-run "git" "config" "core.autocrlf" "true"))))) - (error - (signal 'doom-package-error (list package e)))))) + (let ((repo-dir (straight--repos-dir local-repo))) + (unless (file-directory-p repo-dir) + (doom-packages--cli-recipes-update)) + (condition-case-unless-debug e + (let ((straight-use-package-pre-build-functions + (cons (lambda (pkg &rest _) + (when-let (commit (cdr (assoc pkg pinned))) + (print! (item "Checked out %s: %s") pkg commit))) + straight-use-package-pre-build-functions))) + ;; HACK: Straight can sometimes fail to clone a repo, + ;; leaving behind an empty directory which, in future + ;; invocations, it will assume indicates a successful + ;; clone (causing load errors later). + (let ((try 0)) + (while (or (not (file-directory-p repo-dir)) + (directory-empty-p repo-dir)) + (if (= try 3) + (error "Failed to clone package") + (when (> try 0) + (print! "Failed to clone %S, trying again (attempt #%d)..." package (1+ try)))) + (delete-file (file-name-concat (straight--modified-dir) package)) + (delete-directory repo-dir t) + (delete-directory (straight--build-dir package) t) + (straight-use-package (intern package)) + (cl-incf try))) + ;; HACK: Line encoding issues can plague repos with + ;; dirty worktree prompts when updating packages or + ;; "Local variables entry is missing the suffix" + ;; errors when installing them (see #2637), so have + ;; git handle conversion by force. + (when (and doom--system-windows-p (stringp local-repo)) + (let ((default-directory (straight--repos-dir local-repo))) + (when (file-in-directory-p default-directory straight-base-dir) + (straight--process-run "git" "config" "core.autocrlf" "true"))))) + (error + (signal 'doom-package-error (list package e))))))) (progn (when (featurep 'native-compile) (doom-packages--compile-site-files) From cff091982e4197db48cd5749a9a0700d47aa9944 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 24 Mar 2024 17:38:40 -0400 Subject: [PATCH 496/523] fix(cli): rewrite 'doom sync'; deprecate 'doom build' This changes 'doom sync' to be smarter about responding to changed package recipes/pins, changes in Emacs version, or instances where the user has copied a config to a new system. In all these cases, the user would formerly have to know about a specific combination of 'doom sync -u' and 'doom build' to ensure Doom is in a good state. With this change, 'doom sync' handles all these cases. Also, 'doom build' is now deprecated (and 'doom sync' now has a --rebuild option to mimic its old behavior). Also also, sometimes, a package may silently fail when cloned (which used to result in an empty repo). Now, if this is detected, cloning will be re-attempted up to 3 times before aborting with much more visible error. Note: these are stopgap solutions, until v3 is finished. --- README.md | 2 - bin/doom | 1 - docs/faq.org | 7 +- lisp/cli/packages.el | 323 +++++++++++++++++++------------------------ lisp/cli/sync.el | 72 +++++++--- lisp/cli/upgrade.el | 2 +- 6 files changed, 195 insertions(+), 212 deletions(-) diff --git a/README.md b/README.md index 40f5211b8..0da6c941b 100644 --- a/README.md +++ b/README.md @@ -138,8 +138,6 @@ commands you should know about: + `doom env` to dump a snapshot of your shell environment to a file that Doom will load at startup. This allows Emacs to inherit your `PATH`, among other things. -+ `doom build` to recompile all installed packages (use this if you up/downgrade - Emacs). # Roadmap diff --git a/bin/doom b/bin/doom index 012a3cfd9..edf978ea7 100755 --- a/bin/doom +++ b/bin/doom @@ -280,7 +280,6 @@ SEE ALSO: ;; (load! "nuke" dir) ;; (load! "package" dir) ;; (load! "profile" dir) - ;; (defcli-obsolete! ((build b)) (sync "--rebuild") "v3.0.0") ) (defcli-group! "Diagnostics" diff --git a/docs/faq.org b/docs/faq.org index 480ae45a0..5179ccb86 100644 --- a/docs/faq.org +++ b/docs/faq.org @@ -402,14 +402,13 @@ This command is never needed for changes to =$DOOMDIR/config.el=. ** Copy or sync my config to another system? *Short answer:* it is safe to sync =$DOOMDIR= across systems, but not -=$EMACSDIR=. Once moved, use ~$ doom sync && doom build~ to ensure everything is -set up correctly. +=$EMACSDIR=. Once moved, use ~$ doom sync~ to ensure everything is set up +correctly. *Long answer:* packages can contain baked-in absolute paths and non-portable byte-code. It is never a good idea to mirror it across multiple systems, unless they are all the same (same OS, same version of Emacs, same paths). Most issues -should be solved by running ~$ doom sync && doom build~ on the other end, once -moved. +should be solved by running ~$ doom sync~ on the other end, once moved. ** Start over, in case something went terribly wrong? Delete =$EMACSDIR/.local/straight= and run ~$ doom sync~. diff --git a/lisp/cli/packages.el b/lisp/cli/packages.el index 712035b05..17f5eaf7e 100644 --- a/lisp/cli/packages.el +++ b/lisp/cli/packages.el @@ -13,25 +13,8 @@ ;; ;;; Commands -(defcli! (:before (build b purge p)) (&context context) - (require 'comp nil t) - (doom-initialize-core-packages)) +(defcli-obsolete! ((build b)) (sync "--rebuild") "v3.0.0") -;; DEPRECATED Replace with "doom sync --rebuild" -(defcli! ((build b)) - ((rebuild-p ("-r") "Only rebuild packages that need rebuilding") - (jobs ("-j" "--jobs" num) "How many CPUs to use for native compilation")) - "Byte-compiles & symlinks installed packages. - -This ensures that all needed files are symlinked from their package repo and -their elisp files are byte-compiled. This is especially necessary if you upgrade -Emacs (as byte-code is generally not forward-compatible)." - :benchmark t - (when jobs - (setq native-comp-async-jobs-number (truncate jobs))) - (when (doom-packages-build (not rebuild-p)) - (doom-profile-generate)) - t) ;; TODO Rename to "doom gc" and move to its own file (defcli! ((purge p)) @@ -50,6 +33,8 @@ possible. It is a good idea to occasionally run this doom purge -g to ensure your package list remains lean." :benchmark t + (require 'comp nil t) + (doom-initialize-core-packages) (straight-check-all) (when (doom-packages-purge (not noelpa-p) @@ -242,170 +227,149 @@ list remains lean." (defun doom-packages--write-missing-eln-errors () "Write .error files for any expected .eln files that are missing." - (when (featurep 'native-compile) - (cl-loop for file in doom-packages--eln-output-expected - for eln-name = (doom-packages--eln-file-name file) - for eln-file = (doom-packages--eln-output-file eln-name) - for error-file = (doom-packages--eln-error-file eln-name) - for error-dir = (file-name-directory error-file) - unless (or (file-exists-p eln-file) - (file-newer-than-file-p error-file file) - (not (file-writable-p error-dir))) - do (make-directory error-dir 'parents) - (write-region "" nil error-file) - (doom-log "Wrote %s" error-file)) - (setq doom-packages--eln-output-expected nil))) + (cl-loop for file in doom-packages--eln-output-expected + for eln-name = (doom-packages--eln-file-name file) + for eln-file = (doom-packages--eln-output-file eln-name) + for error-file = (doom-packages--eln-error-file eln-name) + for error-dir = (file-name-directory error-file) + unless (or (file-exists-p eln-file) + (file-newer-than-file-p error-file file) + (not (file-writable-p error-dir))) + do (make-directory error-dir 'parents) + (write-region "" nil error-file) + (doom-log "Wrote %s" error-file)) + (setq doom-packages--eln-output-expected nil)) (defun doom-packages--compile-site-files () "Queue async compilation for all non-doom Elisp files." - (when (featurep 'native-compile) - (cl-loop with paths = (cl-loop for path in load-path - unless (file-in-directory-p path doom-local-dir) - collect path) - for file in (doom-files-in paths :match "\\.el\\(?:\\.gz\\)?$") - if (and (file-exists-p (byte-compile-dest-file file)) - (not (doom-packages--find-eln-file (doom-packages--eln-file-name file))) - (not (cl-some (fn! (string-match-p % file)) - native-comp-deferred-compilation-deny-list))) do - (doom-log "Compiling %s" file) - (native-compile-async file)))) + (cl-loop with paths = (cl-loop for path in load-path + unless (file-in-directory-p path doom-local-dir) + collect path) + for file in (doom-files-in paths :match "\\.el\\(?:\\.gz\\)?$") + if (and (file-exists-p (byte-compile-dest-file file)) + (not (doom-packages--find-eln-file (doom-packages--eln-file-name file))) + (not (cl-some (fn! (string-match-p % file)) + native-comp-deferred-compilation-deny-list))) do + (doom-log "Compiling %s" file) + (native-compile-async file))) -(defun doom-packages-install () - "Installs missing packages. - -This function will install any primary package (i.e. a package with a `package!' -declaration) or dependency thereof that hasn't already been." +(defun doom-packages-ensure (&optional force-p) + "Ensure packages are installed, built" (doom-initialize-packages) - (print! (start "Installing packages...")) - (let ((pinned (doom-package-pinned-list))) - (print-group! - (add-hook 'native-comp-async-cu-done-functions #'doom-packages--native-compile-done-h) - (if-let (built - (doom-packages--with-recipes (doom-package-recipe-list) - (recipe package type local-repo) - (let ((repo-dir (straight--repos-dir local-repo))) - (unless (file-directory-p repo-dir) - (doom-packages--cli-recipes-update)) - (condition-case-unless-debug e - (let ((straight-use-package-pre-build-functions - (cons (lambda (pkg &rest _) - (when-let (commit (cdr (assoc pkg pinned))) - (print! (item "Checked out %s: %s") pkg commit))) - straight-use-package-pre-build-functions))) - ;; HACK: Straight can sometimes fail to clone a repo, - ;; leaving behind an empty directory which, in future - ;; invocations, it will assume indicates a successful - ;; clone (causing load errors later). - (let ((try 0)) - (while (or (not (file-directory-p repo-dir)) - (directory-empty-p repo-dir)) - (if (= try 3) - (error "Failed to clone package") - (when (> try 0) - (print! "Failed to clone %S, trying again (attempt #%d)..." package (1+ try)))) - (delete-file (file-name-concat (straight--modified-dir) package)) - (delete-directory repo-dir t) - (delete-directory (straight--build-dir package) t) - (straight-use-package (intern package)) - (cl-incf try))) - ;; HACK: Line encoding issues can plague repos with - ;; dirty worktree prompts when updating packages or - ;; "Local variables entry is missing the suffix" - ;; errors when installing them (see #2637), so have - ;; git handle conversion by force. - (when (and doom--system-windows-p (stringp local-repo)) - (let ((default-directory (straight--repos-dir local-repo))) - (when (file-in-directory-p default-directory straight-base-dir) - (straight--process-run "git" "config" "core.autocrlf" "true"))))) - (error - (signal 'doom-package-error (list package e))))))) - (progn - (when (featurep 'native-compile) - (doom-packages--compile-site-files) - (doom-packages--wait-for-native-compile-jobs) - (doom-packages--write-missing-eln-errors)) - (print! (success "\033[KInstalled %d packages") (length built))) - (print! (item "No packages need to be installed")) - nil)))) - - -(defun doom-packages-build (&optional force-p) - "(Re)build all packages." - (doom-initialize-packages) - (print! (start "(Re)building %spackages...") (if force-p "all " "")) + (if (not (file-directory-p (straight--repos-dir))) + (print! (start "Installing all packages for the first time (this may take a while)...")) + (if force-p + (print! (start "Rebuilding all packages (this may take a while)...")) + (print! (start "Ensuring packages are installed and built...")))) (print-group! - (let ((straight-check-for-modifications - (when (file-directory-p (straight--modified-dir)) - '(find-when-checking))) - (straight--allow-find - (and straight-check-for-modifications - (executable-find straight-find-executable) - t)) - (straight--packages-not-to-rebuild - (or straight--packages-not-to-rebuild (make-hash-table :test #'equal))) - (straight--packages-to-rebuild - (or (if force-p :all straight--packages-to-rebuild) - (make-hash-table :test #'equal))) - (recipes (doom-package-recipe-list))) - (add-hook 'native-comp-async-cu-done-functions #'doom-packages--native-compile-done-h) - (unless force-p - (straight--make-build-cache-available)) - (if-let (built - (doom-packages--with-recipes recipes (package local-repo recipe) - (unless force-p - ;; Ensure packages with outdated files/bytecode are rebuilt - (let* ((build-dir (straight--build-dir package)) - (repo-dir (straight--repos-dir local-repo)) - (build (if (plist-member recipe :build) - (plist-get recipe :build) - t)) - (want-byte-compile - (or (eq build t) - (memq 'compile build))) - (want-native-compile - (or (eq build t) - (memq 'native-compile build)))) - (and (eq (car-safe build) :not) - (setq want-byte-compile (not want-byte-compile) - want-native-compile (not want-native-compile))) - (unless (featurep 'native-compile) - (setq want-native-compile nil)) - (and (or want-byte-compile want-native-compile) - (or (file-newer-than-file-p repo-dir build-dir) - (file-exists-p (straight--modified-dir (or local-repo package))) - (cl-loop with outdated = nil - for file in (doom-files-in build-dir :match "\\.el$" :full t) - if (or (if want-byte-compile (doom-packages--elc-file-outdated-p file)) - (if want-native-compile (doom-packages--eln-file-outdated-p file))) - do (setq outdated t) + (let ((straight-check-for-modifications + (when (file-directory-p (straight--modified-dir)) + '(find-when-checking))) + (straight--allow-find + (and straight-check-for-modifications + (executable-find straight-find-executable) + t)) + (straight--packages-not-to-rebuild + (or straight--packages-not-to-rebuild (make-hash-table :test #'equal))) + (straight--packages-to-rebuild + (or (if force-p :all straight--packages-to-rebuild) + (make-hash-table :test #'equal))) + (recipes (doom-package-recipe-list)) + (pinned (doom-package-pinned-list))) + (add-hook 'native-comp-async-cu-done-functions #'doom-packages--native-compile-done-h) + (straight--make-build-cache-available) + (if-let (built + (doom-packages--with-recipes recipes (package local-repo recipe) + (let ((repo-dir (straight--repos-dir (or local-repo package))) + (build-dir (straight--build-dir package))) + (unless force-p + ;; Ensure packages with outdated files/bytecode are rebuilt + (let* ((build (if (plist-member recipe :build) + (plist-get recipe :build) + t)) + (want-byte-compile + (or (eq build t) + (memq 'compile build))) + (want-native-compile + (or (eq build t) + (memq 'native-compile build)))) + (and (eq (car-safe build) :not) + (setq want-byte-compile (not want-byte-compile) + want-native-compile (not want-native-compile))) + (unless (featurep 'native-compile) + (setq want-native-compile nil)) + (and (or want-byte-compile want-native-compile) + (or (file-newer-than-file-p repo-dir build-dir) + (file-exists-p (straight--modified-dir (or local-repo package))) + (cl-loop with outdated = nil + for file in (doom-files-in build-dir :match "\\.el$" :full t) + if (or (if want-byte-compile (doom-packages--elc-file-outdated-p file)) + (if want-native-compile (doom-packages--eln-file-outdated-p file))) + do (setq outdated t) (when want-native-compile (push file doom-packages--eln-output-expected)) - finally return outdated)) - (puthash package t straight--packages-to-rebuild)))) - (straight-use-package (intern package)))) - (progn - (when (featurep 'native-compile) - (doom-packages--compile-site-files) - (doom-packages--wait-for-native-compile-jobs) - (doom-packages--write-missing-eln-errors)) - ;; HACK Every time you save a file in a package that straight tracks, - ;; it is recorded in ~/.emacs.d/.local/straight/modified/. - ;; Typically, straight will clean these up after rebuilding, but - ;; Doom's use-case circumnavigates that, leaving these files - ;; there and causing a rebuild of those packages each time `doom - ;; sync' or similar is run, so we clean it up ourselves: - (delete-directory (straight--modified-dir) 'recursive) - (print! (success "\033[KRebuilt %d package(s)") (length built))) - (print! (item "No packages need rebuilding")) - nil)))) + finally return outdated)) + (puthash package t straight--packages-to-rebuild)))) + (unless (file-directory-p repo-dir) + (doom-packages--cli-recipes-update)) + (condition-case-unless-debug e + (let ((straight-vc-git-post-clone-hook + (cons (lambda! (&key repo-dir commit) + (print-group! + (if-let (pin (cdr (assoc package pinned))) + (print! (item "Pinned to %s") pin) + (print! (item "Checked out %s") commit))) + ;; HACK: Line encoding issues can plague + ;; repos with dirty worktree prompts + ;; when updating packages or "Local + ;; variables entry is missing the + ;; suffix" errors when installing them + ;; (see #2637), so have git handle + ;; conversion by force. + (when (and doom--system-windows-p (stringp repo-dir)) + (let ((default-directory repo-dir)) + (when (file-in-directory-p default-directory straight-base-dir) + (straight--process-run "git" "config" "core.autocrlf" "true"))))) + straight-vc-git-post-clone-hook))) + (straight-use-package (intern package)) + ;; HACK: Straight can sometimes fail to clone a repo, + ;; leaving behind an empty directory which, in future + ;; invocations, it will assume indicates a successful + ;; clone (causing load errors later). + (let ((try 0)) + (while (or (not (file-directory-p repo-dir)) + (directory-empty-p repo-dir)) + (when (= try 3) + (error "Failed to clone package")) + (print! "Failed to clone %S, trying again (attempt #%d)..." package (1+ try)) + (delete-directory repo-dir t) + (delete-directory build-dir t) + (straight-use-package (intern package)) + (cl-incf try)))) + (error + (signal 'doom-package-error (list package e))))))) + (progn + (when (featurep 'native-compile) + (doom-packages--compile-site-files) + (doom-packages--wait-for-native-compile-jobs) + (doom-packages--write-missing-eln-errors)) + ;; HACK: Every time you save a file in a package that straight + ;; tracks, it is recorded in ~/.emacs.d/.local/straight/modified/. + ;; Typically, straight will clean these up after rebuilding, but + ;; Doom's use-case circumnavigates that, leaving these files there + ;; and causing a rebuild of those packages each time `doom sync' + ;; or similar is run, so we clean it up ourselves: + (delete-directory (straight--modified-dir) 'recursive) + (print! (success "\033[KBuilt %d package(s)") (length built))) + (print! (item "No packages need attention")) + nil)))) -(defun doom-packages-update () +(defun doom-packages-update (&optional pinned-only-p) "Updates packages." (doom-initialize-packages) (doom-packages--barf-if-incomplete) - (doom-packages--cli-recipes-update) (let* ((repo-dir (straight--repos-dir)) (pinned (doom-package-pinned-list)) (recipes (doom-package-recipe-list)) @@ -413,9 +377,10 @@ declaration) or dependency thereof that hasn't already been." (repos-to-rebuild (make-hash-table :test 'equal)) (total (length recipes)) (esc (unless init-file-debug "\033[1A")) - (i 0) - errors) - (print! (start "Updating packages (this may take a while)...")) + (i 0)) + (if pinned-only-p + (print! (start "Updating pinned packages...")) + (print! (start "Updating all packages (this may take a while)..."))) (doom-packages--with-recipes recipes (recipe package type local-repo) (cl-incf i) (print-group! @@ -428,11 +393,13 @@ declaration) or dependency thereof that hasn't already been." (cl-return)) (let ((default-directory (straight--repos-dir local-repo))) (unless (file-in-directory-p default-directory repo-dir) - (print! (warn "(%d/%d) Skipping %s because it is local") i total package) + (print! (warn "(%d/%d) Skipping %s because it is out-of-tree...") i total package) (cl-return)) (when (eq type 'git) (unless (file-exists-p ".git") (error "%S is not a valid repository" package))) + (when (and pinned-only-p (not (assoc local-repo pinned))) + (cl-return)) (condition-case-unless-debug e (let ((ref (straight-vc-get-commit type local-repo)) (target-ref @@ -446,13 +413,6 @@ declaration) or dependency thereof that hasn't already been." (doom-packages--straight-with (straight-vc-fetch-from-remote recipe) (when .it (straight-merge-package package) - ;; (condition-case e - ;; (straight-merge-package package) - ;; (wrong-type-argument - ;; (if (not (equal (cdr e) '(arrayp nil))) - ;; (signal (car e) (cdr e)) - ;; (delete-directory (straight--build-dir local-repo) t) - ;; (straight-use-package (intern package))))) (setq target-ref (straight-vc-get-commit type local-repo)) (setq output (doom-packages--commit-log-between ref target-ref) commits (length (split-string output "\n" t))) @@ -480,7 +440,7 @@ declaration) or dependency thereof that hasn't already been." (straight-vc-git-default-clone-depth 'full)) (delete-directory repo 'recursive) (print-group! - (straight-use-package (intern package) nil 'no-build)) + (straight-use-package (intern package) nil 'no-build)) (prog1 (file-directory-p repo) (or (not (eq type 'git)) (setq output (doom-packages--commit-log-between ref target-ref) @@ -536,13 +496,14 @@ declaration) or dependency thereof that hasn't already been." (princ "\033[K") (if (hash-table-empty-p packages-to-rebuild) (ignore (print! (success "All %d packages are up-to-date") total)) + (doom-packages--cli-recipes-update) (straight--transaction-finalize) (let ((default-directory (straight--build-dir))) (mapc (doom-rpartial #'delete-directory 'recursive) (hash-table-keys packages-to-rebuild))) (print! (success "Updated %d package(s)") (hash-table-count packages-to-rebuild)) - (doom-packages-build) + (doom-packages-ensure) t)))) diff --git a/lisp/cli/sync.el b/lisp/cli/sync.el index 5b042d3bb..b767c2a3a 100644 --- a/lisp/cli/sync.el +++ b/lisp/cli/sync.el @@ -14,18 +14,21 @@ (defvar doom-before-sync-hook () "Hooks run before 'doom sync' synchronizes the user's config with Doom.") +(defvar doom-cli-sync-info-file (file-name-concat doom-profile-data-dir "sync")) + ;; ;;; Commands -(defcli-alias! (:before (sync s)) (:before build)) - (defcli! ((sync s)) ((noenvvar? ("-e") "Don't regenerate the envvar file") - (noelc? ("-c") "Don't recompile config") - (update? ("-u") "Update installed packages after syncing") + (update? ("-u") "Update all installed packages after syncing") + (noupdate? ("-U") "Don't update any packages") (purge? ("-p") "Purge orphaned package repos & regraft them") - (jobs ("-j" "--jobs" num) "How many CPUs to use for native compilation")) + (jobs ("-j" "--jobs" num) "How many threads to use for native compilation") + (rebuild? ("-b" "--rebuild") "Rebuild, compile, & symlink installed packages") + (auto? ("-B") "Rebuild packages, but only if necessary") + &context context) "Synchronize your config with Doom Emacs. This is the equivalent of running autoremove, install, autoloads, then @@ -33,8 +36,10 @@ recompile. Run this whenever you: 1. Modify your `doom!' block, 2. Add or remove `package!' blocks to your config, - 3. Add or remove autoloaded functions in module autoloaded files. - 4. Update Doom outside of Doom (e.g. with git) + 3. Add or remove autoloaded functions in module autoloaded files, + 4. Update Doom outside of Doom (e.g. with git), + 5. Move your Doom config (either $EMACSDIR or $DOOMDIR) to a new location. + 6. When you up (or down) grade Emacs itself. It will ensure that unneeded packages are removed, all needed packages are installed, autoloads files are up-to-date and no byte-compiled files have gone @@ -47,26 +52,47 @@ OPTIONS: :benchmark t (when (doom-profiles-bootloadable-p) (call! '(profiles sync "--reload"))) - (run-hooks 'doom-before-sync-hook) - (add-hook 'kill-emacs-hook #'doom-sync--abort-warning-h) + (when (doom-cli-context-suppress-prompts-p context) + (setq auto? t)) (when jobs (setq native-comp-async-jobs-number (truncate jobs))) - (print! (start "Synchronizing %S profile..." ) - (or (car doom-profile) "default")) + (run-hooks 'doom-before-sync-hook) + (add-hook 'kill-emacs-hook #'doom-sync--abort-warning-h) + (print! (item "Using Emacs %s @ %s") emacs-version (path invocation-directory invocation-name)) + (print! (start "Synchronizing %S profile..." ) (or (car doom-profile) "default")) (unwind-protect (print-group! - (when (and (not noenvvar?) - (file-exists-p doom-env-file)) - (call! '(env))) - (doom-packages-install) - (doom-packages-build) - (when update? - (doom-packages-update)) - (doom-packages-purge purge? purge? purge? purge? purge?) - (when (doom-profile-generate) - (print! (item "Restart Emacs or use 'M-x doom/reload' for changes to take effect")) - (run-hooks 'doom-after-sync-hook)) - t) + ;; If the user has up/downgraded Emacs since last sync, or copied their + ;; config to a different system, then their packages need to be + ;; recompiled. This is necessary because Emacs byte-code is not + ;; necessarily back/forward compatible across major versions, and many + ;; packages bake in hardcoded data at compile-time. + (pcase-let ((`(,old-version . ,old-host) (doom-file-read doom-cli-sync-info-file :by 'read :noerror t)) + (to-rebuild nil)) + (when (and old-version (not (equal old-version emacs-version))) + (print! (warn "Emacs version has changed since last sync (from %s to %s)") old-version emacs-version) + (setq to-rebuild t)) + (when (and old-host (not (equal old-host (system-name)))) + (print! (warn "Your system has changed since last sync")) + (setq to-rebuild t)) + (when (and to-rebuild (not auto?)) + (or (y-or-n-p + (format! " %s" "Your installed packages will need to be recompiled. Do so now?")) + (exit! 0)) + (setq rebuild? t))) + (when (and (not noenvvar?) + (file-exists-p + (file-name-concat doom-profile-dir + doom-profile-env-file-name))) + (call! '(env))) + (doom-packages-ensure rebuild?) + (unless noupdate? (doom-packages-update (not update?))) + (doom-packages-purge purge? purge? purge? purge? purge?) + (when (doom-profile-generate) + (print! (item "Restart Emacs or use 'M-x doom/reload' for changes to take effect")) + (run-hooks 'doom-after-sync-hook)) + (with-temp-file doom-cli-sync-info-file (prin1 (cons emacs-version (system-name)) (current-buffer))) + t) (remove-hook 'kill-emacs-hook #'doom-sync--abort-warning-h))) diff --git a/lisp/cli/upgrade.el b/lisp/cli/upgrade.el index 58765c56a..9f44d6e93 100644 --- a/lisp/cli/upgrade.el +++ b/lisp/cli/upgrade.el @@ -32,7 +32,7 @@ following shell commands: doom clean doom sync -u" (let* ((force? (doom-cli-context-suppress-prompts-p context)) - (sync-cmd (append '("sync" "-u") (if jobs `("-j" ,num))))) + (sync-cmd (append '("sync" "-u" "-B") (if jobs `("-j" ,num))))) (cond (packages? ;; HACK It's messy to use straight to upgrade straight, due to the From 2591201aa10ebaa611aeb1e9d35619723c70b541 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 24 Mar 2024 17:43:26 -0400 Subject: [PATCH 497/523] refactor(cli): rename 'doom purge' -> 'doom gc' 'doom purge' is now deprecated. Also changes 'doom sync's -p option to --gc. Since GCing causes the loss of historical data, I'd rather it be a long option to make it a little harder to do accidentally. --- bin/doom | 2 +- lisp/cli/packages.el | 3 ++- lisp/cli/sync.el | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/bin/doom b/bin/doom index edf978ea7..8104260a8 100755 --- a/bin/doom +++ b/bin/doom @@ -271,7 +271,7 @@ SEE ALSO: (defcli-autoload! ((profiles profile))) (defcli-autoload! ((upgrade up))) (defcli-autoload! (env)) - (defcli-autoload! ((build b purge p rollback)) "packages") + (defcli-autoload! ((build b purge p gc rollback)) "packages") (defcli-autoload! ((install i))) ;; TODO Post-3.0 commands diff --git a/lisp/cli/packages.el b/lisp/cli/packages.el index 17f5eaf7e..26018ae91 100644 --- a/lisp/cli/packages.el +++ b/lisp/cli/packages.el @@ -15,9 +15,10 @@ (defcli-obsolete! ((build b)) (sync "--rebuild") "v3.0.0") +(defcli-obsolete! ((purge p)) (gc) "v3.0.0") ;; TODO Rename to "doom gc" and move to its own file -(defcli! ((purge p)) +(defcli! (gc) ((nobuilds-p ("-b" "--no-builds") "Don't purge unneeded (built) packages") (noelpa-p ("-p" "--no-elpa") "Don't purge ELPA packages") (norepos-p ("-r" "--no-repos") "Don't purge unused straight repos") diff --git a/lisp/cli/sync.el b/lisp/cli/sync.el index b767c2a3a..f71fe8c8d 100644 --- a/lisp/cli/sync.el +++ b/lisp/cli/sync.el @@ -24,7 +24,7 @@ ((noenvvar? ("-e") "Don't regenerate the envvar file") (update? ("-u") "Update all installed packages after syncing") (noupdate? ("-U") "Don't update any packages") - (purge? ("-p") "Purge orphaned package repos & regraft them") + (purge? ("--gc") "Purge orphaned package repos & regraft them") (jobs ("-j" "--jobs" num) "How many threads to use for native compilation") (rebuild? ("-b" "--rebuild") "Rebuild, compile, & symlink installed packages") (auto? ("-B") "Rebuild packages, but only if necessary") From bfd21edeeba0c30fe187aae79a735cfbd4928dae Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 24 Mar 2024 17:45:35 -0400 Subject: [PATCH 498/523] nit: reformat core packages.el --- lisp/packages.el | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/lisp/packages.el b/lisp/packages.el index dd908a10d..f4fd4ee54 100644 --- a/lisp/packages.el +++ b/lisp/packages.el @@ -2,8 +2,13 @@ ;;; lisp/packages.el ;; doom.el -(package! auto-minor-mode :pin "17cfa1b54800fdef2975c0c0531dad34846a5065") -(package! gcmh :pin "0089f9c3a6d4e9a310d0791cf6fa8f35642ecfd9") +(package! auto-minor-mode + :pin "17cfa1b54800fdef2975c0c0531dad34846a5065") +(package! compat + :recipe (:host github :repo "emacs-compat/compat") + :pin "eb8fbfa5582a8e5880e2eaa66d15d498bca6a45a") +(package! gcmh + :pin "0089f9c3a6d4e9a310d0791cf6fa8f35642ecfd9") ;; doom-packages.el (package! straight @@ -41,7 +46,3 @@ ;; doom-keybinds.el (package! general :pin "bda777cd303db217fd2fbf2087eff40ec4aafda1") (package! which-key :pin "4d20bc852545a2e602f59084a630f888542052b1") - -(package! compat - :recipe (:host github :repo "emacs-compat/compat") - :pin "eb8fbfa5582a8e5880e2eaa66d15d498bca6a45a") From 32ef0989abbf4407b3415554d2c4cdb00661f43e Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 24 Mar 2024 17:46:36 -0400 Subject: [PATCH 499/523] fix(cli): appease byte-compiler wrt defcli-obsolete! --- lisp/doom-cli.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/doom-cli.el b/lisp/doom-cli.el index 7d5bff2f7..eab017d69 100644 --- a/lisp/doom-cli.el +++ b/lisp/doom-cli.el @@ -1783,7 +1783,7 @@ See `defcli!' for information about COMMANDSPEC. TARGET is simply a command list. WHEN specifies what version this command was rendered obsolete." `(let ((ncommand (doom-cli-command-normalize (backquote ,target) doom-cli--group-plist))) - (defcli! ,commandspec (&context context &cli cli &rest args) + (defcli! ,commandspec (&context _context &cli cli &rest args) :docs (format "An obsolete alias for '%s'." (doom-cli-command-string ncommand)) :hide t (print! (warn "'%s' was deprecated in %s") From 77df11af11b7ead75ddeca22ab8bd9cadc0191e4 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 24 Mar 2024 17:48:56 -0400 Subject: [PATCH 500/523] refactor(cli): remove unused cli/help.el This file was "renamed" to meta.el at some point, but the old file was forgotten (and unused). --- lisp/cli/help.el | 466 ----------------------------------------------- 1 file changed, 466 deletions(-) delete mode 100644 lisp/cli/help.el diff --git a/lisp/cli/help.el b/lisp/cli/help.el deleted file mode 100644 index 0d58aa974..000000000 --- a/lisp/cli/help.el +++ /dev/null @@ -1,466 +0,0 @@ -;;; lisp/cli/help.el -*- lexical-binding: t; -*- -;;; Commentary: -;; -;; This file defines special commands that the Doom CLI will invoke when a -;; command is passed with -?, --help, or --version. They can also be aliased to -;; a sub-command to make more of its capabilities accessible to users, with: -;; -;; (defcli-alias! (myscript (help h)) (:help)) -;; -;; You can define your own command-specific help handlers, e.g. -;; -;; (defcli! (:help myscript subcommand) () ...) -;; -;; And it will be invoked instead of the generic one. -;; -;;; Code: - -;; -;;; Variables - -(defvar doom-help-commands '("%p %c {-?,--help}") - "A list of help commands recognized for the running script. - -Recognizes %p (for the prefix) and %c (for the active command).") - - -;; -;;; Commands - -(defcli! (:root :help) - ((localonly? ("-g" "--no-global") "Hide global options") - (manpage? ("--manpage") "Generate in manpage format") - (commands? ("--commands") "List all known commands") - &multiple - (sections ("--synopsis" "--subcommands" "--similar" "--envvars" - "--postamble") - "Show only the specified sections.") - &context context - &args command) - "Show documentation for a Doom CLI command. - -OPTIONS: - --synopsis, --subcommands, --similar, --envvars, --postamble - TODO" - (doom-cli-load-all) - (when (doom-cli-context-error context) - (terpri)) - (let* ((command (cons (doom-cli-context-prefix context) command)) - (cli (doom-cli-get command t)) - (rcli (doom-cli-get cli)) - (fallbackcli (cl-loop with targets = (doom-cli--command-expand (butlast command) t) - for cmd in (cons command targets) - if (doom-cli-get cmd t) - return it))) - (cond (commands? - (let ((cli (or cli (doom-cli-get (doom-cli-context-prefix context))))) - (print! "Commands under '%s':\n%s" - (doom-cli-command-string cli) - (indent (doom-cli-help--render-commands - (or (doom-cli-subcommands cli) - (user-error "No commands found")) - :prefix (doom-cli-command cli) - :inline? t - :docs? t))))) - ((null sections) - (if (null cli) - (signal 'doom-cli-command-not-found-error command) - (doom-cli-help--print cli context manpage? localonly?) - (exit! :pager?))) - ((dolist (section sections) - (unless (equal section (car sections)) (terpri)) - (pcase section - ("--synopsis" - (print! "%s" (doom-cli-help--render-synopsis - (doom-cli-help--synopsis cli) - "Usage: "))) - ("--subcommands" - (print! "%s\n%s" (bold "Available commands:") - (indent (doom-cli-help--render-commands - (doom-cli-subcommands rcli 1) - :prefix command - :grouped? t - :docs? t) - doom-print-indent-increment))) - ("--similar" - (unless command - (user-error "No command specified")) - (let ((similar (doom-cli-help-similar-commands command 0.4))) - (print! "Similar commands:") - (if (not similar) - (print! (indent (warn "Can't find any!"))) - (dolist (command (seq-take similar 10)) - (print! (indent (item "(%d%%) %s")) - (* (car command) 100) - (doom-cli-command-string (cdr command))))))) - ("--envvars" - (let* ((key "ENVIRONMENT VARIABLES") - (clis (if command (doom-cli-find command) (hash-table-values doom-cli--table))) - (clis (seq-remove #'doom-cli-alias clis)) - (clis (seq-filter (fn! (cdr (assoc key (doom-cli-docs %)))) clis)) - (clis (seq-group-by #'doom-cli-command clis))) - (print! "List of environment variables for %s:\n" command) - (if (null clis) - (print! (indent "None!")) - (dolist (group clis) - (print! (bold "%s%s:" - (doom-cli-command-string (car group)) - (if (doom-cli-fn (doom-cli-get (car group))) - "" " *"))) - (dolist (cli (cdr group)) - (print! (indent "%s") (markup (cdr (assoc key (doom-cli-docs cli)))))))))) - ("--postamble" - (print! "See %s for documentation." - (join (cl-loop with spec = - `((?p . ,(doom-cli-context-prefix context)) - (?c . ,(doom-cli-command-string (cdr (doom-cli-command (or cli fallbackcli)))))) - for cmd in doom-help-commands - for formatted = (trim (format-spec cmd spec)) - collect (replace-regexp-in-string - " +" " " (format "'%s'" formatted))) - " or "))))))))) - -(defcli! (:root :version) - ((simple? ("--simple")) - &context context) - "Show installed versions of Doom, Doom modules, and Emacs." - (doom/version) - (unless simple? - (terpri) - (with-temp-buffer - (insert-file-contents (doom-path doom-emacs-dir "LICENSE")) - (re-search-forward "^Copyright (c) ") - (print! "%s\n" (trim (thing-at-point 'line t))) - (print! (p "Doom Emacs uses the MIT license and is provided without warranty " - "of any kind. You may redistribute and modify copies if " - "given proper attribution. See the LICENSE file for details."))))) - - -;; -;;; Helpers - -(defun doom-cli-help (cli) - "Return an alist of documentation summarizing CLI (a `doom-cli')." - (let* ((rcli (doom-cli-get cli)) - (docs (doom-cli-docs rcli))) - `((command . ,(doom-cli-command-string cli)) - (summary . ,(or (cdr (assoc "SUMMARY" docs)) "TODO")) - (description . ,(or (cdr (assoc "MAIN" docs)) "TODO")) - (synopsis . ,(doom-cli-help--synopsis cli)) - (arguments . ,(doom-cli-help--arguments rcli)) - (options . ,(doom-cli-help--options rcli)) - (commands . ,(doom-cli-subcommands cli 1)) - (sections . ,(seq-filter #'cdr (cddr docs)))))) - -(defun doom-cli-help-similar-commands (command &optional maxscore) - "Return N commands that are similar to COMMAND." - (seq-take-while - (fn! (>= (car %) (or maxscore 0.0))) - (seq-sort-by - #'car #'> - (cl-loop with prefix = (seq-find #'doom-cli-get (nreverse (doom-cli--command-expand command t))) - with input = (doom-cli-command-string (cdr (doom-cli--command command t))) - for command in (hash-table-keys doom-cli--table) - if (doom-cli-fn (doom-cli-get command)) - if (equal prefix (seq-take command (length prefix))) - collect (cons (doom-cli-help--similarity - input (doom-cli-command-string (cdr command))) - command))))) - -(defun doom-cli-help--similarity (s1 s2) - ;; Ratcliff-Obershelp similarity - (let* ((s1 (downcase s1)) - (s2 (downcase s2)) - (s1len (length s1)) - (s2len (length s2))) - (if (or (zerop s1len) - (zerop s2len)) - 0.0 - (/ (let ((i 0) (j 0) (score 0) jlast) - (while (< i s1len) - (unless jlast (setq jlast j)) - (if (and (< j s2len) - (= (aref s1 i) (aref s2 j))) - (progn (cl-incf score) - (cl-incf i) - (cl-incf j)) - (setq m 0) - (cl-incf j) - (when (>= j s2len) - (setq j (or jlast j) - jlast nil) - (cl-incf i)))) - (* 2.0 score)) - (+ (length s1) - (length s2)))))) - -;;; Help: printers -;; TODO Parameterize optional args with `cl-defun' -(defun doom-cli-help--print (cli context &optional manpage? noglobal?) - "Write CLI's documentation in a manpage-esque format to stdout." - (let-alist (doom-cli-help cli) - (let* ((alist - `(,@(if manpage? - `((nil . ,(let* ((title (cadr (member "--load" command-line-args))) - (width (floor (/ (- (doom-cli-context-width context) - (length title)) - 2.0)))) - ;; FIXME Who am I fooling? - (format (format "%%-%ds%%s%%%ds" width width) - "DOOM(1)" title "DOOM(1)"))) - ("NAME" . ,(concat .command " - " .summary)) - ("SYNOPSIS" . ,(doom-cli-help--render-synopsis .synopsis nil t)) - ("DESCRIPTION" . ,.description)) - `((nil . ,(doom-cli-help--render-synopsis .synopsis "Usage: ")) - (nil . ,(string-join (seq-remove #'string-empty-p (list .summary .description)) - "\n\n")))) - ("ARGUMENTS" . ,(doom-cli-help--render-arguments .arguments)) - ("COMMANDS" - . ,(doom-cli-help--render-commands - .commands :prefix (doom-cli-command cli) :grouped? t :docs? t)) - ("OPTIONS" - . ,(doom-cli-help--render-options - (if (or (not (doom-cli-fn cli)) noglobal?) - `(,(assq 'local .options)) - .options) - cli)))) - (command (doom-cli-command cli))) - (letf! (defun printsection (section) - (print! "%s\n" - (if (null section) - (dark "TODO") - (markup - (format-spec - section `((?p . ,(car command)) - (?c . ,(doom-cli-command-string (cdr command)))) - 'ignore))))) - (pcase-dolist (`(,label . ,contents) alist) - (when (and contents (not (string-blank-p contents))) - (when label - (print! (bold "%s%s") label (if manpage? "" ":"))) - (print-group! :if label (printsection contents)))) - (pcase-dolist (`(,label . ,contents) .sections) - (when (and contents (not (assoc label alist))) - (print! (bold "%s:") label) - (print-group! (printsection contents)))))))) - -;;; Help: synopsis -(defun doom-cli-help--synopsis (cli &optional all-options?) - (let* ((rcli (doom-cli-get cli)) - (opts (doom-cli-help--options rcli)) - (opts (mapcar #'car (if all-options? (mapcan #'cdr opts) (alist-get 'local opts)))) - (opts (cl-loop for opt in opts - for args = (cdar opt) - for switches = (mapcar #'car opt) - for multi? = (member "..." args) - if args - collect (format (if multi? "[%s %s]..." "[%s %s]") - (string-join switches "|") - (string-join (remove "..." args) "|")) - else collect (format "[%s]" (string-join switches "|")))) - (args (doom-cli-arguments rcli)) - (subcommands? (doom-cli-subcommands rcli 1 :predicate? t))) - `((command . ,(doom-cli-command cli)) - (options ,@opts) - (required ,@(mapcar (fn! (upcase (format "`%s'" %))) (if subcommands? '(command) (alist-get '&required args)))) - (optional ,@(mapcar (fn! (upcase (format "[`%s']" %)))(alist-get '&optional args))) - (rest ,@(mapcar (fn! (upcase (format "[`%s'...]" %))) (if subcommands? '(args) (alist-get '&args args))))))) - -(defun doom-cli-help--render-synopsis (synopsis &optional prefix) - (let-alist synopsis - (let ((doom-print-indent 0) - (prefix (or prefix "")) - (command (doom-cli-command-string .command))) - (string-trim-right - (format! "%s\n\n" - (fill (concat (bold prefix) - (format "%s " command) - (markup - (join (append .options - (and .options - (or .required - .optional - .rest) - (list (dark "[--]"))) - .required - .optional - .rest)))) - 80 (1+ (length (concat prefix command))))))))) - -;;; Help: arguments -(defun doom-cli-help--arguments (cli &optional all?) - (doom-cli-help--parse-docs (doom-cli-find cli t) "ARGUMENTS")) - -(defun doom-cli-help--render-arguments (arguments) - (mapconcat (lambda (arg) - (format! "%-20s\n%s" - (underscore (car arg)) - (indent (if (equal (cdr arg) "TODO") - (dark (cdr arg)) - (cdr arg)) - doom-print-indent-increment))) - arguments - "\n")) - -;;; Help: commands -(cl-defun doom-cli-help--render-commands (commands &key prefix grouped? docs? (inline? t)) - (with-temp-buffer - (let* ((doom-print-indent 0) - (commands (seq-group-by (fn! (if grouped? (doom-cli-prop (doom-cli-get % t) :group))) - (nreverse commands))) - (toplevel (assq nil commands)) - (rest (remove toplevel commands)) - (drop (if prefix (length prefix) 0)) - (minwidth - (apply - #'max (or (cl-loop for cmd in (apply #'append (mapcar #'cdr commands)) - for cmd = (seq-drop cmd drop) - collect (length (doom-cli-command-string cmd))) - (list 15)))) - (ellipsis (doom-print--style 'dark " […]")) - (ellipsislen (- (length ellipsis) (if (eq doom-print-backend 'ansi) 2 4)))) - (dolist (group (cons toplevel rest)) - (let ((label (if (car-safe group) (cdr commands)))) - (when label - (insert! ((bold "%s:") (car group)) "\n")) - (print-group! :if label - (dolist (command (cdr group)) - (let* ((cli (doom-cli-get command t)) - (rcli (doom-cli-get command)) - (summary (doom-cli-short-docs rcli)) - (subcommands? (doom-cli-subcommands cli 1 :predicate? t))) - (insert! ((format "%%-%ds%%s%%s" - (+ (- minwidth doom-print-indent) - doom-print-indent-increment - (if subcommands? ellipsislen 0))) - (concat (doom-cli-command-string (seq-drop command drop)) - (if subcommands? ellipsis)) - (if inline? " " "\n") - (indent (if (and (doom-cli-alias cli) - (not (doom-cli-type rcli))) - (dark "-> %s" (doom-cli-command-string cli)) - (when docs? - (if summary (markup summary) (dark "TODO")))))) - "\n"))) - (when (cdr rest) - (insert "\n"))))) - (string-trim-right (buffer-string))))) - -;;; Help: options -(defun doom-cli-help--options (cli &optional noformatting?) - "Return an alist summarizing CLI's options. - -The alist's CAR are lists of formatted switches plus their arguments, e.g. -'((\"`--foo'\" \"`BAR'\") ...). Their CDR is their formatted documentation." - (let* ((docs (doom-cli-help--parse-docs (doom-cli-find cli t) "OPTIONS")) - (docs (mapcar (fn! (cons (split-string (car %) ", ") - (cdr %))) - docs)) - (strfmt (if noformatting? "%s" "`%s'")) - local-options - global-options - seen) - (dolist (neighbor (nreverse (doom-cli-find cli))) - (dolist (option (doom-cli-options neighbor)) - (when-let* ((switches (cl-loop for sw in (doom-cli-option-switches option) - if (and (doom-cli-option-flag-p option) - (string-prefix-p "--" sw)) - collect (format "--[no-]%s" (substring sw 2)) - else collect sw)) - (switches (seq-difference switches seen))) - (dolist (switch switches) (push switch seen)) - (push (cons (cl-loop for switch in switches - if (doom-cli-option-arguments option) - collect (cons (format strfmt switch) - (append (doom-cli-help--parse-args it noformatting?) - (when (doom-cli-option-multiple-p option) - (list "...")))) - else collect (list (format strfmt switch))) - (string-join - (or (delq - nil (cons (when-let (docs (doom-cli-option-docs option)) - (concat docs ".")) - (cl-loop for (flags . docs) in docs - unless (equal (seq-difference flags switches) flags) - collect docs))) - '("TODO")) - "\n\n")) - (if (equal (doom-cli-command neighbor) - (doom-cli-command cli)) - local-options - global-options))))) - `((local . ,(nreverse local-options)) - (global . ,(nreverse global-options))))) - -(defun doom-cli-help--render-options (options &optional cli) - (let ((doom-print-indent 0) - (local (assq 'local options)) - (global (assq 'global options))) - (when (or (cdr local) (cdr global)) - (letf! (defun printopts (opts) - (pcase-dolist (`(,switches . ,docs) (cdr opts)) - (let (multiple?) - (insert! - ("%s%s\n%s" - (mapconcat - (fn! (when (member "..." (cdr %)) - (setq multiple? t)) - (string-trim-right - (format "%s %s" - (doom-print--cli-markup (car %)) - (doom-print--cli-markup - (string-join (remove "..." (cdr %)) "|"))))) - switches - ", ") - (if multiple? ", ..." "") - (indent (fill (markup docs)) doom-print-indent-increment)) - "\n\n")))) - (with-temp-buffer - (if (null (cdr local)) - (insert (if global "This command has no local options.\n" "") "\n") - (printopts local)) - (when (cdr global) - (insert! ((bold "Global options:\n"))) - (print-group! (printopts global))) - (string-trim-right (buffer-string))))))) - -;;; Help: internal -(defun doom-cli-help--parse-args (args &optional noformatting?) - (cl-loop for arg in args - if (listp arg) - collect (string-join (doom-cli-help--parse-args arg noformatting?) "|") - else if (symbolp arg) - collect (format (if noformatting? "%s" "`%s'") (upcase (symbol-name arg))) - else collect arg)) - -(defun doom-cli-help--parse-docs (cli-list section-name) - (cl-check-type section-name string) - (let (alist) - (dolist (cli cli-list (nreverse alist)) - (when-let (section (cdr (assoc section-name (doom-cli-docs cli)))) - (with-temp-buffer - (save-excursion (insert section)) - (let ((lead (current-indentation)) - (buffer (current-buffer))) - (while (not (eobp)) - (let ((heading (string-trim (buffer-substring (point-at-bol) (point-at-eol)))) - (beg (point-at-bol 2)) - end) - (forward-line 1) - (while (and (not (eobp)) - (/= (current-indentation) lead) - (forward-line 1))) - (setf (alist-get heading alist nil nil #'equal) - (string-join - (delq - nil (list (alist-get heading alist nil nil #'equal) - (let ((end (point))) - (with-temp-buffer - (insert-buffer-substring buffer beg end) - (goto-char (point-min)) - (indent-rigidly (point-min) (point-max) (- (current-indentation))) - (string-trim-right (buffer-string)))))) - "\n\n")))))))))) - -(provide 'doom-cli-help) -;;; help.el ends here From e24a583d5c0fc37df5319f9d690d2fe2989afd5b Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 24 Mar 2024 17:54:48 -0400 Subject: [PATCH 501/523] tweak: move project-list-file to profile data dir Ref: doomemacs/core#1 --- lisp/doom-projects.el | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lisp/doom-projects.el b/lisp/doom-projects.el index 4d434e32d..ad498b5da 100644 --- a/lisp/doom-projects.el +++ b/lisp/doom-projects.el @@ -23,6 +23,10 @@ debian, and derivatives). On most it's 'fd'.") ;; ;;; Packages +(after! project + (setq project-list-file (file-name-concat doom-data-dir "projects"))) + +;; DEPRECATED: Will be replaced with project.el (use-package! projectile :commands (projectile-project-root projectile-project-name From 1462f8762314119009594314a4b8ef3ae9bf43b0 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 24 Mar 2024 17:57:55 -0400 Subject: [PATCH 502/523] bump: :tools tree-sitter emacs-tree-sitter/tree-sitter-langs@20fbbb85735a -> emacs-tree-sitter/tree-sitter-langs@c56cb511045d meain/evil-textobj-tree-sitter@220ceae06585 -> meain/evil-textobj-tree-sitter@a19ab9d89a00 --- modules/tools/tree-sitter/packages.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/tools/tree-sitter/packages.el b/modules/tools/tree-sitter/packages.el index db244eba5..fbd858c50 100644 --- a/modules/tools/tree-sitter/packages.el +++ b/modules/tools/tree-sitter/packages.el @@ -2,9 +2,9 @@ ;;; tools/tree-sitter/packages.el (package! tree-sitter :pin "3cfab8a0e945db9b3df84437f27945746a43cc71") -(package! tree-sitter-langs :pin "20fbbb85735a9196ba3e7fb33f99b3a904b363ba") +(package! tree-sitter-langs :pin "c56cb511045d50e30f78508c54494e025d6af2cb") (package! tree-sitter-indent :pin "4ef246db3e4ff99f672fe5e4b416c890f885c09e") (when (modulep! :editor evil +everywhere) (package! evil-textobj-tree-sitter - :pin "220ceae065852ef4f717fa41efd1ab51ca2346d3")) + :pin "a19ab9d89a00f4a04420f9b5d61b66f04fea5261")) From 2df24d29f3923aa736692f9d986024dca3381b71 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 24 Mar 2024 18:08:09 -0400 Subject: [PATCH 503/523] bump: :core Fuco1/smartparens@0778a8a84064 -> Fuco1/smartparens@ddc6233ea6fc bbatsov/projectile@e45f0b0cc43f -> bbatsov/projectile@0163b335a18a emacs-compat/compat@eb8fbfa5582a -> emacs-compat/compat@8d4e8a366681 emacs-straight/project@10a6b691e36f -> emacs-straight/project@b6989856abe9 joddie/pcre2el@018531ba0cf8 -> joddie/pcre2el@380723b2701c jscheid/dtrt-indent@0230ec503283 -> jscheid/dtrt-indent@5d1b44f9a1a4 justbur/emacs-which-key@4d20bc852545 -> justbur/emacs-which-key@96911a1d3faf noctuid/general.el@bda777cd303d -> noctuid/general.el@ced143c30de8 radian-software/straight.el@b3760f5829db -> radian-software/straight.el@b1062df10ba4 rainstormstudio/nerd-icons.el@c6a4acf19454 -> rainstormstudio/nerd-icons.el@8095215a503d --- lisp/packages.el | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/lisp/packages.el b/lisp/packages.el index f4fd4ee54..748c7faad 100644 --- a/lisp/packages.el +++ b/lisp/packages.el @@ -6,7 +6,7 @@ :pin "17cfa1b54800fdef2975c0c0531dad34846a5065") (package! compat :recipe (:host github :repo "emacs-compat/compat") - :pin "eb8fbfa5582a8e5880e2eaa66d15d498bca6a45a") + :pin "8d4e8a366681def88751f5e9975738ecd3180deb") (package! gcmh :pin "0089f9c3a6d4e9a310d0791cf6fa8f35642ecfd9") @@ -18,10 +18,10 @@ :branch ,straight-repository-branch :local-repo "straight.el" :files ("straight*.el")) - :pin "b3760f5829dba37e855add7323304561eb57a3d4") + :pin "b1062df10ba4c10ff7a3c61b9e124b3242b11bb2") ;; doom-ui.el -(package! nerd-icons :pin "c6a4acf19454b415cba1c43daf4bfca8fccdd9ba") +(package! nerd-icons :pin "8095215a503d8048739de8b4ea4066598edb8cbb") (package! hide-mode-line :pin "bc5d293576c5e08c29e694078b96a5ed85631942") (package! highlight-numbers :pin "8b4744c7f46c72b1d3d599d4fb75ef8183dee307") (package! rainbow-delimiters :pin "f40ece58df8b2f0fb6c8576b527755a552a5e763") @@ -29,10 +29,10 @@ ;; doom-editor.el (package! better-jumper :pin "47622213783ece37d5337dc28d33b530540fc319") -(package! dtrt-indent :pin "0230ec503283b895bd3df6c1e30b35a01aa0b9af") +(package! dtrt-indent :pin "5d1b44f9a1a484ca229cc14f8062609a10ef4891") (package! helpful :pin "a32a5b3d959a7fccf09a71d97b3d7c888ac31c69") -(package! pcre2el :pin "018531ba0cf8e2b28d1108136a0e031b6a45f1c1") -(package! smartparens :pin "0778a8a84064cf2bc3a9857bd0e7a4619cc1e5c3") +(package! pcre2el :pin "380723b2701cceb75c266440fb8db918f3340d50") +(package! smartparens :pin "ddc6233ea6fc2da7a3a8e44face465c15631b02b") (package! ws-butler ;; Use my fork of ws-butler, which has a few choice improvements and ;; optimizations (the original has been abandoned). @@ -40,9 +40,9 @@ :pin "572a10c11b6cb88293de48acbb59a059d36f9ba5") ;; doom-projects.el -(package! projectile :pin "e45f0b0cc43fdc066e7971ff3ed3bf4c78015ed0") -(package! project :pin "10a6b691e36ff897fb2a4b48896e08818afa77b0") +(package! projectile :pin "0163b335a18af0f077a474d4dc6b36e22b5e3274") +(package! project :pin "b6989856abe9411872bdff5c8aa190bef4d86409") ;; doom-keybinds.el -(package! general :pin "bda777cd303db217fd2fbf2087eff40ec4aafda1") -(package! which-key :pin "4d20bc852545a2e602f59084a630f888542052b1") +(package! general :pin "ced143c30de8e20f5a3761a465e684a1dc48471e") +(package! which-key :pin "96911a1d3faf8426a33241f4821319e98421f380") From 8d50cd8bfb63e275949eb943fa9d1aad21a5332e Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 24 Mar 2024 18:08:47 -0400 Subject: [PATCH 504/523] tweak(lib): print!: join (path ...) segments --- lisp/lib/print.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lisp/lib/print.el b/lisp/lib/print.el index 2a0dffaf2..e74c7fce6 100644 --- a/lisp/lib/print.el +++ b/lisp/lib/print.el @@ -84,7 +84,8 @@ and `format!' into colored output, where COLOR is any car of this list (or (doom-print--indent (if args (apply #'format str args) str) "> "))) - (path . abbreviate-file-name) + (path . (lambda (&rest segments) + (abbreviate-file-name (apply #'doom-path segments)))) (symbol . symbol-name) (relpath . (lambda (str &optional dir) (if (or (not str) From 6d682eef8596b069aeaac9774711fdce48a7027f Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 24 Mar 2024 18:37:39 -0400 Subject: [PATCH 505/523] fix(cli): void-function doom-packages-install error Function was renamed to doom-packages-ensure in cff0919. Fix: #7755 Amend: cff091982e41 --- lisp/cli/install.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/cli/install.el b/lisp/cli/install.el index 79dddaf8b..27dad9bc9 100644 --- a/lisp/cli/install.el +++ b/lisp/cli/install.el @@ -96,7 +96,7 @@ Change `$DOOMDIR' with the `--doomdir' option, e.g. (if (eq install? :no) (print! (warn "Not installing plugins, as requested")) (print! "Installing plugins") - (doom-packages-install)) + (doom-packages-ensure)) (print! "Regenerating autoloads files") (doom-profile-generate) From 286be1b2496a3ffa2280a16a41f56babebea93f0 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 24 Mar 2024 18:54:26 -0400 Subject: [PATCH 506/523] fix(cli): void-variable doom-profile-env-file-name error This variable ref snuck into cff0919, but hasn't been introduced yet. Fix: #7755 Amend: cff091982e41 --- lisp/cli/sync.el | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lisp/cli/sync.el b/lisp/cli/sync.el index f71fe8c8d..f74a97923 100644 --- a/lisp/cli/sync.el +++ b/lisp/cli/sync.el @@ -81,9 +81,7 @@ OPTIONS: (exit! 0)) (setq rebuild? t))) (when (and (not noenvvar?) - (file-exists-p - (file-name-concat doom-profile-dir - doom-profile-env-file-name))) + (file-exists-p doom-env-file)) (call! '(env))) (doom-packages-ensure rebuild?) (unless noupdate? (doom-packages-update (not update?))) From 90070c639a1549a781720d97411be8b6d6eafdfe Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 26 Mar 2024 10:11:34 -0400 Subject: [PATCH 507/523] fix(workspaces): remove ivy integration Due to upstream changes in ivy-rich, +workspace/switch-to throws a `wrong-type-argument listp leaf` error. As I plan to phase out Ivy support (and the Ivy module) in the long term, I'll simply remove ivy (and ivy-rich) integration in the workspaces module, rather than update it. Fix: #7499 Fix: #7173 --- modules/ui/workspaces/autoload/ivy.el | 17 ----------------- modules/ui/workspaces/autoload/workspaces.el | 7 +------ modules/ui/workspaces/config.el | 7 ------- 3 files changed, 1 insertion(+), 30 deletions(-) delete mode 100644 modules/ui/workspaces/autoload/ivy.el diff --git a/modules/ui/workspaces/autoload/ivy.el b/modules/ui/workspaces/autoload/ivy.el deleted file mode 100644 index 97b84baf4..000000000 --- a/modules/ui/workspaces/autoload/ivy.el +++ /dev/null @@ -1,17 +0,0 @@ -;;; ui/workspaces/autoload/ivy.el -*- lexical-binding: t; -*- -;;;###if (modulep! :completion ivy) - -;;;###autoload -(defun +workspace--ivy-rich-preview (workspace) - (if-let (buffers (when-let (workspace (gethash workspace *persp-hash*)) - (cl-loop for (type . rest) in (persp-window-conf workspace) - if (eq type 'buffer) - collect (car leaf) - else if (eq type 'leaf) - append (cl-loop for (type . leaf) in rest - if (eq type 'buffer) - collect (car leaf))))) - (string-join buffers " ") - "*No buffers*")) - -;;; ivy.el ends here diff --git a/modules/ui/workspaces/autoload/workspaces.el b/modules/ui/workspaces/autoload/workspaces.el index 840ca1d5c..4cca0c7a8 100644 --- a/modules/ui/workspaces/autoload/workspaces.el +++ b/modules/ui/workspaces/autoload/workspaces.el @@ -318,12 +318,7 @@ workspace, otherwise the new workspace is blank." end of the workspace list." (interactive (list (or current-prefix-arg - (if (modulep! :completion ivy) - (ivy-read "Switch to workspace: " - (+workspace-list-names) - :caller #'+workspace/switch-to - :preselect (+workspace-current-name)) - (completing-read "Switch to workspace: " (+workspace-list-names)))))) + (completing-read "Switch to workspace: " (+workspace-list-names))))) (when (and (stringp index) (string-match-p "^[0-9]+$" index)) (setq index (string-to-number index))) diff --git a/modules/ui/workspaces/config.el b/modules/ui/workspaces/config.el index 68c5d9221..0fb223bf2 100644 --- a/modules/ui/workspaces/config.el +++ b/modules/ui/workspaces/config.el @@ -206,13 +206,6 @@ stored in `persp-save-dir'.") ("xt" counsel-projectile-switch-project-action-run-term "invoke term from project root") ("X" counsel-projectile-switch-project-action-org-capture "org-capture into project"))) - (when (modulep! :completion ivy) - (after! ivy-rich - (cl-callf plist-put ivy-rich-display-transformers-list - '+workspace/switch-to - '(:columns ((ivy-rich-candidate (:width 50)) - (+workspace--ivy-rich-preview)))))) - (when (modulep! :completion helm) (after! helm-projectile (setcar helm-source-projectile-projects-actions From 639fcc6a2e4dd3df9effef2da7b9d605aaf72214 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 26 Mar 2024 10:29:07 -0400 Subject: [PATCH 508/523] tweak(emacs-lisp): remove pin truncation This removes the truncation of `package!` `:pin`s. This was originally intended to make packages.el files easier to skim, but in hindsight it didn't really. It served little other purpose but to make it harder for folks to interact with the :pin string. --- modules/lang/emacs-lisp/autoload.el | 14 -------------- modules/lang/emacs-lisp/config.el | 2 -- 2 files changed, 16 deletions(-) diff --git a/modules/lang/emacs-lisp/autoload.el b/modules/lang/emacs-lisp/autoload.el index d2092fa9c..2fcd75a23 100644 --- a/modules/lang/emacs-lisp/autoload.el +++ b/modules/lang/emacs-lisp/autoload.el @@ -413,20 +413,6 @@ This generally applies to your private config (`doom-user-dir') or Doom's source ;; ;;; Fontification -;;;###autoload -(defun +emacs-lisp-truncate-pin () - "Truncates long SHA1 hashes in `package!' :pin's." - (save-excursion - (goto-char (match-beginning 0)) - (and (stringp (plist-get (sexp-at-point) :pin)) - (search-forward ":pin" nil t) - (let ((start (re-search-forward "\"[^\"\n]\\{12\\}" nil t)) - (finish (and (re-search-forward "\"" (line-end-position) t) - (match-beginning 0)))) - (when (and start finish) - (put-text-property start finish 'display "..."))))) - nil) - (defvar +emacs-lisp--face nil) ;;;###autoload (defun +emacs-lisp-highlight-vars-and-faces (end) diff --git a/modules/lang/emacs-lisp/config.el b/modules/lang/emacs-lisp/config.el index 389589689..4a7b532f8 100644 --- a/modules/lang/emacs-lisp/config.el +++ b/modules/lang/emacs-lisp/config.el @@ -115,8 +115,6 @@ See `+emacs-lisp-non-package-mode' for details.") 'emacs-lisp-mode (append `(;; custom Doom cookies ("^;;;###\\(autodef\\|if\\|package\\)[ \n]" (1 font-lock-warning-face t))) - ;; Shorten the :pin of `package!' statements to 10 characters - `(("(package!\\_>" (0 (+emacs-lisp-truncate-pin)))) ;; highlight defined, special variables & functions (when +emacs-lisp-enable-extra-fontification `((+emacs-lisp-highlight-vars-and-faces . +emacs-lisp--face))))) From 7acfb0c77cde54dd2cc6a5962735518fed1f43e3 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 26 Mar 2024 10:39:24 -0400 Subject: [PATCH 509/523] nit: minor comment reformatting & revision --- bin/doom | 6 +++--- modules/app/everywhere/config.el | 2 +- modules/lang/nix/config.el | 2 -- modules/ui/ligatures/config.el | 5 +++-- modules/ui/treemacs/config.el | 2 +- 5 files changed, 8 insertions(+), 9 deletions(-) diff --git a/bin/doom b/bin/doom index 8104260a8..32504f224 100755 --- a/bin/doom +++ b/bin/doom @@ -89,9 +89,9 @@ (user-error (message "Error: %s" (cadr e)) (kill-emacs 2))) -;; UX: Abort if the user is using 'doom' as root, unless ~/.config/emacs is -;; owned by root, in which case we assume the user genuinely wants root to be -;; their primary user account for Emacs. +;; UX: Abort if the user is using 'doom' as root, unless $EMACSDIR is owned by +;; root, in which case we can safely assume the user genuinely wants root to +;; be their primary user account for this session. (when (equal 0 (user-real-uid)) (unless (equal 0 (file-attribute-user-id (file-attributes doom-emacs-dir))) (message diff --git a/modules/app/everywhere/config.el b/modules/app/everywhere/config.el index 9f5052784..4e235b7af 100644 --- a/modules/app/everywhere/config.el +++ b/modules/app/everywhere/config.el @@ -8,7 +8,7 @@ :config (set-yas-minor-mode! 'emacs-everywhere-mode) - ;; HACK Inhibit MAJOR-MODE-local-vars-hook in emacs-everywhere buffers, + ;; HACK: Inhibit MAJOR-MODE-local-vars-hook in emacs-everywhere buffers, ;; because Doom commonly starts servers and other extraneous services on ;; this hook, which will rarely work well in emacs-everywhere's temporary ;; buffers anyway. diff --git a/modules/lang/nix/config.el b/modules/lang/nix/config.el index 5e6677220..10bfb1731 100644 --- a/modules/lang/nix/config.el +++ b/modules/lang/nix/config.el @@ -11,8 +11,6 @@ :interpreter ("\\(?:cached-\\)?nix-shell" . +nix-shell-init-mode) :mode "\\.nix\\'" :init - ;; Treat flake.lock files as json. Fall back to js-mode because it's faster - ;; than js2-mode, and its extra features aren't needed there. (add-to-list 'auto-mode-alist (cons "/flake\\.lock\\'" (if (modulep! :lang json) diff --git a/modules/ui/ligatures/config.el b/modules/ui/ligatures/config.el index 6312493ba..9578be7da 100644 --- a/modules/ui/ligatures/config.el +++ b/modules/ui/ligatures/config.el @@ -161,8 +161,9 @@ and cannot run in." (fboundp 'mac-auto-operator-composition-mode)) (add-hook 'doom-init-ui-hook #'mac-auto-operator-composition-mode 'append)) - ;; NOTE: the module does not support Emacs 27 and less, but if we still try to enable ligatures, - ;; it will end up in catastrophic work-loss errors, so we leave the check here for safety. + ;; This module does not support Emacs 27 and less, but if we still try to + ;; enable ligatures, it will end up in catastrophic work-loss errors, so we + ;; leave the check here for safety. ((and (> emacs-major-version 27) (or (featurep 'ns) (string-match-p "HARFBUZZ" system-configuration-features)) diff --git a/modules/ui/treemacs/config.el b/modules/ui/treemacs/config.el index d232ec1b0..62e3e6ddb 100644 --- a/modules/ui/treemacs/config.el +++ b/modules/ui/treemacs/config.el @@ -26,7 +26,7 @@ This must be set before `treemacs' has loaded.") treemacs-persist-file (concat doom-cache-dir "treemacs-persist") treemacs-last-error-persist-file (concat doom-cache-dir "treemacs-last-error-persist")) :config - ;; Don't follow the cursor + ;; Don't follow the cursor (it's more disruptive/jarring than helpful as a default) (treemacs-follow-mode -1) (set-popup-rule! "^ ?\\*Treemacs" :ignore t) From 45fd893074f608cc1e40443345ce1a93010aeff8 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 26 Mar 2024 10:39:59 -0400 Subject: [PATCH 510/523] refactor(ligatures): test for harfbuzz feature A `harfbuzz` feature was introduced in 3e81655. Ref: 3e81655b0e49 --- modules/ui/ligatures/config.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/ui/ligatures/config.el b/modules/ui/ligatures/config.el index 9578be7da..ad8baab5e 100644 --- a/modules/ui/ligatures/config.el +++ b/modules/ui/ligatures/config.el @@ -166,8 +166,8 @@ and cannot run in." ;; leave the check here for safety. ((and (> emacs-major-version 27) (or (featurep 'ns) - (string-match-p "HARFBUZZ" system-configuration-features)) - (featurep 'composite)) ; Emacs loads `composite' at startup + (featurep 'harfbuzz)) + (featurep 'composite)) ; Emacs loads `composite' at startup (use-package! ligature :config From d256b597f2c6768e759ac2b866b110ba580c6f9f Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 26 Mar 2024 12:07:51 -0400 Subject: [PATCH 511/523] bump: :tools magit alphapapa/magit-todos@1e9acc0ba63f -> alphapapa/magit-todos@332ce763f733 magit/forge@68771ca4d53c -> magit/forge@2a3b41eb6235 magit/magit@0963697f24cf -> magit/magit@0e8f25a8d801 --- modules/tools/magit/packages.el | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/tools/magit/packages.el b/modules/tools/magit/packages.el index 7bebc3a57..c48e55650 100644 --- a/modules/tools/magit/packages.el +++ b/modules/tools/magit/packages.el @@ -1,12 +1,12 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/magit/packages.el -(when (package! magit :pin "0963697f24cfbe80f92312044bd9ab28b914b053") +(when (package! magit :pin "0e8f25a8d8011328f2bf082232c720b24c2a12c2") (when (modulep! +forge) - (package! forge :pin "68771ca4d53c3aea5c860eeb888cee8e9cb5ca37") + (package! forge :pin "2a3b41eb6235b3f39c017c1f86b3928a45c5a64d") (package! code-review :recipe (:host github :repo "doomelpa/code-review" :files ("graphql" "code-review*.el")) :pin "e4c34fa284da25d8e0bafbae4300f1db5bdcda44")) - (package! magit-todos :pin "1e9acc0ba63fbc297001bf334d63cb4326be80df")) + (package! magit-todos :pin "332ce763f7336ea356964b92723678aa1ed4640f")) From 12a765c5099c4aab8165d1ee944b71f105e42fe1 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 26 Mar 2024 21:33:00 -0400 Subject: [PATCH 512/523] feat(cli): doom sync: change -B to suppress rebuilding Prior to this, -B would suppress the prompt for package rebuilding if your Emacs version or hostname changed. Now, it fully inhibits rebuilding in either case. Fix: #7760 Ref: cff091982e41 --- lisp/cli/sync.el | 23 +++++++++++++---------- lisp/cli/upgrade.el | 3 ++- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/lisp/cli/sync.el b/lisp/cli/sync.el index f74a97923..54fbf0117 100644 --- a/lisp/cli/sync.el +++ b/lisp/cli/sync.el @@ -26,8 +26,8 @@ (noupdate? ("-U") "Don't update any packages") (purge? ("--gc") "Purge orphaned package repos & regraft them") (jobs ("-j" "--jobs" num) "How many threads to use for native compilation") - (rebuild? ("-b" "--rebuild") "Rebuild, compile, & symlink installed packages") - (auto? ("-B") "Rebuild packages, but only if necessary") + (rebuild? ("-b" "--rebuild") "Rebuild all installed packages, unconditionally") + (nobuild? ("-B") "Don't rebuild packages when hostname or Emacs version has changed") &context context) "Synchronize your config with Doom Emacs. @@ -52,8 +52,6 @@ OPTIONS: :benchmark t (when (doom-profiles-bootloadable-p) (call! '(profiles sync "--reload"))) - (when (doom-cli-context-suppress-prompts-p context) - (setq auto? t)) (when jobs (setq native-comp-async-jobs-number (truncate jobs))) (run-hooks 'doom-before-sync-hook) @@ -75,11 +73,14 @@ OPTIONS: (when (and old-host (not (equal old-host (system-name)))) (print! (warn "Your system has changed since last sync")) (setq to-rebuild t)) - (when (and to-rebuild (not auto?)) - (or (y-or-n-p - (format! " %s" "Your installed packages will need to be recompiled. Do so now?")) - (exit! 0)) - (setq rebuild? t))) + (when (and to-rebuild (not (doom-cli-context-suppress-prompts-p context))) + (if nobuild? + (print! (warn "Packages need to be recompiled, but -B has prevented it. Skipping...")) + (or (not (doom-cli-context-get context 'upgrading)) + (y-or-n-p + (format! " %s" "Your installed packages will need to be recompiled. Do so now?")) + (exit! 0)) + (setq rebuild? t)))) (when (and (not noenvvar?) (file-exists-p doom-env-file)) (call! '(env))) @@ -89,7 +90,9 @@ OPTIONS: (when (doom-profile-generate) (print! (item "Restart Emacs or use 'M-x doom/reload' for changes to take effect")) (run-hooks 'doom-after-sync-hook)) - (with-temp-file doom-cli-sync-info-file (prin1 (cons emacs-version (system-name)) (current-buffer))) + (when (and (not rebuild?) (not nobuild?)) + (with-temp-file doom-cli-sync-info-file + (prin1 (cons emacs-version (system-name)) (current-buffer)))) t) (remove-hook 'kill-emacs-hook #'doom-sync--abort-warning-h))) diff --git a/lisp/cli/upgrade.el b/lisp/cli/upgrade.el index 9f44d6e93..d42017caa 100644 --- a/lisp/cli/upgrade.el +++ b/lisp/cli/upgrade.el @@ -32,7 +32,7 @@ following shell commands: doom clean doom sync -u" (let* ((force? (doom-cli-context-suppress-prompts-p context)) - (sync-cmd (append '("sync" "-u" "-B") (if jobs `("-j" ,num))))) + (sync-cmd (append '("sync" "-u") (if jobs `("-j" ,num))))) (cond (packages? ;; HACK It's messy to use straight to upgrade straight, due to the @@ -53,6 +53,7 @@ following shell commands: ;; Reload Doom's CLI & libraries, in case there were any upstream changes. ;; Major changes will still break, however (print! (item "Reloading Doom Emacs")) + (doom-cli-context-put context 'upgrading t) (exit! "doom" "upgrade" "-p" (if force? "--force") (if jobs (format "--jobs=%d" jobs)))) From c0c52f0f610245df88391008972436f97ff2b5e3 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 26 Mar 2024 22:25:29 -0400 Subject: [PATCH 513/523] fix: ensure load-path et co are set on doom/reload This addresses a number of missing-package errors after running doom/reload. Fix: #7764 Fix: #7636 Fix: #7182 --- lisp/doom-profiles.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lisp/doom-profiles.el b/lisp/doom-profiles.el index 94dd3dd09..26ae373d1 100644 --- a/lisp/doom-profiles.el +++ b/lisp/doom-profiles.el @@ -368,7 +368,8 @@ Defaults to the profile at `doom-profile-default'." ;; FIX: Make sure this only runs at startup to protect us Emacs' interpreter ;; re-evaluating this file when lazy-loading dynamic docstrings from the ;; byte-compiled init file. - `((when (doom-context-p 'init) + `((when (or (doom-context-p 'init) + (doom-context-p 'reload)) ,@(cl-loop for var in doom-autoloads-cached-vars if (boundp var) collect `(set-default ',var ',(symbol-value var))) From d5bad5b43061b6dfac6d2e8adf9d23f44d66ee5a Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 26 Mar 2024 22:58:56 -0400 Subject: [PATCH 514/523] fix(cli): straight: regurgitate type errors as connection errors See included comment for explanation. --- lisp/cli/packages.el | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/lisp/cli/packages.el b/lisp/cli/packages.el index 26018ae91..7933d692e 100644 --- a/lisp/cli/packages.el +++ b/lisp/cli/packages.el @@ -799,5 +799,31 @@ However, in batch mode, print to stdout instead of stderr." "/dev/null"))) (apply fn args))) +;; If the repo failed to clone correctly (usually due to a connection failure), +;; straight proceeds as normal until a later call produces a garbage result +;; (typically, when it fails to fetch the remote branch of the empty directory). +;; This causes Straight to throw an otherwise cryptic type error when it tries +;; to sanitize the result for its log buffer. +;; +;; This error is a common source of user confusion and false positive bug +;; reports, so this advice catches them to regurgitates a more cogent +;; explanation. +(defadvice! doom-cli--straight-throw-error-on-no-branch-a (fn &rest args) + :around #'straight--process-log + (letf! ((defun shell-quote-argument (arg &optional posix) + (when (null arg) + (error "Package was not properly cloned due to a connection failure, please try again later")) + (funcall shell-quote-argument arg posix))) + (apply fn args))) + +(defadvice! doom-cli--straight-regurgitate-empty-string-error-a (fn &rest args) + :around #'straight-vc-git-local-repo-name + (condition-case-unless-debug e + (apply fn args) + (wrong-type-argument + (if (eq (cadr e) 'stringp) + (error "Package was not properly cloned due to a connection failure, please try again later") + (signal (car e) (cdr e)))))) + (provide 'doom-cli-packages) ;;; packages.el ends here From aef2b12100d92b176bf6482826c03e5a7e6fe0ad Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 27 Mar 2024 00:23:41 -0400 Subject: [PATCH 515/523] feat(cli): doom upgrade: add -B option To mirror doom sync's -B option. --- lisp/cli/upgrade.el | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lisp/cli/upgrade.el b/lisp/cli/upgrade.el index d42017caa..acaf37a3d 100644 --- a/lisp/cli/upgrade.el +++ b/lisp/cli/upgrade.el @@ -21,6 +21,7 @@ (defcli! ((upgrade up)) ((packages? ("-p" "--packages") "Only upgrade packages, not Doom") (jobs ("-j" "--jobs" num) "How many CPUs to use for native compilation") + (nobuild? ("-B") "Don't rebuild packages when hostname or Emacs version has changed") &context context) "Updates Doom and packages. @@ -32,7 +33,9 @@ following shell commands: doom clean doom sync -u" (let* ((force? (doom-cli-context-suppress-prompts-p context)) - (sync-cmd (append '("sync" "-u") (if jobs `("-j" ,num))))) + (sync-cmd (append '("sync" "-u") + (if nobuild? '("-B")) + (if jobs `("-j" ,num))))) (cond (packages? ;; HACK It's messy to use straight to upgrade straight, due to the @@ -55,6 +58,7 @@ following shell commands: (print! (item "Reloading Doom Emacs")) (doom-cli-context-put context 'upgrading t) (exit! "doom" "upgrade" "-p" + (if nobuild? "-B") (if force? "--force") (if jobs (format "--jobs=%d" jobs)))) From 201051c368cfdabf3f68c372939297380999e28d Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 27 Mar 2024 00:23:54 -0400 Subject: [PATCH 516/523] fix(cli): doom sync: suppress rebuild prompt when upgrading 12a765c introduced suppression of package-rebuilding prompts on 'doom upgrade', but inadvertently reversed the check. This fixes that (and refactors the if/or tree into a `cond`). Amend: 12a765c5099c --- lisp/cli/sync.el | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/lisp/cli/sync.el b/lisp/cli/sync.el index 54fbf0117..6b7274e0e 100644 --- a/lisp/cli/sync.el +++ b/lisp/cli/sync.el @@ -74,13 +74,14 @@ OPTIONS: (print! (warn "Your system has changed since last sync")) (setq to-rebuild t)) (when (and to-rebuild (not (doom-cli-context-suppress-prompts-p context))) - (if nobuild? - (print! (warn "Packages need to be recompiled, but -B has prevented it. Skipping...")) - (or (not (doom-cli-context-get context 'upgrading)) - (y-or-n-p - (format! " %s" "Your installed packages will need to be recompiled. Do so now?")) - (exit! 0)) - (setq rebuild? t)))) + (cond (nobuild? + (print! (warn "Packages must be rebuilt, but -B has prevented it. Skipping..."))) + ((doom-cli-context-get context 'upgrading) + (print! (warn "Packages will be rebuilt")) + (setq rebuild? t)) + ((y-or-n-p (format! " %s" "Installed packages must be rebuilt. Do so now?")) + (setq rebuild? t)) + ((exit! 0))))) (when (and (not noenvvar?) (file-exists-p doom-env-file)) (call! '(env))) From b6b755dea4546a7ae6d7dfb3fbfdbd71036a01fc Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 27 Mar 2024 09:39:05 -0400 Subject: [PATCH 517/523] fix(cli): doom install: $DOOMDIR paths in output Close: #7768 Co-authored-by: plajjan --- lisp/cli/install.el | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/lisp/cli/install.el b/lisp/cli/install.el index 27dad9bc9..1836489e8 100644 --- a/lisp/cli/install.el +++ b/lisp/cli/install.el @@ -55,20 +55,19 @@ Change `$DOOMDIR' with the `--doomdir' option, e.g. (setq doom-user-dir (expand-file-name "doom/" xdg-config-dir))))) (if (file-directory-p doom-user-dir) - (print! (item "Skipping %s (already exists)") (relpath doom-user-dir)) + (print! (item "Skipping %s (already exists)") (path doom-user-dir)) (make-directory doom-user-dir 'parents) - (print! (success "Created %s") (relpath doom-user-dir))) + (print! (success "Created %s") (path doom-user-dir))) ;; Create init.el, config.el & packages.el (print-group! (mapc (lambda (file) (cl-destructuring-bind (filename . template) file - (if (file-exists-p! filename doom-user-dir) - (print! (item "Skipping %s (already exists)") - (path filename)) - (print! (item "Creating %s%s") (relpath doom-user-dir) filename) - (with-temp-file (doom-path doom-user-dir filename) - (insert-file-contents template)) + (setq filename (doom-path doom-user-dir filename)) + (if (file-exists-p filename) + (print! (item "Skipping %s (already exists)...") (path filename)) + (print! (item "Creating %s...") (path filename)) + (doom-file-write filename template) (print! (success "Done!"))))) (let ((template-dir (doom-path doom-emacs-dir "templates"))) `((,doom-module-init-file From d6a345091770bfc9078ace70c3c65daa805317cb Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 27 Mar 2024 10:23:54 -0400 Subject: [PATCH 518/523] fix(cli): shell-quote-argument: wrong-number-of-args error shell-quote-argument's second argument was introduced in 29.1. Users on older versions of Emacs will get an error. Amend: d5bad5b43061 --- lisp/cli/packages.el | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lisp/cli/packages.el b/lisp/cli/packages.el index 7933d692e..527bfb31b 100644 --- a/lisp/cli/packages.el +++ b/lisp/cli/packages.el @@ -810,10 +810,10 @@ However, in batch mode, print to stdout instead of stderr." ;; explanation. (defadvice! doom-cli--straight-throw-error-on-no-branch-a (fn &rest args) :around #'straight--process-log - (letf! ((defun shell-quote-argument (arg &optional posix) - (when (null arg) + (letf! ((defun shell-quote-argument (&rest args) + (unless (car args) (error "Package was not properly cloned due to a connection failure, please try again later")) - (funcall shell-quote-argument arg posix))) + (apply shell-quote-argument args))) (apply fn args))) (defadvice! doom-cli--straight-regurgitate-empty-string-error-a (fn &rest args) From 3f966f49d8f97202ef018b51e24f65f629750182 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 27 Mar 2024 10:25:32 -0400 Subject: [PATCH 519/523] fix(cli): doom upgrade: remove doom-compile-clean call This function was removed in 63c470b. Amend: 63c470bff328 --- lisp/cli/upgrade.el | 2 -- 1 file changed, 2 deletions(-) diff --git a/lisp/cli/upgrade.el b/lisp/cli/upgrade.el index acaf37a3d..78218de17 100644 --- a/lisp/cli/upgrade.el +++ b/lisp/cli/upgrade.el @@ -30,7 +30,6 @@ following shell commands: cd ~/.emacs.d git pull --rebase - doom clean doom sync -u" (let* ((force? (doom-cli-context-suppress-prompts-p context)) (sync-cmd (append '("sync" "-u") @@ -140,7 +139,6 @@ following shell commands: (ignore (print! (error "Aborted"))) (print! (start "Upgrading Doom Emacs...")) (print-group! - (doom-compile-clean) (doom-cli-context-put context 'straight-recipe (doom-upgrade--get-straight-recipe)) (or (and (zerop (car (sh! "git" "reset" "--hard" target-remote))) (equal (cdr (sh! "git" "rev-parse" "HEAD")) new-rev)) From 89c56a3393467d84ea4bf3d1aabf9ab4a9d0bed0 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 27 Mar 2024 17:11:24 -0400 Subject: [PATCH 520/523] fix(cli): doom install: $DOOMDIR templates Caused by a regression introduced in b6b755d. Amend: b6b755dea454 --- lisp/cli/install.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/cli/install.el b/lisp/cli/install.el index 1836489e8..edb96cd2a 100644 --- a/lisp/cli/install.el +++ b/lisp/cli/install.el @@ -67,7 +67,7 @@ Change `$DOOMDIR' with the `--doomdir' option, e.g. (if (file-exists-p filename) (print! (item "Skipping %s (already exists)...") (path filename)) (print! (item "Creating %s...") (path filename)) - (doom-file-write filename template) + (with-temp-file template (insert-file-contents template)) (print! (success "Done!"))))) (let ((template-dir (doom-path doom-emacs-dir "templates"))) `((,doom-module-init-file From b44337198171bf612047d78f99968e17054cf48c Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 28 Mar 2024 00:23:17 -0400 Subject: [PATCH 521/523] fix(cli): doom install: $DOOMDIR templates (part 2) Caused by a regression originally introduced in b6b755d, but incorrectly fixed in 89c56a3. Don't code while sleep deprived, kids. Amend: 89c56a339346 Amend: b6b755dea454 --- lisp/cli/install.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/cli/install.el b/lisp/cli/install.el index edb96cd2a..3e1e4ef21 100644 --- a/lisp/cli/install.el +++ b/lisp/cli/install.el @@ -67,7 +67,7 @@ Change `$DOOMDIR' with the `--doomdir' option, e.g. (if (file-exists-p filename) (print! (item "Skipping %s (already exists)...") (path filename)) (print! (item "Creating %s...") (path filename)) - (with-temp-file template (insert-file-contents template)) + (with-temp-file filename (insert-file-contents template)) (print! (success "Done!"))))) (let ((template-dir (doom-path doom-emacs-dir "templates"))) `((,doom-module-init-file From 544e579c448e83b4600ded44f6f997bbfbee1b8b Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 28 Mar 2024 09:43:43 -0400 Subject: [PATCH 522/523] fix(cli): doom upgrade: ensure upgrade remote is deleted It seems the temporary branch that 'doom upgrade' creates is sometimes left over after a 'doom upgrade', preventing the next 'git fetch' from completing. Ref: #7771 --- lisp/cli/upgrade.el | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lisp/cli/upgrade.el b/lisp/cli/upgrade.el index 78218de17..13614c62a 100644 --- a/lisp/cli/upgrade.el +++ b/lisp/cli/upgrade.el @@ -99,6 +99,8 @@ following shell commands: (sh! "git" "reset" "--hard" (format "origin/%s" branch)) (sh! "git" "clean" "-ffd"))) + ;; In case of leftover state from a partial/incomplete 'doom upgrade' + (sh! "git" "branch" "-D" target-remote) (sh! "git" "remote" "remove" doom-upgrade-remote) (unwind-protect (let (result) From b533f5496c154bc35a9db80c58f64dda52b72a8e Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 28 Mar 2024 10:19:46 -0400 Subject: [PATCH 523/523] tweak(corfu): corfu-auto-delay: 0.1 -> 0.18 At 0.1, Corfu pops up too aggressively and too often, even for fast typists. This is especially disruptive with slow backends that might block Emacs. I think 0.18-0.24 is the goldilocks zone, so I'll start with 0.18, and maybe increase it later. --- modules/completion/corfu/config.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/completion/corfu/config.el b/modules/completion/corfu/config.el index 7cd7b5173..442ce2d52 100644 --- a/modules/completion/corfu/config.el +++ b/modules/completion/corfu/config.el @@ -41,7 +41,7 @@ use the minibuffer such as `query-replace'.") (corfu-mode +1)))) :config (setq corfu-auto t - corfu-auto-delay 0.1 + corfu-auto-delay 0.18 corfu-auto-prefix 2 global-corfu-modes '((not erc-mode