Jump to label in asm

This commit is contained in:
Benson Chu 2024-09-20 15:15:17 -05:00
parent f3a72f7ba1
commit 566af2b009

View file

@ -29,6 +29,7 @@
(modify-syntax-entry ?- "-" asm-mode-syntax-table)
(modify-syntax-entry ?+ "-" asm-mode-syntax-table)
(modify-syntax-entry ?. "_" asm-mode-syntax-table)
(modify-syntax-entry ?@ "_" asm-mode-syntax-table)
(modify-syntax-entry ?< "-" asm-mode-syntax-table)
(add-hook 'asm-mode-hook
@ -119,6 +120,19 @@
(setq end (point)))
(narrow-to-region start end)))
(defun asm-jump-to-label ()
(interactive)
(xref-push-marker-stack)
(let ((addr (symbol-name (symbol-at-point))))
(goto-char (point-min))
(cond
((string-match (rx line-start "@" (group (+ nonl))) addr)
(re-search-forward (format "<%s>:" (match-string 1 addr))))
(t (re-search-forward
(concat "^" addr ":"))))))
(define-key asm-mode-map (kbd "M-.") #'asm-jump-to-label)
(add-hook 'asm-mode-hook
(lambda ()
(set (make-local-variable 'font-lock-multiline) t)