2021-05-16 15:40:41 +00:00
|
|
|
;; Automatically update packages and removes old ones.
|
2020-12-30 00:08:12 +00:00
|
|
|
(use-package auto-package-update
|
|
|
|
:ensure t
|
|
|
|
:config
|
|
|
|
(setq auto-package-update-delete-old-versions t)
|
|
|
|
(setq auto-package-update-hide-results t)
|
2021-05-16 15:40:41 +00:00
|
|
|
(auto-package-update-maybe))
|
2021-01-30 23:14:36 +00:00
|
|
|
|
2021-05-16 15:40:41 +00:00
|
|
|
;; Light theme for using laptop outside.
|
2021-04-09 15:56:51 +00:00
|
|
|
(use-package basic-theme
|
|
|
|
:ensure t)
|
|
|
|
|
2021-05-16 15:40:41 +00:00
|
|
|
;;; Languages
|
2020-12-08 14:12:05 +00:00
|
|
|
(use-package haskell-mode
|
|
|
|
:ensure t
|
2021-05-16 15:40:41 +00:00
|
|
|
:config
|
|
|
|
(setq haskell-interactive-popup-errors nil)
|
2020-12-08 14:12:05 +00:00
|
|
|
:init
|
|
|
|
(add-hook 'haskell-mode-hook 'interactive-haskell-mode))
|
2020-12-10 16:05:32 +00:00
|
|
|
|
2021-01-28 21:26:52 +00:00
|
|
|
(use-package geiser
|
2021-04-28 18:08:51 +00:00
|
|
|
:ensure t
|
|
|
|
:config
|
2021-05-16 15:40:41 +00:00
|
|
|
;; Make geiser flash the region being evaluated on C-c C-c, like SLIME does.
|
2021-04-28 18:08:51 +00:00
|
|
|
(add-hook 'geiser-mode-hook
|
|
|
|
(lambda ()
|
|
|
|
(define-key geiser-mode-map (kbd "C-c C-c") nil) ;; remove default C-c C-c binding
|
|
|
|
(local-set-key (kbd "C-c C-c") (lambda ()
|
|
|
|
(interactive)
|
2021-05-16 15:40:41 +00:00
|
|
|
(fez/flash-region)
|
|
|
|
(geiser-eval-definition)))))
|
|
|
|
;; geiser requires extra packages for every implementation you want to use
|
|
|
|
(use-package geiser-guile
|
2021-05-04 12:42:01 +00:00
|
|
|
:ensure t)
|
2021-05-16 15:40:41 +00:00
|
|
|
(use-package geiser-mit
|
|
|
|
:ensure t)
|
|
|
|
(use-package geiser-chez
|
|
|
|
:ensure t))
|
2021-05-04 12:42:01 +00:00
|
|
|
|
2021-05-16 15:40:41 +00:00
|
|
|
(use-package slime
|
2021-04-09 15:56:51 +00:00
|
|
|
:ensure t
|
|
|
|
:config
|
2021-05-16 15:40:41 +00:00
|
|
|
(setq inferior-lisp-program "sbcl"))
|
2021-04-09 15:56:51 +00:00
|
|
|
|
2021-05-16 15:40:41 +00:00
|
|
|
;; Amazing s-expression editing mode.
|
|
|
|
(use-package paredit
|
2021-03-17 11:51:55 +00:00
|
|
|
:ensure t
|
|
|
|
:config
|
2021-05-16 15:40:41 +00:00
|
|
|
(add-hook 'scheme-mode-hook 'paredit-mode)
|
|
|
|
(add-hook 'lisp-mode-hook 'paredit-mode)
|
|
|
|
(add-hook 'emacs-lisp-mode-hook 'paredit-mode))
|
2021-03-17 11:51:55 +00:00
|
|
|
|
2021-05-16 15:40:41 +00:00
|
|
|
;;; Utility packages
|
|
|
|
;; undo-tree is mainly used for its redo functionality.
|
2021-02-23 11:53:35 +00:00
|
|
|
(use-package undo-tree
|
|
|
|
:ensure t
|
|
|
|
:bind
|
|
|
|
("C-_" . 'undo-tree-undo)
|
|
|
|
("M-_" . 'undo-tree-redo)
|
|
|
|
:config
|
2021-03-17 11:51:55 +00:00
|
|
|
(global-undo-tree-mode))
|
2021-01-28 21:26:52 +00:00
|
|
|
|
2021-05-16 15:40:41 +00:00
|
|
|
;; Nice startup screen.
|
2020-12-14 15:14:53 +00:00
|
|
|
(use-package dashboard
|
2020-12-10 16:05:32 +00:00
|
|
|
:ensure t
|
2020-12-14 15:14:53 +00:00
|
|
|
:config
|
|
|
|
(setq dashboard-banner-logo-title "")
|
|
|
|
(setq dashboard-startup-banner 'logo) ; add own image?
|
|
|
|
(setq dashboard-center-content t)
|
|
|
|
(setq dashboard-set-footer nil)
|
|
|
|
(dashboard-setup-startup-hook))
|
2020-12-15 12:03:18 +00:00
|
|
|
|
2021-05-16 15:40:41 +00:00
|
|
|
;; Easier selection for s-expressions and other things.
|
2020-12-17 05:54:31 +00:00
|
|
|
(use-package expand-region
|
|
|
|
:ensure t
|
2021-05-16 15:40:41 +00:00
|
|
|
:bind
|
|
|
|
("C-=" . er/expand-region)
|
2020-12-17 05:54:31 +00:00
|
|
|
:config
|
|
|
|
(pending-delete-mode t)) ; if you start typing while a word is selected, overwrite it
|
2020-12-20 10:02:24 +00:00
|
|
|
|
2021-05-16 15:40:41 +00:00
|
|
|
;; Move lines of text up or down.
|
2021-02-23 11:46:16 +00:00
|
|
|
(use-package move-text
|
|
|
|
:ensure t
|
|
|
|
:config
|
|
|
|
(global-set-key (kbd "M-p") 'move-text-up)
|
|
|
|
(global-set-key (kbd "M-n") 'move-text-down))
|
|
|
|
|
2021-05-16 15:40:41 +00:00
|
|
|
;; Multiple cursors make it easier to refactor stuff.
|
2021-02-23 11:46:16 +00:00
|
|
|
(use-package multiple-cursors
|
|
|
|
:ensure t
|
|
|
|
:config
|
|
|
|
(global-set-key (kbd "C->") 'mc/mark-next-like-this))
|
|
|
|
|
2021-05-16 15:40:41 +00:00
|
|
|
;; Jump to definitions and files with M-.
|
2020-12-20 10:02:24 +00:00
|
|
|
(use-package dumb-jump
|
|
|
|
:ensure t
|
|
|
|
:config
|
|
|
|
(add-hook 'xref-backend-functions #'dumb-jump-xref-activate))
|
2020-12-24 11:27:57 +00:00
|
|
|
|
2020-12-30 00:08:12 +00:00
|
|
|
;; avy - jump around files more easily
|
|
|
|
(use-package avy
|
|
|
|
:ensure t
|
|
|
|
:bind ("M-s" . avy-goto-char))
|
|
|
|
|
2021-05-16 15:40:41 +00:00
|
|
|
;; Amazing git porcelain.
|
2020-12-24 11:27:57 +00:00
|
|
|
(use-package magit
|
|
|
|
:ensure t)
|
2021-02-23 11:46:16 +00:00
|
|
|
|
2021-05-16 15:40:41 +00:00
|
|
|
;; Minibuffer completion. Vertical display and faster than ido.
|
|
|
|
(use-package selectrum
|
|
|
|
:ensure t
|
|
|
|
:config
|
|
|
|
(selectrum-mode t))
|
|
|
|
|
|
|
|
;; better incremental search with minibuffer
|
|
|
|
(use-package swiper
|
|
|
|
:ensure t
|
|
|
|
:bind ("C-s" . 'swiper))
|
|
|
|
|
|
|
|
;; Instead of opening windows inside of Emacs, create new frames. This is great
|
|
|
|
;; for tiling window managers.
|
|
|
|
(use-package frames-only-mode
|
2021-02-23 11:46:16 +00:00
|
|
|
:ensure t
|
|
|
|
:config
|
2021-05-16 15:40:41 +00:00
|
|
|
(frames-only-mode))
|
2021-02-23 11:46:16 +00:00
|
|
|
|
2021-05-16 15:40:41 +00:00
|
|
|
;; Mode for browsing gemini/gopher sites.
|
|
|
|
(use-package elpher
|
|
|
|
:ensure t)
|
2021-03-17 11:51:55 +00:00
|
|
|
|
2021-02-23 11:46:16 +00:00
|
|
|
(provide 'packages)
|