From c56afcfe01689eb6a13d45fa90b28b5983cc21ac Mon Sep 17 00:00:00 2001 From: James Ravn Date: Tue, 21 Apr 2020 20:24:13 +0100 Subject: [PATCH 001/130] Add lsp-command-map to SPC-c-l The default lsp-mode bindings are bound to `s-l` which is impractical for anyone using keybindings in their window manager. It also conflicts w/ the doom approach of using leader keys. This change makes all the default lsp bindings (see https://github.com/emacs-lsp/lsp-mode#commands) available on SPC-c-l. So for example, restarting the lsp server can be done with `SPC c l s r`. --- modules/config/default/+emacs-bindings.el | 22 ++++++++++++---------- modules/config/default/+evil-bindings.el | 11 +++++++---- modules/tools/lsp/config.el | 6 ++++++ 3 files changed, 25 insertions(+), 14 deletions(-) diff --git a/modules/config/default/+emacs-bindings.el b/modules/config/default/+emacs-bindings.el index 25391b39c..f6099d74d 100644 --- a/modules/config/default/+emacs-bindings.el +++ b/modules/config/default/+emacs-bindings.el @@ -42,16 +42,18 @@ (:when (featurep! :tools flycheck) :desc "List errors" "x" #'flycheck-list-errors) (:when (featurep! :tools lsp) - :desc "LSP Code actions" "a" #'lsp-execute-code-action - :desc "LSP Format buffer/region" "F" #'+default/lsp-format-region-or-buffer - :desc "LSP Organize imports" "i" #'lsp-organize-imports - :desc "LSP Rename" "r" #'lsp-rename - (:when (featurep! :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) - (:when (featurep! :completion helm) - :desc "Jump to symbol in current workspace" "j" #'helm-lsp-workspace-symbol - :desc "Jump to symbol in any workspace" "J" #'helm-lsp-global-workspace-symbol))) + :desc "LSP Code actions" "a" #'lsp-execute-code-action + :desc "LSP Format buffer/region" "F" #'+default/lsp-format-region-or-buffer + :desc "LSP Organize imports" "i" #'lsp-organize-imports + :desc "LSP Rename" "r" #'lsp-rename + (:after lsp-mode + :desc "LSP" "l" lsp-command-map) + (:when (featurep! :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) + (:when (featurep! :completion helm) + :desc "Jump to symbol in current workspace" "j" #'helm-lsp-workspace-symbol + :desc "Jump to symbol in any workspace" "J" #'helm-lsp-global-workspace-symbol))) ;;; f --- file (:prefix-map ("f" . "file") diff --git a/modules/config/default/+evil-bindings.el b/modules/config/default/+evil-bindings.el index ce615bb6f..4b1c155e2 100644 --- a/modules/config/default/+evil-bindings.el +++ b/modules/config/default/+evil-bindings.el @@ -337,7 +337,6 @@ ;;; c --- code (:prefix-map ("c" . "code") - :desc "LSP Execute code action" "a" #'lsp-execute-code-action :desc "Compile" "c" #'compile :desc "Recompile" "C" #'recompile :desc "Jump to definition" "d" #'+lookup/definition @@ -345,8 +344,6 @@ :desc "Evaluate buffer/region" "e" #'+eval/buffer-or-region :desc "Evaluate & replace region" "E" #'+eval:replace-region :desc "Format buffer/region" "f" #'+format/region-or-buffer - :desc "LSP Format buffer/region" "F" #'+default/lsp-format-region-or-buffer - :desc "LSP Organize imports" "i" #'lsp-organize-imports (:when (featurep! :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) @@ -354,7 +351,13 @@ :desc "Jump to symbol in current workspace" "j" #'helm-lsp-workspace-symbol :desc "Jump to symbol in any workspace" "J" #'helm-lsp-global-workspace-symbol) :desc "Jump to documentation" "k" #'+lookup/documentation - :desc "LSP Rename" "r" #'lsp-rename + (:when (featurep! :tools lsp) + :desc "LSP Execute code action" "a" #'lsp-execute-code-action + :desc "LSP Format buffer/region" "F" #'+default/lsp-format-region-or-buffer + :desc "LSP Organize imports" "i" #'lsp-organize-imports + :desc "LSP Rename" "r" #'lsp-rename + (:after lsp-mode + :desc "LSP" "l" lsp-command-map)) :desc "Send to repl" "s" #'+eval/send-region-to-repl :desc "Delete trailing whitespace" "w" #'delete-trailing-whitespace :desc "Delete trailing newlines" "W" #'doom/delete-trailing-newlines diff --git a/modules/tools/lsp/config.el b/modules/tools/lsp/config.el index 888c9c6fe..fcc3e1e37 100644 --- a/modules/tools/lsp/config.el +++ b/modules/tools/lsp/config.el @@ -42,6 +42,8 @@ working on that project after closing the last buffer.") (setq lsp-server-install-dir (concat doom-etc-dir "lsp/") lsp-groovy-server-install-dir (concat lsp-server-install-dir "lsp-groovy/") lsp-intelephense-storage-path (concat doom-cache-dir "lsp-intelephense/")) + ;; Let doom bind the LSP keymap. + (setq lsp-keymap-prefix nil) ;; Disable LSP's superfluous, expensive and/or debatably unnecessary features. ;; Some servers implement these poorly. Better to just rely on Emacs' native @@ -114,6 +116,10 @@ This also logs the resolved project root, if found, so we know where we are." (lambda (it) (format "[%s]" (lsp--workspace-print it))) lsp--buffer-workspaces)))))) + (dolist (leader-key (list doom-leader-key doom-leader-alt-key)) + (let ((lsp-keymap-prefix (concat leader-key " c l"))) + (lsp-enable-which-key-integration))) + (add-hook! 'lsp-mode-hook (defun +lsp-init-company-h () (if (not (bound-and-true-p company-mode)) From d95d63da934d4d7781a51acc08841eabb70f82f8 Mon Sep 17 00:00:00 2001 From: James Ravn Date: Tue, 28 Apr 2020 11:22:43 +0100 Subject: [PATCH 002/130] Fix langtool config for Linux Fixes https://github.com/hlissner/doom-emacs/issues/2072. I have left the mac portion alone as I don't have a mac handy to test this. --- modules/checkers/grammar/config.el | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/modules/checkers/grammar/config.el b/modules/checkers/grammar/config.el index 58a505fb5..f972eaa61 100644 --- a/modules/checkers/grammar/config.el +++ b/modules/checkers/grammar/config.el @@ -8,15 +8,16 @@ :init (setq langtool-default-language "en-US") :config (unless (or langtool-bin - langtool-language-tool-jar) - (setq langtool-language-tool-jar - (cond (IS-MAC + langtool-language-tool-jar + langtool-java-classpath) + (cond (IS-MAC + (setq langtool-language-tool-jar (locate-file "libexec/languagetool-commandline.jar" (doom-files-in "/usr/local/Cellar/languagetool" :type 'dirs - :depth 2))) - (IS-LINUX - "/usr/share/java/languagetool/languagetool-commandline.jar"))))) + :depth 2)))) + (IS-LINUX + (setq langtool-java-classpath "/usr/share/languagetool:/usr/share/java/languagetool/*"))))) ;; Detects weasel words, passive voice and duplicates. Proselint would be a From d34633cb0ab737602c1ced0edb58779f1014d7d5 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 28 Apr 2020 14:39:10 -0400 Subject: [PATCH 003/130] Bump to emacs-straight/org-mode@e68ae40 From emacs-straight/org-mode@3106837 Fixes #2993 --- modules/lang/org/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/lang/org/packages.el b/modules/lang/org/packages.el index 07fc7a7cf..4d3996a18 100644 --- a/modules/lang/org/packages.el +++ b/modules/lang/org/packages.el @@ -27,7 +27,7 @@ :recipe (:host github :repo "emacs-straight/org-mode" :files ("*.el" "lisp/*.el" "contrib/lisp/*.el")) - :pin "31068373dc") + :pin "e68ae40bdb") ;; ...And prevent other packages from pulling org; org-plus-contrib satisfies ;; the dependency already: https://github.com/raxod502/straight.el/issues/352 (package! org :recipe (:local-repo nil)) From 6e8487e1d4f55d8c21ce6bafb2c028b705523b74 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 28 Apr 2020 15:10:59 -0400 Subject: [PATCH 004/130] Fix #2992: wrong-type-arg stringp on switch-to-buffer (switch-to-buffer nil) should switch to other-buffer, as per its documentation, which was not respected by our switch-buffer hook mechanism. --- core/core-ui.el | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/core/core-ui.el b/core/core-ui.el index 6ff9e85ba..b742d97e2 100644 --- a/core/core-ui.el +++ b/core/core-ui.el @@ -105,7 +105,10 @@ size.") (defun doom-run-switch-buffer-hooks-a (orig-fn buffer-or-name &rest args) (let ((gc-cons-threshold most-positive-fixnum)) (if (or doom-inhibit-switch-buffer-hooks - (eq (current-buffer) (get-buffer buffer-or-name)) + (eq (current-buffer) + (get-buffer (or buffer-or-name + (if (eq orig-fn #'switch-to-buffer) + (other-buffer))))) (and (eq orig-fn #'switch-to-buffer) (car args))) (apply orig-fn buffer-or-name args) (let ((doom-inhibit-switch-buffer-hooks t) From bd58f0ae7169fbdf9c432e4cf02dd42198c7f0b6 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 28 Apr 2020 17:29:11 -0400 Subject: [PATCH 005/130] Fix #2995: doom-modeline save icon & ligature conflict There is no good solution to this. I've decided the ligatures should lose a character, instead of the modeline losing an icon. --- modules/ui/pretty-code/+fira.el | 2 ++ modules/ui/pretty-code/+iosevka.el | 2 ++ 2 files changed, 4 insertions(+) diff --git a/modules/ui/pretty-code/+fira.el b/modules/ui/pretty-code/+fira.el index f1983a99d..99e9a6d08 100644 --- a/modules/ui/pretty-code/+fira.el +++ b/modules/ui/pretty-code/+fira.el @@ -119,6 +119,8 @@ (defun +pretty-code-setup-fira-ligatures-h () (set-fontset-font t '(#Xe100 . #Xe16f) +pretty-code-fira-code-font-name) + (when (featurep 'doom-modeline) + (set-fontset-font t #Xe161 nil)) (setq-default prettify-symbols-alist (append prettify-symbols-alist (mapcar #'+pretty-code--correct-symbol-bounds diff --git a/modules/ui/pretty-code/+iosevka.el b/modules/ui/pretty-code/+iosevka.el index 315dbd754..35c62c0ce 100644 --- a/modules/ui/pretty-code/+iosevka.el +++ b/modules/ui/pretty-code/+iosevka.el @@ -225,6 +225,8 @@ (defun +pretty-code-setup-iosevka-ligatures-h () (set-fontset-font t '(#Xe100 . #Xe1cc) +pretty-code-iosevka-font-name) + (when (featurep 'doom-modeline) + (set-fontset-font t #Xe161 nil)) (setq-default prettify-symbols-alist (append prettify-symbols-alist +pretty-code-iosevka-font-ligatures))) From 0e50db55a006803cd91484990f2993ffc0e46686 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 28 Apr 2020 18:43:15 -0400 Subject: [PATCH 006/130] Fix #2972: infinite recursion in org + python src blocks --- modules/lang/org/config.el | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/modules/lang/org/config.el b/modules/lang/org/config.el index 4a2b58faa..a4c94cd0a 100644 --- a/modules/lang/org/config.el +++ b/modules/lang/org/config.el @@ -168,12 +168,6 @@ This forces it to read the background before rendering." ("HOLD" . +org-todo-onhold) ("PROJ" . +org-todo-project))) - (after! org-eldoc - ;; HACK Fix #2972: infinite recursion when eldoc kicks in in an 'org' src - ;; block. - ;; TODO Should be reported upstream! - (puthash "org" "ignore" org-eldoc-local-functions-cache)) - (defadvice! +org-display-link-in-eldoc-a (&rest args) "Display full link in minibuffer when cursor/mouse is over it." :before-until #'org-eldoc-documentation-function @@ -501,6 +495,13 @@ eldoc string." nil 'face `(:foreground ,(face-foreground face nil t) :weight bold))) width prefix separator)) + (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 "python" #'python-eldoc-function org-eldoc-local-functions-cache)) + (defun +org--restart-mode-h () "Restart `org-mode', but only once." (quiet! (org-mode-restart)) From 6d8811d70cd01ab0098402e427ce1176a3098aa8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ot=C3=A1vio=20Schwanck?= Date: Tue, 28 Apr 2020 19:58:11 -0300 Subject: [PATCH 007/130] Add Rails Server and console to buffer list --- modules/lang/ruby/config.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/lang/ruby/config.el b/modules/lang/ruby/config.el index 0abd0522a..0011b23e7 100644 --- a/modules/lang/ruby/config.el +++ b/modules/lang/ruby/config.el @@ -172,7 +172,8 @@ (use-package! projectile-rails :when (featurep! +rails) - :hook ((ruby-mode inf-ruby-mode projectile-rails-server-mode) . projectile-rails-mode) + :hook (((ruby-mode inf-ruby-mode projectile-rails-server-mode) . projectile-rails-mode) + ((inf-ruby-mode projectile-rails-server-mode) . doom-mark-buffer-as-real-h)) :init (setq inf-ruby-console-environment "development") (when (featurep! :lang web) From 8cc8033a06594e65b16b4ea72543d4887572c47a Mon Sep 17 00:00:00 2001 From: fabio-oesch Date: Wed, 29 Apr 2020 06:05:13 +0200 Subject: [PATCH 008/130] First draft for java documentation (#2713) * Added template and description for module flags Because +lsp and +meghanada are mutually exclusive I thought I would create a separate section for each feature and add descriptions what they each offer. So far only +lsp is done. * First draft for java documentation The second plugin +meghanada is explained as well as some instructions how to install JDK 11 and OpenJDK 11. * Do requested edits to README * Regenerate TOC in readme * Reformat README Co-authored-by: Henrik Lissner --- modules/lang/java/README.org | 114 +++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 modules/lang/java/README.org diff --git a/modules/lang/java/README.org b/modules/lang/java/README.org new file mode 100644 index 000000000..eb4b69098 --- /dev/null +++ b/modules/lang/java/README.org @@ -0,0 +1,114 @@ +#+TITLE: lang/java +#+DATE: January 16, 2017 +#+SINCE: v1.3 +#+STARTUP: inlineimages + +* Table of Contents :TOC_3:noexport: +- [[#description][Description]] + - [[#module-flags][Module Flags]] +- [[#prerequisites][Prerequisites]] + - [[#openjdk-11][OpenJDK 11]] + - [[#ubuntu][Ubuntu]] + - [[#fedora][Fedora]] + - [[#oracle-jdk-11][Oracle JDK 11]] + - [[#ubuntu-1][Ubuntu]] + - [[#fedora-1][Fedora]] +- [[#features][Features]] + - [[#lsp-features][=+lsp= features]] + - [[#meghanada-features][=+meghanada= features]] +- [[#configuration][Configuration]] + +* Description +This module adds [[https://www.java.com][java]] support to Doom Emacs, including =android-mode= and +=groovy-mode=. + +** Module Flags ++ =+lsp= Enables integration for the eclipse.jdt.ls LSP server. ++ =+meghanada= Enables the [[https://github.com/mopemope/meghanada-emacs/tree/master][meghanada-mode]] + +The =+lsp= and =+meghanada= packages are mutually exclusive and do not work +together. At the time of writing the =+meghanada= is already configured whereas +=+lsp= needs to manual configuring. + +* Prerequisites +This module requires the Java SDK. + +** OpenJDK 11 +*** Ubuntu +#+BEGIN_SRC sh +sudo apt-get install openjdk-11-jdk-headless +#+END_SRC +*** Fedora +#+BEGIN_SRC sh +sudo dnf install java-11-openjdk +#+END_SRC + +** Oracle JDK 11 +*** Ubuntu +#+BEGIN_SRC sh +sudo add-apt-repository ppa:linuxuprising/java +sudo apt update +sudo apt install oracle-java11-installer +sudo apt install oracle-java11-set-default +#+END_SRC +*** Fedora +#+BEGIN_SRC sh +curl -O https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz +tar zxvf openjdk-11.0.2_linux-x64_bin.tar.gz +sudo mv jdk-11.0.2/ /usr/local/ +#+END_SRC + +Open =/etc/profile.d/jdk11.sh= as root and add + +#+BEGIN_SRC sh +export JAVA_HOME=/usr/local/jdk-11.0.2 +export PATH=$PATH:$JAVA_HOME/bin +#+END_SRC + +Save the file and source the file + +#+BEGIN_SRC sh +source /etc/profile.d/jdk11.sh +java -version +#+END_SRC + +* Features +** =+lsp= features +According to [[https://github.com/emacs-lsp/lsp-java]] it adds + ++ As you type reporting of parsing and compilation errors (via flycheck/[[https://github.com/emacs-lsp/lsp-ui][lsp-ui]]) ++ Code completion - using [[https://github.com/tigersoldier/company-lsp][company-lsp]] or builtin complete-at-point ++ Javadoc hovers - using [[https://github.com/emacs-lsp/lsp-ui][lsp-ui]] ++ Code actions - using [[https://github.com/emacs-lsp/lsp-ui][lsp-ui]] ++ Code outline - using builtin [[https://www.gnu.org/software/emacs/manual/html_node/emacs/Imenu.html][imenu]] ++ Code navigation - using builtin [[https://www.gnu.org/software/emacs/manual/html_node/emacs/Xref.html][xref]] ++ Code lens (references/implementations) - using builtin [[https://www.gnu.org/software/emacs/manual/html_node/emacs/Xref.html][xref]] ++ Highlights ++ Code formatting ++ Maven pom.xml project support ++ Limited Gradle support ++ Visual debugger - [[https://github.com/yyoncho/dap-mode/][dap-mode]] ++ Test runner - [[https://github.com/yyoncho/dap-mode/][dap-mode]] ++ Project explorer integration - [[https://github.com/Alexander-Miller/treemacs][treemacs]] ++ Integration with [[https://start.spring.io/][Spring Initializr]] + +** =+meghanada= features +According to [[https://github.com/mopemope/meghanada-emacs/]] it adds + ++ Auto-update server module ++ [[https://gradle.org/][Gradle]] and [[http://maven.apache.org/][Maven]] and Eclipse project support ++ No need build tool's plugin ++ Run build tool task ++ Compile your project ++ Syntax check and analyze java source (=flycheck-meghanada=) ++ Support =Generic Types= ++ Code completion with [[http://company-mode.github.io/][company-mode]] (=company-meghanada=) ++ Optimize import and sort ++ Jump declaration ++ Run [[http://www.junit.org/][JUnit]] test (include test runner) ++ Diagnostic reporting with [[http://flycheck.org/][flycheck]] (=flycheck-meghanada=) ++ Show symbol's type info with =el-doc= ++ Search references ++ Full-featured text search + +* TODO Configuration From 7a73bb7ce7caa0408b64bb0f6181117d0aeb043f Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 29 Apr 2020 00:09:12 -0400 Subject: [PATCH 009/130] Refactor ruby hooks --- modules/lang/ruby/config.el | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/lang/ruby/config.el b/modules/lang/ruby/config.el index 0011b23e7..125891497 100644 --- a/modules/lang/ruby/config.el +++ b/modules/lang/ruby/config.el @@ -22,6 +22,7 @@ (add-hook 'ruby-mode-local-vars-hook #'lsp!)) (after! inf-ruby + (add-hook 'inf-ruby-mode-hook #'doom-mark-buffer-as-real-h) ;; switch to inf-ruby from compile if we detect a breakpoint has been hit (add-hook 'compilation-filter-hook #'inf-ruby-auto-enter)) @@ -172,8 +173,8 @@ (use-package! projectile-rails :when (featurep! +rails) - :hook (((ruby-mode inf-ruby-mode projectile-rails-server-mode) . projectile-rails-mode) - ((inf-ruby-mode projectile-rails-server-mode) . doom-mark-buffer-as-real-h)) + :hook ((ruby-mode inf-ruby-mode projectile-rails-server-mode) . projectile-rails-mode) + :hook (projectile-rails-server-mode . doom-mark-buffer-as-real-h) :init (setq inf-ruby-console-environment "development") (when (featurep! :lang web) From 2deaafd03a2db42f02721ee173a89c7867b05664 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 29 Apr 2020 00:20:01 -0400 Subject: [PATCH 010/130] Fix #2990: C-j/C-k in minibuffer w/ evil-collection --- modules/config/default/+evil-bindings.el | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/config/default/+evil-bindings.el b/modules/config/default/+evil-bindings.el index 52df2ec1b..dd8b05c76 100644 --- a/modules/config/default/+evil-bindings.el +++ b/modules/config/default/+evil-bindings.el @@ -26,6 +26,9 @@ "C-k" #'previous-line "C-S-j" #'scroll-up-command "C-S-k" #'scroll-down-command) + (define-key! :states 'insert :keymaps +default-minibuffer-maps + "C-j" #'next-line + "C-k" #'previous-line) (define-key! read-expression-map "C-j" #'next-line-or-history-element "C-k" #'previous-line-or-history-element))) From aca1599a814c97bf3e9af9df3a17d6a5d482d458 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 29 Apr 2020 00:29:17 -0400 Subject: [PATCH 011/130] Only resolve package :local-repo if relative path exists This allows you to specify a :local-repo relative to the directory your packages.el is in. If it doesn't exist, it'll assume you meant a directory in ~/.emacs.d/.local/straight/repos --- core/core-packages.el | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/core/core-packages.el b/core/core-packages.el index 416e0f2d0..1ad951a37 100644 --- a/core/core-packages.el +++ b/core/core-packages.el @@ -269,9 +269,13 @@ elsewhere." recipe ;; Expand :local-repo from current directory (when local-repo - (plist-put! plist :recipe - (plist-put recipe :local-repo - (expand-file-name local-repo ,(dir!))))))) + (plist-put! + plist :recipe + (plist-put recipe :local-repo + (let ((local-path (expand-file-name local-repo ,(dir!)))) + (if (file-directory-p local-path) + local-path + local-repo))))))) (error (signal 'doom-package-error (cons ,(symbol-name name) From c96bbf909cf717249d4d845a0d46d7571b4720be Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 29 Apr 2020 00:33:54 -0400 Subject: [PATCH 012/130] Fix #2992: remove buffer-or-name check in switch-buffer executor --- core/core-ui.el | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/core/core-ui.el b/core/core-ui.el index b742d97e2..5fca2c031 100644 --- a/core/core-ui.el +++ b/core/core-ui.el @@ -105,10 +105,9 @@ size.") (defun doom-run-switch-buffer-hooks-a (orig-fn buffer-or-name &rest args) (let ((gc-cons-threshold most-positive-fixnum)) (if (or doom-inhibit-switch-buffer-hooks - (eq (current-buffer) - (get-buffer (or buffer-or-name - (if (eq orig-fn #'switch-to-buffer) - (other-buffer))))) + (and buffer-or-name + (eq (current-buffer) + (get-buffer buffer-or-name))) (and (eq orig-fn #'switch-to-buffer) (car args))) (apply orig-fn buffer-or-name args) (let ((doom-inhibit-switch-buffer-hooks t) From 9788b1235ce4a74d303074ac88036715ac71de28 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 29 Apr 2020 02:17:42 -0400 Subject: [PATCH 013/130] Disable jit-lock Deferred & stealth font-locking has produced a fair number of obscure bugs. It's just not worth the trouble. --- core/core.el | 5 ----- 1 file changed, 5 deletions(-) diff --git a/core/core.el b/core/core.el index 7d0596ba7..288013d96 100644 --- a/core/core.el +++ b/core/core.el @@ -274,11 +274,6 @@ users).") ;; quickly self-correct. (setq fast-but-imprecise-scrolling t) -;; Font locking is the source of much slowness in Emacs. jit-lock-mode tries to -;; defer fontification until the user is idle. This should help... in theory. -(setq jit-lock-defer-time 0 ; only defer while processing input - jit-lock-stealth-time 2) ; fontify the rest of the buffer after a delay - ;; Resizing the Emacs frame can be a terribly expensive part of changing the ;; font. By inhibiting this, we halve startup times, particularly when we use ;; fonts that are larger than the system default (which would resize the frame). From f28a972861bc0f471bd50d07b36582ba2622e892 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 29 Apr 2020 02:42:45 -0400 Subject: [PATCH 014/130] Disable org-highlight-latex-and-related It is far too slow to enable by default. Fixes #2998 --- modules/lang/org/config.el | 3 --- 1 file changed, 3 deletions(-) diff --git a/modules/lang/org/config.el b/modules/lang/org/config.el index a4c94cd0a..ee71fb57d 100644 --- a/modules/lang/org/config.el +++ b/modules/lang/org/config.el @@ -120,9 +120,6 @@ Is relative to `org-directory', unless it is absolute. Is used in Doom's default org-refile-use-outline-path 'file org-outline-path-complete-in-steps nil) - ;; Fontify latex blocks and entities, but not natively -- that's too slow - (setq org-highlight-latex-and-related '(latex script entities)) - (plist-put org-format-latex-options :scale 1.5) ; larger previews (add-hook! 'doom-load-theme-hook (defun +org-refresh-latex-background-h () From ae152a5924e8f795d6ac178e54ef72792dc63c29 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 29 Apr 2020 03:41:09 -0400 Subject: [PATCH 015/130] Cache project root earlier So users can still change it with setq-hook! or their own hooks. --- core/core-projects.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/core-projects.el b/core/core-projects.el index ebb8d803e..1d0213667 100644 --- a/core/core-projects.el +++ b/core/core-projects.el @@ -43,7 +43,7 @@ Emacs.") ;; REVIEW Resolve the project root once, when the file/buffer is opened. This ;; speeds up projectile's project root resolution by leaps, but does ;; put you at risk of having a stale project root. - (setq-hook! '(after-change-major-mode-hook + (setq-hook! '(change-major-mode-after-body-hook ;; In case the user saves the file to a new location after-save-hook ;; ...or makes external changes then returns to Emacs From 5bc86de760ae184622610951dc7e565da6dc9d8f Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 29 Apr 2020 03:47:20 -0400 Subject: [PATCH 016/130] Remove goto-addr It's not essential and is redundant with `gf` and find-file-at-point, which already understand URLs at point. --- core/core-ui.el | 7 ------- 1 file changed, 7 deletions(-) diff --git a/core/core-ui.el b/core/core-ui.el index 5fca2c031..4ca55d8ec 100644 --- a/core/core-ui.el +++ b/core/core-ui.el @@ -412,13 +412,6 @@ windows, switch to `doom-fallback-buffer'. Otherwise, delegate to original (set-window-configuration doom--ediff-saved-wconf))))) -(use-package! goto-addr - :hook (text-mode . goto-address-mode) - :hook (prog-mode . goto-address-prog-mode) - :config - (define-key goto-address-highlight-keymap (kbd "RET") #'goto-address-at-point)) - - (use-package! hl-line ;; Highlights the current line :hook ((prog-mode text-mode conf-mode special-mode) . hl-line-mode) From 84a179592da85ef63d0ba50b010938b70b3fcec2 Mon Sep 17 00:00:00 2001 From: Seong Yong-ju Date: Wed, 29 Apr 2020 23:16:15 +0900 Subject: [PATCH 017/130] Remove `lsp-groovy-server-install-dir` --- modules/tools/lsp/config.el | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/tools/lsp/config.el b/modules/tools/lsp/config.el index 3c4aabfaf..8464cb76a 100644 --- a/modules/tools/lsp/config.el +++ b/modules/tools/lsp/config.el @@ -40,7 +40,6 @@ working on that project after closing the last buffer.") (setq lsp-flycheck-live-reporting nil) ;; For `lsp-clients' (setq lsp-server-install-dir (concat doom-etc-dir "lsp/") - lsp-groovy-server-install-dir (concat lsp-server-install-dir "lsp-groovy/") lsp-intelephense-storage-path (concat doom-cache-dir "lsp-intelephense/")) ;; Disable LSP's superfluous, expensive and/or debatably unnecessary features. From db16b126333505093931ece480dd5c2dae42cdd9 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 29 Apr 2020 14:44:51 -0400 Subject: [PATCH 018/130] persp-reset-windows-on-nil-window-conf = nil Do nothing when opening a perspective with no window conf; this is particularly useful for emacsclient frames that are opened without a dedicated workspace. --- modules/ui/workspaces/config.el | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/ui/workspaces/config.el b/modules/ui/workspaces/config.el index f0fdad205..56c235547 100644 --- a/modules/ui/workspaces/config.el +++ b/modules/ui/workspaces/config.el @@ -50,6 +50,7 @@ stored in `persp-save-dir'.") (persp-mode +1))))) :config (setq persp-autokill-buffer-on-remove 'kill-weak + persp-reset-windows-on-nil-window-conf nil persp-nil-hidden t persp-auto-save-fname "autosave" persp-save-dir (concat doom-etc-dir "workspaces/") From f5858a1a6cdc21a4ada7088c59b64b335d215331 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 29 Apr 2020 15:49:30 -0400 Subject: [PATCH 019/130] Add org-journal-mode to +zen-mixed-pitch-modes --- modules/ui/zen/config.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ui/zen/config.el b/modules/ui/zen/config.el index 8d9fc576d..30a73b16a 100644 --- a/modules/ui/zen/config.el +++ b/modules/ui/zen/config.el @@ -1,6 +1,6 @@ ;;; ui/zen/config.el -*- lexical-binding: t; -*- -(defvar +zen-mixed-pitch-modes '(markdown-mode org-mode) +(defvar +zen-mixed-pitch-modes '(markdown-mode org-mode org-journal-mode) "What major-modes to enable `mixed-pitch-mode' in with `writeroom-mode'.") (defvar +zen-text-scale 2 From 91c00d4756394a9a5ae6c61eb71e02a6ade21a59 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 29 Apr 2020 15:54:21 -0400 Subject: [PATCH 020/130] Use +word-wrap-mode instead of visual-line-mode default If the word-wrap module is enabled. --- modules/editor/word-wrap/config.el | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/editor/word-wrap/config.el b/modules/editor/word-wrap/config.el index 2a6af06c7..968e71954 100644 --- a/modules/editor/word-wrap/config.el +++ b/modules/editor/word-wrap/config.el @@ -24,3 +24,7 @@ Otherwise no extra indentation will be used.") '(text-mode markdown-mode markdown-view-mode gfm-mode gfm-view-mode rst-mode latex-mode LaTeX-mode) "Major-modes where `+word-wrap-mode' should not provide extra indentation.") + +(when (memq 'visual-line-mode text-mode-hook) + (remove-hook 'text-mode-hook #'visual-line-mode) + (add-hook 'text-mode-hook #'+word-wrap-mode)) From 079b7482170a45488de26b5006fda7cddfd51e69 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 29 Apr 2020 18:32:25 -0400 Subject: [PATCH 021/130] Fix conflict between private & default autodefs e.g. If you had a ~/.doom.d/modules/tools/lsp/autoload.el that defined an lsp! autodef, it would be indexed and included in ~/.emacs.d/.local/autoloads.el *before* the lsp! autodef from the original ~/.emacs.d/modules/tools/lsp/autoload.el. --- core/core-modules.el | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/core/core-modules.el b/core/core-modules.el index f3c22fb71..c866e1289 100644 --- a/core/core-modules.el +++ b/core/core-modules.el @@ -211,13 +211,15 @@ those directories. The first returned path is always `doom-private-dir'." (declare (pure t) (side-effect-free t)) (append (list doom-private-dir) (if module-dirs - (doom-files-in (if (listp module-dirs) - module-dirs - doom-modules-dirs) - :type 'dirs - :mindepth 1 - :depth 1) - (cl-loop for plist being the hash-values of (doom-modules) + (mapcar (lambda (m) (doom-module-locate-path (car m) (cdr m))) + (doom-files-in (if (listp module-dirs) + module-dirs + doom-modules-dirs) + :map #'doom-module-from-path + :type 'dirs + :mindepth 1 + :depth 1)) + (cl-loop for plist being the hash-values of doom-modules collect (plist-get plist :path))) nil)) From ee4b5c61de53dde40987efbe4942f61f7d486da0 Mon Sep 17 00:00:00 2001 From: Rudi Grinberg Date: Wed, 29 Apr 2020 16:22:01 -0700 Subject: [PATCH 022/130] Improve ivy-rich with counsel-bookmark This adds a column that displays the path where the bookmark exists. Signed-off-by: Rudi Grinberg --- modules/completion/ivy/config.el | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/modules/completion/ivy/config.el b/modules/completion/ivy/config.el index 73276413f..fb3382183 100644 --- a/modules/completion/ivy/config.el +++ b/modules/completion/ivy/config.el @@ -129,7 +129,11 @@ evil-ex-specific constructs, so we disable it solely in evil-ex." (ivy-rich-counsel-function-docstring (:face font-lock-doc-face)))) ;; Apply switch buffer transformers to `counsel-projectile-switch-to-buffer' as well 'counsel-projectile-switch-to-buffer - (plist-get ivy-rich-display-transformers-list 'ivy-switch-buffer)) + (plist-get ivy-rich-display-transformers-list 'ivy-switch-buffer) + 'counsel-bookmark + '(:columns + ((ivy-rich-candidate (:width 0.5)) + (ivy-rich-bookmark-filename (:width 60))))) ;; Remove built-in coloring of buffer list; we do our own (setq ivy-switch-buffer-faces-alist nil) From f61fa503365e305c566d0dc366f78e3a640680fd Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 29 Apr 2020 19:39:35 -0400 Subject: [PATCH 023/130] Null-byte delimit envvar file lines This prevents issues with multi-line envvar values. --- core/cli/env.el | 7 ++++--- core/core.el | 46 ++++++++++++++++++---------------------------- 2 files changed, 22 insertions(+), 31 deletions(-) diff --git a/core/cli/env.el b/core/cli/env.el index bb546ede1..f13a838d3 100644 --- a/core/cli/env.el +++ b/core/cli/env.el @@ -113,10 +113,11 @@ default, on Linux, this is '$SHELL -ic /usr/bin/env'. Variables in "# run 'doom sync'. To create a safe-to-edit envvar file use:\n#\n" "# doom env -o ~/.doom.d/myenv\n#\n" "# And load it with (doom-load-envvars-file \"~/.doom.d/myenv\").\n") - (concat "# This file is safe to edit by hand, but needs to be loaded manually with:\n#\n" + (concat "# This file is safe to edit by hand, but remember to preserve the null bytes at\n" + "# the end of each line! needs to be loaded manually with:\n#\n" "# (doom-load-envvars-file \"path/to/this/file\")\n#\n" "# Use 'doom env -o path/to/this/file' to regenerate it.")) - "# ---------------------------------------------------------------------------\n\n")) + "# ---------------------------------------------------------------------------\n\0\n")) ;; We assume that this noninteractive session was spawned from the ;; user's interactive shell, therefore we just dump ;; `process-environment' to a file. @@ -124,7 +125,7 @@ default, on Linux, this is '$SHELL -ic /usr/bin/env'. Variables in (if (cl-find-if (doom-rpartial #'string-match-p (car (split-string env "="))) doom-env-ignored-vars) (print! (info "Ignoring %s") env) - (insert env "\n"))) + (insert env "\0\n"))) (print! (success "Successfully generated %S") (path env-file)) t)))))) diff --git a/core/core.el b/core/core.el index 288013d96..437779996 100644 --- a/core/core.el +++ b/core/core.el @@ -465,34 +465,24 @@ If NOERROR is non-nil, don't throw an error if the file doesn't exist or is unreadable. Returns the names of envvars that were changed." (if (not (file-readable-p file)) (unless noerror - (signal 'file-error (list "Couldn't read envvar file" file))) - (let (envvars environment) - (with-temp-buffer - (save-excursion - (insert "\n") - (insert-file-contents file)) - (while (re-search-forward "\n *\\([^#= \n]*\\)=" nil t) - (push (match-string 1) envvars) - (push (buffer-substring - (match-beginning 1) - (1- (or (save-excursion - (when (re-search-forward "^\\([^= ]+\\)=" nil t) - (line-beginning-position))) - (point-max)))) - environment))) - (when environment - (setq process-environment - (append (nreverse environment) process-environment) - exec-path - (if (member "PATH" envvars) - (append (split-string (getenv "PATH") path-separator t) - (list exec-directory)) - exec-path) - shell-file-name - (if (member "SHELL" envvars) - (or (getenv "SHELL") shell-file-name) - shell-file-name)) - envvars)))) + (signal 'file-error (list "No envvar file exists" file))) + (when-let + (env + (with-temp-buffer + (save-excursion + (insert "\0\n") ; to prevent off-by-one + (insert-file-contents file)) + (save-match-data + (when (re-search-forward "\0\n *\\([^#= \n]*\\)=" nil t) + (setq + env (split-string (buffer-substring (match-beginning 1) (point-max)) + "\0\n" + 'omit-nulls)))))) + (setq process-environment (append (nreverse env) process-environment) + exec-path (append (split-string (getenv "PATH") path-separator t) + (list exec-directory)) + shell-file-name (or (getenv "SHELL") shell-file-name)) + env))) (defun doom-initialize (&optional force-p noerror) "Bootstrap Doom, if it hasn't already (or if FORCE-P is non-nil). From 1442e694fbb36173b9c4408a4ad0dd7d59bd5f49 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 29 Apr 2020 20:19:34 -0400 Subject: [PATCH 024/130] Move core helpers to core-lib Since they can be generally useful. --- core/core-lib.el | 52 ++++++++++++++++++++++++++++++++++++++++++++++++ core/core.el | 47 +------------------------------------------ 2 files changed, 53 insertions(+), 46 deletions(-) diff --git a/core/core-lib.el b/core/core-lib.el index 1bf435167..b981da875 100644 --- a/core/core-lib.el +++ b/core/core-lib.el @@ -85,6 +85,58 @@ Accepts the same arguments as `message'." format-string) ,@args)))) +(defun doom-try-run-hook (hook) + "Run HOOK (a hook function) with better error handling. +Meant to be used with `run-hook-wrapped'." + (doom-log "Running doom hook: %s" hook) + (condition-case e + (funcall hook) + ((debug error) + (signal 'doom-hook-error (list hook e)))) + ;; return nil so `run-hook-wrapped' won't short circuit + nil) + +(defun doom-load-autoloads-file (file &optional noerror) + "Tries to load FILE (an autoloads file). +Return t on success, nil otherwise (but logs a warning)." + (condition-case e + ;; Avoid `file-name-sans-extension' for premature optimization reasons. + ;; `string-remove-suffix' is much cheaper (because it does no file sanity + ;; checks during or after; just plain ol' string manipulation). + (load (string-remove-suffix ".el" file) noerror 'nomessage) + ((debug error) + (message "Autoload file error: %s -> %s" (file-name-nondirectory file) e) + nil))) + +(defun doom-load-envvars-file (file &optional noerror) + "Read and set envvars from FILE. +If NOERROR is non-nil, don't throw an error if the file doesn't exist or is +unreadable. Returns the names of envvars that were changed." + (if (null (file-exists-p file)) + (unless noerror + (signal 'file-error (list "No envvar file exists" file))) + (when-let + (env + (with-temp-buffer + (save-excursion + (insert "\0\n") ; to prevent off-by-one + (insert-file-contents file)) + (save-match-data + (when (re-search-forward "\0\n *\\([^#= \n]*\\)=" nil t) + (setq + env (split-string (buffer-substring (match-beginning 1) (point-max)) + "\0\n" + 'omit-nulls)))))) + (setq process-environment (append (nreverse env) process-environment) + exec-path (append (split-string (getenv "PATH") path-separator t) + (list exec-directory)) + shell-file-name (or (getenv "SHELL") shell-file-name)) + env))) + + +;; +;;; Functional library + (defalias 'doom-partial #'apply-partially) (defun doom-rpartial (fn &rest args) diff --git a/core/core.el b/core/core.el index 437779996..814a1682a 100644 --- a/core/core.el +++ b/core/core.el @@ -427,17 +427,6 @@ If this is a daemon session, load them all immediately instead." ;; ;;; Bootstrap helpers -(defun doom-try-run-hook (hook) - "Run HOOK (a hook function) with better error handling. -Meant to be used with `run-hook-wrapped'." - (doom-log "Running doom hook: %s" hook) - (condition-case e - (funcall hook) - ((debug error) - (signal 'doom-hook-error (list hook e)))) - ;; return nil so `run-hook-wrapped' won't short circuit - nil) - (defun doom-display-benchmark-h (&optional return-p) "Display a benchmark including number of packages and modules loaded. @@ -450,40 +439,6 @@ If RETURN-P, return the message as a string instead of displaying it." (setq doom-init-time (float-time (time-subtract (current-time) before-init-time)))))) -(defun doom-load-autoloads-file (file &optional noerror) - "Tries to load FILE (an autoloads file). -Return t on success, nil otherwise (but logs a warning)." - (condition-case e - (load (substring file 0 -3) noerror 'nomessage) - ((debug error) - (message "Autoload file error: %s -> %s" (file-name-nondirectory file) e) - nil))) - -(defun doom-load-envvars-file (file &optional noerror) - "Read and set envvars from FILE. -If NOERROR is non-nil, don't throw an error if the file doesn't exist or is -unreadable. Returns the names of envvars that were changed." - (if (not (file-readable-p file)) - (unless noerror - (signal 'file-error (list "No envvar file exists" file))) - (when-let - (env - (with-temp-buffer - (save-excursion - (insert "\0\n") ; to prevent off-by-one - (insert-file-contents file)) - (save-match-data - (when (re-search-forward "\0\n *\\([^#= \n]*\\)=" nil t) - (setq - env (split-string (buffer-substring (match-beginning 1) (point-max)) - "\0\n" - 'omit-nulls)))))) - (setq process-environment (append (nreverse env) process-environment) - exec-path (append (split-string (getenv "PATH") path-separator t) - (list exec-directory)) - shell-file-name (or (getenv "SHELL") shell-file-name)) - env))) - (defun doom-initialize (&optional force-p noerror) "Bootstrap Doom, if it hasn't already (or if FORCE-P is non-nil). @@ -502,7 +457,7 @@ The overall load order of Doom is as follows: Module config.el files ~/.doom.d/config.el `doom-init-modules-hook' - `doom-after-init-hook' (`after-init-hook') + `doom-after-init-modules-hook' (`after-init-hook') `emacs-startup-hook' `doom-init-ui-hook' `window-setup-hook' From 64b799c68e7838265708e8d6d31011c3c27dd2d4 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 29 Apr 2020 20:20:24 -0400 Subject: [PATCH 025/130] Load subr-x & cl-lib a little earlier --- core/core-lib.el | 3 --- core/core.el | 2 ++ 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/core/core-lib.el b/core/core-lib.el index b981da875..7210ffc93 100644 --- a/core/core-lib.el +++ b/core/core-lib.el @@ -1,8 +1,5 @@ ;;; core-lib.el -*- lexical-binding: t; -*- -(require 'cl-lib) -(require 'subr-x) - ;; ;;; Helpers diff --git a/core/core.el b/core/core.el index 814a1682a..493a71a4b 100644 --- a/core/core.el +++ b/core/core.el @@ -40,6 +40,8 @@ (add-hook 'emacs-startup-hook #'doom-reset-file-handler-alist-h)) ;; Just the bare necessities +(require 'subr-x) +(require 'cl-lib) (require 'core-lib) From c3a84f0fbf899e978b23da2e7a790bfefcb6fd9c Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 29 Apr 2020 20:45:29 -0400 Subject: [PATCH 026/130] Reorganize core-lib Group like macros together. --- core/core-lib.el | 300 ++++++++++++++++++++++++----------------------- 1 file changed, 153 insertions(+), 147 deletions(-) diff --git a/core/core-lib.el b/core/core-lib.el index 7210ffc93..3c6b5cc87 100644 --- a/core/core-lib.el +++ b/core/core-lib.el @@ -168,6 +168,11 @@ aliases." (call-interactively command)))) (defalias 'lambda!! 'λ!!) +(defun dir! () + "Returns the directory of the emacs lisp file this macro is called from." + (when-let (path (file!)) + (directory-file-name (file-name-directory path)))) + (defun file! () "Return the emacs lisp file this macro is called from." (cond ((bound-and-true-p byte-compile-current-file)) @@ -177,10 +182,83 @@ aliases." (buffer-file-name) ((error "Cannot get this file-path")))) -(defun dir! () - "Returns the directory of the emacs lisp file this macro is called from." - (when-let (path (file!)) - (directory-file-name (file-name-directory path)))) +(defmacro letenv! (envvars &rest body) + "Lexically bind ENVVARS in BODY, like `let' but for `process-environment'." + (declare (indent 1)) + `(let ((process-environment (copy-sequence process-environment))) + (dolist (var (list ,@(cl-loop for (var val) in envvars + collect `(cons ,var ,val)))) + (setenv (car var) (cdr var))) + ,@body)) + +(defmacro quiet! (&rest forms) + "Run FORMS without generating any output. + +This silences calls to `message', `load-file', `write-region' and anything that +writes to `standard-output'." + `(cond (doom-debug-mode ,@forms) + ((not doom-interactive-mode) + (let ((old-fn (symbol-function 'write-region))) + (cl-letf ((standard-output (lambda (&rest _))) + ((symbol-function 'load-file) (lambda (file) (load file nil t))) + ((symbol-function 'message) (lambda (&rest _))) + ((symbol-function 'write-region) + (lambda (start end filename &optional append visit lockname mustbenew) + (unless visit (setq visit 'no-message)) + (funcall old-fn start end filename append visit lockname mustbenew)))) + ,@forms))) + ((let ((inhibit-message t) + (save-silently t)) + (prog1 ,@forms (message "")))))) + + +;;; Mutation +(defmacro appendq! (sym &rest lists) + "Append LISTS to SYM in place." + `(setq ,sym (append ,sym ,@lists))) + +(defmacro setq! (&rest settings) + "A stripped-down `customize-set-variable' with the syntax of `setq'. + +Use this instead of `setq' when you know a variable has a custom setter (a :set +property in its `defcustom' declaration). This trigger setters. `setq' does +not." + (macroexp-progn + (cl-loop for (var val) on settings by 'cddr + collect (list (or (get var 'custom-set) #'set) + (list 'quote var) + val)))) + +(defmacro delq! (elt list &optional fetcher) + "`delq' ELT from LIST in-place. + +If FETCHER is a function, ELT is used as the key in LIST (an alist)." + `(setq ,list + (delq ,(if fetcher + `(funcall ,fetcher ,elt ,list) + elt) + ,list))) + +(defmacro pushnew! (place &rest values) + "Push VALUES sequentially into PLACE, if they aren't already present. +This is a variadic `cl-pushnew'." + (let ((var (make-symbol "result"))) + `(dolist (,var (list ,@values) (with-no-warnings ,place)) + (cl-pushnew ,var ,place :test #'equal)))) + +(defmacro prependq! (sym &rest lists) + "Prepend LISTS to SYM in place." + `(setq ,sym (append ,@lists ,sym))) + + +;;; Loading +(defmacro add-load-path! (&rest dirs) + "Add DIRS to `load-path', relative to the current file. +The current file is the file from which `add-to-load-path!' is used." + `(let ((default-directory ,(dir!)) + file-name-handler-alist) + (dolist (dir (list ,@dirs)) + (cl-pushnew (expand-file-name dir) load-path)))) (defmacro after! (package &rest body) "Evaluate BODY after PACKAGE have loaded. @@ -232,58 +310,84 @@ This is a wrapper around `eval-after-load' that: (setq body `((after! ,next ,@body)))) (car body)))))) -(defmacro setq! (&rest settings) - "A stripped-down `customize-set-variable' with the syntax of `setq'. +(defun doom--handle-load-error (e target path) + (let* ((source (file-name-sans-extension target)) + (err (cond ((not (featurep 'core)) + (cons 'error (file-name-directory path))) + ((file-in-directory-p source doom-core-dir) + (cons 'doom-error doom-core-dir)) + ((file-in-directory-p source doom-private-dir) + (cons 'doom-private-error doom-private-dir)) + ((cons 'doom-module-error doom-emacs-dir))))) + (signal (car err) + (list (file-relative-name + (concat source ".el") + (cdr err)) + e)))) -Use this instead of `setq' when you know a variable has a custom setter (a :set -property in its `defcustom' declaration). This trigger setters. `setq' does -not." - (macroexp-progn - (cl-loop for (var val) on settings by 'cddr - collect `(funcall (or (get ',var 'custom-set) #'set) - ',var ,val)))) +(defmacro load! (filename &optional path noerror) + "Load a file relative to the current executing file (`load-file-name'). -(defmacro pushnew! (place &rest values) - "Push VALUES sequentially into PLACE, if they aren't already present. -This is a variadic `cl-pushnew'." - (let ((var (make-symbol "result"))) - `(dolist (,var (list ,@values) (with-no-warnings ,place)) - (cl-pushnew ,var ,place :test #'equal)))) +FILENAME is either a file path string or a form that should evaluate to such a +string at run time. PATH is where to look for the file (a string representing a +directory path). If omitted, the lookup is relative to either `load-file-name', +`byte-compile-current-file' or `buffer-file-name' (checked in that order). -(defmacro prependq! (sym &rest lists) - "Prepend LISTS to SYM in place." - `(setq ,sym (append ,@lists ,sym))) +If NOERROR is non-nil, don't throw an error if the file doesn't exist." + (let* ((path (or path + (dir!) + (error "Could not detect path to look for '%s' in" + filename))) + (file (if path + `(expand-file-name ,filename ,path) + filename))) + `(condition-case-unless-debug e + (let (file-name-handler-alist) + (load ,file ,noerror 'nomessage)) + (doom-error (signal (car e) (cdr e))) + (error (doom--handle-load-error e ,file ,path))))) -(defmacro appendq! (sym &rest lists) - "Append LISTS to SYM in place." - `(setq ,sym (append ,sym ,@lists))) +(defmacro defer-until! (condition &rest body) + "Run BODY when CONDITION is true (checks on `after-load-functions'). Meant to +serve as a predicated alternative to `after!'." + (declare (indent defun) (debug t)) + `(if ,condition + (progn ,@body) + ,(let ((fn (intern (format "doom--delay-form-%s-h" (sxhash (cons condition body)))))) + `(progn + (fset ',fn (lambda (&rest args) + (when ,(or condition t) + (remove-hook 'after-load-functions #',fn) + (unintern ',fn nil) + (ignore args) + ,@body))) + (put ',fn 'permanent-local-hook t) + (add-hook 'after-load-functions #',fn))))) -(defmacro delq! (elt list &optional fetcher) - "`delq' ELT from LIST in-place. +(defmacro defer-feature! (feature &optional fn) + "Pretend FEATURE hasn't been loaded yet, until FEATURE-hook or FN runs. -If FETCHER is a function, ELT is used as the key in LIST (an alist)." - `(setq ,list - (delq ,(if fetcher - `(funcall ,fetcher ,elt ,list) - elt) - ,list))) +Some packages (like `elisp-mode' and `lisp-mode') are loaded immediately at +startup, which will prematurely trigger `after!' (and `with-eval-after-load') +blocks. To get around this we make Emacs believe FEATURE hasn't been loaded yet, +then wait until FEATURE-hook (or MODE-hook, if FN is provided) is triggered to +reverse this and trigger `after!' blocks at a more reasonable time." + (let ((advice-fn (intern (format "doom--defer-feature-%s-a" feature))) + (fn (or fn feature))) + `(progn + (setq features (delq ',feature features)) + (advice-add #',fn :before #',advice-fn) + (defun ,advice-fn (&rest _) + ;; Some plugins (like yasnippet) will invoke a fn early to parse + ;; code, which would prematurely trigger this. In those cases, well + ;; behaved plugins will use `delay-mode-hooks', which we can check for: + (when (and ,(intern (format "%s-hook" fn)) + (not delay-mode-hooks)) + ;; ...Otherwise, announce to the world this package has been loaded, + ;; so `after!' handlers can react. + (provide ',feature) + (advice-remove #',fn #',advice-fn)))))) -(defmacro letenv! (envvars &rest body) - "Lexically bind ENVVARS in BODY, like `let' but for `process-environment'." - (declare (indent 1)) - `(let ((process-environment (copy-sequence process-environment))) - (dolist (var (list ,@(cl-loop for (var val) in envvars - collect `(cons ,var ,val)))) - (setenv (car var) (cdr var))) - ,@body)) - -(defmacro add-load-path! (&rest dirs) - "Add DIRS to `load-path', relative to the current file. -The current file is the file from which `add-to-load-path!' is used." - `(let ((default-directory ,(dir!)) - file-name-handler-alist) - (dolist (dir (list ,@dirs)) - (cl-pushnew (expand-file-name dir) load-path)))) ;;; Hooks (defvar doom--transient-counter 0) @@ -409,106 +513,8 @@ If N and M = 1, there's no benefit to using this macro over `remove-hook'. in (doom--setq-hook-fns hooks vars 'singles) collect `(remove-hook ',hook #',fn)))) -(defmacro load! (filename &optional path noerror) - "Load a file relative to the current executing file (`load-file-name'). -FILENAME is either a file path string or a form that should evaluate to such a -string at run time. PATH is where to look for the file (a string representing a -directory path). If omitted, the lookup is relative to either `load-file-name', -`byte-compile-current-file' or `buffer-file-name' (checked in that order). - -If NOERROR is non-nil, don't throw an error if the file doesn't exist." - (let* ((path (or path - (dir!) - (error "Could not detect path to look for '%s' in" - filename))) - (file (if path - `(expand-file-name ,filename ,path) - filename))) - `(condition-case-unless-debug e - (let (file-name-handler-alist) - (load ,file ,noerror 'nomessage)) - (doom-error (signal (car e) (cdr e))) - (error - (let* ((source (file-name-sans-extension ,file)) - (err (cond ((not (featurep 'core)) - (cons 'error (file-name-directory path))) - ((file-in-directory-p source doom-core-dir) - (cons 'doom-error doom-core-dir)) - ((file-in-directory-p source doom-private-dir) - (cons 'doom-private-error doom-private-dir)) - ((cons 'doom-module-error doom-emacs-dir))))) - (signal (car err) - (list (file-relative-name - (concat source ".el") - (cdr err)) - e))))))) - -(defmacro defer-until! (condition &rest body) - "Run BODY when CONDITION is true (checks on `after-load-functions'). Meant to -serve as a predicated alternative to `after!'." - (declare (indent defun) (debug t)) - `(if ,condition - (progn ,@body) - ,(let ((fn (intern (format "doom--delay-form-%s-h" (sxhash (cons condition body)))))) - `(progn - (fset ',fn (lambda (&rest args) - (when ,(or condition t) - (remove-hook 'after-load-functions #',fn) - (unintern ',fn nil) - (ignore args) - ,@body))) - (put ',fn 'permanent-local-hook t) - (add-hook 'after-load-functions #',fn))))) - -(defmacro defer-feature! (feature &optional fn) - "Pretend FEATURE hasn't been loaded yet, until FEATURE-hook or FN runs. - -Some packages (like `elisp-mode' and `lisp-mode') are loaded immediately at -startup, which will prematurely trigger `after!' (and `with-eval-after-load') -blocks. To get around this we make Emacs believe FEATURE hasn't been loaded yet, -then wait until FEATURE-hook (or MODE-hook, if FN is provided) is triggered to -reverse this and trigger `after!' blocks at a more reasonable time." - (let ((advice-fn (intern (format "doom--defer-feature-%s-a" feature))) - (fn (or fn feature))) - `(progn - (setq features (delq ',feature features)) - (advice-add #',fn :before #',advice-fn) - (defun ,advice-fn (&rest _) - ;; Some plugins (like yasnippet) will invoke a fn early to parse - ;; code, which would prematurely trigger this. In those cases, well - ;; behaved plugins will use `delay-mode-hooks', which we can check for: - (when (and ,(intern (format "%s-hook" fn)) - (not delay-mode-hooks)) - ;; ...Otherwise, announce to the world this package has been loaded, - ;; so `after!' handlers can react. - (provide ',feature) - (advice-remove #',fn #',advice-fn)))))) - -(defmacro quiet! (&rest forms) - "Run FORMS without generating any output. - -This silences calls to `message', `load-file', `write-region' and anything that -writes to `standard-output'." - `(cond (doom-debug-mode ,@forms) - ((not doom-interactive-mode) - (let ((old-fn (symbol-function 'write-region))) - (cl-letf ((standard-output (lambda (&rest _))) - ((symbol-function 'load-file) (lambda (file) (load file nil t))) - ((symbol-function 'message) (lambda (&rest _))) - ((symbol-function 'write-region) - (lambda (start end filename &optional append visit lockname mustbenew) - (unless visit (setq visit 'no-message)) - (funcall old-fn start end filename append visit lockname mustbenew)))) - ,@forms))) - ((let ((inhibit-message t) - (save-silently t)) - (prog1 ,@forms (message "")))))) - - -;; ;;; Definers - (defmacro defadvice! (symbol arglist &optional docstring &rest body) "Define an advice called SYMBOL and add it to PLACES. From d12752324ad7cadebd9d8e4c211282225ff681a4 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 29 Apr 2020 21:08:17 -0400 Subject: [PATCH 027/130] Introduce letf! convenience macro A more succinct cl-letf, which allows for local functions and macros. --- core/autoload/debug.el | 5 +- core/core-editor.el | 29 ++++------ core/core-lib.el | 47 ++++++++++++--- core/core-ui.el | 6 +- modules/app/rss/autoload.el | 7 +-- modules/editor/evil/autoload/advice.el | 6 +- modules/editor/snippets/config.el | 4 +- modules/lang/org/autoload/org-capture.el | 2 +- modules/lang/org/config.el | 8 +-- modules/lang/org/contrib/present.el | 31 +++++----- modules/tools/pdf/config.el | 10 ++-- modules/ui/popup/+hacks.el | 73 ++++++++++-------------- 12 files changed, 113 insertions(+), 115 deletions(-) diff --git a/core/autoload/debug.el b/core/autoload/debug.el index 7b3f5ddcd..c6d58e8f9 100644 --- a/core/autoload/debug.el +++ b/core/autoload/debug.el @@ -46,10 +46,7 @@ ready to be pasted in a bug report on github." (require 'core-packages) (let ((default-directory doom-emacs-dir) (doom-modules (doom-modules))) - (cl-letf - (((symbol-function 'sh) - (lambda (&rest args) - (cdr (apply #'doom-call-process args))))) + (letf! (defun sh (&rest args) (cdr (apply #'doom-call-process args))) `((emacs (version . ,emacs-version) (features ,@system-configuration-features) diff --git a/core/core-editor.el b/core/core-editor.el index 1702c4d8e..750133700 100644 --- a/core/core-editor.el +++ b/core/core-editor.el @@ -293,10 +293,7 @@ possible." `pp' can be expensive for longer lists, and there's no reason to prettify cache files, so we replace calls to `pp' with the much faster `prin1'." :around #'save-place-alist-to-file - (cl-letf (((symbol-function #'pp) #'prin1)) - (funcall orig-fn))) - - (save-place-mode +1)) + (letf! ((#'pp #'prin1)) (funcall orig-fn)))) (use-package! server @@ -394,18 +391,14 @@ files, so we replace calls to `pp' with the much faster `prin1'." `nim-mode'. This prevents them from leaving Emacs in a broken state." :around #'dtrt-indent-mode (let ((dtrt-indent-run-after-smie dtrt-indent-run-after-smie)) - (cl-letf* ((old-smie-config-guess (symbol-function 'smie-config-guess)) - (old-smie-config--guess (symbol-function 'symbol-config--guess)) - ((symbol-function 'symbol-config--guess) - (lambda (beg end) - (funcall old-smie-config--guess beg (min end 10000)))) - ((symbol-function 'smie-config-guess) - (lambda () - (condition-case e (funcall old-smie-config-guess) - (error (setq dtrt-indent-run-after-smie t) - (message "[WARNING] Indent detection: %s" - (error-message-string e)) - (message "")))))) ; warn silently + (letf! ((defun symbol-config--guess (beg end) + (funcall symbol-config--guess beg (min end 10000))) + (defun smie-config-guess () + (condition-case e (funcall smie-config-guess) + (error (setq dtrt-indent-run-after-smie t) + (message "[WARNING] Indent detection: %s" + (error-message-string e)) + (message ""))))) ; warn silently (funcall orig-fn arg))))) @@ -421,8 +414,8 @@ files, so we replace calls to `pp' with the much faster `prin1'." (defun doom-use-helpful-a (orig-fn &rest args) "Force ORIG-FN to use helpful instead of the old describe-* commands." - (cl-letf (((symbol-function #'describe-function) #'helpful-function) - ((symbol-function #'describe-variable) #'helpful-variable)) + (letf! ((#'describe-function #'helpful-function) + (#'describe-variable #'helpful-variable)) (apply orig-fn args))) (after! apropos diff --git a/core/core-lib.el b/core/core-lib.el index 3c6b5cc87..3411ca60b 100644 --- a/core/core-lib.el +++ b/core/core-lib.el @@ -191,6 +191,37 @@ aliases." (setenv (car var) (cdr var))) ,@body)) +(defmacro letf! (bindings &rest body) + "Temporarily rebind function and macros in BODY. + +BINDINGS is either a) a list of, or a single, `defun' or `defmacro'-ish form, or +b) a list of (PLACE VALUE) bindings as `cl-letf*' would accept. + +TYPE is either `defun' or `defmacro'. NAME is the name of the function. If an +original definition for NAME exists, it can be accessed as a lexical variable by +the same name, for use with `funcall' or `apply'. ARGLIST and BODY are as in +`defun'. + +\(fn ((TYPE NAME ARGLIST &rest BODY) ...) BODY...)" + (declare (indent defun)) + (setq body (macroexp-progn body)) + (when (memq (car bindings) '(defun defmacro)) + (setq bindings (list bindings))) + (dolist (binding (nreverse bindings) body) + (let ((type (car binding)) + (rest (cdr binding))) + (setq + body (pcase type + (`defmacro `(cl-macrolet ((,(car rest) ,(cadr rest) ,@(cddr rest))) ,body)) + (`defun `(cl-letf* ((,(car rest) (symbol-function #',(car rest))) + ((symbol-function #',(car rest)) + (lambda ,(cadr rest) ,@(cddr rest)))) + ,body)) + (_ + (when (eq (car-safe type) 'function) + (setq type `(symbol-function ,type))) + `(cl-letf ((,type ,@rest)) ,body))))))) + (defmacro quiet! (&rest forms) "Run FORMS without generating any output. @@ -198,15 +229,13 @@ This silences calls to `message', `load-file', `write-region' and anything that writes to `standard-output'." `(cond (doom-debug-mode ,@forms) ((not doom-interactive-mode) - (let ((old-fn (symbol-function 'write-region))) - (cl-letf ((standard-output (lambda (&rest _))) - ((symbol-function 'load-file) (lambda (file) (load file nil t))) - ((symbol-function 'message) (lambda (&rest _))) - ((symbol-function 'write-region) - (lambda (start end filename &optional append visit lockname mustbenew) - (unless visit (setq visit 'no-message)) - (funcall old-fn start end filename append visit lockname mustbenew)))) - ,@forms))) + (letf! ((standard-output (lambda (&rest _))) + (defun load-file (file) (load-file nil t)) + (defun message (&rest _)) + (defun write-region (start end filename &optional append visit lockname mustbenew) + (unless visit (setq visit 'no-message)) + (funcall write-region start end filename append visit lockname mustbenew))) + ,@forms)) ((let ((inhibit-message t) (save-silently t)) (prog1 ,@forms (message "")))))) diff --git a/core/core-ui.el b/core/core-ui.el index 4ca55d8ec..45c58c826 100644 --- a/core/core-ui.el +++ b/core/core-ui.el @@ -619,10 +619,8 @@ This offers a moderate boost in startup (or theme switch) time, so long as :around #'load-theme (if (or (null after-init-time) doom--prefer-theme-elc) - (cl-letf* ((old-locate-file (symbol-function 'locate-file)) - ((symbol-function 'locate-file) - (lambda (filename path &optional _suffixes predicate) - (funcall old-locate-file filename path '("c" "") predicate)))) + (letf! (defun locate-file (filename path &optional _suffixes predicate) + (funcall locate-file filename path '("c" "") predicate)) (apply orig-fn args)) (apply orig-fn args)))) diff --git a/modules/app/rss/autoload.el b/modules/app/rss/autoload.el index 1cf548212..98f121c83 100644 --- a/modules/app/rss/autoload.el +++ b/modules/app/rss/autoload.el @@ -101,10 +101,9 @@ ;;;###autoload (defun +rss-put-sliced-image-fn (spec alt &optional flags) "TODO" - (cl-letf (((symbol-function #'insert-image) - (lambda (image &optional alt _area _slice) - (let ((height (cdr (image-size image t)))) - (insert-sliced-image image alt nil (max 1 (/ height 20.0)) 1))))) + (letf! (defun insert-image (image &optional alt _area _slice) + (let ((height (cdr (image-size image t)))) + (insert-sliced-image image alt nil (max 1 (/ height 20.0)) 1))) (shr-put-image spec alt flags))) ;;;###autoload diff --git a/modules/editor/evil/autoload/advice.el b/modules/editor/evil/autoload/advice.el index e54a1ab90..bdf2ce8f9 100644 --- a/modules/editor/evil/autoload/advice.el +++ b/modules/editor/evil/autoload/advice.el @@ -123,8 +123,7 @@ more information on modifiers." (not (eq this-command 'evil-open-below)) (evil-insert-state-p)) (funcall orig-fn count) - (cl-letf (((symbol-function 'evil-insert-newline-below) - (lambda () (+evil--insert-newline)))) + (letf! (defun evil-insert-newline-below () (+evil--insert-newline)) (let ((evil-auto-indent evil-auto-indent)) (funcall orig-fn count))))) @@ -134,8 +133,7 @@ more information on modifiers." (not (eq this-command 'evil-open-above)) (evil-insert-state-p)) (funcall orig-fn count) - (cl-letf (((symbol-function 'evil-insert-newline-above) - (lambda () (+evil--insert-newline 'above)))) + (letf! (defun evil-insert-newline-above () (+evil--insert-newline 'above)) (let ((evil-auto-indent evil-auto-indent)) (funcall orig-fn count))))) diff --git a/modules/editor/snippets/config.el b/modules/editor/snippets/config.el index 71218a728..6a9e6cc94 100644 --- a/modules/editor/snippets/config.el +++ b/modules/editor/snippets/config.el @@ -102,6 +102,6 @@ us who use yas-minor-mode and enable yasnippet more selectively. This advice swaps `yas-global-mode' with `yas-minor-mode'." :around '(aya-expand aya-open-line) - (cl-letf (((symbol-function #'yas-global-mode) #'yas-minor-mode) - (yas-global-mode yas-minor-mode)) + (letf! ((#'yas-global-mode #'yas-minor-mode) + (yas-global-mode yas-minor-mode)) (apply orig-fn args)))) diff --git a/modules/lang/org/autoload/org-capture.el b/modules/lang/org/autoload/org-capture.el index d64372139..d4be3f097 100644 --- a/modules/lang/org/autoload/org-capture.el +++ b/modules/lang/org/autoload/org-capture.el @@ -50,7 +50,7 @@ you're done. This can be called from an external shell script." (with-selected-frame frame (require 'org-capture) (condition-case ex - (cl-letf (((symbol-function #'pop-to-buffer) #'switch-to-buffer)) + (letf! ((#'pop-to-buffer #'switch-to-buffer)) (switch-to-buffer (doom-fallback-buffer)) (let ((org-capture-initial initial-input) org-capture-entry) diff --git a/modules/lang/org/config.el b/modules/lang/org/config.el index ee71fb57d..d620e939f 100644 --- a/modules/lang/org/config.el +++ b/modules/lang/org/config.el @@ -539,11 +539,9 @@ current workspace (and clean them up)." ;; upstream (if ever). (defadvice! +org--fix-inline-images-for-imagemagick-users-a (orig-fn &rest args) :around #'org-display-inline-images - (cl-letf* ((old-create-image (symbol-function #'create-image)) - ((symbol-function #'create-image) - (lambda (file-or-data &optional type data-p &rest props) - (let ((type (if (plist-get props :width) type))) - (apply old-create-image file-or-data type data-p props))))) + (letf! (defun create-image (file-or-data &optional type data-p &rest props) + (let ((type (if (plist-get props :width) type))) + (apply create-image file-or-data type data-p props))) (apply orig-fn args))) (defadvice! +org--fix-inconsistent-uuidgen-case-a (uuid) diff --git a/modules/lang/org/contrib/present.el b/modules/lang/org/contrib/present.el index a92ff6572..d05cf8985 100644 --- a/modules/lang/org/contrib/present.el +++ b/modules/lang/org/contrib/present.el @@ -41,20 +41,19 @@ (defadvice! +org-present--narrow-to-subtree-a (orig-fn &rest args) "Narrow to the target subtree when you start the presentation." :around #'org-tree-slide--display-tree-with-narrow - (cl-letf (((symbol-function #'org-narrow-to-subtree) - (lambda () - (save-excursion - (save-match-data - (org-with-limited-levels - (narrow-to-region - (progn - (when (org-before-first-heading-p) - (org-next-visible-heading 1)) - (ignore-errors (org-up-heading-all 99)) - (forward-line 1) - (point)) - (progn (org-end-of-subtree t t) - (when (and (org-at-heading-p) (not (eobp))) - (backward-char 1)) - (point))))))))) + (letf! ((defun org-narrow-to-subtree () + (save-excursion + (save-match-data + (org-with-limited-levels + (narrow-to-region + (progn + (when (org-before-first-heading-p) + (org-next-visible-heading 1)) + (ignore-errors (org-up-heading-all 99)) + (forward-line 1) + (point)) + (progn (org-end-of-subtree t t) + (when (and (org-at-heading-p) (not (eobp))) + (backward-char 1)) + (point)))))))) (apply orig-fn args)))) diff --git a/modules/tools/pdf/config.el b/modules/tools/pdf/config.el index 99956fdea..b1c74e782 100644 --- a/modules/tools/pdf/config.el +++ b/modules/tools/pdf/config.el @@ -33,12 +33,10 @@ :around '(pdf-annot-show-annotation pdf-isearch-hl-matches pdf-view-display-region) - (cl-letf* ((old-create-image (symbol-function #'create-image)) - ((symbol-function #'create-image) - (lambda (file-or-data &optional type data-p &rest props) - (apply old-create-image file-or-data type data-p - :width (car (pdf-view-image-size)) - props)))) + (letf! (defun create-image (file-or-data &optional type data-p &rest props) + (apply create-image file-or-data type data-p + :width (car (pdf-view-image-size)) + props)) (apply orig-fn args)))) ;; Handle PDF-tools related popups better diff --git a/modules/ui/popup/+hacks.el b/modules/ui/popup/+hacks.el index d6cd059c3..7cc0573c7 100644 --- a/modules/ui/popup/+hacks.el +++ b/modules/ui/popup/+hacks.el @@ -195,20 +195,18 @@ the command buffer." ;; Fix #897: "cannot open side window" error when TAB-completing file links (defadvice! +popup--helm-hide-org-links-popup-a (orig-fn &rest args) :around #'org-insert-link - (cl-letf* ((old-org-completing-read (symbol-function 'org-completing-read)) - ((symbol-function 'org-completing-read) - (lambda (&rest args) - (when-let (win (get-buffer-window "*Org Links*")) - ;; While helm is opened as a popup, it will mistaken the - ;; *Org Links* popup for the "originated window", and will - ;; target it for actions invoked by the user. However, since - ;; *Org Links* is a popup too (they're dedicated side - ;; windows), Emacs complains about being unable to split a - ;; side window. The simple fix: get rid of *Org Links*! - (delete-window win) - ;; But it must exist for org to clean up later. - (get-buffer-create "*Org Links*")) - (apply old-org-completing-read args)))) + (letf! ((defun org-completing-read (&rest args) + (when-let (win (get-buffer-window "*Org Links*")) + ;; While helm is opened as a popup, it will mistaken the *Org + ;; Links* popup for the "originated window", and will target it + ;; for actions invoked by the user. However, since *Org Links* + ;; is a popup too (they're dedicated side windows), Emacs + ;; complains about being unable to split a side window. The + ;; simple fix: get rid of *Org Links*! + (delete-window win) + ;; ...but it must exist for org to clean up later. + (get-buffer-create "*Org Links*")) + (apply org-completing-read args))) (apply #'funcall-interactively orig-fn args))) ;; Fix left-over popup window when closing persistent help for `helm-M-x' @@ -228,7 +226,6 @@ the command buffer." (when (+popup-window-p win) (select-window win)))) - ;;;###package org (after! org ;; Org has a scorched-earth window management policy I'm not fond of. i.e. it @@ -242,10 +239,8 @@ the command buffer." org-fast-tag-selection org-fast-todo-selection) (if +popup-mode - (cl-letf (((symbol-function #'delete-other-windows) - (symbol-function #'ignore)) - ((symbol-function #'delete-window) - (symbol-function #'ignore))) + (letf! ((#'delete-other-windows #'ignore) + (#'delete-window #'ignore)) (apply orig-fn args)) (apply orig-fn args))) @@ -256,16 +251,14 @@ Ugh, such an ugly hack." :around '(org-fast-tag-selection org-fast-todo-selection) (if +popup-mode - (cl-letf* ((old-fit-buffer-fn (symbol-function #'org-fit-window-to-buffer)) - ((symbol-function #'org-fit-window-to-buffer) - (lambda (&optional window max-height min-height shrink-only) - (when-let (buf (window-buffer window)) - (delete-window window) - (select-window - (setq window (display-buffer-at-bottom buf nil))) - (with-current-buffer buf - (setq mode-line-format nil))) - (funcall old-fit-buffer-fn window max-height min-height shrink-only)))) + (letf! ((defun org-fit-window-to-buffer (&optional window max-height min-height shrink-only) + (when-let (buf (window-buffer window)) + (delete-window window) + (select-window + (setq window (display-buffer-at-bottom buf nil))) + (with-current-buffer buf + (setq mode-line-format nil))) + (funcall org-fit-window-to-buffer window max-height min-height shrink-only))) (apply orig-fn args)) (apply orig-fn args))) @@ -284,8 +277,7 @@ Ugh, such an ugly hack." ;; _then_ hand off the buffer to the pop up manager. (defadvice! +popup--org-src-switch-to-buffer-a (orig-fn &rest args) :around #'org-src-switch-to-buffer - (cl-letf (((symbol-function #'pop-to-buffer-same-window) - (symbol-function #'switch-to-buffer))) + (letf! ((#'pop-to-buffer-same-window #'switch-to-buffer)) (apply orig-fn args)))) @@ -316,8 +308,7 @@ Ugh, such an ugly hack." ;;;###package profiler (defadvice! +popup--profiler-report-find-entry-in-other-window-a (orig-fn function) :around #'profiler-report-find-entry - (cl-letf (((symbol-function 'find-function) - (symbol-function 'find-function-other-window))) + (letf! ((#'find-function #'find-function-other-window)) (funcall orig-fn function))) @@ -337,10 +328,9 @@ Ugh, such an ugly hack." which-key-custom-hide-popup-function #'which-key--hide-buffer-side-window which-key-custom-show-popup-function (lambda (act-popup-dim) - (cl-letf (((symbol-function 'display-buffer-in-side-window) - (lambda (buffer alist) - (+popup-display-buffer-stacked-side-window-fn - buffer (append '((vslot . -9999)) alist))))) + (letf! ((defun display-buffer-in-side-window (buffer alist) + (+popup-display-buffer-stacked-side-window-fn + buffer (append '((vslot . -9999)) alist)))) ;; HACK Fix #2219 where the which-key popup would get cut off. (setcar act-popup-dim (1+ (car act-popup-dim))) (which-key--show-buffer-side-window act-popup-dim)))))) @@ -351,9 +341,8 @@ Ugh, such an ugly hack." (defadvice! +popup--ignore-window-parameters-a (orig-fn &rest args) "Allow *interactive* window moving commands to traverse popups." :around '(windmove-up windmove-down windmove-left windmove-right) - (cl-letf (((symbol-function #'windmove-find-other-window) - (lambda (dir &optional arg window) - (window-in-direction - (pcase dir (`up 'above) (`down 'below) (_ dir)) - window (bound-and-true-p +popup-mode) arg windmove-wrap-around t)))) + (letf! ((defun windmove-find-other-window (dir &optional arg window) + (window-in-direction + (pcase dir (`up 'above) (`down 'below) (_ dir)) + window (bound-and-true-p +popup-mode) arg windmove-wrap-around t))) (apply orig-fn args))) From 936124e5460159c0886def6a4cb7dc66a69c7e47 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 29 Apr 2020 21:09:10 -0400 Subject: [PATCH 028/130] Introduce if! & when! macros The condition argument is evaluated at compile/expansion time, and its body expanded directly. --- core/core-lib.el | 17 +++++++++++++++++ core/core-ui.el | 4 ++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/core/core-lib.el b/core/core-lib.el index 3411ca60b..8abf49780 100644 --- a/core/core-lib.el +++ b/core/core-lib.el @@ -240,6 +240,23 @@ writes to `standard-output'." (save-silently t)) (prog1 ,@forms (message "")))))) +(defmacro if! (cond then &rest body) + "Expands to THEN if COND is non-nil, to BODY otherwise. +COND is checked at compile/expansion time, allowing BODY to be omitted +entirely when the elisp is byte-compiled. Use this for forms that contain +expensive macros that could safely be removed at compile time." + (declare (indent 2)) + (if (eval cond) + then + (macroexp-progn body))) + +(defmacro when! (cond &rest body) + "Expands to BODY if CONDITION is non-nil at compile/expansion time. +See `if!' for details on this macro's purpose." + (declare (indent 1)) + (when (eval cond) + (macroexp-progn body))) + ;;; Mutation (defmacro appendq! (sym &rest lists) diff --git a/core/core-ui.el b/core/core-ui.el index 45c58c826..ff4d6ad8b 100644 --- a/core/core-ui.el +++ b/core/core-ui.el @@ -302,7 +302,7 @@ windows, switch to `doom-fallback-buffer'. Otherwise, delegate to original (add-to-list 'default-frame-alist '(tool-bar-lines . 0)) (add-to-list 'default-frame-alist '(vertical-scroll-bars))) -(when IS-MAC +(when! IS-MAC ;; Curse Lion and its sudden but inevitable fullscreen mode! ;; NOTE Meaningless to railwaycat's emacs-mac build (setq ns-use-native-fullscreen nil) @@ -610,7 +610,7 @@ behavior). Do not set this directly, this is let-bound in `doom-init-theme-h'.") (run-hooks 'doom-load-theme-hook)) result))) -(unless EMACS27+ +(when! (not EMACS27+) ;; DEPRECATED Not needed in Emacs 27 (defadvice! doom--prefer-compiled-theme-a (orig-fn &rest args) "Have `load-theme' prioritize the byte-compiled theme. From cb6dd300b4914944f2a6919901c886cd5f8a9678 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 29 Apr 2020 21:22:58 -0400 Subject: [PATCH 029/130] Add comment wrt load-theme not disabling previous themes --- core/core-ui.el | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/core-ui.el b/core/core-ui.el index ff4d6ad8b..80c172265 100644 --- a/core/core-ui.el +++ b/core/core-ui.el @@ -606,6 +606,9 @@ behavior). Do not set this directly, this is let-bound in `doom-init-theme-h'.") (unless no-enable (setq doom-theme theme doom-init-theme-p t) + ;; `load-theme' doesn't disable previously enabled themes, which seems + ;; like what you'd want. You could always use `enable-theme' to activate + ;; multiple themes instead. (mapc #'disable-theme (remq theme custom-enabled-themes)) (run-hooks 'doom-load-theme-hook)) result))) From eb995adada353cb09910b5ae943d52afa4e127ff Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 29 Apr 2020 21:54:02 -0400 Subject: [PATCH 030/130] Minor refactors & comment revision --- core/core-ui.el | 67 +++++++++++++++++++++++++------------------------ core/core.el | 14 +++++------ 2 files changed, 41 insertions(+), 40 deletions(-) diff --git a/core/core-ui.el b/core/core-ui.el index 80c172265..fe9adad88 100644 --- a/core/core-ui.el +++ b/core/core-ui.el @@ -85,50 +85,51 @@ size.") (defvar doom--last-frame nil) (defun doom-run-switch-window-hooks-h () - (let ((gc-cons-threshold most-positive-fixnum)) - (unless (or doom-inhibit-switch-window-hooks - (eq doom--last-window (selected-window)) - (minibufferp)) - (let ((doom-inhibit-switch-window-hooks t) - (inhibit-redisplay t)) - (run-hooks 'doom-switch-window-hook) - (setq doom--last-window (selected-window)))))) + (unless (or doom-inhibit-switch-window-hooks + (eq doom--last-window (selected-window)) + (minibufferp)) + (let ((gc-cons-threshold most-positive-fixnum) + (doom-inhibit-switch-window-hooks t) + (inhibit-redisplay t)) + (run-hooks 'doom-switch-window-hook) + (setq doom--last-window (selected-window))))) (defun doom-run-switch-frame-hooks-h (&rest _) (unless (or doom-inhibit-switch-frame-hooks (eq doom--last-frame (selected-frame)) (frame-parameter nil 'parent-frame)) - (let ((doom-inhibit-switch-frame-hooks t)) + (let ((gc-cons-threshold most-positive-fixnum) + (doom-inhibit-switch-frame-hooks t)) (run-hooks 'doom-switch-frame-hook) (setq doom--last-frame (selected-frame))))) (defun doom-run-switch-buffer-hooks-a (orig-fn buffer-or-name &rest args) - (let ((gc-cons-threshold most-positive-fixnum)) - (if (or doom-inhibit-switch-buffer-hooks - (and buffer-or-name - (eq (current-buffer) - (get-buffer buffer-or-name))) - (and (eq orig-fn #'switch-to-buffer) (car args))) - (apply orig-fn buffer-or-name args) - (let ((doom-inhibit-switch-buffer-hooks t) - (inhibit-redisplay t)) - (when-let (buffer (apply orig-fn buffer-or-name args)) - (with-current-buffer (if (windowp buffer) - (window-buffer buffer) - buffer) - (run-hooks 'doom-switch-buffer-hook)) - buffer))))) + (if (or doom-inhibit-switch-buffer-hooks + (and buffer-or-name + (eq (current-buffer) + (get-buffer buffer-or-name))) + (and (eq orig-fn #'switch-to-buffer) (car args))) + (apply orig-fn buffer-or-name args) + (let ((gc-cons-threshold most-positive-fixnum) + (doom-inhibit-switch-buffer-hooks t) + (inhibit-redisplay t)) + (when-let (buffer (apply orig-fn buffer-or-name args)) + (with-current-buffer (if (windowp buffer) + (window-buffer buffer) + buffer) + (run-hooks 'doom-switch-buffer-hook)) + buffer)))) (defun doom-run-switch-to-next-prev-buffer-hooks-a (orig-fn &rest args) - (let ((gc-cons-threshold most-positive-fixnum)) - (if doom-inhibit-switch-buffer-hooks - (apply orig-fn args) - (let ((doom-inhibit-switch-buffer-hooks t) - (inhibit-redisplay t)) - (when-let (buffer (apply orig-fn args)) - (with-current-buffer buffer - (run-hooks 'doom-switch-buffer-hook)) - buffer))))) + (if doom-inhibit-switch-buffer-hooks + (apply orig-fn args) + (let ((gc-cons-threshold most-positive-fixnum) + (doom-inhibit-switch-buffer-hooks t) + (inhibit-redisplay t)) + (when-let (buffer (apply orig-fn args)) + (with-current-buffer buffer + (run-hooks 'doom-switch-buffer-hook)) + buffer)))) (defun doom-protect-fallback-buffer-h () "Don't kill the scratch buffer. Meant for `kill-buffer-query-functions'." diff --git a/core/core.el b/core/core.el index 493a71a4b..7d36dcbf7 100644 --- a/core/core.el +++ b/core/core.el @@ -209,20 +209,20 @@ users).") ;; https://www.keylength.com/en/4/ gnutls-min-prime-bits 3072 tls-checktrust gnutls-verify-error - ;; Emacs is built with `gnutls' by default, so `tls-program' would not - ;; be used in that case. Otherwiese, people have reasons to not go with - ;; `gnutls', we use `openssl' instead. - ;; For more details, see https://redd.it/8sykl1 + ;; Emacs is built with `gnutls' by default, so `tls-program' would not be + ;; used in that case. Otherwise, people have reasons to not go with + ;; `gnutls', we use `openssl' instead. For more details, see + ;; https://redd.it/8sykl1 tls-program '("openssl s_client -connect %h:%p -CAfile %t -nbio -no_ssl3 -no_tls1 -no_tls1_1 -ign_eof" "gnutls-cli -p %p --dh-bits=3072 --ocsp --x509cafile=%t \ --strict-tofu --priority='SECURE192:+SECURE128:-VERS-ALL:+VERS-TLS1.2:+VERS-TLS1.3' %h" ;; compatibility fallbacks "gnutls-cli -p %p %h")) -;; Emacs stores authinfo in $HOME and in plaintext. Let's not do that, mkay? +;; Emacs stores `authinfo' in $HOME and in plain-text. Let's not do that, mkay? ;; This file stores usernames, passwords, and other such treasures for the ;; aspiring malicious third party. -(setq auth-sources (list (expand-file-name "authinfo.gpg" doom-etc-dir) +(setq auth-sources (list (concat doom-etc-dir "authinfo.gpg") "~/.authinfo.gpg")) ;; Emacs on Windows frequently confuses HOME (C:\Users\) and %APPDATA%, @@ -285,7 +285,7 @@ users).") (setq ffap-machine-p-known 'reject) ;; Font compacting can be terribly expensive, especially for rendering icon -;; fonts on Windows. Whether it has a noteable affect on Linux and Mac hasn't +;; fonts on Windows. Whether it has a notable affect on Linux and Mac hasn't ;; been determined, but we inhibit it there anyway. (setq inhibit-compacting-font-caches t) From 45cdfb1258422d80c3cb6918bd95d9d9f9a0d4a1 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 29 Apr 2020 23:09:46 -0400 Subject: [PATCH 031/130] Bump :core spudlyo/clipetty@7ee3f9c -> spudlyo/clipetty@01b3904 bbatsov/projectile@eec569d -> bbatsov/projectile@5cd261d noctuid/general.el@14ad4c8 -> noctuid/general.el@42e3803 We're also transitioning from abbreviated SHA1 hashes to full ones, because underlying git machinery in future updates of straight will require it (e.g. to obtain shallow clones of pinned packages). --- core/packages.el | 38 ++++++++++++++--------------- modules/lang/emacs-lisp/autoload.el | 13 ++++++++++ modules/lang/emacs-lisp/config.el | 4 ++- modules/lang/rust/packages.el | 2 +- 4 files changed, 36 insertions(+), 21 deletions(-) diff --git a/core/packages.el b/core/packages.el index 6e22d9c1e..f74bc0f1b 100644 --- a/core/packages.el +++ b/core/packages.el @@ -2,47 +2,47 @@ ;;; core/packages.el ;; core.el -(package! auto-minor-mode :pin "17cfa1b548") -(package! gcmh :pin "b1bde50891") +(package! auto-minor-mode :pin "17cfa1b54800fdef2975c0c0531dad34846a5065") +(package! gcmh :pin "b1bde5089169a74f62033d027e06e98cbeedd43f") ;; core-ui.el -(package! all-the-icons :pin "0b74fc3618") -(package! hide-mode-line :pin "88888825b5") -(package! highlight-numbers :pin "8b4744c7f4") +(package! all-the-icons :pin "0b74fc361817e885580c3f3408079f949f5830e1") +(package! hide-mode-line :pin "88888825b5b27b300683e662fa3be88d954b1cea") +(package! highlight-numbers :pin "8b4744c7f46c72b1d3d599d4fb75ef8183dee307") (package! rainbow-delimiters :pin "5125f4e476") -(package! restart-emacs :pin "9aa90d3df9") +(package! restart-emacs :pin "9aa90d3df9e08bc420e1c9845ee3ff568e911bd9") ;; core-editor.el -(package! better-jumper :pin "6d240032ca") -(package! dtrt-indent :pin "9163cd990f") -(package! helpful :pin "c54e9ddbd6") +(package! better-jumper :pin "6d240032ca213ccb3347e25f26c29b6822bf03a7") +(package! dtrt-indent :pin "9163cd990fb1f43dafed3948c6e406c13a45a6be") +(package! helpful :pin "c54e9ddbd6a77858048c1a4c4b549de98af8f88e") (when IS-MAC - (package! ns-auto-titlebar :pin "1efc30d385")) -(package! pcre2el :pin "0b5b2a2c17") -(package! smartparens :pin "555626a43f") + (package! ns-auto-titlebar :pin "1efc30d38509647b417f05587fd7003457719256")) +(package! pcre2el :pin "0b5b2a2c173aab3fd14aac6cf5e90ad3bf58fa7d") +(package! smartparens :pin "555626a43f9bb1985aa9a0eb675f2b88b29702c8") (package! so-long :built-in 'prefer ; included in Emacs 27+ ;; REVIEW so-long is slated to be published to ELPA eventually, but until then ;; I've created my own mirror for it because git.savannah.gnu.org runs ;; on a potato. :recipe (:host github :repo "hlissner/emacs-so-long") - :pin "ed666b0716") + :pin "ed666b0716f60e8988c455804de24b55919e71ca") (package! ws-butler ;; Use my fork of ws-butler, which has a few choice improvements and ;; optimizations (the original has been abandoned). :recipe (:host github :repo "hlissner/ws-butler") - :pin "2bb49d3ee7") + :pin "2bb49d3ee7d2cba133bc7e9cdac416cd1c5e4fe0") (unless IS-WINDOWS (package! clipetty :recipe (:host github :repo "spudlyo/clipetty") - :pin "7ee3f9c52f")) + :pin "01b39044b9b65fa4ea7d3166f8b1ffab6f740362")) ;; core-projects.el -(package! projectile :pin "eec569dc32") +(package! projectile :pin "5cd261dd75f4d711c0016617621349e2a98b43aa") ;; core-keybinds.el -(package! general :pin "14ad4c888b") -(package! which-key :pin "8b49ae978c") +(package! general :pin "42e38034cd2305fa7432866323c923979d8f9b06") +(package! which-key :pin "8b49ae978cceca65967f3544c236f32964ddbed0") ;; autoload/cache.el -(package! persistent-soft :pin "a1e0ddf2a1") +(package! persistent-soft :pin "a1e0ddf2a12a6f18cab565dee250f070384cbe02") diff --git a/modules/lang/emacs-lisp/autoload.el b/modules/lang/emacs-lisp/autoload.el index 228a3a8ef..1aaaf8058 100644 --- a/modules/lang/emacs-lisp/autoload.el +++ b/modules/lang/emacs-lisp/autoload.el @@ -221,6 +221,19 @@ verbosity when editing a file in `doom-private-dir' or `doom-emacs-dir'." (default-value 'flycheck-emacs-lisp-check-form) ")")))) +;;;###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) + (put-text-property (re-search-forward "\"[^\"]\\{10\\}" nil t) + (progn (re-search-forward "\"" nil t) + (match-beginning 0)) + 'display "..."))) + nil) + ;;;###autoload (defun +emacs-lisp/edebug-instrument-defun-on () "Toggle on instrumentalisation for the function under `defun'." diff --git a/modules/lang/emacs-lisp/config.el b/modules/lang/emacs-lisp/config.el index 7d4bf782d..521f4192c 100644 --- a/modules/lang/emacs-lisp/config.el +++ b/modules/lang/emacs-lisp/config.el @@ -75,7 +75,9 @@ This marks a foldable marker for `outline-minor-mode' in elisp buffers.") ("^;;;###\\(autodef\\|if\\|package\\)[ \n]" (1 font-lock-warning-face t))) ;; highlight defined, special variables & functions (when +emacs-lisp-enable-extra-fontification - `((+emacs-lisp-highlight-vars-and-faces . +emacs-lisp--face))))) + `((+emacs-lisp-highlight-vars-and-faces . +emacs-lisp--face))) + + `(("(package!\\_>" (0 (+emacs-lisp-truncate-pin)))))) ;; Recenter window after following definition (advice-add #'elisp-def :after #'doom-recenter-a) diff --git a/modules/lang/rust/packages.el b/modules/lang/rust/packages.el index 1c2945cc6..22d5d3f0f 100644 --- a/modules/lang/rust/packages.el +++ b/modules/lang/rust/packages.el @@ -1,6 +1,6 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/rust/packages.el -(package! rustic :pin "61032eacf0") +(package! rustic :pin "32a962ab2d") (unless (featurep! +lsp) (package! racer :pin "a0bdf778f0")) From 49cdda3e3d8e8130acb3e3702060e9197d60eeb4 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 29 Apr 2020 23:25:44 -0400 Subject: [PATCH 032/130] Bump :ui Alexander-Miller/treemacs@ee1b523 -> Alexander-Miller/treemacs@10c96c9 abo-abo/ace-window@7e0777b -> abo-abo/ace-window@7003c88 hlissner/emacs-doom-themes@8d5ddbb -> hlissner/emacs-doom-themes@254d476 jaypei/emacs-neotree@98fe213 -> jaypei/emacs-neotree@5e12716 joostkremers/writeroom-mode@9b6e55f -> joostkremers/writeroom-mode@7f7acde We're also transitioning from abbreviated SHA1 hashes to full ones. See 45cdfb125 for why. --- modules/ui/deft/packages.el | 2 +- modules/ui/doom/packages.el | 4 ++-- modules/ui/fill-column/packages.el | 2 +- modules/ui/hl-todo/packages.el | 2 +- modules/ui/hydra/packages.el | 2 +- modules/ui/indent-guides/packages.el | 2 +- modules/ui/modeline/packages.el | 6 +++--- modules/ui/nav-flash/packages.el | 2 +- modules/ui/neotree/packages.el | 2 +- modules/ui/ophints/packages.el | 4 ++-- modules/ui/tabs/packages.el | 2 +- modules/ui/treemacs/packages.el | 2 +- modules/ui/unicode/packages.el | 2 +- modules/ui/vc-gutter/packages.el | 2 +- modules/ui/vi-tilde-fringe/packages.el | 2 +- modules/ui/window-select/packages.el | 6 +++--- modules/ui/workspaces/packages.el | 2 +- modules/ui/zen/packages.el | 4 ++-- 18 files changed, 25 insertions(+), 25 deletions(-) diff --git a/modules/ui/deft/packages.el b/modules/ui/deft/packages.el index 18bf7ee99..aa7be392e 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 "f54e8a65a7") +(package! deft :pin "f54e8a65a7e75a029657364055420374df45656d") diff --git a/modules/ui/doom/packages.el b/modules/ui/doom/packages.el index 46e44fbbc..b6e2ac273 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 "8d5ddbbb72") -(package! solaire-mode :pin "adc8c0c60d") +(package! doom-themes :pin "254d476dd6790eaa6b563c5a4da286321ff75d38") +(package! solaire-mode :pin "adc8c0c60d914f6395eba0bee78feedda128b30b") diff --git a/modules/ui/fill-column/packages.el b/modules/ui/fill-column/packages.el index 24adf3078..75c23a2ef 100644 --- a/modules/ui/fill-column/packages.el +++ b/modules/ui/fill-column/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; ui/fill-column/packages.el -(package! hl-fill-column :pin "43cb3c35a9") +(package! hl-fill-column :pin "43cb3c35a92c912b7205b8a36f1ad0ec0a5b4a22") diff --git a/modules/ui/hl-todo/packages.el b/modules/ui/hl-todo/packages.el index 05ef85835..d83551c7d 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 "3bba4591c5") +(package! hl-todo :pin "3bba4591c54951d2abab113ec5e58a6319808ca9") diff --git a/modules/ui/hydra/packages.el b/modules/ui/hydra/packages.el index 539cf3928..782bde9a5 100644 --- a/modules/ui/hydra/packages.el +++ b/modules/ui/hydra/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; ui/hydra/packages.el -(package! hydra :pin "16fa8d109e") +(package! hydra :pin "16fa8d109ec5799931a793b2e866ea9d593bee84") diff --git a/modules/ui/indent-guides/packages.el b/modules/ui/indent-guides/packages.el index 3a6856a27..dab8cc821 100644 --- a/modules/ui/indent-guides/packages.el +++ b/modules/ui/indent-guides/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; ui/indent-guides/packages.el -(package! highlight-indent-guides :pin "1b12c7b440") +(package! highlight-indent-guides :pin "1b12c7b440ff988c7237936187c1375ac4ddc7f4") diff --git a/modules/ui/modeline/packages.el b/modules/ui/modeline/packages.el index f9427d43e..8e843630b 100644 --- a/modules/ui/modeline/packages.el +++ b/modules/ui/modeline/packages.el @@ -2,7 +2,7 @@ ;;; ui/modeline/packages.el (unless (featurep! +light) - (package! doom-modeline :pin "c177959bbf")) -(package! anzu :pin "3e34fb3df5") + (package! doom-modeline :pin "c177959bbfa7fa6f199b1145c6986e55f462f1c1")) +(package! anzu :pin "3e34fb3df53c0c68e842fa179c327a7395d1901d") (when (featurep! :editor evil) - (package! evil-anzu :pin "9bca6ca14d")) + (package! evil-anzu :pin "9bca6ca14d865e7e005bc02a28a09b4ae74facc9")) diff --git a/modules/ui/nav-flash/packages.el b/modules/ui/nav-flash/packages.el index 12e2a5a1f..3cc02ee6e 100644 --- a/modules/ui/nav-flash/packages.el +++ b/modules/ui/nav-flash/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; ui/nav-flash/packages.el -(package! nav-flash :pin "dbb9121663") +(package! nav-flash :pin "dbb91216637e0a1e8bfd59aa883c75d45db70daf") diff --git a/modules/ui/neotree/packages.el b/modules/ui/neotree/packages.el index 7cf6041ab..77fc8ff45 100644 --- a/modules/ui/neotree/packages.el +++ b/modules/ui/neotree/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; ui/neotree/packages.el -(package! neotree :pin "98fe21334a") +(package! neotree :pin "5e1271655170f4cdc6849258e383c548a4e6e3d0") diff --git a/modules/ui/ophints/packages.el b/modules/ui/ophints/packages.el index 000154257..3070cc9fb 100644 --- a/modules/ui/ophints/packages.el +++ b/modules/ui/ophints/packages.el @@ -2,5 +2,5 @@ ;;; ui/ophints/packages.el (if (featurep! :editor evil) - (package! evil-goggles :pin "08a22058fd") - (package! volatile-highlights :pin "9a20091f0c")) + (package! evil-goggles :pin "08a22058fd6a167f9f1b684c649008caef571459") + (package! volatile-highlights :pin "9a20091f0ce7fc0a6b3e641a6a46d5f3ac4d8392")) diff --git a/modules/ui/tabs/packages.el b/modules/ui/tabs/packages.el index e9e125e99..75f6debda 100644 --- a/modules/ui/tabs/packages.el +++ b/modules/ui/tabs/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; ui/tabs/packages.el -(package! centaur-tabs :pin "e6bf9f5257") +(package! centaur-tabs :pin "e6bf9f5257fa5401695e0e33d0376a0821ac2f2f") diff --git a/modules/ui/treemacs/packages.el b/modules/ui/treemacs/packages.el index a1e1ead7e..4c5b3e7ef 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 "ee1b523b28") +(package! treemacs :pin "10c96c9cd9e06f1bff7a708987861a8e73480647") ;; These packages have no :pin because they're in the same repo (when (featurep! :editor evil +everywhere) (package! treemacs-evil)) diff --git a/modules/ui/unicode/packages.el b/modules/ui/unicode/packages.el index a7c7dfcd7..cafa4ae2e 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 "7b88ae84e5") +(package! unicode-fonts :pin "7b88ae84e589f6c8b9386b2fb5a02ff4ccb91169") diff --git a/modules/ui/vc-gutter/packages.el b/modules/ui/vc-gutter/packages.el index 9196a2abb..67d3886ed 100644 --- a/modules/ui/vc-gutter/packages.el +++ b/modules/ui/vc-gutter/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; ui/vc-gutter/packages.el -(package! git-gutter-fringe :pin "da19a47413") +(package! git-gutter-fringe :pin "da19a474137876b29b5658ee7e9ae366f2b65c1d") diff --git a/modules/ui/vi-tilde-fringe/packages.el b/modules/ui/vi-tilde-fringe/packages.el index 2aad44c2f..36b4004e8 100644 --- a/modules/ui/vi-tilde-fringe/packages.el +++ b/modules/ui/vi-tilde-fringe/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; ui/vi-tilde-fringe/packages.el -(package! vi-tilde-fringe :pin "f1597a8d54") +(package! vi-tilde-fringe :pin "f1597a8d54535bb1d84b442577b2024e6f910308") diff --git a/modules/ui/window-select/packages.el b/modules/ui/window-select/packages.el index 455caf83a..4139119f7 100644 --- a/modules/ui/window-select/packages.el +++ b/modules/ui/window-select/packages.el @@ -2,8 +2,8 @@ ;;; ui/window-select/packages.el (if (featurep! +switch-window) - (package! switch-window :pin "204f9fc1a3") - (package! ace-window :pin "7e0777b39a")) + (package! switch-window :pin "204f9fc1a39868a2d16ab9370a142c8c9c7a0943") + (package! ace-window :pin "7003c88cd9cad58dc35c7cd13ebc61c355fb5be7")) (when (featurep! +numbers) - (package! winum :pin "c5455e866e")) + (package! winum :pin "c5455e866e8a5f7eab6a7263e2057aff5f1118b9")) diff --git a/modules/ui/workspaces/packages.el b/modules/ui/workspaces/packages.el index f68166146..72ce81a31 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 "391a7dc248") +(package! persp-mode :pin "391a7dc248c9c04b7ad424c696bdff578e14dd2c") diff --git a/modules/ui/zen/packages.el b/modules/ui/zen/packages.el index a3c3613a4..3f1b2341c 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 "20c761b800") -(package! mixed-pitch :pin "734fbdf2d2") +(package! writeroom-mode :pin "7f7acde5e8fc4ba74e511ca295e21f9ba7874730") +(package! mixed-pitch :pin "734fbdf2d2c17beee151faf39bd10174a87eea5d") From 40c185bd70f85d3df7fa2a9523df6680abbae314 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 29 Apr 2020 23:36:05 -0400 Subject: [PATCH 033/130] Bump :tools Silex/docker.el@a2092b3 -> Silex/docker.el@0874520 emacs-lsp/dap-mode@0b9c8f2 -> emacs-lsp/dap-mode@804e364 emacs-lsp/helm-lsp@db24399 -> emacs-lsp/helm-lsp@6b5ce18 emacs-lsp/lsp-mode@4898d35 -> emacs-lsp/lsp-mode@87ea1df emacs-straight/rainbow-mode@3ef813d -> emacs-straight/rainbow-mode@f780ddb emacsorphanage/quickrun@50e07e7 -> emacsorphanage/quickrun@2e37ce9 magit/magit@8de6ecf -> magit/magit@d27d6e4 maxchaos/emacs-powerthesaurus@81a262e -> maxchaos/emacs-powerthesaurus@4a83478 millejoh/emacs-ipython-notebook@1322d8c -> millejoh/emacs-ipython-notebook@42134ad politza/pdf-tools@0159cb1 -> politza/pdf-tools@d971298 realgud/realgud@b854e04 -> realgud/realgud@e03446f tumashu/posframe@e62e584 -> tumashu/posframe@093b29a zx2c4/password-store@88936b1 -> zx2c4/password-store@07b169e We're also transitioning from abbreviated SHA1 hashes to full ones. See 45cdfb125 for why. --- modules/tools/ansible/packages.el | 10 +++++----- modules/tools/debugger/packages.el | 8 ++++---- modules/tools/direnv/packages.el | 2 +- modules/tools/docker/packages.el | 6 +++--- modules/tools/editorconfig/packages.el | 2 +- modules/tools/ein/packages.el | 2 +- modules/tools/eval/packages.el | 4 ++-- modules/tools/gist/packages.el | 2 +- modules/tools/lookup/packages.el | 24 ++++++++++++------------ modules/tools/lsp/packages.el | 10 +++++----- modules/tools/magit/packages.el | 12 ++++++------ modules/tools/make/packages.el | 2 +- modules/tools/pass/packages.el | 12 ++++++------ modules/tools/pdf/packages.el | 2 +- modules/tools/prodigy/packages.el | 2 +- modules/tools/rgb/packages.el | 4 ++-- modules/tools/terraform/packages.el | 4 ++-- modules/tools/upload/packages.el | 2 +- 18 files changed, 55 insertions(+), 55 deletions(-) diff --git a/modules/tools/ansible/packages.el b/modules/tools/ansible/packages.el index 6ec7c4341..3378a9076 100644 --- a/modules/tools/ansible/packages.el +++ b/modules/tools/ansible/packages.el @@ -1,10 +1,10 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/ansible/packages.el -(package! ansible :recipe (:nonrecursive t) :pin "c6532e5216") -(package! ansible-doc :pin "86083a7bb2") -(package! jinja2-mode :pin "cfaa7bbe7b") -(package! yaml-mode :pin "cecf4b106b") +(package! ansible :recipe (:nonrecursive t) :pin "c6532e52161a381ed3dddfeaa7c92ae636d3f052") +(package! ansible-doc :pin "86083a7bb2ed0468ca64e52076b06441a2f8e9e0") +(package! jinja2-mode :pin "cfaa7bbe7bb290cc500440124ce89686f3e26f86") +(package! yaml-mode :pin "cecf4b106b0c4236931b14919fdf87ff3546e2c9") (when (featurep! :completion company) - (package! company-ansible :pin "79dd421b16")) + (package! company-ansible :pin "79dd421b161efa49fbdffad57fa40edb41f484a3")) diff --git a/modules/tools/debugger/packages.el b/modules/tools/debugger/packages.el index 9321e25fb..346677dce 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 "b854e040e0") +(when (package! realgud :pin "e03446f54c7ee0b4ed3ec7300597046cf1de2bb8") (when (featurep! :lang javascript) - (package! realgud-trepan-ni :pin "6e9cac5e80"))) + (package! realgud-trepan-ni :pin "6e9cac5e8097018aadf41c88de541168036cc227"))) (when (featurep! +lsp) - (package! dap-mode :pin "0b9c8f28ad") - (package! posframe :pin "e62e584268")) + (package! dap-mode :pin "804e364162a76b545a3f866827a2dc4e4dcbe836") + (package! posframe :pin "093b29a53cbeda6d637ccc9ef4dfc47123e79b9e")) diff --git a/modules/tools/direnv/packages.el b/modules/tools/direnv/packages.el index ff4716f38..1424dc52c 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! direnv :pin "1daf479b9b") +(package! direnv :pin "1daf479b9b7600ce9681f2a980deae7fcb2f3d59") diff --git a/modules/tools/docker/packages.el b/modules/tools/docker/packages.el index a40c377f1..f7bab25dd 100644 --- a/modules/tools/docker/packages.el +++ b/modules/tools/docker/packages.el @@ -1,6 +1,6 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/docker/packages.el -(package! docker :pin "a2092b3b17") -(package! docker-tramp :pin "8e2b671eff") -(package! dockerfile-mode :pin "d31f7685eb") +(package! docker :pin "08745207332d940130a2357eb5c5e00fd88bd6af") +(package! docker-tramp :pin "8e2b671eff7a81af43b76d9dfcf94ddaa8333a23") +(package! dockerfile-mode :pin "d31f7685ebc5832d957e25070a930aa42984327d") diff --git a/modules/tools/editorconfig/packages.el b/modules/tools/editorconfig/packages.el index a1d8ad9ff..0d35f6195 100644 --- a/modules/tools/editorconfig/packages.el +++ b/modules/tools/editorconfig/packages.el @@ -3,4 +3,4 @@ (package! editorconfig :recipe (:nonrecursive t) - :pin "19de0ec1ba") + :pin "19de0ec1bac67c5a76a4dd3d8ffe6c5411ace1af") diff --git a/modules/tools/ein/packages.el b/modules/tools/ein/packages.el index 0e53a4f1d..a9a9325b4 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 "1322d8c7f8") +(package! ein :pin "42134adf3c95b7768e2d725bab39ddb98feafa09") diff --git a/modules/tools/eval/packages.el b/modules/tools/eval/packages.el index aed6e4482..dfdbc665b 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 "50e07e7698") +(package! quickrun :pin "2e37ce9e4b13359344dbd67fbfd7e39d46b2c6b6") (when (featurep! +overlay) - (package! eros :pin "dd89102792")) + (package! eros :pin "dd8910279226259e100dab798b073a52f9b4233a")) diff --git a/modules/tools/gist/packages.el b/modules/tools/gist/packages.el index 44680cb30..f8a971d9f 100644 --- a/modules/tools/gist/packages.el +++ b/modules/tools/gist/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/gist/packages.el -(package! gist :pin "314fe6ab80") +(package! gist :pin "314fe6ab80fae35b95f0734eceb82f72813b6f41") diff --git a/modules/tools/lookup/packages.el b/modules/tools/lookup/packages.el index 0206f4c1f..e42c7449d 100644 --- a/modules/tools/lookup/packages.el +++ b/modules/tools/lookup/packages.el @@ -8,32 +8,32 @@ (package! helm)) ;; -(package! dumb-jump :pin "d760aa880f") +(package! dumb-jump :pin "d760aa880fc1052570ab0fd7e586eeffb7636af6") (when (featurep! :completion ivy) - (package! ivy-xref :pin "3d4c35fe2b")) + (package! ivy-xref :pin "3d4c35fe2b243d948d8fe02a1f0d76a249d63de9")) (when (featurep! :completion helm) - (package! helm-xref :pin "6b4a8bd91f")) + (package! helm-xref :pin "6b4a8bd91f5eaf82f51bd31b03f6587387fe6983")) ;; For dictionary and online lookup -(package! request :pin "216d570a58") +(package! request :pin "216d570a58d05ef1307edb63d2539bafa5f688c6") (when (featurep! +docsets) - (package! dash-docs :pin "111fd9b970") + (package! dash-docs :pin "111fd9b97001f1ad887b45e5308a14ddd68ce70a") (when (featurep! :completion helm) - (package! helm-dash :pin "7f853bd34d")) + (package! helm-dash :pin "7f853bd34da666f0e9a883011c80f451b06f6c59")) (when (featurep! :completion ivy) - (package! counsel-dash :pin "370d5f6f14"))) + (package! counsel-dash :pin "370d5f6f14b5294d0eb717f7b2a6a8e93df1ed24"))) (when (featurep! +dictionary) (if IS-MAC - (package! osx-dictionary :pin "1b79ff64c7") - (package! define-word :pin "08c71b1ff4") + (package! osx-dictionary :pin "1b79ff64c72485cb078db9ab7ee3256b11a99f4b") + (package! define-word :pin "08c71b1ff4fd07bf0c78d1fcf77efeaafc8f7443") ;; HACK Fix #2945: the main package is broken (see ;; SavchenkoValeriy/emacs-powerthesaurus). We use this fork until it is ;; merged. (package! powerthesaurus :recipe (:host github :repo "maxchaos/emacs-powerthesaurus" :branch "pt-api-change") - :pin "81a262ec0c") + :pin "4a834782a394f2dc70fc02d68b6962b44d87f0cf") (when (featurep! +offline) - (package! wordnut :pin "feac531404") - (package! synosaurus :pin "14d34fc92a")))) + (package! wordnut :pin "feac531404041855312c1a046bde7ea18c674915") + (package! synosaurus :pin "14d34fc92a77c3a916b4d58400424c44ae99cd81")))) diff --git a/modules/tools/lsp/packages.el b/modules/tools/lsp/packages.el index 29c0649a0..160bac8c0 100644 --- a/modules/tools/lsp/packages.el +++ b/modules/tools/lsp/packages.el @@ -1,11 +1,11 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/lsp/packages.el -(package! lsp-mode :pin "4898d35ace") -(package! lsp-ui :pin "242dfe859c") +(package! lsp-mode :pin "87ea1df50f1659c521684f01bc518eac4bf7b2a0") +(package! lsp-ui :pin "242dfe859c3497c456eaacfd84942e12419529fe") (when (featurep! :completion company) - (package! company-lsp :pin "f921ffa0cd")) + (package! company-lsp :pin "f921ffa0cdc542c21dc3dd85f2c93df4288e83bd")) (when (featurep! :completion ivy) - (package! lsp-ivy :pin "81e81ced99")) + (package! lsp-ivy :pin "81e81ced99829358674c5a6bbe2c3e15cecd4ed8")) (when (featurep! :completion helm) - (package! helm-lsp :pin "db243993ea")) + (package! helm-lsp :pin "6b5ce182d7c94c62b55b8f7d0c7e643b2c30e560")) diff --git a/modules/tools/magit/packages.el b/modules/tools/magit/packages.el index 97ac695ce..f1bd7253d 100644 --- a/modules/tools/magit/packages.el +++ b/modules/tools/magit/packages.el @@ -1,11 +1,11 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/magit/packages.el -(when (package! magit :pin "8de6ecf5c5") +(when (package! magit :pin "d27d6e467857ed4a78c7cf7d609561df789e2a6c") (when (featurep! +forge) - (package! forge :pin "e2da80660a")) - (package! magit-gitflow :pin "cc41b561ec") - (package! magit-todos :pin "a0e5d1f3c7") - (package! github-review :pin "50c6bcc7cf") + (package! forge :pin "e2da80660a0550f613400ce3b238025589800417")) + (package! magit-gitflow :pin "cc41b561ec6eea947fe9a176349fb4f771ed865b") + (package! magit-todos :pin "a0e5d1f3c7dfcb4f18c1b0d57f1746a4872df5c6") + (package! github-review :pin "50c6bcc7cf4d7193577b3f74eea4dd72f2b7795b") (when (featurep! :editor evil +everywhere) - (package! evil-magit :pin "253c644807"))) + (package! evil-magit :pin "253c644807013fe92429acdef418748794b8f254"))) diff --git a/modules/tools/make/packages.el b/modules/tools/make/packages.el index d389186b5..815c945d3 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 "9a7d78f814") +(package! makefile-executor :pin "9a7d78f814a4b372d8f8179819cb1b37b83b1973") diff --git a/modules/tools/pass/packages.el b/modules/tools/pass/packages.el index f998eb0e1..6f9dea011 100644 --- a/modules/tools/pass/packages.el +++ b/modules/tools/pass/packages.el @@ -1,17 +1,17 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/pass/packages.el -(package! pass :pin "919d8e3826") -(package! password-store :pin "88936b11af") -(package! password-store-otp :pin "04998c8578") +(package! pass :pin "919d8e3826d556433ab67d4ee21a509d209d1baa") +(package! password-store :pin "07b169ec32ad6961ed8625a0b932a663abcb01d2") +(package! password-store-otp :pin "04998c8578a060ab4a4e8f46f2ee0aafad4ab4d5") ;; an older version of `auto-source-pass' is built into Emacs 26+, so we must ;; install the new version directly from the source and with a psuedonym. (package! auth-source-pass :recipe (:host github :repo "DamienCassou/auth-password-store") - :pin "ff4940c647") + :pin "ff4940c647786914b3cbef69103d96a4ea334111") (when (featurep! :completion ivy) - (package! ivy-pass :pin "5b523de115")) + (package! ivy-pass :pin "5b523de1151f2109fdd6a8114d0af12eef83d3c5")) (when (featurep! :completion helm) - (package! helm-pass :pin "ed5798f2d8")) + (package! helm-pass :pin "ed5798f2d83937575e8f23fde33323bca9e85131")) diff --git a/modules/tools/pdf/packages.el b/modules/tools/pdf/packages.el index 06ef963d3..046c2ea84 100644 --- a/modules/tools/pdf/packages.el +++ b/modules/tools/pdf/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/pdf/packages.el -(package! pdf-tools :pin "0159cb1ab3") +(package! pdf-tools :pin "d9712989fc4715443f674459199bdffa987054ac") diff --git a/modules/tools/prodigy/packages.el b/modules/tools/prodigy/packages.el index edb10f54c..57dc56a4f 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 "6ae71f27b0") +(package! prodigy :pin "6ae71f27b09b172f03fb55b9eeef001206baacd3") diff --git a/modules/tools/rgb/packages.el b/modules/tools/rgb/packages.el index 22b018737..d916da671 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 "3ef813d637") -(package! kurecolor :pin "3fc84840cb") +(package! rainbow-mode :pin "f780ddb18c2a73a666d093f606df92058e5601ea") +(package! kurecolor :pin "3fc84840cbbd75e646cafa2fd3a00004b55e37ec") diff --git a/modules/tools/terraform/packages.el b/modules/tools/terraform/packages.el index 25156c92e..a7452abef 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 "2967e7bdc0") +(package! terraform-mode :pin "2967e7bdc05d15617e121052f6e43c61439b9070") (when (featurep! :completion company) - (package! company-terraform :pin "2d11a21fee")) + (package! company-terraform :pin "2d11a21fee2f298e48968e479ddcaeda4d736e12")) diff --git a/modules/tools/upload/packages.el b/modules/tools/upload/packages.el index 4925d1306..d26bd9346 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 "1bb2f821d4") +(package! ssh-deploy :pin "1bb2f821d4a78d483c147759348a29531486cdc4") From 08f139391d6dede2aff7a8430c4b77c80f06530f Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 30 Apr 2020 00:09:07 -0400 Subject: [PATCH 034/130] Bump :editor PythonNut/evil-easymotion@79c13ed -> PythonNut/evil-easymotion@f96c2ed abo-abo/lispy@c7e282a -> abo-abo/lispy@cdaa9c7 clemera/objed@8dc1770 -> clemera/objed@e89d8da emacs-evil/evil-collection@493d523 -> emacs-evil/evil-collection@ba36304 emacs-evil/evil@8aa6337 -> emacs-evil/evil@d243eae hlissner/doom-snippets@feaedeb -> hlissner/doom-snippets@422f683 hlissner/evil-snipe@3ec8adf -> hlissner/evil-snipe@2ba6353 joaotavora/yasnippet@ac03c2f -> joaotavora/yasnippet@5b1217a mrkkrp/vimish-fold@d3248a4 -> mrkkrp/vimish-fold@6368523 redguardtoo/evil-nerd-commenter@747e346 -> redguardtoo/evil-nerd-commenter@1bd2de5 We're also transitioning from abbreviated SHA1 hashes to full ones. See 45cdfb125 for why. --- modules/editor/evil/packages.el | 36 ++++++++++----------- modules/editor/file-templates/packages.el | 2 +- modules/editor/fold/packages.el | 4 +-- modules/editor/god/packages.el | 2 +- modules/editor/lispy/packages.el | 4 +-- modules/editor/multiple-cursors/packages.el | 6 ++-- modules/editor/objed/packages.el | 2 +- modules/editor/parinfer/packages.el | 2 +- modules/editor/rotate-text/packages.el | 2 +- modules/editor/snippets/packages.el | 6 ++-- modules/editor/word-wrap/packages.el | 2 +- 11 files changed, 34 insertions(+), 34 deletions(-) diff --git a/modules/editor/evil/packages.el b/modules/editor/evil/packages.el index 2a427f444..75b9d8f23 100644 --- a/modules/editor/evil/packages.el +++ b/modules/editor/evil/packages.el @@ -1,27 +1,27 @@ ;; -*- no-byte-compile: t; -*- ;;; editor/evil/packages.el -(package! evil :pin "8aa6337fa8") -(package! evil-args :pin "758ad5ae54") -(package! evil-easymotion :pin "79c13ed3bc") -(package! evil-embrace :pin "4379adea03") -(package! evil-escape :pin "f4e9116bfb") -(package! evil-exchange :pin "3030e21ee1") -(package! evil-indent-plus :pin "0c7501e6ef") -(package! evil-lion :pin "6b03593f5d") -(package! evil-nerd-commenter :pin "747e346f11") +(package! evil :pin "d243eae8649272799ec3864fde14c1164f036940") +(package! evil-args :pin "758ad5ae54ad34202064fec192c88151c08cb387") +(package! evil-easymotion :pin "f96c2ed38ddc07908db7c3c11bcd6285a3e8c2e9") +(package! evil-embrace :pin "4379adea032b25e359d01a36301b4a5afdd0d1b7") +(package! evil-escape :pin "f4e9116bfbaac8c9d210c17ad488e0982291245f") +(package! evil-exchange :pin "3030e21ee16a42dfce7f7cf86147b778b3f5d8c1") +(package! evil-indent-plus :pin "0c7501e6efed661242c3a20e0a6c79a6455c2c40") +(package! evil-lion :pin "6b03593f5dd6e7c9ca02207f9a73615cf94c93ab") +(package! evil-nerd-commenter :pin "1bd2de52011c39777a3e8779b14cee2790dc873b") (package! evil-numbers :recipe (:host github :repo "janpath/evil-numbers") - :pin "c2cfdd1eb1") -(package! evil-snipe :pin "3ec8adfd49") -(package! evil-surround :pin "9b0b17f06c") -(package! evil-textobj-anyblock :pin "ff00980f06") -(package! evil-traces :pin "bc25cae9fa") -(package! evil-visualstar :pin "06c053d8f7") -(package! exato :pin "d5daea3017") + :pin "c2cfdd1eb1f193bea28ee79b191b78309677058a") +(package! evil-snipe :pin "2ba6353bb9253dbbc4193f1d35403e7dcc1317b1") +(package! evil-surround :pin "9b0b17f06cef9bac81ee4800d121265e54718a17") +(package! evil-textobj-anyblock :pin "ff00980f0634f95bf2ad9956b615a155ea8743be") +(package! evil-traces :pin "bc25cae9fa5ab0ba1507827f0944f52ce0ca7462") +(package! evil-visualstar :pin "06c053d8f7381f91c53311b1234872ca96ced752") +(package! exato :pin "d5daea30176d48e74c9d063ac9bfc240ebeb97d0") (package! evil-quick-diff :recipe (:host github :repo "rgrinberg/evil-quick-diff") - :pin "69c883720b") + :pin "69c883720b30a892c63bc89f49d4f0e8b8028908") ;; (when (featurep! +everywhere) @@ -31,4 +31,4 @@ (package! neotree) (autoload 'neotree-make-executor "neotree" nil nil 'macro)) - (package! evil-collection :pin "493d523c9b")) + (package! evil-collection :pin "ba3630476b3927d9d2e3ec75308a28e3a5bd54a8")) diff --git a/modules/editor/file-templates/packages.el b/modules/editor/file-templates/packages.el index 42c98b815..2a16ccb75 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 "ac03c2f192") +(package! yasnippet :pin "5b1217ab085fab4abeb1118dccb260691b446703") diff --git a/modules/editor/fold/packages.el b/modules/editor/fold/packages.el index 9420d41a5..de5af2df9 100644 --- a/modules/editor/fold/packages.el +++ b/modules/editor/fold/packages.el @@ -3,6 +3,6 @@ (package! hideshow :built-in t) -(package! vimish-fold :pin "d3248a41a7") +(package! vimish-fold :pin "63685239655a151181b9152e45478dad587f86f2") (when (featurep! :editor evil) - (package! evil-vimish-fold :pin "b6e0e6b91b")) + (package! evil-vimish-fold :pin "b6e0e6b91b8cd047e80debef1a536d9d49eef31a")) diff --git a/modules/editor/god/packages.el b/modules/editor/god/packages.el index 1dc6a2016..edfcc1033 100644 --- a/modules/editor/god/packages.el +++ b/modules/editor/god/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; editor/god/packages.el -(package! god-mode :pin "1eb6ef3a4f") +(package! god-mode :pin "1eb6ef3a4f67a805c5d6deb1e3895b6c853707d7") diff --git a/modules/editor/lispy/packages.el b/modules/editor/lispy/packages.el index 747c914ec..7f343c5a3 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 "c7e282ae06") +(package! lispy :pin "cdaa9c70ca39a880163cbbce924bb46cc56b9fa4") (when (featurep! :editor evil) - (package! lispyville :pin "25a70126ea")) + (package! lispyville :pin "25a70126ea807653e0a8c512d4128c90ed673d7a")) diff --git a/modules/editor/multiple-cursors/packages.el b/modules/editor/multiple-cursors/packages.el index 72dfe9061..5e317fe2d 100644 --- a/modules/editor/multiple-cursors/packages.el +++ b/modules/editor/multiple-cursors/packages.el @@ -3,7 +3,7 @@ (cond ((featurep! :editor evil) - (package! evil-multiedit :pin "9f271e0e60") - (package! evil-mc :pin "4d4c0172e4")) + (package! evil-multiedit :pin "9f271e0e6048297692f80ed6c5ae8994ac523abc") + (package! evil-mc :pin "4d4c0172e4c7f80acc1d0e73d5fb3e536929b262")) - ((package! multiple-cursors :pin "b880554d04"))) + ((package! multiple-cursors :pin "b880554d04b8f61165afba7d4de19ac9e39bb7ab"))) diff --git a/modules/editor/objed/packages.el b/modules/editor/objed/packages.el index 49c15be40..5b49d2fbf 100644 --- a/modules/editor/objed/packages.el +++ b/modules/editor/objed/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; editor/objed/packages.el -(package! objed :pin "8dc17701d1") +(package! objed :pin "e89d8dae3b2d4331a4455d2a7b203500537d184d") diff --git a/modules/editor/parinfer/packages.el b/modules/editor/parinfer/packages.el index df109114b..a3badc94c 100644 --- a/modules/editor/parinfer/packages.el +++ b/modules/editor/parinfer/packages.el @@ -11,4 +11,4 @@ ;; separate session: (autoload 'evil-define-key "evil-core" nil nil 'macro)) -(package! parinfer :pin "eaad857ae4") +(package! parinfer :pin "eaad857ae4351f72a561ee3dec8943713510003f") diff --git a/modules/editor/rotate-text/packages.el b/modules/editor/rotate-text/packages.el index 15c7216dd..846641da6 100644 --- a/modules/editor/rotate-text/packages.el +++ b/modules/editor/rotate-text/packages.el @@ -3,4 +3,4 @@ (package! rotate-text :recipe (:host github :repo "debug-ito/rotate-text.el") - :pin "48f193697d") + :pin "48f193697db996855aee1ad2bc99b38c6646fe76") diff --git a/modules/editor/snippets/packages.el b/modules/editor/snippets/packages.el index fec5e4d36..12b720197 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 "5b1217ab08") -(package! auto-yasnippet :pin "db9e0dd433") +(package! yasnippet :pin "5b1217ab085fab4abeb1118dccb260691b446703") +(package! auto-yasnippet :pin "db9e0dd4335b2202cd5dac95bbbc87a1032d9bbe") (package! doom-snippets :recipe (:host github :repo "hlissner/doom-snippets" :files ("*.el" "*")) - :pin "feaedeb550") + :pin "422f683adfbec1b01fe00524690b64dc9e702ae0") diff --git a/modules/editor/word-wrap/packages.el b/modules/editor/word-wrap/packages.el index 8a82b406d..1e31f226e 100644 --- a/modules/editor/word-wrap/packages.el +++ b/modules/editor/word-wrap/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; editor/word-wrap/packages.el -(package! adaptive-wrap :pin "1810c0ee8d") +(package! adaptive-wrap :pin "1810c0ee8d827dd502ddeaae5bd759d4811fcbce") From 0ca9b4b12fb1886b10f09d9632be00e624f037a6 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 30 Apr 2020 00:18:31 -0400 Subject: [PATCH 035/130] Bump :emacs dgutov/diff-hl@2cf8b48 -> dgutov/diff-hl@a625033 ideasman42/emacs-undo-fu@0c34b67 -> ideasman42/emacs-undo-fu@0ce9ac3 jtbm37/all-the-icons-dired@816987d -> jtbm37/all-the-icons-dired@fc2dfa1 ralesi/ranger.el@af6f781 -> ralesi/ranger.el@ae9b381 yqrashawn/fd-dired@fd4c3f4 -> yqrashawn/fd-dired@001cc95 We're also transitioning from abbreviated SHA1 hashes to full ones. See 45cdfb125 for why. --- modules/emacs/dired/packages.el | 14 +++++++------- modules/emacs/ibuffer/packages.el | 4 ++-- modules/emacs/undo/packages.el | 6 +++--- modules/emacs/vc/packages.el | 8 ++++---- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/modules/emacs/dired/packages.el b/modules/emacs/dired/packages.el index fe6498417..9a483f259 100644 --- a/modules/emacs/dired/packages.el +++ b/modules/emacs/dired/packages.el @@ -1,12 +1,12 @@ ;; -*- no-byte-compile: t; -*- ;;; emacs/dired/packages.el -(package! diredfl :pin "83567d00af") -(package! dired-git-info :pin "b47f2b0c3a") -(package! diff-hl :pin "2cf8b489f3") -(package! dired-rsync :pin "bfd5c155be") +(package! diredfl :pin "83567d00affce66a4e501563eddd0bd436ac48d0") +(package! dired-git-info :pin "b47f2b0c3a6cb9b7a62a4ee2605a492e512d40a9") +(package! diff-hl :pin "a625033fb1dde83f6e4c2fc21f632b22ec34b609") +(package! dired-rsync :pin "bfd5c155be1cb6b71c83e5f41116c81b6532b6d5") (when (featurep! +ranger) - (package! ranger :pin "af6f781a60")) + (package! ranger :pin "ae9b3816a6da927cca5beb62c45400103797a2da")) (when (featurep! +icons) - (package! all-the-icons-dired :pin "816987d339")) -(package! fd-dired :pin "fd4c3f490b") + (package! all-the-icons-dired :pin "fc2dfa1e9eb8bf1c402a675e7089638d702a27a5")) +(package! fd-dired :pin "001cc95effdd5c4d9974b3f2c40b2ddf1f0e3de2") diff --git a/modules/emacs/ibuffer/packages.el b/modules/emacs/ibuffer/packages.el index 037024cc6..a43d06d4b 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 "504b0edaa0") -(package! ibuffer-vc :pin "1249c1e30c") +(package! ibuffer-projectile :pin "504b0edaa0d937ce60ccc8fdf09f2dae0a90fbaf") +(package! ibuffer-vc :pin "1249c1e30cf11badfe032ac3b1058f24ba510ace") diff --git a/modules/emacs/undo/packages.el b/modules/emacs/undo/packages.el index d960bda32..8c21f4904 100644 --- a/modules/emacs/undo/packages.el +++ b/modules/emacs/undo/packages.el @@ -2,6 +2,6 @@ ;;; emacs/undo/packages.el (if (featurep! +tree) - (package! undo-tree :pin "5b6df03781") - (package! undo-fu :pin "0c34b6747e") - (package! undo-fu-session :pin "b808ef0cdc")) + (package! undo-tree :pin "5b6df03781495d8a25695d846b0cce496d3d3058") + (package! undo-fu :pin "0ce9ac36144e80316fff50bfe1bc5dd7e5e7ded6") + (package! undo-fu-session :pin "b808ef0cdcdd2eef221c67eda567eed7fcb3d4af")) diff --git a/modules/emacs/vc/packages.el b/modules/emacs/vc/packages.el index 693554e96..b022a543c 100644 --- a/modules/emacs/vc/packages.el +++ b/modules/emacs/vc/packages.el @@ -5,7 +5,7 @@ (package! vc-annotate :built-in t) (package! smerge-mode :built-in t) -(package! browse-at-remote :pin "6aecae4b5d") -(package! git-timemachine :pin "391eb61050") -(package! gitconfig-mode :pin "55468314a5") -(package! gitignore-mode :pin "55468314a5") +(package! browse-at-remote :pin "6aecae4b5d202e582425fc8aa2c9c2b6a4779f25") +(package! git-timemachine :pin "391eb61050de321101e631fcf373fc70ec6e7700") +(package! gitconfig-mode :pin "55468314a5f6b77d2c96be62c7005ac94545e217") +(package! gitignore-mode :pin "55468314a5f6b77d2c96be62c7005ac94545e217") From 8b5525049d6a0c24a4b6209ed761e554f579c0fd Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 30 Apr 2020 00:21:21 -0400 Subject: [PATCH 036/130] Bump :checkers d12frosted/flyspell-correct@e765d1a -> d12frosted/flyspell-correct@fd8ac7a flycheck/flycheck@f19a51c -> flycheck/flycheck@246e1d4 We're also transitioning from abbreviated SHA1 hashes to full ones. See 45cdfb125 for why. --- modules/checkers/grammar/packages.el | 4 ++-- modules/checkers/spell/packages.el | 10 +++++----- modules/checkers/syntax/packages.el | 6 +++--- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/modules/checkers/grammar/packages.el b/modules/checkers/grammar/packages.el index 052e9207c..3207a672d 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 "a71ed02ce0") -(package! writegood-mode :pin "b71757ec33") +(package! langtool :pin "a71ed02ce06920ae3cafd6708de1c21811ce14c3") +(package! writegood-mode :pin "b71757ec337e226909fb0422f0224e31acc71733") diff --git a/modules/checkers/spell/packages.el b/modules/checkers/spell/packages.el index 083a1cf12..254de3230 100644 --- a/modules/checkers/spell/packages.el +++ b/modules/checkers/spell/packages.el @@ -1,11 +1,11 @@ ;; -*- no-byte-compile: t; -*- ;;; checkers/spell/packages.el -(package! flyspell-correct :pin "e765d1a3d9") +(package! flyspell-correct :pin "fd8ac7a4f922ce5ea1cc5d4583a7d584847cb6b5") (cond ((featurep! :completion ivy) - (package! flyspell-correct-ivy :pin "e765d1a3d9")) + (package! flyspell-correct-ivy)) ((featurep! :completion helm) - (package! flyspell-correct-helm :pin "e765d1a3d9")) - ((package! flyspell-correct-popup :pin "e765d1a3d9"))) + (package! flyspell-correct-helm)) + ((package! flyspell-correct-popup))) -(package! flyspell-lazy :pin "3ebf68cc9e") +(package! flyspell-lazy :pin "3ebf68cc9eb10c972a2de8d7861cbabbbce69570") diff --git a/modules/checkers/syntax/packages.el b/modules/checkers/syntax/packages.el index d4cf34bbc..a1db8dc40 100644 --- a/modules/checkers/syntax/packages.el +++ b/modules/checkers/syntax/packages.el @@ -1,9 +1,9 @@ ;; -*- no-byte-compile: t; -*- ;;; checkers/syntax/packages.el -(package! flycheck :pin "f19a51c0f1") -(package! flycheck-popup-tip :pin "ef86aad907") +(package! flycheck :pin "246e1d4380721ca03962464f11d02dd1372860ce") +(package! flycheck-popup-tip :pin "ef86aad907f27ca076859d8d9416f4f7727619c6") (when (featurep! +childframe) - (package! flycheck-posframe :pin "2b3e94c2e4")) + (package! flycheck-posframe :pin "2b3e94c2e427ec9831c513007460c5ea9e2225a3")) ;; TODO flymake? From fb831a3bcf69f2af8c8a4f09620d9cee33073a57 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 30 Apr 2020 00:24:26 -0400 Subject: [PATCH 037/130] Bump :app abo-abo/avy@3bf8314 -> abo-abo/avy@509471b kidd/org-gcal.el@6821e34 -> kidd/org-gcal.el@1667aba skeeto/elfeed@d0405e6 -> remyhonig/elfeed-org@77b6bbf We're also transitioning from abbreviated SHA1 hashes to full ones. See 45cdfb125 for why. --- modules/app/calendar/packages.el | 6 +++--- modules/app/irc/packages.el | 4 ++-- modules/app/rss/packages.el | 4 ++-- modules/app/twitter/packages.el | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/modules/app/calendar/packages.el b/modules/app/calendar/packages.el index 9f10dc730..960db04dd 100644 --- a/modules/app/calendar/packages.el +++ b/modules/app/calendar/packages.el @@ -1,6 +1,6 @@ ;; -*- no-byte-compile: t; -*- ;;; app/calendar/packages.el -(package! calfw :pin "03abce9762") -(package! calfw-org :pin "03abce9762") -(package! org-gcal :pin "6821e34967") +(package! calfw :pin "03abce97620a4a7f7ec5f911e669da9031ab9088") +(package! calfw-org :pin "03abce97620a4a7f7ec5f911e669da9031ab9088") +(package! org-gcal :pin "1667aba7c0a33e3c23c3a47fc04e89670684eddc") diff --git a/modules/app/irc/packages.el b/modules/app/irc/packages.el index d4609d107..5c83b8060 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 "e5bf5f8974") -(package! circe-notifications :pin "291149ac12") +(package! circe :pin "e5bf5f89741a9c43aa406491e94dd8d58c302fb4") +(package! circe-notifications :pin "291149ac12877bbd062da993479d3533a26862b0") diff --git a/modules/app/rss/packages.el b/modules/app/rss/packages.el index 076686e55..544a39f89 100644 --- a/modules/app/rss/packages.el +++ b/modules/app/rss/packages.el @@ -1,5 +1,5 @@ ;; -*- no-byte-compile: t; -*- ;;; app/rss/packages.el -(package! elfeed :pin "d0405e6386") -(package! elfeed-org :pin "77b6bbf222") +(package! elfeed :pin "d0405e63863e54a01200740a6717ac875eceabc1") +(package! elfeed-org :pin "77b6bbf222487809813de260447d31c4c59902c9") diff --git a/modules/app/twitter/packages.el b/modules/app/twitter/packages.el index 927619ae8..8ad7dd82e 100644 --- a/modules/app/twitter/packages.el +++ b/modules/app/twitter/packages.el @@ -1,5 +1,5 @@ ;; -*- no-byte-compile: t; -*- ;;; app/twitter/packages.el -(package! twittering-mode :pin "114891e8fd") -(package! avy :pin "3bf83140fa") +(package! twittering-mode :pin "114891e8fdb4f06b1326a6cf795e49c205cf9e29") +(package! avy :pin "509471bad0e8094b8639729ec39ca141fae7d4bd") From af4e347df0f9b0a7da3b487304d6e202c29acfd3 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 30 Apr 2020 01:23:54 -0400 Subject: [PATCH 038/130] Bump :completion DarwinAwardWinner/amx@e512e74 -> DarwinAwardWinner/amx@7fb7b87 Yevgnen/ivy-rich@596874d -> Yevgnen/ivy-rich@3f818b2 abo-abo/swiper@64f05f4 -> abo-abo/swiper@9e0803c company-mode/company-mode@61ddd9a -> company-mode/company-mode@6333fc4 emacs-helm/helm@d978f20 -> emacs-helm/helm@b6db9fb raxod502/prescient.el@5330773 -> raxod502/prescient.el@0f4a89b raxod502/prescient.el@5330773 -> raxod502/prescient.el@0f4a89b sebastiencs/company-box@8fc6168 -> sebastiencs/company-box@3814fcb tumashu/posframe@e62e584 -> tumashu/posframe@093b29a We're also transitioning from abbreviated SHA1 hashes to full ones. See 45cdfb125 for why. --- modules/completion/company/packages.el | 8 ++++---- modules/completion/helm/packages.el | 22 +++++++++++----------- modules/completion/ido/packages.el | 10 +++++----- modules/completion/ivy/packages.el | 18 +++++++++--------- 4 files changed, 29 insertions(+), 29 deletions(-) diff --git a/modules/completion/company/packages.el b/modules/completion/company/packages.el index 2006fe791..0fefa4d71 100644 --- a/modules/completion/company/packages.el +++ b/modules/completion/company/packages.el @@ -1,8 +1,8 @@ ;; -*- no-byte-compile: t; -*- ;;; completion/company/packages.el -(package! company :pin "61ddd9afb5") -(package! company-dict :pin "cd7b8394f6") -(package! company-prescient :pin "53307731f3") +(package! company :pin "6333fc4ebbbf4d28e834de8715561e984f149ecb") +(package! company-dict :pin "cd7b8394f6014c57897f65d335d6b2bd65dab1f4") +(package! company-prescient :pin "0f4a89bdec61395138d968a38d375e63ccfbed63") (when (featurep! +childframe) - (package! company-box :pin "8fc6168f2d")) + (package! company-box :pin "3814fcb14e92f4b85b19e664e216a7c8d5c7144d")) diff --git a/modules/completion/helm/packages.el b/modules/completion/helm/packages.el index e16931e25..9b1bf3090 100644 --- a/modules/completion/helm/packages.el +++ b/modules/completion/helm/packages.el @@ -1,19 +1,19 @@ ;; -*- no-byte-compile: t; -*- ;;; completion/helm/packages.el -(package! helm :pin "d978f20f4c") -(package! helm-rg :pin "785a80fe5c") -(package! helm-c-yasnippet :pin "65ca732b51") -(package! helm-company :pin "6eb5c2d730") +(package! helm :pin "b6db9fb47a8900704394e63b795f4a54cb4701a8") +(package! helm-rg :pin "785a80fe5cc87e27c5ea3d00a70049028d9e2847") +(package! helm-c-yasnippet :pin "65ca732b510bfc31636708aebcfe4d2d845b59b0") +(package! helm-company :pin "6eb5c2d730a60e394e005b47c1db018697094dde") (package! helm-describe-modes :recipe (:host github :repo "emacs-helm/helm-describe-modes") - :pin "11fb36af11") -(package! helm-projectile :pin "5328b74ddd") -(package! swiper-helm :pin "93fb6db87b") + :pin "11fb36af119b784539d31c6160002de1957408aa") +(package! helm-projectile :pin "5328b74dddcee8d1913803ca8167868831a07463") +(package! swiper-helm :pin "93fb6db87bc6a5967898b5fd3286954cc72a0008") (when (featurep! +fuzzy) - (package! helm-flx :pin "6640fac5cb")) + (package! helm-flx :pin "6640fac5cb16bee73c95b8ed1248a4e5e113690e")) (when (featurep! +childframe) - (package! posframe :pin "e62e584268")) + (package! posframe :pin "093b29a53cbeda6d637ccc9ef4dfc47123e79b9e")) (when (featurep! :lang org) - (package! helm-org :pin "b7a18dfc17")) -(package! helm-descbinds :pin "b725159823") + (package! helm-org :pin "b7a18dfc17e8b933956d61d68c435eee03a96c24")) +(package! helm-descbinds :pin "b72515982396b6e336ad7beb6767e95a80fca192") diff --git a/modules/completion/ido/packages.el b/modules/completion/ido/packages.el index fc694fbfc..a7bed5bed 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 "17f5c9cb2a") -(package! ido-completing-read+ :pin "98d3a6e56b") -(package! ido-sort-mtime :pin "f638ff0c92") -(package! ido-vertical-mode :pin "16c4c1a112") -(package! crm-custom :pin "f1aaccf643") +(package! flx-ido :pin "17f5c9cb2af18aa6f52910ff4a5a63591261ced5") +(package! ido-completing-read+ :pin "98d3a6e56b1d3652da7b47f49f76d77f82ea80ba") +(package! ido-sort-mtime :pin "f638ff0c922af862f5211779f2311a27fde428eb") +(package! ido-vertical-mode :pin "16c4c1a112796ee0bcf401ea39d3e2643a89feaf") +(package! crm-custom :pin "f1aaccf64306a5f99d9bf7ba815d7ea41c15518d") diff --git a/modules/completion/ivy/packages.el b/modules/completion/ivy/packages.el index 3f1b3ad4a..f7f6d57ab 100644 --- a/modules/completion/ivy/packages.el +++ b/modules/completion/ivy/packages.el @@ -1,23 +1,23 @@ ;; -*- no-byte-compile: t; -*- ;;; completion/ivy/packages.el -(package! swiper :pin "64f05f4735") +(package! swiper :pin "9e0803cdb5b47e4e1844e8281516b46589ef26c7") (package! ivy) (package! ivy-hydra) (package! counsel) -(package! amx :pin "e512e74e83") -(package! counsel-projectile :pin "b556ed8995") -(package! ivy-rich :pin "596874d146") -(package! wgrep :pin "5977b8e000") +(package! amx :pin "7fb7b874291e0cdeb1f0acb18564a686ec86788d") +(package! counsel-projectile :pin "b556ed8995f375e57496f3482aef4b0def565de8") +(package! ivy-rich :pin "3f818b201769bc13cc75aa73645217e374136aca") +(package! wgrep :pin "5977b8e00051c9003ca96e9d35133e0dea68db2c") (if (featurep! +prescient) - (package! ivy-prescient :pin "53307731f3") + (package! ivy-prescient :pin "0f4a89bdec61395138d968a38d375e63ccfbed63") (when (featurep! +fuzzy) - (package! flx :pin "17f5c9cb2a"))) + (package! flx :pin "17f5c9cb2af18aa6f52910ff4a5a63591261ced5"))) (when (featurep! +childframe) - (package! ivy-posframe :pin "ae9bafe94f")) + (package! ivy-posframe :pin "ae9bafe94fe6b77b6fe45766ae6172646f6a5d50")) (when (featurep! +icons) - (package! all-the-icons-ivy :pin "a70cbfa1ef")) + (package! all-the-icons-ivy :pin "a70cbfa1effe36efc946a823a580cec686d5e88d")) From 9b1b8e2774b13d354ad35dd91503cd9c4e3d83f6 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 30 Apr 2020 01:27:21 -0400 Subject: [PATCH 039/130] Bump :term akermu/emacs-libvterm@aa512b8 -> akermu/emacs-libvterm@e63bd65 We're also transitioning from abbreviated SHA1 hashes to full ones. See 45cdfb125 for why. --- modules/term/eshell/packages.el | 12 ++++++------ modules/term/term/packages.el | 2 +- modules/term/vterm/packages.el | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/modules/term/eshell/packages.el b/modules/term/eshell/packages.el index 82a18ed14..3744666cb 100644 --- a/modules/term/eshell/packages.el +++ b/modules/term/eshell/packages.el @@ -1,11 +1,11 @@ ;; -*- no-byte-compile: t; -*- ;;; term/eshell/packages.el -(package! eshell-up :pin "9c100bae5c") -(package! eshell-z :pin "337cb241e1") -(package! shrink-path :pin "c14882c859") -(package! esh-help :pin "417673ed18") +(package! eshell-up :pin "9c100bae5c3020e8d9307e4332d3b64e7dc28519") +(package! eshell-z :pin "337cb241e17bd472bd3677ff166a0800f684213c") +(package! shrink-path :pin "c14882c8599aec79a6e8ef2d06454254bb3e1e41") +(package! esh-help :pin "417673ed18a983930a66a6692dbfb288a995cb80") (when (featurep! :completion company) - (package! fish-completion :pin "1038488181") - (package! bash-completion :pin "96ce14af96")) + (package! fish-completion :pin "10384881817b5ae38cf6197a077a663420090d2c") + (package! bash-completion :pin "96ce14af9674f3e605bacca87abc0c23b8f13cd5")) diff --git a/modules/term/term/packages.el b/modules/term/term/packages.el index f98aec986..b55cfc41c 100644 --- a/modules/term/term/packages.el +++ b/modules/term/term/packages.el @@ -2,4 +2,4 @@ ;;; term/term/packages.el (package! term :built-in t) -(package! multi-term :pin "7307ddd456") +(package! multi-term :pin "7307ddd456db44045206253e5a905d3d8c143d5c") diff --git a/modules/term/vterm/packages.el b/modules/term/vterm/packages.el index de92a1673..e048a3b01 100644 --- a/modules/term/vterm/packages.el +++ b/modules/term/vterm/packages.el @@ -3,4 +3,4 @@ (package! vterm :built-in 'prefer - :pin "aa512b8351") + :pin "e63bd65eece7c5de3a534b7e2fdbe58256ec2da0") From 8ab8f40c89a8bfb565db7df6d49c6d2803d9120c Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 30 Apr 2020 01:28:59 -0400 Subject: [PATCH 040/130] Bump :input skk-dev/ddskk@f9a2333 -> skk-dev/ddskk@11d91b4 tumashu/pyim@7717072 -> tumashu/pyim@b934273 We're also transitioning from abbreviated SHA1 hashes to full ones. See 45cdfb125 for why. --- modules/input/chinese/packages.el | 8 ++++---- modules/input/japanese/packages.el | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/modules/input/chinese/packages.el b/modules/input/chinese/packages.el index 138c376c4..68bda1d2a 100644 --- a/modules/input/chinese/packages.el +++ b/modules/input/chinese/packages.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; -*- ;;; input/chinese/packages.el -(package! pyim :pin "77170724fa") -(package! fcitx :pin "12dc2638dd") -(package! ace-pinyin :pin "8b2e9335b0") -(package! pangu-spacing :pin "f92898949b") +(package! pyim :pin "b934273bb33d6be6aea6e20e68930bc5aaf4a48a") +(package! fcitx :pin "12dc2638ddd15c8f6cfaecb20e1f428ab2bb5624") +(package! ace-pinyin :pin "8b2e9335b02486730ea4ceee790130cc5328f9ea") +(package! pangu-spacing :pin "f92898949ba3bf991fd229416f3bbb54e9c6c223") diff --git a/modules/input/japanese/packages.el b/modules/input/japanese/packages.el index 5e86fd79a..126633dcf 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 "f42832c8ac") -(package! avy-migemo :pin "922a6dd82c") -(package! ddskk :pin "f9a2333ec3") -(package! pangu-spacing :pin "f92898949b") +(package! migemo :pin "f42832c8ac462ecbec9a16eb781194f876fba64a") +(package! avy-migemo :pin "922a6dd82c0bfa316b0fbb56a9d4dd4ffa5707e7") +(package! ddskk :pin "11d91b4cce988e15d7c5fc4345535c9d7a92d53b") +(package! pangu-spacing :pin "f92898949ba3bf991fd229416f3bbb54e9c6c223") From 1f52ae85669a6b83e6878107576ec05fe8eab231 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 30 Apr 2020 01:30:19 -0400 Subject: [PATCH 041/130] Bump :config abo-abo/avy@3bf8314 -> abo-abo/avy@509471b noctuid/link-hint.el@0d9cabc -> noctuid/link-hint.el@7440704 We're also transitioning from abbreviated SHA1 hashes to full ones. See 45cdfb125 for why. --- modules/config/default/packages.el | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/config/default/packages.el b/modules/config/default/packages.el index 8178f8758..a4eb26ffe 100644 --- a/modules/config/default/packages.el +++ b/modules/config/default/packages.el @@ -1,9 +1,9 @@ ;; -*- no-byte-compile: t; -*- ;;; config/default/packages.el -(package! avy :pin "3bf83140fa") -(package! drag-stuff :pin "6d06d846cd") -(package! link-hint :pin "0d9cabcdb7") +(package! avy :pin "509471bad0e8094b8639729ec39ca141fae7d4bd") +(package! drag-stuff :pin "6d06d846cd37c052d79acd0f372c13006aa7e7c8") +(package! link-hint :pin "7440704cacb5c0fab35fff8ec59d30fbea17f44a") (unless (featurep! :editor evil) - (package! expand-region :pin "ea6b4cbb99")) + (package! expand-region :pin "ea6b4cbb9985ddae532bd2faf9bb00570c9f2781")) From 94a2ff97d73acb3e505606760bb3a3b803331530 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 30 Apr 2020 01:31:44 -0400 Subject: [PATCH 042/130] Bump :email https://git.notmuchmail.org/git/notmuch@aba7fb3 -> https://git.notmuchmail.org/git/notmuch@ad9c2e9 org-mime/org-mime@b189976 -> org-mime/org-mime@9f84446 wanderlust/flim@e4bd54f -> wanderlust/flim@f303f2f wanderlust/semi@16228dc -> wanderlust/semi@57a948c wanderlust/wanderlust@7a919e4 -> wanderlust/wanderlust@7af0d58 We're also transitioning from abbreviated SHA1 hashes to full ones. See 45cdfb125 for why. --- modules/email/notmuch/packages.el | 8 ++++---- modules/email/wanderlust/packages.el | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/modules/email/notmuch/packages.el b/modules/email/notmuch/packages.el index d1f108bf7..63a955ce5 100644 --- a/modules/email/notmuch/packages.el +++ b/modules/email/notmuch/packages.el @@ -1,9 +1,9 @@ ;; -*- no-byte-compile: t; -*- ;;; email/notmuch/packages.el -(package! notmuch :pin "aba7fb375b") -(package! org-mime :pin "b189976217") +(package! notmuch :pin "ad9c2e91a012920bebfe70bc472d44678abc3259") +(package! org-mime :pin "9f8444603806e6baa94b2b67a23aab0ea52fef97") (when (featurep! :completion ivy) - (package! counsel-notmuch :pin "a4a1562935")) + (package! counsel-notmuch :pin "a4a1562935e4180c42524c51609d1283e9be0688")) (when (featurep! :completion helm) - (package! helm-notmuch :pin "97a01497e0")) + (package! helm-notmuch :pin "97a01497e079a7b6505987e9feba6b603bbec288")) diff --git a/modules/email/wanderlust/packages.el b/modules/email/wanderlust/packages.el index 04963b55b..1188d3005 100644 --- a/modules/email/wanderlust/packages.el +++ b/modules/email/wanderlust/packages.el @@ -4,8 +4,8 @@ ;; HACK These are wanderlust's dependencies (wanderlust depends on semi, semi ;; depends on flim, flim on apel), but they all have non-standard default ;; branches which straight cannot detect without our help. -(package! apel :recipe (:branch "apel-wl") :pin "d146ddbf88") -(package! flim :recipe (:branch "flim-1_14-wl") :pin "e4bd54fd7d") -(package! semi :recipe (:branch "semi-1_14-wl") :pin "16228dc2d1") +(package! apel :recipe (:branch "apel-wl") :pin "d146ddbf8818e81d3577d5eee7825d377bec0c73") +(package! flim :recipe (:branch "flim-1_14-wl") :pin "f303f2f6c124bc8635add96d3326a2209749437b") +(package! semi :recipe (:branch "semi-1_14-wl") :pin "57a948c5f07e57e78ab3c0e6fd76ffcd591bb4ac") -(package! wanderlust :pin "7a919e422a") +(package! wanderlust :pin "7af0d582cd48a37469e0606ea35887740d78c8b5") From 8b52e8ca0f0873ba8b4e569d7fd7d2e80a4a45ab Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 30 Apr 2020 01:35:20 -0400 Subject: [PATCH 043/130] Refactor company defaults In the interest of performance and reducing things we have to maintain. --- modules/completion/company/config.el | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/modules/completion/company/config.el b/modules/completion/company/config.el index 62a1a4f52..06b2459a6 100644 --- a/modules/completion/company/config.el +++ b/modules/completion/company/config.el @@ -11,9 +11,26 @@ company-require-match 'never company-global-modes '(not erc-mode message-mode help-mode gud-mode eshell-mode) - company-backends '(company-capf) company-frontends '(company-pseudo-tooltip-frontend - company-echo-metadata-frontend)) + company-echo-metadata-frontend) + + ;; Buffer-local backends will be computed when loading a major mode, so + ;; only specify a global default here. + company-backends '(company-capf) + + ;; Company overrides `company-active-map' based on + ;; `company-auto-complete-chars'; no magic please! + company-auto-complete-chars nil + + ;; Only search the current buffer for `company-dabbrev' (a backend that + ;; suggests text your open buffers). This prevents Company from causing + ;; lag once you have a lot of buffers open. + company-dabbrev-other-buffers nil + ;; Make `company-dabbrev' fully case-sensitive, to improve UX with + ;; domain-specific words with particular casing. + company-dabbrev-ignore-case nil + company-dabbrev-downcase nil) + :config (when (featurep! :editor evil) (add-hook 'company-mode-hook #'evil-normalize-keymaps) @@ -106,6 +123,8 @@ (ElispFeature . ,(all-the-icons-material "stars" :face 'all-the-icons-orange)) (ElispFace . ,(all-the-icons-material "format_paint" :face 'all-the-icons-pink))))) + (delq! 'company-echo-metadata-frontend company-frontends) + (defun +company-box-icons--elisp-fn (candidate) (when (derived-mode-p 'emacs-lisp-mode) (let ((sym (intern candidate))) From 4ac16743b92095b43737834a8969d9e5d9d89b94 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 30 Apr 2020 01:38:52 -0400 Subject: [PATCH 044/130] Use long SHA1 for rainbow-delimiters --- core/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/packages.el b/core/packages.el index f74bc0f1b..acbab0d28 100644 --- a/core/packages.el +++ b/core/packages.el @@ -9,7 +9,7 @@ (package! all-the-icons :pin "0b74fc361817e885580c3f3408079f949f5830e1") (package! hide-mode-line :pin "88888825b5b27b300683e662fa3be88d954b1cea") (package! highlight-numbers :pin "8b4744c7f46c72b1d3d599d4fb75ef8183dee307") -(package! rainbow-delimiters :pin "5125f4e476") +(package! rainbow-delimiters :pin "5125f4e47604ad36c3eb4706310fcafac729ca8c") (package! restart-emacs :pin "9aa90d3df9e08bc420e1c9845ee3ff568e911bd9") ;; core-editor.el From 64c2efa2fcf9be9cba940328373091013a36252e Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 30 Apr 2020 02:02:21 -0400 Subject: [PATCH 045/130] Bump :lang org Kungsgeten/org-brain@7ffbf68 -> Kungsgeten/org-brain@ae7fe0f abo-abo/org-download@46417e2 -> abo-abo/org-download@d542a30 anler/centered-window-mode@24f7c5b -> anler/centered-window-mode@f508599 jethrokuan/org-roam@963692f -> jethrokuan/org-roam@65d99e9 We're also transitioning from abbreviated SHA1 hashes to full ones. See 45cdfb125 for why. --- modules/lang/org/packages.el | 72 ++++++++++++++++++------------------ 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/modules/lang/org/packages.el b/modules/lang/org/packages.el index 4d3996a18..040d86dee 100644 --- a/modules/lang/org/packages.el +++ b/modules/lang/org/packages.el @@ -27,84 +27,84 @@ :recipe (:host github :repo "emacs-straight/org-mode" :files ("*.el" "lisp/*.el" "contrib/lisp/*.el")) - :pin "e68ae40bdb") + :pin "90cf5009cbb7379d6650f44494376b11c21a31f5") ;; ...And prevent other packages from pulling org; org-plus-contrib satisfies ;; the dependency already: https://github.com/raxod502/straight.el/issues/352 (package! org :recipe (:local-repo nil)) (package! avy) -(package! htmlize :pin "86f22f211e") -(package! org-superstar :pin "09ddc28383") +(package! htmlize :pin "86f22f211e9230857197c42a9823d3f05381deed") +(package! org-superstar :pin "09ddc28383d363a4b353348a433e24535b4af0e3") (package! org-yt :recipe (:host github :repo "TobiasZawada/org-yt") - :pin "40cc1ac76d") -(package! ox-clip :pin "bd36f9fb4e") -(package! toc-org :pin "5deaec41ed") -(package! org-cliplink :pin "82402cae7e") + :pin "40cc1ac76d741055cbefa13860d9f070a7ade001") +(package! ox-clip :pin "bd36f9fb4e3b1b9e8686b993b02ccd780ff75a96") +(package! toc-org :pin "5deaec41ed0e5c51715737d7f74c5ae1b3c00387") +(package! org-cliplink :pin "82402cae7e118d67de7328417fd018a18f95fac2") (when (featurep! :editor evil +everywhere) (package! evil-org :recipe (:host github :repo "hlissner/evil-org-mode") - :pin "9cf661af8f")) + :pin "9cf661af8ff8ea768ef1e55045be14d0468a90f5")) (when (featurep! :tools pdf) - (package! org-pdftools :pin "8cc15bb801")) + (package! org-pdftools :pin "8cc15bb8014ed1f047eecc0abd8bf447f86c0505")) (when (featurep! :tools magit) - (package! orgit :pin "e147f05577")) + (package! orgit :pin "e147f055772cc934fe1f1d8619059badeb647c93")) (when (featurep! +brain) - (package! org-brain :pin "7ffbf6816a")) + (package! org-brain :pin "ae7fe0f628bd093526786ece6917f7a4310e5e4d")) (when (featurep! +dragndrop) - (package! org-download :pin "46417e2bd3")) + (package! org-download :pin "d542a3072f75581f2223d7419df0f66991f19e6f")) (when (featurep! +gnuplot) - (package! gnuplot :pin "f0001c3001") - (package! gnuplot-mode :pin "601f639298")) + (package! gnuplot :pin "f0001c30010b2899e36d7d89046322467e923088") + (package! gnuplot-mode :pin "601f6392986f0cba332c87678d31ae0d0a496ce7")) (when (featurep! +ipython) ; DEPRECATED - (package! ob-ipython :pin "7147455230")) + (package! ob-ipython :pin "7147455230841744fb5b95dcbe03320313a77124")) (when (featurep! +jupyter) - (package! jupyter :pin "785edbbff6")) + (package! jupyter :pin "785edbbff65abb0c929dc2fbd8b8305c77fd529e")) (when (featurep! +journal) - (package! org-journal :pin "8bf06b28d6")) + (package! org-journal :pin "8bf06b28d6f14f52d4968123e2b4b91930c8f947")) (when (featurep! +noter) - (package! org-noter :pin "9ead81d42d")) + (package! org-noter :pin "9ead81d42dd4dd5074782d239b2efddf9b8b7b3d")) (when (featurep! +pomodoro) - (package! org-pomodoro :pin "aa07c11318")) + (package! org-pomodoro :pin "aa07c11318f91219336197e62c47bc7a3d090479")) (when (featurep! +present) (package! centered-window :recipe (:host github :repo "anler/centered-window-mode") - :pin "24f7c5be9d") - (package! org-tree-slide :pin "7bf09a02bd") - (package! org-re-reveal :pin "61549f4c00")) + :pin "f50859941ab5c7cbeaee410f2d38716252b552ac") + (package! org-tree-slide :pin "7bf09a02bd2d8f1ccfcb5209bfb18fbe02d1f44e") + (package! org-re-reveal :pin "61549f4c00284a30e34caa3d76001b233ea5d2ad")) (when (featurep! +roam) - (package! org-roam :pin "963692f353") + (package! org-roam :pin "65d99e998cad4beef77b1b5d9b6235d90395f374") (when (featurep! :completion company) - (package! company-org-roam :pin "0913d86f16"))) + (package! company-org-roam :pin "0913d86f167164e18831206e611f44bb8e7297e3"))) ;;; Babel -(package! ob-async :pin "80a30b96a0") +(package! ob-async :pin "80a30b96a007d419ece12c976a81804ede340311") (when (featurep! :lang crystal) - (package! ob-crystal :pin "d84c1adee4")) + (package! ob-crystal :pin "d84c1adee4b269cdba06a97caedb8071561a09af")) (when (featurep! :lang go) - (package! ob-go :pin "2067ed55f4")) + (package! ob-go :pin "2067ed55f4c1d33a43cb3f6948609d240a8915f5")) (when (featurep! :lang hy) - (package! ob-hy :pin "a42ecaf440")) + (package! ob-hy :pin "a42ecaf440adc03e279afe43ee5ef6093ddd542a")) (when (featurep! :lang nim) - (package! ob-nim :pin "bf1642cb93")) + (package! ob-nim :pin "bf1642cb93f0a898804dc13fd9408d2964403bd2")) (when (featurep! :lang racket) (package! ob-racket :recipe (:host github :repo "DEADB17/ob-racket") - :pin "d8fd51bddb")) + :pin "d8fd51bddb019b0eb68755255f88fc800cfe03cb")) (when (featurep! :lang rest) - (package! ob-restclient :pin "f7449b2068")) + (package! ob-restclient :pin "f7449b2068498fe9d8ab9589e0a638148861533f")) (when (featurep! :lang rust) - (package! ob-rust :pin "6a82587598")) + (package! ob-rust :pin "6a82587598cd097e9642be916243c31f1231b24a")) (when (featurep! :lang scala) - (package! ob-ammonite :pin "39937dff39")) + (package! ob-ammonite :pin "39937dff395e70aff76a4224fa49cf2ec6c57cca")) ;;; Export (when (featurep! +pandoc) - (package! ox-pandoc :pin "aa37dc7e94")) + (package! ox-pandoc :pin "aa37dc7e94213d4ebedb85c384c1ba35007da18e")) (when (featurep! +hugo) (package! ox-hugo :recipe (:host github :repo "kaushalmodi/ox-hugo" :nonrecursive t) - :pin "5106b430a1")) + :pin "5106b430a139bb9e37beda177a082dfe36b407f5")) (when (featurep! :lang rst) - (package! ox-rst :pin "9158bfd180")) + (package! ox-rst :pin "9158bfd18096c559e0a225ae62ab683f1c98a547")) From 106f3324e8df697d1029d5192113b52441792060 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 30 Apr 2020 02:31:51 -0400 Subject: [PATCH 046/130] Fix over-aggressive pin truncation Would truncate the rest of the buffer in some cases. --- modules/lang/emacs-lisp/autoload.el | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/modules/lang/emacs-lisp/autoload.el b/modules/lang/emacs-lisp/autoload.el index 1aaaf8058..9192bf650 100644 --- a/modules/lang/emacs-lisp/autoload.el +++ b/modules/lang/emacs-lisp/autoload.el @@ -228,10 +228,11 @@ verbosity when editing a file in `doom-private-dir' or `doom-emacs-dir'." (goto-char (match-beginning 0)) (and (stringp (plist-get (sexp-at-point) :pin)) (search-forward ":pin" nil t) - (put-text-property (re-search-forward "\"[^\"]\\{10\\}" nil t) - (progn (re-search-forward "\"" nil t) - (match-beginning 0)) - 'display "..."))) + (let ((start (re-search-forward "\"[^\"]\\{10\\}" 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) ;;;###autoload From d4acd9721ef94ed180a07c7ca2b5a5a99330f942 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 30 Apr 2020 04:17:10 -0400 Subject: [PATCH 047/130] Bump :lang perl perl6/perl6-mode@88de065 -> Raku/raku-mode@44529c0 hinrik/flycheck-perl6@b804702 -> widefox/flycheck-raku@046f35a Replaces perl6 plugins with raku variants. Includes temporary fix for Raku/raku-mode#33 --- modules/lang/perl/config.el | 13 ++++++++++--- modules/lang/perl/packages.el | 6 ++++-- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/modules/lang/perl/config.el b/modules/lang/perl/config.el index 9301646b7..c2ecef283 100644 --- a/modules/lang/perl/config.el +++ b/modules/lang/perl/config.el @@ -2,9 +2,16 @@ ;; There's also `perl-mode' for perl < 6, which is already set up. -(use-package! perl6-detect) +;; REVIEW Until Raku/raku-mode#33 is merged. +(use-package! raku-mode + :interpreter "raku" + :mode "\\.nqp\\'" + :mode "\\.raku\\(mod\\|test\\)?" + :init (defalias 'perl6-mode #'raku-mode) + :config + (set-repl-handler! 'raku-mode #'run-raku)) -(use-package! flycheck-perl6 +(use-package! flycheck-raku :when (featurep! :checkers syntax) - :after perl6-mode) + :after raku-mode) diff --git a/modules/lang/perl/packages.el b/modules/lang/perl/packages.el index 7c7adfd1d..39c69311c 100644 --- a/modules/lang/perl/packages.el +++ b/modules/lang/perl/packages.el @@ -1,7 +1,9 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/perl/packages.el -(package! perl6-mode :pin "88de065795") +(package! raku-mode :pin "44529c097f98723067f852c6496d91257978c1e2") (when (featurep! :checkers syntax) - (package! flycheck-perl6 :pin "b804702305")) + (package! flycheck-raku + :recipe (:host github :repo "widefox/flycheck-raku") + :pin "046f35abe0c61967157e151126e4dd7ec5d1c004")) From 810baea2eae5340f4eab56a1a46e13e1d8eeebe7 Mon Sep 17 00:00:00 2001 From: Gerry Agbobada Date: Thu, 9 Jan 2020 10:24:41 +0100 Subject: [PATCH 048/130] Use composite to call harfbuzz for ligatures This is based on code from microsoft -> cascadia-code repository (issue #153), which sets a proper composition-function-table according to specific ligature regexp. Using variables also allows to disable the ligatures for org-mode, where org-bullets might be incompatible It has a fallback to old pretty-code behaviour. --- modules/ui/pretty-code/config.el | 85 ++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) diff --git a/modules/ui/pretty-code/config.el b/modules/ui/pretty-code/config.el index 6622c8fef..9c9d46300 100644 --- a/modules/ui/pretty-code/config.el +++ b/modules/ui/pretty-code/config.el @@ -98,10 +98,95 @@ Otherwise it builds `prettify-code-symbols-alist' according to (add-hook 'after-change-major-mode-hook #'+pretty-code-init-pretty-symbols-h) +(defvar +prog-ligatures-alist + '((?! . ".\\(?:\\(==\\|[!=]\\)[!=]?\\)") + (?# . ".\\(?:\\(###?\\|_(\\|[(:=?[_{]\\)[#(:=?[_{]?\\)") + (?$ . ".\\(?:\\(>\\)>?\\)") + (?% . ".\\(?:\\(%\\)%?\\)") + (?& . ".\\(?:\\(&\\)&?\\)") + (?* . ".\\(?:\\(\\*\\*\\|[*>]\\)[*>]?\\)") + ;; (?* . ".\\(?:\\(\\*\\*\\|[*/>]\\).?\\)") + (?+ . ".\\(?:\\([>]\\)>?\\)") + ;; (?+ . ".\\(?:\\(\\+\\+\\|[+>]\\).?\\)") + (?- . ".\\(?:\\(-[->]\\|<<\\|>>\\|[-<>|~]\\)[-<>|~]?\\)") + ;; (?. . ".\\(?:\\(\\.[.<]\\|[-.=]\\)[-.<=]?\\)") + (?. . ".\\(?:\\(\\.<\\|[-=]\\)[-<=]?\\)") + (?/ . ".\\(?:\\(//\\|==\\|[=>]\\)[/=>]?\\)") + ;; (?/ . ".\\(?:\\(//\\|==\\|[*/=>]\\).?\\)") + (?0 . ".\\(?:\\(x[a-fA-F0-9]\\).?\\)") + (?: . ".\\(?:\\(::\\|[:<=>]\\)[:<=>]?\\)") + (59 . ".\\(?:\\(;\\);?\\)") ;; 59 is ; + (?< . ".\\(?:\\(!--\\|\\$>\\|\\*>\\|\\+>\\|-[-<>|]\\|/>\\|<[-<=]\\|=[<>|]\\|==>?\\||>\\||||?\\|~[>~]\\|[$*+/:<=>|~-]\\)[$*+/:<=>|~-]?\\)") + (?= . ".\\(?:\\(!=\\|/=\\|:=\\|<<\\|=[=>]\\|>>\\|[=>]\\)[=<>]?\\)") + (?> . ".\\(?:\\(->\\|=>\\|>[-=>]\\|[-:=>]\\)[-:=>]?\\)") + (?? . ".\\(?:\\([.:=?]\\)[.:=?]?\\)") + (91 . ".\\(?:\\(|\\)[]|]?\\)") ;; 91 is [ + ;; (?\ . ".\\(?:\\([\\n]\\)[\\]?\\)") + (?^ . ".\\(?:\\(=\\)=?\\)") + (?_ . ".\\(?:\\(|_\\|[_]\\)_?\\)") + (?w . ".\\(?:\\(ww\\)w?\\)") + (?{ . ".\\(?:\\(|\\)[|}]?\\)") + (?| . ".\\(?:\\(->\\|=>\\||[-=>]\\||||*>\\|[]=>|}-]\\).?\\)") + (?~ . ".\\(?:\\(~>\\|[-=>@~]\\)[-=>@~]?\\)")) + "An alist containing all the ligatures used when in a `+prog-ligatures-modes' mode. + +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 pretty-code module, the regex should match a string +starting with the character contained in car." + ) + +;; Defaults to not org-mode because org-bullets might be incompatible +;; with the ?*-based replacements in the default value of +prg-ligatures-alist +(defvar +prog-ligatures-modes '(not org-mode) + "List of major modes in which ligatures should be enabled. + +If t, enable it everywhere. + +If the first element is 'not, enable it in any mode besides what is listed. + +If nil, fallback to the prettify-symbols based replacement (add +font features to pretty-code)." + ) + +(defun +pretty-code-init-ligatures-h () + "Enable ligatures. + +If in fundamental-mode, or a mode derived from special, comint, eshell or term +modes, this function does nothing. + +Otherwise it sets the buffer-local composition table to a composition table enhanced with +`+prog-ligatures-alist' ligatures regexes." + (unless (or (eq major-mode 'fundamental-mode) + (eq (get major-mode 'mode-class) 'special) + (derived-mode-p 'comint-mode 'eshell-mode 'term-mode)) + (when (or (eq +prog-ligatures-modes t) + (if (eq (car +prog-ligatures-modes) 'not) + (not (memq major-mode (cdr +prog-ligatures-modes))) + (memq major-mode +prog-ligatures-modes))) + (setq-local composition-function-table composition-ligature-table)))) + +(add-hook 'after-change-major-mode-hook #'+pretty-code-init-ligatures-h) + +(use-package! composite + :when (and (version<= "27.0" emacs-version) (string-match-p "HARFBUZZ" system-configuration-features)) + :init + (defvar composition-ligature-table (make-char-table nil)) + :config + (dolist (char-regexp +prog-ligatures-alist) + (set-char-table-range composition-ligature-table (car char-regexp) + `([,(cdr char-regexp) 0 font-shape-gstring]))) + (set-char-table-parent composition-ligature-table composition-function-table)) + ;; The emacs-mac build of Emacs appear to have built-in support for ligatures, ;; so use that instead if this module is enabled. (cond ((and IS-MAC (fboundp 'mac-auto-operator-composition-mode)) (mac-auto-operator-composition-mode)) + ;; Harfbuzz builds do not need font-specific ligature support + ((and (version<= "27.0" emacs-version) + (string-match-p "HARFBUZZ" system-configuration-features) + (not (null +prog-ligatures-modes))) + nil) ;; Font-specific ligature support ((featurep! +fira) (load! "+fira")) From 03748d48cd54a69dff5a57eba367d1043050abbf Mon Sep 17 00:00:00 2001 From: Gerry Agbobada Date: Tue, 14 Apr 2020 20:09:33 +0200 Subject: [PATCH 049/130] Add the explicit character at the beginning of the regexp --- modules/ui/pretty-code/config.el | 58 ++++++++++++++++---------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/modules/ui/pretty-code/config.el b/modules/ui/pretty-code/config.el index 9c9d46300..8dd1463cb 100644 --- a/modules/ui/pretty-code/config.el +++ b/modules/ui/pretty-code/config.el @@ -99,35 +99,35 @@ Otherwise it builds `prettify-code-symbols-alist' according to (add-hook 'after-change-major-mode-hook #'+pretty-code-init-pretty-symbols-h) (defvar +prog-ligatures-alist - '((?! . ".\\(?:\\(==\\|[!=]\\)[!=]?\\)") - (?# . ".\\(?:\\(###?\\|_(\\|[(:=?[_{]\\)[#(:=?[_{]?\\)") - (?$ . ".\\(?:\\(>\\)>?\\)") - (?% . ".\\(?:\\(%\\)%?\\)") - (?& . ".\\(?:\\(&\\)&?\\)") - (?* . ".\\(?:\\(\\*\\*\\|[*>]\\)[*>]?\\)") - ;; (?* . ".\\(?:\\(\\*\\*\\|[*/>]\\).?\\)") - (?+ . ".\\(?:\\([>]\\)>?\\)") - ;; (?+ . ".\\(?:\\(\\+\\+\\|[+>]\\).?\\)") - (?- . ".\\(?:\\(-[->]\\|<<\\|>>\\|[-<>|~]\\)[-<>|~]?\\)") - ;; (?. . ".\\(?:\\(\\.[.<]\\|[-.=]\\)[-.<=]?\\)") - (?. . ".\\(?:\\(\\.<\\|[-=]\\)[-<=]?\\)") - (?/ . ".\\(?:\\(//\\|==\\|[=>]\\)[/=>]?\\)") - ;; (?/ . ".\\(?:\\(//\\|==\\|[*/=>]\\).?\\)") - (?0 . ".\\(?:\\(x[a-fA-F0-9]\\).?\\)") - (?: . ".\\(?:\\(::\\|[:<=>]\\)[:<=>]?\\)") - (59 . ".\\(?:\\(;\\);?\\)") ;; 59 is ; - (?< . ".\\(?:\\(!--\\|\\$>\\|\\*>\\|\\+>\\|-[-<>|]\\|/>\\|<[-<=]\\|=[<>|]\\|==>?\\||>\\||||?\\|~[>~]\\|[$*+/:<=>|~-]\\)[$*+/:<=>|~-]?\\)") - (?= . ".\\(?:\\(!=\\|/=\\|:=\\|<<\\|=[=>]\\|>>\\|[=>]\\)[=<>]?\\)") - (?> . ".\\(?:\\(->\\|=>\\|>[-=>]\\|[-:=>]\\)[-:=>]?\\)") - (?? . ".\\(?:\\([.:=?]\\)[.:=?]?\\)") - (91 . ".\\(?:\\(|\\)[]|]?\\)") ;; 91 is [ - ;; (?\ . ".\\(?:\\([\\n]\\)[\\]?\\)") - (?^ . ".\\(?:\\(=\\)=?\\)") - (?_ . ".\\(?:\\(|_\\|[_]\\)_?\\)") - (?w . ".\\(?:\\(ww\\)w?\\)") - (?{ . ".\\(?:\\(|\\)[|}]?\\)") - (?| . ".\\(?:\\(->\\|=>\\||[-=>]\\||||*>\\|[]=>|}-]\\).?\\)") - (?~ . ".\\(?:\\(~>\\|[-=>@~]\\)[-=>@~]?\\)")) + '((?! . "!\\(?:\\(==\\|[!=]\\)[!=]?\\)") + (?# . "#\\(?:\\(###?\\|_(\\|[(:=?[_{]\\)[#(:=?[_{]?\\)") + (?$ . "$\\(?:\\(>\\)>?\\)") + (?% . "%\\(?:\\(%\\)%?\\)") + (?& . "&\\(?:\\(&\\)&?\\)") + (?* . "*\\(?:\\(\\*\\*\\|[*>]\\)[*>]?\\)") + ;; (?* . "*\\(?:\\(\\*\\*\\|[*/>]\\).?\\)") + (?+ . "+\\(?:\\([>]\\)>?\\)") + ;; (?+ . "+\\(?:\\(\\+\\+\\|[+>]\\).?\\)") + (?- . "-\\(?:\\(-[->]\\|<<\\|>>\\|[-<>|~]\\)[-<>|~]?\\)") + ;; (?. . "\\.\\(?:\\(\\.[.<]\\|[-.=]\\)[-.<=]?\\)") + (?. . "\\.\\(?:\\(\\.<\\|[-=]\\)[-<=]?\\)") + (?/ . "/\\(?:\\(//\\|==\\|[=>]\\)[/=>]?\\)") + ;; (?/ . "/\\(?:\\(//\\|==\\|[*/=>]\\).?\\)") + (?0 . "0\\(?:\\(x[a-fA-F0-9]\\).?\\)") + (?: . ":\\(?:\\(::\\|[:<=>]\\)[:<=>]?\\)") + (59 . ";\\(?:\\(;\\);?\\)") ;; 59 is ; + (?< . "<\\(?:\\(!--\\|\\$>\\|\\*>\\|\\+>\\|-[-<>|]\\|/>\\|<[-<=]\\|=[<>|]\\|==>?\\||>\\||||?\\|~[>~]\\|[$*+/:<=>|~-]\\)[$*+/:<=>|~-]?\\)") + (?= . "=\\(?:\\(!=\\|/=\\|:=\\|<<\\|=[=>]\\|>>\\|[=>]\\)[=<>]?\\)") + (?> . ">\\(?:\\(->\\|=>\\|>[-=>]\\|[-:=>]\\)[-:=>]?\\)") + (?? . "?\\(?:\\([.:=?]\\)[.:=?]?\\)") + (91 . "\\[\\(?:\\(|\\)[]|]?\\)") ;; 91 is [ + ;; (?\ . "\\\\\\(?:\\([\\n]\\)[\\]?\\)") + (?^ . "^\\(?:\\(=\\)=?\\)") + (?_ . "_\\(?:\\(|_\\|[_]\\)_?\\)") + (?w . "w\\(?:\\(ww\\)w?\\)") + (?{ . "{\\(?:\\(|\\)[|}]?\\)") + (?| . "|\\(?:\\(->\\|=>\\||[-=>]\\||||*>\\|[]=>|}-]\\).?\\)") + (?~ . "~\\(?:\\(~>\\|[-=>@~]\\)[-=>@~]?\\)")) "An alist containing all the ligatures used when in a `+prog-ligatures-modes' mode. The car is the character ASCII number, cdr is a regex which will call `font-shape-gstring' From 9a79069ab5f6d4c2e5781c48ccbbd0f69bb56b0a Mon Sep 17 00:00:00 2001 From: Gerry Agbobada Date: Sat, 25 Apr 2020 16:58:27 +0200 Subject: [PATCH 050/130] Version-gate the feature to emacs 28 --- modules/ui/pretty-code/config.el | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/ui/pretty-code/config.el b/modules/ui/pretty-code/config.el index 8dd1463cb..cb879d602 100644 --- a/modules/ui/pretty-code/config.el +++ b/modules/ui/pretty-code/config.el @@ -169,7 +169,8 @@ Otherwise it sets the buffer-local composition table to a composition table enha (add-hook 'after-change-major-mode-hook #'+pretty-code-init-ligatures-h) (use-package! composite - :when (and (version<= "27.0" emacs-version) (string-match-p "HARFBUZZ" system-configuration-features)) + ;; Starting from emacs "28" because this code breaks without fe903c5 + :when (and (version<= "28.0" emacs-version) (string-match-p "HARFBUZZ" system-configuration-features)) :init (defvar composition-ligature-table (make-char-table nil)) :config @@ -183,7 +184,8 @@ Otherwise it sets the buffer-local composition table to a composition table enha (cond ((and IS-MAC (fboundp 'mac-auto-operator-composition-mode)) (mac-auto-operator-composition-mode)) ;; Harfbuzz builds do not need font-specific ligature support - ((and (version<= "27.0" emacs-version) + ;; if they brought in the fe903c5 commit + ((and (version<= "28.0" emacs-version) (string-match-p "HARFBUZZ" system-configuration-features) (not (null +prog-ligatures-modes))) nil) From 8a2f8bf2603a4deab06af2921cc583a8f6bb44a8 Mon Sep 17 00:00:00 2001 From: Gerry Agbobada Date: Sat, 25 Apr 2020 17:54:51 +0200 Subject: [PATCH 051/130] Lint code --- modules/ui/pretty-code/config.el | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/modules/ui/pretty-code/config.el b/modules/ui/pretty-code/config.el index cb879d602..cf02e7ed1 100644 --- a/modules/ui/pretty-code/config.el +++ b/modules/ui/pretty-code/config.el @@ -98,6 +98,7 @@ Otherwise it builds `prettify-code-symbols-alist' according to (add-hook 'after-change-major-mode-hook #'+pretty-code-init-pretty-symbols-h) +;;; Automatic font-specific ligatures (defvar +prog-ligatures-alist '((?! . "!\\(?:\\(==\\|[!=]\\)[!=]?\\)") (?# . "#\\(?:\\(###?\\|_(\\|[(:=?[_{]\\)[#(:=?[_{]?\\)") @@ -134,20 +135,19 @@ The car is the character ASCII number, cdr is a regex which will call `font-shap when matched. Because of the underlying code in :ui pretty-code module, the regex should match a string -starting with the character contained in car." - ) +starting with the character contained in car. + +This variable is used only if you built Emacs with Harfbuzz on a version >= 28") -;; Defaults to not org-mode because org-bullets might be incompatible -;; with the ?*-based replacements in the default value of +prg-ligatures-alist (defvar +prog-ligatures-modes '(not org-mode) "List of major modes in which ligatures should be enabled. -If t, enable it everywhere. +If t, enable it everywhere. Fundamental mode, and modes derived from special-mode, +comint-mode, eshell-mode and term-mode are *still* excluded. If the first element is 'not, enable it in any mode besides what is listed. -If nil, fallback to the prettify-symbols based replacement (add +font features to pretty-code)." - ) +If nil, fallback to the prettify-symbols based replacement (add +font features to pretty-code).") (defun +pretty-code-init-ligatures-h () "Enable ligatures. @@ -184,7 +184,7 @@ Otherwise it sets the buffer-local composition table to a composition table enha (cond ((and IS-MAC (fboundp 'mac-auto-operator-composition-mode)) (mac-auto-operator-composition-mode)) ;; Harfbuzz builds do not need font-specific ligature support - ;; if they brought in the fe903c5 commit + ;; if they are above emacs-27 ((and (version<= "28.0" emacs-version) (string-match-p "HARFBUZZ" system-configuration-features) (not (null +prog-ligatures-modes))) From a897492b99d45b75c8e1711c286ef403e59ed4f5 Mon Sep 17 00:00:00 2001 From: Gerry Agbobada Date: Sun, 26 Apr 2020 12:17:43 +0200 Subject: [PATCH 052/130] Use regexp-opt instead of manual regexes This helps maintainability tremendously. Thanks wasamasa for the snippet --- modules/ui/pretty-code/config.el | 55 +++++++++++++++----------------- 1 file changed, 26 insertions(+), 29 deletions(-) diff --git a/modules/ui/pretty-code/config.el b/modules/ui/pretty-code/config.el index cf02e7ed1..00a68e211 100644 --- a/modules/ui/pretty-code/config.el +++ b/modules/ui/pretty-code/config.el @@ -100,35 +100,32 @@ Otherwise it builds `prettify-code-symbols-alist' according to ;;; Automatic font-specific ligatures (defvar +prog-ligatures-alist - '((?! . "!\\(?:\\(==\\|[!=]\\)[!=]?\\)") - (?# . "#\\(?:\\(###?\\|_(\\|[(:=?[_{]\\)[#(:=?[_{]?\\)") - (?$ . "$\\(?:\\(>\\)>?\\)") - (?% . "%\\(?:\\(%\\)%?\\)") - (?& . "&\\(?:\\(&\\)&?\\)") - (?* . "*\\(?:\\(\\*\\*\\|[*>]\\)[*>]?\\)") - ;; (?* . "*\\(?:\\(\\*\\*\\|[*/>]\\).?\\)") - (?+ . "+\\(?:\\([>]\\)>?\\)") - ;; (?+ . "+\\(?:\\(\\+\\+\\|[+>]\\).?\\)") - (?- . "-\\(?:\\(-[->]\\|<<\\|>>\\|[-<>|~]\\)[-<>|~]?\\)") - ;; (?. . "\\.\\(?:\\(\\.[.<]\\|[-.=]\\)[-.<=]?\\)") - (?. . "\\.\\(?:\\(\\.<\\|[-=]\\)[-<=]?\\)") - (?/ . "/\\(?:\\(//\\|==\\|[=>]\\)[/=>]?\\)") - ;; (?/ . "/\\(?:\\(//\\|==\\|[*/=>]\\).?\\)") - (?0 . "0\\(?:\\(x[a-fA-F0-9]\\).?\\)") - (?: . ":\\(?:\\(::\\|[:<=>]\\)[:<=>]?\\)") - (59 . ";\\(?:\\(;\\);?\\)") ;; 59 is ; - (?< . "<\\(?:\\(!--\\|\\$>\\|\\*>\\|\\+>\\|-[-<>|]\\|/>\\|<[-<=]\\|=[<>|]\\|==>?\\||>\\||||?\\|~[>~]\\|[$*+/:<=>|~-]\\)[$*+/:<=>|~-]?\\)") - (?= . "=\\(?:\\(!=\\|/=\\|:=\\|<<\\|=[=>]\\|>>\\|[=>]\\)[=<>]?\\)") - (?> . ">\\(?:\\(->\\|=>\\|>[-=>]\\|[-:=>]\\)[-:=>]?\\)") - (?? . "?\\(?:\\([.:=?]\\)[.:=?]?\\)") - (91 . "\\[\\(?:\\(|\\)[]|]?\\)") ;; 91 is [ - ;; (?\ . "\\\\\\(?:\\([\\n]\\)[\\]?\\)") - (?^ . "^\\(?:\\(=\\)=?\\)") - (?_ . "_\\(?:\\(|_\\|[_]\\)_?\\)") - (?w . "w\\(?:\\(ww\\)w?\\)") - (?{ . "{\\(?:\\(|\\)[|}]?\\)") - (?| . "|\\(?:\\(->\\|=>\\||[-=>]\\||||*>\\|[]=>|}-]\\).?\\)") - (?~ . "~\\(?:\\(~>\\|[-=>@~]\\)[-=>@~]?\\)")) + `((?! . ,(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 . ,(regexp-opt '("x"))) ; Also tries to match the x in 0xDEADBEEF + (?\; . ,(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 . ,(regexp-opt '("x"))) ; Also tries to match the x in 0xDEADBEEF + (?\; . ,(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 . ,(regexp-opt '("x"))) ; Also tries to match the x in 0xDEADBEEF - (?\; . ,(regexp-opt '(";;"))) - (?< . ,(regexp-opt '("