Begin forwarded message:
Subject: Re: bug#40338: 27.0.60; c-fill-paragraph and after-change-functions
Date: March 31, 2020 at 11:27:23 AM GMT-4
On Mar 30, 2020, at 9:56 PM, Noam Postavsky <npostavs@gmail.com> wrote:
Yuan Fu <casouri@gmail.com> writes:
(defun mytrack-hook (beg end len) (if (> len 0) ;; delete (with-current-buffer trackbuf (delete-region beg (+ beg len))) ;; insert (let ((content (buffer-substring beg end))) (with-current-buffer trackbuf (goto-char beg) (insert content)))))
I'm not very familiar with either eglot or cc-mode, but I can say the problem in your example lies with mytrack-hook: there can be kinds of changes other than just pure delete or insert (replace, for example). It can be fixed like this:
(defun mytrack-hook (beg end len) (when (> len 0) ;; Delete old text. (with-current-buffer "trackbuf" (delete-region beg (+ beg len)))) ;; Insert new text. (let ((content (buffer-substring beg end))) (with-current-buffer "trackbuf" (goto-char beg) (insert content))))
Thank you. Indeed this works. Maybe the problem is not in c-fill-paragraph. Yuan
|