This commit is contained in:
Zelong Kuang
2026-04-03 19:00:38 +11:00
parent c3b368711e
commit 2b6faa0e39
6 changed files with 127 additions and 90 deletions

View File

@@ -32,7 +32,7 @@
;; Optionally use the `orderless' completion style.
(use-package orderless
:custom
(completion-styles '(orderless basic))
(completion-styles '(orderless partial-completion basic))
(completion-category-defaults nil)
(completion-category-overrides '((file (styles orderless partial-completion))))
(orderless-component-separator #'orderless-escapable-split-on-space))
@@ -250,11 +250,11 @@
;;Quit completion before saving
(add-hook 'before-save-hook #'corfu-quit)
(advice-add #'persistent-scratch-save :before #'corfu-quit)
(add-to-list 'corfu-continue-commands #'corfu-move-to-minibuffer)
(add-to-list 'corfu-continue-commands #'corfu-move-to-minibuffer))
(use-package nerd-icons-corfu
:init
(add-to-list 'corfu-margin-formatters #'nerd-icons-corfu-formatter)))
(add-to-list 'corfu-margin-formatters #'nerd-icons-corfu-formatter))
;; A few more useful configurations...
(use-package emacs
@@ -294,10 +294,6 @@
;; (advice-add 'eglot-completion-at-point :around #'cape-wrap-nonexclusive)
(advice-add 'pcomplete-completions-at-point :around #'cape-wrap-nonexclusive))
;; (use-package yasnippet-capf
;; :after cape
;; :config
;; (add-to-list 'completion-at-point-functions #'yasnippet-capf))
(provide 'init-completion)

View File

@@ -21,11 +21,16 @@
(lsp-enable-which-key-integration)
;; (add-hook 'before-save-hook #'lsp-format-buffer t t)
(add-hook 'before-save-hook #'lsp-organize-imports t t))))
:hook (lsp-completion-mode . my/lsp-mode-setup-completion)
:bind (:map lsp-mode-map
("C-c c d" . lsp-describe-thing-at-point)
([remap xref-find-definitions] . lsp-find-definition)
([remap xref-find-references] . lsp-find-references))
:init (setq lsp-use-plists t
:init
(defun my/lsp-mode-setup-completion ()
(setf (alist-get 'styles (alist-get 'lsp-capf completion-category-defaults))
'(orderless)))
(setq lsp-use-plists t
lsp-log-io nil
lsp-enable-suggest-server-download t

View File

@@ -92,7 +92,10 @@
:hook (elpaca-after-init . meow-global-mode)
:config
(meow-setup)
(add-to-list 'meow-mode-state-list '((magit-mode . insert)))
(add-to-list 'meow-mode-state-list '(magit-mode . insert))
(add-to-list 'meow-mode-state-list '(eat-mode . insert))
(add-to-list 'meow-mode-state-list '(eshell-mode . insert))
(setq meow-keypad-leader-dispatch "C-c"
meow-use-clipboard t)
(setq meow-replace-state-name-list

View File

@@ -1,10 +1,5 @@
;; -*- lexical-binding: t -*-
;; (defun org-capture-init()
;; (setq org-capture-templates
;; '(("t" "Personal todo" entry ("Inbox")
;; "* TODO %?\n%i\n%a" :prepend t))))
(use-package org
:defer
:ensure (org :repo "https://code.tecosaur.net/tec/org-mode.git/"
@@ -12,7 +7,6 @@
:hook (org-mode . org-cdlatex-mode)
:hook (org-mode . org-indent-mode)
:hook (org-mode . visual-line-mode)
:pretty-hydra
;; See `org-structure-template-alist'
((:color blue :quit-key ("q" "C-g"))
@@ -58,7 +52,8 @@
(if (or (region-active-p) (looking-back "^\s*" 1))
(org-hydra/body)
(self-insert-command 1))))
("M-<return>" . org-insert-subheading))
("M-<return>" . org-insert-subheading)
("C-'" . nil))
:config
(elemacs-load-packages-incrementally
'(calendar find-func format-spec org-macs org-compat
@@ -101,6 +96,7 @@ the element after the #+HEADER: tag."
(setq org-pretty-entities t
org-pretty-entities-include-sub-superscripts nil)
(setq org-default-note-file (expand-file-name "notes.org" org-directory)
org-capture-templates
'(("t" "Personal todo" entry
@@ -111,10 +107,38 @@ the element after the #+HEADER: tag."
"* %u %?\n%i\n%a" :prepend t)
("j" "Journal" entry
(file+olp+datetree "diary.org")
"* %U %?\n%i\n%a" :prepend t))
org-todo-keywords
'((sequence "TODO(t)" "IN-PROGRESS(i)" "ON-HOLD(h)" "|" "DONE(d)" "NO(n)")))
"* %U %?\n%i\n%a" :prepend t)))
(with-no-warnings
(custom-declare-face '+org-todo-active '((t (:inherit (bold font-lock-constant-face org-todo)))) "")
(custom-declare-face '+org-todo-project '((t (:inherit (bold font-lock-doc-face org-todo)))) "")
(custom-declare-face '+org-todo-onhold '((t (:inherit (bold warning org-todo)))) "")
(custom-declare-face '+org-todo-cancel '((t (:inherit (bold error org-todo)))) ""))
(setq org-todo-keywords
'((sequence
"TODO(t)" ; A task that needs doing & is ready to do
"PROJ(p)" ; A project, which usually contains other tasks
"LOOP(r)" ; A recurring task
"STRT(s)" ; A task that is in progress
"WAIT(w)" ; Something external is holding up this task
"HOLD(h)" ; This task is paused/on hold because of me
"IDEA(i)" ; An unconfirmed and unapproved task or notion
"|"
"DONE(d)" ; Task successfully completed
"KILL(k)") ; Task was cancelled, aborted, or is no longer applicable
(sequence
"|"
"OKAY(o)"
"YES(y)"
"NO(n)"))
org-todo-keyword-faces
'(("[-]" . +org-todo-active)
("STRT" . +org-todo-active)
("[?]" . +org-todo-onhold)
("WAIT" . +org-todo-onhold)
("HOLD" . +org-todo-onhold)
("PROJ" . +org-todo-project)
("NO" . +org-todo-cancel)
("KILL" . +org-todo-cancel)))
(add-to-list 'org-src-block-faces '("latex" (:inherit default :extend t)))
(add-hook 'org-after-refile-insert-hook
@@ -123,39 +147,39 @@ the element after the #+HEADER: tag."
(save-buffer))))
;; ;; Enable lsp in org-babel
;; (cl-defmacro lsp-org-babel-enable (lang)
;; "Support LANG in org source code block."
;; (cl-check-type lang string)
;; (let* ((edit-pre (intern (format "org-babel-edit-prep:%s" lang)))
;; (intern-pre (intern (format "lsp--%s" (symbol-name edit-pre)))))
;; `(progn
;; (defun ,intern-pre (info)
;; (setq buffer-file-name (or (->> info caddr (alist-get :file))
;; "org-src-babel.tmp"))
;; (when (fboundp 'lsp-deferred)
;; ;; Avoid headerline conflicts
;; (setq-local lsp-headerline-breadcrumb-enable nil)
;; (lsp-deferred)
;; (_
;; (user-error "LSP:: invalid type"))))
;; (put ',intern-pre 'function-documentation
;; (format "Enable lsp-mode in the buffer of org source block (%s)."
;; (upcase ,lang)))
(cl-defmacro lsp-org-babel-enable (lang)
"Support LANG in org source code block."
(cl-check-type lang string)
(let* ((edit-pre (intern (format "org-babel-edit-prep:%s" lang)))
(intern-pre (intern (format "lsp--%s" (symbol-name edit-pre)))))
`(progn
(defun ,intern-pre (info)
(setq buffer-file-name (or (->> info caddr (alist-get :file))
"org-src-babel.tmp"))
(when (fboundp 'lsp-deferred)
;; Avoid headerline conflicts
(setq-local lsp-headerline-breadcrumb-enable nil)
(lsp-deferred)
(_
(user-error "LSP:: invalid type"))))
(put ',intern-pre 'function-documentation
(format "Enable lsp-mode in the buffer of org source block (%s)."
(upcase ,lang)))
;; (if (fboundp ',edit-pre)
;; (advice-add ',edit-pre :after ',intern-pre)
;; (progn
;; (defun ,edit-pre (info)
;; (,intern-pre info))
;; (put ',edit-pre 'function-documentation
;; (format "Prepare local buffer environment for org source block (%s)."
;; (upcase ,lang))))))))
(if (fboundp ',edit-pre)
(advice-add ',edit-pre :after ',intern-pre)
(progn
(defun ,edit-pre (info)
(,intern-pre info))
(put ',edit-pre 'function-documentation
(format "Prepare local buffer environment for org source block (%s)."
(upcase ,lang))))))))
;; (defconst org-babel-lang-list
;; '("go" "python" "ipython" "ruby" "js" "css" "sass" "c" "rust" "java" "cpp" "c++" "shell")
;; "The supported programming languages for interactive Babel.")
;; (dolist (lang org-babel-lang-list)
;; (eval `(lsp-org-babel-enable ,lang)))
(defconst org-babel-lang-list
'("go" "python" "ipython" "ruby" "js" "css" "sass" "c" "rust" "java" "cpp" "c++" "shell" "haskell")
"The supported programming languages for interactive Babel.")
(dolist (lang org-babel-lang-list)
(eval `(lsp-org-babel-enable ,lang)))
)
(use-package org-contrib)
@@ -234,12 +258,8 @@ the element after the #+HEADER: tag."
:hook (org-latex-preview-mode . org-latex-preview-center-mode)
:bind ("C-c C-x SPC" . org-latex-preview-clear-cache)
:config
;; Higher resolution when using dvipng
(plist-put org-latex-preview-appearance-options :zoom 0.85)
;; (plist-put org-latex-preview-appearance-options :margin 1)
;; Add margin and rescale display math
(defvar my/org-latex-display-math-scale 0.8)
(defvar my/org-latex-display-math-scale 1)
(defvar my/org-latex-display-math-margin 8)
(defun my/org-latex-preview-add-margin-advice (ov _path-info)
(save-excursion
@@ -264,10 +284,12 @@ the element after the #+HEADER: tag."
(advice-add 'org-latex-preview--update-overlay :after
#'my/org-latex-preview-add-margin-advice)
(setq org-latex-preview-numbered t)
;; (setq org-latex-preview-numbered t)
(setq org-latex-preview-mode-display-live t)
(setq org-latex-preview-process-default 'dvisvgm)
(setq org-latex-preview-mode-update-delay 0.25)
;; Centre display maths
(defun my/org-latex-preview-uncenter (ov)
(overlay-put ov 'before-string nil))
(defun my/org-latex-preview-recenter (ov)

View File

@@ -5,6 +5,18 @@
:diminish
:hook (elpaca-after-init . yas-global-mode)
:hook ((post-self-insert . my/yas-try-expanding-auto-snippets))
:commands (yas-minor-mode-on
yas-expand
yas-expand-snippet
yas-lookup-snippet
yas-insert-snippet
yas-new-snippet
yas-visit-snippet-file
yas-activate-extra-mode
yas-deactivate-extra-mode
yas-maybe-expand-abbrev-key-filter)
:init
(defvar yas-verbosity 2)
:config
(elemacs-load-packages-incrementally '(eldoc easymenu help-mode))
(use-package warnings
@@ -26,9 +38,8 @@
(let ((yas-buffer-local-condition ''(require-snippet-condition . auto)))
(yas-expand)))))
;; Collection of yasnippet snippets
(use-package yasnippet-snippets)
(use-package doom-snippets
:after yasnippet
:ensure (doom-snippets :type git :host github :repo "doomemacs/snippets" :files ("*.el" "*")))
(provide 'init-snippet)

View File

@@ -4,4 +4,4 @@
# condition: (and (texmathp) 'auto)
# group: math
# --
^{\text{-}1}
^{-1}