diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 1021e28a7..637f216e6 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -12,20 +12,12 @@ body: **Before you proceed...** We depend on you to ensure your issue hasn't already been addressed, isn't covered by documentation, and isn't caused by personal configuration. To help us rule out these possibilities please follow these guidelines: -
-- type: checkboxes - attributes: - options: - - label: I have searched [the FAQ](https://doomemacs.org/docs/faq.org) and [the documentation](https://doomemacs.org/docs/getting_started.org) for solutions. - required: true - - label: I have searched [the issue tracker](https://github.com/hlissner/doom-emacs/issues) for similar issues (the closed issues too). - required: true - - label: I have searched [the Discourse](https://doomemacs.org/d/docs) for any errors and solutions. - required: true - - label: I can reproduce my issue on [the latest commit](https://github.com/hlissner/doom-emacs/commit) of Doom Emacs. - required: true - - label: I have read [How to Debug Issues](https://doomemacs.org/d/how2debug) and found no solution. - required: true + + + [ ] Search [the FAQ](https://doomemacs.org/docs/faq.org) and [the documentation](https://doomemacs.org/docs/getting_started.org) for solutions. + + [ ] Search [the issue tracker](https://github.com/hlissner/doom-emacs/issues) for similar issues (the closed issues too). + + [ ] Search [the Discourse](https://doomemacs.org/d/docs) for any errors and solutions. + + [ ] Ensure the issue can be reproduced on [the latest commit](https://github.com/hlissner/doom-emacs/commit) of Doom Emacs. + + [ ] Consult "[How to Debug Issues](https://doomemacs.org/d/how2debug)" on techniques to get more information and, possibly, solve the issue yourself. - type: textarea attributes: label: What did you expect to happen? diff --git a/.github/ISSUE_TEMPLATE/bump_request.yml b/.github/ISSUE_TEMPLATE/bump_request.yml index 8f88b8a6d..fac875b94 100644 --- a/.github/ISSUE_TEMPLATE/bump_request.yml +++ b/.github/ISSUE_TEMPLATE/bump_request.yml @@ -12,17 +12,13 @@ body: Use this form to let us know about these packages. Alternatively, [file a bump PR](https://discourse.doomemacs.org/how2bump). ----- -- type: checkboxes - attributes: - options: - - label: There are no other bump requests for this package [on the issue tracker](https://github.com/hlissner/doom-emacs/pulls?q=is%3Apr+is%3Aopen+label%3A%221.+update%29%22+). - required: true - - label: The package(s) I want bumped are not in [the do-not-PR list](https://discourse.doomemacs.org/do-not-pr) list. - required: true - - label: These packages still need to be bumped on the [latest commit of Doom](https://github.com/hlissner/doom-emacs/commit). - required: true - - label: I've tested the new versions of these packages myself and can report on its issues (if any). - required: true + + **Before you submit this bump request, make sure...** + + + [ ] To search for any open (or closed) [bump requests for this package](https://github.com/hlissner/doom-emacs/pulls?q=is%3Apr+is%3Aopen+label%3A%221.+update%29%22+). + + [ ] The target package(s) **are not** in [the do-not-PR list](https://discourse.doomemacs.org/do-not-pr) list. + + [ ] These packages haven't already been bumped on the [latest commit of Doom](https://github.com/hlissner/doom-emacs/commit). + + [ ] The new versions of these packages work without issue. - type: textarea attributes: label: What package(s) should be bumped? diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index 0bc3ea17e..29de2c769 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -9,21 +9,12 @@ body: value: | > :warning: **Our issue tracker is not for how-to or configuration questions.** Please post those on [our Discord](https://doomemacs.org/discord) or [Discourse](https://discourse.doomemacs.org) instead. - **Before you proceed...** + **Before you proceed, to rule out the possibility that your request has already been made (or fulfilled), please follow these guidelines:** - To rule out the possibility that your request has already been made (or fulfilled), please follow these guidelines: -
-- type: checkboxes - attributes: - options: - - label: I have read the [contributing guidelines](https://discourse.doomemacs.org/how2contribute). - required: true - - label: I have searched [the issue tracker](https://github.com/hlissner/doom-emacs/issues?q=label%3A%221.+request%22+) for similar requests. - required: true - - label: I have searched [the module list](https://doomemacs.org/docs/modules.org) in case my feature was already implemented. - required: true - - label: I have confirmed that my request remains unfulfilled on [the latest commit of Doom](https://github.com/hlissner/doom-emacs/commit). - required: true + + [ ] Read the [contributing guidelines](https://discourse.doomemacs.org/how2contribute). + + [ ] Search [the issue tracker](https://github.com/hlissner/doom-emacs/issues?q=label%3A%221.+request%22+) for similar requests. + + [ ] Search [the module list](https://doomemacs.org/docs/modules.org) in case my feature was already implemented. + + [ ] The request hasn't been fulfilled on [the latest commit of Doom](https://github.com/hlissner/doom-emacs/commit). - type: textarea attributes: label: Describe your request diff --git a/README.md b/README.md index 910c23e0b..e397e670a 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ [Install](#install) • [Documentation] • [FAQ] • [Screenshots] • [Contribute](#contribute) ![Made with Doom Emacs](https://img.shields.io/github/tag/hlissner/doom-emacs.svg?style=flat-square&label=release&color=58839b) -![Minimum Emacs version supported: 26.3](https://img.shields.io/badge/Emacs-26.3+-blueviolet.svg?style=flat-square&logo=GNU%20Emacs&logoColor=white) +![Minimum Emacs version supported: 27.1](https://img.shields.io/badge/Emacs-27.1+-blueviolet.svg?style=flat-square&logo=GNU%20Emacs&logoColor=white) ![Latest commit](https://img.shields.io/github/last-commit/hlissner/doom-emacs/develop?style=flat-square) ![Build status: develop](https://img.shields.io/github/workflow/status/hlissner/doom-emacs/CI/develop?style=flat-square) [![Discord Server](https://img.shields.io/discord/406534637242810369?color=738adb&label=Discord&logo=discord&logoColor=white&style=flat-square)][Discord] @@ -99,7 +99,7 @@ Check out [the FAQ][FAQ] for answers to common questions about the project. # Prerequisites + Git 2.23+ -+ Emacs 26.3+ (*27.2 is recommended*, or [native-comp](https://www.emacswiki.org/emacs/GccEmacs)). ++ Emacs 27.1+ (*27.2 is recommended*, or [native-comp](https://www.emacswiki.org/emacs/GccEmacs)). + [ripgrep] 11.0+ + GNU `find` + *OPTIONAL:* [fd] 7.3.0+ (improves file indexing performance for some commands) diff --git a/bin/doom b/bin/doom index f3db7ff5d..00f6e8904 100755 --- a/bin/doom +++ b/bin/doom @@ -27,11 +27,11 @@ ;; ;;; Sanity checks -(when (version< emacs-version "26.3") +(when (version< emacs-version "27.1") (error (concat "Detected Emacs " emacs-version " (at " (car command-line-args) ").\n\n" - "Doom only supports Emacs 26.3 and newer. 27.1 is highly recommended. A guide\n" - "to install a newer version of Emacs can be found at:\n\n " + "Doom only supports Emacs 27.1 and newer. A guide to install a newer version\n" + "of Emacs can be found at:\n\n " (format "https://doomemacs.org/docs/getting_started.org#%s" (cond ((eq system-type 'darwin) "on-macos") ((memq system-type '(cygwin windows-nt ms-dos)) "on-windows") diff --git a/core/autoload/config.el b/core/autoload/config.el index 96249cb8d..6a27ac598 100644 --- a/core/autoload/config.el +++ b/core/autoload/config.el @@ -74,7 +74,6 @@ package list, and lastly, reloads your private config.el. Runs `doom-after-reload-hook' afterwards." (interactive) - (require 'core-cli) (when (and IS-WINDOWS (file-exists-p doom-env-file)) (message "Can't regenerate envvar file from within Emacs. Run 'doom env' from the console")) ;; In case doom/reload is run before incrementally loaded packages are loaded, diff --git a/core/autoload/fonts.el b/core/autoload/fonts.el index 73f940acf..7ff958429 100644 --- a/core/autoload/fonts.el +++ b/core/autoload/fonts.el @@ -20,10 +20,32 @@ If nil, `doom-font' will be used, scaled up by `doom-big-font-increment'. See ;; ;;; Library -(defun doom--normalize-font (font) - (let* ((font (cond ((stringp font) (aref (font-info font) 0)) - ((fontp font) (font-xlfd-name font)) - ((vectorp font) (x-compose-font-name font)))) +;;;###autoload +(defun doom-normalize-font (font) + "Return FONT as a normalized font spec. + +The font will be normalized (i.e. :weight, :slant, and :width will set to +'normal if not specified) before it is converted. + +FONT can be a `font-spec', a font object, an XFT font string, or an XLFD font +string." + (cl-check-type font (or font string vector)) + (when (and (stringp font) + (string-prefix-p "-" font)) + (setq font (x-decompose-font-name font))) + (let* ((font + (cond ((stringp font) + (dolist (prop '("weight" "slant" "width") (aref (font-info font) 0)) + (unless (string-match-p (format ":%s=" prop) font) + (setq font (concat font ":" prop "=normal"))))) + ((fontp font) + (dolist (prop '(:weight :slant :width) (font-xlfd-name font)) + (unless (font-get font prop) + (font-put font prop 'normal)))) + ((vectorp font) + (dolist (i '(1 2 3) (x-compose-font-name font)) + (unless (aref font i) + (aset font i "normal")))))) (font (x-resolve-font-name font)) (font (font-spec :name font))) (unless (font-get font :size) @@ -64,15 +86,15 @@ Doesn't work in terminal Emacs." (let* ((original-font (or (symbol-value var) (face-font face t) (with-temp-buffer (face-font face)))) - (font (doom--normalize-font original-font)) + (font (doom-normalize-font original-font)) (dfont (or (if-let* ((remap-font (alist-get var font-alist)) - (remap-xlfd (doom--normalize-font remap-font))) + (remap-xlfd (doom-normalize-font remap-font))) remap-xlfd (purecopy font)) (error "Could not decompose %s font" var)))) (let* ((step (if fixed-size-p 0 (* increment doom-font-increment))) - (orig-size (font-get dfont :size)) + (orig-size (font-get font :size)) (new-size (if fixed-size-p increment (+ orig-size step)))) (cond ((<= new-size 0) (error "`%s' font is too small to be resized (%d)" var new-size)) @@ -145,8 +167,8 @@ Also resizees `doom-variable-pitch-font' and `doom-serif-font'." (if doom-big-font ;; Use `doom-big-font' in lieu of `doom-font' (doom-adjust-font-size - (if doom-big-font-mode - (font-get (doom--normalize-font doom-big-font) :size)) + (when doom-big-font-mode + (font-get (doom-normalize-font doom-big-font) :size)) t `((doom-font . ,doom-big-font))) ;; Resize the current font (doom-adjust-font-size (if doom-big-font-mode doom-big-font-increment)))) diff --git a/core/autoload/output.el b/core/autoload/output.el index 7f298c052..8c45c49ee 100644 --- a/core/autoload/output.el +++ b/core/autoload/output.el @@ -255,11 +255,12 @@ DEST can be one or more of `standard-output', a buffer, a file" (insert-char out)) (send-string-to-terminal (char-to-string out))))) (letf! (defun message (msg &rest args) - (print-group! - (with-current-buffer log-buffer - (insert (doom--format (apply #'format msg args)) "\n")) - (when (or doom-debug-p (not inhibit-message)) - (doom--print (doom--format (apply #'format msg args))))) + (when msg + (print-group! + (with-current-buffer log-buffer + (insert (doom--format (apply #'format msg args)) "\n")) + (when (or doom-debug-p (not inhibit-message)) + (doom--print (doom--format (apply #'format msg args)))))) message) (unwind-protect ,(macroexp-progn body) diff --git a/core/autoload/packages.el b/core/autoload/packages.el index 10265a14a..b7e799a19 100644 --- a/core/autoload/packages.el +++ b/core/autoload/packages.el @@ -197,6 +197,64 @@ each package." ;; ;;; Bump commits +;;;###autoload +(defun doom/bumpify-diff (&optional interactive) + "Copy user/repo@hash -> user/repo@hash's of changed packages to clipboard. + +Must be run from a magit diff buffer." + (interactive (list 'interactive)) + (save-window-excursion + (magit-diff-staged) + (unless (eq major-mode 'magit-diff-mode) + (user-error "Not in a magit diff buffer")) + (let (targets lines) + (save-excursion + (while (re-search-forward "^modified +\\(.+\\)$" nil t) + (cl-pushnew (doom-module-from-path (match-string 1)) targets + :test #'equal))) + (while (re-search-forward "^-" nil t) + (let ((file (magit-file-at-point)) + before after) + (save-window-excursion + (call-interactively #'magit-diff-visit-file) + (or (looking-at-p "(package!") + (re-search-forward "(package! " (line-end-position) t) + (re-search-backward "(package! ")) + (let ((buffer-file-name file)) + (cl-destructuring-bind (&key package plist _beg _end) + (doom--package-at-point) + (setq before (doom--package-to-bump-string package plist))))) + (re-search-forward "^+") + (save-window-excursion + (call-interactively #'magit-diff-visit-file) + (or (looking-at-p "(package!") + (re-search-forward "(package! " (line-end-position) t) + (re-search-backward "(package! ")) + (let ((buffer-file-name file)) + (cl-destructuring-bind (&key package plist _beg _end) + (doom--package-at-point) + (setq after (doom--package-to-bump-string package plist))))) + (cl-pushnew (format "%s -> %s" before after) lines))) + (if (null lines) + (user-error "No bumps to bumpify") + (prog1 (funcall (if interactive #'kill-new #'identity) + (format "Bump %s\n\n%s" + (mapconcat (lambda (x) + (mapconcat #'symbol-name x " ")) + (cl-loop with alist = () + for (category . module) in targets + do (setf (alist-get category alist) + (append (alist-get category alist) (list module))) + finally return alist) + " ") + (string-join (sort (reverse lines) #'string-lessp) + "\n"))) + (when interactive + (message "Copied to clipboard"))))))) + ;;;###autoload (defun doom/commit-bumps () - (interactive)) + "Create a pre-filled magit commit for currently bumped packages." + (interactive) + (magit-commit-create + (list "-e" "-m" (doom/bumpify-diff)))) diff --git a/core/autoload/projects.el b/core/autoload/projects.el index ffe395688..0af779171 100644 --- a/core/autoload/projects.el +++ b/core/autoload/projects.el @@ -149,7 +149,7 @@ If DIR is not a project, it will be indexed (but not cached)." ;;;###autoload (defun doom-project-ignored-p (project-root) - "Return non-nil if remote or temporary file, or a straight package." - (and (not (file-remote-p project-root)) - (or (file-in-directory-p project-root temporary-file-directory) - (file-in-directory-p project-root doom-local-dir)))) + "Return non-nil if temporary file or a straight package." + (unless (file-remote-p project-root) + (or (file-in-directory-p project-root temporary-file-directory) + (file-in-directory-p project-root doom-local-dir)))) diff --git a/core/autoload/sessions.el b/core/autoload/sessions.el index ece9fe2f9..0d018df6b 100644 --- a/core/autoload/sessions.el +++ b/core/autoload/sessions.el @@ -63,18 +63,6 @@ ((error "No session backend to load session with")))) -;; -;;; Command line switch - -;;;###autoload -(defun doom-restore-session-handler (&rest _) - "TODO" - (add-hook 'window-setup-hook #'doom-load-session 'append)) - -;;;###autoload -(add-to-list 'command-switch-alist (cons "--restore" #'doom-restore-session-handler)) - - ;; ;;; Commands @@ -140,4 +128,4 @@ (append (if debug (list "--debug-init")) (when (boundp 'chemacs-current-emacs-profile) (list "--with-profile" chemacs-current-emacs-profile)) - (list "--restore"))))) + (list "--eval" "(add-hook 'window-setup-hook #'doom-load-session 100)"))))) diff --git a/core/autoload/themes.el b/core/autoload/themes.el index 2f890b364..dd5abac85 100644 --- a/core/autoload/themes.el +++ b/core/autoload/themes.el @@ -40,9 +40,7 @@ all themes. It will apply to all themes once they are loaded." (when (or (get 'doom-theme 'previous-themes) (null doom-theme)) (funcall #',fn)) - ;; TODO Append to `doom-load-theme-hook' with DEPTH instead when Emacs - ;; 26.x support is dropped. - (add-hook 'doom-customize-theme-hook #',fn 'append)))) + (add-hook 'doom-customize-theme-hook #',fn 100)))) ;;;###autoload (defmacro custom-set-faces! (&rest specs) diff --git a/core/cli/doctor.el b/core/cli/doctor.el index 7cb3085a4..3211c66b0 100644 --- a/core/cli/doctor.el +++ b/core/cli/doctor.el @@ -54,11 +54,9 @@ in." (warn! "Emacs %s detected" emacs-version) (explain! "Doom supports this version, but you are living on the edge! " "Be prepared for breakages in future versions of Emacs.")) - ((= emacs-major-version 26) - (warn! "Emacs %s detected" emacs-version) - (explain! "Doom is dropping Emacs 26.x support in June 2021. Consider " - "upgrading to Emacs 27.1 (or better: 27.2) soon!" - emacs-version)))) + ((< emacs-major-version 27) + (error! "Emacs %s detected, Doom only supports 27.1 and newer" + emacs-version)))) (print! (start "Checking for Doom's prerequisites...")) (print-group! @@ -86,14 +84,13 @@ in." "typically installed. If you're seeing a vanilla Emacs splash screen, this " "may explain why. If you use Chemacs, you may ignore this warning.")) - (when EMACS27+ - (print! (start "Checking for great Emacs features...")) - (unless (functionp 'json-serialize) - (warn! "Emacs was not built with native JSON support") - (explain! "Users will see a substantial performance gain by building Emacs with " - "jansson support (i.e. a native JSON library), particularly LSP users. " - "You must install a prebuilt Emacs binary with this included, or compile " - "Emacs with the --with-json option."))) + (print! (start "Checking for great Emacs features...")) + (unless (functionp 'json-serialize) + (warn! "Emacs was not built with native JSON support") + (explain! "Users will see a substantial performance gain by building Emacs with " + "jansson support (i.e. a native JSON library), particularly LSP users. " + "You must install a prebuilt Emacs binary with this included, or compile " + "Emacs with the --with-json option.")) (print! (start "Checking for private config conflicts...")) (let ((xdg-dir (concat (or (getenv "XDG_CONFIG_HOME") diff --git a/core/cli/env.el b/core/cli/env.el index a0c3ffbb3..6b1570892 100644 --- a/core/cli/env.el +++ b/core/cli/env.el @@ -60,8 +60,10 @@ Why this over exec-path-from-shell? '(;; State that may be problematic if overwritten "^HOME$" "^\\(OLD\\)?PWD$" "^SHLVL$" "^PS1$" "^R?PROMPT$" "^TERM\\(CAP\\)?$" "^USER$" - ;; X server or services' variables + ;; X server or services' variables that shouldn't be persisted "^DISPLAY$" "^DBUS_SESSION_BUS_ADDRESS$" "^XAUTHORITY$" + ;; Windows+WSL envvars that shouldn't be persisted + "^WSL_INTEROP$" ;; ssh and gpg variables (likely to become stale) "^SSH_\\(AUTH_SOCK\\|AGENT_PID\\)$" "^\\(SSH\\|GPG\\)_TTY$" "^GPG_AGENT_INFO$" diff --git a/core/cli/packages.el b/core/cli/packages.el index 73c23f6b0..a6434e405 100644 --- a/core/cli/packages.el +++ b/core/cli/packages.el @@ -532,12 +532,13 @@ declaration) or dependency thereof that hasn't already been." (defun doom--cli-packages-purge-repo (repo) (let ((repo-dir (straight--repos-dir repo))) - (delete-directory repo-dir 'recursive) - (delete-file (straight--modified-file repo)) - (if (file-directory-p repo-dir) - (ignore (print! (error "Failed to purge repos/%s" repo))) - (print! (success "Purged repos/%s" repo)) - t))) + (when (file-directory-p repo-dir) + (delete-directory repo-dir 'recursive) + (delete-file (straight--modified-file repo)) + (if (file-directory-p repo-dir) + (ignore (print! (error "Failed to purge repos/%s" repo))) + (print! (success "Purged repos/%s" repo)) + t)))) (defun doom--cli-packages-purge-repos (repos) (if (not repos) diff --git a/core/core-cli.el b/core/core-cli.el index 89de27c70..5e7a26efb 100644 --- a/core/core-cli.el +++ b/core/core-cli.el @@ -109,7 +109,7 @@ Environment variables: auto-accept-p)) (when doomdir (setenv "DOOMDIR" (file-name-as-directory doomdir)) - (print! (info "DOOMDIR=%s") localdir)) + (print! (info "DOOMDIR=%s") doomdir)) (when localdir (setenv "DOOMLOCALDIR" (file-name-as-directory localdir)) (print! (info "DOOMLOCALDIR=%s") localdir)) diff --git a/core/core-keybinds.el b/core/core-keybinds.el index cc0d6cdb6..f7f326cb4 100644 --- a/core/core-keybinds.el +++ b/core/core-keybinds.el @@ -110,7 +110,10 @@ all hooks after it are ignored.") :init ;; Convenience aliases (defalias 'define-key! #'general-def) - (defalias 'undefine-key! #'general-unbind)) + (defalias 'undefine-key! #'general-unbind) + :config + ;; Prevent "X starts with non-prefix key Y" errors except at startup. + (add-hook 'doom-after-init-modules-hook #'general-auto-unbind-keys)) ;; HACK `map!' uses this instead of `define-leader-key!' because it consumes diff --git a/core/core-lib.el b/core/core-lib.el index 823836bbe..c1309672d 100644 --- a/core/core-lib.el +++ b/core/core-lib.el @@ -625,72 +625,7 @@ testing advice (when combined with `rotate-text'). ;; ;;; Backports -(eval-when! (version< emacs-version "27.0.90") - ;; DEPRECATED Backported from Emacs 27 - (defmacro setq-local (&rest pairs) - "Make variables in PAIRS buffer-local and assign them the corresponding values. - -PAIRS is a list of variable/value pairs. For each variable, make -it buffer-local and assign it the corresponding value. The -variables are literal symbols and should not be quoted. - -The second VALUE is not computed until after the first VARIABLE -is set, and so on; each VALUE can use the new value of variables -set earlier in the ‘setq-local’. The return value of the -‘setq-local’ form is the value of the last VALUE. - -\(fn [VARIABLE VALUE]...)" - (declare (debug setq)) - (unless (zerop (mod (length pairs) 2)) - (error "PAIRS must have an even number of variable/value members")) - (let ((expr nil)) - (while pairs - (unless (symbolp (car pairs)) - (error "Attempting to set a non-symbol: %s" (car pairs))) - ;; Can't use backquote here, it's too early in the bootstrap. - (setq expr - (cons - (list 'set - (list 'make-local-variable (list 'quote (car pairs))) - (car (cdr pairs))) - expr)) - (setq pairs (cdr (cdr pairs)))) - (macroexp-progn (nreverse expr))))) - -(eval-when! (version< emacs-version "27.1") - ;; DEPRECATED Backported from Emacs 27. Remove when 26.x support is dropped. - (defun executable-find (command &optional remote) - "Search for COMMAND in `exec-path' and return the absolute file name. -Return nil if COMMAND is not found anywhere in `exec-path'. If -REMOTE is non-nil, search on the remote host indicated by -`default-directory' instead." - (if (and remote (file-remote-p default-directory)) - (let ((res (locate-file - command - (mapcar - (lambda (x) (concat (file-remote-p default-directory) x)) - (exec-path)) - exec-suffixes 'file-executable-p))) - (when (stringp res) (file-local-name res))) - ;; Use 1 rather than file-executable-p to better match the - ;; behavior of call-process. - (let ((default-directory - (let (file-name-handler-alist) - (file-name-quote default-directory)))) - (locate-file command exec-path exec-suffixes 1))))) - -(eval-when! (not (fboundp 'exec-path)) - ;; DEPRECATED Backported from Emacs 27.1. Remove when 26.x support is dropped. - (defun exec-path () - "Return list of directories to search programs to run in remote subprocesses. -The remote host is identified by `default-directory'. For remote -hosts that do not support subprocesses, this returns `nil'. -If `default-directory' is a local directory, this function returns -the value of the variable `exec-path'." - (let ((handler (find-file-name-handler default-directory 'exec-path))) - (if handler - (funcall handler 'exec-path) - exec-path)))) +;; None at the moment! (provide 'core-lib) ;;; core-lib.el ends here diff --git a/core/core-ui.el b/core/core-ui.el index 5fda13a4d..e78d6009d 100644 --- a/core/core-ui.el +++ b/core/core-ui.el @@ -571,9 +571,6 @@ windows, switch to `doom-fallback-buffer'. Otherwise, delegate to original (cons 'custom-theme-directory (delq 'custom-theme-directory custom-theme-load-path))) -;; Underline looks a bit better when drawn lower -(setq x-underline-at-descent-line t) - (defun doom-init-fonts-h (&optional reload) "Loads `doom-font'." (when (fboundp 'set-fontset-font) @@ -667,16 +664,17 @@ windows, switch to `doom-fallback-buffer'. Otherwise, delegate to original (dolist (fn '(switch-to-buffer display-buffer)) (advice-add fn :around #'doom-run-switch-buffer-hooks-a))) +;; Apply `doom-font' et co +(add-hook 'doom-after-init-modules-hook #'doom-init-fonts-h -100) + ;; Apply `doom-theme' (add-hook (if (daemonp) 'after-make-frame-functions 'doom-after-init-modules-hook) - #'doom-init-theme-h) + #'doom-init-theme-h + -90) -;; Apply `doom-font' et co -(add-hook 'doom-after-init-modules-hook #'doom-init-fonts-h) - -(add-hook 'window-setup-hook #'doom-init-ui-h 'append) +(add-hook 'window-setup-hook #'doom-init-ui-h 100) ;; @@ -702,25 +700,11 @@ windows, switch to `doom-fallback-buffer'. Otherwise, delegate to original (fset 'define-fringe-bitmap #'ignore)) (after! whitespace - (defun doom-disable-whitespace-mode-in-childframes-a (orig-fn) + (defun doom-is-childframes-p () "`whitespace-mode' inundates child frames with whitespace markers, so disable it to fix all that visual noise." - (unless (frame-parameter nil 'parent-frame) - (funcall orig-fn))) - (add-function :around whitespace-enable-predicate #'doom-disable-whitespace-mode-in-childframes-a)) - -;; Don't display messages in the minibuffer when using the minibuffer -;; DEPRECATED Remove when Emacs 26.x support is dropped. -(eval-when! (not EMACS27+) - (defmacro doom-silence-motion-key (command key) - (let ((key-command (intern (format "doom/silent-%s" command)))) - `(progn - (defun ,key-command () - (interactive) - (ignore-errors (call-interactively ',command))) - (define-key minibuffer-local-map (kbd ,key) #',key-command)))) - (doom-silence-motion-key backward-delete-char "") - (doom-silence-motion-key delete-char "")) + (frame-parameter nil 'parent-frame)) + (add-function :before-while whitespace-enable-predicate #'doom-is-childframes-p)) (provide 'core-ui) ;;; core-ui.el ends here diff --git a/core/core.el b/core/core.el index 466095cf6..510adf7c3 100644 --- a/core/core.el +++ b/core/core.el @@ -3,7 +3,7 @@ ;; ;;; Initialize internal state -(defconst doom-version "2.0.9" +(defconst doom-version "3.0.0-alpha" "Current version of Doom Emacs.") (defvar doom-init-p nil @@ -21,7 +21,6 @@ envvar will enable this at startup.") (defconst doom-interactive-p (not noninteractive) "If non-nil, Emacs is in interactive mode.") -(defconst EMACS27+ (> emacs-major-version 26)) (defconst EMACS28+ (> emacs-major-version 27)) (defconst IS-MAC (eq system-type 'darwin)) (defconst IS-LINUX (eq system-type 'gnu/linux)) @@ -267,7 +266,7 @@ config.el instead." ;; indicates misconfiguration (don't rely on case insensitivity for file names). (setq auto-mode-case-fold nil) -;; Disable bidirectional text rendering for a modest performance boost. I've set +;; Disable bidirectional text scanning for a modest performance boost. I've set ;; this to `nil' in the past, but the `bidi-display-reordering's docs say that ;; is an undefined state and suggest this to be just as good: (setq-default bidi-display-reordering 'left-to-right @@ -355,7 +354,6 @@ config.el instead." (when (boundp 'libgnutls-version) (concat "SECURE128:+SECURE192:-VERS-ALL" (if (and (not IS-WINDOWS) - (not (version< emacs-version "26.3")) (>= libgnutls-version 30605)) ":+VERS-TLS1.3") ":+VERS-TLS1.2")) @@ -523,7 +521,6 @@ unreadable. Returns the names of envvars that were changed." (defun doom-run-hook (hook) "Run HOOK (a hook function) with better error handling. Meant to be used with `run-hook-wrapped'." - (doom-log "Running doom hook: %s" hook) (condition-case-unless-debug e (funcall hook) (error @@ -578,7 +575,7 @@ TRIGGER-HOOK is a list of quoted hooks and/or sharp-quoted functions." ;; because the latter is triggered too late (after the file has ;; opened and modes are all set up). (advice-add 'after-find-file :before fn '((depth . -101)))) - ((add-hook hook fn (if EMACS27+ -101)))) + ((add-hook hook fn -101))) fn))) diff --git a/core/packages.el b/core/packages.el index 39995500a..a3900c0ea 100644 --- a/core/packages.el +++ b/core/packages.el @@ -17,7 +17,7 @@ :branch ,straight-repository-branch :local-repo "straight.el" :files ("straight*.el")) - :pin "915707ff5139cbfaf5f1aecd881ce0abaaddcecc") + :pin "b45dd00408ff8e922f2d7f75441fd5603e5222fa") ;; core-modules.el (package! use-package @@ -25,7 +25,7 @@ :pin "a7422fb8ab1baee19adb2717b5b47b9c3812a84c") ;; core-ui.el -(package! all-the-icons :pin "facbde4a7be292bf9490932cbe403b443273f45d") +(package! all-the-icons :pin "9d97c074b08000eacefc03ebc5dadbdc33888cc2") (package! hide-mode-line :pin "88888825b5b27b300683e662fa3be88d954b1cea") (package! highlight-numbers :pin "8b4744c7f46c72b1d3d599d4fb75ef8183dee307") (package! rainbow-delimiters :pin "d576e6694ad3a3e88b2bb1363305b38fa364c149") @@ -37,8 +37,6 @@ (package! helpful :pin "7e4b1f0d5572a4e2b8ee7a9b084ef863d0315a73") (package! pcre2el :pin "0b5b2a2c173aab3fd14aac6cf5e90ad3bf58fa7d") (package! smartparens :pin "911cc896a0f2eb8b5fbdd6fc8331523ad9889a3a") -;; DEPRECATED Built into Emacs 27+; remove when we drop 26 support -(package! so-long :built-in 'prefer :pin "1da43ed63b5f9a8188eb8107bbad842d10831537") (package! ws-butler ;; Use my fork of ws-butler, which has a few choice improvements and ;; optimizations (the original has been abandoned). @@ -46,9 +44,9 @@ :pin "2bb49d3ee7d2cba133bc7e9cdac416cd1c5e4fe0") ;; core-projects.el -(package! projectile :pin "5e6fdabd59ec5507c1d54f3b11ee16ddc05821d3") +(package! projectile :pin "da08a9103b5ba3b38ef031a9627a19436eb318b5") (package! project :pin "4072f35d85bf0a1c669329d66633e4819f497c1c") ;; core-keybinds.el (package! general :pin "a0b17d207badf462311b2eef7c065b884462cb7c") -(package! which-key :pin "fc29864395fdaf688e2ef5111831663bad89a020") +(package! which-key :pin "27d9fec33abb989b030f7677ccf5f799287d6472") diff --git a/docs/faq.org b/docs/faq.org index c38d74ba0..c5abbd996 100644 --- a/docs/faq.org +++ b/docs/faq.org @@ -1174,8 +1174,7 @@ If you still want to restore the old behavior, simply disable evil-snipe-mode: #+BEGIN_SRC emacs-lisp ;; in ~/.doom.d/config.el -(after! evil-snipe - (evil-snipe-mode -1)) +(remove-hook 'doom-first-input-hook #'evil-snipe-mode) #+END_SRC ** Changes to my config aren't taking effect diff --git a/docs/getting_started.org b/docs/getting_started.org index 21f50a953..fab3c7b7c 100644 --- a/docs/getting_started.org +++ b/docs/getting_started.org @@ -98,7 +98,7 @@ us know! This is what you'll have installed by the end of this section: - Git 2.23+ -- Emacs 26.3+ *(27.2 is recommended, or [[https://www.emacswiki.org/emacs/GccEmacs][native-comp]])* +- Emacs 27.1+ *(27.2 is recommended, or [[https://www.emacswiki.org/emacs/GccEmacs][native-comp]])* - [[https://github.com/BurntSushi/ripgrep][ripgrep]] 11.0+ - GNU Find - (Optional) [[https://github.com/sharkdp/fd][fd]] 7.3.0+ (known as ~fd-find~ on Debian, Ubuntu & derivatives) -- @@ -108,20 +108,15 @@ These packages ought to be available through the package managers of your operating system; i.e. homebrew & macports on macOS, scoop/chocolatey on Windows, or pacman/aptitude/etc on the various Linux distributions. -#+begin_quote -While Doom does claim to support 26.x, 27.x is recommended because it is faster, -especially for LSP users. The installation guides below will touch on installing -27 if there is a simple way to do so on that particular operating system. -#+end_quote - ** Emacs & dependencies *** On Linux -In the unusual case that Emacs 26.x is unavailable through your package manager, -you'll have to [[https://www.gnu.org/software/emacs/manual/html_node/efaq/Installing-Emacs.html][build it from source]], but here are installation instructions for many popular Linux distributions: +Installation instructions for Emacs 27.1+ are listed below for many popular +Linux distributions. In the unusual case that 27.1 or newer is unavailable on +your system, you'll have to [[https://www.gnu.org/software/emacs/manual/html_node/efaq/Installing-Emacs.html][build it from source]] instead. **** Ubuntu -Emacs 27.x is not available through Ubuntu's package manager out-of-the-box. To -get around this you'll need to install Emacs through a PPA: +Emacs 27.x is not available through Ubuntu's package manager out-of-the-box, but +is available through a PPA: #+BEGIN_SRC bash add-apt-repository ppa:kelleyk/emacs @@ -165,8 +160,9 @@ pacman -S fd The above installs Emacs 27 (at the time of writing). **** NixOS -On NixOS Emacs 26.3 can be installed via ~nix-env -Ai nixos.emacs~, or +On NixOS Emacs 27.2 can be installed via ~nix-env -Ai nixos.emacs~, or permanently with the following added to ~etc/nixos/configuration.nix~: + #+BEGIN_SRC nix environment.systemPackages = with pkgs; [ # required dependencies @@ -192,7 +188,7 @@ environment.systemPackages = [ #+END_SRC **** openSUSE -***** Emacs 26.3 +***** Emacs 27.1 Emacs can be installed from the [[https://software.opensuse.org/download.html?project=editors&package=emacs][package list]], or manually via zypper. For example, to install on openSUSE Leap 15.1 (requires root): @@ -203,7 +199,7 @@ zypper install emacs #+END_SRC If you already have an older version of Emacs installed, you will be prompted to -install the update candidate (Emacs 26.3). +install the update candidate (Emacs 27.1). ***** ripgrep Download ripgrep 11.0.2 from [[https://software.opensuse.org/download/package?package=ripgrep&project=openSUSE%3AFactory][the package list]] or installed manually (requires @@ -346,16 +342,16 @@ Or by replacing ~/usr/local/bin/emacs~ with a shim script containing: There are some suggestions on how to speed it up later in this section. #+end_quote -There are three methods for installing Emacs 26.x on Windows, each with their +There are three methods for installing Emacs 27.x on Windows, each with their pros and cons: + With chocolatey/scoop + With a precompiled binary + Git Bash -+ With WSL + Ubuntu ++ With WSL2 + Ubuntu -If you don't know which to choose, I recommend WSL; it produces the fastest and -most stable environment of the three, but has the most complex installation -process. +If you don't know which to choose, I highly recommend WSL; it produces the +fastest and most stable environment of the three, but has the most complex +installation process. Before moving on to installing Emacs et co, a few steps to prepare Windows for Emacs are necessary: @@ -446,7 +442,7 @@ bin/doom command. #+BEGIN_SRC sh sudo add-apt-repository ppa:kelleyk/emacs sudo apt update - sudo apt install emacs26 + sudo apt install emacs27 #+END_SRC 7. Then Doom's dependencies: #+BEGIN_SRC sh diff --git a/docs/index.org b/docs/index.org index cb0e4fd1a..484d79776 100644 --- a/docs/index.org +++ b/docs/index.org @@ -79,7 +79,7 @@ d s= (or =C-h d s=). + *Doom Emacs* - (videos) [[https://www.youtube.com/playlist?list=PLyy8KUDC8P7X6YkegqrnEnymzMWCNB4bN][Doom Emacs Tutorials]] by [[https://www.youtube.com/channel/UCVls1GmFKf6WlTraIb_IaJg][DistroTube]] - (videos) [[https://www.youtube.com/playlist?list=PLhXZp00uXBk4np17N39WvB80zgxlZfVwj][DoomCasts]] by @zaiste - - [[https://noelwelsh.com/posts/2019-01-10-doom-emacs.html][Noel's crash course on Doom Emacs]] + - [[https://noelwelsh.com/posts/doom-emacs][Noel's crash course on Doom Emacs]] - [[https://medium.com/@aria_39488/getting-started-with-doom-emacs-a-great-transition-from-vim-to-emacs-9bab8e0d8458][Getting Started with Doom Emacs -- a great transition from Vim to Emacs]] - [[https://medium.com/@aria_39488/the-niceties-of-evil-in-doom-emacs-cabb46a9446b][The Niceties of evil in Doom Emacs]] - (video) [[https://www.youtube.com/watch?v=GK3fij-D1G8][Org-mode, literate programming in (Doom) Emacs]] diff --git a/docs/modules.org b/docs/modules.org index aa01b5a3d..4b1c91c5f 100644 --- a/docs/modules.org +++ b/docs/modules.org @@ -123,7 +123,7 @@ Modules that bring support for a language or group of languages to Emacs. + [[file:../modules/lang/javascript/README.org][javascript]] =+lsp= - JavaScript, TypeScript, and CoffeeScript support + [[file:../modules/lang/json/README.org][json]] =+lsp= - TODO + [[file:../modules/lang/julia/README.org][julia]] =+lsp= - TODO -+ [[file:../modules/lang/kotlin/README.org][kotlin]] =+lsp+= - TODO ++ [[file:../modules/lang/kotlin/README.org][kotlin]] =+lsp= - TODO + [[file:../modules/lang/latex/README.org][latex]] =+latexmk +cdlatex +fold +lsp= - TODO + lean - TODO + [[file:../modules/lang/ledger/README.org][ledger]] - TODO @@ -138,7 +138,7 @@ Modules that bring support for a language or group of languages to Emacs. + purescript =+lsp= - TODO + [[file:../modules/lang/python/README.org][python]] =+cython +lsp +pyright +pyenv +conda +poetry= - TODO + qt - TODO -+ racket - TODO ++ [[file:../modules/lang/racket/README.org][racket]] =+lsp +xp= - TODO + [[file:../modules/lang/raku/README.org][raku]] - TODO + [[file:../modules/lang/rest/README.org][rest]] - TODO + rst - TODO @@ -203,7 +203,6 @@ Aesthetic modules that affect the Emacs interface or user experience. + [[file:../modules/ui/doom-dashboard/README.org][doom-dashboard]] - TODO + [[file:../modules/ui/doom-quit/README.org][doom-quit]] - TODO + [[file:../modules/ui/emoji/README.org][emoji]] =+ascii +github +unicode= - Adds emoji support to Emacs -+ [[file:../modules/ui/fill-column/README.org][fill-column]] - TODO + [[file:../modules/ui/hl-todo/README.org][hl-todo]] - TODO + [[file:../modules/ui/hydra/README.org][hydra]] - TODO + indent-guides - TODO diff --git a/early-init.el b/early-init.el index 2e5daf62d..c6825f509 100644 --- a/early-init.el +++ b/early-init.el @@ -11,10 +11,9 @@ ;; Prevent unwanted runtime compilation for gccemacs (native-comp) users; ;; packages are compiled ahead-of-time when they are installed and site files ;; are compiled when gccemacs is installed. -;; REVIEW Remove after a couple months -(if (boundp 'comp-deferred-compilation) - (setq comp-deferred-compilation nil) - (setq native-comp-deferred-compilation nil)) +;; REVIEW Remove after a month +(setq comp-deferred-compilation nil + native-comp-deferred-compilation nil) ;; In noninteractive sessions, prioritize non-byte-compiled source files to ;; prevent the use of stale byte-code. Otherwise, it saves us a little IO time diff --git a/init.example.el b/init.example.el index db540a956..21381a1cd 100644 --- a/init.example.el +++ b/init.example.el @@ -31,7 +31,6 @@ doom-dashboard ; a nifty splash screen for Emacs doom-quit ; DOOM quit-message prompts when you quit Emacs ;;(emoji +unicode) ; 🙂 - ;;fill-column ; a `fill-column' indicator hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW ;;hydra ;;indent-guides ; highlighted indent columns @@ -93,7 +92,7 @@ (eval +overlay) ; run code, run (also, repls) ;;gist ; interacting with github gists lookup ; navigate your code and its documentation - ;;lsp + ;;lsp ; M-x vscode magit ; a git porcelain for Emacs ;;make ; run make tasks from Emacs ;;pass ; password manager for nerds diff --git a/modules/app/emms/packages.el b/modules/app/emms/packages.el index 05b8dcda5..72563bdd1 100644 --- a/modules/app/emms/packages.el +++ b/modules/app/emms/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; app/emms/packages.el -(package! emms :pin "06ef243c5a7b60de92ba5503bb385191e35fe21c") +(package! emms :pin "6e0aaaf4c5598826b24c3079b80bf8af000a77c6") diff --git a/modules/app/irc/packages.el b/modules/app/irc/packages.el index 5596288fb..cb3f007ee 100644 --- a/modules/app/irc/packages.el +++ b/modules/app/irc/packages.el @@ -1,5 +1,5 @@ ;; -*- no-byte-compile: t; -*- ;;; app/irc/packages.el -(package! circe :pin "4778675e0c3bde1c028085b7d96693fe033d2c72") +(package! circe :pin "d6f1fa18646f6ed2a1c0f06a4888130bd694ff19") (package! circe-notifications :pin "291149ac12877bbd062da993479d3533a26862b0") diff --git a/modules/app/rss/packages.el b/modules/app/rss/packages.el index 13f62998a..0f78bc31a 100644 --- a/modules/app/rss/packages.el +++ b/modules/app/rss/packages.el @@ -1,6 +1,6 @@ ;; -*- no-byte-compile: t; -*- ;;; app/rss/packages.el -(package! elfeed :pin "e29c8b91450bd42d90041231f769c4e5fe5070da") +(package! elfeed :pin "243add9e74003cd5718f33482b7bb8b4fe140fb5") (when (featurep! +org) (package! elfeed-org :pin "268efdd0121fa61f63b722c30e0951c5d31224a4")) diff --git a/modules/checkers/grammar/packages.el b/modules/checkers/grammar/packages.el index 5e43ea4b3..39da67b3b 100644 --- a/modules/checkers/grammar/packages.el +++ b/modules/checkers/grammar/packages.el @@ -2,4 +2,4 @@ ;;; checkers/grammar/packages.el (package! langtool :pin "8276eccc5587bc12fd205ee58a7a982f0a136e41") -(package! writegood-mode :pin "b71757ec337e226909fb0422f0224e31acc71733") +(package! writegood-mode :pin "ed42d918d98826ad88928b7af9f2597502afc6b0") diff --git a/modules/checkers/spell/README.org b/modules/checkers/spell/README.org index 408570acf..5312c8d59 100644 --- a/modules/checkers/spell/README.org +++ b/modules/checkers/spell/README.org @@ -1,6 +1,6 @@ #+TITLE: checkers/spell -#+DATE: January 9, 2020 -#+SINCE: v3.0.0 +#+DATE: February 20, 2017 +#+SINCE: v2.0 #+STARTUP: inlineimages nofold * Table of Contents :TOC_3:noexport: diff --git a/modules/checkers/spell/autoload/+flyspell.el b/modules/checkers/spell/autoload/+flyspell.el index e555ebd92..97feb8330 100644 --- a/modules/checkers/spell/autoload/+flyspell.el +++ b/modules/checkers/spell/autoload/+flyspell.el @@ -56,7 +56,7 @@ or session. Otherwise, the addition is permanent." (if (null ispell-pdict-modified-p) (setq ispell-pdict-modified-p (list ispell-pdict-modified-p))) - (if (eq replace 'buffer) + (if (eq scope 'buffer) (ispell-add-per-file-word-list word)))) (ispell-pdict-save t)) diff --git a/modules/checkers/spell/packages.el b/modules/checkers/spell/packages.el index 708845987..5917b8d35 100644 --- a/modules/checkers/spell/packages.el +++ b/modules/checkers/spell/packages.el @@ -2,8 +2,8 @@ ;;; checkers/spell/packages.el (if (not (featurep! +flyspell)) - (package! spell-fu :pin "30c5eea9440915c2795670ecdbf836f3cb9dcc1b") - (package! flyspell-correct :pin "d19a090b978a249fc8f6d8b14309a5705a6bb483") + (package! spell-fu :pin "1abcb5594e1bfe35716d29e64523e4cebdce737c") + (package! flyspell-correct :pin "404233604439117301562deadc952fe82cb02120") (cond ((featurep! :completion ivy) (package! flyspell-correct-ivy)) ((featurep! :completion helm) diff --git a/modules/checkers/syntax/packages.el b/modules/checkers/syntax/packages.el index acaac86e9..6d31274bd 100644 --- a/modules/checkers/syntax/packages.el +++ b/modules/checkers/syntax/packages.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; -*- ;;; checkers/syntax/packages.el -(package! flycheck :pin "f8c679fff349850c80541a31de50009c3c15d4c9") +(package! flycheck :pin "21d52264aa80bfa4ede94c59e37a20fb6d033b0c") (package! flycheck-popup-tip :pin "ef86aad907f27ca076859d8d9416f4f7727619c6") (when (featurep! +childframe) (package! flycheck-posframe :pin "8f60c9bf124ab9597d681504a73fdf116a0bde12")) diff --git a/modules/completion/company/config.el b/modules/completion/company/config.el index 7459f83e1..97b0677fb 100644 --- a/modules/completion/company/config.el +++ b/modules/completion/company/config.el @@ -26,10 +26,9 @@ company-backends '(company-capf) ;; These auto-complete the current selection when - ;; `company-auto-complete-chars' is typed. This is too magical. We + ;; `company-auto-commit-chars' is typed. This is too magical. We ;; already have the much more explicit RET and TAB. - company-auto-complete nil - company-auto-complete-chars nil + company-auto-commit nil ;; Only search the current buffer for `company-dabbrev' (a backend that ;; suggests text your open buffers). This prevents Company from causing @@ -90,6 +89,7 @@ ;;; Packages (after! company-files + ;; Fix `company-files' completion for org file:* links (add-to-list 'company-files--regexps "file:\\(\\(?:\\.\\{1,2\\}/\\|~/\\|/\\)[^\]\n]*\\)")) @@ -101,6 +101,8 @@ company-box-backends-colors nil company-box-max-candidates 50 company-box-icons-alist 'company-box-icons-all-the-icons + ;; Move company-box-icons--elisp to the end, because it has a catch-all + ;; clause that ruins icons from other backends in elisp buffers. company-box-icons-functions (cons #'+company-box-icons--elisp-fn (delq 'company-box-icons--elisp diff --git a/modules/completion/company/packages.el b/modules/completion/company/packages.el index 1b8bf5ea1..3600af0eb 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 "ee3177cdad47cbe92242eeb52c7bdb9505282db6") +(package! company :pin "d77184094b9a45b204813d824918e1ec2aac8504") (package! company-dict :pin "cd7b8394f6014c57897f65d335d6b2bd65dab1f4") (when (featurep! +childframe) - (package! company-box :pin "aa5f09a5492344e3cc831f0f169a6a8345dec358")) + (package! company-box :pin "c8a867163b15586cc9ed4accb992094308e54a9a")) diff --git a/modules/completion/helm/README.org b/modules/completion/helm/README.org index 1c7eeed82..17ae807e7 100644 --- a/modules/completion/helm/README.org +++ b/modules/completion/helm/README.org @@ -8,10 +8,6 @@ - [[#module-flags][Module Flags]] - [[#plugins][Plugins]] - [[#prerequisites][Prerequisites]] - - [[#install][Install]] - - [[#macos][MacOS]] - - [[#arch-linux][Arch Linux]] - - [[#opensuse][openSUSE]] - [[#features][Features]] - [[#jump-to-navigation][Jump-to navigation]] - [[#project-search--replace][Project search & replace]] @@ -58,25 +54,7 @@ Ivy is considered a first-class citizen in Doom, however it is still possible to + [[https://github.com/yyoncho/helm-icons][helm-icons]]* (=+icons=) * Prerequisites -This module depends on: - -+ [[https://github.com/BurntSushi/ripgrep][ripgrep]] (rg) - -** Install -*** MacOS -#+BEGIN_SRC sh -brew install ripgrep -#+END_SRC - -*** Arch Linux -#+BEGIN_SRC sh :dir /sudo:: -sudo pacman --needed --noconfirm -S ripgrep -#+END_SRC - -*** openSUSE -#+BEGIN_SRC sh :dir /sudo:: -sudo zypper install ripgrep -#+END_SRC +This module has no prerequisites. * Features Much like Ivy, Helm is a /large/ framework and as such diff --git a/modules/completion/helm/config.el b/modules/completion/helm/config.el index 44f48ab2c..cf15e3da0 100644 --- a/modules/completion/helm/config.el +++ b/modules/completion/helm/config.el @@ -96,10 +96,7 @@ Can be negative.") ;; `completion-styles', since that would be overly intrusive. E.g., it ;; results in `company-capf' returning far to many completion candidates. ;; Instead, append those styles so that they act as a fallback. - (add-to-list 'completion-styles - (if EMACS27+ - (if fuzzy 'flex 'helm) - (if fuzzy 'helm-flex 'helm)) t)) + (add-to-list 'completion-styles (if fuzzy 'flex 'helm) t)) :config (set-popup-rule! "^\\*helm" :vslot -100 :size 0.22 :ttl nil) @@ -172,7 +169,6 @@ Can be negative.") helm-projectile-switch-project helm-projectile-switch-to-buffer) :init - (setq projectile-completion-system 'helm) (defvar helm-projectile-find-file-map (make-sparse-keymap)) :config (set-keymap-parent helm-projectile-find-file-map helm-map)) diff --git a/modules/completion/helm/packages.el b/modules/completion/helm/packages.el index d921a6137..aee100d8e 100644 --- a/modules/completion/helm/packages.el +++ b/modules/completion/helm/packages.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; -*- ;;; completion/helm/packages.el -(package! helm :pin "a7bd522073e4c959ae88ff9eeb2191528242705e") +(package! helm :pin "42e28369d5d3c5f75df7452c1efb0f7acea39666") (package! helm-rg :pin "ee0a3c09da0c843715344919400ab0a0190cc9dc") (package! helm-c-yasnippet :pin "e214eec8b2875d8a7cd09006dfb6a8e15e9e4079") (package! helm-company :pin "6eb5c2d730a60e394e005b47c1db018697094dde") @@ -13,7 +13,7 @@ (when (featurep! +fuzzy) (package! helm-flx :pin "6640fac5cb16bee73c95b8ed1248a4e5e113690e")) (when (featurep! +childframe) - (package! posframe :pin "739d8fd1081bdd0d20dee9e437d64df58747b871")) + (package! posframe :pin "f97c4aff2c2c376ca62276d5597aa108546633a9")) (when (featurep! :lang org) (package! helm-org :pin "d67186d3a64e610c03a5f3d583488f018fb032e4")) (when (featurep! +icons) diff --git a/modules/completion/ido/packages.el b/modules/completion/ido/packages.el index 1727e68ad..449d24ef2 100644 --- a/modules/completion/ido/packages.el +++ b/modules/completion/ido/packages.el @@ -2,7 +2,7 @@ ;;; completion/ido/packages.el (package! flx-ido :pin "647cb2f92f9936c62e277d7a74ad54a80502d255") -(package! ido-completing-read+ :pin "00674721e4fce283c918f7316f1158da1d469910") +(package! ido-completing-read+ :pin "49e7967ea8c0ab0a206b40d70fc19be115083fa1") (package! ido-sort-mtime :pin "f638ff0c922af862f5211779f2311a27fde428eb") (package! ido-vertical-mode :pin "b1659e967da0687abceca733b389ace24004fa66") (package! crm-custom :pin "f1aaccf64306a5f99d9bf7ba815d7ea41c15518d") diff --git a/modules/completion/ivy/README.org b/modules/completion/ivy/README.org index 7c83c57fe..878070e01 100644 --- a/modules/completion/ivy/README.org +++ b/modules/completion/ivy/README.org @@ -9,10 +9,6 @@ - [[#plugins][Plugins]] - [[#hacks][Hacks]] - [[#prerequisites][Prerequisites]] - - [[#install][Install]] - - [[#macos][MacOS]] - - [[#arch-linux][Arch Linux]] - - [[#opensuse][openSUSE]] - [[#features][Features]] - [[#jump-to-navigation][Jump-to navigation]] - [[#project-search--replace][Project search & replace]] @@ -64,25 +60,7 @@ lighter, simpler and faster in many cases. command) * Prerequisites -This module depends on: - -+ [[https://github.com/BurntSushi/ripgrep][ripgrep]] (rg) - -** Install -*** MacOS -#+BEGIN_SRC sh -brew install ripgrep -#+END_SRC - -*** Arch Linux -#+BEGIN_SRC sh :dir /sudo:: -sudo pacman -S ripgrep -#+END_SRC - -*** openSUSE -#+BEGIN_SRC sh :dir /sudo:: -sudo zypper install ripgrep -#+END_SRC +This module has no prerequisites. * Features Ivy and its ilk are large plugins. Covering everything about them is outside of diff --git a/modules/completion/ivy/config.el b/modules/completion/ivy/config.el index 918cadd39..70a8efaf6 100644 --- a/modules/completion/ivy/config.el +++ b/modules/completion/ivy/config.el @@ -64,7 +64,6 @@ results buffer.") ivy-fixed-height-minibuffer t ivy-read-action-function #'ivy-hydra-read-action ivy-read-action-format-function #'ivy-read-action-format-columns - projectile-completion-system 'ivy ;; don't show recent files in switch-buffer ivy-use-virtual-buffers nil ;; ...but if that ever changes, show their full path diff --git a/modules/completion/ivy/packages.el b/modules/completion/ivy/packages.el index cde67fc25..b0fb139c6 100644 --- a/modules/completion/ivy/packages.el +++ b/modules/completion/ivy/packages.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; -*- ;;; completion/ivy/packages.el -(package! swiper :pin "a5eade0c77b7dd78cdea0f246683c6cb00f7b7c6") +(package! swiper :pin "56139df678d9886d0612c0a192cce2cf6f156628") (package! ivy) (package! ivy-hydra) (package! ivy-avy) @@ -18,7 +18,7 @@ (package! flx :pin "647cb2f92f9936c62e277d7a74ad54a80502d255"))) (when (featurep! +childframe) - (package! ivy-posframe :pin "084cc59ea2cd62afaa51445ada3d00404749a541")) + (package! ivy-posframe :pin "9c8382823392d5e64fb4879055e43ab4a029e62a")) (when (featurep! +icons) (package! all-the-icons-ivy :pin "a70cbfa1effe36efc946a823a580cec686d5e88d")) diff --git a/modules/config/default/+emacs-bindings.el b/modules/config/default/+emacs-bindings.el index cb9f5ac15..4b2caa8fd 100644 --- a/modules/config/default/+emacs-bindings.el +++ b/modules/config/default/+emacs-bindings.el @@ -278,8 +278,7 @@ ;;; t --- toggle (:prefix-map ("t" . "toggle") :desc "Big mode" "b" #'doom-big-font-mode - (:when (featurep! :ui fill-column) - :desc "Fill Column Indicator" "c" #'+fill-column/toggle) + :desc "Fill Column Indicator" "c" #'global-display-fill-column-indicator-mode :desc "Flymake" "f" #'flymake-mode :desc "Frame fullscreen" "F" #'toggle-frame-fullscreen :desc "Indent style" "I" #'doom/toggle-indent-style @@ -325,7 +324,7 @@ :desc "Magit blame" "B" #'magit-blame-addition :desc "Magit clone" "C" #'magit-clone :desc "Magit fetch" "F" #'magit-fetch - :desc "Magit buffer log" "L" #'magit-log + :desc "Magit buffer log" "L" #'magit-log-buffer-file :desc "Git stage file" "S" #'magit-stage-file :desc "Git unstage file" "U" #'magit-unstage-file (:prefix ("f" . "find") @@ -365,6 +364,7 @@ :desc "Display workspaces" "d" #'+workspace/display :desc "Rename workspace" "r" #'+workspace/rename :desc "Create workspace" "c" #'+workspace/new + :desc "Create named workspace" "C" #'+workspace/new-named :desc "Delete workspace" "k" #'+workspace/delete :desc "Save workspace" "S" #'+workspace/save :desc "Switch to other workspace" "o" #'+workspace/other diff --git a/modules/config/default/+evil-bindings.el b/modules/config/default/+evil-bindings.el index 3d1368bd5..fb7dedcc4 100644 --- a/modules/config/default/+evil-bindings.el +++ b/modules/config/default/+evil-bindings.el @@ -306,6 +306,7 @@ :desc "Switch workspace" "." #'+workspace/switch-to :desc "Switch to last workspace" "`" #'+workspace/other :desc "New workspace" "n" #'+workspace/new + :desc "New named workspace" "N" #'+workspace/new-named :desc "Load workspace from file" "l" #'+workspace/load :desc "Save workspace to file" "s" #'+workspace/save :desc "Delete session" "x" #'+workspace/kill-session @@ -445,7 +446,7 @@ :desc "Magit blame" "B" #'magit-blame-addition :desc "Magit clone" "C" #'magit-clone :desc "Magit fetch" "F" #'magit-fetch - :desc "Magit buffer log" "L" #'magit-log + :desc "Magit buffer log" "L" #'magit-log-buffer-file :desc "Git stage file" "S" #'magit-stage-file :desc "Git unstage file" "U" #'magit-unstage-file (:prefix ("f" . "find") @@ -682,8 +683,7 @@ ;;; t --- toggle (:prefix-map ("t" . "toggle") :desc "Big mode" "b" #'doom-big-font-mode - (:when (featurep! :ui fill-column) - :desc "Fill Column Indicator" "c" #'+fill-column/toggle) + :desc "Fill Column Indicator" "c" #'global-display-fill-column-indicator-mode :desc "Flymake" "f" #'flymake-mode (:when (featurep! :checkers syntax) :desc "Flycheck" "f" #'flycheck-mode) diff --git a/modules/config/default/config.el b/modules/config/default/config.el index 47fa77112..215b52e70 100644 --- a/modules/config/default/config.el +++ b/modules/config/default/config.el @@ -34,10 +34,7 @@ (after! epa ;; With GPG 2.1+, this forces gpg-agent to use the Emacs minibuffer to prompt ;; for the key passphrase. - (set (if EMACS27+ - 'epg-pinentry-mode - 'epa-pinentry-mode) ; DEPRECATED `epa-pinentry-mode' - 'loopback) + (set 'epg-pinentry-mode 'loopback) ;; Default to the first secret key available in your keyring. (setq-default epa-file-encrypt-to diff --git a/modules/editor/evil/README.org b/modules/editor/evil/README.org index c1417337d..42470287d 100644 --- a/modules/editor/evil/README.org +++ b/modules/editor/evil/README.org @@ -172,8 +172,8 @@ vim-seek/vim-sneak for 2-character versions of f/F/t/T). To disable evil-snipe on s/S, you can either: -1. Disable ~evil-snipe-mode~ by adding ~(after! evil-snipe (evil-snipe-mode - -1))~ to =$DOOMDIR/config.el=, +1. Disable ~evil-snipe-mode~ by adding ~(remove-hook 'doom-first-input-hook + #'evil-snipe-mode)~ to =$DOOMDIR/config.el=, 2. Or disable =evil-snipe= completely with ~(package! evil-snipe :disable t)~ added to =$DOOMDIR/packages.el=, but this will also disable incremental highlighting for the f/F/t/T motions keys. diff --git a/modules/editor/evil/init.el b/modules/editor/evil/init.el index 2e0472a6a..611f226f0 100644 --- a/modules/editor/evil/init.el +++ b/modules/editor/evil/init.el @@ -106,6 +106,7 @@ variable for an explanation of the defaults (in comments). See deadgrep debbugs debug + devdocs dictionary diff-mode dired @@ -123,6 +124,7 @@ variable for an explanation of the defaults (in comments). See elisp-mode elisp-refs elisp-slime-nav + embark emms epa ert @@ -209,13 +211,15 @@ variable for an explanation of the defaults (in comments). See speedbar tablist tar-mode + telega (term term ansi-term multi-term) tetris - ,@(if EMACS27+ '(thread)) + thread tide timer-list transmission trashed + tuareg typescript-mode vc-annotate vc-dir @@ -299,9 +303,8 @@ and complains if a module is loaded too early (during startup)." (+evil-collection-init '(process-menu simple))) (add-transient-hook! 'tabulated-list-mode (+evil-collection-init 'tabulated-list)) - (when EMACS27+ - (add-transient-hook! 'tab-bar-mode - (+evil-collection-init 'tab-bar))) + (add-transient-hook! 'tab-bar-mode + (+evil-collection-init 'tab-bar)) ;; HACK Do this ourselves because evil-collection break's `eval-after-load' ;; load order by loading their target plugin before applying keys. This diff --git a/modules/editor/evil/packages.el b/modules/editor/evil/packages.el index b6141692f..70f203486 100644 --- a/modules/editor/evil/packages.el +++ b/modules/editor/evil/packages.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; -*- ;;; editor/evil/packages.el -(package! evil :pin "1b3db6349d04adfc68f707b0edd800f5ab3cb374") +(package! evil :pin "b237462feed177cc74a48f462bc9356681a60ff8") (package! evil-args :pin "758ad5ae54ad34202064fec192c88151c08cb387") (package! evil-easymotion :pin "f96c2ed38ddc07908db7c3c11bcd6285a3e8c2e9") (package! evil-embrace :pin "464e8ec52ff78edf3c9060143fc375f6ce5f275f") @@ -11,14 +11,14 @@ (package! evil-exchange :pin "ac50f21b29b6e3a111e10a9e88ae61c907ac5ee8") (package! evil-indent-plus :pin "0c7501e6efed661242c3a20e0a6c79a6455c2c40") (package! evil-lion :pin "6b03593f5dd6e7c9ca02207f9a73615cf94c93ab") -(package! evil-nerd-commenter :pin "b8ac35fe019df5602c31912f65303a3d8ad0066c") -(package! evil-numbers - :recipe (:host github :repo "janpath/evil-numbers") - :pin "006da406d175c05fedca4431cccd569e20bef92c") -(package! evil-snipe :pin "6dcac7f2516c6137a2de532fc2c052f242559ee3") -(package! evil-surround :pin "346d4d85fcf1f9517e9c4991c1efe68b4130f93a") +(package! evil-nerd-commenter :pin "118bebd02a489ddf5eee3ab6fb55b3ef37ebe6d4") +(package! evil-numbers :pin "cd23a7b458d73dc49434a3cf90d3d0caceb5811d") +(package! evil-snipe :pin "a9b9b39a7915e66b7d5da9cecfaf002c72d08196") +(package! evil-surround :pin "3bd73794ee5a760118042584ef74e2b6fb2a1e06") (package! evil-textobj-anyblock - :recipe (:host github :repo "willghatch/evil-textobj-anyblock" :branch "fix-inner-block") + :recipe (:host github + :repo "willghatch/evil-textobj-anyblock" + :branch "fix-inner-block") :pin "29280cd71a05429364cdceef2ff595ae8afade4d") (package! evil-traces :pin "290b5323542c46af364ec485c8ec9000040acf90") (package! evil-visualstar :pin "06c053d8f7381f91c53311b1234872ca96ced752") @@ -35,4 +35,4 @@ (package! neotree) (autoload 'neotree-make-executor "neotree" nil nil 'macro)) - (package! evil-collection :pin "b6025cf9eaf7b4659db918548fd6d96ed17fddc6")) + (package! evil-collection :pin "9be3805b60d03fc6e0d45cb3decb5c6703395cf4")) diff --git a/modules/editor/file-templates/templates/rust-mode/__main.rs b/modules/editor/file-templates/templates/rust-mode/__main.rs index 141e9cefd..aa70177f0 100644 --- a/modules/editor/file-templates/templates/rust-mode/__main.rs +++ b/modules/editor/file-templates/templates/rust-mode/__main.rs @@ -1,5 +1,3 @@ -use std::io; - fn main() { ${0:println!("Hello, world!");} } diff --git a/modules/editor/format/config.el b/modules/editor/format/config.el index 6b39582b8..9ce07183c 100644 --- a/modules/editor/format/config.el +++ b/modules/editor/format/config.el @@ -74,11 +74,13 @@ This is controlled by `+format-on-save-enabled-modes'." (defadvice! +format--all-buffer-from-hook-a (orig-fn &rest args) :around #'format-all-buffer--from-hook (letf! (defun format-all-buffer--with (formatter mode-result) - (and (condition-case-unless-debug e - (format-all--formatter-executable formatter) - (error - (message "Warning: cannot reformat buffer because %S isn't installed" - (gethash formatter format-all--executable-table)) - nil)) - (funcall format-all-buffer--with formatter mode-result))) + (when (or (eq formatter 'lsp) + (eq formatter 'eglot) + (condition-case-unless-debug e + (format-all--formatter-executable formatter) + (error + (message "Warning: cannot reformat buffer because %S isn't installed" + (gethash formatter format-all--executable-table)) + nil))) + (funcall format-all-buffer--with formatter mode-result))) (apply orig-fn args))) diff --git a/modules/editor/god/packages.el b/modules/editor/god/packages.el index a8766d1dc..c57e01209 100644 --- a/modules/editor/god/packages.el +++ b/modules/editor/god/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; editor/god/packages.el -(package! god-mode :pin "02a402b2323e025f77e89cf56d5e678e31a2d2f6") +(package! god-mode :pin "1d7d647bb53a49fce03486eba90e97ccf35cf85a") diff --git a/modules/editor/lispy/packages.el b/modules/editor/lispy/packages.el index 451e65bcd..3286026c9 100644 --- a/modules/editor/lispy/packages.el +++ b/modules/editor/lispy/packages.el @@ -1,6 +1,6 @@ ;; -*- no-byte-compile: t; -*- ;;; editor/lispyville/packages.el -(package! lispy :pin "38a7df4cbb16cfe3d62dc8ea98b50e2d9a572e58") +(package! lispy :pin "e9731aa95581951ab2cbfaed28f0ac7d71124ac0") (when (featurep! :editor evil) - (package! lispyville :pin "89316f01822b2135e52ca27fd308d207ef618052")) + (package! lispyville :pin "9c14bed0359f659e246d345c706f895737c3d172")) diff --git a/modules/editor/multiple-cursors/packages.el b/modules/editor/multiple-cursors/packages.el index 7e767ce92..669b0a085 100644 --- a/modules/editor/multiple-cursors/packages.el +++ b/modules/editor/multiple-cursors/packages.el @@ -9,4 +9,4 @@ (package! evil-multiedit :pin "9f271e0e6048297692f80ed6c5ae8994ac523abc") (package! evil-mc :pin "f04fb17f35f2722f2ac93c862b4450bb8e5b739a")) - ((package! multiple-cursors :pin "7b13b03c995e13ad86e499d40ec49c4dc281f889"))) + ((package! multiple-cursors :pin "616fbdd3696f99d85660ad57ebbb0c44d6c7f426"))) diff --git a/modules/editor/parinfer/packages.el b/modules/editor/parinfer/packages.el index 27c3c73e9..7735494c6 100644 --- a/modules/editor/parinfer/packages.el +++ b/modules/editor/parinfer/packages.el @@ -2,7 +2,7 @@ ;;; editor/parinfer/packages.el (if (featurep! +rust) - (package! parinfer-rust-mode :pin "f130fa04ec75131686872f24a253d0a1d5522fa4") + (package! parinfer-rust-mode :pin "c2c1bbec6cc7dad4f546868aa07609b8d58a78f8") (when (featurep! :editor evil) ;; Parinfer uses `evil-define-key' without loading evil, so if evil is ;; installed *after* parinfer, parinfer will throw up void-function errors. diff --git a/modules/editor/snippets/packages.el b/modules/editor/snippets/packages.el index d73ceae5a..4d1975e4f 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 "f7747da6343aadfbe8a3f9e6b35018ac19db4438") + :pin "5c0eb5bd70f035cefb981c2ce64f4367498bdda6") diff --git a/modules/editor/word-wrap/packages.el b/modules/editor/word-wrap/packages.el index beac10654..dcafdd185 100644 --- a/modules/editor/word-wrap/packages.el +++ b/modules/editor/word-wrap/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; editor/word-wrap/packages.el -(package! adaptive-wrap :pin "91e939b48a8129f696f45a7a3963fe09cbfa3a2d") +(package! adaptive-wrap :pin "0d5b4a07de76d87dd64333a566a8a0a845f2b9f0") diff --git a/modules/emacs/dired/config.el b/modules/emacs/dired/config.el index 08711d565..9dfe0006a 100644 --- a/modules/emacs/dired/config.el +++ b/modules/emacs/dired/config.el @@ -117,18 +117,17 @@ we have to clean it up ourselves." ;; HACK Fixes #1929: icons break file renaming in Emacs 27+, because the icon ;; is considered part of the filename, so we disable icons while we're in ;; wdired-mode. - (when EMACS27+ - (defvar +wdired-icons-enabled -1) + (defvar +wdired-icons-enabled -1) - (defadvice! +dired-disable-icons-in-wdired-mode-a (&rest _) - :before #'wdired-change-to-wdired-mode - (setq-local +wdired-icons-enabled (if all-the-icons-dired-mode 1 -1)) - (when all-the-icons-dired-mode - (all-the-icons-dired-mode -1))) + (defadvice! +dired-disable-icons-in-wdired-mode-a (&rest _) + :before #'wdired-change-to-wdired-mode + (setq-local +wdired-icons-enabled (if all-the-icons-dired-mode 1 -1)) + (when all-the-icons-dired-mode + (all-the-icons-dired-mode -1))) - (defadvice! +dired-restore-icons-after-wdired-mode-a (&rest _) - :after #'wdired-change-to-dired-mode - (all-the-icons-dired-mode +wdired-icons-enabled)))) + (defadvice! +dired-restore-icons-after-wdired-mode-a (&rest _) + :after #'wdired-change-to-dired-mode + (all-the-icons-dired-mode +wdired-icons-enabled))) (use-package! dired-x diff --git a/modules/emacs/dired/packages.el b/modules/emacs/dired/packages.el index a04c5fc8f..a701ab982 100644 --- a/modules/emacs/dired/packages.el +++ b/modules/emacs/dired/packages.el @@ -3,10 +3,10 @@ (package! diredfl :pin "4ca32658aebaf2335f0368a0fd08f52eb1aee960") (package! dired-git-info :pin "9461476a28a5fec0784260f6e318237c662c3430") -(package! diff-hl :pin "1af31fe1c177646ef7419c95b5d9c25655187ceb") +(package! diff-hl :pin "992559f98a1f0367ae2b73e94f69503da73f3a83") (package! dired-rsync :pin "fb0f161ac3cce1b224f52547f5bc7e1dcd283191") (when (featurep! +ranger) (package! ranger :pin "2498519cb21dcd5791d240607a72a204d1761668")) (when (featurep! +icons) - (package! all-the-icons-dired :pin "f401fe289cd93936e7747b1541aa98117b7ca96f")) -(package! fd-dired :pin "7d18938751d047eef18bfb5975195419f0d1e2d3") + (package! all-the-icons-dired :pin "a758766878b6e8b9eaaf41d68599a2df99e37f48")) +(package! fd-dired :pin "c223aee30af7dc7f52fb20045226ed9f49f4ec49") diff --git a/modules/emacs/undo/config.el b/modules/emacs/undo/config.el index 2c84ba4c6..bfa98f4a7 100644 --- a/modules/emacs/undo/config.el +++ b/modules/emacs/undo/config.el @@ -4,10 +4,10 @@ :unless (featurep! +tree) :hook (doom-first-buffer . undo-fu-mode) :config - ;; Store more undo history to prevent loss of data - (setq undo-limit 400000 - undo-strong-limit 3000000 - undo-outer-limit 3000000) + ;; Increase undo history limits to reduce likelihood of data loss + (setq undo-limit 400000 ; 400kb (default is 160kb) + undo-strong-limit 3000000 ; 3mb (default is 240kb) + undo-outer-limit 48000000) ; 48mb (default is 24mb) (define-minor-mode undo-fu-mode "Enables `undo-fu' for the current session." @@ -60,12 +60,14 @@ (setq undo-tree-visualizer-diff t undo-tree-auto-save-history t undo-tree-enable-undo-in-region t - ;; Increase undo-limits by a factor of ten to avoid emacs prematurely - ;; truncating the undo history and corrupting the tree. See - ;; https://github.com/syl20bnr/spacemacs/issues/12110 - undo-limit 800000 - undo-strong-limit 12000000 - undo-outer-limit 120000000) + ;; Increase undo limits to avoid emacs prematurely truncating the undo + ;; history and corrupting the tree. This is larger than the undo-fu + ;; defaults because undo-tree trees consume exponentially more space, + ;; and then some when `undo-tree-enable-undo-in-region' is involved. See + ;; syl20bnr/spacemacs#12110 + undo-limit 800000 ; 800kb (default is 160kb) + undo-strong-limit 12000000 ; 12mb (default is 240kb) + undo-outer-limit 128000000) ; 128mb (default is 24mb) ;; Compress undo-tree history files with zstd, if available. File size isn't ;; the (only) concern here: the file IO barrier is slow for Emacs to cross; diff --git a/modules/emacs/vc/autoload/vc.el b/modules/emacs/vc/autoload/vc.el index 3ee20d4db..2dc5c8976 100644 --- a/modules/emacs/vc/autoload/vc.el +++ b/modules/emacs/vc/autoload/vc.el @@ -1,6 +1,7 @@ ;;; emacs/vc/autoload/vc.el -*- lexical-binding: t; -*- (defun +vc--remote-homepage () + (require 'browse-at-remote) (or (let ((url (browse-at-remote--remote-ref))) (cdr (browse-at-remote--get-url-from-remote (car url)))) (user-error "Can't find homepage for current project"))) diff --git a/modules/input/layout/autoload/bepo.el b/modules/input/layout/autoload/bepo.el index 845a2f855..971e76be6 100644 --- a/modules/input/layout/autoload/bepo.el +++ b/modules/input/layout/autoload/bepo.el @@ -189,8 +189,7 @@ See `+layout-bepo-cr-rotation-style' for the meaning of CR-STYLE." '(evil-normal-state-map evil-motion-state-map evil-operator-state-map) "é" "w" "É" "W" - "w" (kbd "C-w") - "W" (kbd "C-w C-w")))) + "w" (kbd "C-w")))) ;;;###autoload (defun +layout-bepo-rotate-keymaps (keymaps &optional cr-style) @@ -324,5 +323,4 @@ Remappings are done according to CR-STYLE (see (evil-collection-translate-key '(normal motion operator visual) keymaps "é" "w" "É" "W" - "w" (kbd "C-w") - "W" (kbd "C-w C-w")))) + "w" (kbd "C-w")))) diff --git a/modules/lang/agda/packages.el b/modules/lang/agda/packages.el index 09d0b6296..06dbca865 100644 --- a/modules/lang/agda/packages.el +++ b/modules/lang/agda/packages.el @@ -6,11 +6,11 @@ :recipe (:host github :repo "agda/agda" :files ("src/data/emacs-mode/agda-input.el") :nonrecursive t) - :pin "ecb93230ad9327991e542731756cbe1405c85d5f") + :pin "af9c4b968698e285c453516b2104a347ad954849") (package! agda2-mode :recipe (:host github :repo "agda/agda" :files ("src/data/emacs-mode/*.el" (:exclude "agda-input.el")) :nonrecursive t) - :pin "ecb93230ad9327991e542731756cbe1405c85d5f")) + :pin "af9c4b968698e285c453516b2104a347ad954849")) diff --git a/modules/lang/beancount/config.el b/modules/lang/beancount/config.el index c5fa6adb8..dfd0696bb 100644 --- a/modules/lang/beancount/config.el +++ b/modules/lang/beancount/config.el @@ -29,22 +29,6 @@ This msut be advised *before* beancount-mode loads, because :config (when (featurep! +lsp) - (after! lsp-mode - ;; TODO PR this upstream - (add-to-list 'lsp-language-id-configuration '(beancount-mode . "beancount")) - (defvar lsp-beancount-langserver-executable "beancount-langserver") - (defvar lsp-beancount-journal-file nil) - (defvar lsp-beancount-python-interpreter - (or (executable-find "python3") - (executable-find "python"))) - (lsp-register-client - (make-lsp-client :new-connection - (lsp-stdio-connection `(,lsp-beancount-langserver-executable "--stdio")) - :major-modes '(beancount-mode) - :initialization-options - `((journalFile . ,lsp-beancount-journal-file) - (pythonPath . ,lsp-beancount-python-interpreter)) - :server-id 'beancount-ls))) (add-hook 'beancount-mode-local-vars-hook #'lsp!)) (setq beancount-electric-currency t) diff --git a/modules/lang/beancount/packages.el b/modules/lang/beancount/packages.el index 93a3c2b12..f29ef2d81 100644 --- a/modules/lang/beancount/packages.el +++ b/modules/lang/beancount/packages.el @@ -4,4 +4,4 @@ (package! beancount :recipe (:host github :repo "beancount/beancount-mode") - :pin "3c04745fa539c25dc007683ad257239067c24cfe") + :pin "02fe03ee4487de7f83f587db65970b91ebd2d9d7") diff --git a/modules/lang/cc/packages.el b/modules/lang/cc/packages.el index 23c19b600..13ab11f8e 100644 --- a/modules/lang/cc/packages.el +++ b/modules/lang/cc/packages.el @@ -27,7 +27,7 @@ (when (featurep! :completion company) (package! company-irony :pin "b44711dfce445610c1ffaec4951c6ff3882b216a") (package! company-irony-c-headers :pin "72c386aeb079fb261d9ec02e39211272f76bbd97"))) - (when (package! rtags :pin "63f18acb21e664fd92fbc19465f0b5df085b5e93") + (when (package! rtags :pin "65113e2a137baa9f85dc2157b893291470788dc4") (when (featurep! :completion ivy) (package! ivy-rtags)) (when (featurep! :completion helm) diff --git a/modules/lang/clojure/packages.el b/modules/lang/clojure/packages.el index d1967d1df..33a2f6d9a 100644 --- a/modules/lang/clojure/packages.el +++ b/modules/lang/clojure/packages.el @@ -1,9 +1,9 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/clojure/packages.el -(package! clojure-mode :pin "a14671e03c867c9d759ee9e59cdc5cecbf271245") -(package! cider :pin "4278d7cf0b54af5cc84f4a521ee1ed6e81a96adc") -(package! clj-refactor :pin "9f3e7357117e96135de051b78deabc0a327c7b06") +(package! clojure-mode :pin "3e426b3a479f479963f2c7d1147cc826ed1a0ee1") +(package! cider :pin "fe8cf244fd3426261f9f630c981a6296afd433a4") +(package! clj-refactor :pin "466822ff6f9da584f7cf72c868017b8840574dbd") (when (featurep! :checkers syntax) (package! flycheck-clj-kondo :pin "a558bda44c4cb65b69fa53df233e8941ebd195c5")) diff --git a/modules/lang/common-lisp/config.el b/modules/lang/common-lisp/config.el index 86f9ef1be..3601644a6 100644 --- a/modules/lang/common-lisp/config.el +++ b/modules/lang/common-lisp/config.el @@ -16,6 +16,13 @@ (use-package! sly :hook (lisp-mode-local-vars . sly-editing-mode) :init + ;; I moved this hook to `lisp-mode-local-vars', so it only affects + ;; `lisp-mode', and not every other derived lisp mode (like `fennel-mode'). + ;; We run it twice because the hook is both autoloaded and evaluated at + ;; load-time, so it must be removed twice. + (after! (:or emacs sly) + (remove-hook 'lisp-mode-hook #'sly-editing-mode)) + (after! lisp-mode (set-repl-handler! 'lisp-mode #'sly-mrepl) (set-eval-handler! 'lisp-mode #'sly-eval-region) diff --git a/modules/lang/common-lisp/packages.el b/modules/lang/common-lisp/packages.el index 3193e4f2a..174e02241 100644 --- a/modules/lang/common-lisp/packages.el +++ b/modules/lang/common-lisp/packages.el @@ -1,6 +1,6 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/common-lisp/packages.el -(when (package! sly :pin "5966d68727898fa6130fb6bb02208f70aa8d5ce3") +(when (package! sly :pin "41f4d650485217aa1f2afa7c159418f103a09231") (package! sly-macrostep :pin "5113e4e926cd752b1d0bcc1508b3ebad5def5fad") (package! sly-repl-ansi-color :pin "b9cd52d1cf927bf7e08582d46ab0bcf1d4fb5048")) diff --git a/modules/lang/coq/packages.el b/modules/lang/coq/packages.el index 1570f8e2c..5a4e4dfed 100644 --- a/modules/lang/coq/packages.el +++ b/modules/lang/coq/packages.el @@ -1,5 +1,5 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/coq/packages.el -(package! proof-general :pin "f0f0476d07401aba2cf428a71f7ee960cd1b3154") -(package! company-coq :pin "7423ee253951a439b2491e1cd2ea8bb876d25cb7") +(package! proof-general :pin "bc86736abb728ec0d28abc90ef0adae21d29a66a") +(package! company-coq :pin "382db93374380e5db56f02934ee32bbe39159019") diff --git a/modules/lang/csharp/packages.el b/modules/lang/csharp/packages.el index c57be6248..245869511 100644 --- a/modules/lang/csharp/packages.el +++ b/modules/lang/csharp/packages.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/csharp/packages.el -(package! csharp-mode :pin "f977800161ccdb58d5650a8ca60017c83863d80a") +(package! csharp-mode :pin "093f0f21a9d04d79a380de145cbc42693ef8c76f") (package! csproj-mode :pin "a7f0f4610c976a28c41b9b8299892f88b5d0336c") (package! sln-mode :pin "0f91d1b957c7d2a7bab9278ec57b54d57f1dbd9c") (unless (featurep! +lsp) @@ -9,4 +9,4 @@ (when (featurep! +unity) (package! shader-mode :pin "d7dc8d0d6fe8914e8b6d5cf2081ad61e6952359c")) (when (featurep! +dotnet) - (package! sharper :pin "d610b839dbb907cc0a49b7edfe7fe39aa3f9dd6d")) + (package! sharper :pin "08277b6c30568adfbe438c9f2a1d6c3db4b7ebeb")) diff --git a/modules/lang/dart/config.el b/modules/lang/dart/config.el index 5fcda378b..def927dc0 100644 --- a/modules/lang/dart/config.el +++ b/modules/lang/dart/config.el @@ -32,7 +32,8 @@ :when (featurep! +flutter) :defer t :init - (map! :map dart-mode-map + (map! :after dart-mode + :map dart-mode-map :localleader "r" #'flutter-run-or-hot-reload)) diff --git a/modules/lang/dart/packages.el b/modules/lang/dart/packages.el index 5337fa17e..092cc8add 100644 --- a/modules/lang/dart/packages.el +++ b/modules/lang/dart/packages.el @@ -4,7 +4,7 @@ (package! dart-mode :pin "43975c92080e307c4bc14a4773a61195d2062fd9") (when (featurep! +lsp) - (package! lsp-dart :pin "f3b70ec0e6adf3a51e15f9a3effb182c2363493d")) + (package! lsp-dart :pin "01d89d43f17a15c7ccad5a458250d5d6b0f70b09")) (when (featurep! +flutter) (package! flutter :pin "960b63576a13b7bd3495d0ad1883ed736873543b") diff --git a/modules/lang/elixir/packages.el b/modules/lang/elixir/packages.el index 1c92b0c54..a919026d3 100644 --- a/modules/lang/elixir/packages.el +++ b/modules/lang/elixir/packages.el @@ -2,7 +2,7 @@ ;;; lang/elixir/packages.el ;; +elixir.el -(package! elixir-mode :pin "0212b06f079f4965b6032bbbe7f86876575770de") +(package! elixir-mode :pin "6bbc1e5ac46064613c982cedc60566ed077e7a58") (package! alchemist :pin "6f99367511ae209f8fe2c990779764bbb4ccb6ed") (package! exunit :pin "5bb115f3270cfe29d36286da889f0ee5bba03cfd") (when (featurep! :checkers syntax) diff --git a/modules/lang/elm/packages.el b/modules/lang/elm/packages.el index 99542a10d..69532dfd7 100644 --- a/modules/lang/elm/packages.el +++ b/modules/lang/elm/packages.el @@ -1,6 +1,6 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/elm/packages.el -(package! elm-mode :pin "e9fcf9cc2779cf7f5ae7ee4be339164b26755c69") +(package! elm-mode :pin "f2e2d0053f3272d9fc0c2e16c8d17d97724cf524") (when (featurep! :checkers syntax) (package! flycheck-elm :pin "1b60050efd4729bfba548f3e5adbcb58436667cb")) diff --git a/modules/lang/emacs-lisp/config.el b/modules/lang/emacs-lisp/config.el index 722c6a623..d07918f36 100644 --- a/modules/lang/emacs-lisp/config.el +++ b/modules/lang/emacs-lisp/config.el @@ -153,27 +153,31 @@ employed so that flycheck still does *some* helpful linting.") :config (set-lookup-handlers! 'inferior-emacs-lisp-mode :definition #'+emacs-lisp-lookup-definition - :documentation #'+emacs-lisp-lookup-documentation)) + :documentation #'+emacs-lisp-lookup-documentation) -;; Adapted from http://www.modernemacs.com/post/comint-highlighting/ to add -;; syntax highlighting to ielm REPLs. -(add-hook! 'ielm-mode-hook - (defun +emacs-lisp-init-syntax-highlighting-h () - (font-lock-add-keywords - nil (cl-loop for (matcher . match-highlights) - in (append lisp-el-font-lock-keywords-2 lisp-cl-font-lock-keywords-2) - collect - `((lambda (limit) - (and ,(if (symbolp matcher) - `(,matcher limit) - `(re-search-forward ,matcher limit t)) - ;; Only highlight matches after the prompt - (> (match-beginning 0) (car comint-last-prompt)) - ;; Make sure we're not in a comment or string - (let ((state (sp--syntax-ppss))) - (not (or (nth 3 state) - (nth 4 state)))))) - ,@match-highlights))))) + ;; Adapted from http://www.modernemacs.com/post/comint-highlighting/ to add + ;; syntax highlighting to ielm REPLs. + (setq ielm-font-lock-keywords + (append '(("\\(^\\*\\*\\*[^*]+\\*\\*\\*\\)\\(.*$\\)" + (1 font-lock-comment-face) + (2 font-lock-constant-face))) + (when (require 'highlight-numbers nil t) + (highlight-numbers--get-regexp-for-mode 'emacs-lisp-mode)) + (cl-loop for (matcher . match-highlights) + in (append lisp-el-font-lock-keywords-2 + lisp-cl-font-lock-keywords-2) + collect + `((lambda (limit) + (when ,(if (symbolp matcher) + `(,matcher limit) + `(re-search-forward ,matcher limit t)) + ;; Only highlight matches after the prompt + (> (match-beginning 0) (car comint-last-prompt)) + ;; Make sure we're not in a comment or string + (let ((state (syntax-ppss))) + (not (or (nth 3 state) + (nth 4 state)))))) + ,@match-highlights))))) ;; diff --git a/modules/lang/erlang/packages.el b/modules/lang/erlang/packages.el index 771dc95b2..7816dc2ed 100644 --- a/modules/lang/erlang/packages.el +++ b/modules/lang/erlang/packages.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/erlang/packages.el -(package! erlang :pin "94c9738e10326554af80d128c76e4bded1c7b983") +(package! erlang :pin "645ea8110da97687de302791829b4a6119a9b396") (unless (featurep! +lsp) (when (featurep! :completion company) (package! company-erlang :pin "bc0524a16f17b66c7397690e4ca0e004f09ea6c5"))) diff --git a/modules/lang/ess/packages.el b/modules/lang/ess/packages.el index 99a003f98..922a0f808 100644 --- a/modules/lang/ess/packages.el +++ b/modules/lang/ess/packages.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/ess/packages.el -(package! ess :pin "126d34414ce5446d3f48320773114de83ae55bdc") +(package! ess :pin "4fefd0feaae688e28d6a0c36c9eaa219c448903f") (package! ess-R-data-view :pin "d6e98d3ae1e2a2ea39a56eebcdb73e99d29562e9") -(package! polymode :pin "b3871e946d278a256d95a3bd4615b1df234ad75a") +(package! polymode :pin "7d1f822f0833b43326cc9253dc8a3e267ad4b376") (package! poly-R :pin "c42ff3a4d0da96ccb7f826dca5c6b2eb558a2ab5") diff --git a/modules/lang/factor/packages.el b/modules/lang/factor/packages.el index dd637a1ee..4b6719d69 100644 --- a/modules/lang/factor/packages.el +++ b/modules/lang/factor/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/factor/packages.el -(package! fuel :pin "5bfeab6c0e13bfefddb98b30b6e60489a1574d8e") +(package! fuel :pin "b989a860d1d6191bb9c5911ac77ed0931424eaeb") diff --git a/modules/lang/fsharp/packages.el b/modules/lang/fsharp/packages.el index 3e5ec753e..83b2ee1a0 100644 --- a/modules/lang/fsharp/packages.el +++ b/modules/lang/fsharp/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/fsharp/packages.el -(package! fsharp-mode :pin "78898a1535878394d83643c383f4320e7b5fcefd") +(package! fsharp-mode :pin "93b1fbc31d73286a18640a36fc2be87d1736e0f2") diff --git a/modules/lang/gdscript/packages.el b/modules/lang/gdscript/packages.el index 8dd4db62e..37710b970 100644 --- a/modules/lang/gdscript/packages.el +++ b/modules/lang/gdscript/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/gdscript/packages.el -(package! gdscript-mode :pin "16c631cd6f2f2eeb11730442c9897008e1e10f7a") +(package! gdscript-mode :pin "b7bfa6a3b294039f5093f85e4ff809ff05333abd") diff --git a/modules/lang/go/packages.el b/modules/lang/go/packages.el index 46745d4b3..5862235c1 100644 --- a/modules/lang/go/packages.el +++ b/modules/lang/go/packages.el @@ -2,8 +2,8 @@ ;;; lang/go/packages.el (package! go-eldoc :pin "cbbd2ea1e94a36004432a9ac61414cb5a95a39bd") -(package! go-guru :pin "49a538028e63dbe20f428c52d91f09b70b564626") -(package! go-mode :pin "49a538028e63dbe20f428c52d91f09b70b564626") +(package! go-guru :pin "34974346d1f74fa835d745514c9fe9afccce8dae") +(package! go-mode :pin "34974346d1f74fa835d745514c9fe9afccce8dae") (package! gorepl-mode :pin "6a73bf352e8d893f89cad36c958c4db2b5e35e07") (package! go-tag :pin "59b243f2fa079d9de9d56f6e2d94397e9560310a") (package! go-gen-test :pin "44c202ac97e728e93a35cee028a0ea8dd6e4292c") diff --git a/modules/lang/haskell/packages.el b/modules/lang/haskell/packages.el index d5a3001c5..864e546e1 100644 --- a/modules/lang/haskell/packages.el +++ b/modules/lang/haskell/packages.el @@ -1,12 +1,12 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/haskell/packages.el -(package! haskell-mode :pin "1baa12abfa2c81128e5b13d1351f2978a4a54b4f") +(package! haskell-mode :pin "98ba3922360199d5260d47f417f096730ad057c5") (when (featurep! +dante) (package! dante :pin "8741419333fb85ed2c1d71f5902688f5201b0a40") - (package! attrap :pin "778382eba8e1a449862b1573e90c1e79cf5caeb1")) + (package! attrap :pin "a5bc695af27349ae6fe4541a581e6fd449d2a026")) (when (or (and (featurep! +lsp) (not (featurep! :tools lsp +eglot))) (featurep! +ghcide)) - (package! lsp-haskell :pin "7efbef3d206989faa8b691a4230a3ed872542187")) + (package! lsp-haskell :pin "eb37ac4a6a43277263bbb17aed6a862a0992ae8e")) diff --git a/modules/lang/idris/packages.el b/modules/lang/idris/packages.el index 1b1ae7d58..02545259d 100644 --- a/modules/lang/idris/packages.el +++ b/modules/lang/idris/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/idris/packages.el -(package! idris-mode :pin "80aabd2566082aa67d17eccdd80e9f1fb10c9ec8") +(package! idris-mode :pin "f52ad0b4770403561b40f1d0499ecaca70da886c") diff --git a/modules/lang/java/packages.el b/modules/lang/java/packages.el index 3ed2e0c34..e9250b2fc 100644 --- a/modules/lang/java/packages.el +++ b/modules/lang/java/packages.el @@ -2,7 +2,7 @@ ;;; lang/java/packages.el (package! android-mode :pin "d5332e339a1f5e30559a53feffb8442ca79265d6") -(package! groovy-mode :pin "26da902d1158c0312628d57578109be54eca2415") +(package! groovy-mode :pin "99eaf70720e4a6337fbd5acb68ae45cc1779bdc4") (when (featurep! +meghanada) (package! meghanada :pin "6c57e8a0ae27e2929bb12572cf33059cd4ecbc04")) @@ -14,4 +14,4 @@ (when (featurep! +lsp) (unless (featurep! :tools lsp +eglot) - (package! lsp-java :pin "9685334086c0b09d2bb16f631fb368f4ce931764"))) + (package! lsp-java :pin "b66a075bcb1edf57b09a0e1c73c3a399596d4760"))) diff --git a/modules/lang/javascript/packages.el b/modules/lang/javascript/packages.el index fc1238929..ec8c3654f 100644 --- a/modules/lang/javascript/packages.el +++ b/modules/lang/javascript/packages.el @@ -2,8 +2,6 @@ ;;; lang/javascript/packages.el ;; Major modes -(package! coffee-mode :pin "35a41c7d8233eac0b267d9593e67fb8b6235e134") -(package! js2-mode :pin "29979e5f3301796ba606759e39ee0b1b6a2a24f3") (package! rjsx-mode :pin "b697fe4d92cc84fa99a7bcb476f815935ea0d919") (package! typescript-mode :pin "1043025d42602d560949955410d3afa2562130ee") @@ -17,6 +15,6 @@ (package! skewer-mode :pin "e5bed351939c92a1f788f78398583c2f83f1bb3c") ;; Programming environment -(package! tide :pin "ad6fa78911d5d7e85c0851c0c1afc01f3cbde7c1") +(package! tide :pin "ccff099e94beda9f5378ffc2b412cb4257111e8d") (when (featurep! :tools lookup) (package! xref-js2 :pin "fd6b723e7f1f9793d189a815e1904364dc026b03")) diff --git a/modules/lang/json/doctor.el b/modules/lang/json/doctor.el index 5578829e2..f1dc3009a 100644 --- a/modules/lang/json/doctor.el +++ b/modules/lang/json/doctor.el @@ -1,4 +1,5 @@ ;;; lang/json/doctor.el -*- lexical-binding: t; -*- -(unless (executable-find "jq") - (warn! "Couldn't find jq. counsel-jq won't work.")) +(when (and (featurep! :completion ivy) + (not (executable-find "jq"))) + (warn! "Couldn't find jq. counsel-jq won't work." )) diff --git a/modules/lang/json/packages.el b/modules/lang/json/packages.el index 8010fccb5..afe5d70a7 100644 --- a/modules/lang/json/packages.el +++ b/modules/lang/json/packages.el @@ -4,4 +4,4 @@ (package! json-mode :pin "0e819e519ae17a2686e0881c4ca51fa873fa9b83") (package! json-snatcher :pin "b28d1c0670636da6db508d03872d96ffddbc10f2") (when (featurep! :completion ivy) - (package! counsel-jq :pin "153d70b576df1d572c56d84039cb40749310cfe7")) + (package! counsel-jq :pin "8cadd2e96470402ede4881b4e955872976443689")) diff --git a/modules/lang/julia/packages.el b/modules/lang/julia/packages.el index 0076d341c..a27e494ec 100644 --- a/modules/lang/julia/packages.el +++ b/modules/lang/julia/packages.el @@ -2,9 +2,9 @@ ;;; lang/julia/packages.el (package! julia-mode :pin "fe6f6f7a80f8d60ecffa5b2cb43667bb9dc11705") -(package! julia-repl :pin "7ce38a9caf2a9c105afe66f464a2f30e816d69f3") +(package! julia-repl :pin "79e686e3ebf164bd39fc2ea5cf09d38d0e1d763a") (when (featurep! +lsp) (if (featurep! :tools lsp +eglot) - (package! eglot-jl :pin "84cff9d6ef1643f3eac6c9d620cc1e380a9847d9") - (package! lsp-julia :pin "c487ed715c49d863e8a8e76d13b37b6e694520d4"))) + (package! eglot-jl :pin "49f170e01c5a107c2cb662c00544d827eaa2c4d8") + (package! lsp-julia :pin "d4a7a27d6ac7c6831b4f493dd89f82fa0c75bdf5"))) diff --git a/modules/lang/kotlin/packages.el b/modules/lang/kotlin/packages.el index a07fd5aa2..ab2ba1d77 100644 --- a/modules/lang/kotlin/packages.el +++ b/modules/lang/kotlin/packages.el @@ -4,4 +4,4 @@ (package! kotlin-mode :pin "0e4bafb31d1fc2a0a420a521c2723d5526646c0b") (when (featurep! :checkers syntax) - (package! flycheck-kotlin :pin "5104ee9a3fdb7f0a0a3d3bcfd8dd3c45a9929310")) + (package! flycheck-kotlin :pin "bf1b398bdde128806a0a7479ebbe369bbaa40dae")) diff --git a/modules/lang/latex/config.el b/modules/lang/latex/config.el index 837d210a8..73047037f 100644 --- a/modules/lang/latex/config.el +++ b/modules/lang/latex/config.el @@ -120,7 +120,8 @@ If no viewers are found, `latex-preview-pane' is used.") (add-hook! 'TeX-fold-mode-hook (defun +latex-fold-snippet-contents-h () (add-hook! 'yas-after-exit-snippet-hook :local - (TeX-fold-region yas-snippet-beg yas-snippet-end))))) + (when (and yas-snippet-beg yas-snippet-end) + (TeX-fold-region yas-snippet-beg yas-snippet-end)))))) (add-hook! 'mixed-pitch-mode-hook (defun +latex-fold-set-variable-pitch-h () diff --git a/modules/lang/latex/packages.el b/modules/lang/latex/packages.el index 8f2382901..2c56dda10 100644 --- a/modules/lang/latex/packages.el +++ b/modules/lang/latex/packages.el @@ -1,11 +1,11 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/latex/packages.el -(package! auctex :pin "1472d1d231aeae463013d5e36307605157f84191") -(package! adaptive-wrap :pin "91e939b48a8129f696f45a7a3963fe09cbfa3a2d") +(package! auctex :pin "ea410dce4f24908b46649b77a4881f7454a9de04") +(package! adaptive-wrap :pin "0d5b4a07de76d87dd64333a566a8a0a845f2b9f0") (package! latex-preview-pane :pin "5297668a89996b50b2b62f99cba01cc544dbed2e") (when (featurep! :editor evil +everywhere) - (package! evil-tex :pin "5f0d6fb11bce66d32c27c765e93557f6ca89cc7d")) + (package! evil-tex :pin "87445d4d2339436179e792609bfbff0eaf056a9c")) ;; Optional module features: @@ -13,11 +13,11 @@ (package! auctex-latexmk :pin "4d353522650d7685acbf1d38f7dbc504f734bd84")) (when (featurep! +cdlatex) - (package! cdlatex :pin "adf96bab0bbf28f65c882c0874f1c14fdb216bd8")) + (package! cdlatex :pin "614a8d94f67cdc1eeef8371f7b6b90aef8a78158")) ;; Features according to other user selected options (when (featurep! :completion company) (package! company-auctex :pin "9400a2ec7459dde8cbf1a5d50dfee4e300ed7e18") - (package! company-reftex :pin "291c283c8a015fd7cbaa99f836e1a721f1e2c832") + (package! company-reftex :pin "42eb98c6504e65989635d95ab81b65b9d5798e76") (package! company-math :pin "a796053590012e6a15c8b527b521ffc15d137bd0")) diff --git a/modules/lang/lean/packages.el b/modules/lang/lean/packages.el index a48d67c7c..04fdad029 100644 --- a/modules/lang/lean/packages.el +++ b/modules/lang/lean/packages.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/lean/packages.el -(package! lean-mode :pin "5c50338ac149ca5225fc737be291db1f63c45f1d") +(package! lean-mode :pin "bf32bb97930ed67c5cbe0fe3d4a69dedcf68be44") (when (featurep! :completion company) - (package! company-lean :pin "5c50338ac149ca5225fc737be291db1f63c45f1d")) + (package! company-lean :pin "bf32bb97930ed67c5cbe0fe3d4a69dedcf68be44")) diff --git a/modules/lang/ledger/packages.el b/modules/lang/ledger/packages.el index f1f1c05d4..a506ce069 100644 --- a/modules/lang/ledger/packages.el +++ b/modules/lang/ledger/packages.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/ledger/packages.el -(package! ledger-mode :pin "32fef097970e66b6cc75ee8233a7edaeee6431df") +(package! ledger-mode :pin "19b84dc7664ea069e1a9fd446daf699574c44986") (when (featurep! :editor evil) (package! evil-ledger :pin "7a9f9f5d39c42fffdba8004f8982642351f2b233")) diff --git a/modules/lang/lua/README.org b/modules/lang/lua/README.org index 43776cdc9..ddf2a5577 100644 --- a/modules/lang/lua/README.org +++ b/modules/lang/lua/README.org @@ -30,12 +30,14 @@ This module has no dedicated maintainers. ** Module Flags + =+moonscript= Moonscript language support ++ =+fennel= Fennel language support + =+lsp= Language Server Protocol support ** Plugins # A list of linked plugins + [[https://github.com/immerrr/lua-mode][lua-mode]] + [[https://github.com/k2052/moonscript-mode][moonscript-mode]] (=+moonscript=) ++ [[https://gitlab.com/technomancy/fennel-mode][fennel-mode]] (=+fennel=) * Prerequisites ** Language Server Protocol servers diff --git a/modules/lang/lua/packages.el b/modules/lang/lua/packages.el index f57a40775..50a075d52 100644 --- a/modules/lang/lua/packages.el +++ b/modules/lang/lua/packages.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/lua/packages.el -(package! lua-mode :pin "2d9a468b94acd8480299d47449b53136060b7b23") +(package! lua-mode :pin "2bd9077dd0405efc9276f612e24a345698c539c4") (when (featurep! +moonscript) (package! moonscript :pin "56f90471e2ced2b0a177aed4d8c2f854797e9cc7") @@ -11,7 +11,7 @@ :pin "fcb99e5efcf31db05f236f02eaa575986a57172d"))) (when (featurep! +fennel) - (package! fennel-mode :pin "ba14a7ddc21f8bc2b9bc58abd1655abbe12118d7")) + (package! fennel-mode :pin "a908db8696d29f0bf07e5212bb82084cb1e9c0f3")) (when (featurep! :completion company) (package! company-lua :pin "29f6819de4d691e5fd0b62893a9f4fbc1c6fcb52")) diff --git a/modules/lang/markdown/config.el b/modules/lang/markdown/config.el index 6f40978f4..cae827777 100644 --- a/modules/lang/markdown/config.el +++ b/modules/lang/markdown/config.el @@ -26,6 +26,10 @@ capture, the end position, and the output buffer.") markdown-gfm-additional-languages '("sh") markdown-make-gfm-checkboxes-buttons t + ;; HACK Due to jrblevin/markdown-mode#578, invoking `imenu' throws a + ;; 'wrong-type-argument consp nil' error if you use native-comp. + markdown-nested-imenu-heading-index (not (ignore-errors (native-comp-available-p))) + ;; `+markdown-compile' offers support for many transpilers (see ;; `+markdown-compile-functions'), which it tries until one succeeds. markdown-command #'+markdown-compile diff --git a/modules/lang/markdown/packages.el b/modules/lang/markdown/packages.el index 90220437e..6333c52b2 100644 --- a/modules/lang/markdown/packages.el +++ b/modules/lang/markdown/packages.el @@ -1,12 +1,12 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/markdown/packages.el -(package! markdown-mode :pin "ac9ea26b941eef512a3c206375a6404625c229ed") -(package! markdown-toc :pin "9565eeaa1d26bc0ab83eb65bd30470888f724044") +(package! markdown-mode :pin "359347b2bb15f8d7ef819692ac79759ccfe2c85d") +(package! markdown-toc :pin "f78cba9b5761c91058fed3a781bd3fed7f996e1f") (package! edit-indirect :pin "bdc8f542fe8430ba55f9a24a7910639d4c434422") (when (featurep! +grip) - (package! grip-mode :pin "28552059c4643f571ef0883ad543270a48241572")) + (package! grip-mode :pin "c0ca78990395245e5f742166047b04eeff63cf6a")) (when (featurep! :editor evil +everywhere) (package! evil-markdown diff --git a/modules/lang/nix/packages.el b/modules/lang/nix/packages.el index adcc36194..b70d4e5b5 100644 --- a/modules/lang/nix/packages.el +++ b/modules/lang/nix/packages.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/nix/packages.el -(package! nix-mode :pin "0023fc5b100ec0c939ffe699d1a7d1afcf1f417a") +(package! nix-mode :pin "3cca5b6527a69c4701394f424726282a1462ede3") (package! nix-update :pin "fc6c39c2da3fcfa62f4796816c084a6389c8b6e7") (when (featurep! :completion company) diff --git a/modules/lang/ocaml/packages.el b/modules/lang/ocaml/packages.el index 57a6f5534..9c3e13873 100644 --- a/modules/lang/ocaml/packages.el +++ b/modules/lang/ocaml/packages.el @@ -1,25 +1,25 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/ocaml/packages.el -(package! tuareg :pin "37a673020152ae0dbcaa250118b155d84e448f68") +(package! tuareg :pin "b59c422759506402f990b089dbaa91c0578e2c2e") (unless (featurep! +lsp) - (package! merlin :pin "635923da0771cc0cb7154d3fc58e348e9148766d") + (package! merlin :pin "5731826810ef8caa2201d8e1f4385ce83f99c909") (package! merlin-eldoc :pin "db7fab1eddfe34781b7e79694f8923b285698032") - (package! merlin-company :pin "635923da0771cc0cb7154d3fc58e348e9148766d") + (package! merlin-company :pin "5731826810ef8caa2201d8e1f4385ce83f99c909") (when (featurep! :checkers syntax) (package! flycheck-ocaml :pin "8707a7bf545a8639a6a5c600a98d9a2ea1487dc9"))) (package! ocp-indent :pin "9e26c0a2699b7076cebc04ece59fb354eb84c11c") (when (featurep! :tools eval) - (package! utop :pin "711c24661ce625070f8981fab9c6f31ce72b0a52")) + (package! utop :pin "c87b8b2817eefd0cd53564618911386b89b587c5")) (when (featurep! :editor format) (package! ocamlformat :recipe (:host github :repo "ocaml-ppx/ocamlformat" :files ("emacs/*.el")) - :pin "0ad8d0a5a55e28e425fdc89e220274447500f0d2")) + :pin "5dd6574d8fed4f7c6b76aab2d8dea9886c3642ee")) (package! dune :recipe (:host github :repo "ocaml/dune" :files ("editor-integration/emacs/*.el")) - :pin "65e04ba5646e8ba4a033b099c92fbda9b9aca341") + :pin "75ecfe34216dd07b339d2b9027f7b6a507151418") diff --git a/modules/lang/org/config.el b/modules/lang/org/config.el index d1be26089..8c43f2d62 100644 --- a/modules/lang/org/config.el +++ b/modules/lang/org/config.el @@ -274,16 +274,7 @@ Also adds support for a `:sync' parameter to override `:async'." ;; TODO Should be fixed upstream (let ((default-directory (org-find-library-dir "org-contribdir"))) (setq org-ditaa-jar-path (expand-file-name "scripts/ditaa.jar") - org-ditaa-eps-jar-path (expand-file-name "scripts/DitaaEps.jar")))) - - ;; NOTE Backported from Emacs 27.1 - ;; DEPRECATED Remove when 26.x support is dropped - (unless EMACS27+ - (defadvice! +org--dont-suppress-window-changes-a (orig-fn &rest args) - :around #'org-babel-execute:emacs-lisp - (letf! ((#'current-window-configuration #'ignore) - (#'set-window-configuration #'ignore)) - (apply orig-fn args))))) + org-ditaa-eps-jar-path (expand-file-name "scripts/DitaaEps.jar"))))) (defun +org-init-babel-lazy-loader-h () diff --git a/modules/lang/org/contrib/roam.el b/modules/lang/org/contrib/roam.el index 8c2fe6e8b..9d8791142 100644 --- a/modules/lang/org/contrib/roam.el +++ b/modules/lang/org/contrib/roam.el @@ -64,6 +64,7 @@ ;; Make org-roam buffer sticky; i.e. don't replace it when opening a ;; file with an *-other-window command. org-roam-buffer-window-parameters '((no-delete-other-windows . t)) + org-roam-link-use-custom-faces 'everywhere org-roam-completion-everywhere t org-roam-completion-system (cond ((featurep! :completion helm) 'helm) diff --git a/modules/lang/org/packages.el b/modules/lang/org/packages.el index 534435b74..5da2374f5 100644 --- a/modules/lang/org/packages.el +++ b/modules/lang/org/packages.el @@ -1,37 +1,38 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/org/packages.el -(package! org-mode +(package! org :recipe (:host github - ;; Install cutting-edge version of org-mode, and from a mirror, - ;; because code.orgmode.org runs on a potato. - :repo "emacs-straight/org-mode" - :files ("*.el" "lisp/*.el" "contrib/lisp/*.el" "contrib/scripts") + ;; Install cutting-edge version of org, and from a mirror because + ;; code.orgmode.org's uptime is worse than Github's, and + ;; emacs-straight/org is smaller and, therefore, quicker to download. + :repo "emacs-straight/org" + :files (:defaults "etc") ;; HACK A necessary hack because org requires a compilation step ;; after being cloned, and during that compilation a ;; org-version.el is generated with these two functions, which - ;; return the output of a 'git describe ...' call in the repo's + ;; return the output of a 'git describe ...' call in the repo's ;; root. Of course, this command won't work in a sparse clone, - ;; and more than that, initiating these compilation step is a - ;; hassle, so... + ;; and initiating these compilation step is a hassle, so... + :build t :pre-build - (with-temp-file (doom-path (straight--repos-dir "org-mode") "org-version.el") - (insert "(fset 'org-release (lambda () \"9.5\"))\n" - "(fset 'org-git-version #'ignore)\n" - "(provide 'org-version)\n")) - ;; Prevents built-in Org from sneaking into the byte-compilation of - ;; `org-plus-contrib', and inform other packages that `org-mode' - ;; satisfies the `org' dependency: raxod502/straight.el#352 - :includes (org org-plus-contrib)) - :pin "7a62a4d3251a512069aa06b0082529d61d22de26") + (with-temp-file "org-version.el" + (insert "(defun org-release () \"9.5\")\n" + (format "(defun org-git-version (&rest _) \"9.5-%s\")\n" + (cdr (doom-call-process "git" "rev-parse" "--short" "HEAD"))) + "(provide 'org-version)\n"))) + :pin "b83ae593473810354504f0f182bfba4537d3c284") +(package! org-contrib + :recipe (:host nil :repo "https://git.sr.ht/~bzg/org-contrib") + :pin "fc81309cf6756607a836f93049a9393c2967c4e0") (package! avy) (package! htmlize :pin "49205105898ba8993b5253beec55d8bddd820a70") (package! org-yt :recipe (:host github :repo "TobiasZawada/org-yt") :pin "40cc1ac76d741055cbefa13860d9f070a7ade001") -(package! ox-clip :pin "2095537695135c7f1bc19db043925eb7d482907b") -(package! toc-org :pin "c4c61c5a382f94a3a4537e254243006dec2dcca4") +(package! ox-clip :pin "05a14d56bbffe569d86f20b49ae31ed2ac7d1101") +(package! toc-org :pin "df4ad6ff15e3b02f6322305638a441a636b9b37e") (package! org-cliplink :pin "13e0940b65d22bec34e2de4bc8cba1412a7abfbc") (when (featurep! :editor evil +everywhere) @@ -41,44 +42,45 @@ (when (featurep! :tools pdf) (package! org-pdftools :pin "a5b61bca3f8c91b0859bb0df1a929f9a31a57b99")) (when (featurep! :tools magit) - (package! orgit :pin "609fd0ccfb5268704b5bc7d7ac1014d4960b9707") + (package! orgit :pin "f956d802f19ea495efa95af6c673588afeb3adc5") (when (featurep! :tools magit +forge) - (package! orgit-forge :pin "ea2a1cf9d337901b413e9df258b8e07af55c00f6"))) + (package! orgit-forge :pin "365b75609a9454dccf5681eb6075ca53bd32af85"))) (when (featurep! +brain) - (package! org-brain :pin "e9b9b3e5bb3c63cecb1367df49205c346d9c050a")) + (package! org-brain :pin "46ca9f766322cff31279ecdf02251ff24a0e9431")) (when (featurep! +dragndrop) (package! org-download :pin "947ca223643d28e189480e607df68449c15786cb")) (when (featurep! +gnuplot) - (package! gnuplot :pin "116cad8e09024223f97e81b0a4503cef20de9bf5") + (package! gnuplot :pin "7138b139d2dca9683f1a81325c643b2744aa1ea3") (package! gnuplot-mode :pin "601f6392986f0cba332c87678d31ae0d0a496ce7")) (when (featurep! +ipython) ; DEPRECATED (package! ob-ipython :pin "7147455230841744fb5b95dcbe03320313a77124")) (when (featurep! +jupyter) - (package! jupyter :pin "6ce8d01e3a550a3268b415bf9d9b635d4dba5940")) + (package! jupyter :pin "1f0612eb936d36abab0f27b09cca691e81fc6e74")) (when (featurep! +journal) - (package! org-journal :pin "043bb9e26f75066dc1787cdc9265daca7a14dd4e")) + (package! org-journal :pin "6c3a2fdb6c85253a32992a29edb976407bad4d77")) (when (featurep! +noter) (package! org-noter :pin "9ead81d42dd4dd5074782d239b2efddf9b8b7b3d")) (when (featurep! +pomodoro) (package! org-pomodoro :pin "aa07c11318f91219336197e62c47bc7a3d090479")) (when (featurep! +pretty) + (package! org-appear :pin "148aa124901ae598f69320e3dcada6325cdc2cf0") (package! org-superstar :pin "9d64c42e5029910153ec74cb9b5747b074281140") - (package! org-fancy-priorities :pin "819bb993b71e7253cefef7047306ab4e0f9d0a86")) + (package! org-fancy-priorities :pin "44532ab8c25eb2c0028eecca7acd9e8ea8e2ff30")) (when (featurep! +present) (package! centered-window :recipe (:host github :repo "anler/centered-window-mode") :pin "f50859941ab5c7cbeaee410f2d38716252b552ac") (package! org-tree-slide :pin "9d2ba1df456d8d7c6372c8c294dbe3ee81540b33") - (package! org-re-reveal :pin "18a2456befcfda5f681b2b4041f3262f93e52cba") + (package! org-re-reveal :pin "cf000894f6e5d0627151e2bec5b1a54a311ad53e") (package! revealjs :recipe (:host github :repo "hakimel/reveal.js" :files ("css" "dist" "js" "plugin")) - :pin "cf8e64bd8504737912b39e4153390cffbf443ed7")) + :pin "b18f12d964ef80bd9ffb061aae48ff4c15fb43ad")) (when (featurep! +roam) - (package! org-roam :pin "8ad57b121831eda8d226faa14ff2ba7ab652849c")) + (package! org-roam :pin "756f6215b672e267f986a3d6e494f5309825b91a")) ;;; Babel -(package! ob-async :pin "de1cd6c93242a4cb8773bbe115b7be3d4dd6b97e") +(package! ob-async :pin "9aac486073f5c356ada20e716571be33a350a982") (when (featurep! :lang crystal) (package! ob-crystal :pin "d84c1adee4b269cdba06a97caedb8071561a09af")) (when (featurep! :lang elixir) @@ -88,7 +90,7 @@ (when (featurep! :lang hy) (package! ob-hy :pin "a42ecaf440adc03e279afe43ee5ef6093ddd542a")) (when (featurep! :lang nim) - (package! ob-nim :pin "bf1642cb93f0a898804dc13fd9408d2964403bd2")) + (package! ob-nim :pin "6fd060a3ecd38be37e4ec2261cd65760a3c35a91")) (when (featurep! :lang racket) (package! ob-racket :recipe (:host github :repo "DEADB17/ob-racket") @@ -104,6 +106,6 @@ (when (featurep! +hugo) (package! ox-hugo :recipe (:host github :repo "kaushalmodi/ox-hugo" :nonrecursive t) - :pin "02140a294a8d0d15ca42a1956af794fd7ec18140")) + :pin "290b5d6b659addf99cb96a316fb24caa90ad0e77")) (when (featurep! :lang rst) (package! ox-rst :pin "99fa790da55b57a3f2e9aa187493ba434a64250e")) diff --git a/modules/lang/php/packages.el b/modules/lang/php/packages.el index 6580e880f..2752794e8 100644 --- a/modules/lang/php/packages.el +++ b/modules/lang/php/packages.el @@ -5,22 +5,22 @@ (package! php-extras :recipe (:host github :repo "arnested/php-extras") :pin "d410c5af663c30c01d461ac476d1cbfbacb49367") -(package! php-mode :pin "a2bca9be4c34a9dc38393602cb2708df24587838") +(package! php-mode :pin "cbf27232649c39e3749eefd23f962750bd249a49") (package! php-refactor-mode :pin "7a794b0618df2882b1bd586fdd698dba0bc5130d") (package! phpunit :pin "fe6bc91c3bd8b329c6d26ad883a025f06b5121ee") (when (featurep! +hack) (package! hack-mode :recipe (:host github :repo "hhvm/hack-mode") - :pin "847fd910e9d0ac76e2cfeb87512e6923a39d7d5f")) + :pin "f9315be69954b95b6a3ceaa37f31a88f8369a59f")) (unless (featurep! +lsp) - (package! phpactor :pin "80788a817b0257363c1eee11a57cc0f873f0eef1") + (package! phpactor :pin "272217fbb6b7e7f70615fc518d77c6d75f33a44f") (when (featurep! :completion company) - (package! company-phpactor :pin "80788a817b0257363c1eee11a57cc0f873f0eef1"))) + (package! company-phpactor :pin "272217fbb6b7e7f70615fc518d77c6d75f33a44f"))) (when (featurep! :editor format) (package! php-cs-fixer :pin "c5b5d8a4986b31bade5e2a57131469bf90630db8")) ;; For building php-extras -(package! async :pin "d7e7f79ee42311a0187aa2ab4f4e2f8843fa28da") +(package! async :pin "9a8cd0c3d5c120bfa03187c54dba6e33f6e3ca19") diff --git a/modules/lang/python/packages.el b/modules/lang/python/packages.el index 4717d12ef..1a47eafbc 100644 --- a/modules/lang/python/packages.el +++ b/modules/lang/python/packages.el @@ -4,7 +4,7 @@ ;; Major modes (package! pip-requirements :pin "216cd1690f80cc965d4ae47b8753fc185f778ff6") (when (featurep! +cython) - (package! cython-mode :pin "9decfca1b7c836247c80ea94aca8c7cacf70327c") + (package! cython-mode :pin "fae33cf7d42559384deb7a9949f47b0881b0a29b") (when (featurep! :checkers syntax) (package! flycheck-cython :pin "ecc4454d35ab5317ab66a04406f36f0c1dbc0b76"))) @@ -12,21 +12,21 @@ (when (featurep! +lsp) (unless (featurep! :tools lsp +eglot) (if (featurep! +pyright) - (package! lsp-pyright :pin "65fb14128127fb1ddf68dd4cb3140d6c7911a093") - (package! lsp-python-ms :pin "689f6cf815c8ee2ca2332f31dfda8ddefb0b7e26")))) + (package! lsp-pyright :pin "71a79760938d2132923fbff58dc25301892b1654") + (package! lsp-python-ms :pin "4eb78c43046fceb53a66ccd24c85601bdb87ed17")))) ;; Programming environment -(package! anaconda-mode :pin "344727c9e07e108896740c782689bf3588edcce5") +(package! anaconda-mode :pin "4f367c768a84465070c44327444b17015091d08d") (when (featurep! :completion company) (package! company-anaconda :pin "da1566db41a68809ef7f91ebf2de28118067c89b")) ;; Environment management (package! pipenv :pin "8f50c68d415307a2cbc65cc4df20df18e1776e9b") -(package! pyvenv :pin "9b3678bc29192d2dba64df90fbdb17393ef8d877") +(package! pyvenv :pin "045ff9476dac26086a04538d9b7ba186aa8f0fd1") (when (featurep! +pyenv) (package! pyenv-mode :pin "b818901b8eac0e260ced66a6a5acabdbf6f5ba99")) (when (featurep! +conda) - (package! conda :pin "dce431b25f5a13af58cc7cacfa7968b5a888609c")) + (package! conda :pin "6db0720b6dc8880d7d6e7dc2953b4769ca6bbf71")) (when (featurep! +poetry) (package! poetry :pin "d5163fe065239bb7b46ed8b3ff3b85b1f3229af3")) diff --git a/modules/lang/racket/README.org b/modules/lang/racket/README.org index 7091e1341..31df6f6dd 100644 --- a/modules/lang/racket/README.org +++ b/modules/lang/racket/README.org @@ -23,6 +23,7 @@ This module provides integration for [[https://github.com/greghendershott/racket This module has no dedicated maintainers. ** Module Flags ++ =+lsp= Enables LSP support. Requires jeapostrophe/racket-langserver. + =+xp= Enables the explore mode, which "analyzes expanded code to explain and explore." ** Plugins diff --git a/modules/lang/racket/config.el b/modules/lang/racket/config.el index 42f085b4a..f01f87962 100644 --- a/modules/lang/racket/config.el +++ b/modules/lang/racket/config.el @@ -26,6 +26,9 @@ #'rainbow-delimiters-mode #'highlight-quoted-mode) + (when (featurep! +lsp) + (add-hook 'racket-mode-local-vars-hook #'lsp!)) + (when (featurep! +xp) (add-hook 'racket-mode-local-vars-hook #'racket-xp-mode) ;; Both flycheck and racket-xp produce error popups, but racket-xp's are diff --git a/modules/lang/racket/packages.el b/modules/lang/racket/packages.el index acb388013..cfae05801 100644 --- a/modules/lang/racket/packages.el +++ b/modules/lang/racket/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/racket/packages.el -(package! racket-mode :pin "5115c4786075b39525008755a5fb843c397ca743") +(package! racket-mode :pin "7f12cb1ff2774e7592632d8aab1572f57d045419") diff --git a/modules/lang/raku/packages.el b/modules/lang/raku/packages.el index 569591fd0..df4a678e9 100644 --- a/modules/lang/raku/packages.el +++ b/modules/lang/raku/packages.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/raku/packages.el -(package! raku-mode :pin "8a6e17f1749c084251d19c3d58b9c1495891db6d") +(package! raku-mode :pin "7496ad3a03bed613c259405ec8839ae02950fdb1") (when (featurep! :checkers syntax) (package! flycheck-raku diff --git a/modules/lang/rest/packages.el b/modules/lang/rest/packages.el index c36735431..005f7715a 100644 --- a/modules/lang/rest/packages.el +++ b/modules/lang/rest/packages.el @@ -1,6 +1,6 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/rest/packages.el -(package! restclient :pin "abc307b965bf6720bc466281f2e204cd5ce37dc3") +(package! restclient :pin "2cc1fd3496f57288de3f97c27a5f018284db2d23") (when (featurep! :completion company) (package! company-restclient :pin "e5a3ec54edb44776738c13e13e34c85b3085277b")) diff --git a/modules/lang/ruby/packages.el b/modules/lang/ruby/packages.el index abd2adc73..f8fd9fa12 100644 --- a/modules/lang/ruby/packages.el +++ b/modules/lang/ruby/packages.el @@ -6,13 +6,13 @@ (package! yard-mode :pin "ba74a47463b0320ae152bd42a7dd7aeecd7b5748") ;; REPL -(package! inf-ruby :pin "c6990a60c740b2d69495e34e95b29f13014b3cde") +(package! inf-ruby :pin "03dd9c9d4e3f94f5519a786804d3ef9d3a09ef9f") (when (featurep! :completion company) (package! company-inf-ruby :pin "fe3e4863bc971fbb81edad447efad5795ead1b17")) ;; Programming environment (package! rubocop :pin "f5fd18aa810c3d3269188cbbd731ddc09006f8f5") -(package! robe :pin "126650a06224f1a616b10c02bd9ad8a763a512ef") +(package! robe :pin "e1304d123d729aa063671d0ca526b01e72f0f5ed") ;; Project tools (package! bundler :pin "43efb6be4ed118b06d787ce7fbcffd68a31732a7") @@ -32,5 +32,5 @@ ;; Rails (when (featurep! +rails) - (package! projectile-rails :pin "f1fe6e8eff485dc560e6ffe7f0b9c46a61509a58") + (package! projectile-rails :pin "6a18ada3566ab2cb795129e3dfca2a32cc413fb8") (package! inflections :pin "55caa66a7cc6e0b1a76143fd40eff38416928941")) diff --git a/modules/lang/rust/packages.el b/modules/lang/rust/packages.el index dba6ce9d5..c1c5fe853 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 "ed68fd3bb410869e1a4ce3943b5913ea88d9b509") +(package! rustic :pin "6ca73bb3cce4d1db3c4f91efb83b63227eb712d1") (unless (featurep! +lsp) (package! racer :pin "1e63e98626737ea9b662d4a9b1ffd6842b1c648c")) diff --git a/modules/lang/scala/packages.el b/modules/lang/scala/packages.el index 4a4199126..76164c4c3 100644 --- a/modules/lang/scala/packages.el +++ b/modules/lang/scala/packages.el @@ -1,8 +1,8 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/scala/packages.el -(package! sbt-mode :pin "0bdc36ba3b3955c1106a5cda69be98bd38195cb6") -(package! scala-mode :pin "1ab5f645606e40db07b813a1600835d1442c060a") +(package! sbt-mode :pin "e29464a82bf706ef921f4e0052ce04fc74c34c84") +(package! scala-mode :pin "598cb680f321d9609295aa9b4679040cc703b602") (when (featurep! +lsp) - (package! lsp-metals :pin "51a89c1861eb505882c20393227f303ac33276e4")) + (package! lsp-metals :pin "9f82ebee48d32cd7bbc3e64b84d1ef5b0926195b")) diff --git a/modules/lang/sh/config.el b/modules/lang/sh/config.el index b6457b88e..d2742a2cb 100755 --- a/modules/lang/sh/config.el +++ b/modules/lang/sh/config.el @@ -11,6 +11,7 @@ ;;; Packages (use-package! sh-script ; built-in + :mode ("\\.bats\\'" . sh-mode) :mode ("\\.\\(?:zunit\\|env\\)\\'" . sh-mode) :mode ("/bspwmrc\\'" . sh-mode) :config diff --git a/modules/lang/solidity/packages.el b/modules/lang/solidity/packages.el index 2448c776b..1bbe9746b 100644 --- a/modules/lang/solidity/packages.el +++ b/modules/lang/solidity/packages.el @@ -1,6 +1,6 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/solidity/packages.el -(package! solidity-mode :pin "b4fd719715be098921b6cbfb2ff9da31f3bd0d05") +(package! solidity-mode :pin "5f6ef3156fadae5af6f381d674d20535529a20e4") (package! company-solidity) (package! solidity-flycheck) diff --git a/modules/lang/swift/packages.el b/modules/lang/swift/packages.el index 7c6c7c777..3333675b9 100644 --- a/modules/lang/swift/packages.el +++ b/modules/lang/swift/packages.el @@ -1,11 +1,11 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/swift/packages.el -(package! swift-mode :pin "ad12a3025156873995318b6a0480cd2459063bf7") +(package! swift-mode :pin "1b47a09f1c0e15c543e0551e7f1e643f437e7711") (if (featurep! +lsp) - (package! lsp-sourcekit :pin "aafa9878a3df2f08e5a9c846d91fd53350ce3c99") + (package! lsp-sourcekit :pin "ae4aa8705cc3a27ed86f1e7ee04d5c8f0522d8c0") (when (featurep! :completion company) - (package! company-sourcekit :pin "abf9bc5a0102eb666d3aa6d6bf22f6efcc852781")) + (package! company-sourcekit :pin "a1860ad4dd3a542acd2fa0dfac2a388cbdf4af0c")) (when (featurep! :checkers syntax) (package! flycheck-swift :pin "4c5ad401252400a78da395fd56a71e67ff8c2761"))) diff --git a/modules/lang/terra/packages.el b/modules/lang/terra/packages.el index 312816fd2..6b50f82df 100644 --- a/modules/lang/terra/packages.el +++ b/modules/lang/terra/packages.el @@ -3,7 +3,7 @@ (package! terra-mode :recipe (:host github :repo "StanfordLegion/terra-mode") - :pin "1e5e82410d60bd0b53fe3e769d9dd36a0d542b71") + :pin "eab9e59ded8d4d0b280d5b58ff416366c26be57c") (when (featurep! :completion company) (package! company-lua :pin "29f6819de4d691e5fd0b62893a9f4fbc1c6fcb52")) diff --git a/modules/lang/web/packages.el b/modules/lang/web/packages.el index 7ffb7e9f1..96aafacd5 100644 --- a/modules/lang/web/packages.el +++ b/modules/lang/web/packages.el @@ -4,7 +4,7 @@ ;; +html.el (package! emmet-mode :pin "1acb821e0142136344ccf40c1e5fb664d7db2e70") (package! haml-mode :pin "bf5b6c11b1206759d2b28af48765e04882dd1fc4") -(package! pug-mode :pin "685fd3414d89736bf232f5d1a6bed9e0353b98fe") +(package! pug-mode :pin "d08090485eb8c0488a7d2fbf63680dc0880c7d2f") (package! slim-mode :pin "3636d18ab1c8b316eea71c4732eb44743e2ded87") (when (package! web-mode :pin "8ef47935d638902ba35a557cae5edd6ab6ab1346") (when (featurep! :completion company) diff --git a/modules/lang/zig/packages.el b/modules/lang/zig/packages.el index dd7274664..333c70455 100644 --- a/modules/lang/zig/packages.el +++ b/modules/lang/zig/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/zig/packages.el -(package! zig-mode :pin "2d0eb23e6b5c12b946f12c23803157605c90f02f") +(package! zig-mode :pin "0babe7ec524f59d57c01e2fc66294d1afa01f5eb") diff --git a/modules/os/tty/README.org b/modules/os/tty/README.org index 11d8cce00..b18ce9434 100644 --- a/modules/os/tty/README.org +++ b/modules/os/tty/README.org @@ -56,59 +56,11 @@ need: * Configuration ** True-color and italic support -#+begin_quote -This advice only applies to Emacs 26.x. True color support is [[https://github.com/emacs-mirror/emacs/commit/7f6153d9563cfe7753083996f59eacc9f4c694df][built into 27.1+ -and newer]]. -#+end_quote +Emacs 26.3 users should consult [[https://github.com/syl20bnr/spacemacs/wiki/Terminal][the spacemacs wiki]] for details on achieving true +color support in terminal Emacs. -(credit goes to [[https://github.com/syl20bnr/spacemacs/wiki/Terminal][the spacemacs wiki]] for this information) - -Create a =xterm-24bit.terminfo= file with the following contents: - -#+BEGIN_SRC text -xterm-24bit|xterm with 24-bit direct color mode, - use=xterm-256color, - sitm=\E[3m, - ritm=\E[23m, - setb24=\E[48;2;%p1%{65536}%/%d;%p1%{256}%/%{255}%&%d;%p1%{255}%&%dm, - setf24=\E[38;2;%p1%{65536}%/%d;%p1%{256}%/%{255}%&%d;%p1%{255}%&%dm, -#+END_SRC - -#+begin_quote -WARNING: Make sure you have a newline at end of file otherwise you will get -errors! -#+end_quote - -Execute the following command on the command line: -#+BEGIN_SRC sh -tic -x -o ~/.terminfo xterm-24bit.terminfo -#+END_SRC - -Now set your ~$TERM~ variable to ~xterm-24bit~: -#+BEGIN_SRC sh -export TERM=xterm-24bit -#+END_SRC - -SSH might break if your remote machine does not have the same setup, you can -work around this with the following alias. -#+BEGIN_SRC sh -alias ssh="TERM=xterm-256color ssh" -#+END_SRC - -If you use tmux, you need to make sure you installed a version with truecolor -support, then add the following lines to your `.tmux.conf`: -#+BEGIN_SRC conf -set -g default-terminal "xterm-24bit" -set -g terminal-overrides ',xterm-24bit:Tc' -#+END_SRC - -Also, make sure you have utf8 language variables if you want all characters to -display correctly. For example: -#+BEGIN_SRC bash -export LC_ALL=en_US.UTF-8 -export LANG=en_US.UTF-8 -export LANGUAGE=en_US.UTF-8 -#+END_SRC +Emacs 27.x users don't need todo anything, as true color support is [[https://github.com/emacs-mirror/emacs/commit/7f6153d9563cfe7753083996f59eacc9f4c694df][built into +27.1+ and newer]]. * Troubleshooting # Common issues and their solution, or places to look for help. diff --git a/modules/term/eshell/config.el b/modules/term/eshell/config.el index 2748f61c7..c47dea24b 100644 --- a/modules/term/eshell/config.el +++ b/modules/term/eshell/config.el @@ -26,7 +26,7 @@ buffer.") (defvar +eshell-aliases '(("q" "exit") ; built-in ("f" "find-file $1") - ("ff" "find-file $1") + ("ff" "find-file-other-window $1") ("d" "dired $1") ("bd" "eshell-up $1") ("rg" "rg --color=always $*") diff --git a/modules/term/eshell/packages.el b/modules/term/eshell/packages.el index a4f247203..0132084bd 100644 --- a/modules/term/eshell/packages.el +++ b/modules/term/eshell/packages.el @@ -9,6 +9,5 @@ (package! eshell-syntax-highlighting :pin "32d2568ebeb42553a30dda77e03c0e2ec8854199") (unless IS-WINDOWS - (when (featurep! :completion company) - (package! fish-completion :pin "10384881817b5ae38cf6197a077a663420090d2c") - (package! bash-completion :pin "65e54c6f9c0ffebf94f7c505694bd249b9b53d32"))) + (package! fish-completion :pin "10384881817b5ae38cf6197a077a663420090d2c") + (package! bash-completion :pin "65e54c6f9c0ffebf94f7c505694bd249b9b53d32")) diff --git a/modules/tools/debugger/packages.el b/modules/tools/debugger/packages.el index 7888e1e81..deaa458b8 100644 --- a/modules/tools/debugger/packages.el +++ b/modules/tools/debugger/packages.el @@ -6,5 +6,5 @@ (package! realgud-trepan-ni :pin "0ec088ea343835e24ae73da09bea96bfb02a3130"))) (when (featurep! +lsp) - (package! dap-mode :pin "434784654e26daa7a8512ed57907829a043592d3") - (package! posframe :pin "739d8fd1081bdd0d20dee9e437d64df58747b871")) + (package! dap-mode :pin "01d92978d8a515b896b5bc6197620138e4a4f6ff") + (package! posframe :pin "f97c4aff2c2c376ca62276d5597aa108546633a9")) diff --git a/modules/tools/direnv/config.el b/modules/tools/direnv/config.el index e3e4a0753..f434f1b37 100644 --- a/modules/tools/direnv/config.el +++ b/modules/tools/direnv/config.el @@ -2,56 +2,36 @@ (use-package! envrc :when (executable-find "direnv") - :after-call doom-first-file-hook + :hook (doom-first-file . envrc-global-mode) :config (add-to-list 'doom-debug-variables 'envrc-debug) (set-popup-rule! "^\\*envrc\\*" :quit t :ttl 0) - ;; I'm avoiding `global-envrc-mode' intentionally, because it has the - ;; potential to run too late in the mode startup process (and after, say, - ;; server hooks that may rely on that local direnv environment). - (add-hook! 'change-major-mode-after-body-hook - (defun +direnv-init-h () - (unless (or envrc-mode - (minibufferp) - (file-remote-p default-directory)) - (condition-case _ - (envrc-mode 1) - (quit))))) - - ;; Ensure these local variables survive major mode changes, so envrc-mode is - ;; only "activated" once per buffer. - (put 'envrc-mode 'permanent-local t) - (put 'envrc--status 'permanent-local t) - (put 'process-environment 'permanent-local t) - (put 'exec-path 'permanent-local t) - (put 'eshell-path-env 'permanent-local t) + ;; A globalized minor mode triggers on `after-change-major-mode-hook' + ;; normally, which runs after a major mode's body and hooks. If those hooks do + ;; any initialization work that's sensitive to environmental state set up by + ;; direnv, then you're gonna have a bad time, so I move the trigger to + ;; `change-major-mode-after-body-hook' instead. This runs before said hooks + ;; (but not the body; fingers crossed that no major mode does important env + ;; initialization there). + (add-hook! 'envrc-global-mode-hook + (defun +direnv-init-global-mode-earlier-h () + (let ((fn #'envrc-global-mode-enable-in-buffers)) + (if (not envrc-global-mode) + (remove-hook 'change-major-mode-after-body-hook fn) + (remove-hook 'after-change-major-mode-hook fn) + (add-hook 'change-major-mode-after-body-hook fn 100))))) (defadvice! +direnv--fail-gracefully-a (&rest _) "Don't try to use direnv if the executable isn't present." :before-while #'envrc-mode - (or (executable-find "direnv") + (or (get 'envrc-mode 'direnv-executable) + (put 'envrc-mode 'direnv-executable (executable-find "direnv" t)) (ignore (doom-log "Couldn't find direnv executable")))) - ;; HACK envrc-mode only affects the current buffer's environment, which is - ;; generally what we want, except when we're running babel blocks in - ;; org-mode, because there may be state or envvars those blocks need to - ;; read. In order to perpetuate the org buffer's environment into the - ;; execution of the babel block we need to temporarily change the global - ;; environment. Let's hope it runs quickly enough that its effects aren't - ;; felt in other buffers in the meantime! - (defvar +direnv--old-environment nil) - (defadvice! +direnv-persist-environment-a (orig-fn &rest args) - :around #'org-babel-execute-src-block - (if +direnv--old-environment - (apply orig-fn args) - (setq-default +direnv--old-environment - (cons (default-value 'process-environment) - (default-value 'exec-path)) - exec-path exec-path - process-environment process-environment) - (unwind-protect (apply orig-fn args) - (setq-default process-environment (car +direnv--old-environment) - exec-path (cdr +direnv--old-environment) - +direnv--old-environment nil))))) + ;; Ensure babel's execution environment matches the host buffer's. + (advice-add #'org-babel-execute-src-block :around #'envrc-propagate-environment) + + ;; Make sure any envrc changes are propagated after a `doom/reload' + (add-hook 'doom-after-reload-hook #'envrc-reload-all)) diff --git a/modules/tools/docker/packages.el b/modules/tools/docker/packages.el index ddcca054d..ed60a8317 100644 --- a/modules/tools/docker/packages.el +++ b/modules/tools/docker/packages.el @@ -1,6 +1,6 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/docker/packages.el -(package! docker :pin "bc2dc09edea167d4fdf022aa263bad71932bb0c4") -(package! docker-tramp :pin "8e2b671eff7a81af43b76d9dfcf94ddaa8333a23") +(package! docker :pin "9bcefbe54dbed4d364286fe65a87872e763ff7dc") +(package! docker-tramp :pin "aaee11cedf7b4c31700f24a1fd88dcef9c2a7c3d") (package! dockerfile-mode :pin "ad06a41259ff2961d603bf23a3a8fbd22dde2161") diff --git a/modules/tools/lookup/autoload/docsets.el b/modules/tools/lookup/autoload/docsets.el index fffbe58a5..0e76381bc 100644 --- a/modules/tools/lookup/autoload/docsets.el +++ b/modules/tools/lookup/autoload/docsets.el @@ -29,25 +29,25 @@ Used by `+lookup/in-docsets' and `+lookup/documentation'." (let ((action (if (keywordp (car docsets)) (pop docsets)))) (dolist (mode (doom-enlist modes)) (let ((hook (intern (format "%s-hook" mode))) - (fn (intern (format "+lookup|init--%s-%s" (or action "set") mode)))) + (fn (intern (format "+lookup-init--%s-%s" (or action "set") mode)))) (if (null docsets) (remove-hook hook fn) - (fset fn - (lambda () - (make-local-variable 'dash-docs-docsets) - (unless (memq action '(:add :remove)) - (setq dash-docs-docset nil)) - (dolist (spec docsets) - (cl-destructuring-bind (docset . pred) - (cl-typecase spec - (string (cons spec nil)) - (vector (cons (aref spec 0) (aref spec 1))) - (otherwise (signal 'wrong-type-arguments (list spec '(vector string))))) - (when (or (null pred) - (eval pred t)) - (if (eq action :remove) - (setq dash-docs-docsets (delete docset dash-docs-docsets)) - (cl-pushnew docset dash-docs-docsets))))))) + (fset + fn (lambda () + (make-local-variable 'dash-docs-docsets) + (unless (memq action '(:add :remove)) + (setq dash-docs-docset nil)) + (dolist (spec docsets) + (cl-destructuring-bind (docset . pred) + (cl-typecase spec + (string (cons spec nil)) + (vector (cons (aref spec 0) (aref spec 1))) + (otherwise (signal 'wrong-type-arguments (list spec '(vector string))))) + (when (or (null pred) + (eval pred t)) + (if (eq action :remove) + (setq dash-docs-docsets (delete docset dash-docs-docsets)) + (cl-pushnew docset dash-docs-docsets))))))) (add-hook hook fn 'append)))))) ;;;###autoload diff --git a/modules/tools/lookup/config.el b/modules/tools/lookup/config.el index 792dbefb6..e3840ae87 100644 --- a/modules/tools/lookup/config.el +++ b/modules/tools/lookup/config.el @@ -165,13 +165,8 @@ Dictionary.app behind the scenes to get definitions.") :when (featurep! :completion ivy) :config (set-popup-rule! "^\\*xref\\*$" :ignore t) - ;; xref initialization is different in Emacs 27 - there are two different - ;; variables which can be set rather than just one - (when EMACS27+ - (setq xref-show-definitions-function #'ivy-xref-show-defs)) - ;; Necessary in Emacs <27. In Emacs 27 it will affect all xref-based - ;; commands other than xref-find-definitions too (eg project-find-regexp) - (setq xref-show-xrefs-function #'ivy-xref-show-xrefs) + (setq xref-show-definitions-function #'ivy-xref-show-defs + xref-show-xrefs-function #'ivy-xref-show-xrefs) ;; HACK Fix #4386: `ivy-xref-show-xrefs' calls `fetcher' twice, which has ;; side effects that breaks in some cases (i.e. on `dired-do-find-regexp'). diff --git a/modules/tools/lookup/packages.el b/modules/tools/lookup/packages.el index 9012f316b..3423b4248 100644 --- a/modules/tools/lookup/packages.el +++ b/modules/tools/lookup/packages.el @@ -8,7 +8,7 @@ (package! helm)) ;; -(package! dumb-jump :pin "8f70acbe164553b225476fed55019ecddcf0bbd6") +(package! dumb-jump :pin "542e72d3feba986a12119f6def515ef1347cb4ca") (when (featurep! :completion ivy) (package! ivy-xref :pin "3d4c35fe2b243d948d8fe02a1f0d76a249d63de9")) (when (featurep! :completion helm) @@ -26,7 +26,7 @@ (when (featurep! +dictionary) (if IS-MAC - (package! osx-dictionary :pin "4d4cc19fdd4ac8408bd5acc7694e7a7096b1e3b3") + (package! osx-dictionary :pin "1a4479d9f44ef1e6e5f7643c172c32f6fe6cce21") (package! define-word :pin "6e4a427503aef096484f88332962c346cdd10847") (package! powerthesaurus :pin "93036d3b111925ebc34f747ff846cb0b8669b92e") (when (featurep! +offline) diff --git a/modules/tools/lsp/+lsp.el b/modules/tools/lsp/+lsp.el index c16b89645..192d9e5ca 100644 --- a/modules/tools/lsp/+lsp.el +++ b/modules/tools/lsp/+lsp.el @@ -2,7 +2,7 @@ (defvar +lsp-company-backends (if (featurep! :editor snippets) - '(:separate company-capf company-yasnippet) + '(company-capf :with company-yasnippet) 'company-capf) "The backends to prepend to `company-backends' in `lsp-mode' buffers. Can be a list of backends; accepts any value `company-backends' accepts.") @@ -55,6 +55,9 @@ about it (it will be logged to *Messages* however).") lsp-xml-jar-file (expand-file-name "org.eclipse.lsp4xml-0.3.0-uber.jar" lsp-server-install-dir) lsp-groovy-server-file (expand-file-name "groovy-language-server-all.jar" lsp-server-install-dir)) + ;; REVIEW Remove this once this is fixed upstream. + (add-to-list 'lsp-client-packages 'lsp-racket) + (set-popup-rule! "^\\*lsp-help" :size 0.35 :quit t :select t) (set-lookup-handlers! 'lsp-mode :definition #'+lsp-lookup-definition-handler @@ -183,9 +186,9 @@ instead is more sensible." ;; and there is a bug preventing Flycheck errors from being shown (the ;; errors flash briefly and then disappear). lsp-ui-sideline-show-hover nil - ;; Some icons don't scale correctly on Emacs 26, so disable them there. - lsp-ui-sideline-actions-icon ; DEPRECATED Remove later - (if EMACS27+ lsp-ui-sideline-actions-icon-default) + ;; Re-enable icon scaling (it's disabled by default upstream for Emacs + ;; 26.x compatibility; see emacs-lsp/lsp-ui#573) + lsp-ui-sideline-actions-icon lsp-ui-sideline-actions-icon-default ;; REVIEW Temporarily disabled, due to immense slowness on every ;; keypress. See emacs-lsp/lsp-ui#613 lsp-ui-doc-enable nil) diff --git a/modules/tools/lsp/packages.el b/modules/tools/lsp/packages.el index bf1bf0264..3e6288229 100644 --- a/modules/tools/lsp/packages.el +++ b/modules/tools/lsp/packages.el @@ -2,9 +2,9 @@ ;;; tools/lsp/packages.el (if (featurep! +eglot) - (package! eglot :pin "a5b7b7d933b97db9ce5f8b7dcc8c866f7c35b220") - (package! lsp-mode :pin "aec8968364fce476f41e532bc083a96b6d9cb1ce") - (package! lsp-ui :pin "cb02972b20706d18d137841c83d3765bcb280687") + (package! eglot :pin "5cc8df63d86a6c43134dd6e4e3ae26cfae14e66a") + (package! lsp-mode :pin "9aa22de1b2424a44c8c4a3f9e03b3f9a39636a77") + (package! lsp-ui :pin "9953a4857227ad83fb18bc295c8c12b1e4d29007") (when (featurep! :completion ivy) (package! lsp-ivy :pin "bccd86028e669f5a1cad78364775fe7a0741ff93")) (when (featurep! :completion helm) diff --git a/modules/tools/magit/packages.el b/modules/tools/magit/packages.el index c820055ca..7a7c49b63 100644 --- a/modules/tools/magit/packages.el +++ b/modules/tools/magit/packages.el @@ -1,9 +1,9 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/magit/packages.el -(when (package! magit :pin "b68a760c9e7694c687adedec7dffab0a5609ea93") +(when (package! magit :pin "9b7b25f1e460f79de894f583727635134b7513a2") (when (featurep! +forge) - (package! forge :pin "551e51511e25505d14e05699a1707fd57e394a9a")) + (package! forge :pin "b4fd0666a4d3987fc41e08eda3f6b1db7b404697")) (package! magit-gitflow :pin "cc41b561ec6eea947fe9a176349fb4f771ed865b") (package! magit-todos :pin "78d24cf419138b543460f40509c8c1a168b52ca0") (package! github-review :pin "341b7a1352e4ee1f1119756360ac0714abbaf460")) diff --git a/modules/tools/pass/packages.el b/modules/tools/pass/packages.el index 488e5e559..b7bd3f3c2 100644 --- a/modules/tools/pass/packages.el +++ b/modules/tools/pass/packages.el @@ -2,15 +2,9 @@ ;;; tools/pass/packages.el (package! pass :pin "5651da53137db9adcb125b4897c2fe27eeb4368d") -(package! password-store :pin "4e73cdc4c376ad61d2e4858bc87cf01eab0dd403") +(package! password-store :pin "3dd14690c7c81ac80e32e942cf5976732faf0fb3") (package! password-store-otp :pin "04998c8578a060ab4a4e8f46f2ee0aafad4ab4d5") -;; an older version of `auto-source-pass' is built into Emacs 26+, so we must -;; install the new version directly from the source and with a psuedonym. -(package! auth-source-pass - :recipe (:host github :repo "DamienCassou/auth-password-store") - :pin "fa8b964494c1ef42035fad340ff5f29fcdbed21c") - (when (featurep! :completion ivy) (package! ivy-pass :pin "5b523de1151f2109fdd6a8114d0af12eef83d3c5")) (when (featurep! :completion helm) diff --git a/modules/tools/pdf/config.el b/modules/tools/pdf/config.el index 002aa7256..a4d6f7968 100644 --- a/modules/tools/pdf/config.el +++ b/modules/tools/pdf/config.el @@ -41,6 +41,7 @@ ;; Handle PDF-tools related popups better (set-popup-rules! '(("^\\*Outline*" :side right :size 40 :select nil) + ("^\\*Edit Annotation " :quit nil) ("\\(?:^\\*Contents\\|'s annots\\*$\\)" :ignore t))) ;; The mode-line does serve any useful purpose is annotation windows @@ -72,56 +73,6 @@ (add-hook 'doom-switch-buffer-hook #'+pdf-reload-midnight-minor-mode-h nil 'local)))))) - ;; Add retina support for MacOS users - (eval-when! IS-MAC - (defun +pdf-view-create-page-a (page &optional window) - "Create an image of PAGE for display on WINDOW." - :override #'pdf-view-create-page - (let* ((size (pdf-view-desired-image-size page window)) - (width (if (not (pdf-view-use-scaling-p)) - (car size) - (* 2 (car size)))) - (data (pdf-cache-renderpage - page width width)) - (hotspots (pdf-view-apply-hotspot-functions - window page size))) - (pdf-view-create-image data - :width width - :scale (if (pdf-view-use-scaling-p) 0.5 1) - :map hotspots - :pointer 'arrow))) - - (defvar +pdf--scaled-p nil) - (defadvice! +pdf--scale-up-on-retina-display-a (orig-fn &rest args) - "Scale up the PDF on retina displays." - :around #'pdf-util-frame-scale-factor - (cond ((not pdf-view-use-scaling) 1) - ((and (memq (pdf-view-image-type) '(imagemagick image-io)) - (fboundp 'frame-monitor-attributes)) - (funcall orig-fn)) - ;; Add special support for retina displays on MacOS - ((and (eq (framep-on-display) 'ns) - (not +pdf--scaled-p) - EMACS27+) - (setq-local +pdf--scaled-p t) - 2) - (1))) - - (defadvice! +pdf--use-scaling-on-ns-a () - :before-until #'pdf-view-use-scaling-p - (and (eq (framep-on-display) 'ns) - EMACS27+)) - - (defadvice! +pdf--supply-width-to-create-image-calls-a (orig-fn &rest args) - :around '(pdf-annot-show-annotation - pdf-isearch-hl-matches - pdf-view-display-region) - (letf! (defun create-image (file-or-data &optional type data-p &rest props) - (apply create-image file-or-data type data-p - :width (car (pdf-view-image-size)) - props)) - (apply orig-fn args)))) - ;; Silence "File *.pdf is large (X MiB), really open?" prompts for pdfs (defadvice! +pdf-suppress-large-file-prompts-a (orig-fn size op-type filename &optional offer-raw) :around #'abort-if-file-too-large diff --git a/modules/tools/pdf/packages.el b/modules/tools/pdf/packages.el index f35026492..832e66af9 100644 --- a/modules/tools/pdf/packages.el +++ b/modules/tools/pdf/packages.el @@ -1,9 +1,5 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/pdf/packages.el -(package! pdf-tools - :recipe (:host github - :repo "vedang/pdf-tools") - :pin "d262cf9e19d57c6567e06e51d109150c20753839") - +(package! pdf-tools :pin "5f77dae43eb8f71e52e10ba8cf994883f74c3fb7") (package! saveplace-pdf-view :pin "54ed966b842501c3c092dbf57b372e37b033c578") diff --git a/modules/tools/terraform/packages.el b/modules/tools/terraform/packages.el index 7bbecb3aa..af44a1407 100644 --- a/modules/tools/terraform/packages.el +++ b/modules/tools/terraform/packages.el @@ -1,6 +1,6 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/terraform/packages.el -(package! terraform-mode :pin "a9fa5bdaf58e9cae32ee44b7d0883f5600441b05") +(package! terraform-mode :pin "e560caaa9d9a11b0868adf6d9dcae5ebb5055730") (when (featurep! :completion company) (package! company-terraform :pin "2d11a21fee2f298e48968e479ddcaeda4d736e12")) diff --git a/modules/tools/tmux/autoload/tmux.el b/modules/tools/tmux/autoload/tmux.el index 46e066318..8af509c61 100644 --- a/modules/tools/tmux/autoload/tmux.el +++ b/modules/tools/tmux/autoload/tmux.el @@ -52,7 +52,9 @@ but do not execute them." ;;;###autoload (defun +tmux/send-region (beg end &optional noreturn) "Send region to tmux." - (interactive "rP") + (interactive (list (region-beginning) + (region-end) + current-prefix-arg)) (+tmux/run (string-trim (buffer-substring-no-properties beg end)) noreturn)) @@ -65,11 +67,19 @@ but do not execute them." (apply #'+tmux +tmux-last-command)) ;;;###autoload -(defun +tmux/cd (&optional arg directory) - "Change the pwd of the currently active tmux pane to DIRECTORY (defaults to -`default-directory', or to `doom-project-root' with the universal argument)." - (interactive "PD") - (+tmux/run (format "cd %s" (or directory default-directory)) arg)) +(defun +tmux/cd (&optional directory noreturn) + "Change the pwd of the currently active tmux pane to DIRECTORY. + +DIRECTORY defaults to `default-directory' if omitted, or to `doom-project-root' +if prefix arg is non-nil. + +If NORETURN is non-nil, send the cd command to tmux, but do not execute the +command." + (interactive "D") + (+tmux/run (format "cd %S" (or directory (if current-prefix-arg + (doom-project-root) + default-directory))) + noreturn)) ;;;###autoload (defun +tmux/cd-to-here () diff --git a/modules/tools/upload/packages.el b/modules/tools/upload/packages.el index a071349c0..21d70b620 100644 --- a/modules/tools/upload/packages.el +++ b/modules/tools/upload/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/upload/packages.el -(package! ssh-deploy :pin "fce4ea35f09ed5899c1a2dfa3527bc2dd5ca3ba5") +(package! ssh-deploy :pin "7c5fe8af2d62d8f6d32ebe2d3bfc53051a9432d1") diff --git a/modules/ui/deft/README.org b/modules/ui/deft/README.org index 4737cfdbb..4600960a3 100644 --- a/modules/ui/deft/README.org +++ b/modules/ui/deft/README.org @@ -1,11 +1,51 @@ -#+TITLE: :ui deft +#+TITLE: ui/deft +#+DATE: August 27, 2018 +#+SINCE: v2.0.9 +#+STARTUP: inlineimages nofold -[[https://jblevins.org/projects/deft/][Deft]] is a major mode for browsing and filtering notes written in plain text -formats, such as org-mode, markdown, and LaTeX. +* Table of Contents :TOC_3:noexport: +- [[#description][Description]] + - [[#maintainers][Maintainers]] + - [[#module-flags][Module Flags]] + - [[#plugins][Plugins]] +- [[#prerequisites][Prerequisites]] +- [[#configuration][Configuration]] +- [[#troubleshooting][Troubleshooting]] -To use this module, in your config file set the value of the variable ~deft-directory~ to the folder in which you -want to keep your notes. +* Description +[[https://jblevins.org/projects/deft/][Deft]] is a major mode for creating, browsing, and filtering notes written in plain text formats, such as org-mode, markdown, and LaTeX. It enables you to quickly jot down thoughts and easily retrieve them later. + +** Maintainers +This module has no dedicated maintainers. + +** Module Flags +This module provides no flags. + +** Plugins ++ [[https://github.com/jrblevin/deft][deft]] + +* Prerequisites +This module has no prerequisites. + +* Configuration +To use deft, you first need to specify the directory in which your notes are stored: + +#+begin_src elisp +;; ~/.doom.d/config.el +(setq deft-directory "~/notes") +#+end_src The default note format is org-mode. You can change this by setting the value of -the variable ~deft-default-extension~. Changing the value to ~"md"~ for example, -will change the default note format to markdown. +the variable ~deft-default-extension~. Replacing the value with ~"md"~, for example, +will change the default note format to markdown: + +#+begin_src elisp +(setq deft-default-extension "md") +#+end_src + +You may also want to alter the way titles and file names are automatically created by editing ~deft-use-filename-as-title~ and/or ~deft-use-filter-string-for-filename~. + +Further customization options can be found here: https://github.com/jrblevin/deft#other-customizations + +* Troubleshooting +It is [[https://github.com/hlissner/doom-emacs/pull/2845/commits/dce80a3c8032f5390f4e763e18a108d5f3f08772][not recommended]] to re-enable deft's buffer auto-save. diff --git a/modules/ui/deft/packages.el b/modules/ui/deft/packages.el index f8280e01c..ba3427f57 100644 --- a/modules/ui/deft/packages.el +++ b/modules/ui/deft/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; ui/deft/packages.el -(package! deft :pin "c4af44827f4257e7619e63abfd22094a29a9ab52") +(package! deft :pin "28be94d89bff2e1c7edef7244d7c5ba0636b1296") diff --git a/modules/ui/doom/packages.el b/modules/ui/doom/packages.el index 5ef16ca7d..f8f2b565a 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 "b2c0ea0f0778a6ea85b87e1b87916572e98e1fe7") -(package! solaire-mode :pin "2298fd806d28daf511eb7836b23775e7df1f65e2") +(package! doom-themes :pin "5221b0600d9da16e0e3af332ff1fe2ef624f0af4") +(package! solaire-mode :pin "030964f7c62696c8cfb29125df6e7649d2bf9aeb") diff --git a/modules/ui/fill-column/README.org b/modules/ui/fill-column/README.org deleted file mode 100644 index f58c8abcc..000000000 --- a/modules/ui/fill-column/README.org +++ /dev/null @@ -1,92 +0,0 @@ -#+TITLE: ui/fill-column -#+DATE: August 23, 2020 -#+SINCE: 2.0.9 -#+STARTUP: inlineimages nofold - -* Table of Contents :TOC_3:noexport: -- [[#description][Description]] - - [[#maintainers][Maintainers]] - - [[#module-flags][Module Flags]] - - [[#plugins][Plugins]] -- [[#prerequisites][Prerequisites]] -- [[#features][Features]] -- [[#configuration][Configuration]] - - [[#setting-fill-column-globally][Setting fill-column globally]] - - [[#setting-fill-column-for-the-current-buffer-or-mode][Setting fill-column for the current buffer or mode]] - - [[#hl-fill-column-only-configuring-the-look-of-the-indicator][(hl-fill-column only) Configuring the look of the indicator]] -- [[#troubleshooting][Troubleshooting]] - -* Description -This module provides a fill column indicator to make it obvious when a line -reaches or surpasses the 80th column. This serves as a reminder to keep lines -short for accessibility and/or convenience. [[https://www.emacswiki.org/emacs/EightyColumnRule][Read more about this on the Emacs -Wiki page]]. - -#+begin_quote -This module is deprecated and will be removed once Doom drops Emacs 26.x -support. This is because the built-in ~display-fill-column-indicator-mode~ (in -27 and newer) replaces it, and enabling it is a trivial one-liner, which doesn't -warrant a module: ~(global-display-fill-column-indicator-mode +1)~ -#+end_quote - -** Maintainers -This module has no dedicated maintainers. - -** Module Flags -This module provides no flags. - -** Plugins -+ [[https://github.com/laishulu/hl-fill-column][hl-fill-column]]* (unless Emacs >=27) - -* Prerequisites -This module has no prerequisites. - -* Features -The behavior of this module varies slightly depending on your version of Emacs: - -+ In Emacs 26.x, text beyond ~fill-column~ will be highlighted. -+ In Emacs 27 and newer, a line is drawn down the right side at column 80. - -* Configuration -** Setting fill-column globally -This column limit is controlled by the ~fill-column~ variable (default: ~80~). - -This variable is buffer-local, therefore, to change this globally, you must use -~setq-default~: - -#+BEGIN_SRC emacs-lisp -(setq-default fill-column 100) -#+END_SRC - -~hl-fill-column-mode~ (or ~display-fill-column-indicator-mode~ on Emacs 27+) -must be restarted to see the change. - -** Setting fill-column for the current buffer or mode -The ~setq-hook!~ convenience macro makes settings ~fill-column~ for a particular -mode (or modes) easy: - -#+BEGIN_SRC emacs-lisp -(setq-hook! 'org-mode-hook fill-column 100) -(setq-hook! 'python-mode-hook fill-column 72) -(setq-hook! js2-mode fill-column 72) -(setq-hook! '(ruby-mode rustic-mode python-mode-hook) fill-column 80) -#+END_SRC - -Any open buffers in these modes must be restarted to see the change. - -** (hl-fill-column only) Configuring the look of the indicator -To change the appears of hl-fill-column's highlight, change the -~hl-fill-column-face~ face. Doom provides the ~custom-set-faces!~ macro to help -you do this: - -#+BEGIN_SRC emacs-lisp -(custom-set-faces! - '(hl-fill-column-face :background "red" - :foreground "blue" - :inverse-video t)) -#+END_SRC - -See =M-x helpful-function RET custom-set-faces\!= for demos and documentation -for this macro. - -* TODO Troubleshooting diff --git a/modules/ui/fill-column/autoload.el b/modules/ui/fill-column/autoload.el deleted file mode 100644 index a5cc28861..000000000 --- a/modules/ui/fill-column/autoload.el +++ /dev/null @@ -1,15 +0,0 @@ -;;; ui/fill-column/autoload.el -*- lexical-binding: t; -*- - -;;;###autoload -(defalias '+fill-column/toggle - (if (fboundp 'display-fill-column-indicator-mode) - #'display-fill-column-indicator-mode ; Emacs 27 only - (autoload 'hl-fill-column-mode "hl-fill-column" nil t) - #'hl-fill-column-mode)) - -;;;###autoload -(defalias '+fill-column-enable-h #'+fill-column/toggle) - -;;;###autoload -(add-hook! '(text-mode-hook prog-mode-hook conf-mode-hook) - #'+fill-column-enable-h) diff --git a/modules/ui/fill-column/packages.el b/modules/ui/fill-column/packages.el deleted file mode 100644 index 12420f96a..000000000 --- a/modules/ui/fill-column/packages.el +++ /dev/null @@ -1,6 +0,0 @@ -;; -*- no-byte-compile: t; -*- -;;; ui/fill-column/packages.el - -;; `hl-fill-column' is only used on Emacs versions before 27 -(unless (fboundp 'display-fill-column-indicator-mode) - (package! hl-fill-column :pin "5782a91ba0182c4e562fa0db6379ff9dd472856b")) diff --git a/modules/ui/hl-todo/packages.el b/modules/ui/hl-todo/packages.el index 493178d75..558fc234d 100644 --- a/modules/ui/hl-todo/packages.el +++ b/modules/ui/hl-todo/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; ui/hl-todo/packages.el -(package! hl-todo :pin "57378bd4511887a815725a7850e1ff2c6e9fda16") +(package! hl-todo :pin "5ac0076cfeaea57f7c7a59d9d41a34c1bdc4b22e") diff --git a/modules/ui/modeline/packages.el b/modules/ui/modeline/packages.el index b98bfb541..db1472865 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 "0466d88d715fa2ef528034948707c9abd55e5ccf")) + (package! doom-modeline :pin "06606e0b8b3c19fbe56e25702e2a664deec593c3")) (package! anzu :pin "bdb3da5028935a4aea55c40769bc191a81afb54e") (when (featurep! :editor evil) (package! evil-anzu :pin "d3f6ed4773b48767bd5f4708c7f083336a8a8a86")) diff --git a/modules/ui/nav-flash/config.el b/modules/ui/nav-flash/config.el index c9722787e..d8b053542 100644 --- a/modules/ui/nav-flash/config.el +++ b/modules/ui/nav-flash/config.el @@ -38,8 +38,4 @@ (advice-add #'evil-window-bottom :after #'+nav-flash-blink-cursor-a) ;; Bound to `ga' for evil users - (advice-add #'what-cursor-position :after #'+nav-flash-blink-cursor-a) - - :config - (when (fboundp 'set-face-extend) - (set-face-extend 'nav-flash-face t))) + (advice-add #'what-cursor-position :after #'+nav-flash-blink-cursor-a)) diff --git a/modules/ui/nav-flash/packages.el b/modules/ui/nav-flash/packages.el index 76e21ce4e..7d16a0546 100644 --- a/modules/ui/nav-flash/packages.el +++ b/modules/ui/nav-flash/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; ui/nav-flash/packages.el -(package! nav-flash :pin "d76314802273153c2c38156250d75f95ca352482") +(package! nav-flash :pin "55786c9582410a5637b5635fea022aae564205cd") diff --git a/modules/ui/popup/autoload/popup.el b/modules/ui/popup/autoload/popup.el index 2e4f3228e..3b62c396b 100644 --- a/modules/ui/popup/autoload/popup.el +++ b/modules/ui/popup/autoload/popup.el @@ -612,18 +612,3 @@ Accepts the same arguments as `display-buffer-in-side-window'. You must set (setq window--sides-shown t)) (window--display-buffer buffer best-window 'reuse alist))))))))) - - -;; -;; Emacs backwards compatibility - -(unless EMACS27+ - (defadvice! +popup--set-window-dedicated-a (window) - "Ensure `window--display-buffer' respects `display-buffer-mark-dedicated'. - -This was not so until recent Emacs 27 builds, where it causes breaking errors. -This advice ensures backwards compatibility for Emacs <= 26 users." - :filter-return #'window--display-buffer - (when (and (windowp window) display-buffer-mark-dedicated) - (set-window-dedicated-p window display-buffer-mark-dedicated)) - window)) diff --git a/modules/ui/tabs/autoload.el b/modules/ui/tabs/autoload.el index 3970f5eef..d20a977bf 100644 --- a/modules/ui/tabs/autoload.el +++ b/modules/ui/tabs/autoload.el @@ -4,15 +4,15 @@ ;;;###autoload (autoload '+tabs:next-or-goto "ui/tabs/autoload" nil t) (evil-define-command +tabs:next-or-goto (index) "Switch to the next tab, or to INDEXth tab if a count is given." - (interactive "") - (if current-prefix-arg - (centaur-tabs-select-visible-nth-tab current-prefix-arg) + (interactive "") + (if index + (centaur-tabs-select-visible-nth-tab index) (centaur-tabs-forward))) ;;;###autoload (autoload '+tabs:previous-or-goto "ui/tabs/autoload" nil t) (evil-define-command +tabs:previous-or-goto (index) "Switch to the previous tab, or to INDEXth tab if a count is given." - (interactive "") - (if current-prefix-arg - (centaur-tabs-select-visible-nth-tab current-prefix-arg) + (interactive "") + (if index + (centaur-tabs-select-visible-nth-tab index) (centaur-tabs-backward))) diff --git a/modules/ui/treemacs/packages.el b/modules/ui/treemacs/packages.el index 6ac73414d..a080fec36 100644 --- a/modules/ui/treemacs/packages.el +++ b/modules/ui/treemacs/packages.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; -*- ;;; ui/treemacs/packages.el -(package! treemacs :pin "1a396fb66470736f3f76ae9342b20357426e371f") +(package! treemacs :pin "a6f9e9f1cea3502b3ead082fd208c4011a55add0") ;; These packages have no :pin because they're in the same repo (when (featurep! :editor evil +everywhere) (package! treemacs-evil)) @@ -11,4 +11,4 @@ (when (featurep! :ui workspaces) (package! treemacs-persp)) (when (featurep! +lsp) - (package! lsp-treemacs :pin "b07868740d6f7d364e496048cee00bce10a6ab33")) + (package! lsp-treemacs :pin "905cc74726438cf06d8ad7cabb2efae75aeb2359")) diff --git a/modules/ui/workspaces/autoload/workspaces.el b/modules/ui/workspaces/autoload/workspaces.el index f43fd4ac7..c9407e1e3 100644 --- a/modules/ui/workspaces/autoload/workspaces.el +++ b/modules/ui/workspaces/autoload/workspaces.el @@ -306,6 +306,12 @@ workspace, otherwise the new workspace is blank." (+workspace/display))) ((debug error) (+workspace-error (cadr e) t)))) +;;;###autoload +(defun +workspace/new-named (name) + "Create a new workspace with a given NAME." + (interactive "sWorkspace Name: ") + (+workspace/new name)) + ;;;###autoload (defun +workspace/switch-to (index) "Switch to a workspace at a given INDEX. A negative number will start from the @@ -484,7 +490,7 @@ the next." "Delete workspace associated with current frame. A workspace gets associated with a frame when a new frame is interactively created." - (when persp-mode + (when (and persp-mode (not (bound-and-true-p with-editor-mode))) (unless frame (setq frame (selected-frame))) (let ((frame-persp (frame-parameter frame 'workspace)))