Compare commits
	
		
			2 Commits
		
	
	
		
			26cbb9c985
			...
			ecabd37e3e
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| ecabd37e3e | |||
| f4a7cc1d80 | 
							
								
								
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -1,2 +1,5 @@ | ||||
| /etc/ | ||||
| /var/ | ||||
| /eln-cache/ | ||||
| /elpa/ | ||||
| /tree-sitter/     | ||||
|  | ||||
							
								
								
									
										163
									
								
								init.el
									
									
									
									
									
								
							
							
						
						
									
										163
									
								
								init.el
									
									
									
									
									
								
							| @ -7,7 +7,7 @@ | ||||
|  | ||||
| ;; Use melpa | ||||
| (require 'package) | ||||
| (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/")) | ||||
| (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t) | ||||
| (package-initialize) | ||||
|  | ||||
| ;; Ensure use-package is installed | ||||
| @ -33,14 +33,21 @@ | ||||
|  | ||||
| ;; basic stuff | ||||
| (use-package emacs | ||||
|   :hook (emacs-lisp-mode . (lambda () | ||||
|       (setq-local evil-lookup-func | ||||
|             #'my/describe-symbol-at-point))) | ||||
|   :hook ((emacs-lisp-mode . my/-emacs-lisp-mode-setup-evil-lookup) | ||||
|          (prog-mode . my/enable-electric-pair-mode)) | ||||
|   :init | ||||
|   (defun my/-emacs-lisp-mode-setup-evil-lookup () | ||||
|     (setq-local evil-lookup-func | ||||
|                 #'my/describe-symbol-at-point)) | ||||
|   (defun my/enable-electric-pair-mode () | ||||
|     (electric-pair-local-mode 1)) | ||||
|   (defun my/describe-symbol-at-point () | ||||
|     "Calls `describe-symbol' on the return value of `form-at-point'." | ||||
|     (interactive) | ||||
|     (describe-symbol (form-at-point))) | ||||
|     (let ((form (form-at-point))) | ||||
|       (if (consp form) | ||||
|           (describe-symbol (cadr form)) | ||||
|         (describe-symbol form)))) | ||||
|  | ||||
|   ;; Make show paren instant | ||||
|   (setq show-paren-delay 0) | ||||
| @ -58,9 +65,8 @@ | ||||
|   ;; Disable startup screen | ||||
|   (setq inhibit-startup-screen t) | ||||
|  | ||||
|   ;; rainbow-delimiters | ||||
|   (use-package rainbow-delimiters | ||||
|     :hook (prog-mode . rainbow-delimiters-mode)) | ||||
|   ;; show column numbers | ||||
|   (column-number-mode 1) | ||||
|  | ||||
|   ;; Disable the menu and tool bars | ||||
|   (menu-bar-mode -1) | ||||
| @ -72,10 +78,24 @@ | ||||
|   ;; Set fonts | ||||
|   (add-to-list 'default-frame-alist '(font . "FiraCode Nerd Font Mono-12")) | ||||
|  | ||||
|   ;; Some settings for programming | ||||
|   (setq-default indent-tabs-mode nil | ||||
| 		        tab-width 4 | ||||
|                 c-basic-offset 4 | ||||
|                 indent-line-function 'insert-tab) | ||||
|  | ||||
|   ;; Tree sitter download locations | ||||
|   (setq treesit-language-source-alist | ||||
|         '((c "https://github.com/tree-sitter/tree-sitter-c") | ||||
|     (cpp "https://github.com/tree-sitter/tree-sitter-cpp")))) | ||||
|           (cpp "https://github.com/tree-sitter/tree-sitter-cpp") | ||||
|           (java "https://github.com/tree-sitter/tree-sitter-java") | ||||
|           (python "https://github.com/tree-sitter/tree-sitter-python") | ||||
|           (rust "https://github.com/tree-sitter/tree-sitter-rust"))) | ||||
|   ;; Tree sitter major mode conversions | ||||
|   (setq major-mode-remap-alist | ||||
|         '((c-mode . c-ts-mode) | ||||
|           (java-mode . java-ts-mode) | ||||
|           (rust-mode . rust-ts-mode)))) | ||||
|  | ||||
| (use-package recentf | ||||
|   :config | ||||
| @ -110,16 +130,21 @@ | ||||
|  | ||||
| ;; avy | ||||
| (use-package avy | ||||
|   :bind ("C-c C-j" . avy-resume) | ||||
|   :bind (("C-c C-j" . avy-resume) | ||||
|          ("M-s s" . evil-avy-goto-char-2) | ||||
|          ("M-s S" . evil-avy-goto-line)) | ||||
|   :init | ||||
|   (define-minor-mode my/evil-avy-mode | ||||
|     "Minor mode to define avy motions for evil" | ||||
|     :global t | ||||
|     "A minor mode for binding avy commands to s and S in evil's normal and | ||||
| visual states." | ||||
|     :keymap (make-sparse-keymap)) | ||||
|   (evil-define-key '(normal visual operator motion) my/evil-avy-mode-map | ||||
|                    "s" #'evil-avy-goto-char-2 | ||||
|                    "S" #'evil-avy-goto-line) | ||||
|   (my/evil-avy-mode 1) | ||||
|   (define-globalized-minor-mode my/evil-avy-global-mode my/evil-avy-mode | ||||
|     (lambda () (my/evil-avy-mode 1)) | ||||
|     :predicate '((not magit-mode dired-mode proced-mode) t)) | ||||
|   (my/evil-avy-global-mode 1) | ||||
|   :config | ||||
|   (avy-setup-default)) | ||||
|  | ||||
| @ -141,7 +166,10 @@ | ||||
|   :bind (:map vertico-map | ||||
|               ("C-S-k" . kill-line) | ||||
|               ("C-k" . vertico-previous) | ||||
|          ("C-j" . vertico-next)) | ||||
|               ("C-j" . vertico-next) | ||||
|               ("RET" . vertico-directory-enter) | ||||
|               ("DEL" . vertico-directory-delete-char) | ||||
|               ("M-DEL" . vertico-directory-delete-word)) | ||||
|   :init | ||||
|   (setq vertico-cycle t | ||||
|         enable-recursive-minibuffers t | ||||
| @ -155,7 +183,10 @@ | ||||
| ;; orderless | ||||
| (use-package orderless | ||||
|   :autoload orderless-define-completion-style | ||||
|   :hook (text-mode . my/-setup-text-mode-completion-styles) | ||||
|   :init | ||||
|   (defun my/-setup-text-mode-completion-styles () | ||||
|     (setq-local completion-styles '(basic))) | ||||
|   (orderless-define-completion-style my/orderless-with-initialism | ||||
|     (orderless-matching-styles '(orderless-initialism | ||||
|                                  orderless-literal | ||||
| @ -165,7 +196,9 @@ | ||||
|         completion-category-overrides '((file | ||||
|                                          (styles basic partial-completion)) | ||||
|                                         (command | ||||
|                                           (my/orderless-with-initialism basic))))) | ||||
|                                          (my/orderless-with-initialism basic)) | ||||
|                                         (eglot | ||||
|                                          (orderless basic))))) | ||||
|  | ||||
| ;; marginalia | ||||
| (use-package marginalia | ||||
| @ -176,9 +209,14 @@ | ||||
|  | ||||
| ;; embark | ||||
| (use-package embark | ||||
|   :bind (("M-e" . embark-act) | ||||
|          :map minibuffer-local-map | ||||
|          ("M-E" . embark-collect))) | ||||
|   :bind (("C-." . embark-act) | ||||
| 	 ("C-;" . embark-dwim)) | ||||
|   :init | ||||
|   (setq embark-quit-after-action nil) | ||||
|   (add-to-list 'display-buffer-alist | ||||
|              '("\\`\\*Embark Collect \\(Live\\|Completions\\)\\*" | ||||
|                nil | ||||
|                (window-parameters (mode-line-format . none))))) | ||||
|  | ||||
| ;; consult | ||||
| (use-package consult | ||||
| @ -193,8 +231,9 @@ | ||||
|          ("C-x c f" . consult-focus-lines) | ||||
|          ("C-x c r" . consult-recent-file) | ||||
|          ("C-x c b" . consult-bookmark) | ||||
|          :map flymake-mode-map | ||||
|          ("C-c e" . consult-flymake)) | ||||
|          ("M-g i" . consult-imenu) | ||||
|          ("M-g I" . consult-imenu-multi) | ||||
|          ("M-g r" . consult-imenu-multi)) | ||||
|   :init | ||||
|   (defun my/consult-emacs-info () | ||||
|     "`consult-info' for emacs specific pages." | ||||
| @ -208,13 +247,39 @@ | ||||
|  | ||||
| ;; corfu (autocomplete) | ||||
| (use-package corfu | ||||
|   :bind ("M-<tab>" . corfu-complete) | ||||
|   :bind (("M-<tab>" . completion-at-point) | ||||
|          :map corfu-map | ||||
|          ("M-SPC" . corfu-insert-separator) | ||||
|          ("M-m" . my/corfu-move-to-minibuffer)) | ||||
|   :init | ||||
|   (defun my/corfu-move-to-minibuffer () | ||||
|     (interactive) | ||||
|     (when completion-in-region--data | ||||
|       (let ((completion-extra-properties corfu--extra) | ||||
|             completion-cycle-threshold completion-cycling) | ||||
|         (apply #'consult-completion-in-region completion-in-region--data)))) | ||||
|   (setq corfu-cycle t | ||||
|         corfu-auto t | ||||
|         corfu-on-exact-match nil | ||||
|         completion-cycle-threshold 3) | ||||
|   (global-corfu-mode 1)) | ||||
|   (global-corfu-mode 1) | ||||
|   (corfu-popupinfo-mode 1) | ||||
|   :config | ||||
|   (add-to-list 'corfu-continue-commands #'corfu-move-to-minibuffer)) | ||||
| (use-package corfu-terminal | ||||
|   :init | ||||
|   (corfu-terminal-mode 1)) | ||||
|  | ||||
| ;; cape (a bunch of capfs!) | ||||
| (use-package cape | ||||
|   :bind (("M-p" . cape-dabbrev) | ||||
|          ("M-P" . cape-line)) | ||||
|   :hook (text-mode . my/-cape-setup-text-mode) | ||||
|   :init | ||||
|   (defun my/-cape-setup-text-mode () | ||||
|     (setq-local completion-at-point-functions | ||||
|                 '(cape-dict cape-dabbrev))) | ||||
|   (add-to-list 'completion-at-point-functions #'cape-file)) | ||||
|  | ||||
| ;; xref | ||||
| (use-package xref | ||||
| @ -226,8 +291,24 @@ | ||||
|  | ||||
| ;; flymake | ||||
| (use-package flymake | ||||
|   :bind (:map flymake-mode-map | ||||
|               ("C-c e" . my/flymake-show-diagnostic-at-point) | ||||
|               ("C-c E" . consult-flymake)) | ||||
|   :hook (emacs-lisp-mode . my/enable-flymake-mode) | ||||
|   :init | ||||
|   (flymake-mode 1)) | ||||
|   (defun my/flymake-show-diagnostic-at-point () | ||||
|     (interactive) | ||||
|     (if-let ((pos (point)) | ||||
|              (diag (and flymake-mode | ||||
|                         (get-char-property pos 'flymake-diagnostic))) | ||||
|              (message (flymake--diag-text diag))) | ||||
|         (progn | ||||
|           ;; show the frame | ||||
|           ))) | ||||
|   (defun my/-flymake-show-diagnostic-hide-frame () | ||||
|     (make-frame-invisible my/-flymake-show-diagnostic-frame)) | ||||
|   (defun my/enable-flymake-mode () | ||||
|     (flymake-mode 1))) | ||||
|  | ||||
| ;; eldoc | ||||
| (use-package eldoc | ||||
| @ -235,17 +316,34 @@ | ||||
|   :init | ||||
|   (set eldoc-echo-area-use-multiline-p nil)) | ||||
|  | ||||
| ;; eglot | ||||
| (use-package eglot | ||||
|   :hook (((c-ts-mode c++-ts-mode java-ts-mode rust-ts-mode | ||||
|            python-ts-mode) . eglot-ensure) | ||||
|          (eglot-managed-mode . my/-eglot-setup-eldoc)) | ||||
|   :init | ||||
|   (defun my/-eglot-setup-eldoc () | ||||
|     "Setup eldoc variables for `eglot-managed-mode-hook'." | ||||
|     (setq-local eldoc-echo-area-use-multiline-p | ||||
|                 nil)) | ||||
|   (advice-add 'eglot-completion-at-point :around #'cape-wrap-buster) | ||||
|   (setq eglot-autoshutdown t | ||||
|         eglot-ignored-server-capabilities '(:inlayHintProvider))) | ||||
|  | ||||
| ;; rust | ||||
| (use-package rust-mode) | ||||
|  | ||||
| ;; json | ||||
| (use-package json-mode) | ||||
|  | ||||
| ;; vterm | ||||
| (use-package vterm | ||||
|   :bind ("M-RET" . vterm)) | ||||
|   :bind ("C-x C-a" . vterm)) | ||||
|  | ||||
| ;; proced | ||||
| (use-package proced | ||||
|   :bind ("C-x o" . proced) | ||||
|   :init | ||||
|   (evil-define-key '(normal visual motion) proced-mode-map | ||||
|                    "zf" #'proced-filter-interactive | ||||
|                    "zF" #'proced-format-interactive) | ||||
|   (setq proced-auto-update-flag t | ||||
|         proced-auto-update-interval 1)) | ||||
|  | ||||
| @ -261,7 +359,16 @@ | ||||
|                    "U" #'dired-unmark-all-marks)) | ||||
|  | ||||
| ;; magit | ||||
| (use-package magit) | ||||
| (use-package magit | ||||
|   :bind ("C-x C-m" . magit) | ||||
|   :init | ||||
|   (evil-define-key '(normal visual motion) magit-mode-map | ||||
|                    "s" #'magit-stage-file | ||||
|                    "S" #'magit-stage-modified)) | ||||
|  | ||||
| ;; rainbow-delimiters | ||||
| (use-package rainbow-delimiters | ||||
|   :hook (prog-mode . rainbow-delimiters-mode)) | ||||
|  | ||||
| ;; Theme (doom-themes) | ||||
| (use-package doom-themes | ||||
|  | ||||
		Reference in New Issue
	
	Block a user