* Blocks, Parentheses and Formatting Oh My! ** Parentheses, and Structural Editing Sometimes if I delete a parenthesis out of hand I spend the next minute or two kicking myself as I count the parentheses here and there. Well no more! With [[https://shaunlebron.github.io/parinfer/][Parinfer]] structural editing, and taming parentheses becomes a breeze. #+begin_src emacs-lisp (use-package parinfer-rust-mode :ensure t :init (setq parinfer-rust-auto-download t) :hook (emacs-lisp-mode . parinfer-rust-mode)) #+end_src I also have =smart-parens= for parentheses matching in modes where =parinfer= would be overkill. #+begin_src emacs-lisp (use-package smartparens :ensure t :hook (prog-mode text-mode markdown-mode) :config (require 'smartparens-config)) #+end_src Might as well highlight the parentheses to make them easier to spot. #+begin_src emacs-lisp (use-package highlight-parentheses :ensure t :hook (prog-mode . highlight-parentheses-mode)) #+end_src ** Indentation Level #+begin_src emacs-lisp ;; Indent guides (use-package highlight-indent-guides :defer t :hook (prog-mode . highlight-indent-guides-mode)) #+end_src ** List, and String Improvements #+begin_src emacs-lisp (use-package dash :ensure t) (use-package s :ensure t) #+end_src