[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/beardbolt 0a55783f33 029/323: Add skeleton for font-loc
From: |
ELPA Syncer |
Subject: |
[elpa] externals/beardbolt 0a55783f33 029/323: Add skeleton for font-lock |
Date: |
Thu, 9 Mar 2023 10:57:56 -0500 (EST) |
branch: externals/beardbolt
commit 0a55783f335baab66e172811a2f126916654b020
Author: Jay Kamat <jaygkamat@gmail.com>
Commit: Jay Kamat <jaygkamat@gmail.com>
Add skeleton for font-lock
---
rmsbolt.el | 78 +++++++++++++++++++++++++++++++++++++++-----------------------
1 file changed, 49 insertions(+), 29 deletions(-)
diff --git a/rmsbolt.el b/rmsbolt.el
index 24a7d1f93c..60f2acc723 100644
--- a/rmsbolt.el
+++ b/rmsbolt.el
@@ -68,6 +68,12 @@
:safe 'booleanp
:group 'rmsbolt)
+;;;; Faces
+
+(defface rmsbolt-current-line-face
+ '((t (:weight bold)))
+ "Face to fontify the current line for showing matches."
+ :group 'fic-mode)
;;;; Variables:
(defvar rmsbolt-temp-dir nil
@@ -148,7 +154,6 @@
(group (1+ digit)) ",0,"
(group (1+ digit)) "," (0+ any)))
-
;;;; Classes
(cl-defstruct (rmsbolt-lang
@@ -524,6 +529,7 @@ int main() {
(insert
(mapconcat 'identity lines "\n"))
(asm-mode)
+ (rmsbolt-mode 1)
(display-buffer (current-buffer)))))
(t
;; Display compilation output
@@ -551,33 +557,36 @@ int main() {
(interactive)
(save-some-buffers nil (lambda () rmsbolt-mode))
(rmsbolt--parse-options)
- (let* ((src-buffer (current-buffer))
- (lang (rmsbolt--get-lang))
- (func (rmsbolt-l-compile-cmd-function lang))
- (cmd (funcall func src-buffer)))
-
- (when (buffer-local-value 'rmsbolt-dissasemble src-buffer)
- (pcase
- (rmsbolt-l-objdumper lang)
- ('objdump
- (setq cmd
- (mapconcat 'identity
- (list cmd
- "&&"
- "objdump" "-d" (rmsbolt-output-filename
src-buffer)
- "-C" "--insn-width=16" "-l"
- "-M" (if (buffer-local-value
'rmsbolt-intel-x86 src-buffer)
- "intel"
- "att")
- ">" (rmsbolt-output-filename src-buffer t))
- " ")))
- (_
- (error "Objdumper not recognized"))))
- (rmsbolt-with-display-buffer-no-window
- (with-current-buffer (compilation-start cmd)
- (add-hook 'compilation-finish-functions
- #'rmsbolt--handle-finish-compile nil t)
- (setq-local rmsbolt-src-buffer src-buffer)))))
+ (if (eq major-mode 'asm-mode)
+ ;; We cannot compile asm-mode files
+ (message "Cannot compile this file. Are you sure you are not in the
output buffer?")
+ (let* ((src-buffer (current-buffer))
+ (lang (rmsbolt--get-lang))
+ (func (rmsbolt-l-compile-cmd-function lang))
+ (cmd (funcall func src-buffer)))
+
+ (when (buffer-local-value 'rmsbolt-dissasemble src-buffer)
+ (pcase
+ (rmsbolt-l-objdumper lang)
+ ('objdump
+ (setq cmd
+ (mapconcat 'identity
+ (list cmd
+ "&&"
+ "objdump" "-d" (rmsbolt-output-filename
src-buffer)
+ "-C" "--insn-width=16" "-l"
+ "-M" (if (buffer-local-value
'rmsbolt-intel-x86 src-buffer)
+ "intel"
+ "att")
+ ">" (rmsbolt-output-filename src-buffer t))
+ " ")))
+ (_
+ (error "Objdumper not recognized"))))
+ (rmsbolt-with-display-buffer-no-window
+ (with-current-buffer (compilation-start cmd)
+ (add-hook 'compilation-finish-functions
+ #'rmsbolt--handle-finish-compile nil t)
+ (setq-local rmsbolt-src-buffer src-buffer))))))
;;;; Keymap
(defvar rmsbolt-mode-map nil "Keymap for `rmsbolt-mode'.")
@@ -611,6 +620,11 @@ int main() {
(rmsbolt-defstarter "c" 'c-mode)
(rmsbolt-defstarter "c++" 'c++-mode)
+;;;; Font lock matcher
+(defun rmsbolt-search-for-keyword (limit)
+ ;; TODO implement me
+ )
+
;;;; Mode Definition:
;;;###autoload
@@ -618,6 +632,12 @@ int main() {
(define-minor-mode rmsbolt-mode
"RMSbolt"
nil "RMSBolt" rmsbolt-mode-map
+ (if rmsbolt-mode
+ (font-lock-add-keywords
+ nil '((rmsbolt-search-for-keyword
+ (0 rmsbolt-current-line-face))))
+ )
+
(unless (and rmsbolt-temp-dir
(file-exists-p rmsbolt-temp-dir))
(setq rmsbolt-temp-dir
@@ -626,7 +646,7 @@ int main() {
(lambda ()
(when (and (boundp 'rmsbolt-temp-dir)
rmsbolt-temp-dir
- (file-directory-p rmsbolt-temp-dir) )
+ (file-directory-p rmsbolt-temp-dir))
(delete-directory rmsbolt-temp-dir t))
(setq rmsbolt-temp-dir nil)))))
- [elpa] externals/beardbolt 2626732524 003/323: Add filter for assembler directives, (continued)
- [elpa] externals/beardbolt 2626732524 003/323: Add filter for assembler directives, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 43f0eac016 004/323: Add support for changing compiler and flags, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 61ccd7a73e 001/323: Initial commit, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt b6127c7f67 007/323: Fix error when not filtering for labels, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 38649b53f2 018/323: Relicense to affero GPL, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt f04df12d28 011/323: Add config facility for object dumping, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 74b773d370 026/323: Fix crash on quit for real, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt a9e5fbfd7a 028/323: Implement line number parsing for disassembled files, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 3b6bb5bd75 030/323: Add basic overlays to view matched lines, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 5ab75b7f56 014/323: Add stubs for dissasembly, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 0a55783f33 029/323: Add skeleton for font-lock,
ELPA Syncer <=
- [elpa] externals/beardbolt 8dcd74b511 031/323: Clean up rmsbolt.c by moving starters into helper files, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt aea0966e9d 035/323: Don't add binary asm line data when viewing different files, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt c066da01c4 052/323: Fix ocaml def, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 83e29706f5 005/323: Work on porting used label finder, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 58c77d90c3 008/323: Add outshine comments, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 1545531849 006/323: Add initial implementation of filter, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt d604adae64 015/323: Add initial functions for processing binary asm, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt e0bc9fc409 013/323: Fix starters, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 93f3cad769 017/323: Use local variables instead of custom parsing, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt ce6511f715 024/323: Fix compiler warnings, ELPA Syncer, 2023/03/09