diff --git a/.config/emacs/early-init.el b/.config/emacs/early-init.el index d557651..24d218e 100644 --- a/.config/emacs/early-init.el +++ b/.config/emacs/early-init.el @@ -24,11 +24,11 @@ (push '(ns-transparent-titlebar . t) default-frame-alist)) (setq-default mode-line-format nil) -;;(setq inhibit-startup-message nil) +;;(setq inhibit-startup-message nil) ; TODO check. ;; initial load with blue theme ;(load-theme 'deeper-blue) -;;(customize-set-variable 'initial-major-mode 'fundamental-mode) +(setq package-enable-at-startup nil) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; early-init.el ends here diff --git a/.config/emacs/init.el b/.config/emacs/init.el index fba0254..8f4fc54 100644 --- a/.config/emacs/init.el +++ b/.config/emacs/init.el @@ -67,54 +67,54 @@ Otherwise the startup will be very slow. " (require 'init-yasnippet) -(require 'init-bookmark) -(require 'init-dashboard) -(require 'init-dired) -(require 'init-highlight) -(require 'init-ibuffer) -(require 'init-persp) -(require 'init-window) +;;(require 'init-bookmark) +;;(require 'init-dashboard) +;;(require 'init-dired) +;;(require 'init-highlight) +;;(require 'init-ibuffer) +;;(require 'init-persp) +;;(require 'init-window) (require 'init-treemacs) - -;; shell -(require 'init-eshell) - -;; markdown -(require 'init-markdown) -(require 'init-org) -(require 'init-reader) - ;; -(require 'init-dict) - -;; docker -(when ON-LINUX - (require 'init-docker)) -;; utils -(require 'init-utils) - -;; Programming -(require 'init-vcs) -(require 'init-flycheck) -(require 'init-eglot) -(require 'init-ctags) -(require 'init-prog) - -(require 'init-elisp) -(require 'init-c) -(require 'init-rust) -(require 'init-python) -(require 'init-ruby) -(require 'init-shell) - -(require 'init-latex) -(require 'init-verilog) - -(require 'init-debug) - -(require 'init-extra) -(require 'init-chatgpt) - -(require 'init-copilot) +;;;; shell +;;(require 'init-eshell) +;; +;;;; markdown +;;(require 'init-markdown) +;;(require 'init-org) +;;(require 'init-reader) +;; +;;;; +;;(require 'init-dict) +;; +;;;; docker +;;(when ON-LINUX +;; (require 'init-docker)) +;;;; utils +;;(require 'init-utils) +;; +;;;; Programming +;;(require 'init-vcs) +;;(require 'init-flycheck) +;;(require 'init-eglot) +;;(require 'init-ctags) +;;(require 'init-prog) +;; +;;(require 'init-elisp) +;;(require 'init-c) +;;(require 'init-rust) +;;(require 'init-python) +;;(require 'init-ruby) +;;(require 'init-shell) +;; +;;(require 'init-latex) +;;(require 'init-verilog) +;; +;;(require 'init-debug) +;; +;;(require 'init-extra) +;;(require 'init-chatgpt) +;; +;;(require 'init-copilot) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; init.el ends here diff --git a/.config/emacs/lisp/init-base.el b/.config/emacs/lisp/init-base.el index a001f40..7e4ef3d 100644 --- a/.config/emacs/lisp/init-base.el +++ b/.config/emacs/lisp/init-base.el @@ -1,5 +1,4 @@ ;; init-base.el -*- lexical-binding: t -*- - (require 'init-const) (require 'init-funcs) @@ -10,6 +9,8 @@ ;; (use-package gcmh + :straight t + :ensure t :diminish :hook (emacs-startup . gcmh-mode) @@ -28,15 +29,20 @@ (set-selection-coding-system 'utf-8)) (when ON-LINUX (use-package exec-path-from-shell + :straight t + :ensure t + :defer t :init (exec-path-from-shell-initialize))) ;; open file point at where last saved place. (use-package saveplace - :ensure nil + :straight t + :ensure t :hook (after-init . save-place-mode)) (use-package recentf - :ensure nil + :straight t + :ensure t :bind (("C-x C-r" . recentf-open-files)) :hook @@ -54,7 +60,8 @@ (add-to-list 'recentf-filename-handlers #'abbreviate-file-name)) (use-package savehist - :ensure nil + :straight t + :ensure t :hook (after-init . savehist-mode) :init @@ -68,7 +75,7 @@ savehist-autosave-interval 300)) (use-package simple - :ensure nil + :ensure nil ; emacs base package :hook ((after-init . size-indication-mode) (text-mode . visual-line-mode) ((prog-mode markdown-mode conf-mode) . enable-trailing-whitespace)) @@ -110,7 +117,7 @@ (concat " " (nerd-icons-faicon "nf-fa-bolt" :face 'nerd-icons-lblue)) - ;;(all-the-icons-faicon "nf-fa-bolt" :face 'all-the-icons-lblue)) + ;;(all-the-icons-faicon "nf-fa-bolt" :face 'all-the-icons-lblue)) " x")) (name (aref val 0)) (pid (aref val 1)) @@ -150,11 +157,6 @@ sentence-end-double-space nil word-wrap-by-category t) -;; use for org-roam? -(when (fboundp 'sqlite-open) - (use-package emacsql-sqlite-builtin)) - - (provide 'init-base) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; init-base.el ends here diff --git a/.config/emacs/lisp/init-edit.el b/.config/emacs/lisp/init-edit.el index ee04853..b593b54 100644 --- a/.config/emacs/lisp/init-edit.el +++ b/.config/emacs/lisp/init-edit.el @@ -3,10 +3,14 @@ (require 'init-funcs) (use-package autorevert - :ensure nil + :straight t + :ensure t :diminish :hook (after-init . global-auto-revert-mode)) (use-package avy + :straight t + :ensure t + :defer t :hook (after-init . avy-setup-default) :config (setq avy-style 'de-bruijn @@ -15,6 +19,8 @@ avy-background t)) ;; Show number of matches in mode-line while searching (use-package anzu + :straight t + :ensure t :diminish ;;:bind (([remap query-replace] . anzu-query-replace) ;; ([remap query-replace-regexp] . anzu-query-replace-regexp) @@ -22,10 +28,10 @@ ;; ([remap isearch-query-replace] . anzu-isearch-query-replace) ;; ([remap isearch-query-replace-regexp] . anzu-isearch-query-replace-regexp)) :hook (after-init . global-anzu-mode)) -(use-package ialign) - (use-package undo-tree + :straight t + :ensure t :diminish :hook (after-init . global-undo-tree-mode) :custom @@ -42,7 +48,8 @@ undo-outer-limit (* 128 1024 1024))) (use-package hideshow - :ensure nil + :straight t + :ensure t :diminish hs-minor-mode :pretty-hydra ((:title (pretty-hydra-title "HideShow" 'octicon "nf-oct-fold") @@ -112,6 +119,8 @@ ;; Hanlde minified code (use-package so-long + :straight t + :ensure t :hook (after-init . global-so-long-mode)) (provide 'init-edit) diff --git a/.config/emacs/lisp/init-evil.el b/.config/emacs/lisp/init-evil.el index 6dcc580..d4f2ef9 100644 --- a/.config/emacs/lisp/init-evil.el +++ b/.config/emacs/lisp/init-evil.el @@ -3,7 +3,8 @@ (require 'init-funcs) (use-package evil - :ensure nil + :straight t + :ensure t :diminish :hook (after-init . evil-mode) :init @@ -25,24 +26,28 @@ ;; eshell no evil (dolist (mode '(eshell-mode)) (add-to-list 'evil-emacs-state-modes mode))) + (with-eval-after-load 'evil - (defalias #'forward-evil-word #'forward-evil-symbol) - ;; make evil-search-word look for symbol rather than word boundaries - (setq-default evil-symbol-word-search t)) + (defalias #'forward-evil-word #'forward-evil-symbol) + ;; make evil-search-word look for symbol rather than word boundaries + (setq-default evil-symbol-word-search t)) (use-package evil-collection - :defer nil + :straight t + :ensure t :config (evil-collection-init)) (use-package evil-nerd-commenter - :defer nil + :straight t + :ensure t :config ;; evil nerd commenter (define-key evil-normal-state-map (kbd "g c") 'evilnc-comment-or-uncomment-lines) (define-key evil-visual-state-map (kbd "g c") 'evilnc-comment-or-uncomment-lines)) (use-package evil-numbers - :defer nil + :straight t + :ensure t :config ;; evil numbers ;; unfortunately C-x is emacs common key binding. diff --git a/.config/emacs/lisp/init-general.el b/.config/emacs/lisp/init-general.el index eeb50cb..5b42c38 100644 --- a/.config/emacs/lisp/init-general.el +++ b/.config/emacs/lisp/init-general.el @@ -11,10 +11,13 @@ (global-set-key (kbd "C-=") 'text-scale-increase) (global-set-key (kbd "C--") 'text-scale-decrease) +; TODO move to hideshow (global-set-key (kbd "C-") 'hs-toggle-hiding) ;; When you begin a keybind, whichkey will show you all keybinds you can follow the first one with in order to form a full keywords. (use-package which-key + :straight t + :ensure t :defer t :init (which-key-mode) :diminish which-key-mode @@ -22,6 +25,9 @@ (setq which-key-idle-delay 0.5)) (use-package general + :straight t + :ensure t + :defer t :init (general-auto-unbind-keys) :config diff --git a/.config/emacs/lisp/init-hydra.el b/.config/emacs/lisp/init-hydra.el index 007de22..0723bff 100644 --- a/.config/emacs/lisp/init-hydra.el +++ b/.config/emacs/lisp/init-hydra.el @@ -2,10 +2,15 @@ (require 'init-const) (require 'init-funcs) (use-package hydra + :straight t + :ensure t + :defer t :hook (emacs-lisp-mode . hydra-add-imenu)) -;; TODO (use-package pretty-hydra + :straight t + :ensure t + :defer t :bind ("" . toggles-hydra/body) :hook (emacs-lisp-mode . (lambda () (add-to-list @@ -23,7 +28,7 @@ (concat (when (and (icons-displayable-p) icon-type icon-name) (let ((f (intern (format "nerd-icons-%s" icon-type)))) - ;;(let ((f (intern (format "all-the-icons-%s" icon-type)))) + ;;(let ((f (intern (format "all-the-icons-%s" icon-type)))) (when (fboundp f) (concat (apply f (list icon-name :face face :height height :v-adjust v-adjust)) diff --git a/.config/emacs/lisp/init-package.el b/.config/emacs/lisp/init-package.el index fa5ba5e..1384554 100644 --- a/.config/emacs/lisp/init-package.el +++ b/.config/emacs/lisp/init-package.el @@ -8,74 +8,28 @@ (and (file-readable-p custom-file) (load custom-file)) -;; HACK: DO NOT save package-selected-packages to `custom-file'. -;; https://github.com/jwiegley/use-package/issues/383#issuecomment-247801751 -(defun my-package--save-selected-packages (&optional value) - "Set `package-selected-packages' to VALUE but don't save to `custom-file'." - (when value - (setq package-selected-packages value)) - (unless after-init-time - (add-hook 'after-init-hook #'my-package--save-selected-packages))) -(advice-add 'package--save-selected-packages :override #'my-package--save-selected-packages) - -(require 'package) -(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/")) - -(unless (bound-and-true-p package--initialized) - (setq package-enable-at-startup nil) - (package-initialize)) -;; Setup `use-package' -(unless (package-installed-p 'use-package) - (package-refresh-contents) - (package-install 'use-package)) -;; Should set before loading `use-package' -(eval-and-compile - (setq use-package-always-ensure t) - (setq use-package-always-defer t) - (setq use-package-expand-minimally t) - (setq use-package-enable-imenu-support t)) -(eval-when-compile - (require 'use-package)) - -(use-package diminish) -(use-package bind-key) - -(use-package paradox - :custom-face - (paradox-archive-face ((t (:inherit font-lock-doc-face)))) - (paradox-description-face ((t (:inherit completions-annotations)))) - :hook - (emacs-startup . paradox-enable) - :init - (setq paradox-execute-asynchronously t - paradox-github-token nil - paradox-display-star-count nil - paradox-status-face-alist ; - '(("built-in" . font-lock-builtin-face) - ("available" . success) - ("new" . (success bold)) - ("held" . font-lock-constant-face) - ("disabled" . font-lock-warning-face) - ("avail-obso" . font-lock-comment-face) - ("installed" . font-lock-comment-face) - ("dependency" . font-lock-comment-face) - ("incompat" . font-lock-comment-face) - ("deleted" . font-lock-comment-face) - ("unsigned" . font-lock-warning-face))) - :config - (add-hook 'paradox-after-execute-functions - (lambda (_) - "Display `page-break-lines' in \"*Paradox Report*\" buffer." - (when (fboundp 'page-break-lines-mode) - (let ((buf (get-buffer "*Paradox Report*")) - (inhibit-read-only t)) - (when (buffer-live-p buf) - (with-current-buffer buf - (page-break-lines-mode 1)))))) - t)) - +(defvar bootstrap-version) +(let ((bootstrap-file + (expand-file-name + "straight/repos/straight.el/bootstrap.el" + (or (bound-and-true-p straight-base-dir) + user-emacs-directory))) + (bootstrap-version 7)) + (unless (file-exists-p bootstrap-file) + (with-current-buffer + (url-retrieve-synchronously + "https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el" + 'silent 'inhibit-cookies) + (goto-char (point-max)) + (eval-print-last-sexp))) + (load bootstrap-file nil 'nomessage)) +(straight-use-package 'use-package) +(setq use-package-always-ensure t) +; hide info in modeline +(use-package diminish + :straight t) (provide 'init-package) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/.config/emacs/lisp/init-treemacs.el b/.config/emacs/lisp/init-treemacs.el index ac04e7c..e879d5f 100644 --- a/.config/emacs/lisp/init-treemacs.el +++ b/.config/emacs/lisp/init-treemacs.el @@ -3,6 +3,9 @@ (require 'init-funcs) ;; A tree layout file explorer (use-package treemacs + :straight t + :ensure t + :defer t :commands (treemacs-follow-mode treemacs-filewatch-mode treemacs-git-mode) @@ -26,28 +29,36 @@ (`(t . t) (treemacs-git-mode 'deferred)) (`(t . _) - (treemacs-git-mode 'simple))) + (treemacs-git-mode 'simple)))) - (use-package treemacs-nerd-icons - :demand - :custom-face - (treemacs-nerd-icons-root-face ((t (:inherit nerd-icons-green :height 1.3)))) - (treemacs-nerd-icons-file-face ((t (:inherit nerd-icons-dsilver)))) - :config (treemacs-load-theme "nerd-icons")) +(use-package treemacs-nerd-icons + :straight t + :ensure t + :defer t + :custom-face + (treemacs-nerd-icons-root-face ((t (:inherit nerd-icons-green :height 1.3)))) + (treemacs-nerd-icons-file-face ((t (:inherit nerd-icons-dsilver)))) + :config (treemacs-load-theme "nerd-icons")) - (use-package treemacs-magit - :after magit - :autoload treemacs-magit--schedule-update - :hook ((magit-post-commit - git-commit-post-finish - magit-post-stage - magit-post-unstage) - . treemacs-magit--schedule-update)) +(use-package treemacs-magit + :straight t + :ensure t + :defer t + :after magit + :autoload treemacs-magit--schedule-update + :hook ((magit-post-commit + git-commit-post-finish + magit-post-stage + magit-post-unstage) + . treemacs-magit--schedule-update)) - (use-package treemacs-persp - :after persp-mode - :demand t - :functions treemacs-set-scope-type - :config (treemacs-set-scope-type 'Perspectives))) +(use-package treemacs-persp + :straight t + :ensure t + :defer t + :after persp-mode + :demand t + :functions treemacs-set-scope-type + :config (treemacs-set-scope-type 'Perspectives)) (provide 'init-treemacs) ;;; init-treemacs.el ends here diff --git a/.config/emacs/lisp/init-ui.el b/.config/emacs/lisp/init-ui.el index fe3f1b0..7da6178 100644 --- a/.config/emacs/lisp/init-ui.el +++ b/.config/emacs/lisp/init-ui.el @@ -17,8 +17,15 @@ ;; Make certain buffers grossly incandescent (use-package solaire-mode - :hook (after-load-theme . solaire-global-mode)) + :straight t + :ensure t + :demand t + :config + (solaire-global-mode +1)) + (use-package doom-themes + :straight t + :ensure t :init (if (display-graphic-p) (load-theme custom-theme-sel t) @@ -26,6 +33,8 @@ :config (doom-themes-visual-bell-config)) (use-package doom-modeline + :straight t + :ensure t :hook (after-init . doom-modeline-mode) :init (setq doom-modeline-window-width-limit 110 @@ -48,14 +57,19 @@ ;; A minor-mode menu for mode-line (use-package minions + :straight t + :ensure t :hook (doom-modeline-mode . minions-mode)) ;; Icons -(use-package nerd-icons) +(use-package nerd-icons + :straight t + :ensure t) ;;(use-package all-the-icons) (use-package display-line-numbers - :ensure nil + :straight t + :ensure t :hook ((prog-mode yaml-mode conf-mode) . display-line-numbers-mode) :init (setq display-line-numbers-width-start t)) @@ -76,7 +90,8 @@ (add-hook 'window-setup-hook #'window-divider-mode) (use-package time - :ensure nil + :straight t + :ensure t :init (setq display-time-24hr-format t display-time-day-and-date t)) @@ -96,22 +111,30 @@ (if (fboundp 'pixel-scroll-precision-mode) (pixel-scroll-precision-mode t) (use-package good-scroll - :diminish + :straight t + :ensure t :hook (after-init . good-scroll-mode) :bind (([remap next] . good-scroll-up-full-screen) ([remap prior] . good-scroll-down-full-screen)))) ;; Smooth scrolling over images (use-package iscroll - :diminish + :straight t + :ensure t + :defer t :hook (image-mode . iscroll-mode)) ;; Use fixed pitch where it's sensible (use-package mixed-pitch - :diminish) + :straight t + :ensure t + :defer t) ;; Display ugly ^L page breaks as tidy horizontal lines (use-package page-break-lines + :straight t + :ensure t + :defer t :diminish :hook (after-init . global-page-break-lines-mode) :config ;; display only half fix. @@ -120,15 +143,14 @@ (face-attribute 'default :family))) (use-package form-feed :disabled - :diminish :hook (after-init . global-form-feed-mode)) ;; emoji (use-package emojify + :straight t + :ensure t :defer t :init (global-emojify-mode 1)) - - (provide 'init-ui) ;;; init-ui.el ends here. diff --git a/.config/emacs/lisp/init-vertico.el b/.config/emacs/lisp/init-vertico.el index ca6bd3d..fff7c7b 100644 --- a/.config/emacs/lisp/init-vertico.el +++ b/.config/emacs/lisp/init-vertico.el @@ -3,6 +3,8 @@ (require 'init-funcs) (use-package vertico + :straight t + :ensure t :bind (:map vertico-map ("C-j" . vertico-next) ("C-k" . vertico-previous)) @@ -10,10 +12,14 @@ :custom (vertico-cycle t)) (use-package nerd-icons-completion + :straight t + :ensure t :hook (vertico-mode . nerd-icons-completion-mode)) (when (display-graphic-p) (use-package vertico-posframe + :straight t + :ensure t :when custom-vertico-posframe :after vertico :hook (vertico-mode . vertico-posframe-mode) @@ -25,12 +31,16 @@ ;; simple, but effective sorting and filtering for emacs. (use-package vertico-prescient + :straight t + :ensure t :defer t :config (vertico-prescient-mode)) ;; annotations placed at the margin of the minibuffer (use-package marginalia + :straight t + :ensure t :after vertico :defer t :custom @@ -39,6 +49,8 @@ (use-package consult + :straight t + :ensure t :demand t :bind (:map minibuffer-local-map ("C-r" . consult-history)) @@ -55,6 +67,8 @@ (global-set-key (kbd "C-M-j") #'my/consult-switch-to-buffer))) (use-package orderless + :straight t + :ensure t :defer t :custom (completion-styles '(orderless basic)) @@ -62,6 +76,8 @@ ;; Quick action in minibuffer (use-package embark + :straight t + :ensure t :defer t :bind (("C-." . embark-act)) :config @@ -72,11 +88,15 @@ (setq prefix-help-command #'embark-prefix-help-command)) (use-package embark-consult + :straight t + :ensure t :defer t :after embark) ;;; Corfu (use-package corfu + :straight t + :ensure t :custom (corfu-cycle t) ;; Enable cycling for `corfu-next/previous' (corfu-auto t) ;; Enable auto completion @@ -97,57 +117,60 @@ (eldoc-add-command #'corfu-insert) (define-key corfu-map (kbd "M-p") #'corfu-popupinfo-scroll-down) (define-key corfu-map (kbd "M-n") #'corfu-popupinfo-scroll-up) - (define-key corfu-map (kbd "M-d") #'corfu-popupinfo-toggle) + (define-key corfu-map (kbd "M-d") #'corfu-popupinfo-toggle)) - (use-package kind-icon - :defer nil - :custom - (kind-icon-default-face 'corfu-default) ; to compute blended backgrounds correctly - :config - (add-to-list 'corfu-margin-formatters #'kind-icon-margin-formatter) - (when (icons-displayable-p) - (setq kind-icon-use-icons nil) - (setq kind-icon-mapping - `( - (array ,(nerd-icons-codicon "nf-cod-symbol_array") :face font-lock-type-face) - (boolean ,(nerd-icons-codicon "nf-cod-symbol_boolean") :face font-lock-builtin-face) - (class ,(nerd-icons-codicon "nf-cod-symbol_class") :face font-lock-type-face) - (color ,(nerd-icons-codicon "nf-cod-symbol_color") :face success) - (command ,(nerd-icons-codicon "nf-cod-terminal") :face default) - (constant ,(nerd-icons-codicon "nf-cod-symbol_constant") :face font-lock-constant-face) - (constructor ,(nerd-icons-codicon "nf-cod-triangle_right") :face font-lock-function-name-face) - (enummember ,(nerd-icons-codicon "nf-cod-symbol_enum_member") :face font-lock-builtin-face) - (enum-member ,(nerd-icons-codicon "nf-cod-symbol_enum_member") :face font-lock-builtin-face) - (enum ,(nerd-icons-codicon "nf-cod-symbol_enum") :face font-lock-builtin-face) - (event ,(nerd-icons-codicon "nf-cod-symbol_event") :face font-lock-warning-face) - (field ,(nerd-icons-codicon "nf-cod-symbol_field") :face font-lock-variable-name-face) - (file ,(nerd-icons-codicon "nf-cod-symbol_file") :face font-lock-string-face) - (folder ,(nerd-icons-codicon "nf-cod-folder") :face font-lock-doc-face) - (interface ,(nerd-icons-codicon "nf-cod-symbol_interface") :face font-lock-type-face) - (keyword ,(nerd-icons-codicon "nf-cod-symbol_keyword") :face font-lock-keyword-face) - (macro ,(nerd-icons-codicon "nf-cod-symbol_misc") :face font-lock-keyword-face) - (magic ,(nerd-icons-codicon "nf-cod-wand") :face font-lock-builtin-face) - (method ,(nerd-icons-codicon "nf-cod-symbol_method") :face font-lock-function-name-face) - (function ,(nerd-icons-codicon "nf-cod-symbol_method") :face font-lock-function-name-face) - (module ,(nerd-icons-codicon "nf-cod-file_submodule") :face font-lock-preprocessor-face) - (numeric ,(nerd-icons-codicon "nf-cod-symbol_numeric") :face font-lock-builtin-face) - (operator ,(nerd-icons-codicon "nf-cod-symbol_operator") :face font-lock-comment-delimiter-face) - (param ,(nerd-icons-codicon "nf-cod-symbol_parameter") :face default) - (property ,(nerd-icons-codicon "nf-cod-symbol_property") :face font-lock-variable-name-face) - (reference ,(nerd-icons-codicon "nf-cod-references") :face font-lock-variable-name-face) - (snippet ,(nerd-icons-codicon "nf-cod-symbol_snippet") :face font-lock-string-face) - (string ,(nerd-icons-codicon "nf-cod-symbol_string") :face font-lock-string-face) - (struct ,(nerd-icons-codicon "nf-cod-symbol_structure") :face font-lock-variable-name-face) - (text ,(nerd-icons-codicon "nf-cod-text_size") :face font-lock-doc-face) - (typeparameter ,(nerd-icons-codicon "nf-cod-list_unordered") :face font-lock-type-face) - (type-parameter ,(nerd-icons-codicon "nf-cod-list_unordered") :face font-lock-type-face) - (unit ,(nerd-icons-codicon "nf-cod-symbol_ruler") :face font-lock-constant-face) - (value ,(nerd-icons-codicon "nf-cod-symbol_field") :face font-lock-builtin-face) - (variable ,(nerd-icons-codicon "nf-cod-symbol_variable") :face font-lock-variable-name-face) - (t ,(nerd-icons-codicon "nf-cod-code") :face font-lock-warning-face)))))) +(use-package kind-icon + :straight t + :ensure t + :custom + (kind-icon-default-face 'corfu-default) ; to compute blended backgrounds correctly + :config + (add-to-list 'corfu-margin-formatters #'kind-icon-margin-formatter) + (when (icons-displayable-p) + (setq kind-icon-use-icons nil) + (setq kind-icon-mapping + `( + (array ,(nerd-icons-codicon "nf-cod-symbol_array") :face font-lock-type-face) + (boolean ,(nerd-icons-codicon "nf-cod-symbol_boolean") :face font-lock-builtin-face) + (class ,(nerd-icons-codicon "nf-cod-symbol_class") :face font-lock-type-face) + (color ,(nerd-icons-codicon "nf-cod-symbol_color") :face success) + (command ,(nerd-icons-codicon "nf-cod-terminal") :face default) + (constant ,(nerd-icons-codicon "nf-cod-symbol_constant") :face font-lock-constant-face) + (constructor ,(nerd-icons-codicon "nf-cod-triangle_right") :face font-lock-function-name-face) + (enummember ,(nerd-icons-codicon "nf-cod-symbol_enum_member") :face font-lock-builtin-face) + (enum-member ,(nerd-icons-codicon "nf-cod-symbol_enum_member") :face font-lock-builtin-face) + (enum ,(nerd-icons-codicon "nf-cod-symbol_enum") :face font-lock-builtin-face) + (event ,(nerd-icons-codicon "nf-cod-symbol_event") :face font-lock-warning-face) + (field ,(nerd-icons-codicon "nf-cod-symbol_field") :face font-lock-variable-name-face) + (file ,(nerd-icons-codicon "nf-cod-symbol_file") :face font-lock-string-face) + (folder ,(nerd-icons-codicon "nf-cod-folder") :face font-lock-doc-face) + (interface ,(nerd-icons-codicon "nf-cod-symbol_interface") :face font-lock-type-face) + (keyword ,(nerd-icons-codicon "nf-cod-symbol_keyword") :face font-lock-keyword-face) + (macro ,(nerd-icons-codicon "nf-cod-symbol_misc") :face font-lock-keyword-face) + (magic ,(nerd-icons-codicon "nf-cod-wand") :face font-lock-builtin-face) + (method ,(nerd-icons-codicon "nf-cod-symbol_method") :face font-lock-function-name-face) + (function ,(nerd-icons-codicon "nf-cod-symbol_method") :face font-lock-function-name-face) + (module ,(nerd-icons-codicon "nf-cod-file_submodule") :face font-lock-preprocessor-face) + (numeric ,(nerd-icons-codicon "nf-cod-symbol_numeric") :face font-lock-builtin-face) + (operator ,(nerd-icons-codicon "nf-cod-symbol_operator") :face font-lock-comment-delimiter-face) + (param ,(nerd-icons-codicon "nf-cod-symbol_parameter") :face default) + (property ,(nerd-icons-codicon "nf-cod-symbol_property") :face font-lock-variable-name-face) + (reference ,(nerd-icons-codicon "nf-cod-references") :face font-lock-variable-name-face) + (snippet ,(nerd-icons-codicon "nf-cod-symbol_snippet") :face font-lock-string-face) + (string ,(nerd-icons-codicon "nf-cod-symbol_string") :face font-lock-string-face) + (struct ,(nerd-icons-codicon "nf-cod-symbol_structure") :face font-lock-variable-name-face) + (text ,(nerd-icons-codicon "nf-cod-text_size") :face font-lock-doc-face) + (typeparameter ,(nerd-icons-codicon "nf-cod-list_unordered") :face font-lock-type-face) + (type-parameter ,(nerd-icons-codicon "nf-cod-list_unordered") :face font-lock-type-face) + (unit ,(nerd-icons-codicon "nf-cod-symbol_ruler") :face font-lock-constant-face) + (value ,(nerd-icons-codicon "nf-cod-symbol_field") :face font-lock-builtin-face) + (variable ,(nerd-icons-codicon "nf-cod-symbol_variable") :face font-lock-variable-name-face) + (t ,(nerd-icons-codicon "nf-cod-code") :face font-lock-warning-face))))) (use-package corfu-terminal + :straight t + :ensure t :config (unless (display-graphic-p) (corfu-terminal-mode))) @@ -155,6 +178,8 @@ ;;; Cape ;; Setup Cape for better completion-at-point support and more (use-package cape + :straight t + :ensure t :config ;; Add useful defaults completion sources from cape (add-to-list 'completion-at-point-functions #'cape-file) @@ -171,6 +196,5 @@ corfu-quit-no-match t corfu-auto nil) (corfu-mode)))) - (provide 'init-vertico) ;;; init-vertico.el ends here diff --git a/.config/emacs/lisp/init-yasnippet.el b/.config/emacs/lisp/init-yasnippet.el index 0efaf00..1f3ffeb 100644 --- a/.config/emacs/lisp/init-yasnippet.el +++ b/.config/emacs/lisp/init-yasnippet.el @@ -1,13 +1,18 @@ ;;; init-yasnippet.el -*- lexical-binding: t -*- ;; Yet another snippet extension (use-package yasnippet + :straight t + :ensure t + :defer t :diminish yas-minor-mode :hook (after-init . yas-global-mode) :config (setq yas-indent-line nil)) ;; indent does not work properly. ;; Collection of yasnippet snippets -(use-package yasnippet-snippets) +(use-package yasnippet-snippets + :straight t + :ensure t) (provide 'init-yasnippet) ;;; init-yasnippet.el ends here