From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= Newsgroups: gmane.emacs.devel Subject: Re: A modern-mode? Date: Wed, 16 Sep 2020 16:26:43 +0100 Message-ID: <87y2l9hhe4.fsf@gmail.com> References: <20200916094819.GB13405@tuxteam.de> <20200916102001.GC13405@tuxteam.de> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="29073"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Cc: tomas@tuxteam.de, emacs-devel To: Arthur Miller Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Sep 16 17:27:56 2020 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 1kIZLe-0007PZ-4w for ged-emacs-devel@m.gmane-mx.org; Wed, 16 Sep 2020 17:27:54 +0200 Original-Received: from localhost ([::1]:41936 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kIZLd-0002Wu-2m for ged-emacs-devel@m.gmane-mx.org; Wed, 16 Sep 2020 11:27:53 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:34002) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kIZKb-0001A0-Kc for emacs-devel@gnu.org; Wed, 16 Sep 2020 11:26:49 -0400 Original-Received: from mail-wr1-x431.google.com ([2a00:1450:4864:20::431]:40222) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kIZKZ-0006dX-Rg for emacs-devel@gnu.org; Wed, 16 Sep 2020 11:26:49 -0400 Original-Received: by mail-wr1-x431.google.com with SMTP id j2so7360001wrx.7 for ; Wed, 16 Sep 2020 08:26:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-transfer-encoding; bh=cH7b0G22tayqfm1qk767fRUYirgyM87kqz83q3WoJYw=; b=GLF1lH8u7izwe39+Xi5HtbGe1YePFAP2SrHg9Truf6XIbgvkFvE9pSEw5hyZxTY1YX IZo8Jl+jOUVHg9D8gj/fSVbR7Psc4Xxscc1gNWcGmW1kJJ9C/tnQWPd/++cKHgugQVLw +E4ax/M8ly+kh2qruJudLVbur41ZEzfGzV8+q+LRflxC0CRnMd4ULZTHJMfTeo1eK1yT 8fQm988T+uKqz/XYExRx635FLN8exThiBe/ACgniC91qAnuy63EkP41UPsNkKd1RujDo w/S3A8nq3c9yfgm8SepBGhp67GQ+LjKcd7EdyspUg8ejwrxSosqhyjYvPrCVbRUouhmd shjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version:content-transfer-encoding; bh=cH7b0G22tayqfm1qk767fRUYirgyM87kqz83q3WoJYw=; b=mFyoZsZuUg6e0zYUQ5045os1f/MSNVe9qNvLU1VM71ucd4zPxmkDhDProkoZNN/zzv KZSlkvXUKHYG9w3PB8jPGX23ah9NciHtd7T3IDCTUGlBz7mzzJrpKE5KfhJyMQuI/ddT RMG3q9O0dYQuhAHwPPwq/rLSfMMY2DqfpY3E0e2Pu1H2+8NqaAWRCUefe1pVi3lNxc/B qZfzn/eDe7TUGhFypgS1O/ZmzvfDB6IiaJ7+OP8p34eIYEXekNZJ4xzhXdQpDXkS8Agm 7p9H9UDXpVMDi/60XpGKtmsPWylHNh+cDprKgavfSkRdNecnak/97Y2wHXTgbiSDL4pJ 4fTw== X-Gm-Message-State: AOAM5306BEqpCuR3Uc8+DBxtuHZGmzbdyxh9W+B6nTAyPm20O+CCfUfP G/FDnPf0A5LzsThkbUrwI4t2GMfi95CikA== X-Google-Smtp-Source: ABdhPJypNl7e8Y8618auAIrqv0I51cnjnxrqqITqkqbtuzHEXLetRGq6RFrYx1fKZ+ixSCtoexlNOA== X-Received: by 2002:adf:dccc:: with SMTP id x12mr28387084wrm.241.1600270005935; Wed, 16 Sep 2020 08:26:45 -0700 (PDT) Original-Received: from krug ([89.180.151.18]) by smtp.gmail.com with ESMTPSA id z7sm33525964wrw.93.2020.09.16.08.26.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2020 08:26:45 -0700 (PDT) In-Reply-To: (Arthur Miller's message of "Wed, 16 Sep 2020 16:10:37 +0200") Received-SPF: pass client-ip=2a00:1450:4864:20::431; envelope-from=joaotavora@gmail.com; helo=mail-wr1-x431.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -5 X-Spam_score: -0.6 X-Spam_bar: / X-Spam_report: (-0.6 / 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_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_SORBS_WEB=1.5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action 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:255895 Archived-At: Arthur Miller writes: > Jo=C3=A3o T=C3=A1vora writes: > that this mechanism already is there. Question is why 3rd party packages > don't use those placeholders? Is it lack of documentation? Or > something else. I think they do use them. When I load theme A it uses something for say, the diff-added face. When I laod theme B it uses something else. >>> I understand your sentiment, but then, you could say this for any >>> feature, inclusive fido-mode or icomplete or even find-file. >> I don't think you can. It's because of their simplicity that they=20 >> are much better integrated into Emacs's infrastructure. Compare >> the number of lines and the number of configuration options >> in fido-mode/icomplete-mode to the same number in those other=20 >> packages. These are leaner packages, they follow the existing >> infrastructure as much as possible, rather than reinvent it. > It is a little bit oranges to apples comparison. Well you brought up fido-mode, not I. > Helm offered quite > different interaction model for completions then what was originally > in Emacs. I don't know if fido/icomplete were in place then, Pretty sure icomplete was. > so it is natural that complexity is there. Also offered set of feature > is not the same. Just being simpler in terms of complexity is not good > enough measure of quality, although it might be a reason good enough > to use something. Observer also that when Ivy & Co get to level of > Helm functionality it will probably be as complex as Helm. Same for > other completions etc. I'm not convinced about that, simply because helm duplicates a lot of stuff that is already in Emacs.=20=20 I'm not saying fido-mode offers the same features, just that you can add features to it, say "acting on completions", in a way that integrates cleanly with existing infrastructure, without having to make new infrastructure. Helm took the route of making its own parallel infrastructure. So when a user uses some option to customize the former it doesn't affect the latter automatically, it has to be replicated. This is a simple matter of modular architecture. Helm's base is used by little more than Helm itself, in contrast to Emacs's own infrastructure. >> But if the complexity comparison isn't satisfying to you, it's easy >> to note that changes to the infrastructure, i.e. completion styles, >> are "naturally" absorbed by icomplete-mode and fido-mode,=20 >> whereas a package such as Helm had to go through great >> efforts to support them (reasonably recently). > Indeed, but it is in the nature of the thing, since it historically had > to invent what was later added to Emacs core? If I understnd the history > correct (correct me if I am wrong). You are mostly wrong. Icomplete already existed and so did Imenu. But that's not the same as saying that infrastructure at the time was sufficient for Helm's vision, or even that it is now. I'm just saying that adding capabilities to existing infrastructure is a good thing, and by contrast making a parallel infrastructure is less of a good thing. Doing the former is hard because design decisions are carefully considered since they have to serve multiple clients. Doing the latter is easier and a good way to churn out features quickly. But alas, it creates the problems I explained. Sometimes things will get integrated into Emacs core, depending on how generic they were. For example xref.el came as a rewrite of SLIME's cross-referencing functionality. But it's a bit too ambitious to integrate say, Helm's completion gathering code with Emacs's. Some of Helm's interesting features can be copied, but that, again, takes work. >> Don't understand this bit. I use ffap a lot and don't need to >> "enable" anything, just M-x ffap. Is it a mode? > Ok, I wasn't precise, it isn't a mode, but one can enable ffap bindings > automatically so they replace ordinary ones by default. Still confused. Ffap is "find file at point" right? What do you want to replace with it? Jo=C3=A3o