aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sx-question-print.el24
-rw-r--r--sx.el28
2 files changed, 7 insertions, 45 deletions
diff --git a/sx-question-print.el b/sx-question-print.el
index 2a0a035..fe64392 100644
--- a/sx-question-print.el
+++ b/sx-question-print.el
@@ -431,29 +431,19 @@ If ID is nil, use FALLBACK-ID instead."
"If there's a pre block ahead, handle it, skip it and return t.
Handling means to turn it into a button and remove erroneous
font-locking."
- (let (beg end text)
+ (let (beg end)
(when (markdown-match-pre-blocks
(save-excursion
(skip-chars-forward "\r\n[:blank:]")
(setq beg (point))))
(setq end (point))
- (setq text
- (sx--unindent-text
- (buffer-substring
- (save-excursion
- (goto-char beg)
- (line-beginning-position))
- end)))
- (put-text-property beg end 'display nil)
- (make-text-button
- beg end
- 'face 'markdown-pre-face
- 'sx-button-copy text
- :type 'sx-question-mode-code-block))))
+ (sx-babel--make-pre-button
+ (buffer-substring
+ (save-excursion
+ (goto-char beg)
+ (line-beginning-position))
+ end)))))
(provide 'sx-question-print)
;;; sx-question-print.el ends here
-;; Local Variables:
-;; lexical-binding: t
-;; End:
diff --git a/sx.el b/sx.el
index 8e3e5d3..d5d9b75 100644
--- a/sx.el
+++ b/sx.el
@@ -201,34 +201,6 @@ Anything before the (sub)domain is removed."
(rx string-start (or (and (0+ word) (optional ":") "//")))
"" url)))
-(defun sx--unindent-text (text)
- "Remove indentation from TEXT.
-Primarily designed to extract the content of markdown code
-blocks."
- (with-temp-buffer
- (insert text)
- (goto-char (point-min))
- (let (result)
- ;; Get indentation of each non-blank line
- (while (null (eobp))
- (skip-chars-forward "[:blank:]")
- (unless (looking-at "$")
- (push (current-column) result))
- (forward-line 1))
- (when result
- ;; Build a regexp with the smallest indentation
- (let ((rx (format "^ \\{0,%s\\}"
- (apply #'min result))))
- (goto-char (point-min))
- ;; Use this regexp to remove that much indentation
- ;; throughout the buffer.
- (while (and (null (eobp))
- (search-forward-regexp rx nil 'noerror))
- (replace-match "")
- (forward-line 1)))))
- ;; Return the buffer
- (buffer-string)))
-
;;; Printing request data
(defvar sx--overlays nil