From fafe8f4ab53b294ffc4a1c7cf52d8f07e06dcf3f Mon Sep 17 00:00:00 2001 From: Wong Ding Feng Date: Sat, 22 Nov 2025 13:52:03 +0800 Subject: [PATCH] update --- ai.el | 5 ++++ config.el | 5 ++++ development.el | 16 +++++++------ init.el | 1 - org.el | 62 +++++++++++++++++++++++--------------------------- packages.el | 2 ++ 6 files changed, 49 insertions(+), 42 deletions(-) diff --git a/ai.el b/ai.el index 078624a..9b6fd82 100644 --- a/ai.el +++ b/ai.el @@ -6,6 +6,7 @@ ;; Core gptel setup (use-package! gptel + :defer t :config ;; Default backend: OpenRouter (setq gptel-model 'google/gemini-2.5-flash @@ -79,6 +80,7 @@ (use-package! gptel-quick :after gptel + :defer t :config ;; Include context from gptel-add if available (setq gptel-quick-use-context t) @@ -93,6 +95,7 @@ (use-package! gptel-extensions :after gptel + :defer t :config (map! :leader (:prefix "A" @@ -106,6 +109,7 @@ (use-package! gptel-autocomplete :after gptel + :defer t :commands (gptel-complete gptel-accept-completion) :config ;; Configure context size @@ -176,6 +180,7 @@ ;;; Claude Code Configuration (use-package! claude-code + :defer t :config ;; Use vterm backend (setq claude-code-terminal-backend 'vterm) diff --git a/config.el b/config.el index 634f08e..fa8385c 100644 --- a/config.el +++ b/config.el @@ -6,3 +6,8 @@ (load! "development") (load! "org") (load! "ai") + +;; Performance tweaks +(setq gc-cons-threshold 100000000 ; Increase GC threshold to 100MB + gc-cons-percentage 0.6) +(run-with-idle-timer 5 t #'garbage-collect) diff --git a/development.el b/development.el index 2a4bdba..546393f 100644 --- a/development.el +++ b/development.el @@ -34,7 +34,9 @@ ;; Show more detailed annotations (setq corfu-show-annotations t - corfu-annotate-max-width 50)) + corfu-annotate-max-width 50) + + ) ;; If using LSP, configure to show more details (after! lsp-mode @@ -43,9 +45,7 @@ lsp-completion-show-label-description t ; Show more details in label )) -(after! lsp-haskell - (setq lsp-haskell-plugin-fourmolu-config-path "fourmolu -o -XImportQualifiedPost -o -XOverloadedStrings -o -XTypeApplications -o -XScopedTypeVariables -o -XGADTs -o -XDataKinds -o -XTypeFamilies -o -XFlexibleContexts -o -XFlexibleInstances -o -XMultiParamTypeClasses -o -XRankNTypes -o -XExistentialQuantification") - ) +;; Haskell LSP uses HLS by default in Doom; removed outdated fourmolu config (use-package! bnf-mode :mode "\\.bnf\\'" @@ -122,9 +122,11 @@ (advice-add 'lsp-format-buffer :around (lambda (orig-fun &rest args) (if (eq major-mode 'nix-mode) - (if (in-nixpkgs-repo-p) - (format-all-buffer 'nixfmt) - (format-all-buffer 'alejandra)) + (let ((fmt (if (in-nixpkgs-repo-p) + (executable-find "nixfmt") + (executable-find "alejandra")))) + (when fmt + (format-all-buffer (intern (file-name-nondirectory fmt))))) (apply orig-fun args)))))) ;; Enable format-on-save globally if desired diff --git a/init.el b/init.el index 9ba6faa..824180b 100644 --- a/init.el +++ b/init.el @@ -159,7 +159,6 @@ +gnuplot +hugo +journal - +jupyter +link +noter +pandoc diff --git a/org.el b/org.el index 0e801e7..2accdc3 100644 --- a/org.el +++ b/org.el @@ -1,33 +1,10 @@ ;;; org.el -*- lexical-binding: t; -*- (defun +org--restart-mode-h () - "Restart `org-mode', but only once." - (remove-hook 'doom-switch-buffer-hook #'+org--restart-mode-h - 'local) - (delq! (current-buffer) org-agenda-new-buffers) - (let ((file buffer-file-name) - (old-buffer (current-buffer)) - (inhibit-redisplay t) - new-buffer) - (kill-buffer) - (setq new-buffer (find-file file)) - (unless (buffer-live-p old-buffer) - (make-indirect-buffer new-buffer old-buffer 'clone)))) - -(defun +org--restart-mode-h () - "Restart `org-mode', but only once." - (remove-hook 'doom-switch-buffer-hook #'+org--restart-mode-h - 'local) - (delq! (current-buffer) org-agenda-new-buffers) - (let ((file buffer-file-name) - (inhibit-redisplay t)) - (kill-buffer) - (find-file file))) -(defun +org--restart-mode-h () - "Restart `org-mode', but only once." + "Restart org-mode on buffer switch." (remove-hook 'doom-switch-buffer-hook #'+org--restart-mode-h 'local) + (cl-delete (current-buffer) org-agenda-new-buffers :test 'eq) (quiet! (org-mode-restart)) - (delq! (current-buffer) org-agenda-new-buffers) (run-hooks 'find-file-hook)) (add-hook! 'org-agenda-finalize-hook @@ -52,15 +29,32 @@ (letf! ((#'+org--restart-mode-h #'ignore)) (apply fun args)))) -;;(use-package! org-roam -;; :after org -;; :config -;; :init -;; (setq org-roam-directory "~/org/roam") ; No file-truename needed in Doom -;; :config -;; (advice-remove 'org-roam-db-query '+org-roam-try-init-db-a) -;; (org-roam-db-autosync-mode) -;; (setq org-roam-completion-everywhere t)) +(use-package! org-roam + :after org + :custom + (org-roam-directory "~/org/roam") + (org-roam-completion-everywhere t) + (org-roam-capture-templates + '(("d" "default" plain + "%?" + :if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org" + "#+title: ${title}\n") + :unnarrowed t) + ("r" "reference" plain + "%?" + :if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org" + "#+title: ${title}\n#+filetags: :reference:\n") + :unnarrowed t) + ("p" "project" plain + "\n* Goals\n\n%?\n\n* Tasks\n\n* Notes\n\n" + :if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org" + "#+title: ${title}\n#+filetags: :project:\n") + :unnarrowed t))) + :config + (org-roam-db-autosync-mode) + :bind (("C-c n l" . org-roam-buffer-toggle) + ("C-c n f" . org-roam-node-find) + ("C-c n r" . org-roam-node-random))) ; (use-package! org-roam ; :custom diff --git a/packages.el b/packages.el index 7eee863..4761189 100644 --- a/packages.el +++ b/packages.el @@ -45,6 +45,8 @@ (package! inheritenv :recipe (:host github :repo "purcell/inheritenv")) +(package! consult) + (package! claude-code :recipe (:host github :repo "stevemolitor/claude-code.el" :branch "main" :depth 1 :files ("*.el" (:exclude "images/*"))))