branch: externals/beardbolt commit db87a0a6a45549d4a681434d2d2a497f00bd72d4 Author: Jay Kamat <jaygka...@gmail.com> Commit: Jay Kamat <jaygka...@gmail.com>
Refactor rmsbolt-temp-dir to be more clear it's a private variable --- rmsbolt.el | 53 +++++++++++++++++++++++++++-------------------------- 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/rmsbolt.el b/rmsbolt.el index 46745cc146..70134adf50 100644 --- a/rmsbolt.el +++ b/rmsbolt.el @@ -106,25 +106,12 @@ :group 'rmsbolt) ;;;; Variables: -(defvar rmsbolt-temp-dir nil - "Temporary directory to use for compilation and other reasons.") -(defvar rmsbolt-shell "bash" - "Shell rmsbolt will use to split paths.") (defvar rmsbolt-output-buffer "*rmsbolt-output*") ;; whether rmsbolt-mode is enabled. (defvar rmsbolt-mode) (defvar rmsbolt-hide-compile t) (defvar rmsbolt-binary-asm-limit 10000) -(defun rmsbolt-output-filename (src-buffer &optional asm) - "Function for generating an output filename for SRC-BUFFER. - -Outputs assembly file if ASM." - (if (and (not asm) - (buffer-local-value 'rmsbolt-disassemble src-buffer)) - (expand-file-name "rmsbolt.out" rmsbolt-temp-dir) - (expand-file-name "rmsbolt.s" rmsbolt-temp-dir))) - (defvar-local rmsbolt-line-mapping nil "Line mapping hashtable from source lines -> asm lines") (defvar-local rmsbolt-current-line nil @@ -143,6 +130,10 @@ Outputs assembly file if ASM." "Idle timer for rmsbolt overlays.") (defvar rmsbolt--compile-idle-timer nil "Idle timer for rmsbolt overlays.") +(defvar rmsbolt--temp-dir nil + "Temporary directory to use for compilation and other reasons. + +Please DO NOT modify this blindly, as this directory will get deleted on Emacs exit.") (defvar rmsbolt-dir (when load-file-name (file-name-directory load-file-name)) @@ -150,6 +141,16 @@ Outputs assembly file if ASM." (defvar-local rmsbolt-src-buffer nil) +;;;; Variable-like funcs +(defun rmsbolt-output-filename (src-buffer &optional asm) + "Function for generating an output filename for SRC-BUFFER. + +Outputs assembly file if ASM." + (if (and (not asm) + (buffer-local-value 'rmsbolt-disassemble src-buffer)) + (expand-file-name "rmsbolt.out" rmsbolt--temp-dir) + (expand-file-name "rmsbolt.s" rmsbolt--temp-dir))) + ;;;; Regexes (defvar rmsbolt-label-def (rx bol (group (any ".a-zA-Z_$@") @@ -863,9 +864,9 @@ Outputs assembly file if ASM." 'identity (list "&&" demangler "<" (rmsbolt-output-filename src-buffer t) - ">" (expand-file-name "tmp.s" rmsbolt-temp-dir) + ">" (expand-file-name "tmp.s" rmsbolt--temp-dir) "&&" "mv" - (expand-file-name "tmp.s" rmsbolt-temp-dir) + (expand-file-name "tmp.s" rmsbolt--temp-dir) (rmsbolt-output-filename src-buffer t)) " ")) existing-cmd)) @@ -887,7 +888,7 @@ Outputs assembly file if ASM." (cmd (funcall func :src-buffer src-buffer)) ;; Convert to demangle if we need to (cmd (rmsbolt--demangle-command cmd lang src-buffer)) - (default-directory rmsbolt-temp-dir)) + (default-directory rmsbolt--temp-dir)) (when (buffer-local-value 'rmsbolt-disassemble src-buffer) (pcase @@ -932,29 +933,29 @@ Outputs assembly file if ASM." (defun rmsbolt--gen-temp () "Generate rmsbolt temp dir if needed." - (unless (and rmsbolt-temp-dir - (file-exists-p rmsbolt-temp-dir)) - (setq rmsbolt-temp-dir + (unless (and rmsbolt--temp-dir + (file-exists-p rmsbolt--temp-dir)) + (setq rmsbolt--temp-dir (make-temp-file "rmsbolt-" t)) (add-hook 'kill-emacs-hook (lambda () - (when (and (boundp 'rmsbolt-temp-dir) - rmsbolt-temp-dir - (file-directory-p rmsbolt-temp-dir)) - (delete-directory rmsbolt-temp-dir t)) - (setq rmsbolt-temp-dir nil))))) + (when (and (boundp 'rmsbolt--temp-dir) + rmsbolt--temp-dir + (file-directory-p rmsbolt--temp-dir)) + (delete-directory rmsbolt--temp-dir t)) + (setq rmsbolt--temp-dir nil))))) (defun rmsbolt-starter (lang-mode) "Code for fully setting up a language from LANG-MODE." (rmsbolt--gen-temp) (let* ((lang-def (rmsbolt--get-lang lang-mode)) (file-name - (expand-file-name (rmsbolt-l-starter-file-name lang-def) rmsbolt-temp-dir)) + (expand-file-name (rmsbolt-l-starter-file-name lang-def) rmsbolt--temp-dir)) (exists (file-exists-p file-name)) (src-file-name (when rmsbolt-dir (expand-file-name (rmsbolt-l-starter-file-name lang-def) - (expand-file-name "starters/" rmsbolt-dir )))) + (expand-file-name "starters/" rmsbolt-dir)))) (src-file-exists (when src-file-name (file-exists-p src-file-name)))) (if (not src-file-exists)