(setq-default cursor-type 'bar)
#+end_src
+*** Allow scrolling in Isearch
+
+#+begin_src emacs-lisp
+(setq isearch-allow-scroll t)
+#+end_src
+
** Bindings
#+begin_src emacs-lisp
:custom-face (magit-diff-file-heading ((t (:weight normal)))))
#+end_src
-*** COMMENT [[https://github.com/abo-abo/swiper][Ivy]] (and friends)
+*** recentf
+
+Recently opened files.
+
+#+begin_src emacs-lisp
+(use-feature recentf
+ :defer 0.5
+ :config
+ (add-to-list 'recentf-exclude "^/\\(?:ssh\\|su\\|sudo\\)?:")
+ (setq recentf-max-saved-items 40))
+#+end_src
+
+*** [[https://github.com/abo-abo/swiper][Ivy]] (and friends)
#+begin_quote
Ivy - a generic completion frontend for Emacs, Swiper - isearch with
#+begin_src emacs-lisp
(use-package ivy
- :defer 1
+ :defer 0.6
:bind
(:map ivy-minibuffer-map
([escape] . keyboard-escape-quit)
#+begin_src emacs-lisp
(use-package swiper
+ :after ivy
:bind (("C-s" . swiper)
("C-r" . swiper)
("C-S-s" . isearch-forward)))
#+begin_src emacs-lisp
(use-package counsel
- :defer 1
+ :after ivy
:bind (([remap execute-extended-command] . counsel-M-x)
([remap find-file] . counsel-find-file)
("s-r" . counsel-recentf)
(defalias 'locate #'counsel-locate))
#+end_src
-*** COMMENT eshell
+*** eshell
#+begin_src emacs-lisp
-(use-package eshell
+(use-feature eshell
:defer 1
:commands eshell
:bind ("C-c a s e" . eshell)
(eshell-input-filter 'eshell-input-filter-initial-space))
#+end_src
-*** COMMENT Ibuffer
+*** Ibuffer
#+begin_src emacs-lisp
-(use-package ibuffer
+(use-feature ibuffer
:defer t
:bind
(("C-x C-b" . ibuffer-other-window)
:hook (ibuffer . (lambda () (ibuffer-switch-to-saved-filter-groups "default"))))
#+end_src
-*** COMMENT Outline
+*** Outline
#+begin_src emacs-lisp
-(use-package outline
+(use-feature outline
:defer t
:hook (prog-mode . outline-minor-mode)
:bind
("s" . outline-show-subtree)))
#+end_src
-* COMMENT Borg's =layer/essentials=
-:PROPERTIES:
-:CUSTOM_ID: borg-essentials
-:END:
-
-TODO: break this giant source block down into individual org sections.
+*** Dired
#+begin_src emacs-lisp
-(use-package dash
- :config (dash-enable-font-lock))
-
-(use-package diff-hl
- :config
- (setq diff-hl-draw-borders nil)
- (global-diff-hl-mode)
- (add-hook 'magit-post-refresh-hook 'diff-hl-magit-post-refresh t))
-
-(use-package ls-lisp
+(use-feature ls-lisp
:custom (ls-lisp-dirs-first t))
-(use-package dired
+(use-feature dired
:defer t
:config
(setq dired-listing-switches "-alh"
(interactive)
(a/dired-start-process "zathura"))))
:hook (dired-mode . dired-hide-details-mode))
+#+end_src
-(use-package eldoc
- :when (version< "25" emacs-version)
- :config (global-eldoc-mode))
+*** Help
-(use-package help
+#+begin_src emacs-lisp
+(use-feature help
:defer t
:config
(temp-buffer-resize-mode)
(setq help-window-select t))
+#+end_src
-(progn ; `isearch'
- (setq isearch-allow-scroll t))
+*** Tramp
-(use-package lisp-mode
+#+begin_src emacs-lisp
+(use-feature tramp
+ :defer t
:config
- (add-hook 'emacs-lisp-mode-hook 'outline-minor-mode)
- (add-hook 'emacs-lisp-mode-hook 'reveal-mode)
- (defun indent-spaces-mode ()
- (setq indent-tabs-mode nil))
- (add-hook 'lisp-interaction-mode-hook #'indent-spaces-mode))
+ (add-to-list 'tramp-default-proxies-alist '(nil "\\`root\\'" "/ssh:%h:"))
+ (add-to-list 'tramp-default-proxies-alist '("localhost" nil nil))
+ (add-to-list 'tramp-default-proxies-alist
+ (list (regexp-quote (system-name)) nil nil)))
+#+end_src
-(use-package man
+*** Dash
+
+#+begin_src emacs-lisp
+(use-package dash
:defer t
- :config (setq Man-width 80))
+ :config (dash-enable-font-lock))
+#+end_src
-(use-package paren
- :config (show-paren-mode))
+* Editing
+:PROPERTIES:
+:CUSTOM_ID: editing
+:END:
-(use-package prog-mode
- :config (global-prettify-symbols-mode)
- (defun indicate-buffer-boundaries-left ()
- (setq indicate-buffer-boundaries 'left))
- (add-hook 'prog-mode-hook #'indicate-buffer-boundaries-left))
+** =diff-hl=
-(use-package recentf
- :defer 0.5
+Highlight uncommitted changes in the left fringe.
+
+#+begin_src emacs-lisp
+(use-package diff-hl
:config
- (add-to-list 'recentf-exclude "^/\\(?:ssh\\|su\\|sudo\\)?:")
- (setq recentf-max-saved-items 40))
+ (setq diff-hl-draw-borders nil)
+ (global-diff-hl-mode)
+ :hook (magit-post-refresh . diff-hl-magit-post-refresh))
+#+end_src
+
+** ElDoc
+
+Display Lisp objects at point in the echo area.
+
+#+begin_src emacs-lisp
+(use-feature eldoc
+ :when (version< "25" emacs-version)
+ :config (global-eldoc-mode))
+#+end_src
+
+** paren
-(use-package savehist
+Highlight matching parens.
+
+#+begin_src emacs-lisp
+(use-feature paren
+ :config (show-paren-mode))
+#+end_src
+
+** =savehist=
+
+Save minibuffer history.
+
+#+begin_src emacs-lisp
+(use-feature savehist
:config (savehist-mode))
+#+end_src
+
+** =saveplace=
-(use-package saveplace
+Automatically save place in each file.
+
+#+begin_src emacs-lisp
+(use-feature saveplace
:when (version< "25" emacs-version)
:config (save-place-mode))
+#+end_src
-(use-package simple
- :config (column-number-mode))
+** =prog-mode=
-(progn ; `text-mode'
- (add-hook 'text-mode-hook #'indicate-buffer-boundaries-left)
- (add-hook 'text-mode-hook #'abbrev-mode))
+#+begin_src emacs-lisp
+(use-feature prog-mode
+ :config (global-prettify-symbols-mode)
+ (defun indicate-buffer-boundaries-left ()
+ (setq indicate-buffer-boundaries 'left))
+ (add-hook 'prog-mode-hook #'indicate-buffer-boundaries-left))
+#+end_src
-(use-package tramp
- :defer t
- :config
- (add-to-list 'tramp-default-proxies-alist '(nil "\\`root\\'" "/ssh:%h:"))
- (add-to-list 'tramp-default-proxies-alist '("localhost" nil nil))
- (add-to-list 'tramp-default-proxies-alist
- (list (regexp-quote (system-name)) nil nil)))
+** =text-mode=
+#+begin_src emacs-lisp
+(use-feature text-mode
+ :hook ((text-mode . indicate-buffer-boundaries-left)
+ (text-mode . abbrev-mode)))
#+end_src
-* COMMENT Editing
-:PROPERTIES:
-:CUSTOM_ID: editing
-:END:
-
** Company
#+begin_src emacs-lisp
(global-company-mode t))
#+end_src
-* COMMENT Syntax and spell checking
-:PROPERTIES:
-:CUSTOM_ID: syntax-spell-checking
-:END:
+** Flycheck
#+begin_src emacs-lisp
(use-package flycheck
#'endless/replace-quote))
#+end_src
-* COMMENT Programming modes
+* Programming modes
:PROPERTIES:
:CUSTOM_ID: programming-modes
:END:
+** Lisp
+
+#+begin_src emacs-lisp
+(use-feature lisp-mode
+ :config
+ (add-hook 'emacs-lisp-mode-hook 'outline-minor-mode)
+ (add-hook 'emacs-lisp-mode-hook 'reveal-mode)
+ (defun indent-spaces-mode ()
+ (setq indent-tabs-mode nil))
+ (add-hook 'lisp-interaction-mode-hook #'indent-spaces-mode))
+#+end_src
+
** [[http://alloytools.org][Alloy]] (with [[https://github.com/dwwmmn/alloy-mode][alloy-mode]])
#+begin_src emacs-lisp
(use-package alloy-mode
+ :straight (:host github :repo "dwwmmn/alloy-mode")
:defer t
:config (setq alloy-basic-offset 2))
#+end_src
** [[https://coq.inria.fr][Coq]] (with [[https://github.com/ProofGeneral/PG][Proof General]])
#+begin_src emacs-lisp
-(use-package proof-site ; Proof General
- :defer t
- :load-path "lib/proof-site/generic/")
+(use-package proof-general
+ :defer t)
#+end_src
** [[https://leanprover.github.io][Lean]] (with [[https://github.com/leanprover/lean-mode][lean-mode]])
("C-c l l" . hs-lint)))
#+end_src
-** Web dev
+** COMMENT Web dev
*** SGML and HTML
:after (treemacs))
#+end_src
-** geiser
+** COMMENT geiser
#+begin_src emacs-lisp
(use-package geiser)
(setq geiser-guile-load-path "~/src/git/guix"))
#+end_src
-** guix
+** COMMENT guix
#+begin_src emacs-lisp
(use-package guix
:CUSTOM_ID: emacs-enhancements
:END:
+** man
+
+#+begin_src emacs-lisp
+(use-feature man
+ :defer t
+ :config (setq Man-width 80))
+#+end_src
+
** [[https://github.com/justbur/emacs-which-key][which-key]]
#+begin_quote