Created
November 15, 2018 14:50
-
-
Save TheBB/3cb185b75d826a67c31d09983e12eedc to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(defvar-local bb--region-before-change nil) | |
(defun bb--before-change (beg end) | |
(setq-local bb--region-before-change | |
(cons beg (buffer-substring-no-properties beg end)))) | |
(defun bb--after-change (beg end len) | |
(let* ((pre-beg (car bb--region-before-change)) | |
(pre-str (cdr bb--region-before-change)) | |
(nbytes (string-bytes (substring pre-str (- pre-beg beg) len)))) | |
(let ((new (cons pre-beg | |
(concat (substring pre-str 0 (- beg pre-beg)) | |
(buffer-substring-no-properties beg end) | |
(substring pre-str (+ len (- beg pre-beg))))))) | |
(message "# bytes before change: %S" nbytes) | |
(setq-local bb--region-before-change new)))) | |
(defun bb--test () | |
(interactive) | |
(add-hook 'before-change-functions 'bb--before-change nil t) | |
(add-hook 'after-change-functions 'bb--after-change nil t)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment