Function: markdown-ts--insert-code-block
markdown-ts--insert-code-block is a byte-compiled function defined in
markdown-ts-mode.el.gz.
Signature
(markdown-ts--insert-code-block CHAR &optional LANGUAGE)
Documentation
Insert a fenced code block using a CHAR sequence.
CHAR should be one of a backtick or a tilde. LANGUAGE is a whitespace free language string.
Source Code
;; Defined in /usr/src/emacs/lisp/textmodes/markdown-ts-mode.el.gz
(defun markdown-ts--insert-code-block (char &optional language)
"Insert a fenced code block using a CHAR sequence.
CHAR should be one of a backtick or a tilde.
LANGUAGE is a whitespace free language string."
(setq language
(or language
(replace-regexp-in-string
"[[:blank:]]" ""
(let ((completion-ignore-case nil)
(candidates
(seq-map
#'symbol-name
(seq-uniq
(append (mapcar #'car markdown-ts--code-block-languages)
(mapcar #'car markdown-ts--code-block-non-ts-modes)
(mapcar #'car markdown-ts-code-block-modes))))))
(completing-read
"Code block language: "
candidates
nil
'confirm ; Prompt if the language is not on our list.
nil
'markdown-ts-language-history)))))
(let ((fence-string (make-string 3 char)))
(if (use-region-p)
(let ((beg (region-beginning))
(end (region-end)))
(save-excursion
(goto-char end)
(unless (bolp) (insert "\n"))
(insert fence-string "\n")
(goto-char beg)
(insert fence-string language "\n")))
(insert fence-string language "\n\n" fence-string)
(forward-line -1))))