From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Michael Heerdegen Newsgroups: gmane.emacs.devel Subject: Re: Limits of multiline font-lock Date: Thu, 19 Sep 2019 04:05:13 +0200 Message-ID: <87ftktghwm.fsf@web.de> References: <87impuu7qy.fsf@web.de> <874l198g0q.fsf@alphapapa.net> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="186774"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) Cc: emacs-devel@gnu.org To: Adam Porter Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Sep 19 04:07:45 2019 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1iAlrE-000mT2-J8 for ged-emacs-devel@m.gmane.org; Thu, 19 Sep 2019 04:07:44 +0200 Original-Received: from localhost ([::1]:36958 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iAlrC-0007b2-Hn for ged-emacs-devel@m.gmane.org; Wed, 18 Sep 2019 22:07:42 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:48857) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iAlou-0007Zw-95 for emacs-devel@gnu.org; Wed, 18 Sep 2019 22:05:21 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iAlos-0000RK-Vq for emacs-devel@gnu.org; Wed, 18 Sep 2019 22:05:20 -0400 Original-Received: from mout.web.de ([217.72.192.78]:47731) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iAlos-0000Q2-J5 for emacs-devel@gnu.org; Wed, 18 Sep 2019 22:05:18 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1568858713; bh=x/7c4+1n9utVBrPxd/872apiB7krfxAJZtxggkvQfNI=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=QWYNQDHie2s6OGp7du4efi8vxrSB1kjhm6eFh3lG7UmZQfXlqz/b5jFnKtoJ8m5ms 9MEqWzVwFBvPDIKHbt8kWSLXtfk8kBItTEXe139ubQKdiArLGBbJulZ2fiGdPK12C1 nP45VVqaiqunG4TAc2i6JbYPRdRpvay7v/Aq251U= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Original-Received: from drachen.dragon ([94.216.136.59]) by smtp.web.de (mrweb102 [213.165.67.124]) with ESMTPSA (Nemesis) id 0LiCsx-1hoLEo04RP-00nMav; Thu, 19 Sep 2019 04:05:13 +0200 In-Reply-To: <874l198g0q.fsf@alphapapa.net> (Adam Porter's message of "Wed, 18 Sep 2019 16:13:09 -0500") X-Provags-ID: V03:K1:FjVK+PAsE75blh/9Hge4f7vMzRwKjb4r/oCTEtSpX+lTSTGwE7/ n5kOGkp7AmnnromDbcFFRVvicrYJoWvZjMfvv5SDIbXa771+6fiTrfn7j523a3NIboyi02h AXXG7jH4/Pi6M61rdFIJxubayt5z+6SdIvYv4uQaExXqwHg4jA641pawqdnKL/FSty0XOuz CfOeYm+IwY9aCa23/Kw5g== X-UI-Out-Filterresults: notjunk:1;V03:K0:P25ovKUemro=:4GT12Q1VyaSiK5dgHMWda1 EyMor4O2pnGAZFkirDFJOhBXwn+LD1pLaDsajwPrSbmpJqFYryP3k9Z2nD2YoyHNQ2O5HbePU oiReMa9WJZXNT5gmYF9SqxOvmPhYJE/1ie9phxmJJANQGAgkREYUynpeEY2Y5D5eD6FEl9+Lw lG6iL7549uHdWwRKYmguN4sfRufEFBXk3Y6X1asplRC5Y+KMe9Op92ZvdnQsZvkyIabub+viH Y6Iv27pZj/EyHtJbJfcRYyyJQYweej4FPHVcDi2zAoV6WugXnh3gFnqfbtI7l+VviJCVau/vg sKGEnbdH/AjX6X0txW8u35BG6xBf2JbF8NOXP03FNvk8VLYmm12vdZIh6vdCIxzWMcBAk1CqN ELuiYsduJRWk84Xb5ANXPvKQnOlARJwAqSFvAw3Kb+K0hKdBYxRzecGi263zspd3P+fG1pJqh 3SBxuZ3VLFJ+zI0ltgWO8cNjGq+8HPbYzqRaZs2GdqQMDXtjDB9QTEbwEnCGzis8GdNHH0pZk 1hQMoagUhbng808HIF+E1GoVGX8UYIw1dSmsmcXrxGgZDnkAZLdK09Gm2RAwIw3kDYBs+TSaT aI7OkUaAZGPUrzM6aSsmSJ0mAGLtS2Qc9951QCT5QGPfqLojz1G8D4As8pcmvGwhHiLBRp0fo iJdeV5BWinoFmrrVS41WqfnMASB6CAImMRc2wzgsQU0EgtcZAyM3pJYNgmblw2sNUuE+tnTYB CuOvxxyw2St/nfKT5PK5BHhr1fsUh1Ty3rasd/t9ikCKH4M2xWrleYcUjiuEl4k+T3GqRab7 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 217.72.192.78 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 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:240157 Archived-At: Adam Porter writes: > You might be interested in this package I published recently. It > implements depth-based syntax highlighting for Lisp and some other > languages. > > https://github.com/alphapapa/prism.el Nice. Could it go to Gnu Elpa? > I had to deal with similar issues about multiline font-locking. After > reading the manual section about it a few times, I managed to come up > with a solution that works fairly well, although I'm sure it's quite > primitive: I add a function to font-lock-extend-region-functions which > extends the font-lock region forward and backwards before the matching > function is called. I don't know if it's the optimal way to do it--the > manual mentioned that there are a few ways--but it seems to work. > > However, I have discovered a performance issue in the case of sexps that > span large portions of the buffer (e.g. in my init files, I have some > large use-package forms that contain many functions and span hundreds of > lines). If I could solve that, it would be great, but it works fine for > most code. If you use `font-lock-extend-region-functions', all of font-lock uses the extended region, right? I guess basing your functionality on jit-lock-register could be better. If finding the beginning-of-defun and identifying the levels is what causes the main cost, it wouldn't help much, however. My use case is a bit simpler since I only have to deal with Lisp. What modes does prism support btw? What are reasons why some languages are not supported? > Please let me know if you have any suggestions. Sometimes font-locking > feels like an arcane art. :) Ok, I've not come that far yet ;-) Michael.