From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: joakim@verona.se Newsgroups: gmane.emacs.devel Subject: Re: Adding Flycheck to NonGNU ELPA Date: Mon, 19 Feb 2024 23:32:59 +0100 Message-ID: <874je413vo.fsf@tanaka.verona.se> References: <41bdb94a-3f9c-4b46-b061-b0c5e31a403e@app.fastmail.com> <871q98bb7q.fsf@posteo.net> <72490bec-175b-46b6-aaf9-153b3c242b70@app.fastmail.com> <87le7g9tg9.fsf@posteo.net> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="5450"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Cc: Philip Kaludercic , Bozhidar Batsov , Emacs Devel To: Dmitry Gutov Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Feb 19 23:33:59 2024 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 1rcCD1-0001Bq-4W for ged-emacs-devel@m.gmane-mx.org; Mon, 19 Feb 2024 23:33:59 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rcCCF-0004Ms-AM; Mon, 19 Feb 2024 17:33:11 -0500 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 1rcCCC-0004MN-Rc for emacs-devel@gnu.org; Mon, 19 Feb 2024 17:33:08 -0500 Original-Received: from smtp.outgoing.loopia.se ([93.188.3.37]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rcCCA-0007aD-IE for emacs-devel@gnu.org; Mon, 19 Feb 2024 17:33:08 -0500 Original-Received: from s807.loopia.se (localhost [127.0.0.1]) by s807.loopia.se (Postfix) with ESMTP id 3AE3C2FF60AD for ; Mon, 19 Feb 2024 23:33:01 +0100 (CET) Original-Received: from s980.loopia.se (unknown [172.22.191.5]) by s807.loopia.se (Postfix) with ESMTP id 28F192E2A398; Mon, 19 Feb 2024 23:33:01 +0100 (CET) Original-Received: from s470.loopia.se (unknown [172.22.191.5]) by s980.loopia.se (Postfix) with ESMTP id 254BE220155F; Mon, 19 Feb 2024 23:33:01 +0100 (CET) X-Virus-Scanned: amavisd-new at amavis.loopia.se Original-Received: from s981.loopia.se ([172.22.191.5]) by s470.loopia.se (s470.loopia.se [172.22.190.34]) (amavisd-new, port 10024) with LMTP id xesdwydZxN3O; Mon, 19 Feb 2024 23:33:00 +0100 (CET) X-Loopia-Auth: user X-Loopia-User: joakim@alicantealmeria.se X-Loopia-Originating-IP: 193.234.148.196 Original-Received: from tanaka.verona.se (unknown [193.234.148.196]) (Authenticated sender: joakim@alicantealmeria.se) by s981.loopia.se (Postfix) with ESMTPSA id 6E7C922B16CA; Mon, 19 Feb 2024 23:33:00 +0100 (CET) In-Reply-To: (Dmitry Gutov's message of "Mon, 19 Feb 2024 21:32:27 +0200") Received-SPF: pass client-ip=93.188.3.37; envelope-from=joakim@verona.se; helo=smtp.outgoing.loopia.se X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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:316382 Archived-At: Dmitry Gutov writes: > On 19/02/2024 20:53, Philip Kaludercic wrote: >> To this end, I repeat my question: What_technical functionality_ does >> Flycheck_currently_ provide that Flymake does not? A different way of >> putting it is what architectural advantages does Flycheck exemplify over >> Flymake, that give it an inherent edge? If there aren't too many >> differences, I think the cost of confusion (Flymake and Flycheck are >> names that are easy to confuse) and of inducing choice-fatigue among new >> users is not something we should ignore. > > I'm fairly sure the main answer is "lots of built-in checkers", much > more than flymake still has now. > > It also has a minor mode map, to invoke the errors buffer or jump > between the errors. Though the latter is easy-ish to port over. > > On the subject of choice fatigue, would we hesitate to include > lsp-mode in NonGNU ELPA, now that Eglot is in the core? I feel that > would be the wrong move. My 2 =F6ren is that it is normal for there to exist several different Emacs packages that provide similar functionality, and this goes for more or less any functionality you can think of. In my case I like to try all the different alternatives at once, so I write some code to be able to switch between the alternatives on the fly, until I feel I like one of the alternatives more than the others. I did this for the gazillion of completion options out there until I wound up with Vertico, and for the different fancy Modelines until I just reverted to the OOTB modeline.=20 Its not really easy to write such feature switching code reliably however. Sometimes you wind up in the tedium of rebooting Emacs. (not too bad though, this Emacs has 80 day uptime) Maybe having more alternatives in Elpa/Melpa would actually lead to more code re-use between the alternatives? That would be nice but I guess history indicates otherwise. PS Heres an example of the ugly code I wrote, I used the "daf" prefix for "dumb alternatives framework". Again, super ugly, but it kinda illustrates that its not super obvious how to change between similar implem= entations. (defun daf-ivy () "Switch to ivy." (interactive) (helm-mode -1) (ivy-mode 1) (counsel-mode 1) (counsel-projectile-mode) (global-set-key (kbd "M-x") 'counsel-M-x) (global-set-key (kbd "C-x C-f") 'counsel-find-file) (global-set-key (kbd "M-s M-s") 'swiper) (global-set-key (kbd "M-y") 'counsel-yank-pop) (global-set-key (kbd "C-x b") 'ivy-switch-buffer) (setq read-file-name-function 'read-file-name-default) (all-the-icons-ivy-setup) ) ;; use flex matching in ivy. its cool! ;; but maybe swiper should have another valuse ;; (setq ivy-re-builders-alist ;; '((t . ivy--regex-fuzzy))) ;;also u can change the re-builder on the fly (setq ivy-re-builders-alist '((swiper . ivy--regex-plus) (t . ivy--regex-plus) (fuzzy . ivy--regex-fuzzy))) (setq ivy-initial-inputs-alist nil) (defun daf-helm () "Switch to helm." (interactive) (ivy-mode -1) (helm-mode 1) (global-set-key (kbd "M-x") 'helm-M-x) (global-set-key (kbd "C-x C-f") 'helm-find-files) (global-set-key (kbd "M-s M-s") 'helm-swoop) (global-set-key (kbd "M-y") 'helm-show-kill-ring) (global-set-key (kbd "C-x b") 'helm-mini) ;;(setq read-file-name-function 'read-file-name-default);; for helm? --=20 Joakim Verona joakim@verona.se