[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/beardbolt de183bea12 010/323: Add support for c++ and c
From: |
ELPA Syncer |
Subject: |
[elpa] externals/beardbolt de183bea12 010/323: Add support for c++ and c |
Date: |
Thu, 9 Mar 2023 10:57:50 -0500 (EST) |
branch: externals/beardbolt
commit de183bea1289ce3aff12aa004e099d563014549d
Author: Jay Kamat <jaygkamat@gmail.com>
Commit: Jay Kamat <jaygkamat@gmail.com>
Add support for c++ and c
---
rmsbolt.el | 111 +++++++++++++++++++++++++++++++++++++++++++------------------
1 file changed, 79 insertions(+), 32 deletions(-)
diff --git a/rmsbolt.el b/rmsbolt.el
index 78724afe67..e89b568006 100644
--- a/rmsbolt.el
+++ b/rmsbolt.el
@@ -103,18 +103,77 @@
(mode
'fundamental-mode
:type 'symbol
- :documentation "The mode to activate this language in."))
+ :documentation "The mode to activate this language in.")
+ (starter-file
+ nil
+ :type 'string
+ :documentation "Some starter code to jump off of, if not supplying your
own.")
+ (starter-file-name
+ nil
+ :type 'string
+ :documentation "The starter filename to use"))
(defvar rmsbolt-languages
`((c-mode
. ,(make-rmsbolt-lang :mode 'c
:options (make-rmsbolt-options
- :compile-cmd "gcc -g -O0")) )
+ :compile-cmd "gcc -O0")
+ :starter-file-name "rmsbolt.c"
+ :starter-file
+ "#include <stdio.h>
+
+// RMS: gcc -O0
+
+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);
+}
+"
+ ))
(c++-mode
. ,(make-rmsbolt-lang :mode 'c++-mode
:options (make-rmsbolt-options
- :compile-cmd "g++ -g -O0")) )
- ))
+ :compile-cmd "g++ -O0")
+ :starter-file-name "rmsbolt.cpp"
+ :starter-file
+ "#include <iostream>
+
+// RMS: g++ -O0
+
+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;
+}
+"
+ ))))
;;;; Macros
@@ -283,7 +342,7 @@
"Gets the rms command from the buffer, if available."
(save-excursion
(goto-char (point-min))
- (re-search-forward (rx "RMS:" (1+ space) (group (1+ (any "-" alnum
space)))) nil t)
+ (re-search-forward (rx "RMS:" (1+ space) (group (1+ (any "-" "+" alnum
space)))) nil t)
(match-string-no-properties 1)))
(defun rmsbolt--parse-options ()
"Parse RMS options from file."
@@ -324,40 +383,28 @@
;;;; Init commands
-(defun rmsbolt-c ()
- (interactive)
- (let* ((file-name (expand-file-name "rmsbolt.c" rmsbolt-temp-dir))
+
+(defun rmsbolt-starter (lang-mode)
+ "Code for "
+ (let* ((lang-def (cdr-safe (assoc lang-mode rmsbolt-languages)))
+ (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
- "#include <stdio.h>
-
-// RMS: gcc -O0
-
-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);
-}
-")
+ (rmsbolt-l-starter-file lang-def))
(save-buffer))
(unless rmsbolt-mode
- (rmsbolt-mode 1))))
+ (rmsbolt-mode 1)))
+ )
+(defun rmsbolt-c ()
+ (interactive)
+ (rmsbolt-starter 'c-mode))
+(defun rmsbolt-c++ ()
+ (interactive)
+ (rmsbolt-starter 'c++-mode))
;;;; Mode Definition:
- [elpa] externals/beardbolt 58b07a215c 268/323: Simplify some code, (continued)
- [elpa] externals/beardbolt 58b07a215c 268/323: Simplify some code, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 9f6d1cf10c 269/323: Remove some rmsbolt remnants, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 5deed3972e 276/323: * beardbolt.el (bb--reachable-p, bb--process-asm): Use obarrays., ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 291f82a324 266/323: Continue rewriting, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 3195997ccd 275/323: * beardbolt.el (bb--synch-relation-overlays): Rework and bugfix., ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt a13f8fe7f4 287/323: Reset beardbolt-specific locals before hacking them in, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 85d24d69f1 286/323: Add bb-kill-symbol-re option, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 10fe7307c3 291/323: Get a better C++ starter example, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 5324775417 321/323: Add beardbolt-shuffle-rainbow option, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 90b5cad9c1 016/323: Finish initial implementation of dissasembly, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt de183bea12 010/323: Add support for c++ and c,
ELPA Syncer <=
- [elpa] externals/beardbolt 627dd4c1c9 059/323: Allow for custom asm processing functions, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 978d8290a1 067/323: Add guide on adding new languages, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt f911321a02 058/323: Add support for automatically hot recompiling, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 86742e7b76 055/323: Merge branch 'master' of gitlab.com:jgkamat/rmsbolt, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 01f7664eda 060/323: Fix tests, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 36b701d70e 072/323: Fix broken tests, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 8d992d1da7 103/323: Add links to README, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt a74d54e764 109/323: Fix tests, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 859722f7e0 084/323: Add back support for Emacs 25, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 2eca2d59dd 100/323: Merge branch 'patch-2' into 'master', ELPA Syncer, 2023/03/09