CCE

Programming Lisp in Emacs

emacs-lisp:tangle ~/nix/lisp/lisp-core.el
(provide 'cce/lisp-core)
(use-package evil-lispy
  :diminish)
(defun cce/lisp-like-mode-hook ()

  (aggressive-indent-mode -1)
  (evil-lispy-mode))
  ; (parinfer-mode))
(defun cce/elisp-mode-hook ()
  (setq-local tab-width 8))

(use-package parinfer
  :ensure nil
  :config
  (setq parinfer-extensions
        '(defaults pretty-parens evil smart-yank)) 
  (evil-define-key 'normal 'parinfer-mode (kbd "<SPC>o") #'parinfer-toggle-mode)
  :hook
  (clojure-mode     . cce/lisp-like-mode-hook)
  (common-lisp-mode . cce/lisp-like-mode-hook)
  (emacs-lisp-mode  . cce/lisp-like-mode-hook)
  (emacs-lisp-mode  . cce/elisp-mode-hook)
  (lisp-mode        . cce/lisp-like-mode-hook)
  (scheme-mode      . cce/lisp-like-mode-hook))

MELPA now ignores upstream lispy-pkg.el files (ce48c84), so the nix-built lispy no longer propagates its swiper dependency and byte-compiling lispy-occur.el fails with require(swiper). This override adds it back:

nix:tangle ~/nix/overrides/lispy.nix
lispy = let
  old = epkgs.lispy;
in old.overrideAttrs {
  packageRequires = old.packageRequires ++ [
    epkgs.ace-window
    epkgs.avy
    epkgs.hydra
    epkgs.iedit
    epkgs.swiper
    epkgs.zoutline
  ];
};