diff options
| -rw-r--r-- | .config/emacs/completion-at-point.el | 43 | ||||
| -rw-r--r-- | .config/emacs/files.el | 5 | ||||
| -rw-r--r-- | .config/emacs/init.el | 27 | ||||
| m--------- | .config/emacs/lisp/proj | 0 | ||||
| -rw-r--r-- | .config/emacs/minibuffer.el | 52 | ||||
| -rw-r--r-- | .config/emacs/misc.el | 2 | ||||
| -rw-r--r-- | .config/emacs/style.el | 33 | ||||
| -rw-r--r-- | .config/emacs/text-editing.el | 11 |
8 files changed, 99 insertions, 74 deletions
diff --git a/.config/emacs/completion-at-point.el b/.config/emacs/completion-at-point.el index 7683dd2..a563e99 100644 --- a/.config/emacs/completion-at-point.el +++ b/.config/emacs/completion-at-point.el @@ -1,16 +1,31 @@ -(use-package corfu - :ensure t - :hook (after-init . global-corfu-mode) - :bind (:map corfu-map ("<tab>" . corfu-complete)) - :config - (setq tab-always-indent 'complete) - (setq corfu-preview-current nil) - (setq corfu-min-width 20) +;; (use-package corfu +;; :ensure t +;; :hook (after-init . global-corfu-mode) +;; :bind (:map corfu-map ("<tab>" . corfu-complete)) +;; :config +;; (setq tab-always-indent 'complete) +;; (setq corfu-preview-current nil) +;; (setq corfu-min-width 20) +;; (setq corfu-popupinfo-delay '(1.25 . 0.5)) +;; (corfu-popupinfo-mode 1) +;; ;; Sort by input history (no need to modify `corfu-sort-function'). +;; (with-eval-after-load 'savehist +;; (corfu-history-mode 1) +;; (add-to-list 'savehist-additional-variables 'corfu-history))) - (setq corfu-popupinfo-delay '(1.25 . 0.5)) - (corfu-popupinfo-mode 1) ; shows documentation after `corfu-popupinfo-delay' +(use-package completion-preview + :diminish + :demand t + :bind + ( :map completion-preview-active-mode-map + ("M-n" . completion-preview-next-candidate) + ("M-p" . completion-preview-prev-candidate) + ("<tab>" . completion-preview-insert) + ("M-<return>" . completion-preview-insert)) + :config + (global-completion-preview-mode) + :custom + (completion-preview-minimum-symbol-length 2) + (completion-preview-ignore-case t)) - ;; Sort by input history (no need to modify `corfu-sort-function'). - (with-eval-after-load 'savehist - (corfu-history-mode 1) - (add-to-list 'savehist-additional-variables 'corfu-history))) +(setq completion-auto-help nil) diff --git a/.config/emacs/files.el b/.config/emacs/files.el index 0830ffc..d912e02 100644 --- a/.config/emacs/files.el +++ b/.config/emacs/files.el @@ -1,8 +1,9 @@ (use-package dired :commands (dired) :hook ((dired-mode . dired-hide-details-mode) - (dired-mode . hl-line-mode) - (dired-mode . (lambda () (setq-local cursor-type nil)))) + (dired-mode . (lambda () + (hl-line-mode) + (setq-local cursor-type nil)))) :config (setq dired-recursive-copies 'always) (setq dired-recursive-deletes 'always) diff --git a/.config/emacs/init.el b/.config/emacs/init.el index f2486fa..e6b85e1 100644 --- a/.config/emacs/init.el +++ b/.config/emacs/init.el @@ -1,5 +1,5 @@ ;; add my lisp directory and its subdirectories to the load path -(defvar my-lisp-dir (concat (getenv "XDG_CONFIG_HOME") "/emacs/lisp")) +(defvar my-lisp-dir (file-name-concat user-emacs-directory "lisp")) (add-to-list 'load-path my-lisp-dir) (let ((default-directory my-lisp-dir)) (normal-top-level-add-subdirs-to-load-path)) @@ -33,7 +33,7 @@ (setq inhibit-startup-message t vc-follow-symlinks t use-short-answers t - enable-recursive-minibuffers t) + enable-recursive-minibuffers t) ;; set up package managers (require 'package) @@ -48,25 +48,6 @@ (display-buffer-no-window) (allow-no-window . t))) -;; saves last place in file -(use-package saveplace - :config - (save-place-mode)) - -;; better C-g dwim -(defun keyboard-quit-dwim () - (interactive) - (cond - ((region-active-p) - (keyboard-quit)) - ((derived-mode-p 'completion-list-mode) - (delete-completion-window)) - ((> (minibuffer-depth) 0) - (abort-recursive-edit)) - (t - (keyboard-quit)))) -(define-key global-map (kbd "C-g") #'keyboard-quit-dwim) - ;; load my config files (defun loadc (file) (load (locate-user-emacs-file file))) (loadc "style.el") @@ -79,7 +60,5 @@ ;; (loadc "evil.el") ;; (loadc "lang.el") -(find-file user-init-file) - -;; skipped: diminish, improved C-g, evil nerd commenter, ansi color and rainbow +;; skipped: diminish, ansi color and rainbow ;; delimiters, evil, rainbow, diff --git a/.config/emacs/lisp/proj b/.config/emacs/lisp/proj -Subproject fd3d705c32fc8e35e7f80d75c35fd950749a6e9 +Subproject 35b4d077bc3d9026df365b20db38778f85e8293 diff --git a/.config/emacs/minibuffer.el b/.config/emacs/minibuffer.el index 678a13b..b51fbef 100644 --- a/.config/emacs/minibuffer.el +++ b/.config/emacs/minibuffer.el @@ -1,9 +1,24 @@ +;; better C-g dwim +(defun keyboard-quit-dwim () + (interactive) + (cond + ((region-active-p) + (keyboard-quit)) + ((derived-mode-p 'completion-list-mode) + (delete-completion-window)) + ((> (minibuffer-depth) 0) + (abort-recursive-edit)) + (t + (keyboard-quit)))) +(define-key global-map (kbd "C-g") #'keyboard-quit-dwim) + +;; ui improvements + (use-package vertico :ensure t :hook (after-init . vertico-mode)) (use-package vertico-directory - :ensure t :after vertico ;; More convenient directory navigation commands :bind (:map vertico-map @@ -18,6 +33,17 @@ :ensure t :hook (after-init . marginalia-mode)) +;; (use-package stillness +;; :demand t +;; :vc (:url "https://github.com/neeasade/stillness-mode.el" :branch "main")) + +;; sorting and history + +;; https://kristofferbalintona.me/articles/complement-corfu-vertico-and-completion-preview-with-prescientel-sorting/ + +(use-package savehist + :hook (after-init . savehist-mode)) + (use-package orderless :ensure t :config @@ -25,5 +51,25 @@ (setq completion-category-defaults nil) (setq completion-category-overrides nil)) -(use-package savehist - :hook (after-init . savehist-mode)) +(use-package prescient + :ensure t + :custom + (prescient-aggressive-file-save t) + (prescient-sort-length-enable nil) + (prescient-sort-full-matches-first t) + (prescient-history-length 200) + (prescient-frequency-decay 0.997) + (prescient-frequency-threshold 0.05) + :config + (prescient-persist-mode 1)) + +(use-package vertico-prescient + :ensure t + :demand t + :after vertico prescient + :custom + (vertico-prescient-enable-sorting t) + (vertico-prescient-override-sorting nil) + (vertico-prescient-enable-filtering nil) ; We want orderless to do the filtering + :config + (vertico-prescient-mode 1)) diff --git a/.config/emacs/misc.el b/.config/emacs/misc.el index b6d9a26..a4ab07d 100644 --- a/.config/emacs/misc.el +++ b/.config/emacs/misc.el @@ -7,6 +7,8 @@ (use-package magit :ensure t :bind (("C-x g" . magit-status)) + :hook + ((magit-mode . (lambda () (setq-local cursor-type nil)))) :config (setq vc-handled-backends (delq 'Git vc-handled-backends)) :custom diff --git a/.config/emacs/style.el b/.config/emacs/style.el index b4071a8..91c2a10 100644 --- a/.config/emacs/style.el +++ b/.config/emacs/style.el @@ -3,18 +3,17 @@ (scroll-bar-mode -1) (tool-bar-mode -1) -;; fonts -(let ((mono-spaced-font "DejaVuSansMono") - (proportionately-spaced-font "DejaVuSans")) +(blink-cursor-mode -1) + +;; fonts - https://github.com/thep0y/monaco-nerd-font/releases/tag/v0.2.2 +(let ((mono-spaced-font "Monaco Nerd Font Mono") + (proportionately-spaced-font "MonacoLigaturized Nerd Font")) (set-face-attribute 'default nil :family mono-spaced-font :height 100) (set-face-attribute 'fixed-pitch nil :family mono-spaced-font :height 1.0) (set-face-attribute 'variable-pitch nil :family proportionately-spaced-font :height 1.0)) ;; theme - (load-theme 'wombat) - - (custom-set-faces '(default ((t (:inherit nil :stipple nil :background "#222323" :foreground "#f6f3e8" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 115 :width normal :family "Monaco")))) '(highlight ((t (:underline nil)))) @@ -25,28 +24,6 @@ '(font-lock-string-face ((t (:foreground "#98dc5f")))) ) - ;; (custom-set-faces - ;; '(highlight ((t (:underline nil))))) - ;; '(dired-directory ((t (:inherit (quote font-lock-keyword-face))))) - ;; '(dired-header ((t (:inherit (quote font-lock-comment-face))))) - ;; '(font-lock-keyword-face ((t (:foreground "#86b7dd")))) - ;; '(font-lock-string-face ((t (:foreground "#98dc5f")))) - ;; '(fringe ((t (:background "#222323")))) - ;; '(ido-first-match ((t (:inherit (quote font-lock-comment-face))))) - ;; '(ido-only-match ((t (:inherit (quote font-lock-comment-face))))) - ;; '(ido-subdir ((t (:inherit (quote font-lock-keyword-face))))) - ;; '(linum ((t (:inherit (shadow default) :background "#191919" :foreground "#505050")))) - ;; '(success ((t (:inherit (quote font-lock-keyword-face) :weight normal)))) - ;; '(vertical-border ((t (:foreground "#303030")))) - ;; '(company-scrollbar-bg ((t (:background "#303030")))) - ;; '(company-scrollbar-fg ((t (:background "#99968b")))) - ;; '(company-tooltip ((t (:background "#303030")))) - ;; '(company-tooltip-annotation ((t (:inherit (quote font-lock-comment-face))))) - ;; '(company-tooltip-common ((t (:inherit (quote font-lock-comment-face))))) - ;; '(company-tooltip-common-selection ((t (:inherit (quote font-lock-keyword-face) :weight normal)))) - ;; '(company-tooltip-mouse ((t (:inherit (quote font-lock-keyword-face) :weight normal)))) - ;; '(company-tooltip-selection ((t (:inherit (quote font-lock-keyword-face) :weight normal)))) - ;; icons (use-package nerd-icons diff --git a/.config/emacs/text-editing.el b/.config/emacs/text-editing.el index f6a0147..beee68c 100644 --- a/.config/emacs/text-editing.el +++ b/.config/emacs/text-editing.el @@ -1,14 +1,19 @@ ;; scrolling (setq scroll-up-aggressively nil scroll-down-aggressively nil - scroll-conservatively 101) -(setq scroll-step 1) -(setq scroll-margin 8) + scroll-conservatively 101 + scroll-step 1 + scroll-margin 6) ;; columns (setq-default fill-column 80) (setq-default truncate-lines t) +;; saves last place in file +(use-package saveplace + :config + (save-place-mode)) + ;; mwim (use-package mwim :bind (("C-a" . mwim-beginning) |
