]> jturnerusa.dev Git - emacs.d/commitdiff
create library for reloading libraries while working
authorJohn Turner <jturner.usa@gmail.com>
Sun, 25 Jun 2023 01:38:52 +0000 (21:38 -0400)
committerJohn Turner <jturner.usa@gmail.com>
Sun, 25 Jun 2023 01:38:52 +0000 (21:38 -0400)
lisp/reload-library/reload-library.el [new file with mode: 0644]

diff --git a/lisp/reload-library/reload-library.el b/lisp/reload-library/reload-library.el
new file mode 100644 (file)
index 0000000..fde75e4
--- /dev/null
@@ -0,0 +1,37 @@
+;;; reload-library.el ---                            -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2023  
+
+;; 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 <https://www.gnu.org/licenses/>.
+
+(require 'loadhist)
+
+(defun reload-library ()
+  (interactive)
+  (let* ((library (read-string
+                  "Library to reload: "
+                  (buffer-file-name)))
+         (feature (intern (file-name-base library)))
+         (loaded (featurep feature))
+         (dependents (file-dependents library)))
+    (when (and loaded (or (not dependents)
+                          (yes-or-no-p (format "%s is required by another library, force reload?" feature))))
+      (unload-feature feature t))
+    (load-library library)))
+           
+
+      
+(provide 'reload-library)
+;;; reload-library.el ends here
+