author | Alan Dipert
<alan@dipert.org> 2023-09-19 03:48:08 UTC |
committer | Alan Dipert
<alan@dipert.org> 2023-09-19 03:48:08 UTC |
parent | d3cce06834f9873fe52f5ed20acd1255e7e2e57e |
.gitignore | +3 | -0 |
init.el | +139 | -119 |
straight/versions/default.el | +27 | -48 |
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0e0e923 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/auto-save-list/ +/recentf +/transient/ diff --git a/init.el b/init.el index b946921..83bf605 100644 --- a/init.el +++ b/init.el @@ -14,135 +14,144 @@ (straight-use-package 'use-package) (use-package straight - :custom - (straight-use-package-by-default t)) + :custom + (straight-use-package-by-default t)) (use-package emacs - :custom - (auto-save-default t) - (auto-save-interval 200) - (auto-save-timeout 10) - (c-basic-offset 2) - (custom-file (expand-file-name "custom.el" user-emacs-directory)) - (diff-switches "-u -w") - (indent-tabs-mode nil) - (inhibit-splash-screen t) - (initial-major-mode 'fundamental-mode) - (initial-scratch-message nil) - (ispell-program-name "aspell") - (js-indent-level 2) - (linum-format "%d ") - (lisp-indent-offset t) - (sh-basic-offset 2) - (tab-width 2) - (truncate-partial-width-windows nil) - (visual-bell t) - (whitespace-style '(trailing lines space-before-tab face indentation space-after)) - (x-select-enable-clipboard t) - :config - (auto-compression-mode t) - (blink-cursor-mode 1) - (column-number-mode 1) - (delete-selection-mode t) - (electric-pair-mode 1) - (fset 'yes-or-no-p 'y-or-n-p) - (global-linum-mode 1) - (global-visual-line-mode 1) + :custom + (auto-save-default t) + (auto-save-interval 200) + (auto-save-timeout 10) + (c-basic-offset 2) + (completion-cycle-threshold 3) + (custom-file (expand-file-name "custom.el" user-emacs-directory)) + (diff-switches "-u -w") + (global-display-line-numbers-mode t) + (indent-tabs-mode nil) + (inhibit-splash-screen t) + (initial-major-mode 'fundamental-mode) + (initial-scratch-message nil) + (ispell-program-name "aspell") + (js-indent-level 2) + (linum-format "%d ") + (lisp-indent-offset t) + (menu-bar-mode t) + (sh-basic-offset 2) + (tab-always-indent 'complete) + (tab-width 2) + (tool-bar-mode nil) + (truncate-partial-width-windows nil) + (visual-bell t) + (warning-minimum-level :emergency) + (whitespace-style '(trailing lines space-before-tab face indentation space-after)) + (x-select-enable-clipboard t) + (x-select-enable-primary t) + :config + (auto-compression-mode t) + (blink-cursor-mode 1) + (column-number-mode 1) + (delete-selection-mode t) + (electric-pair-mode 1) + (fset 'yes-or-no-p 'y-or-n-p) + (global-visual-line-mode 1) (dolist (f '(try-expand-line try-expand-list)) (delq f hippie-expand-try-functions-list)) - (line-number-mode 1) - (menu-bar-mode -1) - (recentf-mode 1) - (show-paren-mode t) - (winner-mode 1) - (set-frame-font "Source Code Pro 12" nil t) - (tool-bar-mode -1) - (visual-line-mode 1)) + (display-line-numbers-mode 1) + (recentf-mode 1) + (show-paren-mode t) + (winner-mode 1) + (visual-line-mode 1) + :bind (("M-/" . hippie-expand))) -(use-package avy) -(use-package cider) -(use-package clojure-mode) +(defvar local/leader "C-o" "Prefix to use for user commands.") -(use-package color-theme-sanityinc-tomorrow - :config - (load-theme 'sanityinc-tomorrow-blue t) - (set-face-foreground 'region "white") - (set-face-background 'region "blue")) +(defun local/set-key (keys command) + (when (functionp (lookup-key (current-global-map) (kbd local/leader))) + (global-unset-key (kbd local/leader))) + (global-set-key + (kbd (concat local/leader " " keys)) + command)) -(use-package company - :config - (global-company-mode)) +(use-package consult) -(use-package consult - :hook (completion-list-mode . consult-preview-at-point-mode) - :config - (autoload 'projectile-project-root "projectile") - (setq consult-project-function (lambda (_) (projectile-project-root)))) +(use-package embark) -(use-package csv-mode) -(use-package dockerfile-mode) +(use-package orderless + :custom + (completion-styles '(orderless basic)) + (completion-category-overrides '((file (styles basic partial-completion))))) -(use-package embark - :ensure t - :bind - (("C-=" . embark-act)) - :init - ;; Optionally replace the key help with a completing-read interface - (setq prefix-help-command #'embark-prefix-help-command) - :config - ;; Hide the mode line of the Embark live/completions buffers - (add-to-list 'display-buffer-alist - '("\\`\\*Embark Collect \\(Live\\|Completions\\)\\*" - nil - (window-parameters (mode-line-format . none))))) +(use-package ace-window) -(use-package embark-consult - :ensure t ; only need to install it, embark loads it after consult if found - :hook - (embark-collect-mode . consult-preview-at-point-mode)) +(use-package avy) -(use-package consult-flycheck) +(use-package csv-mode) (use-package flycheck) -(use-package git-timemachine) + (use-package js2-mode) -(use-package lsp-treemacs) + (use-package magit) + (use-package markdown-mode) -(use-package org) -(use-package smartparens) -(use-package projectile - :init (projectile-mode) +(use-package projectile) + +(use-package dumb-jump + :init + (add-hook 'xref-backend-functions 'dumb-jump-xref-activate)) + +(use-package idle-highlight-mode + :hook ((prog-mode . idle-highlight-mode)) :custom - (projectile-completion-system 'default) - (projectile-enable-caching t) - (projectile-file-exists-remote-cache-expire (* 10 60)) - (projectile-file-exists-local-cache-expire (* 10 60))) + (idle-highlight-idle-time 0.1)) + +(use-package paredit) -(use-package consult-projectile - :straight (consult-projectile :type git :host gitlab :repo "OlMon/consult-projectile" :branch "master")) +(defvar local/sexp-keymap + (let ((keymap (make-keymap))) + (define-key keymap (kbd "(") 'paredit-wrap-round) + (define-key keymap (kbd "[") 'paredit-wrap-square) + (define-key keymap (kbd "{") 'paredit-wrap-curly) + (define-key keymap (kbd ">") 'paredit-forward-slurp-sexp) + (define-key keymap (kbd "<") 'paredit-backward-barf-sexp) + (define-key keymap (kbd "-") 'paredit-backward-slurp-sexp) + (define-key keymap (kbd "+") 'paredit-forward-barf-sexp) + (define-key keymap (kbd "|") 'paredit-split-sexp) + (define-key keymap (kbd "^") 'paredit-raise-sexp) + (define-key keymap (kbd "j") 'paredit-join-sexp) + (define-key keymap (kbd "?") 'paredit-convolute-sexp) + keymap)) + +(defalias 'local/sexp-keymap local/sexp-keymap) + +(local/set-key "C-s" 'local/sexp-keymap) + +(defun local/save () + (interactive) + (clipboard-kill-ring-save nil nil t) + (meow-save)) (use-package meow :config (setq meow-cheatsheet-layout meow-cheatsheet-layout-colemak) (meow-motion-overwrite-define-key - ;; Use e to move up, n to move down. - ;; Since special modes usually use n to move down, we only overwrite e here. '("e" . meow-prev) '("<escape>" . ignore)) (meow-leader-define-key '("SPC" . execute-extended-command) + '("a" . avy-goto-line) '("." . embark-act) - '("?" . meow-cheatsheet) - '("p" . meow-paren-mode) - '("P" . projectile-command-map) - '("a" . avy-goto-char-timer) + '("e" . meow-page-up) + '("F" . consult-find) '("G" . magit-status) - '("f" . meow-page-down) - '("b" . meow-page-up) - ;; To execute the originally e in MOTION state, use SPC e. - '("e" . "H-e") + '("o" . meow-keypad-start) + '("?" . meow-cheatsheet) + '("p" . meow-page-mode) + '("R" . consult-git-grep) + '("r" . consult-recent-file) + '("s" . meow-sexp-mode) + '("E" . "H-e") '("1" . meow-digit-argument) '("2" . meow-digit-argument) '("3" . meow-digit-argument) @@ -209,28 +218,39 @@ '("W" . meow-next-symbol) '("x" . meow-delete) '("X" . meow-backward-delete) - '("y" . meow-save) + '("y" . local-save) '("z" . meow-pop-selection) '("'" . repeat) '("<escape>" . ignore)) - (setq meow-paren-keymap (make-keymap)) - (meow-define-state paren - "meow state for interacting with smartparens" - :lighter " [P]" - :keymap meow-paren-keymap) - (setq meow-cursor-type-paren 'hollow) - (meow-define-keys 'paren - '("<escape>" . meow-normal-mode) - '("l" . sp-forward-sexp) - '("h" . sp-backward-sexp) - '("j" . sp-down-sexp) - '("k" . sp-up-sexp) - '("n" . sp-forward-slurp-sexp) - '("b" . sp-forward-barf-sexp) - '("v" . sp-backward-barf-sexp) - '("c" . sp-backward-slurp-sexp) - '("t" . sp-transpose-sexp) - '("S" . sp-splice-sexp) - '("u" . meow-undo)) + (setq meow-page-keymap (make-keymap)) + (meow-define-state page + "meow state for paging up/down" + :lighter " [P]" + :keymap meow-page-keymap) + (meow-define-keys 'page + '("<escape>" . meow-normal-mode) + '("n" . meow-page-down) + '("e" . meow-page-up)) + (setq meow-sexp-keymap (make-keymap)) + (meow-define-state sexp + "meow state for sexp" + :lighter " [S]" + :keymap meow-sexp-keymap) + (setq meow-cursor-type-sexp 'hollow) + (meow-define-keys 'sexp + '("<escape>" . meow-normal-mode) + '("(" . paredit-wrap-round) + '("[" . paredit-wrap-square) + '("{" . paredit-wrap-curly) + '(">" . paredit-forward-slurp-sexp) + '("<" . paredit-forward-barf-sexp) + '("-" . paredit-backward-slurp-sexp) + '("+" . paredit-backward-barf-sexp) + '("," . paredit-splice-sexp) + '("|" . paredit-split-sexp) + '("^" . paredit-raise-sexp) + '("j" . paredit-join-sexps) + '("?" . paredit-convolute-sexp) + '("t" . meow-transpose-sexp) + '("u" . meow-undo)) (meow-global-mode 1)) - diff --git a/straight/versions/default.el b/straight/versions/default.el index 4c07c9e..6b07ee0 100644 --- a/straight/versions/default.el +++ b/straight/versions/default.el @@ -1,53 +1,32 @@ (("ace-window" . "77115afc1b0b9f633084cf7479c767988106c196") ("avy" . "be612110cb116a38b8603df367942e2bb3d9bdbe") - ("cfrs" . "f3a21f237b2a54e6b9f8a420a9da42b4f0a63121") - ("cider" . "14923cb8c3be94a40fe7ca213948d1137b1cb3dc") - ("clojure-mode" . "3453cd229b412227aaffd1dc2870fa8fa213c5b1") - ("color-theme-sanityinc-tomorrow" . "96dbaa43ff1326879e76a7943b8ae27265ae84e8") - ("company-mode" . "8a78f320019574bc35b5727f95b052b27918da20") - ("compat" . "9d2a293dca90e70a8bcd963682e8b7122371595b") - ("consult" . "eff54e49e057e3c9527ae1119a929d24d315db78") - ("consult-flycheck" . "fda630411ad9219f45136310f671b44eaefafcab") - ("consult-projectile" . "5ef1ada3be767ea766255801050210f5d796deec") - ("csv-mode" . "d190a479b4f36806b604da527e5d5a50909d3ceb") - ("dash.el" . "c30c6bea49b79d966c92ce606fea53dea647b959") - ("dockerfile-mode" . "52c6c00da1d31c0b6c29c74335b3af63ed6bf06c") - ("el-get" . "837fcbb8d22274f6c684a5e24ce12ce1efa18d9f") - ("eldoc" . "bf2e88dcf00e6554e24b517aa315527011042fae") - ("emacsmirror-mirror" . "a2d65d0360ab541ff189dc7b8ba8a25ea7aeb6c2") - ("embark" . "820c7c677387181dd5fc5333578e7438fb4d7a57") + ("compat" . "d1e893b02301a7321ca9879bc9a4da50e2fdf09f") + ("consult" . "4b8f8a55e875f705925b954822127bfbc7045c82") + ("csv-mode" . "ec958a8f92c41726f91f188d75e176eb1bdf4252") + ("dash.el" . "6db80c711ce947f6c6fa11e5c2257fff2c79d139") + ("dumb-jump" . "d9503c157ab88f0ed2fa1301aeb57e95ac564760") + ("el-get" . "05bb836e3dfac8ffe4b8a10ec332aa2f661523ce") + ("emacs-idle-highlight-mode" . "c8f0fa148bf748f9fa7b88a4892e3d494c040afe") + ("emacsmirror-mirror" . "f872ac8a235d4344c3b2498de505fce00991764b") + ("embark" . "60e3a02429f0187164878cf006172fa3f87f89ff") ("epl" . "78ab7a85c08222cd15582a298a364774e3282ce6") - ("f.el" . "af7d37c619010b576fd22b50c62c71ff33093f3c") - ("flycheck" . "5f2ef177cb21ae8b73714575802beef04abd0f5e") - ("git-timemachine" . "13769fb603ae88c64566529eae4525ce88026e86") - ("gnu-elpa-mirror" . "eb1199591ec3cb8a4d1f1a20bd14ca0e52eafdd0") - ("ht.el" . "3c1677f1bf2ded2ab07edffb7d17def5d2b5b6f6") - ("hydra" . "317e1de33086637579a7aeb60f77ed0405bf359b") - ("js2-mode" . "a297ec2c2d9aa50ddc6c06959bb5a054e17b692a") - ("let-alist" . "021fc10df2e44faba4728d849ee767cf890aa51a") - ("lsp-mode" . "99b812ebd44da435bc593f016918415b6f6f051c") - ("lsp-treemacs" . "fbd08a54d232bbae350632e3789f70d68ddcbc15") - ("magit" . "152478b01f37e3aee1369e815985f184d8c864c5") - ("map" . "a0e501aede34f183a8baa5d3d41610a3ffa1728e") - ("markdown-mode" . "5d98592fe516748034d8baf92d7c0ba045e1f87a") - ("melpa" . "cebfd6d6356a70955f518c785ec9258305de9415") - ("meow" . "2a736d9b98fd67f6b2f28ec80ed64bb53de194cc") - ("nongnu-elpa" . "0e54bf5f6d048bdb87ae648237dbadc2b2217b4b") - ("org" . "6ab611720d29d069a1cb9b62614a873755bba243") - ("parseclj" . "4d0e780e00f1828b00c43099e6eebc6582998f72") - ("parseedn" . "a09686fbb9113b8b1b4f20c9e1dc0d6fea01a64f") - ("pfuture" . "19b53aebbc0f2da31de6326c495038901bffb73c") + ("flycheck" . "e56e30d8c66ffc9776d07740658d3b542c1a8e21") + ("gnu-elpa-mirror" . "114d3a1b41a0327ca6c2bb461d54f7a2175af1cf") + ("js2-mode" . "79bc78d77db0d2e8e43dc0f9e0504ad90bcbc26d") + ("let-alist" . "e3a340188a05be9e147056ff60d82e4eb614525b") + ("magit" . "4f4ad9c091daf769f8a0a562f6d14a71aa6c3192") + ("markdown-mode" . "50e4452c95113df55953cfc310d7e18d8e6205de") + ("melpa" . "c36d467638bc9f3578b4699c7d1ae513fd23b782") + ("meow" . "ba0cf4d1607971374351a68e48581d3ff4184c0e") + ("nongnu-elpa" . "7be7879e3ea01401ff51a515da882e79148392ea") + ("orderless" . "6936fe46ef07df168a423f04efeda130b4e69753") + ("paredit" . "9a2c4b37fc8c1c7bdbb1f86fdec874c0d0652e64") ("pkg-info" . "76ba7415480687d05a4353b27fea2ae02b8d9d61") - ("posframe" . "3b97dc180b03498103cfcc7f44e64150df440bf0") - ("projectile" . "271007c6611fcb08ddd326d7de9727c2ad5ef265") - ("queue" . "130c2d656cd5d7376552272fab9e50a7c37d0c4a") - ("s.el" . "e957dcb0677da18b2bb60ad867db5df5c35b5616") - ("sesman" . "e0f555f963c9f02f8e4a50e06fc353eb4c15ee77") - ("smartparens" . "1d5cd5e8d46e182b935f8cd3cf29c8c4410aab0a") - ("spinner" . "634529bb3173e09b37499f636de70abf29d9fa8a") - ("straight.el" . "3eca39dfc6797243ec7d1c6a7d45142407f73f88") - ("transient" . "75a5076def1e6f5265eb2346a951ba9d97502fc9") - ("treemacs" . "983ea5a66801a5c1f6e32e3d515bd48761677ac6") - ("use-package" . "bcf0984cf55b70fe6896c6a15f61df92b24f8ffd") - ("with-editor" . "df74385b455cd7687232ad189acfea16cb44dd04")) + ("popup-el" . "2868885b2ba64fd469f0aa10a734ceeaf49a1baa") + ("projectile" . "971cd5c4f25ff1f84ab7e8337ffc7f89f67a1b52") + ("s.el" . "dda84d38fffdaf0c9b12837b504b402af910d01d") + ("straight.el" . "9b11112b2e7aedd994feb2d8f95bd66dbc5749a5") + ("transient" . "b150b48b310d06db87e673f5aef672b341bd001e") + ("use-package" . "a6e856418d2ebd053b34e0ab2fda328abeba731c") + ("with-editor" . "fcd186d1e684c2dca6497c89af77b27b2b036c11")) :gamma