From 7239098ad436a10afddce117ab224189f6bd6b7f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jo=C3=A3o=20T=C3=A1vora?= Date: Fri, 7 Apr 2023 19:40:27 +0100 Subject: [PATCH] Eglot: be careful about gfm-view-mode read-only buffers Although in most situations this doesn't error, it's only because of the very wide binding of inhibit-read-only in jsonrpc--process-filter. That binding will soon be narrowed, so better not rely on it. Originally reported in https://github.com/joaotavora/eglot/discussions/1202. * lisp/progmodes/eglot.el (eglot--format-markup): Inhibit read-only before touching buffer potentially in gfm-view-mode. --- lisp/progmodes/eglot.el | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el index db57b122a94..da7e53730e7 100644 --- a/lisp/progmodes/eglot.el +++ b/lisp/progmodes/eglot.el @@ -1672,9 +1672,10 @@ Doubles as an indicator of snippet support." (ignore-errors (delay-mode-hooks (funcall mode))) (font-lock-ensure) (goto-char (point-min)) - (while (setq match (text-property-search-forward 'invisible)) - (delete-region (prop-match-beginning match) - (prop-match-end match))) + (let ((inhibit-read-only t)) + (while (setq match (text-property-search-forward 'invisible)) + (delete-region (prop-match-beginning match) + (prop-match-end match)))) (string-trim (buffer-string)))))) (define-obsolete-variable-alias 'eglot-ignored-server-capabilites -- 2.39.2