From def1c859b40d09e44c2b0e2bc95d0cf450ff60b4 Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Sat, 18 Jan 2025 08:56:21 +1100 Subject: [emacs] eval expr in gud source and infobox value transform --- emacs/.emacs.d/lisp/my/infobox.el | 9 ++++++++- emacs/.emacs.d/lisp/my/my-github.el | 4 ++++ emacs/.emacs.d/lisp/my/my-prog.el | 11 +++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) (limited to 'emacs/.emacs.d/lisp/my') diff --git a/emacs/.emacs.d/lisp/my/infobox.el b/emacs/.emacs.d/lisp/my/infobox.el index 518c7db..2c33ae9 100644 --- a/emacs/.emacs.d/lisp/my/infobox.el +++ b/emacs/.emacs.d/lisp/my/infobox.el @@ -27,6 +27,13 @@ ;;; Code: +(defun infobox-transform-field-value (v) + (cond ((stringp v) v) + ((eq v t) "YES") + ((eq v :json-false) "NO") + ((seqp v) (mapconcat #'identity v ", ")) + (t (format "%s" v)))) + (defun infobox-default-specs (info) (seq-map (lambda (pair) @@ -47,7 +54,7 @@ something like (lambda (pair) (when-let ((val (alist-get (car pair) info))) (if (or (stringp (cdr pair)) (symbolp (cdr pair))) - (cons (cdr pair) val) + (cons (cdr pair) (infobox-transform-field-value val)) (cons (cadr pair) (funcall (cddr pair) val))))) specs)) diff --git a/emacs/.emacs.d/lisp/my/my-github.el b/emacs/.emacs.d/lisp/my/my-github.el index 1643612..7caff57 100644 --- a/emacs/.emacs.d/lisp/my/my-github.el +++ b/emacs/.emacs.d/lisp/my/my-github.el @@ -75,6 +75,10 @@ License; name; description; homepage; created at" (my-url-fetch-raw (format "https://api.github.com/repos%s/readme" project-id)))) +(defun my-github-project-url-p (url) + (let ((urlobj (url-generic-parse-url url))) + (string-match-p "\\(www\\.\\)?github.com" (url-host urlobj)))) + (defun my-github-project-infobox (url) (interactive "sGithub repo url: ") (let ((info diff --git a/emacs/.emacs.d/lisp/my/my-prog.el b/emacs/.emacs.d/lisp/my/my-prog.el index d93c745..faf20b6 100644 --- a/emacs/.emacs.d/lisp/my/my-prog.el +++ b/emacs/.emacs.d/lisp/my/my-prog.el @@ -442,6 +442,17 @@ overlay arrow in source buffer." ;; (accept-process-output (get-buffer-process gud-comint-buffer) .1))) ;; (gud-gdb-completions-1 gud-gdb-fetched-lines))) +(defun my-gud-print-expr (expr) + (with-current-buffer gud-comint-buffer + (insert "p " expr) + (comint-send-input))) + +(defun my-gud-print-expr-region (b e) + (interactive "r") + (if (eq (gdb-get-source-buffer) (current-buffer)) + (my-gud-print-expr (buffer-substring b e)) + (error "Not in the source buffer"))) + ;;; which-func (defun my-copy-which-func () (interactive) -- cgit v1.2.3