I actually find a lot of its behaviour very annoying, rather than smart. Good old electric-pair-mode usually does what I want.
		
			
				
	
	
		
			94 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| # This file builds an Emacs pre-configured with the packages I need
 | |
| # and my personal Emacs configuration.
 | |
| 
 | |
| { pkgs, ... }:
 | |
| 
 | |
| with pkgs;
 | |
| with third_party.emacsPackagesNg;
 | |
| with third_party.emacs;
 | |
| 
 | |
| let
 | |
|   localPackages = pkgs.tools.emacs-pkgs;
 | |
|   emacsWithPackages = (third_party.emacsPackagesNgGen third_party.emacs26).emacsWithPackages;
 | |
| 
 | |
|   tazjinsEmacs = (emacsWithPackages(epkgs:
 | |
|   # Actual ELPA packages (the enlightened!)
 | |
|   (with epkgs.elpaPackages; [
 | |
|     ace-window
 | |
|     avy
 | |
|     pinentry
 | |
|     rainbow-mode
 | |
|     undo-tree
 | |
|   ]) ++
 | |
| 
 | |
|   # MELPA packages:
 | |
|   (with epkgs.melpaPackages; [
 | |
|     browse-kill-ring
 | |
|     cargo
 | |
|     clojure-mode
 | |
|     counsel
 | |
|     counsel-notmuch
 | |
|     dash-functional
 | |
|     direnv
 | |
|     dockerfile-mode
 | |
|     # TODO: eglot removed until workspace-folders are supported (needed for gopls)
 | |
|     # eglot
 | |
|     elixir-mode
 | |
|     elm-mode
 | |
|     erlang
 | |
|     exwm
 | |
|     go-mode
 | |
|     gruber-darker-theme
 | |
|     haskell-mode
 | |
|     ht
 | |
|     hydra
 | |
|     idle-highlight-mode
 | |
|     intero
 | |
|     ivy
 | |
|     ivy-pass
 | |
|     ivy-prescient
 | |
|     jq-mode
 | |
|     kotlin-mode
 | |
|     lsp-mode
 | |
|     magit
 | |
|     markdown-toc
 | |
|     multi-term
 | |
|     multiple-cursors
 | |
|     nginx-mode
 | |
|     nix-mode
 | |
|     paredit
 | |
|     password-store
 | |
|     pg
 | |
|     notmuch # this comes from pkgs.third_party
 | |
|     prescient
 | |
|     racket-mode
 | |
|     rainbow-delimiters
 | |
|     restclient
 | |
|     sly
 | |
|     string-edit
 | |
|     swiper
 | |
|     telephone-line
 | |
|     terraform-mode
 | |
|     toml-mode
 | |
|     transient
 | |
|     use-package
 | |
|     uuidgen
 | |
|     web-mode
 | |
|     websocket
 | |
|     which-key
 | |
|     xelb
 | |
|     yaml-mode
 | |
|   ]) ++
 | |
| 
 | |
|   # Custom packages
 | |
|   [ carp-mode localPackages.dottime ]
 | |
|   ));
 | |
| in third_party.writeShellScriptBin "tazjins-emacs" ''
 | |
|   exec ${tazjinsEmacs}/bin/emacs \
 | |
|     --debug-init \
 | |
|     --no-site-file \
 | |
|     --no-site-lisp \
 | |
|     --no-init-file \
 | |
|     --directory ${./config} \
 | |
|     --eval "(require 'init)" $@
 | |
| ''
 |