Set up parinfer, reformat all config according to parinfer

This commit is contained in:
Curt Spark 2026-03-08 21:53:42 +00:00
parent 5921b99b2d
commit d13f9d431d
2 changed files with 525 additions and 511 deletions

1
.gitignore vendored
View File

@ -12,6 +12,7 @@ auto-save-list/
transient/
straight/
elpaca/
parinfer-rust/
eshell/history
eshell/lastdir
server

167
init.el
View File

@ -54,8 +54,8 @@
(set-frame-font "MesloLGL Nerd Font 20")
(setq default-frame-alist '((font . "MesloLGL Nerd Font 20")))
(defun client-config ()
(scroll-bar-mode 0)
)
(scroll-bar-mode 0))
(add-hook 'after-make-frame-functions #'(lambda (frame)
(select-frame frame)
(client-config)))
@ -142,8 +142,8 @@
(setq gc-cons-threshold 800000))
(add-hook 'minibuffer-setup-hook 'gcmh-mode-optimisation-setup-hook)
(add-hook 'minibuffer-exit-hook 'gcmh-mode-optimisation-exit-hook)
)
(add-hook 'minibuffer-exit-hook 'gcmh-mode-optimisation-exit-hook))
; Fontification
(jit-lock-mode 1)
(jit-lock-debug-mode 1)
@ -178,8 +178,8 @@
(add-to-list 'tramp-remote-path 'tramp-own-remote-path)
(when (eq window-system 'w32)
(setq tramp-default-method "plink"))
)
(setq tramp-default-method "plink")))
; Tramp RPC - Alternate backend promising more speed
(use-package tramp-rpc
@ -195,8 +195,13 @@
(use-package org
:ensure (:wait t)
:demand t
:after evil
:hook
(org-agenda-mode . (lambda() (org-agenda-entry-text-mode 1)))
:bind
(:map org-agenda-mode-map
("C-j" . evil-next-line)
("C-k" . evil-previous-line))
:config
(setq org-agenda-files '("~/Nextcloud/Agenda"))
;This is will integrate the Calendar/Diary into Org-Agenda, so you can get access to dates on public holidays etc. Set diary to true:
@ -210,13 +215,13 @@
(setq org-agenda-skip-scheduled-if-done nil)
(setq agenda-skip-deadline-if-done nil)
(setq org-startup-folded t)
)
(setq org-startup-folded t))
; For Org Pomodoro notification sound
(use-package sound-wav
:ensure t
)
:ensure t)
; Org Pomodoro
(use-package org-pomodoro
:ensure t
@ -227,8 +232,8 @@
(setq org-pomodoro-keep-killed-pomodoro-time t)
(setq org-pomodoro-play-sounds t)
(setq org-pomodoro-ticking-sound-p nil)
(setq org-pomodoro-audio-player "mpv")
)
(setq org-pomodoro-audio-player "mpv"))
(defun sound-alert (alert)
"Play a sound notification and show message ALERT."
(sound-wav-play (expand-file-name (concat user-emacs-directory "elpaca/builds/org-pomodoro/resources/bell.wav")))
@ -253,8 +258,8 @@
(sound-alert (concat "ORG ALERT: "
;(plist-get info :title)
(plist-get info :message)))))
(setq alert-default-style 'custom-org-alert-notification)
)
(setq alert-default-style 'custom-org-alert-notification))
; System notifications of org agenda items
(use-package org-wild-notifier
@ -274,16 +279,16 @@
;; Pass additional arguments to alert
(setq org-wild-notifier-extra-alert-plist '(:persistent t))
(org-wild-notifier-mode)
)
(org-wild-notifier-mode))
; Upcoming agenda items in modeline
(use-package org-upcoming-modeline
:ensure t
:after org ; if you don't want it to start until org has been loaded
:config
(org-upcoming-modeline-mode)
)
(org-upcoming-modeline-mode))
; Org Mode Journalling
(use-package org-journal
@ -292,8 +297,8 @@
:config
(setq org-journal-dir "~/Nextcloud/Journal/")
(setq org-journal-file-type 'daily)
(setq org-journal-file-format "%Y%m%d.org")
)
(setq org-journal-file-format "%Y%m%d.org"))
;; Org Latex Preview Scale
; Automatically toggle Org mode LaTeX fragment previews as the cursor enters and exits them
@ -303,8 +308,8 @@
:config
(add-hook 'org-mode-hook 'org-latex-preview)
(add-hook 'org-mode-hook 'org-fragtog-mode)
(setq org-format-latex-options (plist-put org-format-latex-options :scale 3.0))
)
(setq org-format-latex-options (plist-put org-format-latex-options :scale 3.0)))
;; Emacs minibuffer configurations.
(use-package emacs
@ -323,9 +328,9 @@
(read-extended-command-predicate #'command-completion-default-include-p)
;; Do not allow the cursor in the minibuffer prompt
(minibuffer-prompt-properties
'(read-only t cursor-intangible t face minibuffer-prompt)
)
)
'(read-only t cursor-intangible t face minibuffer-prompt)))
;; Doom Theme
(use-package doom-themes
@ -334,10 +339,10 @@
;; Global settings (defaults)
(setq
doom-themes-enable-bold t ; if nil, bold is universally disabled
doom-themes-enable-italic t ; if nil, italics is universally disabled
)
(load-theme 'doom-gruvbox-light t)
)
doom-themes-enable-italic t) ; if nil, italics is universally disabled
(load-theme 'doom-gruvbox-light t))
;; Autocompletion configuration
;(use-package ido-vertical-mode
@ -356,8 +361,8 @@
(define-key vertico-map (kbd "C-k") 'vertico-previous)
(define-key vertico-map (kbd "C-j") 'vertico-next)
:init
(vertico-mode)
)
(vertico-mode))
;; Fuzzy matching for completion frameworks like Vertico
(use-package orderless
@ -365,8 +370,8 @@
:custom
(completion-styles '(orderless basic))
(completion-category-overrides '((file (styles partial-completion))))
(completion-pcm-leading-wildcard t) ;; Emacs 31: partial-completion behaves like substring
)
(completion-pcm-leading-wildcard t)) ;; Emacs 31: partial-completion behaves like substring
;; Enhanced commands that Vertico can make use of
(use-package consult
@ -374,15 +379,15 @@
:config
(define-key global-map [remap isearch-forward] 'consult-ripgrep)
(define-key global-map [remap switch-to-buffer] 'consult-buffer)
(define-key global-map [remap set-fill-column] 'consult-fd)
)
(define-key global-map [remap set-fill-column] 'consult-fd))
;; Persist history over Emacs restarts. Vertico sorts by history position.
(use-package savehist
:ensure nil
:init
(savehist-mode)
)
(savehist-mode))
;; Corfu Autocomplete in buffer
(use-package corfu
@ -396,10 +401,10 @@
:config
(setq
auto nil
corfu-preselect 'first
)
corfu-preselect 'first))
;;(global-corfu-mode)
)
;; Evil Config
; Vim Bindings
@ -411,15 +416,15 @@
(evil-mode 1)
:config
(define-key evil-insert-state-map (kbd "C-g") 'evil-force-normal-state)
(define-key evil-motion-state-map [remap evil-search-forward] 'consult-line)
)
(define-key evil-motion-state-map [remap evil-search-forward] 'consult-line))
; Evil Collection, configs evil bindings for more packages
(use-package evil-collection
:after evil
:ensure t
:config
(evil-collection-init)
)
(evil-collection-init))
;; Eshell config
; Like zoxide
@ -429,8 +434,8 @@
:config
(add-hook 'eshell-mode-hook
(defun my-eshell-mode-hook ()
(require 'eshell-z)))
)
(require 'eshell-z))))
; Bash completion commands in eshell
(use-package bash-completion
:ensure t
@ -443,8 +448,8 @@
(add-hook 'eshell-mode-hook
(lambda ()
(add-hook 'completion-at-point-functions
'bash-completion-capf-nonexclusive nil t)))
)
'bash-completion-capf-nonexclusive nil t))))
; Import bash aliases to eshell
(defun eshell-load-bash-aliases ()
"Read Bash aliases and add them to the list of eshell aliases."
@ -472,8 +477,8 @@
(add-hook 'eshell-load-hook #'eat-eshell-mode)
;; For `eat-eshell-visual-command-mode'.
(add-hook 'eshell-load-hook #'eat-eshell-visual-command-mode)
)
(add-hook 'eshell-load-hook #'eat-eshell-visual-command-mode))
; New create new eshell instance
(defun eshell/new ()
(interactive)
@ -483,8 +488,8 @@
(use-package sudo-edit
:ensure t
:config
(add-hook 'before-save-hook 'sudo-before-save-hook)
)
(add-hook 'before-save-hook 'sudo-before-save-hook))
(setq tramp-auto-save-directory "~/.emacs.d/tramp-autosave")
;; Magit
@ -590,8 +595,8 @@
(mu4e-inbox-folder . "/personal-tuxtank/Inbox")
(mu4e-drafts-folder . "/personal-tuxtank/Drafts")
(mu4e-sent-folder . "/personal-tuxtank/Sent Mail")
(mu4e-trash-folder . "/personal-tuxtank/Trash"))))
)
(mu4e-trash-folder . "/personal-tuxtank/Trash")))))))
;(setq mu4e-maildir-shortcuts
; '(("/Gmail/Inbox" . ?i)
@ -599,13 +604,21 @@
; ("/Gmail/[Gmail]/Trash" . ?t)
; ("/Gmail/[Gmail]/Drafts" . ?d)
; ("/Gmail/[Gmail]/All Mail" . ?a)))
)
)
;; Emacs everywhere - Use emacs for any text input
(use-package emacs-everywhere
:ensure t)
;; Parinfer mode - We will use conventional 2 spaces instead of tabs for lisp
(use-package parinfer-rust-mode
:ensure (:host github :repo "justinbarclay/parinfer-rust-mode")
:hook (emacs-lisp-mode . (lambda()
(setq-local tab-width 2)
(indent-tabs-mode -1)
(parinfer-rust-mode))))
;; Rainbow delimiters
(use-package rainbow-delimiters
:ensure t
@ -639,8 +652,8 @@
(rust . ("https://github.com/tree-sitter/tree-sitter-rust"))
(sql . ("https://github.com/m-novikov/tree-sitter-sql"))
(toml . ("https://github.com/tree-sitter/tree-sitter-toml"))
(zig . ("https://github.com/GrayJack/tree-sitter-zig")))
)
(zig . ("https://github.com/GrayJack/tree-sitter-zig"))))
:config ;; Credit to https://github.com/Nathan-Furnal/dotemacs/blob/df9b845563a84a927ff762e172334cf772253a44/init.el#L1154
(defun nf/treesit-install-all-languages ()
"Install all languages specified by `treesit-language-source-alist'."
@ -649,8 +662,8 @@
(dolist (lang languages)
(treesit-install-language-grammar lang)
(message "`%s' parser was installed." lang)
(sit-for 0.75))))
)
(sit-for 0.75)))))
(setq treesit-font-lock-level 4)
; Remap basic modes to treesit equivalent
(use-package bash-ts-mode
@ -697,9 +710,9 @@
(html-mode . html-ts-mode)
(css-mode . css-ts-mode)
(js-mode . js-ts-mode)
(javascript-mode . js-ts-mode)
)
)
(javascript-mode . js-ts-mode)))
;; Programming treesit style config
; Enforcing tabs as programming style
@ -724,8 +737,8 @@
:ensure nil
:hook
(prog-mode . flymake-mode)
(emacs-lisp-mode . flymake-mode)
)
(emacs-lisp-mode . flymake-mode))
; Flyover for nice in buffer flymake error/warning messages.
(use-package flyover
:ensure t
@ -739,8 +752,8 @@
(flyover-display-mode 'show-only-on-same-line)
;; Completion integration
(flyover-hide-during-completion t)
)
(flyover-hide-during-completion t))
;; LSP Configuration
(use-package eglot
@ -755,11 +768,11 @@
css-ts-mode
js-ts-mode
typescript-ts-mode
tsx-ts-mode
) . eglot-ensure))
tsx-ts-mode)
. eglot-ensure))
:custom
(eglot-ignored-server-capabilities '(:documentOnTypeFormattingProvider))
)
(eglot-ignored-server-capabilities '(:documentOnTypeFormattingProvider)))
;; HTML Emmet Snippets
(use-package emmet-mode
@ -770,8 +783,8 @@
(html-ts-mode . emmet-mode)
(css-ts-mode . emmet-mode)
:config
(setq emmet-indentation custom-tab-width)
)
(setq emmet-indentation custom-tab-width))
;; JS Prettier Mode
(use-package prettier-js
@ -781,8 +794,8 @@
(typescript-ts-mode . prettier-js-mode)
(tsx-ts-mode . prettier-js-mode)
:config
(setq prettier-js-use-modules-bin t)
)
(setq prettier-js-use-modules-bin t))
(custom-set-variables
;; custom-set-variables was added by Custom.
@ -793,9 +806,9 @@
'(package-selected-packages nil)
'(smtpmail-smtp-server "smtp.cspark.dev")
'(smtpmail-smtp-service 25))
(custom-set-faces
(custom-set-faces)
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
)