[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/beardbolt 3b7a5bc85a 288/323: Simplify M-x beardbolt-st
From: |
ELPA Syncer |
Subject: |
[elpa] externals/beardbolt 3b7a5bc85a 288/323: Simplify M-x beardbolt-starter. Less tmp directory cruft. |
Date: |
Thu, 9 Mar 2023 10:58:43 -0500 (EST) |
branch: externals/beardbolt
commit 3b7a5bc85a51374e562e61effe36096375727fa8
Author: João Távora <joaotavora@gmail.com>
Commit: João Távora <joaotavora@gmail.com>
Simplify M-x beardbolt-starter. Less tmp directory cruft.
* beardbolt.el (bb--temp-dir): Delete.
(bb--sandbox-dir): New helper.
(bb-starter, bb--c/c++-compile-specs): Use it.
(bb-starter-files): Switch order.
---
beardbolt.el | 41 +++++++++++++++++++++++------------------
1 file changed, 23 insertions(+), 18 deletions(-)
diff --git a/beardbolt.el b/beardbolt.el
index 657d92e300..eedcd5771a 100644
--- a/beardbolt.el
+++ b/beardbolt.el
@@ -134,12 +134,10 @@ Passed directly to compiler or disassembler."
"Which shell to prefer if available.
Used to work around inconsistencies in alternative shells.")
-(defvar bb--temp-dir nil
- "Temporary directory to use for compilation and other reasons.")
-
-(defun bb--temp-dir ()
- (or (and bb--temp-dir (file-exists-p bb--temp-dir) bb--temp-dir)
- (setq bb--temp-dir (make-temp-file "beardbolt-bb-" t))))
+(defun bb--sandbox-dir ()
+ (let ((d (expand-file-name "beardbolt-sandbox" user-emacs-directory)))
+ (make-directory d 'parents)
+ d))
(defvar bb-dir (file-name-directory load-file-name)
"The directory which beardbolt is installed to.")
@@ -235,7 +233,7 @@ Useful if you have multiple objdumpers and want to select
between them")
Returns a list (SPEC ...) where SPEC looks like (WHAT FN CMD)."
(cl-labels ((tmp (f newext)
(expand-file-name
- (format "%s.%s" (file-name-base f) newext) (bb--temp-dir)))
+ (format "%s.%s" (file-name-base f) newext) (bb--sandbox-dir)))
(objdump (in)
(let ((out (tmp in "bb-objdumped")))
`(("&&" ,bb-objdump-binary "-d" ,in
@@ -620,18 +618,25 @@ Interactively, determine LANG from `major-mode'."
;;;;; Starter Definitions
(defvar bb-starter-files
- '(("c" . "beardbolt.c")
- ("c++" . "beardbolt.cpp") ))
+ '(("c++" . "beardbolt.cpp")
+ ("c" . "beardbolt.c")))
;;;###autoload
(defun bb-starter (lang-name)
- "Setup new file based on the sample STARTER-FILE-NAME."
+ "Setup new sandbox file for experiments.
+With prefix argument, choose from starter files in `bb-starter-files'."
(interactive
- (list (completing-read "Language: " bb-starter-files nil t)))
+ (list (if current-prefix-arg
+ (completing-read "Language: " bb-starter-files nil t)
+ (caar bb-starter-files))))
(let* ((starter-file-name (cdr (assoc lang-name bb-starter-files)))
- (file-name
- (expand-file-name starter-file-name (bb--temp-dir)))
- (exists (file-exists-p file-name))
+ (base (file-name-base starter-file-name))
+ (ext (file-name-extension starter-file-name))
+ (sandbox-file
+ (expand-file-name (concat base "-"
+ (format-time-string "%FT%T%z")
+ "." ext)
+ (bb--sandbox-dir)))
(src-file-name
(when bb-dir
(expand-file-name starter-file-name
@@ -639,10 +644,10 @@ Interactively, determine LANG from `major-mode'."
(src-file-exists (when src-file-name
(file-exists-p src-file-name))))
(if (not src-file-exists)
- (error "Could not find starter files! Are you sure the starter/ folder
is available? If you want to overide, set `bb-dir' to your install path")
- (unless exists
- (copy-file src-file-name file-name))
- (find-file file-name)
+ (error "Could not find starter files!")
+ (unless (file-exists-p sandbox-file)
+ (copy-file src-file-name sandbox-file))
+ (find-file sandbox-file)
(bb-mode 1))))
(defun bb--recenter-maybe (pos)
- [elpa] externals/beardbolt ed99686703 267/323: Handle TTYs with unknown background color, (continued)
- [elpa] externals/beardbolt ed99686703 267/323: Handle TTYs with unknown background color, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 715f132d0e 263/323: Started rewriting. Too many changes to mention., ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 325327bc70 273/323: Use inhibit-modification-hooks when modifying buffer, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 5131185d13 272/323: Add a Makefile, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 9aba82b6cd 271/323: Update starter/test files, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt b6958c3e0a 277/323: * beardbolt.el: preserve-library-functions -> preserve-weak-symbols, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 2a11095c75 281/323: Rethink and simplify asm-processing algorithm, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 7ff619c375 283/323: Add some benchmarks, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 11a19cfa66 282/323: Simplify line correspondence and overlay management, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt e18e3ee5ae 289/323: Support compile_commands.json, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 3b7a5bc85a 288/323: Simplify M-x beardbolt-starter. Less tmp directory cruft.,
ELPA Syncer <=
- [elpa] externals/beardbolt 2e9abdbcbf 293/323: fixup README tweak, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 93778d8391 298/323: Don't try any window scrolling heroics on recompile, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 12e926f66b 300/323: Correct local variable section of benchmark file, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 782febee77 307/323: Add new option bb-execute and simplify more code, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 13c51a99e0 309/323: Rework window management again. Not more like godbolt, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 27f10327f3 308/323: Rework window management. Not a bad alternative., ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt f260a62397 312/323: Refactor some behaviour for easier language definition, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 3b88b18029 316/323: Update README.md, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 08227684f5 317/323: Provide better local variable defaults for starter examples, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt d9da365a0f 320/323: Rework rainbow overlays to make them slightly more useful, ELPA Syncer, 2023/03/09