-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpel-lisp.el
65 lines (51 loc) · 2.32 KB
/
pel-lisp.el
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
;;; pel-lisp.el --- PEL Lisp Editing Utilities -*-lexical-binding: t-*-
;; Copyright (C) 2020, 2023 Pierre Rouleau
;; Author: Pierre Rouleau <prouleau001@gmail.com>
;; This file is part of the PEL package
;; This file is not part of GNU Emacs.
;; This program is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;;
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
;; -----------------------------------------------------------------------------
;;; Commentary:
;;
;;; Code:
(require 'pel--base) ; use: `pel-current-buffer-filename'
(require 'elisp-mode) ; use: `emacs-lisp-byte-compile-and-load'
;;-pel-autoload
(defun pel-toggle-lisp-modes ()
"Toggle buffer's LISP mode: `lisp-interaction-mode' <-> `emacs-lisp-mode'."
(interactive)
(cond ((eq major-mode 'emacs-lisp-mode) (lisp-interaction-mode))
((eq major-mode 'lisp-interaction-mode) (emacs-lisp-mode))
(t (error "Current buffer not in a LISP-compatible mode"))))
;;-pel-autoload
(defun pel-byte-compile-file-and-load ()
"Byte compile and load the current elisp file.
Prompt if applied to an unsaved buffer to save to a file.
Issue an error if applied on a buffer not visiting a file.
Returns:
- nil if errors detected (listed in the *Compile-log* buffer)
- non-nil if there were no error:
- no-byte-compile : if file was current and there was no need to compile it.
- t : if file was compiled and no error were detected."
(interactive)
(call-interactively (function emacs-lisp-byte-compile-and-load)))
;;-pel-autoload
(defun pel-lint-elisp-file ()
"Run lint on Emacs Lisp file in current buffer."
(interactive)
(require 'elint)
(elint-file (pel-current-buffer-filename)))
;; -----------------------------------------------------------------------------
(provide 'pel-lisp)
;;; pel-lisp.el ends here