doomemacs/modules/defuns/defuns-markdown.el

25 lines
961 B
EmacsLisp
Raw Normal View History

2016-05-21 10:37:30 +08:00
;;; defuns-markdown.el
2015-06-15 15:06:10 +08:00
;; Implement strike-through formatting
2016-05-21 10:37:30 +08:00
(defvar doom--markdown-regex-del
2015-06-15 15:06:10 +08:00
"\\(^\\|[^\\]\\)\\(\\(~\\{2\\}\\)\\([^ \n \\]\\|[^ \n ]\\(?:.\\|\n[^\n]\\)*?[^\\ ]\\)\\(\\3\\)\\)")
;;;###autoload
2016-05-21 10:37:30 +08:00
(defun doom/markdown-insert-del ()
2015-06-15 15:06:10 +08:00
"Surround region in github strike-through delimiters."
(interactive)
(let ((delim "~~"))
(if (markdown-use-region-p)
;; Active region
(let ((bounds (markdown-unwrap-things-in-region
(region-beginning) (region-end)
2016-05-21 10:37:30 +08:00
doom--markdown-regex-del 2 4)))
2015-06-15 15:06:10 +08:00
(markdown-wrap-or-insert delim delim nil (car bounds) (cdr bounds)))
;; Bold markup removal, bold word at point, or empty markup insertion
2016-05-21 10:37:30 +08:00
(if (thing-at-point-looking-at doom--markdown-regex-del)
2015-06-15 15:06:10 +08:00
(markdown-unwrap-thing-at-point nil 2 4)
(markdown-wrap-or-insert delim delim 'word nil nil)))))
(provide 'defuns-markdown)
;;; defuns-markdown.el ends here