From f31840ac9eeba977bd74142078df49d7ffa351f1 Mon Sep 17 00:00:00 2001 From: Seong Yong-ju Date: Wed, 29 Jan 2020 23:59:45 +0900 Subject: [PATCH 01/73] Improve solidity layer Enable +javascript-npm-mode in solidity-mode when package.json exists. Set docsets for solidity-mode. --- modules/lang/javascript/config.el | 8 +++++++- modules/lang/solidity/config.el | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/modules/lang/javascript/config.el b/modules/lang/javascript/config.el index 6baffcc41..3598e0adf 100644 --- a/modules/lang/javascript/config.el +++ b/modules/lang/javascript/config.el @@ -284,7 +284,13 @@ to tide." ;;; Projects (def-project-mode! +javascript-npm-mode - :modes '(html-mode css-mode web-mode markdown-mode js-mode typescript-mode) + :modes '(html-mode + css-mode + web-mode + markdown-mode + js-mode + typescript-mode + solidity-mode) :when (locate-dominating-file default-directory "package.json") :add-hooks '(+javascript-add-node-modules-path-h npm-mode)) diff --git a/modules/lang/solidity/config.el b/modules/lang/solidity/config.el index 8552c3982..5449423f7 100644 --- a/modules/lang/solidity/config.el +++ b/modules/lang/solidity/config.el @@ -11,6 +11,7 @@ :when (featurep! :checkers syntax) :after solidity-mode :config + (set-docsets! 'solidity-mode "Solidity") (setq flycheck-solidity-solc-addstd-contracts t) (when (funcall flycheck-executable-find solidity-solc-path) (add-to-list 'flycheck-checkers 'solidity-checker nil #'eq)) From 9a0e0291355bc39ff1d02f026ce666765e41d7f7 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 30 Jan 2020 18:37:48 -0500 Subject: [PATCH 02/73] Fix output truncation & indentation on 'doom update' --- core/cli/packages.el | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/core/cli/packages.el b/core/cli/packages.el index 36295dfe5..8f42785df 100644 --- a/core/cli/packages.el +++ b/core/cli/packages.el @@ -212,8 +212,9 @@ declaration) or dependency thereof that hasn't already been." (puthash local-repo t repos-to-rebuild) (puthash package t packages-to-rebuild) (unless (string-empty-p output) - (print-group! (print! (info "%s" output)))) - (print! (success "(%d/%d) %s updated (%s -> %s)") + (print! (start "\033[K(%d/%d) Updating %s...") i total local-repo) + (print-group! (print! "%s" output))) + (print! (success "\033[K(%d/%d) %s updated (%s -> %s)") i total local-repo (doom--abbrev-commit ref) (doom--abbrev-commit target-ref))) From 53d799f377f814a112299b7696f69dbd9533872d Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 30 Jan 2020 19:39:36 -0500 Subject: [PATCH 03/73] Reduce file init work when reading autoloads Should suppress Emacs trying to read file-local variables and/or attempts to open TAGS files for the current project. --- core/cli/autoloads.el | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/core/cli/autoloads.el b/core/cli/autoloads.el index 92ef89fe2..700e0523c 100644 --- a/core/cli/autoloads.el +++ b/core/cli/autoloads.el @@ -134,10 +134,8 @@ one wants that.") (form)))) (defun doom-cli--generate-autoloads-autodefs (file buffer module &optional module-enabled-p) - (with-current-buffer - (or (get-file-buffer file) - (autoload-find-file file)) - (goto-char (point-min)) + (with-temp-buffer + (insert-file-contents file) (while (re-search-forward "^;;;###autodef *\\([^\n]+\\)?\n" nil t) (let* ((standard-output buffer) (form (read (current-buffer))) From 5b242c73bbc2236bf1176b561b1d9d53cb2a2440 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 31 Jan 2020 03:04:04 -0500 Subject: [PATCH 04/73] Bump to akermu/emacs-libvterm@4fbf8f8 --- modules/term/vterm/config.el | 6 ++---- modules/term/vterm/packages.el | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/modules/term/vterm/config.el b/modules/term/vterm/config.el index df6d150f3..6abec4d96 100644 --- a/modules/term/vterm/config.el +++ b/modules/term/vterm/config.el @@ -13,10 +13,8 @@ ;; Prevent premature horizontal scrolling hscroll-margin 0) + (setq vterm-kill-buffer-on-exit t) + (add-hook 'vterm-mode-hook #'doom-mark-buffer-as-real-h) - ;; Automatically kill buffer when vterm exits. - (add-hook! 'vterm-exit-functions - (defun +vterm-kill-buffer-on-quit-fn (buffer event) - (if buffer (kill-buffer buffer)))) ;; Modeline serves no purpose in vterm (add-hook 'vterm-mode-hook #'hide-mode-line-mode)) diff --git a/modules/term/vterm/packages.el b/modules/term/vterm/packages.el index 608aa9fde..18e6712c4 100644 --- a/modules/term/vterm/packages.el +++ b/modules/term/vterm/packages.el @@ -3,4 +3,4 @@ (package! vterm :built-in 'prefer - :pin "a970b4f472") + :pin "4fbf8f89ff") From 334f98ea52eee2824f983324d30ff4fb9a6d3cf0 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 31 Jan 2020 12:58:32 -0500 Subject: [PATCH 05/73] Bump to brotzeit/rustic@da3820d brotzeit/rustic#90 was merged. --- modules/lang/rust/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/lang/rust/packages.el b/modules/lang/rust/packages.el index ad4ae583b..d20e289fe 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 "a6b8cd8db8") +(package! rustic :pin "da3820de18") (unless (featurep! +lsp) (package! racer :pin "a0bdf778f0")) From 88e828d1f3f19f233c4ff909f71180dd03c2bece Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 31 Jan 2020 16:18:16 -0500 Subject: [PATCH 06/73] Add +lsp flag to lang/elm Closes #2460 --- modules/lang/elm/config.el | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/lang/elm/config.el b/modules/lang/elm/config.el index 695a596f7..71c3dd97c 100644 --- a/modules/lang/elm/config.el +++ b/modules/lang/elm/config.el @@ -3,6 +3,9 @@ (after! elm-mode (add-hook 'elm-mode-hook #'rainbow-delimiters-mode) + (when (featurep! +lsp) + (add-hook 'elm-mode-local-vars-hook #'lsp!)) + (set-company-backend! 'elm-mode 'company-elm) (set-repl-handler! 'elm-mode #'run-elm-interactive) (set-pretty-symbols! 'elm-mode From c733a6aa27a61763b65a4b868d0851fc5a361e47 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 31 Jan 2020 16:21:23 -0500 Subject: [PATCH 07/73] evil-respect-visual-line-mode = nil Since this is vim's default behavior (gj and gk exist for navigating virtual lines). Also the cause of #2447 --- modules/editor/evil/config.el | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/editor/evil/config.el b/modules/editor/evil/config.el index 3a77cd7a9..282de7552 100644 --- a/modules/editor/evil/config.el +++ b/modules/editor/evil/config.el @@ -27,7 +27,6 @@ directives. By default, this only recognizes C directives.") (defvar evil-want-C-w-delete t) (defvar evil-want-Y-yank-to-eol t) (defvar evil-want-abbrev-expand-on-insert-exit nil) -(defvar evil-respect-visual-line-mode t) (use-package! evil :hook (doom-init-modules . evil-mode) From e31bb63c14fb24b021d4898b0d61073bedc1f10f Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 31 Jan 2020 16:43:08 -0500 Subject: [PATCH 08/73] message-log-max = 8192 --- core/core.el | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/core.el b/core/core.el index f87e5bb41..2b046726f 100644 --- a/core/core.el +++ b/core/core.el @@ -134,6 +134,9 @@ users).") ;; ;;; Emacs core configuration +;; lo', longer logs ahoy, so we may reliably locate lapses in doom's logic +(setq message-log-max 8192) + ;; Reduce debug output, well, unless we've asked for it. (setq debug-on-error doom-debug-mode jka-compr-verbose doom-debug-mode) From 0dc173a63156e8a875705d1ef9e820120c420839 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 1 Feb 2020 02:07:24 -0500 Subject: [PATCH 09/73] Polish progress output during 'doom update' --- core/cli/packages.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/cli/packages.el b/core/cli/packages.el index 8f42785df..bf9992d7c 100644 --- a/core/cli/packages.el +++ b/core/cli/packages.el @@ -194,7 +194,7 @@ declaration) or dependency thereof that hasn't already been." (setq output (doom--commit-log-between ref target-ref))) (doom--same-commit-p target-ref (straight-vc-get-commit type local-repo))) - ((print! (start "\033[K(%d/%d) Re-cloning %s...%s") i total local-repo esc) + ((print! (start "\033[K(%d/%d) Re-cloning %s...") i total local-repo esc) (let ((repo (straight--repos-dir local-repo))) (ignore-errors (delete-directory repo 'recursive)) @@ -213,7 +213,7 @@ declaration) or dependency thereof that hasn't already been." (puthash package t packages-to-rebuild) (unless (string-empty-p output) (print! (start "\033[K(%d/%d) Updating %s...") i total local-repo) - (print-group! (print! "%s" output))) + (print-group! (print! (indent 2 output)))) (print! (success "\033[K(%d/%d) %s updated (%s -> %s)") i total local-repo (doom--abbrev-commit ref) From d496f277419b366c6eabcd548613b67ca924a970 Mon Sep 17 00:00:00 2001 From: Seong Yong-ju Date: Sat, 1 Feb 2020 17:06:15 +0900 Subject: [PATCH 10/73] Add LSP support for ESS R --- docs/modules.org | 2 +- modules/lang/ess/README.org | 11 +++++++++-- modules/lang/ess/config.el | 8 +++++++- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/docs/modules.org b/docs/modules.org index 5ec4128e7..89edf0a4b 100644 --- a/docs/modules.org +++ b/docs/modules.org @@ -106,7 +106,7 @@ Modules that bring support for a language or group of languages to Emacs. + elm - TODO + emacs-lisp - TODO + erlang - TODO -+ [[file:../modules/lang/ess/README.org][ess]] - TODO ++ [[file:../modules/lang/ess/README.org][ess]] =+lsp= - TODO + [[file:../modules/lang/faust/README.org][faust]] - TODO + [[file:../modules/lang/fsharp/README.org][fsharp]] - TODO + [[file:../modules/lang/go/README.org][go]] =+lsp= - TODO diff --git a/modules/lang/ess/README.org b/modules/lang/ess/README.org index 55330d7ab..2fc985b7b 100644 --- a/modules/lang/ess/README.org +++ b/modules/lang/ess/README.org @@ -4,9 +4,16 @@ This module adds support for various statistics languages, including R, S-Plus, SAS, Julia and Stata. * Table of Contents :TOC: -- [[Appendix][Appendix]] - - [[Keybindings][Keybindings]] +- [[#prequisites][Prequisites]] +- [[#appendix][Appendix]] + - [[#keybindings][Keybindings]] +* Prequisites +This module has sevral optional dependencies: + ++ [[https://github.com/jimhester/lintr][lintr]]: Enables R linting. ++ [[https://github.com/REditorSupport/languageserver][languageserver]]: Enables LSP support in an R buffer (with =+lsp= flag). + * Appendix ** Keybindings *** :map ess-doc-map diff --git a/modules/lang/ess/config.el b/modules/lang/ess/config.el index b38b09a4e..d97c4507b 100644 --- a/modules/lang/ess/config.el +++ b/modules/lang/ess/config.el @@ -19,9 +19,15 @@ ess-style 'DEFAULT ess-history-directory (expand-file-name "ess-history/" doom-cache-dir)) + (set-docsets! 'ess-r-mode "R") + (if (featurep! +lsp) + (add-hook 'ess-r-mode-hook #'lsp!) + (set-lookup-handlers! 'ess-r-mode + :documentation #'ess-display-help-on-object)) + (set-repl-handler! 'ess-r-mode #'+ess/open-r-repl) (set-repl-handler! 'ess-julia-mode #'+ess/open-julia-repl) - (set-lookup-handlers! '(ess-r-mode ess-julia-mode) + (set-lookup-handlers! 'ess-julia-mode :documentation #'ess-display-help-on-object) (set-evil-initial-state! 'ess-r-help-mode 'normal) From 1158412ae8883f030c2c92abc37be81e894be797 Mon Sep 17 00:00:00 2001 From: Seong Yong-ju Date: Sun, 2 Feb 2020 12:00:36 +0900 Subject: [PATCH 11/73] Fix a typo: sevral -> several --- modules/lang/ess/README.org | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/lang/ess/README.org b/modules/lang/ess/README.org index 2fc985b7b..a50f434d7 100644 --- a/modules/lang/ess/README.org +++ b/modules/lang/ess/README.org @@ -9,7 +9,7 @@ SAS, Julia and Stata. - [[#keybindings][Keybindings]] * Prequisites -This module has sevral optional dependencies: +This module has several optional dependencies: + [[https://github.com/jimhester/lintr][lintr]]: Enables R linting. + [[https://github.com/REditorSupport/languageserver][languageserver]]: Enables LSP support in an R buffer (with =+lsp= flag). From abd12a05158efff260b1569af31f6cab3e30f1d1 Mon Sep 17 00:00:00 2001 From: Seong Yong-ju Date: Sun, 2 Feb 2020 12:02:24 +0900 Subject: [PATCH 12/73] Make the LSP lookup handler fallback to ESS --- modules/lang/ess/config.el | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/modules/lang/ess/config.el b/modules/lang/ess/config.el index d97c4507b..3bdd2e5ed 100644 --- a/modules/lang/ess/config.el +++ b/modules/lang/ess/config.el @@ -20,14 +20,12 @@ ess-history-directory (expand-file-name "ess-history/" doom-cache-dir)) (set-docsets! 'ess-r-mode "R") - (if (featurep! +lsp) - (add-hook 'ess-r-mode-hook #'lsp!) - (set-lookup-handlers! 'ess-r-mode - :documentation #'ess-display-help-on-object)) + (when (featurep! +lsp) + (add-hook 'ess-r-mode-hook #'lsp!)) (set-repl-handler! 'ess-r-mode #'+ess/open-r-repl) (set-repl-handler! 'ess-julia-mode #'+ess/open-julia-repl) - (set-lookup-handlers! 'ess-julia-mode + (set-lookup-handlers! '(ess-r-mode ess-julia-mode) :documentation #'ess-display-help-on-object) (set-evil-initial-state! 'ess-r-help-mode 'normal) From 80a636cb7a383c74ba621bac01b4f643b0c27b77 Mon Sep 17 00:00:00 2001 From: Sean Escriva Date: Sat, 1 Feb 2020 22:35:16 -0500 Subject: [PATCH 13/73] docs: update mu macos install cmd `--with-emacs` arg no longer exists in the formula --- modules/email/mu4e/README.org | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/email/mu4e/README.org b/modules/email/mu4e/README.org index 51c495a9c..a29f675b3 100644 --- a/modules/email/mu4e/README.org +++ b/modules/email/mu4e/README.org @@ -43,7 +43,7 @@ This module requires: ** MacOS #+BEGIN_SRC sh -brew install mu --with-emacs +brew install mu # And one of the following brew install isync # mbsync brew install offlineimap From 373f1d532d6d8dc4d42f74e6e752447200437997 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 2 Feb 2020 00:05:55 -0500 Subject: [PATCH 14/73] Bump to hlissner/doom-snippets@22c96ef To include the following PRs: + hlissner/doom-snippets#27 + hlissner/doom-snippets#26 + hlissner/doom-snippets#23 + hlissner/doom-snippets#21 + hlissner/doom-snippets#20 --- modules/editor/snippets/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/editor/snippets/packages.el b/modules/editor/snippets/packages.el index 7134aa58b..f7b347f1c 100644 --- a/modules/editor/snippets/packages.el +++ b/modules/editor/snippets/packages.el @@ -7,4 +7,4 @@ :recipe (:host github :repo "hlissner/doom-snippets" :files ("*.el" "*")) - :pin "7ba920d1de") + :pin "22c96ef548") From cb86fd046cdfeb6befeb296c906ff9110ff7eb72 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 2 Feb 2020 02:01:40 -0500 Subject: [PATCH 15/73] lang/common-lisp: SPC m {m,M} -> sly macroexpand macrostep-expand was the wrong command (and plugin). --- modules/lang/common-lisp/config.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/lang/common-lisp/config.el b/modules/lang/common-lisp/config.el index bfed909f7..58a76876d 100644 --- a/modules/lang/common-lisp/config.el +++ b/modules/lang/common-lisp/config.el @@ -70,7 +70,8 @@ :map lisp-mode-map :desc "Sly" "'" #'sly :desc "Sly (ask)" ";" (λ!! #'sly '-) - :desc "Expand macro" "m" #'macrostep-expand + :desc "Expand macro" "m" #'sly-macroexpand-1-inplace + :desc "Expand macro in popup" "M" #'sly-macroexpand-1 (:prefix ("c" . "compile") :desc "Compile file" "c" #'sly-compile-file :desc "Compile/load file" "C" #'sly-compile-and-load-file From 7224f0870a1dd59714d21aa03749d47dd87e536d Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 2 Feb 2020 02:02:41 -0500 Subject: [PATCH 16/73] lang/common-lisp: add *sly-description* popup rule --- modules/lang/common-lisp/config.el | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/lang/common-lisp/config.el b/modules/lang/common-lisp/config.el index 58a76876d..8320e1232 100644 --- a/modules/lang/common-lisp/config.el +++ b/modules/lang/common-lisp/config.el @@ -32,6 +32,7 @@ '(("^\\*sly-mrepl" :vslot 2 :size 0.3 :quit nil :ttl nil) ("^\\*sly-compilation" :vslot 3 :ttl nil) ("^\\*sly-traces" :vslot 4 :ttl nil) + ("^\\*sly-description" :vslot 5 :size 0.3 :ttl 0) ;; Do not display debugger or inspector buffers in a popup window. These ;; buffers are meant to be displayed with sufficient vertical space. ("^\\*sly-\\(?:db\\|inspector\\)" :ignore t))) From 4a5cf047611f65002f49feef9675c26bcf313ef1 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 2 Feb 2020 02:05:20 -0500 Subject: [PATCH 17/73] General refactors & appease byte-compiler --- core/autoload/packages.el | 7 ++- core/autoload/projects.el | 4 +- core/autoload/scratch.el | 1 + core/autoload/text.el | 61 +++++++++++++------------ modules/app/calendar/autoload.el | 6 +-- modules/editor/evil/config.el | 2 +- modules/term/eshell/autoload/company.el | 1 + 7 files changed, 46 insertions(+), 36 deletions(-) diff --git a/core/autoload/packages.el b/core/autoload/packages.el index 68e2f8f6e..57a182e69 100644 --- a/core/autoload/packages.el +++ b/core/autoload/packages.el @@ -210,7 +210,8 @@ ones." "Return an alist mapping package names (strings) to pinned commits (strings)." (let (alist) (dolist (package doom-packages alist) - (with-plist! (cdr package) (recipe modules disable ignore pin unpin) + (cl-destructuring-bind (_ &key disable ignore pin unpin &allow-other-keys) + package (when (and (not ignore) (not disable) (or pin unpin)) @@ -223,7 +224,9 @@ ones." "Return an alist mapping package names (strings) to pinned commits (strings)." (let (alist) (dolist (package doom-packages alist) - (with-plist! (cdr package) (recipe modules disable ignore pin unpin) + (cl-destructuring-bind + (_ &key recipe disable ignore pin unpin &allow-other-keys) + package (when (and (not ignore) (not disable) (or unpin diff --git a/core/autoload/projects.el b/core/autoload/projects.el index 6decf3501..e3b924b13 100644 --- a/core/autoload/projects.el +++ b/core/autoload/projects.el @@ -1,6 +1,8 @@ ;;; core/autoload/projects.el -*- lexical-binding: t; -*- -(defvar projectile-project-root nil) +(defvar projectile-enable-caching) +(defvar projectile-project-root) +(defvar projectile-require-project-root) ;;;###autoload (autoload 'projectile-relevant-known-projects "projectile") diff --git a/core/autoload/scratch.el b/core/autoload/scratch.el index 5e5b216ab..3d4947f0d 100644 --- a/core/autoload/scratch.el +++ b/core/autoload/scratch.el @@ -96,6 +96,7 @@ following: ;; ;;; Commands +(defvar projectile-enable-caching) ;;;###autoload (defun doom/open-scratch-buffer (&optional arg project-p) "Pop up a persistent scratch buffer. diff --git a/core/autoload/text.el b/core/autoload/text.el index edfb2997b..ae91e71e7 100644 --- a/core/autoload/text.el +++ b/core/autoload/text.el @@ -117,34 +117,37 @@ in some cases." ;;; Commands (defun doom--bol-bot-eot-eol (&optional pos) - (let* ((bol (if visual-line-mode - (save-excursion - (beginning-of-visual-line) - (point)) - (line-beginning-position))) - (bot (save-excursion - (goto-char bol) - (skip-chars-forward " \t\r") - (point))) - (eol (if visual-line-mode - (save-excursion (end-of-visual-line) (point)) - (line-end-position))) - (eot (or (save-excursion - (if (not comment-use-syntax) - (progn - (goto-char bol) - (when (re-search-forward comment-start-skip eol t) - (or (match-end 1) (match-beginning 0)))) - (goto-char eol) - (while (and (doom-point-in-comment-p) - (> (point) bol)) - (backward-char)) - (skip-chars-backward " " bol) - (unless (or (eq (char-after) 32) (eolp)) - (forward-char)) - (point))) - eol))) - (list bol bot eot eol))) + (save-excursion + (when pos + (goto-char pos)) + (let* ((bol (if visual-line-mode + (save-excursion + (beginning-of-visual-line) + (point)) + (line-beginning-position))) + (bot (save-excursion + (goto-char bol) + (skip-chars-forward " \t\r") + (point))) + (eol (if visual-line-mode + (save-excursion (end-of-visual-line) (point)) + (line-end-position))) + (eot (or (save-excursion + (if (not comment-use-syntax) + (progn + (goto-char bol) + (when (re-search-forward comment-start-skip eol t) + (or (match-end 1) (match-beginning 0)))) + (goto-char eol) + (while (and (doom-point-in-comment-p) + (> (point) bol)) + (backward-char)) + (skip-chars-backward " " bol) + (unless (or (eq (char-after) 32) (eolp)) + (forward-char)) + (point))) + eol))) + (list bol bot eot eol)))) (defvar doom--last-backward-pt nil) ;;;###autoload @@ -154,7 +157,7 @@ beginning of the line. The opposite of `doom/forward-to-last-non-comment-or-eol'." (interactive "d") (let ((pt (or point (point)))) - (cl-destructuring-bind (bol bot _eot eol) + (cl-destructuring-bind (bol bot _eot _eol) (doom--bol-bot-eot-eol pt) (cond ((> pt bot) (goto-char bot)) diff --git a/modules/app/calendar/autoload.el b/modules/app/calendar/autoload.el index f642c184b..7a6a1b73f 100644 --- a/modules/app/calendar/autoload.el +++ b/modules/app/calendar/autoload.el @@ -3,9 +3,9 @@ (defvar +calendar--wconf nil) (defun +calendar--init () - (if-let* ((win (cl-loop for win in (doom-visible-windows) - if (string-match-p "^\\*cfw:" (buffer-name (window-buffer win))) - return win))) + (if-let (win (cl-find-if (lambda (b) (string-match-p "^\\*cfw:" (buffer-name b))) + (doom-visible-windows) + :key #'window-buffer)) (select-window win) (call-interactively +calendar-open-function))) diff --git a/modules/editor/evil/config.el b/modules/editor/evil/config.el index 282de7552..bb225764c 100644 --- a/modules/editor/evil/config.el +++ b/modules/editor/evil/config.el @@ -126,7 +126,7 @@ directives. By default, this only recognizes C directives.") (count-lines (point-min) (point-max)) (buffer-size))))) - ;; 'gq' moves the cursor to the beginning of selection. Disable this, since + ;; '=' moves the cursor to the beginning of selection. Disable this, since ;; it's more disruptive than helpful. (defadvice! +evil--dont-move-cursor-a (orig-fn &rest args) :around #'evil-indent diff --git a/modules/term/eshell/autoload/company.el b/modules/term/eshell/autoload/company.el index 1d24cf99a..94d0662ce 100644 --- a/modules/term/eshell/autoload/company.el +++ b/modules/term/eshell/autoload/company.el @@ -3,6 +3,7 @@ ;; REVIEW Refactor me +(defvar pcomplete-suffix-list) (defvar company-pcomplete-available 'unknown) (defun company-pcomplete--prefix () From 29e4719a7d3c9991445be63e755e0cb31fd4fd00 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 2 Feb 2020 02:07:13 -0500 Subject: [PATCH 18/73] Disable GUI elements even if you use chemacs #2354 --- core/core-ui.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/core-ui.el b/core/core-ui.el index 032097401..4ffb2f450 100644 --- a/core/core-ui.el +++ b/core/core-ui.el @@ -282,7 +282,7 @@ windows, switch to `doom-fallback-buffer'. Otherwise, delegate to original (setq window-resize-pixelwise t frame-resize-pixelwise t) -(unless EMACS27+ +(when (bound-and-true-p tool-bar-mode) ;; We do this in early-init.el too, but in case the user is on Emacs 26 we do ;; it here too: disable tool and scrollbars, as Doom encourages ;; keyboard-centric workflows, so these are just clutter (the scrollbar also From a14e3afc107f5160b84ac772c7cb690dea27b8f5 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 2 Feb 2020 02:36:21 -0500 Subject: [PATCH 19/73] Fix async lookup handlers for tuareg-mode #2394 --- modules/lang/ocaml/config.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/lang/ocaml/config.el b/modules/lang/ocaml/config.el index c31564d3f..d2db49bb6 100644 --- a/modules/lang/ocaml/config.el +++ b/modules/lang/ocaml/config.el @@ -53,7 +53,7 @@ (after! tuareg (set-company-backend! 'tuareg-mode 'merlin-company-backend) - (set-lookup-handlers! 'tuareg-mode + (set-lookup-handlers! 'tuareg-mode :async t :definition #'merlin-locate :references #'merlin-occurrences :documentation #'merlin-document)) From ac52e644a86ede4a9a7d4f254e2b7b2fb20da2e1 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 2 Feb 2020 03:11:44 -0500 Subject: [PATCH 20/73] Revert doom-modeline formats to defaults It's not tenable for me to maintain this package more than I have to anymore, now that I no longer use doom-modeline. Addresses #2356, #1680 --- modules/ui/modeline/config.el | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/modules/ui/modeline/config.el b/modules/ui/modeline/config.el index 337074c27..1a4a7e288 100644 --- a/modules/ui/modeline/config.el +++ b/modules/ui/modeline/config.el @@ -58,19 +58,6 @@ (doom-modeline-set-project-modeline) (hide-mode-line-mode)))) - ;; Remove unused segments & extra padding - (doom-modeline-def-modeline 'main - '(bar window-number matches buffer-info remote-host buffer-position selection-info) - '(objed-state misc-info persp-name irc mu4e github debug input-method buffer-encoding lsp major-mode process vcs checker)) - - (doom-modeline-def-modeline 'special - '(bar window-number matches buffer-info-simple buffer-position selection-info) - '(objed-state misc-info persp-name debug input-method irc-buffers buffer-encoding lsp major-mode process checker)) - - (doom-modeline-def-modeline 'project - '(bar window-number buffer-default-directory) - '(misc-info mu4e github debug battery " " major-mode process)) - ;; Some functions modify the buffer, causing the modeline to show a false ;; modified state, so force them to behave. (defadvice! +modeline--inhibit-modification-hooks-a (orig-fn &rest args) From 6337912d135552845fff3b3b5388367aeae3840a Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 2 Feb 2020 03:13:15 -0500 Subject: [PATCH 21/73] Bump to seagle0128/doom-modeline@159fe50 --- modules/ui/modeline/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ui/modeline/packages.el b/modules/ui/modeline/packages.el index 37575888b..46b55cc28 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 "21ac606325")) + (package! doom-modeline :pin "159fe50fbd")) (package! anzu :pin "592f8ee6d0") (when (featurep! :editor evil) (package! evil-anzu :pin "9bca6ca14d")) From a12a54b28f1fca705f51fdb7a80f3863369fea08 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 2 Feb 2020 03:18:49 -0500 Subject: [PATCH 22/73] Revert direnv modifications Not worth the trouble. I'll move it to my private config. Fixes #2384 Closes #2384 --- modules/tools/direnv/config.el | 51 +++++++--------------------------- 1 file changed, 10 insertions(+), 41 deletions(-) diff --git a/modules/tools/direnv/config.el b/modules/tools/direnv/config.el index 10a6a7681..69c1824d8 100644 --- a/modules/tools/direnv/config.el +++ b/modules/tools/direnv/config.el @@ -7,37 +7,20 @@ "use" "rvm" "use_nix" "use_guix") "TODO") + +;; +;;; Packages + (use-package! direnv :after-call after-find-file dired-initial-position-hook :config - (add-hook! 'direnv-mode-hook - (defun +direnv-init-h () - "Instead of checking for direnv on `post-command-hook', check only once, -when the file is first opened/major mode is activated. This is significantly -less expensive, but is less sensitive to changes to .envrc done outside of -Emacs." - (direnv--disable) - (funcall (if direnv-mode 'add-hook 'remove-hook) - 'after-change-major-mode-hook - #'direnv--maybe-update-environment))) - - (defadvice! +direnv--make-process-environment-buffer-local-a (items) - :filter-return #'direnv--export - (when items - (mapc 'kill-local-variable '(process-environment exec-path)) - (mapc 'make-local-variable '(process-environment exec-path))) - items) - ;; Fontify special .envrc keywords; it's a good indication of whether or not ;; we've typed them correctly. (add-hook! 'direnv-envrc-mode-hook (defun +direnv-envrc-fontify-keywords-h () (font-lock-add-keywords nil `((,(regexp-opt +direnv--keywords 'symbols) - (0 font-lock-keyword-face))))) - (defun +direnv-update-on-save-h () - (add-hook 'after-save-hook #'direnv--maybe-update-environment - nil 'local))) + (0 font-lock-keyword-face)))))) (defadvice! +direnv-update-a (&rest _) "Update direnv. Useful to advise functions that may run @@ -46,24 +29,10 @@ flycheck issues with direnv and on nix." :before #'flycheck-default-executable-find (direnv--maybe-update-environment)) - (defadvice! +direnv--fail-gracefully-a (orig-fn) - "Don't try to update direnv if the executable isn't present." - :around #'direnv--maybe-update-environment - (if (executable-find "direnv") - (when (file-readable-p (or buffer-file-name default-directory)) - (funcall orig-fn)) - (doom-log "Couldn't find direnv executable"))) - - (defadvice! +direnv-update-async-shell-command-a (command &optional output-buffer _error-buffer) - :before #'shell-command - (when (string-match "[ \t]*&[ \t]*\\'" command) - (let ((environment process-environment) - (path exec-path) - (shell shell-file-name)) - (with-current-buffer - (get-buffer-create (or output-buffer "*Async Shell Command*")) - (setq-local process-environment environment) - (setq-local exec-path path) - (setq-local shell-file-name shell))))) + (defadvice! +direnv--fail-gracefully-a (&rest _) + "Don't try to use direnv if the executable isn't present." + :before-while #'direnv-update-directory-environment + (or (executable-find "direnv") + (ignore (doom-log "Couldn't find direnv executable")))) (direnv-mode +1)) From 48b4847db39a5ae35f08fe147d4c94a93890f559 Mon Sep 17 00:00:00 2001 From: Seong Yong-ju Date: Sun, 2 Feb 2020 17:26:28 +0900 Subject: [PATCH 23/73] Call lsp! in ess-r-mode-local-hook --- modules/lang/ess/config.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/lang/ess/config.el b/modules/lang/ess/config.el index 3bdd2e5ed..8f1812199 100644 --- a/modules/lang/ess/config.el +++ b/modules/lang/ess/config.el @@ -21,7 +21,7 @@ (set-docsets! 'ess-r-mode "R") (when (featurep! +lsp) - (add-hook 'ess-r-mode-hook #'lsp!)) + (add-hook 'ess-r-mode-local-vars-hook #'lsp!)) (set-repl-handler! 'ess-r-mode #'+ess/open-r-repl) (set-repl-handler! 'ess-julia-mode #'+ess/open-julia-repl) From 047ea8dab52038a3bc83aa136cd51d09ee7a38ce Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 2 Feb 2020 16:00:45 -0500 Subject: [PATCH 24/73] Update & fix org-tree-slide-mode integration --- modules/config/default/+evil-bindings.el | 2 +- modules/lang/org/autoload/contrib-present.el | 69 ++++++++++---------- modules/lang/org/contrib/present.el | 48 ++++++++------ 3 files changed, 61 insertions(+), 58 deletions(-) diff --git a/modules/config/default/+evil-bindings.el b/modules/config/default/+evil-bindings.el index 8bf7742be..efd62d817 100644 --- a/modules/config/default/+evil-bindings.el +++ b/modules/config/default/+evil-bindings.el @@ -615,7 +615,7 @@ :desc "Indent style" "I" #'doom/toggle-indent-style :desc "Line numbers" "l" #'doom/toggle-line-numbers (:when (featurep! :lang org +present) - :desc "org-tree-slide mode" "p" #'+org-present/start) + :desc "org-tree-slide mode" "p" #'org-tree-slide-mode) :desc "Read-only mode" "r" #'read-only-mode (:when (featurep! :checkers spell) :desc "Flyspell" "s" #'flyspell-mode) diff --git a/modules/lang/org/autoload/contrib-present.el b/modules/lang/org/autoload/contrib-present.el index 0a4925146..6f40b31af 100644 --- a/modules/lang/org/autoload/contrib-present.el +++ b/modules/lang/org/autoload/contrib-present.el @@ -9,10 +9,13 @@ if (buffer-local-value 'org-tree-slide-mode buf) return t) (org-tree-slide-mode -1) - (remove-hook 'kill-buffer-hook #'+org-present--cleanup-org-tree-slides-mode))) + (remove-hook 'kill-buffer-hook #'+org-present--cleanup-org-tree-slides-mode + 'local))) (defun +org-present--make-invisible (beg end) - (let ((overlay (make-overlay beg end))) + (unless (assq '+org-present buffer-invisibility-spec) + (add-to-invisibility-spec '(+org-present))) + (let ((overlay (make-overlay beg (1+ end)))) (push overlay +org-present--overlays) (overlay-put overlay 'invisible '+org-present))) @@ -21,19 +24,21 @@ ;;; Hooks ;;;###autoload -(defun +org-present-add-overlays-h () - "TODO" - (add-to-invisibility-spec '(+org-present)) +(defun +org-present-hide-blocks-h () + "Hide org #+ constructs." (save-excursion - ;; hide org-mode options starting with #+ (goto-char (point-min)) (while (re-search-forward "^[[:space:]]*\\(#\\+\\)\\(\\(?:BEGIN\\|END\\|ATTR\\)[^[:space:]]+\\).*" nil t) (+org-present--make-invisible (match-beginning 1) - (match-end 0))) - ;; hide stars in headings + (match-end 0))))) + +;;;###autoload +(defun +org-present-hide-leading-stars-h () + "Hide leading stars in headings." + (save-excursion (goto-char (point-min)) - (while (re-search-forward "^\\(\\*+\\s-\\)" nil t) + (while (re-search-forward "^\\(\\*+\\)" nil t) (+org-present--make-invisible (match-beginning 1) (match-end 1))))) ;;;###autoload @@ -55,43 +60,35 @@ (defvar cwm-left-fringe-ratio) (defvar cwm-centered-window-width) ;;;###autoload -(defun +org-present-init-org-tree-window-h () +(defun +org-present-prettify-slide-h () "TODO" "Set up the org window for presentation." (doom/window-maximize-buffer) (let ((arg (if org-tree-slide-mode +1 -1))) (when (fboundp 'centered-window-mode) - (let ((cwm-use-vertical-padding t) - (cwm-frame-internal-border 110) - (cwm-left-fringe-ratio -10) - (cwm-centered-window-width 240)) - (centered-window-mode arg))) - (window-divider-mode (* arg -1)) + (setq-local cwm-use-vertical-padding t) + (setq-local cwm-frame-internal-border 100) + (setq-local cwm-left-fringe-ratio -10) + (setq-local cwm-centered-window-width 300) + (centered-window-mode arg)) (hide-mode-line-mode arg) (+org-pretty-mode arg) (cond (org-tree-slide-mode - (org-indent-mode -1) + (set-window-fringes nil 0 0) + (when (bound-and-true-p solaire-mode) + (solaire-mode -1) + (fringe-mode 0)) + (when (bound-and-true-p flyspell-mode) + (flyspell-mode -1)) + (add-hook 'kill-buffer-hook #'+org-present--cleanup-org-tree-slides-mode + nil 'local) (text-scale-set +org-present-text-scale) - (ignore-errors (org-latex-preview '(4))) - (set-face-attribute 'org-level-2 nil :height 1.4)) + (ignore-errors (org-latex-preview '(4)))) (t - (org-indent-mode +1) (text-scale-set 0) + (set-window-fringes nil fringe-mode fringe-mode) (org-clear-latex-preview) - (set-face-attribute 'org-level-2 nil :height 1.0) (+org-present-remove-overlays-h) - (org-remove-inline-images))))) - - -;; -;;; Commands - -(defvar +org-present--overlays nil) -;;;###autoload -(defun +org-present/start () - "TODO" - (interactive) - (unless (derived-mode-p 'org-mode) - (error "Not in an org buffer")) - (call-interactively #'org-tree-slide-mode) - (add-hook 'kill-buffer-hook #'+org-present--cleanup-org-tree-slides-mode)) + (org-remove-inline-images) + (org-mode))) + (redraw-display))) diff --git a/modules/lang/org/contrib/present.el b/modules/lang/org/contrib/present.el index c882c4435..b6c329b02 100644 --- a/modules/lang/org/contrib/present.el +++ b/modules/lang/org/contrib/present.el @@ -1,7 +1,7 @@ ;;; lang/org/contrib/present.el -*- lexical-binding: t; -*- ;;;###if (featurep! +present) -(defvar +org-present-text-scale 7 +(defvar +org-present-text-scale 6 "The `text-scale-amount' for `org-tree-slide-mode'.") (after! ox @@ -24,31 +24,37 @@ (setq org-tree-slide-skip-outline-level 2 org-tree-slide-activate-message " " org-tree-slide-deactivate-message " " - org-tree-slide-modeline-display nil) + org-tree-slide-modeline-display nil + org-tree-slide-heading-emphasis t) - (map! :map org-tree-slide-mode-map - :n [right] #'org-tree-slide-move-next-tree - :n [left] #'org-tree-slide-move-previous-tree) + (add-hook 'org-tree-slide-mode-after-narrow-hook #'org-display-inline-images) + (add-hook! 'org-tree-slide-mode-hook + #'+org-present-hide-blocks-h + #'+org-present-prettify-slide-h) - (add-hook! 'org-tree-slide-mode-after-narrow-hook - #'+org-present-detect-slide-h - #'+org-present-add-overlays-h - #'org-display-inline-images) - - (add-hook 'org-tree-slide-mode-hook #'+org-present-init-org-tree-window-h) + (when (featurep! :editor evil) + (map! :map org-tree-slide-mode-map + :n [C-right] #'org-tree-slide-move-next-tree + :n [C-left] #'org-tree-slide-move-previous-tree) + (add-hook 'org-tree-slide-mode-hook #'evil-normalize-keymaps)) (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 (org-back-to-heading t) - (forward-line 1) - (point)) - (progn (org-end-of-subtree t t) - (when (and (org-at-heading-p) (not (eobp))) (backward-char 1)) - (point))))))))) + (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))))))))) (apply orig-fn args)))) From 04d14bcba933b5f44d0921d3b23fb413dfb16b6e Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 2 Feb 2020 16:03:34 -0500 Subject: [PATCH 25/73] Minor refactors & comment correction --- core/autoload/packages.el | 11 +++++++---- docs/api.org | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/core/autoload/packages.el b/core/autoload/packages.el index 57a182e69..0a6b581b8 100644 --- a/core/autoload/packages.el +++ b/core/autoload/packages.el @@ -210,12 +210,12 @@ ones." "Return an alist mapping package names (strings) to pinned commits (strings)." (let (alist) (dolist (package doom-packages alist) - (cl-destructuring-bind (_ &key disable ignore pin unpin &allow-other-keys) + (cl-destructuring-bind (name &key disable ignore pin unpin &allow-other-keys) package (when (and (not ignore) (not disable) (or pin unpin)) - (setf (alist-get (doom-package-recipe-repo (car package)) alist + (setf (alist-get (doom-package-recipe-repo name) alist nil 'remove #'equal) (unless unpin pin))))))) @@ -240,8 +240,11 @@ ones." "Return straight recipes for non-builtin packages with a local-repo." (let (recipes) (dolist (recipe (hash-table-values straight--recipe-cache)) - (with-plist! recipe (local-repo type) - (when (and local-repo (not (eq type 'built-in))) + (cl-destructuring-bind (&key local-repo type no-build &allow-other-keys) + recipe + (unless (or (null local-repo) + (eq type 'built-in) + no-build) (push recipe recipes)))) (nreverse recipes))) diff --git a/docs/api.org b/docs/api.org index dc9f3d2a5..749141a5a 100644 --- a/docs/api.org +++ b/docs/api.org @@ -388,7 +388,7 @@ These are side-by-side comparisons, showing how to bind keys with and without *** package! #+BEGIN_SRC elisp :eval no ;; To install a package that can be found on ELPA or any of the sources -;; specified in `doom-core-package-sources': +;; specified in `straight-recipe-repositories': (package! evil) (package! js2-mode) (package! rainbow-delimiters) From 22bc21a712444ec131a8e193ae9e56d75d1c1fe2 Mon Sep 17 00:00:00 2001 From: xeijin Date: Sun, 2 Feb 2020 23:16:47 +0000 Subject: [PATCH 26/73] windows: disable all-the-icons font install the command is actually fairly useless on windows anyway -- unless you are specifically running emacs with elevated privileges, you get the following error: ``` This will download and install fonts, are you sure you want to do this? (y or n) y Contacting host: raw.githubusercontent.com:443 mm-write-region: Opening output file: Permission denied, c:/Windows/Fonts/material-design-icons.ttf ``` --- core/cli/install.el | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/core/cli/install.el b/core/cli/install.el index 69efbcd5a..85da5b11e 100644 --- a/core/cli/install.el +++ b/core/cli/install.el @@ -80,14 +80,15 @@ DOOMDIR environment variable. e.g. (print! "Regenerating autoloads files") (doom-cli-reload-autoloads) - (if nofonts-p - (print! (warn "Not installing fonts, as requested")) - (when (or doom-auto-accept - (y-or-n-p "Download and install all-the-icon's fonts?")) - (require 'all-the-icons) - (let ((window-system (cond (IS-MAC 'ns) - (IS-LINUX 'x)))) - (all-the-icons-install-fonts 'yes)))) + (unless IS-WINDOWS + (if nofonts-p + (print! (warn "Not installing fonts, as requested")) + (when (or doom-auto-accept + (y-or-n-p "Download and install all-the-icon's fonts?")) + (require 'all-the-icons) + (let ((window-system (cond (IS-MAC 'ns) + (IS-LINUX 'x)))) + (all-the-icons-install-fonts 'yes))))) (when (file-exists-p "~/.emacs") (print! (warn "A ~/.emacs file was detected. This conflicts with Doom and should be deleted!"))) From 266ea5038c1b5888cbfe116cee30536546247559 Mon Sep 17 00:00:00 2001 From: xeijin Date: Sun, 2 Feb 2020 23:23:05 +0000 Subject: [PATCH 27/73] Update install.el --- core/cli/install.el | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/core/cli/install.el b/core/cli/install.el index 85da5b11e..1d64bb59b 100644 --- a/core/cli/install.el +++ b/core/cli/install.el @@ -80,15 +80,16 @@ DOOMDIR environment variable. e.g. (print! "Regenerating autoloads files") (doom-cli-reload-autoloads) - (unless IS-WINDOWS - (if nofonts-p - (print! (warn "Not installing fonts, as requested")) - (when (or doom-auto-accept - (y-or-n-p "Download and install all-the-icon's fonts?")) - (require 'all-the-icons) - (let ((window-system (cond (IS-MAC 'ns) - (IS-LINUX 'x)))) - (all-the-icons-install-fonts 'yes))))) + + (if nofonts-p + (print! (warn "Not installing fonts, as requested")) + (unless IS-WINDOWS + (when (or doom-auto-accept + (y-or-n-p "Download and install all-the-icon's fonts?")) + (require 'all-the-icons) + (let ((window-system (cond (IS-MAC 'ns) + (IS-LINUX 'x)))) + (all-the-icons-install-fonts 'yes))))) (when (file-exists-p "~/.emacs") (print! (warn "A ~/.emacs file was detected. This conflicts with Doom and should be deleted!"))) From f9e8cb2f0176721dd15311566204113a7e58d3c8 Mon Sep 17 00:00:00 2001 From: xeijin Date: Sun, 2 Feb 2020 23:39:42 +0000 Subject: [PATCH 28/73] adding warning message --- core/cli/install.el | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/cli/install.el b/core/cli/install.el index 1d64bb59b..0748323e1 100644 --- a/core/cli/install.el +++ b/core/cli/install.el @@ -79,11 +79,11 @@ DOOMDIR environment variable. e.g. (print! "Regenerating autoloads files") (doom-cli-reload-autoloads) - - + (if nofonts-p (print! (warn "Not installing fonts, as requested")) - (unless IS-WINDOWS + (if IS-WINDOWS + (print! (warn "Automated installation is not supported on Windows, see installation instructions: https://github.com/domtronn/all-the-icons.el#installing-fonts")) (when (or doom-auto-accept (y-or-n-p "Download and install all-the-icon's fonts?")) (require 'all-the-icons) From 8de0f62c529172d55378a98fbe0e9ffd4e4b4f7a Mon Sep 17 00:00:00 2001 From: xeijin Date: Sun, 2 Feb 2020 23:44:03 +0000 Subject: [PATCH 29/73] apply Henrik changes --- core/cli/install.el | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/core/cli/install.el b/core/cli/install.el index 0748323e1..719ca07b0 100644 --- a/core/cli/install.el +++ b/core/cli/install.el @@ -80,16 +80,22 @@ DOOMDIR environment variable. e.g. (print! "Regenerating autoloads files") (doom-cli-reload-autoloads) - (if nofonts-p - (print! (warn "Not installing fonts, as requested")) - (if IS-WINDOWS - (print! (warn "Automated installation is not supported on Windows, see installation instructions: https://github.com/domtronn/all-the-icons.el#installing-fonts")) - (when (or doom-auto-accept - (y-or-n-p "Download and install all-the-icon's fonts?")) + (cond (nofonts-p) + (IS-WINDOWS + (print! (warn "Doom cannot install all-the-icons' fonts on Windows!\n")) + (print-group! + (print! + (concat "You'll have to do so manually:\n\n" + " 1. Launch Doom Emacs\n" + " 2. Execute 'M-x all-the-icons-install-fonts' to download the fonts\n" + " 3. Open the download location in windows explorer\n" + " 4. Open each font file to install them")))) + ((or doom-auto-accept + (y-or-n-p "Download and install all-the-icon's fonts?")) (require 'all-the-icons) (let ((window-system (cond (IS-MAC 'ns) (IS-LINUX 'x)))) - (all-the-icons-install-fonts 'yes))))) + (all-the-icons-install-fonts 'yes)))) (when (file-exists-p "~/.emacs") (print! (warn "A ~/.emacs file was detected. This conflicts with Doom and should be deleted!"))) From 65f859cf4d93330015530a508fc46d74fdb18998 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 2 Feb 2020 22:10:09 -0500 Subject: [PATCH 30/73] Bump to hlissner/emacs-doom-themes@aa215ed --- modules/ui/doom/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ui/doom/packages.el b/modules/ui/doom/packages.el index ed58f0f9a..d396bbc5a 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 "d48df7b02e") +(package! doom-themes :pin "aa215edcc2") (package! solaire-mode :pin "4ac324ccb0") From 93fa5edf2fd57e3f2310a804dd2464b3643bd84e Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 2 Feb 2020 22:33:53 -0500 Subject: [PATCH 31/73] Bump to mhayashi1120/wgrep@e67e737 --- modules/completion/ivy/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/completion/ivy/packages.el b/modules/completion/ivy/packages.el index 484e3ed6e..47e935078 100644 --- a/modules/completion/ivy/packages.el +++ b/modules/completion/ivy/packages.el @@ -9,7 +9,7 @@ (package! amx :pin "3af93ca066") (package! counsel-projectile :pin "cadc6de707") (package! ivy-rich :pin "7bfc7262fd") -(package! wgrep :pin "379afd89eb") +(package! wgrep :pin "e67e737184") (if (featurep! +prescient) (package! ivy-prescient :pin "7fd8c3b802") From 1cacfcf9627c2ec9116eafc118ab0cf874e9fd1b Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 3 Feb 2020 13:01:46 -0500 Subject: [PATCH 32/73] Fix #2479 --- core/autoload/projects.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/autoload/projects.el b/core/autoload/projects.el index e3b924b13..edce48b76 100644 --- a/core/autoload/projects.el +++ b/core/autoload/projects.el @@ -1,7 +1,7 @@ ;;; core/autoload/projects.el -*- lexical-binding: t; -*- +(defvar projectile-project-root nil) (defvar projectile-enable-caching) -(defvar projectile-project-root) (defvar projectile-require-project-root) ;;;###autoload (autoload 'projectile-relevant-known-projects "projectile") From 06c604503a32943f331404f07dda24deac052832 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 3 Feb 2020 13:27:43 -0500 Subject: [PATCH 33/73] Don't auto-fill in latex math/markdonw code blocks Fixes #2453 --- modules/lang/latex/config.el | 7 +++++-- modules/lang/markdown/config.el | 4 ++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/modules/lang/latex/config.el b/modules/lang/latex/config.el index 7e1e6d101..48a2e19c0 100644 --- a/modules/lang/latex/config.el +++ b/modules/lang/latex/config.el @@ -48,8 +48,11 @@ If no viewers are found, `latex-preview-pane' is used.") (setq-default TeX-master t) ;; set-up chktex (setcar (cdr (assoc "Check" TeX-command-list)) "chktex -v6 -H %s") - ;; tell emacs how to parse tex files - (setq-hook! 'TeX-mode-hook ispell-parser 'tex) + (setq-hook! 'TeX-mode-hook + ;; tell emacs how to parse tex files + ispell-parser 'tex + ;; Don't auto-fill in math blocks + fill-nobreak-predicate (cons #'texmathp fill-nobreak-predicate)) ;; Enable word wrapping (add-hook 'TeX-mode-hook #'visual-line-mode) ;; Fold TeX macros diff --git a/modules/lang/markdown/config.el b/modules/lang/markdown/config.el index 819bcc3ec..897800e44 100644 --- a/modules/lang/markdown/config.el +++ b/modules/lang/markdown/config.el @@ -48,6 +48,10 @@ capture, the end position, and the output buffer.") (set-lookup-handlers! '(markdown-mode gfm-mode) :file #'markdown-follow-thing-at-point) + (setq-hook! 'markdown-mode-hook + fill-nobreak-predicate (cons #'markdown-code-block-at-point-p + fill-nobreak-predicate)) + ;; HACK Prevent mis-fontification of YAML metadata blocks in `markdown-mode' ;; which occurs when the first line contains a colon in it. See ;; https://github.com/jrblevin/markdown-mode/issues/328. From a933c5a47543890a7467245d8ccc7d95b809fe58 Mon Sep 17 00:00:00 2001 From: Seong Yong-ju Date: Tue, 4 Feb 2020 12:48:27 +0900 Subject: [PATCH 34/73] Bump to Fuco1/smartparens@be8d5c9a63 --- core/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/packages.el b/core/packages.el index aa937738a..2cbb93469 100644 --- a/core/packages.el +++ b/core/packages.el @@ -19,7 +19,7 @@ (when IS-MAC (package! ns-auto-titlebar :pin "1efc30d385")) (package! pcre2el :pin "0b5b2a2c17") -(package! smartparens :pin "9449ae0859") +(package! smartparens :pin "be8d5c9a63") (package! so-long :built-in 'prefer ; included in Emacs 27+ ;; REVIEW so-long is slated to be published to ELPA eventually, but until then From 86384b8533899e46478d967505934f842eab85bf Mon Sep 17 00:00:00 2001 From: Seong Yong-ju Date: Tue, 4 Feb 2020 20:42:57 +0900 Subject: [PATCH 35/73] Bump to hlissner/doom-snippets@2781b782a3 --- modules/editor/snippets/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/editor/snippets/packages.el b/modules/editor/snippets/packages.el index f7b347f1c..a75cce163 100644 --- a/modules/editor/snippets/packages.el +++ b/modules/editor/snippets/packages.el @@ -7,4 +7,4 @@ :recipe (:host github :repo "hlissner/doom-snippets" :files ("*.el" "*")) - :pin "22c96ef548") + :pin "2781b782a3") From 1575300ad4f06328ae1fba46626ce2bd9ce5841b Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 4 Feb 2020 13:58:43 -0500 Subject: [PATCH 36/73] Add iu/au text-object for urls #2484 --- modules/editor/evil/autoload/textobjects.el | 30 +++++++++++++++++++++ modules/editor/evil/config.el | 1 + 2 files changed, 31 insertions(+) diff --git a/modules/editor/evil/autoload/textobjects.el b/modules/editor/evil/autoload/textobjects.el index bdadf229c..a1c53b03f 100644 --- a/modules/editor/evil/autoload/textobjects.el +++ b/modules/editor/evil/autoload/textobjects.el @@ -11,3 +11,33 @@ (cl-destructuring-bind (beg . end) (bounds-of-thing-at-point 'defun) (evil-range beg end type))) + +;;;###autoload (autoload '+evil:inner-url-txtobj "editor/evil/autoload/textobjects" nil nil) +(evil-define-text-object +evil:inner-url-txtobj (count &optional _beg _end type) + "Text object to select the inner url at point. + +This excludes the protocol and querystring." + (cl-destructuring-bind (beg . end) + (bounds-of-thing-at-point 'url) + (evil-range + (save-excursion + (goto-char beg) + (re-search-forward "://" end t)) + (save-excursion + (goto-char end) + (- (if-let (pos (re-search-backward "[?#]" beg t)) + pos + end) + (if (evil-visual-state-p) + 1 + 0))) + type))) + +;;;###autoload (autoload '+evil:outer-url-txtobj "editor/evil/autoload/textobjects" nil nil) +(evil-define-text-object +evil:outer-url-txtobj (count &optional _beg _end type) + "Text object to select the whole url at point." + (cl-destructuring-bind (beg . end) + (bounds-of-thing-at-point 'url) + (evil-range + beg (- end (if (evil-visual-state-p) 1 0)) + type))) diff --git a/modules/editor/evil/config.el b/modules/editor/evil/config.el index bb225764c..3a57ce55d 100644 --- a/modules/editor/evil/config.el +++ b/modules/editor/evil/config.el @@ -548,6 +548,7 @@ To change these keys see `+evil-repeat-keys'." :textobj "i" #'evil-indent-plus-i-indent #'evil-indent-plus-a-indent :textobj "j" #'evil-indent-plus-i-indent-up-down #'evil-indent-plus-a-indent-up-down :textobj "k" #'evil-indent-plus-i-indent-up #'evil-indent-plus-a-indent-up + :textobj "u" #'+evil:inner-url-txtobj #'+evil:outer-url-txtobj :textobj "x" #'evil-inner-xml-attr #'evil-outer-xml-attr ;; evil-easymotion (see `+evil/easymotion') From 75e7466ad93bb982fd7e54c598b1ea879909127e Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 4 Feb 2020 21:02:26 -0500 Subject: [PATCH 37/73] Remove gsw binding to evil-snipe Not sure how that got there. --- modules/editor/evil/config.el | 5 ----- 1 file changed, 5 deletions(-) diff --git a/modules/editor/evil/config.el b/modules/editor/evil/config.el index 3a57ce55d..2ee9f58c7 100644 --- a/modules/editor/evil/config.el +++ b/modules/editor/evil/config.el @@ -557,11 +557,6 @@ To change these keys see `+evil-repeat-keys'." "a" (evilem-create #'evil-forward-arg) "A" (evilem-create #'evil-backward-arg) "s" #'evil-avy-goto-char-2 - "w" (evilem-create #'evil-snipe-repeat - :pre-hook (save-excursion (call-interactively #'evil-snipe-f)) - :bind ((evil-snipe-scope 'visible) - (evil-snipe-enable-highlight) - (evil-snipe-enable-incremental-highlight))) "SPC" (λ!! #'evil-avy-goto-char-timer t) "/" #'evil-avy-goto-char-timer)) From 688b7c0a760ac45888242c3b50f16183252894be Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 5 Feb 2020 11:10:59 -0500 Subject: [PATCH 38/73] Bump to seagle0128/doom-modeline@31a5ae99b8 --- modules/ui/modeline/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ui/modeline/packages.el b/modules/ui/modeline/packages.el index 46b55cc28..a342d2ba8 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 "159fe50fbd")) + (package! doom-modeline :pin "31a5ae99b8")) (package! anzu :pin "592f8ee6d0") (when (featurep! :editor evil) (package! evil-anzu :pin "9bca6ca14d")) From 53f1293955118190cedf96abc9d1048d614d4728 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 6 Feb 2020 13:33:48 -0500 Subject: [PATCH 39/73] Bump to seagle0128/grip-mode@1a61bb7 From seagle0128/grip-mode@cbf20fd --- modules/lang/markdown/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/lang/markdown/packages.el b/modules/lang/markdown/packages.el index 7b0c60f74..da473ffe8 100644 --- a/modules/lang/markdown/packages.el +++ b/modules/lang/markdown/packages.el @@ -6,7 +6,7 @@ (package! edit-indirect :pin "935ded353b") (when (featurep! +grip) - (package! grip-mode :pin "cbf20fd131")) + (package! grip-mode :pin "1a61bb71a7")) (when (featurep! :editor evil +everywhere) (package! evil-markdown From c912d78afee8367f385947eb08647f772a851746 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 6 Feb 2020 13:34:14 -0500 Subject: [PATCH 40/73] Bump to company-mode/company-mode@9de9905 From company-mode/company-mode@d505356 --- modules/completion/company/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/completion/company/packages.el b/modules/completion/company/packages.el index eda8b3c16..87a5be858 100644 --- a/modules/completion/company/packages.el +++ b/modules/completion/company/packages.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; -*- ;;; completion/company/packages.el -(package! company :pin "d5053561cb") +(package! company :pin "9de9905ed2") (package! company-dict :pin "cd7b8394f6") (package! company-prescient :pin "7fd8c3b802") (when (featurep! +childframe) From 65b2d50e055907e9a6d271b07f8013514ff955aa Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 6 Feb 2020 13:35:36 -0500 Subject: [PATCH 41/73] Bump to lassik/emacs-format-all-the-code@f57a2a8 From lassik/emacs-format-all-the-code@d126830 --- modules/editor/format/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/editor/format/packages.el b/modules/editor/format/packages.el index 752c0ef77..e56316cac 100644 --- a/modules/editor/format/packages.el +++ b/modules/editor/format/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; editor/format/packages.el -(package! format-all :pin "d126830a73") +(package! format-all :pin "f57a2a8abb") From 450eed72686629b1a4719c0b7c3563620f3b7796 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 6 Feb 2020 15:18:50 -0500 Subject: [PATCH 42/73] Bump to vspinu/company-math@a796053 From vspinu/company-math@600e494 --- modules/lang/latex/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/lang/latex/packages.el b/modules/lang/latex/packages.el index 9d0a2e206..608934c61 100644 --- a/modules/lang/latex/packages.el +++ b/modules/lang/latex/packages.el @@ -15,7 +15,7 @@ (when (featurep! :completion company) (package! company-auctex :pin "48c42c58ce") (package! company-reftex :pin "33935e9654") - (package! company-math :pin "600e494496")) + (package! company-math :pin "a796053590")) (when (featurep! :completion ivy) (package! ivy-bibtex :pin "d4471232be")) (when (featurep! :completion helm) From 5eeb3626102c9e5faa7128f72e1af0ec0b17958c Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 6 Feb 2020 13:39:21 -0500 Subject: [PATCH 43/73] Ensure workspace in insertion order Closes #2488 Fixes #2487 --- modules/ui/workspaces/autoload/workspaces.el | 7 ++++--- modules/ui/workspaces/config.el | 11 +++++++---- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/modules/ui/workspaces/autoload/workspaces.el b/modules/ui/workspaces/autoload/workspaces.el index 72fd29292..6289cb8e4 100644 --- a/modules/ui/workspaces/autoload/workspaces.el +++ b/modules/ui/workspaces/autoload/workspaces.el @@ -68,13 +68,14 @@ error if NAME doesn't exist." "Return a list of workspace structs (satisifes `+workspace-p')." ;; We don't use `hash-table-values' because it doesn't ensure order in older ;; versions of Emacs - (cdr (cl-loop for persp being the hash-values of *persp-hash* - collect persp))) + (cl-loop for name in persp-names-cache + if (gethash name *persp-hash*) + collect it)) ;;;###autoload (defun +workspace-list-names () "Return the list of names of open workspaces." - (mapcar #'safe-persp-name (+workspace-list))) + persp-names-cache) ;;;###autoload (defun +workspace-buffer-list (&optional persp) diff --git a/modules/ui/workspaces/config.el b/modules/ui/workspaces/config.el index c7581a44b..d54107f29 100644 --- a/modules/ui/workspaces/config.el +++ b/modules/ui/workspaces/config.el @@ -76,10 +76,13 @@ stored in `persp-save-dir'.") "Ensure a main workspace exists." (when persp-mode (let (persp-before-switch-functions) - ;; The default perspective persp-mode creates (`persp-nil-name') is - ;; special and doesn't represent a real persp object, so buffers can't - ;; really be assigned to it, among other quirks. We create a *real* main - ;; workspace to fill this role. + ;; The default perspective persp-mode creates is special and doesn't + ;; represent a real persp object, so buffers can't really be assigned + ;; to it, among other quirks. We hide the nil persp... + (when (equal (car persp-names-cache) persp-nil-name) + (pop persp-names-cache)) + ;; ...and create a *real* main workspace to fill this role, and hide + ;; the nil perspective. (unless (or (persp-get-by-name +workspaces-main) ;; Start from 2 b/c persp-mode counts the nil workspace (> (hash-table-count *persp-hash*) 2)) From 3ab70d78eb6600836758f48064dbb1b24d36ffcd Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 6 Feb 2020 15:17:29 -0500 Subject: [PATCH 44/73] Add +workspace/swap-{left,right} commands For changing the order of workspaces. Relevant to #2488, #2487 --- modules/ui/workspaces/autoload/workspaces.el | 25 ++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/modules/ui/workspaces/autoload/workspaces.el b/modules/ui/workspaces/autoload/workspaces.el index 6289cb8e4..74ee32b89 100644 --- a/modules/ui/workspaces/autoload/workspaces.el +++ b/modules/ui/workspaces/autoload/workspaces.el @@ -404,6 +404,31 @@ the next." ((+workspace-error "Can't delete last workspace" t))))))) +;;;###autoload +(defun +workspace/swap-left (&optional count) + "Swap the current workspace with the COUNTth workspace on its left." + (interactive "p") + (let* ((current-name (+workspace-current-name)) + (count (or count 1)) + (index (- (cl-position current-name persp-names-cache :test #'equal) + count)) + (names (remove current-name persp-names-cache))) + (unless names + (user-error "Only one workspace")) + (let ((index (min (max 0 index) (length names)))) + (setq persp-names-cache + (append (cl-subseq names 0 index) + (list current-name) + (cl-subseq names index)))) + (when (called-interactively-p 'any) + (+workspace/display)))) + +;;;###autoload +(defun +workspace/swap-right (&optional count) + "Swap the current workspace with the COUNTth workspace on its right." + (interactive "p") + (funcall-interactively #'+workspace/swap-left (- count))) + ;; ;;; Tabs display in minibuffer From 7eafc543476922d43222d65379e55c89baa1586e Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 6 Feb 2020 14:14:36 -0500 Subject: [PATCH 45/73] Fix code-folding at EOL when cursor isn't at EOL --- modules/editor/fold/autoload/fold.el | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/editor/fold/autoload/fold.el b/modules/editor/fold/autoload/fold.el index 7105885d9..69726ebaa 100644 --- a/modules/editor/fold/autoload/fold.el +++ b/modules/editor/fold/autoload/fold.el @@ -27,7 +27,10 @@ (save-excursion (ignore-errors (or (hs-looking-at-block-start-p) - (hs-find-block-beginning))))) + (hs-find-block-beginning) + (unless (eolp) + (end-of-line) + (+fold--hideshow-fold-p)))))) (defun +fold--invisible-points (count) (let (points) From a4293b53a174379c4f6ea3202aec72c405ee385f Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 6 Feb 2020 14:48:05 -0500 Subject: [PATCH 46/73] Enable rustic-clippy checker in LSP's absence --- modules/lang/rust/config.el | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/lang/rust/config.el b/modules/lang/rust/config.el index 0e80f7d58..1435d7c1a 100644 --- a/modules/lang/rust/config.el +++ b/modules/lang/rust/config.el @@ -28,8 +28,10 @@ (add-hook 'rustic-mode-hook #'rainbow-delimiters-mode) - (when (featurep! +lsp) - (add-hook 'rustic-mode-local-vars-hook #'lsp!)) + (if (featurep! +lsp) + (add-hook 'rustic-mode-local-vars-hook #'lsp!) + (after! rustic-flycheck + (add-to-list 'flycheck-checkers 'rustic-clippy))) (map! :map rustic-mode-map :localleader From 77e58609d43df9facf721248e024f5e845f0a09c Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 6 Feb 2020 15:27:03 -0500 Subject: [PATCH 47/73] doom/update-pinned-package-form: improve error feedback --- core/autoload/packages.el | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/core/autoload/packages.el b/core/autoload/packages.el index 0a6b581b8..56a4753d1 100644 --- a/core/autoload/packages.el +++ b/core/autoload/packages.el @@ -297,25 +297,29 @@ Grabs the latest commit id of the package using 'git'." (user-error "Not on a `package!' call") (backward-char) (let* ((recipe (cdr (sexp-at-point))) - (name (car recipe)) + (package (car recipe)) + (oldid (doom-package-get package :pin)) (id (cdr (doom-call-process "git" "ls-remote" (straight-vc-git--destructure (doom-plist-merge (plist-get (cdr recipe) :recipe) - (or (cdr (straight-recipes-retrieve name)) - (plist-get (cdr (assq name doom-packages)) :recipe))) + (or (cdr (straight-recipes-retrieve package)) + (plist-get (cdr (assq package doom-packages)) :recipe))) (upstream-repo upstream-host) (straight-vc-git--encode-url upstream-repo upstream-host)))))) (unless id - (user-error "No id for %S package" name)) + (user-error "No id for %S package" package)) (let* ((id (if select (car (split-string (completing-read "Commit: " (split-string id "\n" t)))) (car (split-string id)))) (id (substring id 0 10))) - (if (re-search-forward ":pin +\"\\([^\"]+\\)\"" (cdr (bounds-of-thing-at-point 'sexp)) t) - (replace-match id t t nil 1) - (thing-at-point--end-of-sexp) - (backward-char) - (insert " :pin " (prin1-to-string id)))))))) + (if (and oldid (string-match-p (concat "^" oldid) id)) + (user-error "No update necessary") + (if (re-search-forward ":pin +\"\\([^\"]+\\)\"" (cdr (bounds-of-thing-at-point 'sexp)) t) + (replace-match id t t nil 1) + (thing-at-point--end-of-sexp) + (backward-char) + (insert " :pin " (prin1-to-string id))) + (message "Updated %S: %s -> %s" package oldid id))))))) From 5a8fb8173951fc3603c7ca63f6d2403dfc644b58 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 6 Feb 2020 15:28:51 -0500 Subject: [PATCH 48/73] Adjust visual-fill-column after text scaling --- modules/ui/zen/config.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/ui/zen/config.el b/modules/ui/zen/config.el index 487b11d6a..7be558f92 100644 --- a/modules/ui/zen/config.el +++ b/modules/ui/zen/config.el @@ -20,7 +20,8 @@ (defun +zen-enable-text-scaling-mode-h () "Enable `mixed-pitch-mode' when in `+zen-mixed-pitch-modes'." (when (/= +zen-text-scale 0) - (text-scale-set (if writeroom-mode +zen-text-scale 0))))) + (text-scale-set (if writeroom-mode +zen-text-scale 0)) + (visual-fill-column-adjust)))) ;; Adjust margins when text size is changed (advice-add #'text-scale-adjust :after #'visual-fill-column-adjust)) From 7afa8a7e902e44c9a11e29c23a2b673ef9c1345a Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 6 Feb 2020 15:29:28 -0500 Subject: [PATCH 49/73] Refactor tools/direnv --- modules/tools/direnv/config.el | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/modules/tools/direnv/config.el b/modules/tools/direnv/config.el index 69c1824d8..04abdab15 100644 --- a/modules/tools/direnv/config.el +++ b/modules/tools/direnv/config.el @@ -1,6 +1,6 @@ ;;; tools/direnv/config.el -*- lexical-binding: t; -*- -(defvar +direnv--keywords +(defvar +direnv-keywords '("direnv_layout_dir" "PATH_add" "path_add" "log_status" "log_error" "has" "join_args" "expand_path" "dotenv" "user_rel_path" "find_up" "source_env" "watch_file" "source_up" "direnv_load" "MANPATH_add" "load_prefix" "layout" @@ -12,22 +12,18 @@ ;;; Packages (use-package! direnv - :after-call after-find-file dired-initial-position-hook + :hook (before-hack-local-variables . direnv--maybe-update-environment) + :hook (flycheck-before-syntax-check . direnv--maybe-update-environment) + :hook (direnv-envrc-mode . +direnv-envrc-fontify-keywords-h) :config - ;; Fontify special .envrc keywords; it's a good indication of whether or not - ;; we've typed them correctly. - (add-hook! 'direnv-envrc-mode-hook - (defun +direnv-envrc-fontify-keywords-h () - (font-lock-add-keywords - nil `((,(regexp-opt +direnv--keywords 'symbols) - (0 font-lock-keyword-face)))))) + (add-to-list 'direnv-non-file-modes 'vterm-mode) - (defadvice! +direnv-update-a (&rest _) - "Update direnv. Useful to advise functions that may run -environment-sensitive logic like `flycheck-default-executable-find'. This fixes -flycheck issues with direnv and on nix." - :before #'flycheck-default-executable-find - (direnv--maybe-update-environment)) + (defun +direnv-envrc-fontify-keywords-h () + "Fontify special .envrc keywords; it's a good indication of whether or not +we've typed them correctly." + (font-lock-add-keywords + nil `((,(regexp-opt +direnv-keywords 'symbols) + (0 font-lock-keyword-face))))) (defadvice! +direnv--fail-gracefully-a (&rest _) "Don't try to use direnv if the executable isn't present." From 1910453e29b652ba3370b694125f9f914ea81914 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 6 Feb 2020 15:30:50 -0500 Subject: [PATCH 50/73] The byte-compiler ate my baby --- core/autoload/fonts.el | 3 +- core/autoload/packages.el | 2 +- modules/lang/emacs-lisp/autoload.el | 4 +- modules/term/eshell/autoload/company.el | 53 +++++++++++++------------ modules/tools/lookup/autoload/lookup.el | 2 +- modules/ui/modeline/autoload.el | 12 ++---- 6 files changed, 36 insertions(+), 40 deletions(-) diff --git a/core/autoload/fonts.el b/core/autoload/fonts.el index f1d9f1b58..8df22d185 100644 --- a/core/autoload/fonts.el +++ b/core/autoload/fonts.el @@ -44,8 +44,7 @@ FRAME parameter defaults to current frame." (let* ((font (frame-parameter nil 'font)) (font (doom--font-name font)) (increment (* increment doom-font-increment)) - (zoom-factor (or doom--font-scale 0)) - success) + (zoom-factor (or doom--font-scale 0))) (let ((new-size (+ (string-to-number (aref font xlfd-regexp-pixelsize-subnum)) increment))) (unless (> new-size 0) diff --git a/core/autoload/packages.el b/core/autoload/packages.el index 56a4753d1..9d6d7eed0 100644 --- a/core/autoload/packages.el +++ b/core/autoload/packages.el @@ -54,7 +54,7 @@ (car (gethash (symbol-name package) straight--build-cache))) ;;;###autoload -(defun doom-package-dependencies (package &optional recursive noerror) +(defun doom-package-dependencies (package &optional recursive _noerror) "Return a list of dependencies for a package." (let ((deps (nth 1 (gethash (symbol-name package) straight--build-cache)))) (if recursive diff --git a/modules/lang/emacs-lisp/autoload.el b/modules/lang/emacs-lisp/autoload.el index cdbf89ff2..6941ebfb5 100644 --- a/modules/lang/emacs-lisp/autoload.el +++ b/modules/lang/emacs-lisp/autoload.el @@ -88,7 +88,7 @@ library/userland functions" ((and (symbolp (setq module (sexp-at-point))) (string-prefix-p "+" (symbol-name module))) (while (symbolp (sexp-at-point)) - (beginning-of-sexp)) + (thing-at-point--beginning-of-sexp)) (setq flag module module (car (sexp-at-point))) (when (re-search-backward "\\_<:\\w+\\_>" nil t) @@ -99,7 +99,7 @@ library/userland functions" (list category module flag)))))))) ;;;###autoload -(defun +emacs-lisp-lookup-definition (thing) +(defun +emacs-lisp-lookup-definition (_thing) "Lookup definition of THING." (if-let (module (+emacs-lisp--module-at-point)) (doom/help-modules (car module) (cadr module) 'visit-dir) diff --git a/modules/term/eshell/autoload/company.el b/modules/term/eshell/autoload/company.el index 94d0662ce..22dfd6b4c 100644 --- a/modules/term/eshell/autoload/company.el +++ b/modules/term/eshell/autoload/company.el @@ -3,37 +3,38 @@ ;; REVIEW Refactor me -(defvar pcomplete-suffix-list) (defvar company-pcomplete-available 'unknown) (defun company-pcomplete--prefix () - (let* ((pcomplete-stub) - pcomplete-seen - pcomplete-norm-func - pcomplete-args - pcomplete-last pcomplete-index - (pcomplete-autolist pcomplete-autolist) - (pcomplete-suffix-list pcomplete-suffix-list)) - (pcomplete-completions) - (buffer-substring (pcomplete-begin) (point)))) + (with-no-warnings + (let* ((pcomplete-stub) + pcomplete-seen + pcomplete-norm-func + pcomplete-args + pcomplete-last pcomplete-index + (pcomplete-autolist pcomplete-autolist) + (pcomplete-suffix-list pcomplete-suffix-list)) + (pcomplete-completions) + (buffer-substring (pcomplete-begin) (point))))) (defun company-pcomplete--candidates () - (let* ((pcomplete-stub) - (pcomplete-show-list t) - pcomplete-seen pcomplete-norm-func - pcomplete-args pcomplete-last pcomplete-index - (pcomplete-autolist pcomplete-autolist) - (pcomplete-suffix-list pcomplete-suffix-list) - (candidates (pcomplete-completions)) - (prefix (buffer-substring (pcomplete-begin) (point))) - ;; Collect all possible completions for the current stub - (cnds (all-completions pcomplete-stub candidates)) - (bnds (completion-boundaries pcomplete-stub candidates nil "")) - (skip (- (length pcomplete-stub) (car bnds)))) - ;; Replace the stub at the beginning of each candidate by the prefix - (mapcar (lambda (cand) - (concat prefix (substring cand skip))) - cnds))) + (with-no-warnings + (let* ((pcomplete-stub) + (pcomplete-show-list t) + pcomplete-seen pcomplete-norm-func + pcomplete-args pcomplete-last pcomplete-index + (pcomplete-autolist pcomplete-autolist) + (pcomplete-suffix-list pcomplete-suffix-list) + (candidates (pcomplete-completions)) + (prefix (buffer-substring (pcomplete-begin) (point))) + ;; Collect all possible completions for the current stub + (cnds (all-completions pcomplete-stub candidates)) + (bnds (completion-boundaries pcomplete-stub candidates nil "")) + (skip (- (length pcomplete-stub) (car bnds)))) + ;; Replace the stub at the beginning of each candidate by the prefix + (mapcar (lambda (cand) + (concat prefix (substring cand skip))) + cnds)))) ;;;###autoload (defun company-pcomplete-available () diff --git a/modules/tools/lookup/autoload/lookup.el b/modules/tools/lookup/autoload/lookup.el index 352a1d4bc..6501134f4 100644 --- a/modules/tools/lookup/autoload/lookup.el +++ b/modules/tools/lookup/autoload/lookup.el @@ -335,7 +335,7 @@ Otherwise, falls back on `find-file-at-point'." ((user-error "No dictionary backend is available")))) ;;;###autoload -(defun +lookup/synonyms (identifier &optional arg) +(defun +lookup/synonyms (identifier &optional _arg) "Look up and insert a synonym for the word at point (or selection)." (interactive (list (doom-thing-at-point-or-region 'word) ; TODO actually use this diff --git a/modules/ui/modeline/autoload.el b/modules/ui/modeline/autoload.el index 8f3eb1839..58ecd562b 100644 --- a/modules/ui/modeline/autoload.el +++ b/modules/ui/modeline/autoload.el @@ -21,14 +21,10 @@ Meant for `doom-change-font-size-hook'." (setq +modeline--old-bar-height doom-modeline-height)) (let ((default-height +modeline--old-bar-height) (scale (or (frame-parameter nil 'font-scale) 0))) - (if (> scale 0) - (let ((font-size (string-to-number - (aref (doom--font-name (frame-parameter nil 'font) - (selected-frame)) - xlfd-regexp-pixelsize-subnum))) - (scale (frame-parameter nil 'font-scale))) - (setq doom-modeline-height (+ default-height (* scale doom-font-increment)))) - (setq doom-modeline-height default-height)))) + (setq doom-modeline-height + (if (> scale 0) + (+ default-height (* scale doom-font-increment)) + default-height)))) ;;;###autoload (defun +modeline-update-env-in-all-windows-h (&rest _) From 92f8ce562cead3c6d187466a1b185b0b12c1f04f Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 6 Feb 2020 15:31:40 -0500 Subject: [PATCH 51/73] Fix dir-locals targeting fundamental-mode while evil-mode is active #2493 Due to hack upstream, in evil --- modules/editor/evil/config.el | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules/editor/evil/config.el b/modules/editor/evil/config.el index 2ee9f58c7..111b40e05 100644 --- a/modules/editor/evil/config.el +++ b/modules/editor/evil/config.el @@ -156,6 +156,14 @@ directives. By default, this only recognizes C directives.") (advice-add #'evil-open-above :around #'+evil--insert-newline-above-and-respect-comments-a) (advice-add #'evil-open-below :around #'+evil--insert-newline-below-and-respect-comments-a) + ;; REVIEW Fix #2493: dir-locals cannot target fundamental-mode when evil-mode + ;; is active. See https://github.com/hlissner/doom-emacs/issues/2493. + ;; Revert this if this is ever fixed upstream. + (defadvice! fix-local-vars (&rest _) + :before #'turn-on-evil-mode + (when (eq major-mode 'fundamental-mode) + (hack-local-variables))) + ;; Recenter screen after most searches (dolist (fn '(evil-visualstar/begin-search-forward evil-visualstar/begin-search-backward From 22bf716e431dd3c32662ee272b65b50300d28720 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 6 Feb 2020 15:50:12 -0500 Subject: [PATCH 52/73] Fix gf/find-file-at-point in c-mode --- modules/lang/cc/config.el | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/lang/cc/config.el b/modules/lang/cc/config.el index 09d03513f..51d171790 100644 --- a/modules/lang/cc/config.el +++ b/modules/lang/cc/config.el @@ -110,7 +110,10 @@ This is ignored by ccls.") (label . 0)))) (when (listp c-default-style) - (setf (alist-get 'other c-default-style) "doom"))) + (setf (alist-get 'other c-default-style) "doom")) + + (after! ffap + (add-to-list 'ffap-list '(c-mode . ffap-c-mode)))) (use-package! modern-cpp-font-lock From eca387d670b3265202896b6cbe51adc15a0ca4c5 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 6 Feb 2020 16:44:58 -0500 Subject: [PATCH 53/73] Refactor +lookup/file & update :file handlers + Removed idris-mode's file handler. It doesn't do what I thought it did. + Fix markdown-follow-thing-at-point file handler creating empty buffer. --- modules/lang/idris/config.el | 3 +-- modules/lang/markdown/config.el | 4 ++- modules/tools/lookup/autoload/lookup.el | 34 ++++++------------------- 3 files changed, 12 insertions(+), 29 deletions(-) diff --git a/modules/lang/idris/config.el b/modules/lang/idris/config.el index 249fd2d08..408a3b0fe 100644 --- a/modules/lang/idris/config.el +++ b/modules/lang/idris/config.el @@ -4,8 +4,7 @@ (add-hook 'idris-mode-hook #'turn-on-idris-simple-indent) (set-repl-handler! 'idris-mode 'idris-pop-to-repl) (set-lookup-handlers! 'idris-mode - :documentation #'idris-docs-at-point - :file #'idris-load-file) + :documentation #'idris-docs-at-point) (map! :localleader :map idris-mode-map "r" #'idris-load-file diff --git a/modules/lang/markdown/config.el b/modules/lang/markdown/config.el index 897800e44..3ab052322 100644 --- a/modules/lang/markdown/config.el +++ b/modules/lang/markdown/config.el @@ -46,7 +46,9 @@ capture, the end position, and the output buffer.") (set-flyspell-predicate! '(markdown-mode gfm-mode) #'+markdown-flyspell-word-p) (set-lookup-handlers! '(markdown-mode gfm-mode) - :file #'markdown-follow-thing-at-point) + ;; `markdown-follow-thing-at-point' may open an external program or a + ;; buffer. No good way to tell, so pretend it's async. + :file '(markdown-follow-thing-at-point :async t)) (setq-hook! 'markdown-mode-hook fill-nobreak-predicate (cons #'markdown-code-block-at-point-p diff --git a/modules/tools/lookup/autoload/lookup.el b/modules/tools/lookup/autoload/lookup.el index 6501134f4..7b012e256 100644 --- a/modules/tools/lookup/autoload/lookup.el +++ b/modules/tools/lookup/autoload/lookup.el @@ -281,34 +281,16 @@ Otherwise, falls back on `find-file-at-point'." (if ffap-url-regexp "Find file or URL: " "Find file: ") (doom-thing-at-point-or-region)))))) (require 'ffap) - (cond ((not path) - (call-interactively #'find-file-at-point)) + (cond ((and path + buffer-file-name + (file-equal-p path buffer-file-name) + (user-error "Already here"))) - ((ffap-url-p path) - (find-file-at-point path)) + ((+lookup--jump-to :file path)) - ((not (+lookup--jump-to :file path)) - (let ((fullpath (doom-path path))) - (when (and buffer-file-name (file-equal-p fullpath buffer-file-name)) - (user-error "Already here")) - (let* ((insert-default-directory t) - (project-root (doom-project-root)) - (ffap-file-finder - (cond ((not (doom-glob fullpath)) - #'find-file) - ((ignore-errors (file-in-directory-p fullpath project-root)) - (lambda (dir) - (let* ((default-directory dir) - projectile-project-name - projectile-project-root - (projectile-project-root-cache (make-hash-table :test 'equal)) - (file (projectile-completing-read "Find file: " - (projectile-current-project-files) - :initial-input path))) - (find-file (expand-file-name file (doom-project-root))) - (run-hooks 'projectile-find-file-hook)))) - (#'doom-project-browse)))) - (find-file-at-point path)))))) + ((stringp path) (find-file-at-point path)) + + ((call-interactively #'find-file-at-point)))) ;; From 8243c86f4027d93952daea6b6458e6b84b6e877a Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 6 Feb 2020 17:17:05 -0500 Subject: [PATCH 54/73] Bump haskell-mode, dante & intero haskell/haskell-mode@3cf99d7 -> haskell/haskell-mode@4a87d72 chrisdone/intero@30d8e73 -> chrisdone/intero@fdb0550 jyp/dante@3e532e8 -> jyp/dante@4955bc7 --- modules/lang/haskell/packages.el | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/lang/haskell/packages.el b/modules/lang/haskell/packages.el index 69ced970b..24d936e95 100644 --- a/modules/lang/haskell/packages.el +++ b/modules/lang/haskell/packages.el @@ -1,13 +1,13 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/haskell/packages.el -(package! haskell-mode :pin "3cf99d7f0e") +(package! haskell-mode :pin "4a87d72589") (when (featurep! +dante) - (package! dante :pin "3e532e8d7e") + (package! dante :pin "4955bc7363") (package! attrap :pin "4cf3e4a162")) (when (featurep! +lsp) (package! lsp-haskell :pin "6d481f97e6")) ;; DEPRECATED (when (featurep! +intero) - (package! intero :pin "30d8e7330c")) + (package! intero :pin "fdb0550a2d")) From 431cd38e8339f2a97dc0defee9bad333da0ae0b5 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 6 Feb 2020 17:28:45 -0500 Subject: [PATCH 55/73] Update +doom-solaire-themes to include all doom-themes --- modules/ui/doom/config.el | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/modules/ui/doom/config.el b/modules/ui/doom/config.el index f13019e76..2b70d59a0 100644 --- a/modules/ui/doom/config.el +++ b/modules/ui/doom/config.el @@ -1,24 +1,39 @@ ;;; ui/doom/config.el -*- lexical-binding: t; -*- (defvar +doom-solaire-themes - '((doom-challenger-deep . t) + '((doom-acario-dark . t) + (doom-acario-light . t) + (doom-challenger-deep . t) (doom-city-lights . t) + (doom-dark+ . t) (doom-dracula . t) - (doom-molokai) + (doom-fairy-floss . t) (doom-gruvbox . t) + (doom-horizon . t) + (doom-laserwave . t) + (doom-losvkem . t) + (doom-manegarm . t) + (doom-material . t) + (doom-molokai . t) + (doom-moonlight . t) (doom-nord . t) (doom-nord-light . t) - (doom-nova) + (doom-nova . t) + (doom-oceanic-next . t) (doom-one . t) (doom-one-light . t) + (doom-outrun-electric . t) (doom-opera . t) + (doom-palenight . t) + (doom-peacock . t) (doom-snazzy . t) (doom-solarized-dark . t) (doom-solarized-light) + (doom-sourcerer . t) (doom-spacegrey . t) (doom-tomorrow-day . t) (doom-tomorrow-night . t) - (doom-vibrant)) + (doom-vibrant . t)) "An alist of themes that support `solaire-mode'. If CDR is t, then `solaire-mode-swap-bg' will be used automatically, when the theme is loaded.") From 086e9451489d87ea13b9fa9859193bb7df33c125 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 6 Feb 2020 17:32:43 -0500 Subject: [PATCH 56/73] Update modules index + Remove :app write + Move :tools fly{check,spell} to new :checkers {syntax,spell} + Remove redundant table --- docs/modules.org | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/docs/modules.org b/docs/modules.org index 89edf0a4b..394df6a05 100644 --- a/docs/modules.org +++ b/docs/modules.org @@ -8,6 +8,7 @@ removing them from your ~doom!~ block (found in =$DOOMDIR/init.el=). * Table of Contents :TOC: - [[#app][:app]] +- [[#checkers][:checkers]] - [[#completion][:completion]] - [[#config][:config]] - [[#editor][:editor]] @@ -24,20 +25,15 @@ Application modules are complex and opinionated modules that transform Emacs toward a specific purpose. They may have additional dependencies and should be loaded last, before =:config= modules. -| Module | Flags | Description | -|----------+---------------------+--------------------------------------------------------------------------| -| calendar | - | TODO | -| irc | - | Turns Emacs into an IRC client, powered by circe | -| rss | =+org= | An RSS reader client for Emacs, powered by elfeed | -| twitter | - | A twitter client for Emacs, powered by twittering | -| write | =+wordnut +langnut= | Transforms Emacs into an IDE For fiction, literary or scientific writers | - + [[file:../modules/app/calendar/README.org][calendar]] - TODO + [[file:../modules/app/irc/README.org][irc]] - how neckbeards socialize + rss =+org= - an RSS client in Emacs + [[file:../modules/app/twitter/README.org][twitter]] - A twitter client for Emacs -+ [[file:../modules/app/write/README.org][write]] =+wordnut +langtool= - Transforms emacs into an IDE for writers, and for - writing fiction, notes, papers and so on. + +* :checkers ++ syntax =+childframe= - Live error/warning highlights ++ spell =+everywhere= - Spell checking ++ grammar - TODO * :completion Modules that provide new interfaces or frameworks for completion, including code @@ -162,8 +158,6 @@ Small modules that give Emacs access to external tools & services. + [[file:../modules/tools/editorconfig/README.org][editorconfig]] - TODO + [[file:../modules/tools/ein/README.org][ein]] - TODO + [[file:../modules/tools/eval/README.org][eval]] =+overlay= - REPL & code evaluation support for a variety of languages -+ flycheck - Live error/warning highlights -+ flyspell =+everywhere= - Spell checking + gist - TODO + [[file:../modules/tools/lookup/README.org][lookup]] =+dictionary +docsets= - Universal jump-to & documentation lookup backend From 2322bff412074ba5d7b7c4c01a11959890895e84 Mon Sep 17 00:00:00 2001 From: Janfel <33464477+Janfel@users.noreply.github.com> Date: Fri, 7 Feb 2020 01:35:46 +0100 Subject: [PATCH 57/73] Fix typo: ffap-list -> ffap-alist --- modules/lang/cc/config.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/lang/cc/config.el b/modules/lang/cc/config.el index 51d171790..9430e6a77 100644 --- a/modules/lang/cc/config.el +++ b/modules/lang/cc/config.el @@ -113,7 +113,7 @@ This is ignored by ccls.") (setf (alist-get 'other c-default-style) "doom")) (after! ffap - (add-to-list 'ffap-list '(c-mode . ffap-c-mode)))) + (add-to-list 'ffap-alist '(c-mode . ffap-c-mode)))) (use-package! modern-cpp-font-lock From 640cee3b2669d300d2e59319404430a71d1dd015 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 6 Feb 2020 22:26:06 -0500 Subject: [PATCH 58/73] Fix no such file errors when quitting emacs Because org-id-locations-file cannot be read/written to. --- modules/lang/org/config.el | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules/lang/org/config.el b/modules/lang/org/config.el index 472ad0bc9..152322847 100644 --- a/modules/lang/org/config.el +++ b/modules/lang/org/config.el @@ -988,4 +988,10 @@ compelling reason, so..." org-id-locations-file (concat org-directory ".orgids") org-id-locations-file-relative t) + ;; HACK `org-id' doesn't check if `org-id-locations-file' exists or is + ;; writeable before trying to read/write to it. + (defadvice! +org--fail-gracefully-a (&rest _) + :before-while '(org-id-locations-save org-id-locations-load) + (file-exists-p org-id-locations-file)) + (add-hook 'org-open-at-point-functions #'doom-set-jump-h)) From 01c3f34bb07e45c4b3c71470757b48429a12d483 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 6 Feb 2020 22:34:31 -0500 Subject: [PATCH 59/73] Ensure lsp-ui doesn't overwrite file/dir-local flycheck-checker --- modules/tools/lsp/config.el | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/modules/tools/lsp/config.el b/modules/tools/lsp/config.el index f0de0fee3..ac335e2f5 100644 --- a/modules/tools/lsp/config.el +++ b/modules/tools/lsp/config.el @@ -118,7 +118,12 @@ This also logs the resolved project root, if found, so we know where we are." (lsp--flymake-setup)) ((require 'flycheck nil t) (require 'lsp-ui-flycheck) - (lsp-ui-flycheck-enable t))))) + (let ((old-checker flycheck-checker)) + (lsp-ui-flycheck-enable t) + (when old-checker + (setq-local flycheck-checker old-checker) + (kill-local-variable 'flycheck-check-syntax-automatically))))))) + :config (setq lsp-prefer-flymake nil lsp-ui-doc-max-height 8 From fba3c834033690830de0873a88075a3fcef5672a Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 6 Feb 2020 22:54:16 -0500 Subject: [PATCH 60/73] Bump helpful, projectile & which-key Wilfred/helpful@e511e8d -> Wilfred/helpful@c54e9dd bbatsov/projectile@27a0da9 -> bbatsov/projectile@84be1da justbur/emacs-which-key@db3d003 -> justbur/emacs-which-key@cf44641 --- core/packages.el | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/packages.el b/core/packages.el index 2cbb93469..39eddd192 100644 --- a/core/packages.el +++ b/core/packages.el @@ -15,7 +15,7 @@ ;; core-editor.el (package! better-jumper :pin "6d240032ca") (package! dtrt-indent :pin "48221c928b") -(package! helpful :pin "e511e8dbd3") +(package! helpful :pin "c54e9ddbd6") (when IS-MAC (package! ns-auto-titlebar :pin "1efc30d385")) (package! pcre2el :pin "0b5b2a2c17") @@ -37,8 +37,8 @@ (package! xclip :pin "88003b782e")) ;; core-projects.el -(package! projectile :pin "27a0da9cdc") +(package! projectile :pin "84be1dada3") ;; core-keybinds.el (package! general :pin "f6e928622d") -(package! which-key :pin "db3d003e90") +(package! which-key :pin "cf44641485") From 6d8d8a3d425e929051f0ee9efc04cc2b5ccee9dc Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 7 Feb 2020 03:39:43 -0500 Subject: [PATCH 61/73] Bump org-mode, org-download, org-re-reveal, org-journal, ox-hugo emacs-straight/org-mode@cd1014a -> emacs-straight/org-mode@ec6d01f abo-abo/org-download@aad18ae -> abo-abo/org-download@7040188 oer/org-re-reveal@29bc467 -> oer/org-re-reveal@14df754 bastibe/org-journal@cf0f153 -> bastibe/org-journal@128f053 kaushalmodi/ox-hugo@0530645 -> kaushalmodi/ox-hugo@a80b250 Fixes #2499 --- modules/lang/org/packages.el | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/lang/org/packages.el b/modules/lang/org/packages.el index cc5bd7857..be44ad625 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 "cd1014a75a") + :pin "ec6d01fd49") ;; ...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)) @@ -56,7 +56,7 @@ (when (featurep! +brain) (package! org-brain :pin "8cb2efc860")) (when (featurep! +dragndrop) - (package! org-download :pin "aad18aecef")) + (package! org-download :pin "70401884e9")) (when (featurep! +gnuplot) (package! gnuplot :pin "a406143d52") (package! gnuplot-mode :pin "601f639298")) @@ -71,9 +71,9 @@ :recipe (:host github :repo "anler/centered-window-mode") :pin "24f7c5be9d") (package! org-tree-slide :pin "7bf09a02bd") - (package! org-re-reveal :pin "29bc467201")) + (package! org-re-reveal :pin "14df7542f2")) (when (featurep! +journal) - (package! org-journal :pin "cf0f15386f")) + (package! org-journal :pin "128f0533a7")) ;;; Babel (package! ob-async :pin "80a30b96a0") @@ -100,6 +100,6 @@ (when (featurep! +hugo) (package! ox-hugo :recipe (:host github :repo "kaushalmodi/ox-hugo" :nonrecursive t) - :pin "0530645d73")) + :pin "a80b250987")) (when (featurep! :lang rst) (package! ox-rst :pin "9158bfd180")) From 456b501aad3d3baecc61576ac94223e0a7c769db Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 7 Feb 2020 03:43:26 -0500 Subject: [PATCH 62/73] Bump to hlissner/emacs-doom-themes@7131b60 --- modules/ui/doom/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ui/doom/packages.el b/modules/ui/doom/packages.el index d396bbc5a..47b6e966f 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 "aa215edcc2") +(package! doom-themes :pin "7131b60161") (package! solaire-mode :pin "4ac324ccb0") From 014385a9f689bfdb7aebcacf6635b1af2200d6db Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 7 Feb 2020 04:23:07 -0500 Subject: [PATCH 63/73] Prevent numerical type errors on after-find-file In some edge cases. --- core/core-editor.el | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/core/core-editor.el b/core/core-editor.el index 81cc7ae10..570a43fc4 100644 --- a/core/core-editor.el +++ b/core/core-editor.el @@ -43,10 +43,11 @@ possible." (and buffer-file-name (not doom-large-file-p) (file-exists-p buffer-file-name) - (> (nth 7 (file-attributes buffer-file-name)) - (* 1024 1024 - (assoc-default buffer-file-name doom-large-file-size-alist - #'string-match-p))))) + (ignore-errors + (> (nth 7 (file-attributes buffer-file-name)) + (* 1024 1024 + (assoc-default buffer-file-name doom-large-file-size-alist + #'string-match-p)))))) (prog1 (apply orig-fn args) (if (memq major-mode doom-large-file-excluded-modes) (setq doom-large-file-p nil) From 49c7cf8172093a19342d7581f0126f6898767cba Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 8 Feb 2020 07:14:40 -0500 Subject: [PATCH 64/73] Resolve major mode for (cached)-nix-shell scripts --- modules/lang/nix/autoload.el | 21 +++++++++++++++++++++ modules/lang/nix/config.el | 2 ++ 2 files changed, 23 insertions(+) diff --git a/modules/lang/nix/autoload.el b/modules/lang/nix/autoload.el index bce624513..d0f950569 100644 --- a/modules/lang/nix/autoload.el +++ b/modules/lang/nix/autoload.el @@ -39,3 +39,24 @@ ((user-error "No search engine is enabled. Enable helm or ivy!"))) ;; Tell lookup module to let us handle things from here 'deferred) + +;;;###autoload +(defun +nix-shell-init-mode () + "Resolve a (cached-)?nix-shell shebang to the correct major mode." + (save-excursion + (goto-char (point-min)) + (save-match-data + (when (re-search-forward "#! *\\(?:cached-\\)?nix-shell +-i +\\([^ \n]+\\)" 256 t) + (let* ((interp (match-string 1)) + (mode + (assoc-default + interp + (mapcar (lambda (e) + (cons (format "\\`%s\\'" (car e)) + (cdr e))) + interpreter-mode-alist) + #'string-match-p))) + (when mode + (prog1 (set-auto-mode-0 mode) + (when (eq major-mode 'sh-mode) + (sh-set-shell interp))))))))) diff --git a/modules/lang/nix/config.el b/modules/lang/nix/config.el index 8c3c3dc8c..f8c0a0a5e 100644 --- a/modules/lang/nix/config.el +++ b/modules/lang/nix/config.el @@ -1,6 +1,8 @@ ;;; lang/nix/config.el -*- lexical-binding: t; -*- (use-package! nix-mode + :interpreter ("cached-nix-shell" . +nix-shell-init-mode) + :interpreter ("nix-shell" . +nix-shell-init-mode) :mode "\\.nix\\'" :config (set-company-backend! 'nix-mode 'company-nixos-options) From e4e0f33ab5639124e708e13449cc30f18779f4c2 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 8 Feb 2020 18:10:34 -0500 Subject: [PATCH 65/73] Bump to jacktasia/dumb-jump@daddd9b From jacktasia/dumb-jump@738d40c --- modules/tools/lookup/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/tools/lookup/packages.el b/modules/tools/lookup/packages.el index e80c98361..30d5002d7 100644 --- a/modules/tools/lookup/packages.el +++ b/modules/tools/lookup/packages.el @@ -8,7 +8,7 @@ (package! helm)) ;; -(package! dumb-jump :pin "738d40ceb7") +(package! dumb-jump :pin "daddd9ba6a") (when (featurep! :completion ivy) (package! ivy-xref :pin "3d4c35fe2b")) (when (featurep! :completion helm) From 4a60200f3d4a3959d8bbe0542b0d69acf19877a5 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 8 Feb 2020 18:11:22 -0500 Subject: [PATCH 66/73] Unpin tkf/emacs-request This package is a secondary dependency of many packages. Best to keep it up-to-date at all times. --- modules/tools/lookup/packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/tools/lookup/packages.el b/modules/tools/lookup/packages.el index 30d5002d7..7efe70f8e 100644 --- a/modules/tools/lookup/packages.el +++ b/modules/tools/lookup/packages.el @@ -26,7 +26,7 @@ (package! osx-dictionary :pin "1b79ff64c7") (package! define-word :pin "d8c76d503b") (package! powerthesaurus :pin "81a262ec0c") - (package! request :pin "4be823a89b") + (package! request) (when (featurep! +offline) (package! wordnut :pin "feac531404") (package! synosaurus :pin "14d34fc92a")))) From 724413d88f3ab317cbcc8349e3fc18cace86d886 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 8 Feb 2020 18:13:00 -0500 Subject: [PATCH 67/73] Bind C-RET -> ess-eval-line in normal mode And reformat ess keybinds. --- modules/lang/ess/config.el | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/modules/lang/ess/config.el b/modules/lang/ess/config.el index 8f1812199..f68dd01da 100644 --- a/modules/lang/ess/config.el +++ b/modules/lang/ess/config.el @@ -38,25 +38,26 @@ comment-line-break-function nil) (map! (:after ess-help - :map ess-help-mode-map - :n "q" #'kill-current-buffer - :n "Q" #'ess-kill-buffer-and-go - :n "K" #'ess-display-help-on-object - :n "go" #'ess-display-help-in-browser - :n "gO" #'ess-display-help-apropos - :n "gv" #'ess-display-vignettes - :m "]]" #'ess-skip-to-next-section - :m "[[" #'ess-skip-to-previous-section - :map ess-doc-map - "h" #'ess-display-help-on-object - "p" #'ess-R-dv-pprint - "t" #'ess-R-dv-ctable - [C-return] #'ess-eval-line - [up] #'comint-next-input - [down] #'comint-previous-input) + (:map ess-help-mode-map + :n "q" #'kill-current-buffer + :n "Q" #'ess-kill-buffer-and-go + :n "K" #'ess-display-help-on-object + :n "go" #'ess-display-help-in-browser + :n "gO" #'ess-display-help-apropos + :n "gv" #'ess-display-vignettes + :m "]]" #'ess-skip-to-next-section + :m "[[" #'ess-skip-to-previous-section) + (:map ess-doc-map + "h" #'ess-display-help-on-object + "p" #'ess-R-dv-pprint + "t" #'ess-R-dv-ctable + [up] #'comint-next-input + [down] #'comint-previous-input + [C-return] #'ess-eval-line)) - :localleader :map ess-mode-map + :n [C-return] #'ess-eval-line + :localleader "," #'ess-eval-region-or-function-or-paragraph-and-step "'" #'R [tab] #'ess-switch-to-inferior-or-script-buffer From ef472d7c1a1b0035862f2ef341ea4f0586299d58 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 8 Feb 2020 20:43:29 -0500 Subject: [PATCH 68/73] Add flyspell-lazy package To hopefully speed up flyspell. --- modules/checkers/spell/config.el | 4 ++++ modules/checkers/spell/packages.el | 2 ++ 2 files changed, 6 insertions(+) diff --git a/modules/checkers/spell/config.el b/modules/checkers/spell/config.el index 14fd2912e..867fedd75 100644 --- a/modules/checkers/spell/config.el +++ b/modules/checkers/spell/config.el @@ -94,3 +94,7 @@ e.g. proselint and langtool." ((require 'flyspell-correct-popup nil t) (setq flyspell-popup-correct-delay 0.8) (define-key popup-menu-keymap [escape] #'keyboard-quit)))) + + +(use-package! flyspell-lazy + :after flyspell) diff --git a/modules/checkers/spell/packages.el b/modules/checkers/spell/packages.el index 21f2a534d..873abb64d 100644 --- a/modules/checkers/spell/packages.el +++ b/modules/checkers/spell/packages.el @@ -7,3 +7,5 @@ ((featurep! :completion helm) (package! flyspell-correct-helm :pin "b0353a41a7")) ((package! flyspell-correct-popup :pin "b0353a41a7"))) + +(package! flyspell-lazy :pin "3ebf68cc9e") From 73c893ba35ecbb9a5db5dab17b83b44b30e032d0 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 8 Feb 2020 20:53:50 -0500 Subject: [PATCH 69/73] lang/ledger: refactor & use hledger by default --- modules/lang/ledger/config.el | 38 ++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/modules/lang/ledger/config.el b/modules/lang/ledger/config.el index bd87308af..ff3453be3 100644 --- a/modules/lang/ledger/config.el +++ b/modules/lang/ledger/config.el @@ -1,23 +1,29 @@ ;;; lang/ledger/config.el -*- lexical-binding: t; -*- -;;;###package ledger-mode -(setq ledger-clear-whole-transactions 1) +(use-package! ledger-mode + :defer t + :init + (setq ledger-clear-whole-transactions 1 + ledger-mode-should-check-version nil) -(defadvice! +ledger--check-version-a (orig-fn) - "Fail gracefully if ledger binary isn't available." - :around #'ledger-check-version - (if (executable-find ledger-binary-path) - (funcall orig-fn) - (message "Couldn't find '%s' executable" ledger-binary-path))) + :config + (setq ledger-binary-path + (or (cl-delete-if-not #'executable-find (list "hledger" "ledger")) + "ledger")) -;; Restore leader key in ledger reports -(map! :after ledger-mode - :map ledger-report-mode-map - "C-c C-c" #'ledger-report-edit-report - "C-c C-r" #'ledger-report-redo - "C-c C-s" #'ledger-report-save - :map ledger-reconcile-mode-map - [tab] #'ledger-reconcile-toggle) + (defadvice! +ledger--check-version-a (orig-fn) + "Fail gracefully if ledger binary isn't available." + :around #'ledger-check-version + (if (executable-find ledger-binary-path) + (funcall orig-fn) + (message "Couldn't find '%s' executable" ledger-binary-path))) + + (map! :map ledger-report-mode-map + "C-c C-c" #'ledger-report-edit-report + "C-c C-r" #'ledger-report-redo + "C-c C-s" #'ledger-report-save + :map ledger-reconcile-mode-map + [tab] #'ledger-reconcile-toggle)) (use-package! flycheck-ledger From 01aadd8900be45f912124d9d815d8790f540d38c Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 8 Feb 2020 21:47:04 -0500 Subject: [PATCH 70/73] Fix vestigial org easymotion keybind --- modules/config/default/+evil-bindings.el | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/modules/config/default/+evil-bindings.el b/modules/config/default/+evil-bindings.el index efd62d817..7216d1e37 100644 --- a/modules/config/default/+evil-bindings.el +++ b/modules/config/default/+evil-bindings.el @@ -77,10 +77,9 @@ :n "q" #'kill-current-buffer) :m "gs" #'+evil/easymotion ; lazy-load `evil-easymotion' - (:after org - :map org-mode-map - :prefix "" - "h" #'+org/goto-visible) + (:after evil-org + :map evil-org-mode-map + :m "gsh" #'+org/goto-visible) (:when (featurep! :editor multiple-cursors) :prefix "gz" From af9d8257f18f3eb2c0ee7b751c4f6d69be4a93dd Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 9 Feb 2020 04:33:17 -0500 Subject: [PATCH 71/73] Fix void-function: closure errors on vterm-toggle-send-escape --- modules/editor/evil/config.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/editor/evil/config.el b/modules/editor/evil/config.el index 111b40e05..26ba9865b 100644 --- a/modules/editor/evil/config.el +++ b/modules/editor/evil/config.el @@ -418,7 +418,7 @@ To change these keys see `+evil-repeat-keys'." (defadvice! +evil-collection-disable-blacklist-a (orig-fn) :around #'evil-collection-vterm-toggle-send-escape ; allow binding to ESC (let (evil-collection-key-blacklist) - (apply orig-fn)))) + (funcall-interactively orig-fn)))) ;; Keybinds that have no Emacs+evil analogues (i.e. don't exist): ;; zq - mark word at point as good word From f01b03a73fb933a1cdc1889effefef5d897a07db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johan=20Thor=C3=A9n?= Date: Sun, 9 Feb 2020 14:32:19 +0100 Subject: [PATCH 72/73] Fix list passed as argument to executable-find Previously, a list would be passed as an argument to 'executable-find' in '+ledger--check-version-a'. This instead passes "hledger" as an argument if found, else "ledger". --- modules/lang/ledger/config.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/lang/ledger/config.el b/modules/lang/ledger/config.el index ff3453be3..597fe9c4e 100644 --- a/modules/lang/ledger/config.el +++ b/modules/lang/ledger/config.el @@ -8,7 +8,8 @@ :config (setq ledger-binary-path - (or (cl-delete-if-not #'executable-find (list "hledger" "ledger")) + (if (executable-find "hledger") + "hledger" "ledger")) (defadvice! +ledger--check-version-a (orig-fn) From f4d5953be5694ff6556c4941061362681a5e5689 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 9 Feb 2020 14:55:44 -0500 Subject: [PATCH 73/73] Fix indentation --- modules/lang/ledger/config.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/lang/ledger/config.el b/modules/lang/ledger/config.el index 597fe9c4e..c516e7bfe 100644 --- a/modules/lang/ledger/config.el +++ b/modules/lang/ledger/config.el @@ -10,7 +10,7 @@ (setq ledger-binary-path (if (executable-find "hledger") "hledger" - "ledger")) + "ledger")) (defadvice! +ledger--check-version-a (orig-fn) "Fail gracefully if ledger binary isn't available."