diff --git a/users/crumb/programs/emacs/lib/syd-prelude.el b/users/crumb/programs/emacs/lib/syd-prelude.el index b56bd1e..7d3225e 100644 --- a/users/crumb/programs/emacs/lib/syd-prelude.el +++ b/users/crumb/programs/emacs/lib/syd-prelude.el @@ -44,6 +44,10 @@ ;; (<= 2 (length hform)) ;; (nth 1 hform))) +(defmacro comment (&rest _) + "Completely every argument, and expand to nil." + nil) + (defmacro with-transient-after (hook-or-function &rest forms) (let ((hook-name (gensym "transient-hook")) (hook-or-function* (gensym "hook-or-function"))) diff --git a/users/crumb/programs/emacs/lib/syd-text.el b/users/crumb/programs/emacs/lib/syd-text.el index 52a78d0..57762c5 100644 --- a/users/crumb/programs/emacs/lib/syd-text.el +++ b/users/crumb/programs/emacs/lib/syd-text.el @@ -68,4 +68,48 @@ in some cases." (prompt (read-string (if (stringp prompt) prompt ""))))) +;;;###autoload +(defun syd-insert-newline-above () + "Insert a blank line below the current line." + (interactive) + (save-excursion (evil-insert-newline-above))) + +;;;###autoload +(defun syd-insert-newline-below () + "Insert a blank line below the current line." + (interactive) + (save-excursion (evil-insert-newline-below))) + +;;;###autoload +(defun syd-render-ansi-escape-codes (beg end) + (interactive "r") + (require 'ansi-color) + (if (region-active-p) + (ansi-color-apply-on-region beg end) + (ansi-color-apply-on-region (point-min) (point-max)))) + +(defun syd-evil-paste (before-p arg &optional register yank-handler) + "Like `evil-paste-after', but a 'C-u' prefix argument will instead act like +':put' (i.e. the register will be pasted onto a new line)." + (if (consp arg) + (evil-ex-put (syd-region-beginning) (syd-region-end) + ;; `evil-ex-put' wants a string, but it is immediately + ;; converted back to a char. }xP + (and register (string register)) + before-p) + (funcall (if before-p #'evil-paste-before #'evil-paste-after) + arg register yank-handler))) + +;;;###autoload +(evil-define-command syd-evil-paste-after (arg &optional register yank-handler) + "See `syd-evil-paste'.'" + (interactive "P") + (syd-evil-paste nil arg register yank-handler)) + +;;;###autoload +(evil-define-command syd-evil-paste-before (arg &optional register yank-handler) + "See `syd-evil-paste'.'" + (interactive "P") + (syd-evil-paste t arg register yank-handler)) + (provide 'syd-text)