;;; -*- lexical-binding: t -*- ;; ;; -------------------------------------------------------------------------------- (require 'luki-lisp) ;; -------------------------------------------------------------------------------- (-> 'eldoc) (-> 'elide-head) (-> 'elisp-mode) (-> 'lisp-mode) (-> 'll-close) (-> 'll-dwim) (-> 'll-ide) (-> 'll-revert-buffer) ;; -------------------------------------------------------------------------------- (defalias 'elisp-mode #'emacs-lisp-mode) ;; -------------------------------------------------------------------------------- (global-eldoc-mode 1) (setq eldoc-idle-delay 0) ;; -------------------------------------------------------------------------------- (setq emacs-lisp-docstring-fill-column t) ; same as fill-column (setq initial-major-mode 'emacs-lisp-mode) ;; -------------------------------------------------------------------------------- (defun new-elisp-file () (i) (this-file-comment) (provide-file)) (defun provide-file (&optional file) (interactive "fFile: ") (or file (setq file (buffer-file-name))) (goto-beg) (let* ((name (file-name-base file)) (prov (@f "\n(provide '%s)\n" name))) (unless (re-search-forward prov nil 'noerror) (goto-end) (insert prov) (save-buffer)))) (defun lex (&optional more) (interactive "P") (save-excursion (goto-beg) (insert ";;; -*- lexical-binding: t -*-\n") (when more (insert ";;\n")) (save-buffer))) ;; -------------------------------------------------------------------------------- (defun point-in-comment-p (&optional print) (interactive "p") (let* ((cmt (nth 8 (syntax-ppss))) (msg (@f "%s comment" (if cmt "Yes:" "No")))) (prog1 cmt (when print ($ msg))))) (defun fill-all-comments (&optional beg end) (interactive (use-region)) (or beg (setq beg (point-min))) (or end (setq end (point-max))) (goto-char beg) (while (search-forward-regexp "^;;" end 'noerror) (fill-comment-paragraph))) ;; -------------------------------------------------------------------------------- (defun emacs-lisp-mode-hook-f () (abbrev-mode) (elide-head-mode)) (add-hook 'emacs-lisp-mode-hook #'emacs-lisp-mode-hook-f) ;; -------------------------------------------------------------------------------- (let ((kmap emacs-lisp-mode-map)) (keymap-set kmap "C-c C-c" #'compile) (keymap-set kmap "C-x C-s" #'save-buffer) (keymap-set kmap "M-n" #'eval-buffer)) ;; -------------------------------------------------------------------------------- (let ((kmap emacs-lisp-compilation-mode-map)) (set-close-key kmap)) ;; -------------------------------------------------------------------------------- (<- 'll-elisp)