summary refs log tree commit diff stats
path: root/lisp/+paredit.el
blob: ab176b88f7451ebb73bdc664e3bd6ec0907849f0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
;;; +paredit.el -*- lexical-binding: t -*-

;;; Fixing unquote-splicing behaviour with Paredit
;; https://www.n16f.net/blog/fixing-unquote-splicing-behaviour-with-paredit/

(require 'paredit)
(require 'seq)

(defcustom +paredit-no-space-prefixes '(",@")
  "Prefix strings to not insert a space after in `paredit'."
  :group 'paredit
  :type '(repeat string))

(defun +paredit-space-for-delimiter (endp delimiter)
  (let ((point (point)))
    (or endp
	(seq-every-p
	 (lambda (prefix)
	   (and (> point (length prefix))
		(let ((start (- point (length prefix)))
		      (end point))
		  (not (string= (buffer-substring start end) prefix)))))
	 +paredit-no-space-prefixes))))

(provide '+paredit)
;;; +paredit.el ends here