Function: markdown-ts--fontify-bare-uri

markdown-ts--fontify-bare-uri is a byte-compiled function defined in markdown-ts-mode.el.gz.

Signature

(markdown-ts--fontify-bare-uri START END)

Documentation

Fontify bare URL or email URI between START and END.

Skip matches already inside tree-sitter link or autolink nodes.

Source Code

;; Defined in /usr/src/emacs/lisp/textmodes/markdown-ts-mode.el.gz
(defun markdown-ts--fontify-bare-uri (start end)
  "Fontify bare URL or email URI between START and END.
Skip matches already inside tree-sitter link or autolink nodes."
  (dolist (re (list markdown-ts--bare-url-regexp
                    markdown-ts--bare-email-uri-regexp))
    (goto-char start)
    (while (re-search-forward re end t)
      (let* ((uri-start (match-beginning 0))
             (uri-end (match-end 0))
             (uri (match-string 0))
             (node (treesit-node-at uri-start 'markdown-inline))
             (parent (and node (treesit-node-parent node)))
             (parent-type (and parent (treesit-node-type parent))))
        (unless (or (member parent-type
                            '("inline_link" "full_reference_link"
                              "collapsed_reference_link" "shortcut_link"
                              "image" "uri_autolink" "email_autolink"
                              "link_destination"))
                    (member (and node (treesit-node-type node))
                            '("uri_autolink" "email_autolink"
                              "link_destination" "code_span"
                              "code_fence_content" "info_string"))
                    (get-text-property uri-start 'button))
          (markdown-ts--make-link-button
           uri-start uri-end
           (if (eq uri-start 0)
               uri
             (concat "mailto:" uri))))))))