From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: Adding major or popular language modes to Emacs distribution Date: Sun, 29 Aug 2021 09:40:34 +0300 Message-ID: <83fsusn47x.fsf@gnu.org> References: <875yvqa3qv.fsf@ypei.me> <87czpy1nyu.fsf@posteo.net> <83sfyuozmh.fsf@gnu.org> <87o89hznqy.fsf@posteo.net> <831r6doepi.fsf@gnu.org> <87fsutzlon.fsf@posteo.net> <83wno5my3p.fsf@gnu.org> <877dg5zitl.fsf@posteo.net> <875yvpin00.fsf@gnus.org> <4393A749-A044-41AB-AB19-2EE2FB592F10@thornhill.no> <88da6bd1-77f9-8843-826e-77437f6142c2@yandex.ru> <02B299B7-E782-409C-8147-60EA2171B684@aol.com> Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="3443"; mail-complaints-to="usenet@ciao.gmane.io" Cc: philipk@posteo.net, theo@thornhill.no, emacs-devel@gnu.org, hi@ypei.me, dgutov@yandex.ru, larsi@gnus.org To: Ergus Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun Aug 29 08:41:57 2021 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 1mKEVx-0000Xc-AC for ged-emacs-devel@m.gmane-mx.org; Sun, 29 Aug 2021 08:41:57 +0200 Original-Received: from localhost ([::1]:36062 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mKEVv-0001r1-RJ for ged-emacs-devel@m.gmane-mx.org; Sun, 29 Aug 2021 02:41:55 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:45818) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mKEUv-0001BJ-5J for emacs-devel@gnu.org; Sun, 29 Aug 2021 02:40:53 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:58874) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mKEUq-0007p2-GZ; Sun, 29 Aug 2021 02:40:48 -0400 Original-Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:3656 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mKEUp-0006RB-VG; Sun, 29 Aug 2021 02:40:48 -0400 In-Reply-To: <02B299B7-E782-409C-8147-60EA2171B684@aol.com> (message from Ergus on Sun, 29 Aug 2021 04:15:05 +0200) 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-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:273374 Archived-At: > Date: Sun, 29 Aug 2021 04:15:05 +0200 > From: Ergus > CC: Eli Zaretskii , hi@ypei.me > > Actually, it is more scalable and optimal to invest time implementing lsp and tree-sitteer building support > because supporting more external packages and modes one by one for languages that maybe won't be > popular after some years, so they will become unmaintained and unremovable from vanilla. Most of the code > in the programming modes (and performance penalty) is actually dedicated to syntax highlight, indentation, > and code navigation. Something that tree-sitee will do better and faster in most cases. Then language > specific modes could add just some extra specific details... And we can invest then our time improving, not > implementing basic support. > Some external packages are also very limited and there are other external additions and plugins to make > them functional... So adding more and more modes for languages is worthless. Use a ring to rule them all > please. We do have a process of obsoleting unused packages, so modes that become unused and unmaintained have a clear path there. Also, please don't assume that LSP and Tree Sitter will be here forever. They can also fall out of fashion and die, at which point it would be good for us to have some fallbacks. Last, but not least: support for a programming language isn't limited to what LSP, TS, and their ilk provide, it includes additional features that are specific to Emacs. Two trivial ones: auto-mode-alist and menu-bar items for the language. Less trivial ones could include REPL-style invocation, support for language interpreter, etc.