emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/beardbolt 8dcd74b511 031/323: Clean up rmsbolt.c by mov


From: ELPA Syncer
Subject: [elpa] externals/beardbolt 8dcd74b511 031/323: Clean up rmsbolt.c by moving starters into helper files
Date: Thu, 9 Mar 2023 10:57:56 -0500 (EST)

branch: externals/beardbolt
commit 8dcd74b511098cda52ac5c113e9fd9c92171e3e1
Author: Jay Kamat <jaygkamat@gmail.com>
Commit: Jay Kamat <jaygkamat@gmail.com>

    Clean up rmsbolt.c by moving starters into helper files
---
 README.org           |  5 ++-
 rmsbolt.el           | 90 ++++++++++++----------------------------------------
 starters/rmsbolt.c   | 25 +++++++++++++++
 starters/rmsbolt.cpp | 25 +++++++++++++++
 4 files changed, 74 insertions(+), 71 deletions(-)

diff --git a/README.org b/README.org
index 3148ae0572..2347b7994d 100644
--- a/README.org
+++ b/README.org
@@ -26,5 +26,8 @@ add it..
 ** Quelpa
 
 #+BEGIN_SRC emacs-lisp
-  (quelpa '(rmsbolt :fetcher gitlab :repo "jgkamat/rmsbolt"))
+  (quelpa '(rmsbolt
+            :files (:defaults "starters")
+            :fetcher gitlab
+            :repo "jgkamat/rmsbolt"))
 #+END_SRC
diff --git a/rmsbolt.el b/rmsbolt.el
index becc9df5ac..de142cae19 100644
--- a/rmsbolt.el
+++ b/rmsbolt.el
@@ -111,6 +111,10 @@
 (defvar rmsbolt--idle-timer nil
   "Idle timer for rmsbolt overlays.")
 
+(defvar rmsbolt-dir (when load-file-name
+                      (file-name-directory load-file-name))
+  "The directory which rmsbolt is installed to.")
+
 (defvar-local rmsbolt-src-buffer nil)
 
 ;;;; Regexes
@@ -187,10 +191,6 @@
    'objdump
    :type symbol
    :documentation "The object dumper to use if dissasembling binary.")
-  (starter-file
-   nil
-   :type 'string
-   :documentation "Some starter code to jump off of, if not supplying your 
own.")
   (starter-file-name
    nil
    :type 'string
@@ -241,70 +241,14 @@
                           :supports-asm t
                           :starter-file-name "rmsbolt.c"
                           :compile-cmd-function #'rmsbolt--c-compile-cmd
-                          :dissas-hidden-funcs rmsbolt--hidden-func-c
-                          :starter-file
-                          "#include <stdio.h>
-
-// Local Variables:
-// rmsbolt-command: \"gcc -O3\"
-// rmsbolt-dissasemble: nil
-// End:
-
-int isRMS(int a) {
-        switch (a) {
-        case 'R':
-                 return 1;
-        case 'M':
-                 return 2;
-        case 'S':
-                 return 3;
-        default:
-                 return 0;
-        }
-}
-
-int main() {
-               char a = 1 + 1;
-               if (isRMS(a))
-                        printf(\"%c\\n\", a);
-}
-"
-                          ))
+                          :dissas-hidden-funcs rmsbolt--hidden-func-c))
    (c++-mode
     . ,(make-rmsbolt-lang :mode 'c++-mode
                           :compile-cmd "g++"
                           :supports-asm t
                           :starter-file-name "rmsbolt.cpp"
                           :compile-cmd-function #'rmsbolt--c-compile-cmd
-                          :dissas-hidden-funcs rmsbolt--hidden-func-c
-                          :starter-file
-                          "#include <iostream>
-
-// Local Variables:
-// rmsbolt-command: \"g++ -O3\"
-// rmsbolt-dissasemble: nil
-// End:
-
-int isRMS(int a) {
-        switch (a) {
-        case 'R':
-                 return 1;
-        case 'M':
-                 return 2;
-        case 'S':
-                 return 3;
-        default:
-                 return 0;
-        }
-}
-
-int main() {
-               char a = 1 + 1;
-               if (isRMS(a))
-                        std::cout << a << std::endl;
-}
-"
-                          ))))
+                          :dissas-hidden-funcs rmsbolt--hidden-func-c))))
 
 
 ;;;; Macros
@@ -624,14 +568,20 @@ int main() {
   (let* ((lang-def (rmsbolt--get-lang lang-mode))
          (file-name
           (expand-file-name (rmsbolt-l-starter-file-name lang-def) 
rmsbolt-temp-dir))
-         (exists (file-exists-p file-name)))
-    (find-file file-name)
-    (unless exists
-      (insert
-       (rmsbolt-l-starter-file lang-def))
-      (save-buffer))
-    (unless rmsbolt-mode
-      (rmsbolt-mode 1))))
+         (exists (file-exists-p file-name))
+         (src-file-name
+          (when rmsbolt-dir
+            (expand-file-name (rmsbolt-l-starter-file-name lang-def) (concat 
rmsbolt-dir "starters/"))))
+         (src-file-exists (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?")
+      (find-file file-name)
+      (unless exists
+        (insert-file-contents
+         src-file-name)
+        (save-buffer))
+      (unless rmsbolt-mode
+        (rmsbolt-mode 1)))))
 (defmacro rmsbolt-defstarter (lang mode)
   "Defines a starter for LANG and MODE."
   `(defun ,(intern (concat "rmsbolt-" lang)) ()
diff --git a/starters/rmsbolt.c b/starters/rmsbolt.c
new file mode 100644
index 0000000000..ea7b750eff
--- /dev/null
+++ b/starters/rmsbolt.c
@@ -0,0 +1,25 @@
+#include <stdio.h>
+
+// Local Variables:
+// rmsbolt-command: "gcc -O3"
+// rmsbolt-dissasemble: nil
+// End:
+
+int isRMS(int a) {
+        switch (a) {
+        case 'R':
+                 return 1;
+        case 'M':
+                 return 2;
+        case 'S':
+                 return 3;
+        default:
+                 return 0;
+        }
+}
+
+int main() {
+               char a = 1 + 1;
+               if (isRMS(a))
+                        printf("%c\n", a);
+}
diff --git a/starters/rmsbolt.cpp b/starters/rmsbolt.cpp
new file mode 100644
index 0000000000..49e401e021
--- /dev/null
+++ b/starters/rmsbolt.cpp
@@ -0,0 +1,25 @@
+#include <iostream>
+
+// Local Variables:
+// rmsbolt-command: "g++ -O3"
+// rmsbolt-dissasemble: nil
+// End:
+
+int isRMS(int a) {
+        switch (a) {
+        case 'R':
+                 return 1;
+        case 'M':
+                 return 2;
+        case 'S':
+                 return 3;
+        default:
+                 return 0;
+        }
+}
+
+int main() {
+               char a = 1 + 1;
+               if (isRMS(a))
+                        std::cout << a << std::endl;
+}



reply via email to

[Prev in Thread] Current Thread [Next in Thread]