From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: =?UTF-8?Q?Cl=c3=a9ment_Pit--Claudel?= Newsgroups: gmane.emacs.devel Subject: Re: Feature request/RFC: proper highlighting of code embedded in comments Date: Mon, 17 Oct 2016 10:25:51 -0400 Message-ID: References: <930446db-6dad-72a0-d0cd-a0710e5c6ec3@mit.edu> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="PnqEaCvl4KpKw8BUTmF0BeKDVxwL4nct8" X-Trace: blaine.gmane.org 1476715573 22228 195.159.176.226 (17 Oct 2016 14:46:13 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 17 Oct 2016 14:46:13 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0 To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Oct 17 16:46:10 2016 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bw9Ag-0002hS-RS for ged-emacs-devel@m.gmane.org; Mon, 17 Oct 2016 16:45:47 +0200 Original-Received: from localhost ([::1]:33600 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bw9Ai-0003mf-WF for ged-emacs-devel@m.gmane.org; Mon, 17 Oct 2016 10:45:49 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:55103) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bw8re-0004SJ-IM for emacs-devel@gnu.org; Mon, 17 Oct 2016 10:26:11 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bw8rZ-0008IO-Er for emacs-devel@gnu.org; Mon, 17 Oct 2016 10:26:06 -0400 Original-Received: from mout.kundenserver.de ([217.72.192.73]:49793) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1bw8rZ-0008Hr-4k for emacs-devel@gnu.org; Mon, 17 Oct 2016 10:26:01 -0400 Original-Received: from [18.26.2.123] ([18.26.2.123]) by mrelayeu.kundenserver.de (mreue101) with ESMTPSA (Nemesis) id 0M8hqV-1crw8q2ax9-00w9vo for ; Mon, 17 Oct 2016 16:25:59 +0200 In-Reply-To: X-Provags-ID: V03:K0:4xlV3ZBaTUWw/YTnH8dEniSMsudjuGH9pDvmu0eMVGIQH1eB/4D mUACTH0tYhvPm6DcFBSsIC3zZk0zMmTNS0Pzuagp/rq0uMBgdgqVW2Wsslj3dv3HJ2bziAq v+z2d/Jq/gjn5S4unGxW0eKHErIqjuOPbEPIGZgLXPhmKtJukMCrxYyWhqMYBivxgmw63pU y0rF5rsVOnGRkjDiLqXxw== X-UI-Out-Filterresults: notjunk:1;V01:K0:YI044urkTEQ=:q12kzTokNYl0nh3t9lbECL kDvpli8CpS2U/Gw+K8eiPkijNAYWqpzBTj52kzdFt37jAL0Ps/Zw2HRDzOYWjccUTD3aGLPpL Po2UEK3XHP0iwyzJOc94M4JtMMrMIU/cJnBLZ+3CSOcneHWaSUw3VVoTENkm/hxBJnNvOCME3 BOBxX8d9ZCWcezNM+C5bq1PwtuvdwaRd+g9YOa7tgmUOrWJwhI79blc4hAd0LZvrFzpTaWvE2 URpJ1PHvuWPTGHpUz9hi8fWT6F5eEq8Ql4H3IAobUPX/PDzpVJJmzt/UV0MmUmcmCKc4O0qR5 Iu3/ORSetHMyEDMwfCH6qRijt5/EPMSv5ngBO1ornDKEY7u0CYvgPElAORIyAcdIwNmO14O9e MARUJhRiW5B15hLnMNUuVjLkHg5k32Pqmt/pxBNQyPAMZgkLhFKl08Ua6UFwWYzPcSucjxJ2X Df3SHkFTEpw2ANPvBzMqI6VNOWDxjURLb94M8/DnAUrml+Ktqwg3v3oLnS8fGVIiD9/QGQAgs NQKY2uTk8Ji1prSc+fHfpAmygaBypb4gezDQLn/8vtBRF3mlDJWriV/qogyywbUZx2bm8FeLl +BK2g0MCNL5b2/vxN9RflOvtnVH7HPBvOZwdUmg5duc63HfGpQYTMF5YbJkW8PsdpAF9FoMNW np1kw9nr06EnkCWdrFAjUJ48FvgIYL3avZloF3tPX5pENj/L0sNLdGERTpfmJ9fQwF0w= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 217.72.192.73 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:208358 Archived-At: This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --PnqEaCvl4KpKw8BUTmF0BeKDVxwL4nct8 Content-Type: multipart/mixed; boundary="U6lk219BHKIPmh20CDXif0SM3pwiQBbaS"; protected-headers="v1" From: =?UTF-8?Q?Cl=c3=a9ment_Pit--Claudel?= To: emacs-devel@gnu.org Message-ID: Subject: Re: Feature request/RFC: proper highlighting of code embedded in comments References: <930446db-6dad-72a0-d0cd-a0710e5c6ec3@mit.edu> In-Reply-To: --U6lk219BHKIPmh20CDXif0SM3pwiQBbaS Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable On 2016-10-17 09:12, Stefan Monnier wrote: >> (font-lock-add-keywords nil '(("^ *>>> \\(.*\\)" (0 >> (indirect-font-lock-highlighter 1 'python-mode))))) >=20 > IIUC you additionally want to handle the "... " lines. Yup; this was just a POC :) >> Stefan (and emacs-devel!), do you think I should add this to ELPA? >=20 > Feel free. Will do it soon! >> Are there downsides I should be aware of? >=20 > The usual: > - running the major mode might run "side-effecting code" from the user'= s > hook. I consider it a bug in the user's setup, but it does happen. > - it fails to take into account local modifications of the font-lock ru= les. This second point is interesting. I ran into this issue with company-coq= =2E The problem was that entering the coq major mode took a long time (m= aybe .2 seconds?), so fontifying small things on the fly was slow. I end= ed up copying font-lock related variables. Something like (defconst company-coq--font-lock-vars '(font-lock-keywords font-lock-keywords-only font-lock-keywords-case-fold-search font-lock-syntax-table font-lock-syntactic-face-function) "Font-lock variables that influence fontification.") (defun company-coq--fontify-buffer-with (&optional ref-buffer) "Fontify current buffer according to settings in REF-BUFFER." (cl-loop for var in company-coq--font-lock-vars do (set (make-local-variable var) (buffer-local-value var ref-buffer))) (ignore-errors ;; Some modes, such as whitespace-mode, rely on buffer-local stat= e to do ;; their fontification. Thus copying only font-lock variables is= not ;; enough; one would need to copy these modes private variables a= s well. ;; See GH-124. (font-lock-default-fontify-region (point-min) (point-max) nil))) But this is a bit broken, because fontification rules can run essentially= anything. It would be nice to have a feature like "fontify as if this c= ode was at position 0 in this buffer". I don't know whether it would mak= e sense. Cheers, Cl=E9ment. --U6lk219BHKIPmh20CDXif0SM3pwiQBbaS-- --PnqEaCvl4KpKw8BUTmF0BeKDVxwL4nct8 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJYBN9vAAoJEPqg+cTm90wjUaUP/2VEl6T4iTa3eRwsgf1sGf89 XxjEMz+iY6XfOHobQtVS4aSqJbVPQRx0lF3HejdLwb7NJKZYmN3atjbWj5s/VXrY LGwWP/+tNpyb31O/gjLut4edlfYnaI+BYRIQNcSbbMZ74EO6wnrdSelh7vG2DNga i71AOMuXgqqI2l9s4P1nDHKXVLMfgyvnXJX7FXCCRJE3r1wnc7fXTcEcC/C+USj5 /FbPte/4o+KnQTB8rT1cmZirUWM9b0DF45kGdjbsNav0kVeSkaFKWDm0hmRpRJGi Gizdo8Tiv6D3NFR/JRSGNoiqIcR8z96DRktVj0gfcoqn76pSIL9BxVs4SjAwQLae fw8IpwMnWa4s8J0ugLAaTlwCwRuk6bSO+JGGxjPNh54v0w4jAhJR64xcrHSRXvL7 gjeCHUoV/IhEcLaX6bH25GCDZclgi+qcP/uXo0GmBSxwHuGc5fM7aiCixWii0q99 6km9Um5KFSKKENKolnMCiXWwJ61udkL/NadULkUao+GBa/idXM6AeWzFo5JoeD8R lpD8zelOo5jWuYrBid/KJoCROGp32b//y2mJq/wTCEygCxMlnkLg+TXswdSH5P0c vjJJWopIlcUlqOQVcqvJCPUVCVqNCZP7RYam+YEtiwKvbIoyaAfhpT2+8N42cBjx UrfeRA49gzUb4hDWMbpq =2v3X -----END PGP SIGNATURE----- --PnqEaCvl4KpKw8BUTmF0BeKDVxwL4nct8--