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: c-ts-mode Date: Tue, 12 Sep 2023 10:51:00 +0100 Message-ID: References: <5F73CB5D-DB00-439F-AD7C-7E209EC83A35@gmail.com> <83jzt2z5mk.fsf@gnu.org> <83y1hhykni.fsf@gnu.org> <877cp1lvih.fsf@gmail.com> <83v8clyhqi.fsf@gnu.org> <83tts5ygv2.fsf@gnu.org> <83msxxxkc0.fsf@gnu.org> <871qf9ktxd.fsf@gmail.com> <838r9gykia.fsf@gnu.org> <871qf395xg.fsf@yahoo.com> 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="21449"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Yuan Fu , Eli Zaretskii , Theodor Thornhill , spacibba@aol.com, emacs-devel@gnu.org To: Po Lu Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Sep 12 11:52:07 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 1qg03z-0005NB-RC for ged-emacs-devel@m.gmane-mx.org; Tue, 12 Sep 2023 11:52:07 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qg03H-0002zs-Fi; Tue, 12 Sep 2023 05:51:24 -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 1qg03D-0002yr-8b for emacs-devel@gnu.org; Tue, 12 Sep 2023 05:51:20 -0400 Original-Received: from mail-lf1-x12c.google.com ([2a00:1450:4864:20::12c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qg03B-0003Qa-0d; Tue, 12 Sep 2023 05:51:18 -0400 Original-Received: by mail-lf1-x12c.google.com with SMTP id 2adb3069b0e04-501cef42bc9so8858802e87.0; Tue, 12 Sep 2023 02:51:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1694512273; x=1695117073; darn=gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=w/ek+unFnCkE3lj7TnqWqI4Jx9RvCe/auWN63x6YjRM=; b=p5UV4mJBZyxjumBbKvLB9P/MMsL+ruJOpnkRyHvVkCbGu2WCfnL7RgM4inI3IIEXWY ivEmMw+jWNlETZClcfyVg4nr8VZJOifK2m5n6KPtg3gb0fVNAdojRy5OgT2ZgOhoGca9 oiXRf9A00AZ5OzQecNKZkyi4JX+ypNJRMW6OdZoj/KntDwTVyeB6K4lE4tjdI3G51/vF 1JPo22lIMPX+2Vk35H+SZix6GWpm8I1hlVdCPUvm95eWChcW/e8oeu8M9ohrTbACwV/N bnZfVFg7P0UqrDhoOUJZsZaUq+ZZrLVyTH2ztrASQcmNmD+y4eT/FUBrZN3MiNRLVON0 j20g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694512273; x=1695117073; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=w/ek+unFnCkE3lj7TnqWqI4Jx9RvCe/auWN63x6YjRM=; b=FUzsMlm71DemtSBHASgZzhGQAY6Dutx4tR7+rPX1pKZT+Xo4ncLp6vObTc9ftcBX9u EOctvQlGxZkvMgbw8GWMQ4/NAIExYTkMF2SaUV0dOcKYDpprelNe/OxdmRy08URiWB6s 5kuWVFAMLrHmKCVXdgPBdmpCAbxAlgZkY++Kqd+qtmUroxxcP0RfE5Klp997vpiTfgXL c+bmSUe9QxEvtJMjPYJlFgaAwFdknGkdX3jTW3r0LjG1o9sFvDrUCZcyAWCgpkVKb0ix GSP6ocvRedI5VtnpBE6V/EwUs9OhOkcTOiRLkiRGlrn9kvb8VN9Z/mTbRBUzo+uvsi3a JoRA== X-Gm-Message-State: AOJu0Yyg7tEzG91v63mDIb6d3vY65wTwDJUadpqa2ZVCuk0K/GPQ1wZL 4cqtaz7SuNL1XbPBE9aHJoZbccPl6la3ECngqFY= X-Google-Smtp-Source: AGHT+IEwkeWa9EcHQhTb85W6MGPmJwOOZsROpZYHTrXrCPxI2XO08/raUnKACc2ep8OL4Nt8XqCqTqPk68CSi79FeXM= X-Received: by 2002:ac2:504b:0:b0:500:c589:95fb with SMTP id a11-20020ac2504b000000b00500c58995fbmr8417291lfm.55.1694512272433; Tue, 12 Sep 2023 02:51:12 -0700 (PDT) In-Reply-To: <871qf395xg.fsf@yahoo.com> Received-SPF: pass client-ip=2a00:1450:4864:20::12c; envelope-from=joaotavora@gmail.com; helo=mail-lf1-x12c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, 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:310508 Archived-At: On Tue, Sep 12, 2023 at 9:01=E2=80=AFAM Po Lu wrote: > > But Custom itself fails to support EIEIO and defgenerics, so we should > only introduce such defgenerics as user options when it is clear that > the only users with reason to set them are already adept in Emacs Lisp. That's why I specifically wrote: "if users are asked to go to Elisp...". And, AFAIU, they _are_ being asked to go to Elisp in this particular case. And that's because treesitter-simple-indent-rules isn't a defcustom. Could it ever be a defcustom? Maybe. But I'd say that's hard because the ts indent rules DSL is complex and hard to express in that manner. And even if it were possible to do that (it probably is), it's another question entirely if using that UI for that particular purpose is more comfortable to the mythical "average user" than using Elisp directly. Furthermore, it's arguable that teaching multiple different complex DSLs for customizing different parts of Emacs is a worse investment than the practice of teaching basic reusable Lisp concepts that are particularly useful for customization like user init files, setq, eval-after-load, hooks, etc. And why not `cl-defmethod`? After all, people using Emacs are presumably using it as a file editor to some capacity. The super-popular frameworks such as Doom, Spacemacs (possibly the natural habitat of the aforementioned mythical creature) don't have any problems with teach their users Elisp naturally. If we were to take a cue from these systems (and get over the some of the CL allergies) we could -- on a case by case basis -- make better decisions as to how to provide good customization APIs. In summary, even though I personally don't like Custom for my own customization I'm _not_ proposing to "get rid of it" or stop providing defcustom specs, but to weigh the pros and cons when considering it for a given customization point. And of course not use this as an argument against CL stuff, because Custom can't express a lot of non-CL Lisp stuff either. Jo=C3=A3o