dev: merge branch 'master'
This commit is contained in:
commit
9e65bee47e
16 changed files with 97 additions and 45 deletions
|
@ -2,7 +2,12 @@
|
||||||
;;; Commentary:
|
;;; Commentary:
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
(defvar doom-detect-indentation-excluded-modes '(pascal-mode so-long-mode)
|
(defvar doom-detect-indentation-excluded-modes
|
||||||
|
'(pascal-mode
|
||||||
|
so-long-mode
|
||||||
|
;; Automatic indent detection in org files is meaningless. Not to mention, a
|
||||||
|
;; non-standard `tab-width' causes an error in org-mode.
|
||||||
|
org-mode)
|
||||||
"A list of major modes where indentation shouldn't be auto-detected.")
|
"A list of major modes where indentation shouldn't be auto-detected.")
|
||||||
|
|
||||||
(defvar-local doom-inhibit-indent-detection nil
|
(defvar-local doom-inhibit-indent-detection nil
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
;;; Custom error types
|
;;; Custom error types
|
||||||
(define-error 'doom-error "An unexpected Doom error")
|
(define-error 'doom-error "An unexpected Doom error")
|
||||||
|
(define-error 'doom-font-error "Could not find a font on your system" 'doom-error)
|
||||||
(define-error 'doom-nosync-error "Doom hasn't been initialized yet; did you remember to run 'doom sync' in the shell?" 'doom-error)
|
(define-error 'doom-nosync-error "Doom hasn't been initialized yet; did you remember to run 'doom sync' in the shell?" 'doom-error)
|
||||||
(define-error 'doom-core-error "Unexpected error in Doom's core" 'doom-error)
|
(define-error 'doom-core-error "Unexpected error in Doom's core" 'doom-error)
|
||||||
(define-error 'doom-hook-error "Error in a Doom startup hook" 'doom-error)
|
(define-error 'doom-hook-error "Error in a Doom startup hook" 'doom-error)
|
||||||
|
|
|
@ -210,10 +210,7 @@ windows, switch to `doom-fallback-buffer'. Otherwise, delegate to original
|
||||||
`kill-current-buffer'."
|
`kill-current-buffer'."
|
||||||
:before-until #'kill-current-buffer
|
:before-until #'kill-current-buffer
|
||||||
(let ((buf (current-buffer)))
|
(let ((buf (current-buffer)))
|
||||||
(cond ((window-dedicated-p)
|
(cond ((eq buf (doom-fallback-buffer))
|
||||||
(delete-window)
|
|
||||||
t)
|
|
||||||
((eq buf (doom-fallback-buffer))
|
|
||||||
(message "Can't kill the fallback buffer.")
|
(message "Can't kill the fallback buffer.")
|
||||||
t)
|
t)
|
||||||
((doom-real-buffer-p buf)
|
((doom-real-buffer-p buf)
|
||||||
|
|
|
@ -14,6 +14,10 @@
|
||||||
;; buffers anyway.
|
;; buffers anyway.
|
||||||
(setq-hook! 'emacs-everywhere-init-hooks doom-inhibit-local-var-hooks t)
|
(setq-hook! 'emacs-everywhere-init-hooks doom-inhibit-local-var-hooks t)
|
||||||
|
|
||||||
|
;; REVIEW: Fixes tecosaur/emacs-everywhere#75. Remove when dealt with
|
||||||
|
;; upstream.
|
||||||
|
(define-key emacs-everywhere-mode-map "\C-c\C-c" #'emacs-everywhere-finish)
|
||||||
|
|
||||||
(after! doom-modeline
|
(after! doom-modeline
|
||||||
(doom-modeline-def-segment emacs-everywhere
|
(doom-modeline-def-segment emacs-everywhere
|
||||||
(concat
|
(concat
|
||||||
|
|
|
@ -2,7 +2,9 @@
|
||||||
;;; checkers/spell/packages.el
|
;;; checkers/spell/packages.el
|
||||||
|
|
||||||
(if (not (modulep! +flyspell))
|
(if (not (modulep! +flyspell))
|
||||||
(package! spell-fu :pin "e4031935803c66eca2f076dce72b0a6a770d026c")
|
(package! spell-fu
|
||||||
|
:recipe (:host github :repo "emacsmirror/spell-fu")
|
||||||
|
:pin "e4031935803c66eca2f076dce72b0a6a770d026c")
|
||||||
(package! flyspell-correct :pin "1e7a5a56362dd875dddf848b9a9e25d1395b9d37")
|
(package! flyspell-correct :pin "1e7a5a56362dd875dddf848b9a9e25d1395b9d37")
|
||||||
(cond ((modulep! :completion ivy)
|
(cond ((modulep! :completion ivy)
|
||||||
(package! flyspell-correct-ivy))
|
(package! flyspell-correct-ivy))
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
;;; checkers/syntax/packages.el
|
;;; checkers/syntax/packages.el
|
||||||
|
|
||||||
(unless (modulep! +flymake)
|
(unless (modulep! +flymake)
|
||||||
(package! flycheck :pin "e56e30d8c66ffc9776d07740658d3b542c1a8e21")
|
(package! flycheck :pin "02148c6ce7edb0fd0986460db327cc9463939747")
|
||||||
(package! flycheck-popup-tip :pin "ef86aad907f27ca076859d8d9416f4f7727619c6")
|
(package! flycheck-popup-tip :pin "ef86aad907f27ca076859d8d9416f4f7727619c6")
|
||||||
(when (modulep! +childframe)
|
(when (modulep! +childframe)
|
||||||
(package! flycheck-posframe :pin "19896b922c76a0f460bf3fe8d8ebc2f9ac9028d8")))
|
(package! flycheck-posframe :pin "19896b922c76a0f460bf3fe8d8ebc2f9ac9028d8")))
|
||||||
|
|
|
@ -304,7 +304,8 @@ orderless."
|
||||||
(:when (modulep! :tools magit)
|
(:when (modulep! :tools magit)
|
||||||
:desc "Open magit-status of target" "g" #'+vertico/embark-magit-status)
|
:desc "Open magit-status of target" "g" #'+vertico/embark-magit-status)
|
||||||
(:when (modulep! :ui workspaces)
|
(:when (modulep! :ui workspaces)
|
||||||
:desc "Open in new workspace" "TAB" #'+vertico/embark-open-in-new-workspace))))
|
:desc "Open in new workspace" "TAB" #'+vertico/embark-open-in-new-workspace
|
||||||
|
:desc "Open in new workspace" "<tab>" #'+vertico/embark-open-in-new-workspace))))
|
||||||
|
|
||||||
|
|
||||||
(use-package! marginalia
|
(use-package! marginalia
|
||||||
|
@ -340,3 +341,43 @@ orderless."
|
||||||
:hook (vertico-mode . vertico-posframe-mode)
|
:hook (vertico-mode . vertico-posframe-mode)
|
||||||
:config
|
:config
|
||||||
(add-hook 'doom-after-reload-hook #'posframe-delete-all))
|
(add-hook 'doom-after-reload-hook #'posframe-delete-all))
|
||||||
|
|
||||||
|
;; From https://github.com/minad/vertico/wiki#candidate-display-transformations-custom-candidate-highlighting
|
||||||
|
;;
|
||||||
|
;; Uses `add-face-text-property' instead of `propertize' unlike the above snippet
|
||||||
|
;; because `'append' is necessary to not override the match font lock
|
||||||
|
;; See: https://github.com/minad/vertico/issues/389
|
||||||
|
(use-package! vertico-multiform
|
||||||
|
:hook (vertico-mode . vertico-multiform-mode)
|
||||||
|
:config
|
||||||
|
(defvar +vertico-transform-functions nil)
|
||||||
|
|
||||||
|
(cl-defmethod vertico--format-candidate :around
|
||||||
|
(cand prefix suffix index start &context ((not +vertico-transform-functions) null))
|
||||||
|
(dolist (fun (ensure-list +vertico-transform-functions))
|
||||||
|
(setq cand (funcall fun cand)))
|
||||||
|
(cl-call-next-method cand prefix suffix index start))
|
||||||
|
|
||||||
|
(defun +vertico-highlight-directory (file)
|
||||||
|
"If FILE ends with a slash, highlight it as a directory."
|
||||||
|
(when (string-suffix-p "/" file)
|
||||||
|
(add-face-text-property 0 (length file) 'marginalia-file-priv-dir 'append file))
|
||||||
|
file)
|
||||||
|
|
||||||
|
(defun +vertico-highlight-enabled-mode (cmd)
|
||||||
|
"If MODE is enabled, highlight it as font-lock-constant-face."
|
||||||
|
(let ((sym (intern cmd)))
|
||||||
|
(with-current-buffer (nth 1 (buffer-list))
|
||||||
|
(if (or (eq sym major-mode)
|
||||||
|
(and
|
||||||
|
(memq sym minor-mode-list)
|
||||||
|
(boundp sym)))
|
||||||
|
(add-face-text-property 0 (length cmd) 'font-lock-constant-face 'append cmd)))
|
||||||
|
cmd))
|
||||||
|
|
||||||
|
(add-to-list 'vertico-multiform-categories
|
||||||
|
'(file
|
||||||
|
(+vertico-transform-functions . +vertico-highlight-directory)))
|
||||||
|
(add-to-list 'vertico-multiform-commands
|
||||||
|
'(execute-extended-command
|
||||||
|
(+vertico-transform-functions . +vertico-highlight-enabled-mode))))
|
||||||
|
|
|
@ -2,4 +2,6 @@
|
||||||
;;; editor/word-wrap/packages.el
|
;;; editor/word-wrap/packages.el
|
||||||
|
|
||||||
(package! adaptive-wrap :pin "70005d2012ab57c20be03c05aebd49318fe49c99")
|
(package! adaptive-wrap :pin "70005d2012ab57c20be03c05aebd49318fe49c99")
|
||||||
(package! visual-fill-column :pin "db7c7c236555c9c684e1294a277efefdc25fa5c4")
|
(package! visual-fill-column
|
||||||
|
:recipe (:host github :repo "emacsmirror/visual-fill-column")
|
||||||
|
:pin "5e74afe39d0afb911dae51af4e7a60ccdf9701f3")
|
||||||
|
|
|
@ -179,6 +179,7 @@ we have to clean it up ourselves."
|
||||||
dired-omit-files
|
dired-omit-files
|
||||||
(concat dired-omit-files
|
(concat dired-omit-files
|
||||||
"\\|^\\.DS_Store\\'"
|
"\\|^\\.DS_Store\\'"
|
||||||
|
"\\|^flycheck_.*"
|
||||||
"\\|^\\.project\\(?:ile\\)?\\'"
|
"\\|^\\.project\\(?:ile\\)?\\'"
|
||||||
"\\|^\\.\\(?:svn\\|git\\)\\'"
|
"\\|^\\.\\(?:svn\\|git\\)\\'"
|
||||||
"\\|^\\.ccls-cache\\'"
|
"\\|^\\.ccls-cache\\'"
|
||||||
|
|
|
@ -79,6 +79,7 @@
|
||||||
nrepl-log-messages nil
|
nrepl-log-messages nil
|
||||||
cider-font-lock-dynamically '(macro core function var deprecated)
|
cider-font-lock-dynamically '(macro core function var deprecated)
|
||||||
cider-overlays-use-font-lock t
|
cider-overlays-use-font-lock t
|
||||||
|
cider-print-options '(("length" 100))
|
||||||
cider-prompt-for-symbol nil
|
cider-prompt-for-symbol nil
|
||||||
cider-repl-history-display-duplicates nil
|
cider-repl-history-display-duplicates nil
|
||||||
cider-repl-history-display-style 'one-line
|
cider-repl-history-display-style 'one-line
|
||||||
|
@ -88,7 +89,6 @@
|
||||||
cider-repl-history-highlight-inserted-item t
|
cider-repl-history-highlight-inserted-item t
|
||||||
cider-repl-history-size 1000
|
cider-repl-history-size 1000
|
||||||
cider-repl-result-prefix ";; => "
|
cider-repl-result-prefix ";; => "
|
||||||
cider-repl-print-length 100
|
|
||||||
cider-repl-use-clojure-font-lock t
|
cider-repl-use-clojure-font-lock t
|
||||||
cider-repl-use-pretty-printing t
|
cider-repl-use-pretty-printing t
|
||||||
cider-repl-wrap-history nil
|
cider-repl-wrap-history nil
|
||||||
|
|
|
@ -4,8 +4,9 @@
|
||||||
(unless (executable-find "nix")
|
(unless (executable-find "nix")
|
||||||
(warn! "Couldn't find the nix package manager. nix-mode won't work."))
|
(warn! "Couldn't find the nix package manager. nix-mode won't work."))
|
||||||
|
|
||||||
(unless (executable-find "nixfmt")
|
(when (require 'nix-mode nil t)
|
||||||
(warn! "Couldn't find nixfmt. nix-format-buffer won't work."))
|
(unless (executable-find nix-nixfmt-bin)
|
||||||
|
(warn! (concat "Couldn't find " nix-nixfmt-bin ". nix-format-buffer won't work."))))
|
||||||
|
|
||||||
(assert! (or (not (modulep! +tree-sitter))
|
(assert! (or (not (modulep! +tree-sitter))
|
||||||
(modulep! :tools tree-sitter))
|
(modulep! :tools tree-sitter))
|
||||||
|
|
|
@ -181,9 +181,6 @@ Is relative to `org-directory', unless it is absolute. Is used in Doom's default
|
||||||
("NO" . +org-todo-cancel)
|
("NO" . +org-todo-cancel)
|
||||||
("KILL" . +org-todo-cancel)))
|
("KILL" . +org-todo-cancel)))
|
||||||
|
|
||||||
;; Automatic indent detection in org files is meaningless
|
|
||||||
(add-to-list 'doom-detect-indentation-excluded-modes 'org-mode)
|
|
||||||
|
|
||||||
(set-ligatures! 'org-mode
|
(set-ligatures! 'org-mode
|
||||||
:name "#+NAME:"
|
:name "#+NAME:"
|
||||||
:name "#+name:"
|
:name "#+name:"
|
||||||
|
@ -1438,6 +1435,11 @@ between the two."
|
||||||
:references #'+org-lookup-references-handler
|
:references #'+org-lookup-references-handler
|
||||||
:documentation #'+org-lookup-documentation-handler)
|
:documentation #'+org-lookup-documentation-handler)
|
||||||
|
|
||||||
|
;; HACK: Somehow, users/packages still find a way to modify tab-width in
|
||||||
|
;; org-mode. Since org-mode treats a non-standerd tab-width as an error
|
||||||
|
;; state, I use this hook to makes it much harder to change by accident.
|
||||||
|
(add-hook! 'org-mode-hook :depth 110 (setq-local tab-width 8))
|
||||||
|
|
||||||
;; Save target buffer after archiving a node.
|
;; Save target buffer after archiving a node.
|
||||||
(setq org-archive-subtree-save-file-p t)
|
(setq org-archive-subtree-save-file-p t)
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
;; -*- no-byte-compile: t; -*-
|
;; -*- no-byte-compile: t; -*-
|
||||||
;;; lang/rust/packages.el
|
;;; lang/rust/packages.el
|
||||||
|
|
||||||
(package! rust-mode :pin "f74dd1cd87987ea7faf0cfc6240c2284ef9133cb")
|
(package! rust-mode :pin "d8a09f218e24407acbc9f36c641be4f913f1a63c")
|
||||||
(package! rustic :pin "39423d1cf4fa054c36bf9577356451f4c06ee148")
|
(package! rustic :pin "39423d1cf4fa054c36bf9577356451f4c06ee148")
|
||||||
|
|
|
@ -3,9 +3,7 @@
|
||||||
;;
|
;;
|
||||||
;;; `org-cite'
|
;;; `org-cite'
|
||||||
|
|
||||||
(use-package! oc
|
(after! oc
|
||||||
:defer t
|
|
||||||
:config
|
|
||||||
(setq org-cite-global-bibliography
|
(setq org-cite-global-bibliography
|
||||||
(ensure-list
|
(ensure-list
|
||||||
(or (bound-and-true-p citar-bibliography)
|
(or (bound-and-true-p citar-bibliography)
|
||||||
|
@ -13,16 +11,30 @@
|
||||||
;; Setup export processor; default csl/citeproc-el, with biblatex for
|
;; Setup export processor; default csl/citeproc-el, with biblatex for
|
||||||
;; latex
|
;; latex
|
||||||
org-cite-export-processors '((latex biblatex) (t csl))
|
org-cite-export-processors '((latex biblatex) (t csl))
|
||||||
org-support-shift-select t))
|
org-support-shift-select t)
|
||||||
|
|
||||||
|
(require 'oc-biblatex))
|
||||||
|
|
||||||
|
;; oc-csl requires citeproc, which requires the top-level org, so loading oc-csl
|
||||||
|
;; after oc interferes with incremental loading of Org
|
||||||
|
(after! org (require 'oc-csl))
|
||||||
|
|
||||||
|
|
||||||
(use-package! citar
|
(use-package! citar
|
||||||
:when (modulep! :completion vertico)
|
:when (modulep! :completion vertico)
|
||||||
:no-require
|
:defer t
|
||||||
:config
|
:init
|
||||||
(setq org-cite-insert-processor 'citar
|
(setq org-cite-insert-processor 'citar
|
||||||
org-cite-follow-processor 'citar
|
org-cite-follow-processor 'citar
|
||||||
org-cite-activate-processor 'citar)
|
org-cite-activate-processor 'citar)
|
||||||
|
|
||||||
|
:config
|
||||||
|
(after! embark
|
||||||
|
(citar-embark-mode))
|
||||||
|
|
||||||
|
(after! org-roam
|
||||||
|
(citar-org-roam-mode))
|
||||||
|
|
||||||
(when (modulep! :completion vertico +icons)
|
(when (modulep! :completion vertico +icons)
|
||||||
(defvar citar-indicator-files-icons
|
(defvar citar-indicator-files-icons
|
||||||
(citar-indicator-create
|
(citar-indicator-create
|
||||||
|
@ -65,22 +77,6 @@
|
||||||
citar-indicator-notes-icons
|
citar-indicator-notes-icons
|
||||||
citar-indicator-cited-icons))))
|
citar-indicator-cited-icons))))
|
||||||
|
|
||||||
(use-package! citar-embark
|
|
||||||
:when (modulep! :completion vertico)
|
|
||||||
:after citar embark
|
|
||||||
:config (citar-embark-mode))
|
|
||||||
|
|
||||||
(use-package! citar-org-roam
|
|
||||||
:when (and (modulep! +roam2)
|
|
||||||
(modulep! :completion vertico))
|
|
||||||
:after citar org-roam
|
|
||||||
:config (citar-org-roam-mode))
|
|
||||||
|
|
||||||
;; `org-cite' processors
|
|
||||||
(use-package! oc-biblatex :after oc)
|
|
||||||
(use-package! oc-csl :after oc)
|
|
||||||
(use-package! oc-natbib :after oc)
|
|
||||||
|
|
||||||
|
|
||||||
;;
|
;;
|
||||||
;;; Third-party
|
;;; Third-party
|
||||||
|
|
|
@ -3,13 +3,13 @@
|
||||||
|
|
||||||
(if (modulep! +eglot)
|
(if (modulep! +eglot)
|
||||||
(progn
|
(progn
|
||||||
(package! eglot :pin "cd4e45b700b117d360aac24d749c3c4a4be3d2e2")
|
(package! eglot :pin "24f2bf7b28c33e1d677b547956ade5560d27f55f")
|
||||||
(when (modulep! :completion vertico)
|
(when (modulep! :completion vertico)
|
||||||
(package! consult-eglot :pin "049c6319b8a48ff66189d49592c7759f0b356596"))
|
(package! consult-eglot :pin "049c6319b8a48ff66189d49592c7759f0b356596"))
|
||||||
(when (and (modulep! :checkers syntax)
|
(when (and (modulep! :checkers syntax)
|
||||||
(not (modulep! :checkers syntax +flymake)))
|
(not (modulep! :checkers syntax +flymake)))
|
||||||
(package! flycheck-eglot :pin "9ff8d0068be59b1450964b390349d75a68af21ed")))
|
(package! flycheck-eglot :pin "114e1315aaf0dc3196da67da426bbe2b46384fe2")))
|
||||||
(package! lsp-mode :pin "fb88cc6b8bcad4df5dd1d4e5d785adc7663e5c76")
|
(package! lsp-mode :pin "a5f5ca9a8a4b2ceaf236457bf2524f94c183c2f2")
|
||||||
(package! lsp-ui :pin "bc58c6664577d1d79060c6b32b7ad20e70ee19d0")
|
(package! lsp-ui :pin "bc58c6664577d1d79060c6b32b7ad20e70ee19d0")
|
||||||
(when (modulep! :completion ivy)
|
(when (modulep! :completion ivy)
|
||||||
(package! lsp-ivy :pin "9ecf4dd9b1207109802bd1882aa621eb1c385106"))
|
(package! lsp-ivy :pin "9ecf4dd9b1207109802bd1882aa621eb1c385106"))
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
;; -*- no-byte-compile: t; -*-
|
;; -*- no-byte-compile: t; -*-
|
||||||
;;; tools/magit/packages.el
|
;;; tools/magit/packages.el
|
||||||
|
|
||||||
(when (package! magit :pin "b68e0a3c3388af8daac662f25ccfd3e980590e12")
|
(when (package! magit :pin "65ecb9c5fc7586a1c527b60d180a97ea230da99f")
|
||||||
(when (modulep! +forge)
|
(when (modulep! +forge)
|
||||||
(package! forge :pin "3fc6c362b0162082317c128c9c3226529f6965ae")
|
(package! forge :pin "03b48be2a12a282cd47b92287fc1701a81f1cece")
|
||||||
(package! code-review
|
(package! code-review
|
||||||
:recipe (:host github
|
:recipe (:host github
|
||||||
:repo "doomelpa/code-review"
|
:repo "doomelpa/code-review"
|
||||||
:files ("graphql" "code-review*.el"))
|
:files ("graphql" "code-review*.el"))
|
||||||
:pin "2670a4beb6636e6ee596c5b7cb5e784cf33d5a98"))
|
:pin "e4c34fa284da25d8e0bafbae4300f1db5bdcda44"))
|
||||||
(package! magit-todos :pin "debb77b3589f2d83c8b43706edc1f8f90bf1ad91"))
|
(package! magit-todos :pin "1e9acc0ba63fbc297001bf334d63cb4326be80df"))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue