From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: =?utf-8?Q?Daniel_Mart=C3=ADn?= Newsgroups: gmane.emacs.devel Subject: Re: treesit indentation "blinking" Date: Fri, 07 Apr 2023 16:20:24 +0200 Message-ID: References: <83bkka5z7w.fsf@gnu.org> <871ql6a4d4.fsf@gmail.com> <83jzyy4776.fsf@gnu.org> <9F152CAA-6326-459F-84FF-87988B3A92B6@gmail.com> <6bf0322b-1151-129a-e26f-61cf4f232d17@yandex.ru> <6efb9f84-211d-560e-3196-95d7f0b8be19@yandex.ru> <1874921e1d0.2829.cc5b3318d7e9908e2c46732289705cb0@dancol.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="19809"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (darwin) Cc: Dmitry Gutov , Alan Mackenzie , =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= , Yuan Fu , Eli Zaretskii , theodor thornhill , , To: Daniel Colascione Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Apr 07 16:21:50 2023 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pkmyM-0004sv-K3 for ged-emacs-devel@m.gmane-mx.org; Fri, 07 Apr 2023 16:21:50 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pkmxf-0007Ih-At; Fri, 07 Apr 2023 10:21:07 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pkmxd-0007IE-Nj for emacs-devel@gnu.org; Fri, 07 Apr 2023 10:21:05 -0400 Original-Received: from sonic308-17.consmr.mail.ir2.yahoo.com ([77.238.178.145]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pkmxW-0000Dj-M1 for emacs-devel@gnu.org; Fri, 07 Apr 2023 10:21:05 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.es; s=s2048; t=1680877231; bh=+0OnDs2AAwAM0e0L64GEMFStzdcYYJXcIdCauI8l/ps=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From:Subject:Reply-To; b=Obn6nYhcJiJ4PZb9JWyPmKSmIvDLHW8hc48ogIS+L1ZDb2xBCKDV4cspC7wISCJQz/0gt0j3R0WhePpttC4XM/IztrV3ss4GSF3ir7hYV5GHtsBlgeuDPIYllWrHWgpeEd5DrGHuWf8507/K2Y3qmpURqOEwFMRymq3ArckMUTm/IOWBGFBukfIcaT0M5xj7DdewYODUaHgUd/1wn2HIxxgVBFnpiDpAb9x0ljLBAmQN2rW/CoWEZh+/UZ5DaZs0o2Ily4uA4syBYlzho23V8dszr9qjcjMw0bJH4sLnNpFJkfWi4Dxgx0PuUG6+F96MMv+/L7Q1Q8BDqpjDxppyaw== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1680877231; bh=6EJ/8kLJ2qinQgbyVI5OtkAyeCIXekDPkugXBfbY2vp=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=rWOs06+Cr9Fcl6dGgYjay5EfqspK5XU6VlsTrFtYytlkfjwY9PZVTs3o1g8N1fQSHtuU1Z+vH9pC1lKl9YCFGatVlzqfLT7B0vLnP2Kk9fNcpRR/PgYd3AVhPLiqJqwXU8Ar05lSzxD3dX6x6dNTdZAEVns2lupBnk62gpz9GgKT/3n5847rTmoE0WpiCuIYCr0pj5uzAk6kD8RLAfyfwUqCClb4cFjC/XqRZi3+tqyntkB+UoPAjnxoEsUYb/KuqStaup84x5M97p77UZJn2lG9eZDBLNI78aiB55YPZ3YNEODL1lZpajqqxVtuxE0m4QRmq+DTuSzx8VNiZypDgg== X-YMail-OSG: sUvmzvIVM1nsNPgpy4Ap2xstIiLw2MYHYu0Bfh.EeIc0dSC8b25eVgqO.LCpv76 ZiEIC8Cid7FHgA2eRK9BBgWPdacwJggIfnVKCa.mROGiVpev4Lo0yLyGd3ld_4nH5q8QG1UpCaHa mv.I8.wk5f9Jo1nXP4BDTQHOvF63JI00monHw3CtYWf5mwDH45NtWSBsg1pPMbpy8RlIUQMCaPrJ EnYl45BxzNoQ6.LZQ7_wsWs88PzE_NFm01M0yo3h4jC03D.5eqvxVr1mdTrUaAoeMj_lPMekRzeR Q5NldZ4plR5pPnuE5WNzA8gpC0QhLPGfiM.lgA3peZEXMVEU6j.9p48.tbomPWYAcM_1qiHrZiEW j2l6o8jwjdFdB_gLmOn8BRabx_RGr4jvFpr2B_MUCSfI9l5P0TqaAOg1.xnQosf4FHtMbZ8gr9Tb IrLerVFRg_p2p2ukt_dTl_VEf8DpruDOERc8kmwgK1UiDDjeRCzx2.ruPkkDbpFajbD0aJ_rYT04 ULqvhh0v60uifc3KZV9A6r5CQ_zQ1QquM4_VVoSOw0g.CBjyzsgIFfa_4SqXXnzlJtPSUweVI9s9 OEPR1ysm9U5skPgI.n45.tTO6ywm_yZV9OVFqEfCh3T9uhyJdOUoiltfnNfPk_LOHBwApEzkQXPC 1JRWvgcmkBtzySlfxap45Ven.aHoaN.BhopWmJhCd8INQjSQ1sNZeEvbo2QES5txET.o1NI9G44G 7epK1KyncE9yFmE0sAMuXe.3jaUzDic_vxAXoZR_QqkcuItEwxNvfLlV68MFmE2dAkIJCyIaeL_l LQl0Lo7XjEjYYKrqSU8ZNOUF8NCK18hV0.oqfnEszp X-Sonic-MF: X-Sonic-ID: 3c480da6-590e-4744-9ef1-a2578d1eebf0 Original-Received: from sonic.gate.mail.ne1.yahoo.com by sonic308.consmr.mail.ir2.yahoo.com with HTTP; Fri, 7 Apr 2023 14:20:31 +0000 Original-Received: by hermes--production-ir2-74cd8fc864-j696l (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 38b69dc46e9bc36f37f66c512e0992b7; Fri, 07 Apr 2023 14:20:25 +0000 (UTC) In-Reply-To: <1874921e1d0.2829.cc5b3318d7e9908e2c46732289705cb0@dancol.org> (Daniel Colascione's message of "Mon, 03 Apr 2023 17:59:30 -0400") X-Mailer: WebService/1.1.21365 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Received-SPF: pass client-ip=77.238.178.145; envelope-from=mardani29@yahoo.es; helo=sonic308-17.consmr.mail.ir2.yahoo.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 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-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:305160 Archived-At: Daniel Colascione writes: > > Silly question: can't we make a mode with c++-mode's indentation (and > folding etc.) and c++-ts-mode's fontification? Such a thing would also > preserve compatibility with the numerous ad hoc c++-mode styles out > there. Note that c++-ts-mode's fontification can also "blink": i n t m a i n ( ) { RET i n (now "main" is not fontified) t i ; (now "main" is fontified again). In general, I'd suggest taking a look at Neovim's Tree-sitter implementation and perhaps reuse (part of) their .scm Tree-sitter syntax highlight or indentation queries: https://github.com/nvim-treesitter/nvim-treesitter/tree/master/queries/c Neovim's implementation doesn't "blink" in the scenarios presented here, but I'm not sure about how it performs in other tricky cases. Now that text editors have access to the same programming language grammars, I'm surprised the Tree-sitter community hasn't started any cross-team effort to work on canonical queries (or slighter richer abstractions) per programming language. Text editor developers are working and rediscovering complex language problems independently.