Initial commit
This commit is contained in:
31
elpa/slime-20171102.1213/contrib/slime-indentation.el
Normal file
31
elpa/slime-20171102.1213/contrib/slime-indentation.el
Normal file
@@ -0,0 +1,31 @@
|
||||
(require 'slime)
|
||||
(require 'slime-cl-indent)
|
||||
(require 'cl-lib)
|
||||
|
||||
(define-slime-contrib slime-indentation
|
||||
"Contrib interfacing `slime-cl-indent' and SLIME."
|
||||
(:swank-dependencies swank-indentation)
|
||||
(:on-load
|
||||
(setq common-lisp-current-package-function 'slime-current-package)))
|
||||
|
||||
(defun slime-update-system-indentation (symbol indent packages)
|
||||
(let ((list (gethash symbol common-lisp-system-indentation))
|
||||
(ok nil))
|
||||
(if (not list)
|
||||
(puthash symbol (list (cons indent packages))
|
||||
common-lisp-system-indentation)
|
||||
(dolist (spec list)
|
||||
(cond ((equal (car spec) indent)
|
||||
(dolist (p packages)
|
||||
(unless (member p (cdr spec))
|
||||
(push p (cdr spec))))
|
||||
(setf ok t))
|
||||
(t
|
||||
(setf (cdr spec)
|
||||
(cl-set-difference (cdr spec) packages :test 'equal)))))
|
||||
(unless ok
|
||||
(puthash symbol (cons (cons indent packages)
|
||||
list)
|
||||
common-lisp-system-indentation)))))
|
||||
|
||||
(provide 'slime-indentation)
|
||||
Reference in New Issue
Block a user