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. ;; Optionally use the `orderless' completion style.
(use-package orderless (use-package orderless
:custom :custom
(completion-styles '(orderless basic)) (completion-styles '(orderless partial-completion basic))
(completion-category-defaults nil) (completion-category-defaults nil)
(completion-category-overrides '((file (styles orderless partial-completion)))) (completion-category-overrides '((file (styles orderless partial-completion))))
(orderless-component-separator #'orderless-escapable-split-on-space)) (orderless-component-separator #'orderless-escapable-split-on-space))
@@ -250,11 +250,11 @@
;;Quit completion before saving ;;Quit completion before saving
(add-hook 'before-save-hook #'corfu-quit) (add-hook 'before-save-hook #'corfu-quit)
(advice-add #'persistent-scratch-save :before #'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 (use-package nerd-icons-corfu
:init :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... ;; A few more useful configurations...
(use-package emacs (use-package emacs
@@ -294,10 +294,6 @@
;; (advice-add 'eglot-completion-at-point :around #'cape-wrap-nonexclusive) ;; (advice-add 'eglot-completion-at-point :around #'cape-wrap-nonexclusive)
(advice-add 'pcomplete-completions-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) (provide 'init-completion)

View File

@@ -21,11 +21,16 @@
(lsp-enable-which-key-integration) (lsp-enable-which-key-integration)
;; (add-hook 'before-save-hook #'lsp-format-buffer t t) ;; (add-hook 'before-save-hook #'lsp-format-buffer t t)
(add-hook 'before-save-hook #'lsp-organize-imports 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 :bind (:map lsp-mode-map
("C-c c d" . lsp-describe-thing-at-point) ("C-c c d" . lsp-describe-thing-at-point)
([remap xref-find-definitions] . lsp-find-definition) ([remap xref-find-definitions] . lsp-find-definition)
([remap xref-find-references] . lsp-find-references)) ([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-log-io nil
lsp-enable-suggest-server-download t lsp-enable-suggest-server-download t

View File

@@ -92,7 +92,10 @@
:hook (elpaca-after-init . meow-global-mode) :hook (elpaca-after-init . meow-global-mode)
:config :config
(meow-setup) (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" (setq meow-keypad-leader-dispatch "C-c"
meow-use-clipboard t) meow-use-clipboard t)
(setq meow-replace-state-name-list (setq meow-replace-state-name-list

View File

@@ -1,10 +1,5 @@
;; -*- lexical-binding: t -*- ;; -*- 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 (use-package org
:defer :defer
:ensure (org :repo "https://code.tecosaur.net/tec/org-mode.git/" :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-cdlatex-mode)
:hook (org-mode . org-indent-mode) :hook (org-mode . org-indent-mode)
:hook (org-mode . visual-line-mode) :hook (org-mode . visual-line-mode)
:pretty-hydra :pretty-hydra
;; See `org-structure-template-alist' ;; See `org-structure-template-alist'
((:color blue :quit-key ("q" "C-g")) ((:color blue :quit-key ("q" "C-g"))
@@ -58,7 +52,8 @@
(if (or (region-active-p) (looking-back "^\s*" 1)) (if (or (region-active-p) (looking-back "^\s*" 1))
(org-hydra/body) (org-hydra/body)
(self-insert-command 1)))) (self-insert-command 1))))
("M-<return>" . org-insert-subheading)) ("M-<return>" . org-insert-subheading)
("C-'" . nil))
:config :config
(elemacs-load-packages-incrementally (elemacs-load-packages-incrementally
'(calendar find-func format-spec org-macs org-compat '(calendar find-func format-spec org-macs org-compat
@@ -101,6 +96,7 @@ the element after the #+HEADER: tag."
(setq org-pretty-entities t (setq org-pretty-entities t
org-pretty-entities-include-sub-superscripts nil) org-pretty-entities-include-sub-superscripts nil)
(setq org-default-note-file (expand-file-name "notes.org" org-directory) (setq org-default-note-file (expand-file-name "notes.org" org-directory)
org-capture-templates org-capture-templates
'(("t" "Personal todo" entry '(("t" "Personal todo" entry
@@ -111,10 +107,38 @@ the element after the #+HEADER: tag."
"* %u %?\n%i\n%a" :prepend t) "* %u %?\n%i\n%a" :prepend t)
("j" "Journal" entry ("j" "Journal" entry
(file+olp+datetree "diary.org") (file+olp+datetree "diary.org")
"* %U %?\n%i\n%a" :prepend t)) "* %U %?\n%i\n%a" :prepend t)))
(with-no-warnings
org-todo-keywords (custom-declare-face '+org-todo-active '((t (:inherit (bold font-lock-constant-face org-todo)))) "")
'((sequence "TODO(t)" "IN-PROGRESS(i)" "ON-HOLD(h)" "|" "DONE(d)" "NO(n)"))) (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-to-list 'org-src-block-faces '("latex" (:inherit default :extend t)))
(add-hook 'org-after-refile-insert-hook (add-hook 'org-after-refile-insert-hook
@@ -123,39 +147,39 @@ the element after the #+HEADER: tag."
(save-buffer)))) (save-buffer))))
;; ;; Enable lsp in org-babel ;; ;; Enable lsp in org-babel
;; (cl-defmacro lsp-org-babel-enable (lang) (cl-defmacro lsp-org-babel-enable (lang)
;; "Support LANG in org source code block." "Support LANG in org source code block."
;; (cl-check-type lang string) (cl-check-type lang string)
;; (let* ((edit-pre (intern (format "org-babel-edit-prep:%s" lang))) (let* ((edit-pre (intern (format "org-babel-edit-prep:%s" lang)))
;; (intern-pre (intern (format "lsp--%s" (symbol-name edit-pre))))) (intern-pre (intern (format "lsp--%s" (symbol-name edit-pre)))))
;; `(progn `(progn
;; (defun ,intern-pre (info) (defun ,intern-pre (info)
;; (setq buffer-file-name (or (->> info caddr (alist-get :file)) (setq buffer-file-name (or (->> info caddr (alist-get :file))
;; "org-src-babel.tmp")) "org-src-babel.tmp"))
;; (when (fboundp 'lsp-deferred) (when (fboundp 'lsp-deferred)
;; ;; Avoid headerline conflicts ;; Avoid headerline conflicts
;; (setq-local lsp-headerline-breadcrumb-enable nil) (setq-local lsp-headerline-breadcrumb-enable nil)
;; (lsp-deferred) (lsp-deferred)
;; (_ (_
;; (user-error "LSP:: invalid type")))) (user-error "LSP:: invalid type"))))
;; (put ',intern-pre 'function-documentation (put ',intern-pre 'function-documentation
;; (format "Enable lsp-mode in the buffer of org source block (%s)." (format "Enable lsp-mode in the buffer of org source block (%s)."
;; (upcase ,lang))) (upcase ,lang)))
;; (if (fboundp ',edit-pre) (if (fboundp ',edit-pre)
;; (advice-add ',edit-pre :after ',intern-pre) (advice-add ',edit-pre :after ',intern-pre)
;; (progn (progn
;; (defun ,edit-pre (info) (defun ,edit-pre (info)
;; (,intern-pre info)) (,intern-pre info))
;; (put ',edit-pre 'function-documentation (put ',edit-pre 'function-documentation
;; (format "Prepare local buffer environment for org source block (%s)." (format "Prepare local buffer environment for org source block (%s)."
;; (upcase ,lang)))))))) (upcase ,lang))))))))
;; (defconst org-babel-lang-list (defconst org-babel-lang-list
;; '("go" "python" "ipython" "ruby" "js" "css" "sass" "c" "rust" "java" "cpp" "c++" "shell") '("go" "python" "ipython" "ruby" "js" "css" "sass" "c" "rust" "java" "cpp" "c++" "shell" "haskell")
;; "The supported programming languages for interactive Babel.") "The supported programming languages for interactive Babel.")
;; (dolist (lang org-babel-lang-list) (dolist (lang org-babel-lang-list)
;; (eval `(lsp-org-babel-enable ,lang))) (eval `(lsp-org-babel-enable ,lang)))
) )
(use-package org-contrib) (use-package org-contrib)
@@ -234,12 +258,8 @@ the element after the #+HEADER: tag."
:hook (org-latex-preview-mode . org-latex-preview-center-mode) :hook (org-latex-preview-mode . org-latex-preview-center-mode)
:bind ("C-c C-x SPC" . org-latex-preview-clear-cache) :bind ("C-c C-x SPC" . org-latex-preview-clear-cache)
:config :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 ;; 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) (defvar my/org-latex-display-math-margin 8)
(defun my/org-latex-preview-add-margin-advice (ov _path-info) (defun my/org-latex-preview-add-margin-advice (ov _path-info)
(save-excursion (save-excursion
@@ -264,10 +284,12 @@ the element after the #+HEADER: tag."
(advice-add 'org-latex-preview--update-overlay :after (advice-add 'org-latex-preview--update-overlay :after
#'my/org-latex-preview-add-margin-advice) #'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-mode-display-live t)
(setq org-latex-preview-process-default 'dvisvgm) (setq org-latex-preview-process-default 'dvisvgm)
(setq org-latex-preview-mode-update-delay 0.25) (setq org-latex-preview-mode-update-delay 0.25)
;; Centre display maths
(defun my/org-latex-preview-uncenter (ov) (defun my/org-latex-preview-uncenter (ov)
(overlay-put ov 'before-string nil)) (overlay-put ov 'before-string nil))
(defun my/org-latex-preview-recenter (ov) (defun my/org-latex-preview-recenter (ov)

View File

@@ -5,6 +5,18 @@
:diminish :diminish
:hook (elpaca-after-init . yas-global-mode) :hook (elpaca-after-init . yas-global-mode)
:hook ((post-self-insert . my/yas-try-expanding-auto-snippets)) :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 :config
(elemacs-load-packages-incrementally '(eldoc easymenu help-mode)) (elemacs-load-packages-incrementally '(eldoc easymenu help-mode))
(use-package warnings (use-package warnings
@@ -26,9 +38,8 @@
(let ((yas-buffer-local-condition ''(require-snippet-condition . auto))) (let ((yas-buffer-local-condition ''(require-snippet-condition . auto)))
(yas-expand))))) (yas-expand)))))
;; Collection of yasnippet snippets (use-package doom-snippets
(use-package yasnippet-snippets) :after yasnippet
:ensure (doom-snippets :type git :host github :repo "doomemacs/snippets" :files ("*.el" "*")))
(provide 'init-snippet) (provide 'init-snippet)

View File

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