diff --git a/.github/workflows/needs-reply.yml b/.github/workflows/needs-reply.yml new file mode 100644 index 000000000..a7fbdf4e3 --- /dev/null +++ b/.github/workflows/needs-reply.yml @@ -0,0 +1,21 @@ +name: Remove needs-reply label + +on: + issue_comment: + types: + - created + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Remove needs-reply label + uses: octokit/request-action@v2.x + continue-on-error: true + with: + route: DELETE /repos/:repository/issues/:issue/labels/:label + repository: ${{ github.repository }} + issue: ${{ github.event.issue.number }} + label: "status:needs-reply" + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index 1f4602bcc..7f5104e89 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,8 @@ -/.* -!.gitignore -!.github +*~ +*.*~ +\#* +.\#* +.local/ *.cache* *.log /modules/private @@ -8,11 +10,15 @@ test/.local*/ test/result # emacs tempfiles that shouldn't be there +.dap-breakpoints +.org-id-locations +.tern-port .yas-compiled-snippets.el auto-save-list/ cask/ ede-projects.el elpa/ +eln-cache/ network-security.data semanticdb server/ diff --git a/bin/doom b/bin/doom index 8dc0fcc84..9b69d97b4 100755 --- a/bin/doom +++ b/bin/doom @@ -7,12 +7,14 @@ :; exit $__DOOMCODE ;; The garbage collector isn't as important during CLI ops. A higher threshold -;; makes it 15-30% faster, but set it too high and we risk spiralling memory -;; usage in longer sessions. +;; makes it 15-30% faster, but set it too high and we risk runaway memory usage +;; in longer sessions. (setq gc-cons-threshold 134217728) ; 128mb + ;; Prioritize non-byte-compiled source files in non-interactive sessions to ;; prevent loading stale byte-code. (setq load-prefer-newer t) + ;; Ensure Doom runs out of this file's parent directory, where Doom is ;; presumably installed. Use the EMACSDIR envvar to change this. (setq user-emacs-directory diff --git a/core/autoload/debug.el b/core/autoload/debug.el index 2c3c5f653..8099ada26 100644 --- a/core/autoload/debug.el +++ b/core/autoload/debug.el @@ -111,52 +111,77 @@ ready to be pasted in a bug report on github." (require 'core-packages) (let ((default-directory doom-emacs-dir)) (letf! ((defun sh (&rest args) (cdr (apply #'doom-call-process args))) + (defun cat (file &optional limit) + (with-temp-buffer + (insert-file-contents file nil 0 limit) + (buffer-string))) (defun abbrev-path (path) (replace-regexp-in-string - (concat "\\<" (regexp-quote (user-login-name)) "\\>") "$USER" - (abbreviate-file-name path)))) + (regexp-opt (list (user-login-name)) 'words) "$USER" + (abbreviate-file-name path))) + (defun symlink-path (file) + (format "%s%s" (abbrev-path file) + (if (file-symlink-p file) + (concat " -> " (file-truename file)) + "")))) `((system - (type . ,system-type) - (config . ,system-configuration) + (info . ,(cons + (cond + (IS-WINDOWS "Windows") + (IS-MAC (format "MacOS "(sh "sw_vers" "-productVersion"))) + ((executable-find "lsb_release") + (sh "lsb_release" "-s" "-d")) + ((executable-find "nixos-version") + (format "NixOS %s" (sh "nixos-version"))) + ((file-exists-p "/etc/os-release") + (let ((release (cat "/etc/os-release"))) + (when (string-match "^PRETTY_NAME=\"\\([^\"]+\\)\"" release) + (match-string 1 release)))) + ((file-exists-p "/etc/debian_version") + (format "Debian %s" (car "/etc/debian_version"))) + ((when-let (files (doom-glob "/etc/*-release")) + (truncate-string-to-width + (replace-regexp-in-string "\n" " " (cat (car files) 73) nil t) + 64 nil nil "..."))) + ((concat "Unknown " (sh "uname" "-v")))) + (sh "uname" "-msr"))) (shell . ,(abbrev-path shell-file-name)) - (uname . ,(if IS-WINDOWS "n/a" (sh "uname" "-msrv"))) (path . ,(mapcar #'abbrev-path exec-path))) (emacs - (dir . ,(abbrev-path (file-truename doom-emacs-dir))) - (version . ,emacs-version) - (build . ,(format-time-string "%b %d, %Y" emacs-build-time)) + (dir . ,(symlink-path doom-emacs-dir)) + (version . ,(delq nil (list emacs-version emacs-repository-version (format-time-string "%b %d, %Y" emacs-build-time)))) (buildopts . ,system-configuration-options) (features . ,system-configuration-features) - (traits . ,(delq - nil (list (cond ((not doom-interactive-p) 'batch) - ((display-graphic-p) 'gui) - ('tty)) - (if (daemonp) 'daemon) - (if (and (require 'server) - (server-running-p)) - 'server-running) - (if (boundp 'chemacs-profiles-path) - 'chemacs) - (if (file-exists-p doom-env-file) - 'envvar-file) - (if (featurep 'exec-path-from-shell) - 'exec-path-from-shell) - (if (file-symlink-p user-emacs-directory) - 'symlinked-emacsdir) - (if (file-symlink-p doom-private-dir) - 'symlinked-doomdir))))) + (traits + . ,(delq + nil (list (cond ((not doom-interactive-p) 'batch) + ((display-graphic-p) 'gui) + ('tty)) + (if (daemonp) 'daemon) + (if (and (require 'server) + (server-running-p)) + 'server-running) + (if (boundp 'chemacs-profiles-path) + 'chemacs) + (if (file-exists-p doom-env-file) + 'envvar-file) + (if (featurep 'exec-path-from-shell) + 'exec-path-from-shell) + (if (file-symlink-p user-emacs-directory) + 'symlinked-emacsdir) + (if (file-symlink-p doom-private-dir) + 'symlinked-doomdir) + (if (doom-files-in `(,@doom-modules-dirs + ,doom-core-dir + ,doom-private-dir) + :type 'files :match "\\.elc$") + 'byte-compiled-config))))) (doom - (dir . ,(abbrev-path (file-truename doom-private-dir))) - (version . ,doom-version) + (dir . ,(symlink-path doom-private-dir)) + (version . ,(list doom-version (sh "git" "log" "-1" "--format=%D %h %ci"))) ,@(when doom-interactive-p `((font . ,(bound-and-true-p doom-font)) (theme . ,(bound-and-true-p doom-theme)))) - (build . ,(sh "git" "log" "-1" "--format=%D %h %ci")) - (elc-files - . ,(length (doom-files-in `(,@doom-modules-dirs - ,doom-core-dir - ,doom-private-dir) - :type 'files :match "\\.elc$"))) (modules ,@(or (cl-loop with cat = nil for key being the hash-keys of doom-modules diff --git a/core/cli/autoloads.el b/core/cli/autoloads.el index 09193c565..4fab7080f 100644 --- a/core/cli/autoloads.el +++ b/core/cli/autoloads.el @@ -7,6 +7,10 @@ These packages have silly or destructive autoload files that try to load everyone in the universe and their dog, causing errors that make babies cry. No one wants that.") +(defvar doom-autoloads-excluded-files + '("/bufler/bufler-workspaces-tabs\\.el$") + "List of regexps whose matching files won't be indexed for autoloads.") + (defvar doom-autoloads-cached-vars '(doom-modules doom-disabled-packages @@ -49,11 +53,13 @@ one wants that.") (list doom-private-dir)) if (doom-glob dir "autoload.el") collect it if (doom-glob dir "autoload/*.el") append it) - (mapcan #'doom-glob doom-autoloads-files))) + (mapcan #'doom-glob doom-autoloads-files)) + nil) (doom-autoloads--scan (mapcar #'straight--autoloads-file (seq-difference (hash-table-keys straight--build-cache) doom-autoloads-excluded-packages)) + doom-autoloads-excluded-files 'literal)) (print! (start "Byte-compiling autoloads file...")) (doom-autoloads--compile-file file) @@ -189,35 +195,39 @@ one wants that.") (doom-autoloads--scan-autodefs file target-buffer module module-enabled-p)))) -(defun doom-autoloads--scan (files &optional literal) +(defun doom-autoloads--scan (files &optional exclude literal) (require 'autoload) - (let (autoloads) - (dolist (file - (seq-filter #'file-readable-p files) - (nreverse (delq nil autoloads))) - (with-temp-buffer - (print! (debug "- Scanning %s") (relpath file doom-emacs-dir)) - (if literal - (insert-file-contents file) - (doom-autoloads--scan-file file)) - (save-excursion - (let ((filestr (prin1-to-string file))) - (while (re-search-forward "\\_" nil t) - ;; `load-file-name' is meaningless in a concatenated - ;; mega-autoloads file, so we replace references to it with the - ;; file they came from. - (let ((ppss (save-excursion (syntax-ppss)))) - (or (nth 3 ppss) - (nth 4 ppss) - (replace-match filestr t t)))))) - (let ((load-file-name file) - (load-path - (append (list doom-private-dir) - doom-modules-dirs - load-path))) - (condition-case _ - (while t - (push (doom-autoloads--cleanup-form (read (current-buffer)) - (not literal)) - autoloads)) - (end-of-file))))))) + (let (case-fold-search ; case-sensitive regexp from here on + autoloads) + (dolist (file files (nreverse (delq nil autoloads))) + (when (and (or (null exclude) + (seq-remove (doom-rpartial #'string-match-p file) + exclude)) + (file-readable-p file)) + (doom-log "Scanning %s" file) + (setq file (file-truename file)) + (with-temp-buffer + (if literal + (insert-file-contents file) + (doom-autoloads--scan-file file)) + (save-excursion + (let ((filestr (prin1-to-string file))) + (while (re-search-forward "\\_" nil t) + ;; `load-file-name' is meaningless in a concatenated + ;; mega-autoloads file, so we replace references to it with the + ;; file they came from. + (let ((ppss (save-excursion (syntax-ppss)))) + (or (nth 3 ppss) + (nth 4 ppss) + (replace-match filestr t t)))))) + (let ((load-file-name file) + (load-path + (append (list doom-private-dir) + doom-modules-dirs + load-path))) + (condition-case _ + (while t + (push (doom-autoloads--cleanup-form (read (current-buffer)) + (not literal)) + autoloads)) + (end-of-file)))))))) diff --git a/core/cli/env.el b/core/cli/env.el index 4fcb84b05..6f98708fd 100644 --- a/core/cli/env.el +++ b/core/cli/env.el @@ -64,7 +64,7 @@ Why this over exec-path-from-shell? '(;; State that may be problematic if overwritten "^HOME$" "^\\(OLD\\)?PWD$" "^SHLVL$" "^PS1$" "^R?PROMPT$" "^TERM$" "^USER$" ;; X server or services' variables - "^DISPLAY$" "^DBUS_SESSION_BUS_ADDRESS$" + "^DISPLAY$" "^DBUS_SESSION_BUS_ADDRESS$" "^XAUTHORITY$" ;; ssh and gpg variables (likely to become stale) "^SSH_\\(AUTH_SOCK\\|AGENT_PID\\)$" "^\\(SSH\\|GPG\\)_TTY$" "^GPG_AGENT_INFO$" diff --git a/core/core-cli.el b/core/core-cli.el index c186117e8..f282c1d80 100644 --- a/core/core-cli.el +++ b/core/core-cli.el @@ -494,8 +494,17 @@ Environment variables: (run-hooks 'doom-cli-pre-hook) (when (apply #'doom-cli-execute command args) (run-hooks 'doom-cli-post-hook) - (print! (success "Finished in %.4fs") - (float-time (time-subtract (current-time) start-time)))))))) + (print! (success "Finished in %s") + (let* ((duration (float-time (time-subtract (current-time) before-init-time))) + (hours (/ (truncate duration) 60 60)) + (minutes (- (/ (truncate duration) 60) (* hours 60))) + (seconds (- duration (* hours 60 60) (* minutes 60)))) + (string-join + (delq + nil (list (unless (zerop hours) (format "%dh" hours)) + (unless (zerop minutes) (format "%dm" minutes)) + (format (if (> duration 60) "%ds" "%.4fs") + seconds))))))))))) ;; TODO Not implemented yet (doom-cli-command-not-found-error (print! (error "Command 'doom %s' not recognized") (string-join (cdr e) " ")) diff --git a/core/core-editor.el b/core/core-editor.el index 724a32802..d667a094f 100644 --- a/core/core-editor.el +++ b/core/core-editor.el @@ -72,6 +72,19 @@ possible." ;; warning as it will redirect you to the existing buffer anyway. (setq find-file-suppress-same-file-warnings t) +;; Create missing directories when we open a file that doesn't exist under a +;; directory tree that may not exist. +(add-hook! 'find-file-not-found-functions + (defun doom-create-missing-directories-h () + "Automatically create missing directories when creating new files." + (unless (file-remote-p buffer-file-name) + (let ((parent-directory (file-name-directory buffer-file-name))) + (and (not (file-directory-p parent-directory)) + (y-or-n-p (format "Directory `%s' does not exist! Create it?" + parent-directory)) + (progn (make-directory parent-directory 'parents) + t)))))) + ;; Don't generate backups or lockfiles. While auto-save maintains a copy so long ;; as a buffer is unsaved, backups create copies once, when the file is first ;; written, and never again until it is killed and reopened. This is better @@ -284,15 +297,29 @@ or file path may exist now." savehist-autosave-interval nil ; save on kill only savehist-additional-variables '(kill-ring ; persist clipboard + register-alist ; persist macros mark-ring global-mark-ring ; persist marks search-ring regexp-search-ring)) ; persist searches (add-hook! 'savehist-save-hook - (defun doom-unpropertize-kill-ring-h () + (defun doom-savehist-unpropertize-variables-h () "Remove text properties from `kill-ring' for a smaller savehist file." - (setq kill-ring (cl-loop for item in kill-ring - if (stringp item) - collect (substring-no-properties item) - else if item collect it))))) + (setq kill-ring + (mapcar #'substring-no-properties + (cl-remove-if-not #'stringp kill-ring)) + register-alist + (cl-loop for (reg . item) in register-alist + if (stringp item) + collect (cons reg (substring-no-properties item)) + else collect (cons reg item)))) + (defun doom-savehist-remove-unprintable-registers-h () + "Remove unwriteable registers (e.g. containing window configurations). +Otherwise, `savehist' would discard `register-alist' entirely if we don't omit +the unwritable tidbits." + ;; Save new value in the temp buffer savehist is running + ;; `savehist-save-hook' in. We don't want to actually remove the + ;; unserializable registers in the current session! + (setq-local register-alist + (cl-remove-if-not #'savehist-printable register-alist))))) (use-package! saveplace @@ -387,6 +414,8 @@ files, so we replace calls to `pp' with the much faster `prin1'." (use-package! dtrt-indent ;; Automatic detection of indent settings :when doom-interactive-p + ;; I'm not using `global-dtrt-indent-mode' because it has hard-coded and rigid + ;; major mode checks, so I implement it in `doom-detect-indentation-h'. :hook ((change-major-mode-after-body read-only-mode) . doom-detect-indentation-h) :config (defun doom-detect-indentation-h () @@ -406,23 +435,7 @@ files, so we replace calls to `pp' with the much faster `prin1'." (setq dtrt-indent-max-lines 2000) ;; always keep tab-width up-to-date - (push '(t tab-width) dtrt-indent-hook-generic-mapping-list) - - (defvar dtrt-indent-run-after-smie) - (defadvice! doom--fix-broken-smie-modes-a (orig-fn arg) - "Some smie modes throw errors when trying to guess their indentation, like -`nim-mode'. This prevents them from leaving Emacs in a broken state." - :around #'dtrt-indent-mode - (let ((dtrt-indent-run-after-smie dtrt-indent-run-after-smie)) - (letf! ((defun symbol-config--guess (beg end) - (funcall symbol-config--guess beg (min end 10000))) - (defun smie-config-guess () - (condition-case e (funcall smie-config-guess) - (error (setq dtrt-indent-run-after-smie t) - (message "[WARNING] Indent detection: %s" - (error-message-string e)) - (message ""))))) ; warn silently - (funcall orig-fn arg))))) + (push '(t tab-width) dtrt-indent-hook-generic-mapping-list)) (use-package! helpful diff --git a/core/core-lib.el b/core/core-lib.el index 54caab026..4b8aec482 100644 --- a/core/core-lib.el +++ b/core/core-lib.el @@ -260,9 +260,18 @@ See `general-key-dispatch' for what other arguments it accepts in BRANCHES." (when (cl-oddp (length branches)) (setq fallback (car (last branches)) branches (butlast branches))) - `(general-predicate-dispatch ,fallback - :docstring ,docstring - ,@branches))) + (let ((defs (cl-loop for (key value) on branches by 'cddr + unless (keywordp key) + collect (list key value)))) + `'(menu-item + ,(or docstring "") nil + :filter (lambda (&optional _) + (let (it) + (cond ,@(mapcar (lambda (pred-def) + `((setq it ,(car pred-def)) + ,(cadr pred-def))) + defs) + (t ,fallback)))))))) (defalias 'kbd! 'general-simulate-key) diff --git a/core/core-modules.el b/core/core-modules.el index 8e7e7cc2e..ff6aea8a2 100644 --- a/core/core-modules.el +++ b/core/core-modules.el @@ -302,10 +302,11 @@ those directories. The first returned path is always `doom-private-dir'." mplist) (push (car key) mplist)) (throw 'doom-modules t)))) - (push (funcall fn category module - :flags (if (listp m) (cdr m)) - :path (doom-module-locate-path category module)) - results)))))) + (let ((path (doom-module-locate-path category module))) + (push (funcall fn category module + :flags (if (listp m) (cdr m)) + :path (if (stringp path) (file-truename path))) + results))))))) (unless doom-interactive-p (setq doom-inhibit-module-warnings t)) (nreverse results))) diff --git a/core/core-packages.el b/core/core-packages.el index a5c3ae6ce..e31b14650 100644 --- a/core/core-packages.el +++ b/core/core-packages.el @@ -77,7 +77,7 @@ uses a straight or package.el command directly).") ;; ;;; Straight -(setq straight-base-dir doom-local-dir +(setq straight-base-dir (file-truename doom-local-dir) straight-repository-branch "develop" ;; Since byte-code is rarely compatible across different versions of ;; Emacs, it's best we build them in separate directories, per emacs diff --git a/core/core-ui.el b/core/core-ui.el index d237942c1..22c5f6d82 100644 --- a/core/core-ui.el +++ b/core/core-ui.el @@ -599,7 +599,7 @@ behavior). Do not set this directly, this is let-bound in `doom-init-theme-h'.") (when doom-variable-pitch-font (set-face-attribute 'variable-pitch nil :font doom-variable-pitch-font)) (when (fboundp 'set-fontset-font) - (dolist (font (cons doom-unicode-font doom-unicode-extra-fonts)) + (dolist (font (remq nil (cons doom-unicode-font doom-unicode-extra-fonts))) (set-fontset-font t 'unicode font nil 'prepend))) (run-hooks 'after-setting-font-hook)) ((debug error) diff --git a/core/core.el b/core/core.el index a954358ef..3b8f895ad 100644 --- a/core/core.el +++ b/core/core.el @@ -33,14 +33,14 @@ envvar will enable this at startup.") (setenv "HOME" (getenv "USERPROFILE")) (setq abbreviated-home-dir nil)) -;; Contrary to what many Emacs users have in their configs, you really don't -;; need more than this to make UTF-8 the default coding system: +;; Contrary to what many Emacs users have in their configs, you don't need more +;; than this to make UTF-8 the default coding system: (when (fboundp 'set-charset-priority) (set-charset-priority 'unicode)) ; pretty (prefer-coding-system 'utf-8) ; pretty (setq locale-coding-system 'utf-8) ; please -;; The clipboard's on Windows could be in a wider (or thinner) encoding than -;; utf-8 (likely UTF-16), so let Emacs/the OS decide what encoding to use there. +;; The clipboard's on Windows could be in a wider encoding than utf-8 (likely +;; utf-16), so let Emacs/the OS decide what encoding to use there. (unless IS-WINDOWS (setq selection-coding-system 'utf-8)) ; with sugar on top @@ -156,7 +156,7 @@ users).") (with-eval-after-load 'comp ;; HACK Disable native-compilation for some troublesome packages - (mapc (doom-partial #'add-to-list 'comp-deferred-compilation-deny-list) + (mapc (apply-partially #'add-to-list 'comp-deferred-compilation-deny-list) (let ((local-dir-re (concat "\\`" (regexp-quote doom-local-dir)))) (list (concat "\\`" (regexp-quote doom-autoloads-file) "\\'") (concat local-dir-re ".*/evil-collection-vterm\\.el\\'") @@ -165,11 +165,11 @@ users).") (concat local-dir-re ".*/jupyter-channel\\.el\\'")))) ;; Default to using all cores, rather than half of them, since we compile ;; things ahead-of-time in a non-interactive session. - (defadvice! doom--comp-use-all-cores-a () - :override #'comp-effective-async-max-jobs + (defun doom--comp-use-all-cores-a () (if (zerop comp-async-jobs-number) (setq comp-num-cpus (doom-num-cpus)) - comp-async-jobs-number))) + comp-async-jobs-number)) + (advice-add #'comp-effective-async-max-jobs :override #'doom--comp-use-all-cores-a)) ;; diff --git a/core/packages.el b/core/packages.el index 94be74ba1..5333d0e7c 100644 --- a/core/packages.el +++ b/core/packages.el @@ -17,15 +17,15 @@ :branch ,straight-repository-branch :local-repo "straight.el" :files ("straight*.el")) - :pin "f2cb888f088a790bac8731b95eeec3df068cac5f") + :pin "0f9b828d8a41cf3d312678e82573066aebf2ab6e") ;; core-modules.el (package! use-package :type 'core - :pin "317137b07687f16ea97a2493b0a6768c9df381a0") + :pin "a7422fb8ab1baee19adb2717b5b47b9c3812a84c") ;; core-ui.el -(package! all-the-icons :pin "5fa728399bd6233a82bbfd4f7cb203a1d7ede708") +(package! all-the-icons :pin "2f5ea7259ed104a0ef8727f640ee2525108038d5") (package! hide-mode-line :pin "88888825b5b27b300683e662fa3be88d954b1cea") (package! highlight-numbers :pin "8b4744c7f46c72b1d3d599d4fb75ef8183dee307") (package! rainbow-delimiters :pin "f43d48a24602be3ec899345a3326ed0247b960c6") @@ -33,7 +33,7 @@ ;; core-editor.el (package! better-jumper :pin "411ecdf6e7a3e1b4ced7605070d2309e5fc46556") -(package! dtrt-indent :pin "854b9a1ce93d9926018a0eb18e6e552769c5407d") +(package! dtrt-indent :pin "4a30d8edac7fbc5936fc07050e3ebfb94f97c1e7") (package! helpful :pin "584ecc887bb92133119f93a6716cdf7af0b51dca") (package! pcre2el :pin "0b5b2a2c173aab3fd14aac6cf5e90ad3bf58fa7d") (package! smartparens :pin "63695c64233d215a92bf08e762f643cdb595bdd9") diff --git a/init.example.el b/init.example.el index beede2341..f154f1b55 100644 --- a/init.example.el +++ b/init.example.el @@ -175,6 +175,7 @@ :app ;;calendar + ;;everywhere ; *leave* Emacs!? You must be joking ;;irc ; how neckbeards socialize ;;(rss +org) ; emacs as an RSS reader ;;twitter ; twitter client https://twitter.com/vnought diff --git a/modules/app/calendar/packages.el b/modules/app/calendar/packages.el index 6d1c20631..b8ed39e0b 100644 --- a/modules/app/calendar/packages.el +++ b/modules/app/calendar/packages.el @@ -5,4 +5,4 @@ (package! calfw-org :pin "03abce97620a4a7f7ec5f911e669da9031ab9088") (package! calfw-cal :pin "03abce97620a4a7f7ec5f911e669da9031ab9088") (package! calfw-ical :pin "03abce97620a4a7f7ec5f911e669da9031ab9088") -(package! org-gcal :pin "2cad2d8c175975dea42903cd4e3fd8bec423c01a") +(package! org-gcal :pin "0a6f9a7385410b70853eb65c14344ad76cc6815f") diff --git a/modules/app/everywhere/README.org b/modules/app/everywhere/README.org new file mode 100644 index 000000000..2d75cf89b --- /dev/null +++ b/modules/app/everywhere/README.org @@ -0,0 +1,58 @@ +#+title: app/everywhere +#+date: February 7, 2021 +#+since: v3.0 +#+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]] + +* Description +This module adds system-wide popup Emacs windows for quick edits. + +** Maintainers ++ [[https://github.com/tecosaur][@tecosaur]] + +** Module Flags + +This module provides no flags. + +** Plugins ++ [[https://github.com/tecosaur/emacs-everywhere][emacs-everywhere]] + +* Prerequisites + +On Linux =xclip=, =xdotool=, =xprop=, and =xwininfo= are needed. + +On MacOS, Emacs must be allowed to "control your computer" under *Settings > Accessibility*. + +* Features + +To use this, invoke the =emacs-everywhere= executable. This can be done in two +ways: ++ ~emacsclient --eval "(emacs-everywhere)"~ ++ ~doom everywhere~ + +It is recommended that you add a keybinding for this. + +From here, you can edit away to your hearts content in the created frame, then +return to the original window and paste the content with =C-c C-c= or =SPC q f=. +To exit without pasting, use =C-c C-k=. + +* Configuration + +=emacs-everywhere= likes to guess if you triggered it from an application which +supports markdown. Configure ~emacs-everywhere-markdown-windows~ and +~emacs-everywhere-markdown-apps~ to improve how accurate this is on your system. + +By default, when markdown is detected, ~markdown-mode~ is used. It is possible to +instead use pandoc to convert the content to Org (and export to markdown when +closing the frame) by setting ~emacs-everywhere-major-mode-function~ to +=#'org-mode=. + +Most other behaviour is implemented as hooks on ~emacs-everywhere-init-hooks~. diff --git a/modules/app/everywhere/cli.el b/modules/app/everywhere/cli.el new file mode 100644 index 000000000..819fdf4d3 --- /dev/null +++ b/modules/app/everywhere/cli.el @@ -0,0 +1,5 @@ +;;; app/everywhere/cli.el -*- lexical-binding: t; -*- + +(defcli! everywhere () + "Spawn an emacsclient window for quick edits." + (throw 'exit (list "emacsclient" "--eval" "(emacs-everywhere)"))) diff --git a/modules/app/everywhere/config.el b/modules/app/everywhere/config.el new file mode 100644 index 000000000..4ac6e915e --- /dev/null +++ b/modules/app/everywhere/config.el @@ -0,0 +1,35 @@ +;;; app/everywhere/config.el -*- lexical-binding: t; -*- + +(use-package! emacs-everywhere + ;; Entry points into this package are autoloaded; i.e. the `emacs-everywhere' + ;; function, meant to be called directly via emacsclient. See this module's + ;; readme for details. + :defer t + :config + (set-yas-minor-mode! 'emacs-everywhere-mode) + + (after! doom-modeline + (doom-modeline-def-segment emacs-everywhere + (concat (doom-modeline-spc) + (when (emacs-everywhere-markdown-p) + (concat + (all-the-icons-octicon "markdown" :face 'all-the-icons-green :v-adjust 0.02) + (doom-modeline-spc))) + (propertize emacs-everywhere-app-name + 'face 'doom-modeline-project-dir) + (doom-modeline-spc) + (propertize (truncate-string-to-width emacs-everywhere-window-title + 45 nil nil "…") + 'face 'doom-modeline-buffer-minor-mode))) + (doom-modeline-def-modeline 'emacs-everywhere + '(bar modals emacs-everywhere buffer-position word-count parrot selection-info) + '(input-method major-mode checker)) + (defun emacs-everywhere-set-modeline () + (doom-modeline-set-modeline 'emacs-everywhere)) + (add-hook 'emacs-everywhere-init-hooks #'emacs-everywhere-set-modeline)) + (when (featurep! :ui workspaces) + (defun emacs-everywhere-clear-persp-info () + (setq persp-emacsclient-init-frame-behaviour-override nil)) + (add-hook 'emacs-everywhere-init-hooks #'emacs-everywhere-clear-persp-info)) + (after! solaire-mode + (add-hook 'emacs-everywhere-init-hooks #'solaire-mode))) diff --git a/modules/app/everywhere/doctor.el b/modules/app/everywhere/doctor.el new file mode 100644 index 000000000..8e7223710 --- /dev/null +++ b/modules/app/everywhere/doctor.el @@ -0,0 +1,12 @@ +;;; app/everywhere/doctor.el -*- lexical-binding: t; -*- + +(when IS-WINDOWS + (error! "emacs-everywhere package does not support windows.")) + +(when IS-LINUX + (let (unmet-deps) + (dolist (dep '("xclip" "xdotool" "xprop" "xwininfo")) + (unless (executable-find dep) + (push dep unmet-deps))) + (when unmet-deps + (error! "Unmet dependencies: %s" (string-join unmet-deps ", "))))) diff --git a/modules/app/everywhere/packages.el b/modules/app/everywhere/packages.el new file mode 100644 index 000000000..7aee6df26 --- /dev/null +++ b/modules/app/everywhere/packages.el @@ -0,0 +1,6 @@ +;; -*- no-byte-compile: t; -*- +;;; app/everywhere/packages.el + +(package! emacs-everywhere + :recipe (:host github :repo "tecosaur/emacs-everywhere") + :pin "d84b397c9a82c2fea1b0c87740c395a2c7af3be8") diff --git a/modules/app/irc/packages.el b/modules/app/irc/packages.el index 29e3ca274..fbe4c6828 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 "d98986ce933c380b47d727beea8bad81bda65dc9") +(package! circe :pin "265f36c1e6c8db598742778dc64f9799896f5dc1") (package! circe-notifications :pin "291149ac12877bbd062da993479d3533a26862b0") diff --git a/modules/app/rss/packages.el b/modules/app/rss/packages.el index 86b6fcac6..87b4fe2b6 100644 --- a/modules/app/rss/packages.el +++ b/modules/app/rss/packages.el @@ -1,5 +1,5 @@ ;; -*- no-byte-compile: t; -*- ;;; app/rss/packages.el -(package! elfeed :pin "7b2b6fadaa498fef2ba212a50da4a8afa2a5d305") +(package! elfeed :pin "362bbe5b38353d033c5299f621fea39e2c75a5e0") (package! elfeed-org :pin "77b6bbf222487809813de260447d31c4c59902c9") diff --git a/modules/app/twitter/packages.el b/modules/app/twitter/packages.el index ecffa6d9d..dedc07eb1 100644 --- a/modules/app/twitter/packages.el +++ b/modules/app/twitter/packages.el @@ -2,4 +2,4 @@ ;;; app/twitter/packages.el (package! twittering-mode :pin "114891e8fdb4f06b1326a6cf795e49c205cf9e29") -(package! avy :pin "bbf1e7339eba06784dfe86643bb0fbddf5bb0342") +(package! avy :pin "e92cb37457b43336b765630dbfbea8ba4be601fa") diff --git a/modules/completion/helm/autoload/posframe.el b/modules/completion/helm/autoload/posframe.el index 9ed53bb27..9dccf01c3 100644 --- a/modules/completion/helm/autoload/posframe.el +++ b/modules/completion/helm/autoload/posframe.el @@ -24,14 +24,14 @@ bottom, which is easier on the eyes on big displays." :position (point) :poshandler +helm-posframe-handler :respect-header-line helm-echo-input-in-header-line - :width + :min-width (max (cl-typecase .width (integer .width) (float (truncate (* (frame-width) .width))) (function (funcall .width)) (t 0)) .min-width) - :height + :min-height (max (cl-typecase .height (integer .height) (float (truncate (* (frame-height) .height))) diff --git a/modules/completion/helm/config.el b/modules/completion/helm/config.el index fcbc8ed9e..2a0024c6c 100644 --- a/modules/completion/helm/config.el +++ b/modules/completion/helm/config.el @@ -12,7 +12,7 @@ be negative.") (defvar +helm-posframe-parameters '((internal-border-width . 8) - (width . 0.5) + (width . 0.65) (height . 0.35) (min-width . 80) (min-height . 16)) diff --git a/modules/completion/ivy/config.el b/modules/completion/ivy/config.el index 6877ed766..8b9d2bb74 100644 --- a/modules/completion/ivy/config.el +++ b/modules/completion/ivy/config.el @@ -153,7 +153,8 @@ results buffer.") (switch-buffer-alist (assq 'ivy-rich-candidate (plist-get plist :columns)))) (setcar switch-buffer-alist '+ivy-rich-buffer-name)) - (ivy-rich-mode +1)) + (ivy-rich-mode +1) + (ivy-rich-project-root-cache-mode +1)) (use-package! all-the-icons-ivy diff --git a/modules/config/default/+evil-bindings.el b/modules/config/default/+evil-bindings.el index e500ba4a7..65be6cce7 100644 --- a/modules/config/default/+evil-bindings.el +++ b/modules/config/default/+evil-bindings.el @@ -403,7 +403,8 @@ :desc "Save file as..." "S" #'write-file :desc "Sudo find file" "u" #'doom/sudo-find-file :desc "Sudo this file" "U" #'doom/sudo-this-file - :desc "Yank filename" "y" #'+default/yank-buffer-filename) + :desc "Yank file path" "y" #'+default/yank-buffer-path + :desc "Yank file path from project" "Y" #'+default/yank-buffer-path-relative-to-project) ;;; g --- git/version control (:prefix-map ("g" . "git") diff --git a/modules/config/default/autoload/text.el b/modules/config/default/autoload/text.el index 521e4c637..9d0144aaa 100644 --- a/modules/config/default/autoload/text.el +++ b/modules/config/default/autoload/text.el @@ -32,13 +32,24 @@ ((error "No kill-ring search backend available. Enable ivy or helm!"))))) ;;;###autoload -(defun +default/yank-buffer-filename () +(defun +default/yank-buffer-path (&optional root) "Copy the current buffer's path to the kill ring." (interactive) - (if-let (filename (or buffer-file-name (bound-and-true-p list-buffers-directory))) - (message (kill-new (abbreviate-file-name filename))) + (if-let (filename (or (buffer-file-name (buffer-base-buffer)) + (bound-and-true-p list-buffers-directory))) + (message "Copied path to clipboard: %s" + (kill-new (abbreviate-file-name + (if root + (file-relative-name filename root) + filename)))) (error "Couldn't find filename in current buffer"))) +;;;###autoload +(defun +default/yank-buffer-path-relative-to-project () + "Copy the current buffer's path to the kill ring." + (interactive) + (+default/yank-buffer-path (doom-project-root))) + ;;;###autoload (defun +default/insert-file-path (arg) "Insert the file name (absolute path if prefix ARG). @@ -55,7 +66,9 @@ If `buffer-file-name' isn't set, uses `default-directory'." "Delete back to the previous column of whitespace, or as much whitespace as possible, or just one char if that's not possible." (interactive) - (let* ((context (ignore-errors (sp-get-thing))) + (let* ((context + (if (bound-and-true-p smartparens-mode) + (ignore-errors (sp-get-thing)))) (op (plist-get context :op)) (cl (plist-get context :cl)) open-len close-len) diff --git a/modules/config/default/packages.el b/modules/config/default/packages.el index 9afa53917..26cb07273 100644 --- a/modules/config/default/packages.el +++ b/modules/config/default/packages.el @@ -1,9 +1,9 @@ ;; -*- no-byte-compile: t; -*- ;;; config/default/packages.el -(package! avy :pin "bbf1e7339eba06784dfe86643bb0fbddf5bb0342") +(package! avy :pin "e92cb37457b43336b765630dbfbea8ba4be601fa") (package! drag-stuff :pin "6d06d846cd37c052d79acd0f372c13006aa7e7c8") -(package! link-hint :pin "e897897d6a92b4ffdbff33acf69f5c661da1123a") +(package! link-hint :pin "09ba5727d8ba4a2e5d4f5ce924aaebbc7478ff13") (unless (featurep! :editor evil) (package! expand-region :pin "ea6b4cbb9985ddae532bd2faf9bb00570c9f2781")) diff --git a/modules/config/literate/autoload.el b/modules/config/literate/autoload.el index c1e5bc887..85bc0e9ed 100644 --- a/modules/config/literate/autoload.el +++ b/modules/config/literate/autoload.el @@ -23,7 +23,7 @@ byte-compiled from.") (letf! ((default-directory doom-private-dir) (target +literate-config-file) (cache +literate-config-cache-file) - (dest (expand-file-name (concat (file-name-base target) ".el"))) + (dest (expand-file-name (concat doom-module-config-file ".el"))) ;; Operate on a copy because `org-babel-tangle' has ;; side-effects we need to undo immediately as not to ;; overwrite the user's config; it's bad ettiquite. diff --git a/modules/editor/evil/init.el b/modules/editor/evil/init.el index 99e05cfaa..f2aefef18 100644 --- a/modules/editor/evil/init.el +++ b/modules/editor/evil/init.el @@ -54,6 +54,8 @@ variable for an explanation of the defaults (in comments). See ;; We do this ourselves, and better. (defvar evil-collection-want-unimpaired-p nil) + ;; Doom binds goto-reference on gD and goto-assignments on gA ourselves + (defvar evil-collection-want-find-usages-bindings-p nil) ;; We handle loading evil-collection ourselves (defvar evil-collection--supported-modes nil) diff --git a/modules/editor/evil/packages.el b/modules/editor/evil/packages.el index 3e1f17374..ee8c41513 100644 --- a/modules/editor/evil/packages.el +++ b/modules/editor/evil/packages.el @@ -11,7 +11,7 @@ (package! evil-exchange :pin "3030e21ee16a42dfce7f7cf86147b778b3f5d8c1") (package! evil-indent-plus :pin "0c7501e6efed661242c3a20e0a6c79a6455c2c40") (package! evil-lion :pin "6b03593f5dd6e7c9ca02207f9a73615cf94c93ab") -(package! evil-nerd-commenter :pin "563cdc154b1f29d181b883563dd37be7eafafdee") +(package! evil-nerd-commenter :pin "2730820b9ccedf758c8a0428ee2c994c9fc415dd") (package! evil-numbers :recipe (:host github :repo "janpath/evil-numbers") :pin "006da406d175c05fedca4431cccd569e20bef92c") @@ -33,4 +33,4 @@ (package! neotree) (autoload 'neotree-make-executor "neotree" nil nil 'macro)) - (package! evil-collection :pin "e6824e2ad2f2ee7ddccf6f54db655a4cd37a13dc")) + (package! evil-collection :pin "334670e29d964c5f591f75ccbf52b7b5faf4daba")) diff --git a/modules/editor/god/packages.el b/modules/editor/god/packages.el index c40c6f0c4..a8766d1dc 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 "f51c8f60e55393cced8cb0bd4a5bf0ab1612caa4") +(package! god-mode :pin "02a402b2323e025f77e89cf56d5e678e31a2d2f6") diff --git a/modules/editor/lispy/config.el b/modules/editor/lispy/config.el index e935158eb..a5bb22e8f 100644 --- a/modules/editor/lispy/config.el +++ b/modules/editor/lispy/config.el @@ -3,6 +3,7 @@ (use-package! lispy :hook ((lisp-mode . lispy-mode) (emacs-lisp-mode . lispy-mode) + (ielm-mode . lispy-mode) (scheme-mode . lispy-mode) (racket-mode . lispy-mode) (hy-mode . lispy-mode) diff --git a/modules/editor/lispy/packages.el b/modules/editor/lispy/packages.el index cdf1e1f47..451e65bcd 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 "5c8a59ae7dd3dd342e7c86a8c0acdbd13e2989f3") +(package! lispy :pin "38a7df4cbb16cfe3d62dc8ea98b50e2d9a572e58") (when (featurep! :editor evil) - (package! lispyville :pin "0f13f26cd6aa71f9fd852186ad4a00c4294661cd")) + (package! lispyville :pin "89316f01822b2135e52ca27fd308d207ef618052")) diff --git a/modules/editor/multiple-cursors/config.el b/modules/editor/multiple-cursors/config.el index 4afd246db..fd25e70ae 100644 --- a/modules/editor/multiple-cursors/config.el +++ b/modules/editor/multiple-cursors/config.el @@ -62,8 +62,7 @@ (append vars sp--mc/cursor-specific-vars))))) ;; Whitelist more commands - (dolist (fn '((delete-char) - (backward-kill-word) + (dolist (fn '((backward-kill-word) (company-complete-common . evil-mc-execute-default-complete) (doom/backward-to-bol-or-indent . evil-mc-execute-default-call) (doom/forward-to-last-non-comment-or-eol . evil-mc-execute-default-call) @@ -75,6 +74,9 @@ (evil-escape . evil-mc-execute-default-evil-normal-state) ; C-g (evil-numbers/inc-at-pt-incremental) (evil-numbers/dec-at-pt-incremental) + (evil-digit-argument-or-evil-beginning-of-visual-line + (:default . evil-mc-execute-default-call) + (visual . evil-mc-execute-visual-call)) ;; :tools eval (+eval:replace-region . +multiple-cursors-execute-default-operator-fn) ;; :lang ess @@ -82,9 +84,11 @@ ;; :lang org (evil-org-delete . evil-mc-execute-default-evil-delete))) (setf (alist-get (car fn) evil-mc-custom-known-commands) - (list (cons :default - (or (cdr fn) - #'evil-mc-execute-default-call-with-count))))) + (if (and (cdr fn) (listp (cdr fn))) + (cdr fn) + (list (cons :default + (or (cdr fn) + #'evil-mc-execute-default-call-with-count)))))) ;; HACK Allow these commands to be repeated by prefixing them with a numerical ;; argument. See gabesoft/evil-mc#110 diff --git a/modules/editor/multiple-cursors/packages.el b/modules/editor/multiple-cursors/packages.el index 64a134fd7..ac7d8981d 100644 --- a/modules/editor/multiple-cursors/packages.el +++ b/modules/editor/multiple-cursors/packages.el @@ -7,6 +7,6 @@ ;; time of writing). Revisit later. (package! iedit :pin "77eb0a1e2e44b453e4ebf4c38409affa353f5139") (package! evil-multiedit :pin "9f271e0e6048297692f80ed6c5ae8994ac523abc") - (package! evil-mc :pin "7dfb2ca5ac00c249cb2f55cd6fa91fb2bfb1117e")) + (package! evil-mc :pin "f04fb17f35f2722f2ac93c862b4450bb8e5b739a")) - ((package! multiple-cursors :pin "83abb0533a9d9635bc86d6d52a4e7641b0eaaf63"))) + ((package! multiple-cursors :pin "a9d7764f80b241978f3d4e76bc981ef10bab5d70"))) diff --git a/modules/editor/parinfer/packages.el b/modules/editor/parinfer/packages.el index a92760657..7b64e035b 100644 --- a/modules/editor/parinfer/packages.el +++ b/modules/editor/parinfer/packages.el @@ -11,4 +11,4 @@ ;; separate session: (autoload 'evil-define-key "evil-core" nil nil 'macro)) -(package! parinfer :pin "91856b9c5817ead97aa034fe108c4a6e884802b2") +(package! parinfer :pin "8659c99a9475ee34af683fdf8f272728c6bebb3a") diff --git a/modules/editor/snippets/autoload/snippets.el b/modules/editor/snippets/autoload/snippets.el index b87a91b72..7f5a1f63d 100644 --- a/modules/editor/snippets/autoload/snippets.el +++ b/modules/editor/snippets/autoload/snippets.el @@ -246,7 +246,7 @@ If the snippet isn't in `+snippets-dir', it will be copied there (where it will shadow the default snippet)." (interactive (list - (+snippet--completing-read-uuid "Select snippet to alias: " + (+snippet--completing-read-uuid "Select snippet to edit: " current-prefix-arg))) (if-let* ((major-mode (if (eq major-mode 'snippet-mode) (intern (file-name-base (directory-file-name default-directory))) diff --git a/modules/editor/snippets/packages.el b/modules/editor/snippets/packages.el index 3b9129897..8d9719a05 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 "33eb93ba6a6f307ceb89e4e80554a1db328c3e26") + :pin "aa5587b8c9863fcbb34e21d518ce1947ba4aeb22") diff --git a/modules/editor/word-wrap/packages.el b/modules/editor/word-wrap/packages.el index 77566a374..beac10654 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 "8f60ee70d6eadb0ddae206a0310505195e7ba0d8") +(package! adaptive-wrap :pin "91e939b48a8129f696f45a7a3963fe09cbfa3a2d") diff --git a/modules/emacs/dired/packages.el b/modules/emacs/dired/packages.el index e99d35c85..f05cee317 100644 --- a/modules/emacs/dired/packages.el +++ b/modules/emacs/dired/packages.el @@ -3,10 +3,10 @@ (package! diredfl :pin "cd052dfef602fe79d8dfbcf9f06e6da74412218b") (package! dired-git-info :pin "b47f2b0c3a6cb9b7a62a4ee2605a492e512d40a9") -(package! diff-hl :pin "2281a89a3ddc6616073da6f190dda08d23b18ba6") -(package! dired-rsync :pin "bfd5c155be1cb6b71c83e5f41116c81b6532b6d5") +(package! diff-hl :pin "4c46b3b9851c85d15bff1e3ec92e5fc6043322bc") +(package! dired-rsync :pin "fb0f161ac3cce1b224f52547f5bc7e1dcd283191") (when (featurep! +ranger) - (package! ranger :pin "caf75f0060e503af078c7e5bb50d9aaa508e6f3e")) + (package! ranger :pin "2498519cb21dcd5791d240607a72a204d1761668")) (when (featurep! +icons) (package! all-the-icons-dired :pin "fc2dfa1e9eb8bf1c402a675e7089638d702a27a5")) -(package! fd-dired :pin "5622041068d5fa2f299dbc8aa91fece0ba260086") +(package! fd-dired :pin "9fb966df33e7dde9360b8707f7a0197694f46abd") diff --git a/modules/emacs/undo/packages.el b/modules/emacs/undo/packages.el index 5e96269c0..3d60d0526 100644 --- a/modules/emacs/undo/packages.el +++ b/modules/emacs/undo/packages.el @@ -2,6 +2,6 @@ ;;; emacs/undo/packages.el (if (featurep! +tree) - (package! undo-tree :pin "7523823ca3709e0327f3e9f38ddfec71a58084be") - (package! undo-fu :pin "c0806c1903c5a0e4c69b6615cdc3366470a9b8ca") - (package! undo-fu-session :pin "56cdd3538a058c6916bdf2d9010c2179f2505829")) + (package! undo-tree :pin "e326c6135e62f5fe8536528d3acd5e798f847407") + (package! undo-fu :pin "f4db4c9b9875134df6f5279281099361ae11c2e9") + (package! undo-fu-session :pin "a0389147365c10c974ad68b797b185affb935fe3")) diff --git a/modules/emacs/vc/packages.el b/modules/emacs/vc/packages.el index 7bab0e188..8e8c91706 100644 --- a/modules/emacs/vc/packages.el +++ b/modules/emacs/vc/packages.el @@ -6,7 +6,7 @@ (package! smerge-mode :built-in t) (package! browse-at-remote :pin "fadf99d6d8e891f3b112e36c772e0eea0b9bc7f2") -(package! git-commit :pin "acfe22ab60a56c61aae3ca6d4f2b7b826fe3b071") +(package! git-commit :pin "c3505b6934b8d5133d1bdb7e3d6ace147532ccc1") (package! git-timemachine :pin "8d675750e921a047707fcdc36d84f8439b19a907") -(package! gitconfig-mode :pin "55468314a5f6b77d2c96be62c7005ac94545e217") -(package! gitignore-mode :pin "55468314a5f6b77d2c96be62c7005ac94545e217") +(package! gitconfig-mode :pin "14adca24eb6b0b4e311ad144c5d41972c6b044b2") +(package! gitignore-mode :pin "14adca24eb6b0b4e311ad144c5d41972c6b044b2") diff --git a/modules/lang/clojure/config.el b/modules/lang/clojure/config.el index f8e9bdb9a..b705f4099 100644 --- a/modules/lang/clojure/config.el +++ b/modules/lang/clojure/config.el @@ -86,6 +86,14 @@ (with-current-buffer nrepl-server-buffer (buffer-string))))))) + ;; When in cider-debug-mode, override evil keys to not interfere with debug keys + (after! evil + (add-hook! cider--debug-mode + (defun +clojure--cider-setup-debug () + "Setup cider debug to override evil keys cleanly" + (evil-make-overriding-map cider--debug-mode-map 'normal) + (evil-normalize-keymaps)))) + ;; The CIDER welcome message obscures error messages that the above code is ;; supposed to be make visible. (setq cider-repl-display-help-banner nil) @@ -98,6 +106,8 @@ "C" #'cider-connect-cljs "m" #'cider-macroexpand-1 "M" #'cider-macroexpand-all + (:prefix ("d" . "debug") + "d" #'cider-debug-defun-at-point) (:prefix ("e" . "eval") "b" #'cider-eval-buffer "d" #'cider-eval-defun-at-point diff --git a/modules/lang/common-lisp/packages.el b/modules/lang/common-lisp/packages.el index c2985dbef..14e2904f2 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 "68561f1b7b66fa0240766ece836bb04da31ea17d") +(when (package! sly :pin "3278819ddf71d16444e6cea293dd41ca83ea9bae") (package! sly-macrostep :pin "5113e4e926cd752b1d0bcc1508b3ebad5def5fad") (package! sly-repl-ansi-color :pin "b9cd52d1cf927bf7e08582d46ab0bcf1d4fb5048")) diff --git a/modules/lang/csharp/config.el b/modules/lang/csharp/config.el index 49cbac243..b8b30e880 100644 --- a/modules/lang/csharp/config.el +++ b/modules/lang/csharp/config.el @@ -98,3 +98,5 @@ or terminating simple string." :when (featurep! +dotnet) :bind ("C-c d" . sharper-main-transient)) + +(use-package! sln-mode :mode "\\.sln\\'") diff --git a/modules/lang/csharp/packages.el b/modules/lang/csharp/packages.el index 4e735c9d7..bb9f0c3b7 100644 --- a/modules/lang/csharp/packages.el +++ b/modules/lang/csharp/packages.el @@ -3,6 +3,7 @@ (package! csharp-mode :pin "49168293a28aaaf84b9655fe1b2abe402c5e2ee1") (package! csproj-mode :pin "a7f0f4610c976a28c41b9b8299892f88b5d0336c") +(package! sln-mode :pin "0f91d1b957c7d2a7bab9278ec57b54d57f1dbd9c") (unless (featurep! +lsp) (package! omnisharp :pin "e26ff8b8d34a247cd4a93be5d62a5f21859b7b57")) (when (featurep! +unity) diff --git a/modules/lang/emacs-lisp/demos.org b/modules/lang/emacs-lisp/demos.org index 9ab9ba7a2..21739c42d 100644 --- a/modules/lang/emacs-lisp/demos.org +++ b/modules/lang/emacs-lisp/demos.org @@ -137,10 +137,8 @@ usage from their documentation (e.g. =SPC h f add-hook\!=). `(,red-bg-faces :background "red" :weight bold))) -;; If you want to make use of the `doom-themes' package API (e.g. `doom-color', -;; `doom-lighten', `doom-darken', etc.), you must use `custom-set-faces!' -;; *after* the theme has been loaded. e.g. -(load-theme 'doom-one t) +;; You may utilise `doom-themes's theme API to fetch or tweak colors from their +;; palettes. No need to wait until the theme or package is loaded. e.g. (custom-set-faces! `(outline-1 :foreground ,(doom-color 'red)) `(outline-2 :background ,(doom-color 'blue))) @@ -171,10 +169,8 @@ usage from their documentation (e.g. =SPC h f add-hook\!=). `(,red-bg-faces :background "red" :weight bold))) -;; If you want to make use of the `doom-themes' package API (e.g. `doom-color', -;; `doom-lighten', `doom-darken', etc.), you must use `custom-set-faces!' -;; *after* the theme has been loaded. e.g. -(load-theme 'doom-one t) +;; You may utilise `doom-themes's theme API to fetch or tweak colors from their +;; palettes. No need to wait until the theme or package is loaded. e.g. (custom-theme-set-faces! 'doom-one `(outline-1 :foreground ,(doom-color 'red)) `(outline-2 :background ,(doom-color 'blue))) diff --git a/modules/lang/gdscript/config.el b/modules/lang/gdscript/config.el index 3471d4c01..8a6c4e5c8 100644 --- a/modules/lang/gdscript/config.el +++ b/modules/lang/gdscript/config.el @@ -20,15 +20,23 @@ :map gdscript-mode-map (:prefix ("r" . "run") - "e" #'gdscript-godot-open-project-in-editor - "p" #'gdscript-godot-run-project - "d" #'gdscript-godot-run-project-debug - "s" #'gdscript-godot-run-current-scene) + :desc "Open project in Godot" "e" #'gdscript-godot-open-project-in-editor + :desc "Run project" "p" #'gdscript-godot-run-project + :desc "Run debug" "d" #'gdscript-godot-run-project-debug + :desc "Run current scene" "s" #'gdscript-godot-run-current-scene) + + (:prefix ("d" . "debug") + :desc "Add breakpoint" "a" #'gdscript-debug-add-breakpoint + :desc "Display breakpoint buffer" "b" #'gdscript-debug-display-breakpoint-buffer + :desc "Remove breakpoint" "d" #'gdscript-debug-remove-breakpoint + :desc "Continue execution" "c" #'gdscript-debug-continue + :desc "Next" "n" #'gdscript-debug-next + :desc "Step" "s" #'gdscript-debug-step) (:prefix ("h" . "help") - "b" #'gdscript-docs-browse-api - "f" #'gdscript-docs-browse-symbol-at-point) + :desc "Browse online API" "b" #'gdscript-docs-browse-api + :desc "Browse API at point" "f" #'gdscript-docs-browse-symbol-at-point) (:prefix ("f" . "format") - "b" #'gdscript-format-buffer - "r" #'gdscript-format-region))) + :desc "Format buffer" "b" #'gdscript-format-buffer + :desc "Format region" "r" #'gdscript-format-region))) diff --git a/modules/lang/latex/autoload.el b/modules/lang/latex/autoload.el index 99567c103..ff2894047 100644 --- a/modules/lang/latex/autoload.el +++ b/modules/lang/latex/autoload.el @@ -17,7 +17,7 @@ function uses." (when (looking-at (concat re-beg re-env "}")) (end-of-line)) (LaTeX-find-matching-begin) - (current-column))) + (+ LaTeX-item-indent (current-column)))) (contin (pcase +latex-indent-item-continuation-offset (`auto LaTeX-indent-level) (`align 6) @@ -29,13 +29,18 @@ function uses." (ignore-errors (LaTeX-find-matching-begin) (+ (current-column) + LaTeX-item-indent LaTeX-indent-level (if (looking-at (concat re-beg re-env "}")) contin 0)))) indent)) ((looking-at (concat re-end re-env "}")) - indent) + (save-excursion + (beginning-of-line) + (ignore-errors + (LaTeX-find-matching-begin) + (current-column)))) ((looking-at "\\\\item") (+ LaTeX-indent-level indent)) ((+ contin LaTeX-indent-level indent)))))) diff --git a/modules/lang/latex/packages.el b/modules/lang/latex/packages.el index 7f281a7e1..a36c8e171 100644 --- a/modules/lang/latex/packages.el +++ b/modules/lang/latex/packages.el @@ -2,7 +2,7 @@ ;;; lang/latex/packages.el (package! auctex :pin "fb062a364fbc7d791707ff574b0f0a7f4c7a7269") -(package! adaptive-wrap :pin "8f60ee70d6eadb0ddae206a0310505195e7ba0d8") +(package! adaptive-wrap :pin "91e939b48a8129f696f45a7a3963fe09cbfa3a2d") (package! latex-preview-pane :pin "5297668a89996b50b2b62f99cba01cc544dbed2e") (when (featurep! :editor evil +everywhere) (package! evil-tex :pin "ac313efb22d621c093d8d30233bd7dc8b4cc54b4")) diff --git a/modules/lang/org/config.el b/modules/lang/org/config.el index 0f0a6063d..ba2d140ed 100644 --- a/modules/lang/org/config.el +++ b/modules/lang/org/config.el @@ -67,7 +67,8 @@ Is relative to `org-directory', unless it is absolute. Is used in Doom's default (defun +org-init-org-directory-h () (unless org-directory (setq-default org-directory "~/org")) - (setq org-id-locations-file (expand-file-name ".orgids" org-directory))) + (unless org-id-locations-file + (setq org-id-locations-file (expand-file-name ".orgids" org-directory)))) (defun +org-init-agenda-h () @@ -117,7 +118,11 @@ Is relative to `org-directory', unless it is absolute. Is used in Doom's default (?C . success)) org-startup-indented t org-tags-column 0 - org-use-sub-superscripts '{}) + org-use-sub-superscripts '{} + ;; HACK Speed up regexp for priority faces by making it a little less + ;; greedy than the default. + ;; REVIEW May be upstreamed at some point. Keep an eye out. + org-priority-regexp "^\\*+.*\\(\\[#\\([A-Z0-9]+\\)\\] ?\\)") (setq org-refile-targets '((nil :maxlevel . 3) @@ -1047,6 +1052,7 @@ compelling reason, so..." ;; Set to nil so we can detect user changes to them later (and fall back on ;; defaults otherwise). (defvar org-directory nil) + (defvar org-id-locations-file nil) (defvar org-attach-id-dir nil) (setq org-publish-timestamp-directory (concat doom-cache-dir "org-timestamps/") diff --git a/modules/term/eshell/config.el b/modules/term/eshell/config.el index d1e52b065..b9fa44350 100644 --- a/modules/term/eshell/config.el +++ b/modules/term/eshell/config.el @@ -144,6 +144,8 @@ You should use `set-eshell-alias!' to change this.") [remap evil-delete-back-to-indentation] #'eshell-kill-input [remap evil-window-split] #'+eshell/split-below [remap evil-window-vsplit] #'+eshell/split-right + ;; To emulate terminal keybinds + "C-l" #'eshell/clear (:localleader "b" #'eshell-insert-buffer-name "e" #'eshell-insert-envvar diff --git a/modules/term/eshell/packages.el b/modules/term/eshell/packages.el index 2d17fac02..74361ac3a 100644 --- a/modules/term/eshell/packages.el +++ b/modules/term/eshell/packages.el @@ -6,7 +6,7 @@ (package! shrink-path :pin "c14882c8599aec79a6e8ef2d06454254bb3e1e41") (package! esh-help :pin "417673ed18a983930a66a6692dbfb288a995cb80") (package! eshell-did-you-mean :pin "7cb6ef8e2274d0a50a9e114d412307a6543533d5") -(package! eshell-syntax-highlighting :pin "6cc32ee59d79d965e40269c764d90aa898252f0a") +(package! eshell-syntax-highlighting :pin "172c9fb80ba2bee37fbb067a69583a6428dcc0a4") (unless IS-WINDOWS (when (featurep! :completion company) diff --git a/modules/term/vterm/packages.el b/modules/term/vterm/packages.el index 5cd91f5f8..e8de85835 100644 --- a/modules/term/vterm/packages.el +++ b/modules/term/vterm/packages.el @@ -3,4 +3,4 @@ (package! vterm :built-in 'prefer - :pin "fb12d7f49e2da121d9b17ed583d269166e0da087") + :pin "a3fadd28370aa43f03d4f7b197be8fa074f311f5") diff --git a/modules/tools/biblio/packages.el b/modules/tools/biblio/packages.el index 7861658a9..dd0825fe1 100644 --- a/modules/tools/biblio/packages.el +++ b/modules/tools/biblio/packages.el @@ -1,8 +1,8 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/biblio/packages.el -(package! bibtex-completion :pin "1bb81d77e08296a50de7ebfe5cf5b0c715b7f3d6") +(package! bibtex-completion :pin "94807a3d3419f90b505eddc3272e244475eeb4f2") (when (featurep! :completion ivy) - (package! ivy-bibtex :pin "1bb81d77e08296a50de7ebfe5cf5b0c715b7f3d6")) + (package! ivy-bibtex :pin "94807a3d3419f90b505eddc3272e244475eeb4f2")) (when (featurep! :completion helm) - (package! helm-bibtex :pin "1bb81d77e08296a50de7ebfe5cf5b0c715b7f3d6")) + (package! helm-bibtex :pin "94807a3d3419f90b505eddc3272e244475eeb4f2")) diff --git a/modules/tools/debugger/packages.el b/modules/tools/debugger/packages.el index 5238e94b2..a094b000c 100644 --- a/modules/tools/debugger/packages.el +++ b/modules/tools/debugger/packages.el @@ -6,5 +6,5 @@ (package! realgud-trepan-ni :pin "6e38cf838c7b47b5f1353d00901b939ffa36d707"))) (when (featurep! +lsp) - (package! dap-mode :pin "c52c1a530dab420b24640a4b4710cf1e6a0177e0") - (package! posframe :pin "8097276022676f73fc14d5311cba94aa9b3ac444")) + (package! dap-mode :pin "5450af5c1cc7c46b1ecd47e9ba1ec2de9f62f9d9") + (package! posframe :pin "3454a4cb9d218c38f9c5b88798dfb2f7f85ad936")) diff --git a/modules/tools/direnv/packages.el b/modules/tools/direnv/packages.el index bfd0e6b57..506a9aef5 100644 --- a/modules/tools/direnv/packages.el +++ b/modules/tools/direnv/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/direnv/packages.el -(package! envrc :pin "18caf5154f61d7f78cd4719d999e0fa6ef52345f") +(package! envrc :pin "a7c6ca84a2b0617c94594a23a0c05246f14fa4ee") diff --git a/modules/tools/docker/packages.el b/modules/tools/docker/packages.el index f3b149df6..5c33134e7 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 "3773112eea3fc99704b5ca50c1e9a3db2cb8e4f3") +(package! docker :pin "0ca910badf86ff2e2dbfdf3f18819dd72a3198fc") (package! docker-tramp :pin "8e2b671eff7a81af43b76d9dfcf94ddaa8333a23") -(package! dockerfile-mode :pin "6a56c1cc1713b501040b08fdbf0c4159a4fe95f9") +(package! dockerfile-mode :pin "58b7380189de21496235382900838aa0db2dcf92") diff --git a/modules/tools/editorconfig/packages.el b/modules/tools/editorconfig/packages.el index 517eb50d7..f231b02a9 100644 --- a/modules/tools/editorconfig/packages.el +++ b/modules/tools/editorconfig/packages.el @@ -3,4 +3,4 @@ (package! editorconfig :recipe (:nonrecursive t) - :pin "d73333c224de783e42acd225a20330a667fe5191") + :pin "f830b86316338fcc5b26a07eaeab6c34104b9ddc") diff --git a/modules/tools/ein/packages.el b/modules/tools/ein/packages.el index b9fe836f8..1422c8ee6 100644 --- a/modules/tools/ein/packages.el +++ b/modules/tools/ein/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/ein/packages.el -(package! ein :pin "917f2a0b6ca76ed9e966985ca6f19d8b57690d40") +(package! ein :pin "069e54cc1270ff4957699e5e9481b56b7b4bef8b") diff --git a/modules/tools/gist/config.el b/modules/tools/gist/config.el index d86131b2f..4430ab029 100644 --- a/modules/tools/gist/config.el +++ b/modules/tools/gist/config.el @@ -16,6 +16,9 @@ (pop-to-buffer (current-buffer)))) (map! :map gist-list-menu-mode-map + :n "RET" #'gist-fetch-current + :n "TAB" #'gist-fetch-current + :n [tab] #'gist-fetch-current-noselect :n "go" #'gist-browse-current-url :n "gr" #'gist-list-reload :n "c" #'gist-add-buffer diff --git a/modules/tools/lsp/packages.el b/modules/tools/lsp/packages.el index 7d6907eca..d8a2c5a53 100644 --- a/modules/tools/lsp/packages.el +++ b/modules/tools/lsp/packages.el @@ -4,8 +4,8 @@ (if (featurep! +eglot) (progn (package! eglot :pin "398b81eeec44b35b39480a38f1b1357bc8550a1c") - (package! project :pin "f743ca2e5c3343c71b85040aac6a94f1b123f832")) - (package! lsp-mode :pin "62cd1b2e569c72638ba4bd42a0290192c224c28d") + (package! project :pin "2e7afbe7d0c67c13f86c908ae13f2694308d6ab8")) + (package! lsp-mode :pin "3ca25e61b419c4419a345d43594338b8f2ff295e") (package! lsp-ui :pin "732992aa41bb78b7341e28c980817de488b7a317") (when (featurep! :completion ivy) (package! lsp-ivy :pin "c70ee8b54357c56d1b972393ee53e57a2e545fbb")) diff --git a/modules/tools/magit/autoload.el b/modules/tools/magit/autoload.el index 91fd5fd84..f18ffad11 100644 --- a/modules/tools/magit/autoload.el +++ b/modules/tools/magit/autoload.el @@ -103,7 +103,7 @@ window that already exists in that direction. It will split otherwise." (when (bound-and-true-p vc-mode) (vc-refresh-state) (force-mode-line-update)) - (revert-buffer t t))))) + (revert-buffer t t t))))) ;;;###autoload (defun +magit-mark-stale-buffers-h () diff --git a/modules/tools/magit/packages.el b/modules/tools/magit/packages.el index 528716738..309540dea 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 "21454777281247d97814ce5fb64f4afe39fab5da") +(when (package! magit :pin "62dfe5a9dde309b562871ef93fde3d8fb37a5870") (when (featurep! +forge) - (package! forge :pin "e340c2be2aa5337c8c4c81cd6eab87961c6848b6")) + (package! forge :pin "8683b148d3ce1413aeb4b6dde1b6f55610b5aaf5")) (package! magit-gitflow :pin "cc41b561ec6eea947fe9a176349fb4f771ed865b") (package! magit-todos :pin "78d24cf419138b543460f40509c8c1a168b52ca0") - (package! github-review :pin "db723740e02348c0760407e532ad667ef89210ec")) + (package! github-review :pin "d0c8234cf523818513f892f30153210606abb6be")) diff --git a/modules/tools/pass/packages.el b/modules/tools/pass/packages.el index 52b809493..9c7166dc9 100644 --- a/modules/tools/pass/packages.el +++ b/modules/tools/pass/packages.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/pass/packages.el -(package! pass :pin "a095d24cf06a7b0fbc3add480c101304a91cf788") +(package! pass :pin "5651da53137db9adcb125b4897c2fe27eeb4368d") (package! password-store :pin "f152064da9832d6d3d2b4e75f43f63bf2d50716f") (package! password-store-otp :pin "04998c8578a060ab4a4e8f46f2ee0aafad4ab4d5") @@ -9,7 +9,7 @@ ;; 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 "aa7f17116ec3f760eb414d655ba20016b11a4a0e") + :pin "468bba286fc20d739ed7724ec884357907ac8bda") (when (featurep! :completion ivy) (package! ivy-pass :pin "5b523de1151f2109fdd6a8114d0af12eef83d3c5")) diff --git a/modules/tools/prodigy/packages.el b/modules/tools/prodigy/packages.el index 57dc56a4f..451f77c79 100644 --- a/modules/tools/prodigy/packages.el +++ b/modules/tools/prodigy/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; tools/prodigy/packages.el -(package! prodigy :pin "6ae71f27b09b172f03fb55b9eeef001206baacd3") +(package! prodigy :pin "168f5ace1671876d8c3bd350c0853bd0196bddda") diff --git a/modules/ui/doom-dashboard/config.el b/modules/ui/doom-dashboard/config.el index 8de62e8ad..a9a5a3332 100644 --- a/modules/ui/doom-dashboard/config.el +++ b/modules/ui/doom-dashboard/config.el @@ -118,9 +118,7 @@ PLIST can have the following properties: +doom-dashboard-banner-dir))) (when (equal (buffer-name) "*scratch*") (set-window-buffer nil (doom-fallback-buffer)) - (if (daemonp) - (add-hook 'after-make-frame-functions #'+doom-dashboard-reload-frame-h) - (+doom-dashboard-reload))) + (+doom-dashboard-reload)) ;; Ensure the dashboard is up-to-date whenever it is switched to or resized. (add-hook 'window-configuration-change-hook #'+doom-dashboard-resize-h) (add-hook 'window-size-change-functions #'+doom-dashboard-resize-h) diff --git a/modules/ui/doom/packages.el b/modules/ui/doom/packages.el index 55f1342c3..f1abd34b6 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 "5adcc29eeccb251937fe002594bc21ce08ae5317") +(package! doom-themes :pin "73837f59d24f2e490fb6a2c83b1088967c709b97") (package! solaire-mode :pin "c697925f7e03819a4046a233f6ab31664aca9d6a") diff --git a/modules/ui/hl-todo/packages.el b/modules/ui/hl-todo/packages.el index d4477f408..b547f0bfa 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 "9661a462d86b22293caaa4c3d94f971a15dbf1d5") +(package! hl-todo :pin "4d18ccde596aef84ef278aa60144390ab41f0046") diff --git a/modules/ui/modeline/packages.el b/modules/ui/modeline/packages.el index 572d70df5..7752013ad 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 "4956606a5455a3968ca10cbdb8de3889e6bd1d85")) + (package! doom-modeline :pin "116c733fd580f729e275d3b6b3954667d5dfdd5a")) (package! anzu :pin "bdb3da5028935a4aea55c40769bc191a81afb54e") (when (featurep! :editor evil) (package! evil-anzu :pin "d3f6ed4773b48767bd5f4708c7f083336a8a8a86")) diff --git a/modules/ui/tabs/packages.el b/modules/ui/tabs/packages.el index d2a843ed9..845a47cca 100644 --- a/modules/ui/tabs/packages.el +++ b/modules/ui/tabs/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; ui/tabs/packages.el -(package! centaur-tabs :pin "23eda0a0292a84c7e0a0aa2b598f9e29c7e5b54f") +(package! centaur-tabs :pin "50fd573ce9ed9f914940c79c82e411511ca5c8a8") diff --git a/modules/ui/treemacs/packages.el b/modules/ui/treemacs/packages.el index 13a083411..f60d93026 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 "559fa09e32d5db7f620fdd08e03b938e67bf398b") +(package! treemacs :pin "332d4e0f1f606c472dd083c9cdd4f143ee23020a") ;; These packages have no :pin because they're in the same repo (when (featurep! :editor evil +everywhere) (package! treemacs-evil)) diff --git a/modules/ui/zen/packages.el b/modules/ui/zen/packages.el index b5440b28d..e937ba3a0 100644 --- a/modules/ui/zen/packages.el +++ b/modules/ui/zen/packages.el @@ -2,4 +2,4 @@ ;;; ui/zen/packages.el (package! writeroom-mode :pin "b648b340172ce4e44307375697e190bc723203e0") -(package! mixed-pitch :pin "beb22e85f6073a930f7338a78bd186e3090abdd7") +(package! mixed-pitch :pin "d5f64b967d831ea776f07aa2c80cc5fa88a3e869")