Received: (at 76699) by debbugs.gnu.org; 8 Mar 2025 23:25:10 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 08 18:25:10 2025 Received: from localhost ([127.0.0.1]:57261 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tr3Xa-00014B-0a for submit <at> debbugs.gnu.org; Sat, 08 Mar 2025 18:25:10 -0500 Received: from 4.mo583.mail-out.ovh.net ([178.33.111.247]:37765) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <ngraves@HIDDEN>) id 1tr3XV-0000z4-Fc for 76699 <at> debbugs.gnu.org; Sat, 08 Mar 2025 18:25:07 -0500 Received: from director7.ghost.mail-out.ovh.net (unknown [10.109.148.22]) by mo583.mail-out.ovh.net (Postfix) with ESMTP id 4Z9K4v3dyKz1TXp for <76699 <at> debbugs.gnu.org>; Sat, 8 Mar 2025 23:25:03 +0000 (UTC) Received: from ghost-submission-5b5ff79f4f-qgvtf (unknown [10.110.118.174]) by director7.ghost.mail-out.ovh.net (Postfix) with ESMTPS id EC9A31FE64; Sat, 8 Mar 2025 23:25:02 +0000 (UTC) Received: from ngraves.fr ([37.59.142.106]) by ghost-submission-5b5ff79f4f-qgvtf with ESMTPSA id XqBSLc7RzGdOOgwAW/PBNw (envelope-from <ngraves@HIDDEN>); Sat, 08 Mar 2025 23:25:02 +0000 Authentication-Results: garm.ovh; auth=pass (GARM-106R0060df6adbc-ca2e-407f-a9c2-2d44f50c50e5, 196D73215860B9B374AEA1D4B43499A65472C7F7) smtp.auth=ngraves@HIDDEN X-OVh-ClientIp: 90.92.117.144 From: Nicolas Graves <ngraves@HIDDEN> To: Ludovic =?utf-8?Q?Court=C3=A8s?= <ludo@HIDDEN> Subject: Re: [bug#76699] [PATCH emacs-guix 0/4] Refresh package emacs-guix In-Reply-To: <87jz8zsbo2.fsf@HIDDEN> References: <20250303020636.3461-1-ngraves@HIDDEN> <87jz8zsbo2.fsf@HIDDEN> Date: Sun, 09 Mar 2025 00:25:02 +0100 Message-ID: <87o6yb2jht.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Ovh-Tracer-Id: 15118302476612068073 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: -100 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgdduudegkeejucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvvefujghffffkgggtgfesthhqredttddtjeenucfhrhhomheppfhitgholhgrshcuifhrrghvvghsuceonhhgrhgrvhgvshesnhhgrhgrvhgvshdrfhhrqeenucggtffrrghtthgvrhhnpeejjeejjeefuefgueefgefffeegffetkedtudejueektdevueeggeeiffegieduffenucffohhmrghinhepshhrrdhhthdpvghmrggtshgtohhnfhdrohhrghenucfkphepuddvjedrtddrtddruddpledtrdelvddruddujedrudeggedpfeejrdehledrudegvddruddtieenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeduvdejrddtrddtrddupdhmrghilhhfrhhomhepnhhgrhgrvhgvshesnhhgrhgrvhgvshdrfhhrpdhnsggprhgtphhtthhopedupdhrtghpthhtohepjeeiieelleesuggvsggsuhhgshdrghhnuhdrohhrghdpoffvtefjohhsthepmhhoheekfegmpdhmohguvgepshhmthhpohhuth DKIM-Signature: a=rsa-sha256; bh=R1O1/M2wNFDaYi3BS0XPxrliIu6ml9kb+Iqz3O6TbIE=; c=relaxed/relaxed; d=ngraves.fr; h=From; s=ovhmo4487190-selector1; t=1741476303; v=1; b=nHdPtOLcnJmPhJmMRCxjn0jZQY94YdvoaEMJDwZlvewSvH+DnGIkBa1N3B9fd0a1SL/Yha+Q zgUvvw1v+gBKhSL4Cv68CaZvcitFxFLb1JA5rjlipqDEQAqjwKP02XhIoDCISrKQIwISCOjpIFh efikxwabMl2OdYHmhSWkY8OX0X8yMBUKJe4kz2ym2/tNHYx8v32Vu0n0N0n0lrdThWbwNv9V9UA 5TJEkqTWyYUo5EyU7nHnDxobLbFrHF6+OUak9lH+cjwBHQpL9Gu7UWwVub2VUiILCTOQAT99N2o +bmWs/LLVNluFjBtKeQMvTpWHbYsSqjyt08qu+dYK026Q== X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 76699 Cc: 76699 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) On 2025-03-08 17:57, Ludovic Court=C3=A8s wrote: > Hello, > > Nicolas Graves <ngraves@HIDDEN> skribis: > >> This is a series of refreshing commits for emacs-guix. > > Yay! > >> This is done in an effort to port emacs-guix to >> guile-ares-rs/emacs-arei backend, currently in progress here : >> https://git.sr.ht/~ngraves/emacs-guix > > I remain fond of Geiser so I=E2=80=99m skeptical of this change. Perhaps= you > could explain a bit why you think it=E2=80=99s worthwhile? Both could exist together if we remain coordinated (hence first the effort to improve, before efforts to port ;), "port" here is not necessarily meant to replace. I'm not qualified enough myself to judge, let's say that I've been sold to ares/arei by the asynchronous/fluency/protocol guarantees. Andrew Tropin's talk on EmacsConf 2023 elaborate more on why the project was started in the first place. https://emacsconf.org/2023/talks/scheme/ I've found it convenient to write and test scheme (a bit less finished on the user's side -- you still have to start the server manually) ; but overall I find it quite pleasant to use, simply write and evaluate the code I'm writing without having to write to copy/paste. What I would want such a package to do is also to have convenient features like: - guix packages recognition while developping (for embark actions) - guix-lint/flymake integration + embark action - guix-style embark action I see this kind of things possible with ares ; I don't know geiser enough to know if it's possible / convenient / how to tackle them properly. > I haven=E2=80=99t tried it yet but it LGTM, except for patch #4. Will look into that, thanks! By the way, I would like to get rid of emacs-bui too, I think it adds a lot of complexity / it is one of the reasons emacs-guix is hard to maintain. I was thinking about - rewriting the completing-read part // replacing the list mode functionality with a completing-read that would list synopses when present with packages like vertico/marginalia (so no more dedicated mode, just a more carefully written completing-read) ; - replacing the guix-ui mode with its proper transient (on *Guix info*, hitting `h` almost spawns a transient-like menu, so it might be more maintainable with transient itself, and with a popping transient, there's no need for buttons), and probably a beautified read-only rec-mode like interface ; if we manage to inject recutils from scheme, it might be a lot less code to maintain in emacs-guix. IMHO, both would make it easier to maintain and extend the package, at the cost of a little less "polish". Sometimes less is more! --=20 Best regards, Nicolas Graves
guix-patches@HIDDEN
:bug#76699
; Package guix-patches
.
Full text available.Received: (at 76699) by debbugs.gnu.org; 8 Mar 2025 16:57:31 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 08 11:57:31 2025 Received: from localhost ([127.0.0.1]:56464 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tqxUQ-0003Fm-Pv for submit <at> debbugs.gnu.org; Sat, 08 Mar 2025 11:57:31 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:44580) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <ludo@HIDDEN>) id 1tqxUN-0003FO-FD for 76699 <at> debbugs.gnu.org; Sat, 08 Mar 2025 11:57:28 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <ludo@HIDDEN>) id 1tqxUG-0002Dl-WB; Sat, 08 Mar 2025 11:57:21 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To: From; bh=V/4SQZo8k5/Iy5J6GYHAo5XbH+/5wW039iecAc33fvk=; b=JSpAD61c8OwBvJ3hWa8w rL3NSud93vKQPeveEH/5oqVI9vOT6zaUEYzRBskCk5WgYmAvdj318m32NgzGX8RQB+LBIbKc+IeEx fVyGJTtA4fd8EG8E/ZhcfRDIAWObOn0VC/ricn+YKZ3Mmo4UvEtTq+PzZtQllstNuqc7Lz7+6tR/b rHPeUNy0G+OHJoP4gM9VCmtRolOOhjwPRus0WNvWi5ZTYibvmkPmdjBIxgt+08xreoJAKWwt488hv Lg1nJ8mbXtZTC8kT/eu4EkXgSi5k8uAqtf2mZyIS2+7JL5yqLD456buIVkmPMaiL9npaYmaZo301K JIo1N24jpOVa7A==; From: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludo@HIDDEN> To: Nicolas Graves <ngraves@HIDDEN> Subject: Re: [bug#76699] [PATCH emacs-guix 0/4] Refresh package emacs-guix In-Reply-To: <20250303020636.3461-1-ngraves@HIDDEN> (Nicolas Graves's message of "Mon, 3 Mar 2025 03:01:21 +0100") References: <20250303020636.3461-1-ngraves@HIDDEN> Date: Sat, 08 Mar 2025 17:57:17 +0100 Message-ID: <87jz8zsbo2.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 76699 Cc: 76699 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) Hello, Nicolas Graves <ngraves@HIDDEN> skribis: > This is a series of refreshing commits for emacs-guix. Yay! > This is done in an effort to port emacs-guix to > guile-ares-rs/emacs-arei backend, currently in progress here : > https://git.sr.ht/~ngraves/emacs-guix I remain fond of Geiser so I=E2=80=99m skeptical of this change. Perhaps y= ou could explain a bit why you think it=E2=80=99s worthwhile? > This is still a WIP, I'd still like to replace old references to > guix-environment by references to guix shell at least. I'm not able > to test all changes, since guix-command seems to be broken (before > this patch series I mean). > > Thus, I invite users of emacs-guix to try that series and report any > bug that could have been caused by it. I haven=E2=80=99t tried it yet but it LGTM, except for patch #4. Ludo=E2=80=99.
guix-patches@HIDDEN
:bug#76699
; Package guix-patches
.
Full text available.Received: (at 76699) by debbugs.gnu.org; 8 Mar 2025 16:56:03 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 08 11:56:03 2025 Received: from localhost ([127.0.0.1]:56459 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tqxT0-0003Cp-VZ for submit <at> debbugs.gnu.org; Sat, 08 Mar 2025 11:56:03 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:60820) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <ludo@HIDDEN>) id 1tqxSz-0003C7-4L for 76699 <at> debbugs.gnu.org; Sat, 08 Mar 2025 11:56:01 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <ludo@HIDDEN>) id 1tqxSr-00027S-Qo; Sat, 08 Mar 2025 11:55:53 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To: From; bh=M/6O6qqZqYQBE2VFUzYJg1c8QWDWie34Y7sJuwqDMr4=; b=YZQxKLAtG92619+OpZ5w 1xnJB6TwcWLmI9lP6uZ8hftsl1N5XLVTfFrFcGIARVt1PS1bd2jBaRAyZV7Hikh9j0IM6BN0Rd1UH aEDvLsvYTUgSWhb7/8IwRi4zvU3fUpmYLKU2ehhRR0jmeOEHrjFmkLqfM7Lj420hX7MNrq33CC8zc lO4PFeZoE560Qe2ToGRoExAZVV1oKn3427/0VNoHABXN9Yb++glWaj1Oxt+9Hj5GoZnOGTPBKlvwz VEQwo5ZNKuJw0BzbE2uKrWprTXSah3QykyNwONv1pybY2K7REPkg8wrNL0R4B8wRGwwpNkByb/Sxi 5CgdCgf7DTxr3w==; From: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludo@HIDDEN> To: Nicolas Graves <ngraves@HIDDEN> Subject: Re: [bug#76699] [PATCH 4/5] Use a development channel instead of guix.scm In-Reply-To: <20250303020932.4194-4-ngraves@HIDDEN> (Nicolas Graves's message of "Mon, 3 Mar 2025 03:09:19 +0100") References: <20250303020932.4194-1-ngraves@HIDDEN> <20250303020932.4194-4-ngraves@HIDDEN> Date: Sat, 08 Mar 2025 17:55:43 +0100 Message-ID: <87ldtfsbqo.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 76699 Cc: 76699 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) Hi Nicolas, Nicolas Graves <ngraves@HIDDEN> skribis: > --- > .guix-channel | 3 + > guix.scm =3D> channel/emacs-guix-channel.scm | 69 ++++++-------- > channel/emacs-guix-channel.scm.next | 104 +++++++++++++++++++++ > 3 files changed, 137 insertions(+), 39 deletions(-) > create mode 100644 .guix-channel > rename guix.scm =3D> channel/emacs-guix-channel.scm (50%) > create mode 100644 channel/emacs-guix-channel.scm.next > > diff --git a/.guix-channel b/.guix-channel > new file mode 100644 > index 0000000..bb2ac66 > --- /dev/null > +++ b/.guix-channel > @@ -0,0 +1,3 @@ > +(channel > + (version 0) > + (directory "channel")) > diff --git a/guix.scm b/channel/emacs-guix-channel.scm > similarity index 50% > rename from guix.scm > rename to channel/emacs-guix-channel.scm > index d35b0ba..ea8a6e7 100644 > --- a/guix.scm > +++ b/channel/emacs-guix-channel.scm > @@ -2,6 +2,7 @@ I=E2=80=99d suggest: 1. Renaming =E2=80=98channel=E2=80=99 to =E2=80=98.guix/modules=E2=80=99; 2. Making =E2=80=98guix.scm=E2=80=99 a symlink to =E2=80=98.guix/modules/emacs-guix-packages.scm=E2=80=99. This would follow the conventions described in the cookbook (info "(guix-cookbook) Software Development"). > +(define-module (emacs-guix-channel)) > + > (use-modules > + (git) > (ice-9 popen) > (ice-9 rdelim) While you=E2=80=99re at it, I=E2=80=99d suggest grouping things together: (define-module (emacs-guix-packages) #:use-module (git) #:use-module =E2=80=A6) > +++ b/channel/emacs-guix-channel.scm.next What is this supposed to be? I suspect it=E2=80=99s unnecessary. :-) Thanks, Ludo=E2=80=99.
guix-patches@HIDDEN
:bug#76699
; Package guix-patches
.
Full text available.Received: (at 76699) by debbugs.gnu.org; 3 Mar 2025 02:09:54 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Mar 02 21:09:54 2025 Received: from localhost ([127.0.0.1]:40751 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tovFg-0007d5-VF for submit <at> debbugs.gnu.org; Sun, 02 Mar 2025 21:09:54 -0500 Received: from 6.mo560.mail-out.ovh.net ([87.98.165.38]:35271) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <ngraves@HIDDEN>) id 1tovFW-0007bN-JP for 76699 <at> debbugs.gnu.org; Sun, 02 Mar 2025 21:09:45 -0500 Received: from director11.ghost.mail-out.ovh.net (unknown [10.108.2.97]) by mo560.mail-out.ovh.net (Postfix) with ESMTP id 4Z5j1c4zZJz1Vh0 for <76699 <at> debbugs.gnu.org>; Mon, 3 Mar 2025 02:09:40 +0000 (UTC) Received: from ghost-submission-5b5ff79f4f-9vblb (unknown [10.110.96.237]) by director11.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 143661FDDB; Mon, 3 Mar 2025 02:09:39 +0000 (UTC) Received: from ngraves.fr ([37.59.142.95]) by ghost-submission-5b5ff79f4f-9vblb with ESMTPSA id fxSWJWMPxWd6YAcAkrx+OQ (envelope-from <ngraves@HIDDEN>); Mon, 03 Mar 2025 02:09:39 +0000 Authentication-Results: garm.ovh; auth=pass (GARM-95G0015523aaf8-a601-434d-a087-22ec13bad09a, 3FD0527DE2CE9D3C35B0E9483E243F320C79A24B) smtp.auth=ngraves@HIDDEN X-OVh-ClientIp: 90.92.117.144 From: Nicolas Graves <ngraves@HIDDEN> To: 76699 <at> debbugs.gnu.org Subject: [PATCH 4/5] Use a development channel instead of guix.scm Date: Mon, 3 Mar 2025 03:09:19 +0100 Message-ID: <20250303020932.4194-4-ngraves@HIDDEN> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250303020932.4194-1-ngraves@HIDDEN> References: <20250303020932.4194-1-ngraves@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Ovh-Tracer-Id: 1109011410058011362 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: 0 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgdeljeekkecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfqggfjpdevjffgvefmvefgnecuuegrihhlohhuthemucehtddtnecunecujfgurhephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpefpihgtohhlrghsucfirhgrvhgvshcuoehnghhrrghvvghssehnghhrrghvvghsrdhfrheqnecuggftrfgrthhtvghrnhepkefgudeuheevuefggfdthfevffdvuddvfeeuueeuudeuffdvveduieejveeiffffnecuffhomhgrihhnpehstghmrdhnvgigthdpghhnuhdrohhrghenucfkphepuddvjedrtddrtddruddpledtrdelvddruddujedrudeggedpfeejrdehledrudegvddrleehnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepuddvjedrtddrtddruddpmhgrihhlfhhrohhmpehnghhrrghvvghssehnghhrrghvvghsrdhfrhdpnhgspghrtghpthhtohepuddprhgtphhtthhopeejieeileelseguvggssghughhsrdhgnhhurdhorhhgpdfovfetjfhoshhtpehmohehiedtmgdpmhhouggvpehsmhhtphhouhht DKIM-Signature: a=rsa-sha256; bh=rq1mhPKcsPTsFzSpCJLKafTQtL8K6vZFIug55BP6V1w=; c=relaxed/relaxed; d=ngraves.fr; h=From; s=ovhmo4487190-selector1; t=1740967780; v=1; b=IuIyGatKXyi1UoMxNRS2s5Ukw3vLqLLxissgw8ayUMRHIcGvpIwIAEUAGeLMM1+tMO34J8/M FIBfRUEdMSaFG2573skAEh69At3DuSjdV4mUsGe0dfstQFEkmRKH2FrRGLOPP8kEDjRrdXH+t5O MxrkxGUIU8qi3wO6AJKcHLZ4IZfvQL0EzqQJZ+WYkHcpnMOhV19JPkLemVYbNiBcdssUtfBkn2m 2RgLAiasipvyEIPQNIXecLlja8Z3RY3lRw+fPLasqLjiz8cW8Ow46Vho6go325/hWbsR5tkLnFZ lOONhi8xal16WCzG28be4tKule3XxITgliB8IluYUAH+A== X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 76699 Cc: Nicolas Graves <ngraves@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --- .guix-channel | 3 + guix.scm => channel/emacs-guix-channel.scm | 69 ++++++-------- channel/emacs-guix-channel.scm.next | 104 +++++++++++++++++++++ 3 files changed, 137 insertions(+), 39 deletions(-) create mode 100644 .guix-channel rename guix.scm => channel/emacs-guix-channel.scm (50%) create mode 100644 channel/emacs-guix-channel.scm.next diff --git a/.guix-channel b/.guix-channel new file mode 100644 index 0000000..bb2ac66 --- /dev/null +++ b/.guix-channel @@ -0,0 +1,3 @@ +(channel + (version 0) + (directory "channel")) diff --git a/guix.scm b/channel/emacs-guix-channel.scm similarity index 50% rename from guix.scm rename to channel/emacs-guix-channel.scm index d35b0ba..ea8a6e7 100644 --- a/guix.scm +++ b/channel/emacs-guix-channel.scm @@ -2,6 +2,7 @@ ;; Copyright © 2017 Alex Kost <alezost@HIDDEN> ;; Copyright © 2019 Oleg Pykhalov <go.wigust@HIDDEN> +;; Copyright © 2025 Nicolas Graves <ngraves@HIDDEN> ;; This file is part of Emacs-Guix. @@ -21,72 +22,62 @@ ;;; Commentary: ;; This file contains Guix package for development version of -;; Emacs-Guix. To build or install, run: +;; Emacs-Guix. To build it, you need guile-git in your profile. +;; Then, in the parent directory, run or install: ;; -;; guix build --file=guix.scm -;; guix package --install-from-file=guix.scm +;; guix build -L channel emacs-guix-devel +;; guix install -L channel emacs-guix-devel ;; The main purpose of this file though is to make a development ;; environment for building Emacs-Guix: ;; -;; guix environment --pure --load=guix.scm +;; guix shell -L channel -D --pure emacs-guix-devel ;; ./autogen.sh ;; ./configure ;; make ;;; Code: +(define-module (emacs-guix-channel)) + (use-modules + (git) (ice-9 popen) (ice-9 rdelim) (guix build utils) (guix gexp) (guix git-download) (guix packages) + (guix utils) (gnu packages autotools) (gnu packages emacs) (gnu packages emacs-xyz) + (gnu packages guile-xyz) (gnu packages pkg-config) (gnu packages texinfo)) -(define %source-dir (dirname (current-filename))) - -(define (git-output . args) - "Execute 'git ARGS ...' command and return its output without trailing -newspace." - (with-directory-excursion %source-dir - (let* ((port (apply open-pipe* OPEN_READ "git" args)) - (output (read-string port))) - (close-pipe port) - (string-trim-right output #\newline)))) - -(define (current-commit) - (git-output "log" "-n" "1" "--pretty=format:%H")) - -(define emacs-guix-devel - (let ((commit (current-commit))) +(define-public emacs-guix/devel + (let* ((source-dir (dirname (dirname (current-filename)))) + (repo (repository-open source-dir)) + (commit (oid->string (object-id (revparse-single repo "HEAD"))))) (package (inherit emacs-guix) - (version (string-append (package-version emacs-guix) - "-" (string-take commit 7))) - (source (local-file %source-dir + (name "emacs-guix-devel") + (version (string-append + (string-drop-right (package-version emacs-guix) 7) + (string-take commit 7))) + (source (local-file source-dir #:recursive? #t - #:select? (git-predicate %source-dir))) + #:select? (git-predicate source-dir))) (arguments - (append (package-arguments emacs-guix) - '(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'autogen - (lambda _ (zero? (system* "sh" "autogen.sh")))))))) - (native-inputs - `(("pkg-config" ,pkg-config) - ;; 'emacs-minimal' does not find Emacs packages (this is for - ;; "guix environment"). - ("emacs" ,emacs-no-x) - ("autoconf" ,autoconf) - ("automake" ,automake) - ("texinfo" ,texinfo)))))) - -emacs-guix-devel + (substitute-keyword-arguments (package-arguments emacs-guix) + ((#:phases phases) + #~(modify-phases #$phases + (add-after 'unpack 'autogen + (lambda _ (zero? (system* "sh" "autogen.sh")))))))) + (propagated-inputs + (modify-inputs (package-propagated-inputs emacs-guix) + (replace "emacs-dash" emacs-llama) + (replace "emacs-magit-popup" emacs-transient)))))) ;;; guix.scm ends here diff --git a/channel/emacs-guix-channel.scm.next b/channel/emacs-guix-channel.scm.next new file mode 100644 index 0000000..58a2a44 --- /dev/null +++ b/channel/emacs-guix-channel.scm.next @@ -0,0 +1,104 @@ +;;; guix.scm --- Guix package for Emacs-Guix + +;; Copyright © 2017 Alex Kost <alezost@HIDDEN> +;; Copyright © 2019 Oleg Pykhalov <go.wigust@HIDDEN> +;; Copyright © 2025 Nicolas Graves <ngraves@HIDDEN> + +;; This file is part of Emacs-Guix. + +;; Emacs-Guix is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. +;; +;; Emacs-Guix is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with Emacs-Guix. If not, see <http://www.gnu.org/licenses/>. + +;;; Commentary: + +;; This file contains Guix package for development version of +;; Emacs-Guix. To build or install, run: +;; +;; guix build --file=guix.scm +;; guix package --install-from-file=guix.scm + +;; The main purpose of this file though is to make a development +;; environment for building Emacs-Guix: +;; +;; guix environment --pure --load=guix.scm +;; ./autogen.sh +;; ./configure +;; make + +;;; Code: + +(define-module (emacs-guix-channel)) + +(use-modules + (git) + (ice-9 match) + (ice-9 popen) + (ice-9 rdelim) + (guix build utils) + (guix gexp) + (guix git-download) + (guix packages) + (guix profiles) + (gnu packages autotools) + (gnu packages emacs) + (gnu packages emacs-xyz) + (rde packages emacs-xyz) + (gnu packages guile) + (gnu packages guile-xyz) + (rde packages guile-xyz) + (gnu packages package-management) + (gnu packages pkg-config) + (gnu packages terminals) + (gnu packages texinfo)) + +(define guix-with-guile-next + ((package-input-rewriting/spec `(("guile" . ,(const guile-next)))) guix)) + +(define emacs-guix/devel + (let* ((source-dir (dirname (dirname (current-filename)))) + (repo (repository-open source-dir)) + (commit (oid->string + (object-id (revparse-single repo "HEAD"))))) + (package + (inherit emacs-guix) + (name "emacs-guix-arei") + (version (string-append + (string-drop-right (package-version emacs-guix) 7) + (string-take commit 7))) + (source (local-file source-dir + #:recursive? #t + #:select? (git-predicate source-dir))) + ;; (arguments + ;; (append (package-arguments emacs-guix) + ;; '(#:phases + ;; (modify-phases %standard-phases + ;; (add-after 'unpack 'autogen + ;; (lambda _ (zero? (system* "sh" "autogen.sh")))))))) + (inputs + (modify-inputs (package-inputs emacs-guix) + (replace "guile" guile-next) + (append guile-ares-rs-latest) + (append foot))) + (propagated-inputs + (modify-inputs (package-propagated-inputs emacs-guix) + (append emacs-arei-latest)))))) + +(match (cdr (command-line)) + (("build" . rest) emacs-guix/devel) + ;; (("shell" "-D" . rest) ) + ;; (("shell" . rest) (specifications->manifest (list "emacs-guix/devel"))) + (otherwise (package->development-manifest emacs-guix/devel) + ;; (error (format #f "Unable to handle ~a!" otherwise)) + )) + +;;; guix.scm ends here -- 2.48.1
guix-patches@HIDDEN
:bug#76699
; Package guix-patches
.
Full text available.Received: (at 76699) by debbugs.gnu.org; 3 Mar 2025 02:09:53 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Mar 02 21:09:53 2025 Received: from localhost ([127.0.0.1]:40749 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tovFg-0007cw-Hs for submit <at> debbugs.gnu.org; Sun, 02 Mar 2025 21:09:52 -0500 Received: from 15.mo561.mail-out.ovh.net ([87.98.150.177]:55823) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <ngraves@HIDDEN>) id 1tovFW-0007bU-UY for 76699 <at> debbugs.gnu.org; Sun, 02 Mar 2025 21:09:44 -0500 Received: from director6.ghost.mail-out.ovh.net (unknown [10.108.2.97]) by mo561.mail-out.ovh.net (Postfix) with ESMTP id 4Z5j1d2w9hz1RRm for <76699 <at> debbugs.gnu.org>; Mon, 3 Mar 2025 02:09:41 +0000 (UTC) Received: from ghost-submission-5b5ff79f4f-bxndx (unknown [10.110.168.221]) by director6.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 2CAAD1FDEC; Mon, 3 Mar 2025 02:09:40 +0000 (UTC) Received: from ngraves.fr ([37.59.142.100]) by ghost-submission-5b5ff79f4f-bxndx with ESMTPSA id dwdmK2QPxWfgtRAAslHJeA (envelope-from <ngraves@HIDDEN>); Mon, 03 Mar 2025 02:09:40 +0000 Authentication-Results: garm.ovh; auth=pass (GARM-100R0036aa0297d-b08d-48ac-8876-299d4ceed16f, 3FD0527DE2CE9D3C35B0E9483E243F320C79A24B) smtp.auth=ngraves@HIDDEN X-OVh-ClientIp: 90.92.117.144 From: Nicolas Graves <ngraves@HIDDEN> To: 76699 <at> debbugs.gnu.org Subject: [PATCH 5/5] Update NEWS Date: Mon, 3 Mar 2025 03:09:20 +0100 Message-ID: <20250303020932.4194-5-ngraves@HIDDEN> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250303020932.4194-1-ngraves@HIDDEN> References: <20250303020932.4194-1-ngraves@HIDDEN> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Ovh-Tracer-Id: 1109292885370135266 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: 0 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgdeljeekjecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfqggfjpdevjffgvefmvefgnecuuegrihhlohhuthemucehtddtnecunecujfgurhephffvvefufffkofgjfhgggfestdekredtredttdenucfhrhhomheppfhitgholhgrshcuifhrrghvvghsuceonhhgrhgrvhgvshesnhhgrhgrvhgvshdrfhhrqeenucggtffrrghtthgvrhhnpeelffejteeutefhfeekfffffedvudekjeekgfeludeitdfhkeevhfeivdfhffeggeenucfkphepuddvjedrtddrtddruddpledtrdelvddruddujedrudeggedpfeejrdehledrudegvddruddttdenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeduvdejrddtrddtrddupdhmrghilhhfrhhomhepnhhgrhgrvhgvshesnhhgrhgrvhgvshdrfhhrpdhnsggprhgtphhtthhopedupdhrtghpthhtohepjeeiieelleesuggvsggsuhhgshdrghhnuhdrohhrghdpoffvtefjohhsthepmhhoheeiudgmpdhmohguvgepshhmthhpohhuth DKIM-Signature: a=rsa-sha256; bh=UuPf1b71z5w7VLOfBfDFHUJKObwQbr24mw5cYirE7GI=; c=relaxed/relaxed; d=ngraves.fr; h=From; s=ovhmo4487190-selector1; t=1740967781; v=1; b=ZIO/5sdl2QxwnCy6TJUx2G6yLKHQ9IrjUhmgKHexSHg93sc1pBF67eJbPY22ema170u4rVMV DJbqcf9+slNmskbQW6p9I5aoSei59HlCU6EfR7CMYwqC0w5WKUiyVKGuzXVW4DHusJ2gL3IPEzg BDcd3Ze25DlfdDH6bjUjmYcjDjy0GrJPMJI44nYOBr2Q2Fjfrf399wU0kIzaDPzf5uMv67JNZEY tzN7Kv1EiPt5tI7X4NfP3e/CfJk0Wqgz37xmpZBWJjKW+Zbo4LJUyOVTLmlTqvfAqzZSo6kB2VY tCx2DsK7PHHhK7YsiOf7rWAdqOm3J0AVNMQqLUivkXhHA== X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 76699 Cc: Nicolas Graves <ngraves@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --- NEWS | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/NEWS b/NEWS index b4904f0..c971130 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,15 @@ -*- mode: org -*- +* Changes in 0.5.3 (since 0.5.2) + +Minor user-visible changes, no functionality addition, mostly refreshing changes: + +- refreshing most doctrings to pass on emacs@29 flymake standards +- remove dependency on the dash library, introduce the lighter llama library in order to replace the compact syntax for short lambdas +- replace outdated emacs-popup by transient library +- allow the use of the repository as a channel +- refresh installation / development tools + * Changes in 0.5.2 (since 0.5.1.1) ** User visible changes -- 2.48.1
guix-patches@HIDDEN
:bug#76699
; Package guix-patches
.
Full text available.Received: (at 76699) by debbugs.gnu.org; 3 Mar 2025 02:09:52 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Mar 02 21:09:52 2025 Received: from localhost ([127.0.0.1]:40747 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tovFc-0007cX-Np for submit <at> debbugs.gnu.org; Sun, 02 Mar 2025 21:09:52 -0500 Received: from 15.mo583.mail-out.ovh.net ([178.33.107.29]:51525) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <ngraves@HIDDEN>) id 1tovFS-0007aw-DG for 76699 <at> debbugs.gnu.org; Sun, 02 Mar 2025 21:09:44 -0500 Received: from director8.ghost.mail-out.ovh.net (unknown [10.109.139.176]) by mo583.mail-out.ovh.net (Postfix) with ESMTP id 4Z5j1X4xGVz1SyY for <76699 <at> debbugs.gnu.org>; Mon, 3 Mar 2025 02:09:36 +0000 (UTC) Received: from ghost-submission-5b5ff79f4f-klvlq (unknown [10.110.188.182]) by director8.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 52F651FD42; Mon, 3 Mar 2025 02:09:36 +0000 (UTC) Received: from ngraves.fr ([37.59.142.101]) by ghost-submission-5b5ff79f4f-klvlq with ESMTPSA id bJD6AGAPxWdTfgIAxguJDg (envelope-from <ngraves@HIDDEN>); Mon, 03 Mar 2025 02:09:36 +0000 Authentication-Results: garm.ovh; auth=pass (GARM-101G004ee1ee68e-4a78-4fbb-b92e-b54a20d94d0d, 3FD0527DE2CE9D3C35B0E9483E243F320C79A24B) smtp.auth=ngraves@HIDDEN X-OVh-ClientIp: 90.92.117.144 From: Nicolas Graves <ngraves@HIDDEN> To: 76699 <at> debbugs.gnu.org Subject: [PATCH 1/5] Switch to transient Date: Mon, 3 Mar 2025 03:09:16 +0100 Message-ID: <20250303020932.4194-1-ngraves@HIDDEN> X-Mailer: git-send-email 2.48.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Ovh-Tracer-Id: 1107885510514369250 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: 49 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgdeljeekkecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfqggfjpdevjffgvefmvefgnecuuegrihhlohhuthemucehtddtnecuogfuuhhsphgvtghtffhomhgrihhnucdlgeelmdenucfjughrpefhvfevufffkffogggtgfesthekredtredtjeenucfhrhhomheppfhitgholhgrshcuifhrrghvvghsuceonhhgrhgrvhgvshesnhhgrhgrvhgvshdrfhhrqeenucggtffrrghtthgvrhhnpeelgeeihfevledtffdvieefleelveehheejgedtkeekiedugeffudeuudehudduveenucffohhmrghinhepghhithhhuhgsrdgtohhmpdhmrghgihhtrdhvtgdpnhhonhhgnhhurdhorhhgpdhgnhhurdhorhhgpdhgihhtlhgrsgdrihhonecukfhppeduvdejrddtrddtrddupdeltddrledvrdduudejrddugeegpdefjedrheelrddugedvrddutddunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepuddvjedrtddrtddruddpmhgrihhlfhhrohhmpehnghhrrghvvghssehnghhrrghvvghsrdhfrhdpnhgspghrtghpthhtohepuddprhgtphhtthhopeejieeileelseguvggssghughhsrdhgnhhurdhorhhgpdfovfetjfhoshhtpehmohehkeefmgdpmhhouggvpehsmhhtphhouhht DKIM-Signature: a=rsa-sha256; bh=Pb8dOfTqssof1lM/EV2v+WfLfaW7KVwbhUwSIkvxrSg=; c=relaxed/relaxed; d=ngraves.fr; h=From; s=ovhmo4487190-selector1; t=1740967776; v=1; b=0ILNUK9SRHElYDHiW7ao/+B9AZiUFtnFsiKV828U7LdQ1OIueQ3RE8zdS7lovakzC/KI1t3h zXPapjfRikwY98O4gcaU9Ka4bZP7dNB4C3nEqKZ0RlvVhi9kluMAqby1/o2CLWXacDqT45eV0MX lJhJZBNbj5eoPyRBBSygPfMhUKom8yElvJLkCUldcJRhyVpNkZnNUeCKyk0q9isOBCZ15+aR5eV MWCo0cHxAPWwa9rvNe3geXcFLWhJTXfrFDqMn0HbDyG4u7QZ0dT57yH7jzMW3HVmV4yY3iwZsQf 6L/7GSngKx+x9fFu7lkqiJxFIkMIyTxclLt31uD1eY96A== X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 76699 Cc: Nicolas Graves <ngraves@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --- README | 2 +- configure.ac | 16 +-- doc/emacs-guix.texi | 55 +++++----- doc/htmlxref.cnf | 6 +- elisp/guix-command.el | 114 ++++++++++---------- elisp/guix-help.el | 2 +- elisp/guix-popup.el | 227 ---------------------------------------- elisp/guix-transient.el | 187 +++++++++++++++++++++++++++++++++ elisp/guix.el | 2 +- elisp/local.mk | 6 +- 10 files changed, 288 insertions(+), 329 deletions(-) delete mode 100644 elisp/guix-popup.el create mode 100644 elisp/guix-transient.el diff --git a/README b/README index 55a6956..6a63f97 100644 --- a/README +++ b/README @@ -34,7 +34,7 @@ In short, Emacs-Guix provides the following features: + [[/gnu/store]] items -- Magit-like popup interface for all Emacs-Guix and Guix shell commands +- Magit-like keyboard-driven menu for all Emacs-Guix and Guix shell commands (=M-x guix=). - Modes to view logs of package builds (=guix-build-log-mode= and diff --git a/configure.ac b/configure.ac index dd1de4b..3461bb3 100644 --- a/configure.ac +++ b/configure.ac @@ -130,18 +130,18 @@ AC_ARG_WITH([editindirect-lispdir], [editindirectlispdir="no"]) AC_SUBST([editindirectlispdir]) -AC_ARG_WITH([popup-lispdir], - [AS_HELP_STRING([--with-popup-lispdir], - [directory with magit-popup.el file])], - [popuplispdir="$withval"], - [popuplispdir="no"]) -AC_SUBST([popuplispdir]) +AC_ARG_WITH([transient-lispdir], +[AS_HELP_STRING([--with-transient-lispdir], + [directory with transient.el file])], + [transientlispdir="$withval"], + [transientlispdir="no"]) +AC_SUBST([transientlispdir]) AM_CONDITIONAL([GEISER_DIR], [test "x$geiserlispdir" != "xno"]) AM_CONDITIONAL([DASH_DIR], [test "x$dashlispdir" != "xno"]) AM_CONDITIONAL([BUI_DIR], [test "x$builispdir" != "xno"]) AM_CONDITIONAL([EDITINDIRECT_DIR], [test "x$editindirectlispdir" != "xno"]) -AM_CONDITIONAL([POPUP_DIR], [test "x$popuplispdir" != "xno"]) +AM_CONDITIONAL([TRANSIENT_DIR], [test "x$transientlispdir" != "xno"]) dnl If all elisp dependencies are specified, we can use "emacs -Q" for dnl byte-compilation. Otherwise, "emacs" will be used, and it will @@ -151,7 +151,7 @@ AM_CONDITIONAL([EMACS_Q], "x$dashlispdir" != "xno" -a \ "x$builispdir" != "xno" -a \ "x$editindirectlispdir" != "xno" -a \ - "x$popuplispdir" != "xno"]) + "x$transientlispdir" != "xno"]) dnl ---------------------------------------------------------------- diff --git a/doc/emacs-guix.texi b/doc/emacs-guix.texi index 3219354..6bb3810 100644 --- a/doc/emacs-guix.texi +++ b/doc/emacs-guix.texi @@ -53,7 +53,7 @@ A copy of the license is available at * System:: Interface for @code{operating-system} and services. * Store Items:: Interface for store items. * Package Licenses:: Interface for licenses of packages. -* Popup Interface:: Magit-like interface for Emacs-Guix commands. +* Keyboard-driven Menu:: Magit-like interface for Emacs-Guix commands. * Prettify Mode:: Abbreviating @file{/gnu/store/@dots{}} file names. * Prettify Variables:: Split and indent Shell variables. * Build Log Mode:: Highlighting Guix build logs. @@ -77,8 +77,8 @@ Indexes Emacs-Guix (also known as ``guix.el'') provides various interfaces and tools related to the GNU Guix package manager. -Call @kbd{M-x guix} if you prefer to dive in right away (@pxref{Popup -Interface}). +Call @kbd{M-x guix} if you prefer to dive in right away +(@pxref{Keyboard-driven Menu}). In short, Emacs-Guix provides the following features: @@ -99,8 +99,8 @@ Interfaces for: @end itemize @item -Magit-like popup interface for all Emacs-Guix @kbd{M-x} commands and -Guix shell commands (@pxref{Popup Interface}). +Keyboard-driven magit-like menu for all Emacs-Guix @kbd{M-x} and Guix +shell commands (@pxref{Keyboard-driven Menu}). @item Modes to view logs of package builds (@pxref{Build Log Mode}). @@ -185,10 +185,9 @@ features as without Guix. interfaces (to display packages, generations, licenses, etc.). @item -@uref{https://github.com/magit/magit-popup, magit-popup library}. You -already have this library if you use Magit 2.1.0 or later. This -library is required only for @kbd{M-x@tie{}guix} command (@pxref{Popup -Interface}). +@uref{https://github.com/magit/transient, transient library}. This +library is required only for @kbd{M-x@tie{}guix} command +(@pxref{Keyboard-driven Menu}). @item @uref{https://github.com/Fanael/edit-indirect, edit-indirect library}, @@ -204,7 +203,7 @@ list of packages (@pxref{Package Keys}). @end itemize To sum up, most likely, you'll need all the above dependencies except -maybe @code{magit-popup}, @code{edit-indirect} and @code{build-farm}. +maybe @code{transient}, @code{edit-indirect} and @code{build-farm}. @node Using from Git @section Using from Git @@ -1058,24 +1057,24 @@ Open @file{@dots{}/guix/licenses.scm} and move to the specified license. @end table @c ---------------------------------------------------------------- -@node Popup Interface -@chapter Popup Interface +@node Keybord-driven Menu +@chapter Keybord-driven Menu -If you ever used Magit, you know what ``popup interface'' is -(@pxref{Top,,, magit-popup, Magit-Popup User Manual}). Even if you are -not acquainted with Magit, there should be no worries as it is very -intuitive. +Transient is the library used to implement keybord-driven ``menus'' like +in Magit (@pxref{Top,,, transient, Transient User Manual}). Even if you +are not acquainted with Magit, this interface it is very intuitive. @findex guix -So, @kbd{M-x@tie{}guix} command provides a top-level popup interface -for almost all the available Emacs-Guix commands. It has 2 advantages -comparing with calling @kbd{M-x@tie{}guix-@dots{}} commands directly: +So, @kbd{M-x@tie{}guix} command provides a top-level keyboard-driven +menu for almost all the available Emacs-Guix commands. It has 2 +advantages comparing with calling @kbd{M-x@tie{}guix-@dots{}} commands +directly: @itemize @item There is no need to remember the names of Emacs-Guix commands, as you -can always find them in @kbd{M-x@tie{}guix} and its sub-popups. +can always find them in @kbd{M-x@tie{}guix} and its suffix transients. @item It is faster (well, if you know what you are going to call), as it may @@ -1092,17 +1091,17 @@ easy accessible key combination, for example, to @kbd{@key{super}-g}: (global-set-key (kbd "s-g") 'guix) @end example -@node Guix Popup Interface -@section Guix Popup Interface +@node Guix Keyboard-driven Menu +@section Guix Keyboard-driven Menu @findex guix-command -There is one rather special sub-popup in @kbd{M-x@tie{}guix}. It is -bind to @kbd{c} by default, and you can call it separately with -@kbd{M-x@tie{}guix-command}. It is a popup interface for -@code{guix@tie{}@dots{}} shell commands. It is probably not very +There is one rather special transient suffix in @kbd{M-x@tie{}guix}. It +is bind to @kbd{c} by default, and you can call it separately with +@kbd{M-x@tie{}guix-command}. It is a keyboard-driven, magit-like menu +for @code{guix@tie{}@dots{}} shell commands. It is probably not very useful, as it provides all the options and flags for all the shell -actions and subcommands, so it may be confusing to see them all at -once. Nevertheless, a description of this thing follows. +actions and subcommands, so it may be confusing to see them all at once. +Nevertheless, a description of this thing follows. When you select an option, you'll be prompted for a value in the minibuffer. Many values have completions, so don't hesitate to press diff --git a/doc/htmlxref.cnf b/doc/htmlxref.cnf index d547107..b42ac28 100644 --- a/doc/htmlxref.cnf +++ b/doc/htmlxref.cnf @@ -4,9 +4,9 @@ # manuals in the generated HTML pages (created by "make manual" # command). See (info "(texinfo) HTML Xref Configuration") for details. -MAGIT_POPUP = https://magit.vc/manual/magit-popup -magit-popup mono ${MAGIT_POPUP} -magit-popup node ${MAGIT_POPUP}/ +TRANSIENT = https://magit.vc/manual/transient +transient mono ${TRANSIENT} +transient node ${TRANSIENT}/ GEISER = http://www.nongnu.org/geiser geiser mono ${GEISER} diff --git a/elisp/guix-command.el b/elisp/guix-command.el index cbfc0fa..affda4e 100644 --- a/elisp/guix-command.el +++ b/elisp/guix-command.el @@ -1,4 +1,4 @@ -;;; guix-command.el --- Popup interface for guix shell commands -*- lexical-binding: t -*- +;;; guix-command.el --- Transient interface for guix shell commands -*- lexical-binding: t -*- ;; Copyright © 2015–2020 Alex Kost <alezost@HIDDEN> @@ -19,16 +19,16 @@ ;;; Commentary: -;; This file provides a magit-like popup interface for guix shell -;; commands. You can run a selected command in *shell* buffer, in Guix -;; REPL, or simply copy it into `kill-ring'. +;; This file provides a transient interface for guix shell commands. +;; You can run a selected command in *shell* buffer, in Guix REPL, or +;; simply copy it into `kill-ring'. ;; ;; The entry point is "M-x guix-command". When it is called the first ;; time, "guix --help" output is parsed and `guix-COMMAND-action' ;; functions are generated for each available guix COMMAND. Then a ;; window with these commands is popped up. When a particular COMMAND ;; is called, "guix COMMAND --help" output is parsed, and a user get a -;; new popup window with available options for this command and so on. +;; new transient window with available options for this command and so on. ;; To avoid hard-coding all guix options, actions, etc., as much data is ;; taken from "guix ... --help" outputs as possible. But this data is @@ -40,7 +40,7 @@ ;; structures. ;; Only "M-x guix-command" is available after this file is loaded. The -;; rest commands/actions/popups are generated on the fly only when they +;; rest commands/actions/transients are generated on the fly only when they ;; are needed (that's why there is a couple of `eval'-s in this file). ;; COMMANDS argument is used by many functions in this file. It means a @@ -48,7 +48,7 @@ ;; ("import" "gnu"). The empty list stands for the plain "guix" without ;; subcommands. -;; All actions in popup windows are divided into 2 groups: +;; All actions in transient windows are divided into 2 groups: ;; ;; - 'Popup' actions - used to pop up another window. For example, every ;; action in the 'guix' or 'guix import' window is a popup action. They @@ -56,13 +56,13 @@ ;; ;; - 'Execute' actions - used to do something with the command line (to ;; run a command in Guix REPL or to copy it into kill-ring) constructed -;; with the current popup. They are defined by +;; with the current transient. They are defined by ;; `guix-command-define-execute-action' macro. ;;; Code: (require 'cl-lib) -(require 'magit-popup) +(require 'transient) (require 'bui-utils) (require 'guix nil t) (require 'guix-utils) @@ -74,7 +74,7 @@ (require 'guix-external) (defgroup guix-commands nil - "Settings for guix popup windows." + "Settings for guix transient windows." :group 'guix) (defvar guix-command-complex-with-shared-arguments @@ -484,10 +484,10 @@ to be modified." argument)) (defun guix-command-improve-arguments (arguments commands) - "Return ARGUMENTS for 'guix COMMANDS ...' modified for popup interface." + "Return ARGUMENTS for 'guix COMMANDS ...' modified for transient interface." (let ((improvers (cons 'guix-command-improve-common-argument (bui-assoc-value guix-command-argument-improvers - commands)))) + commands)))) (mapcar (lambda (argument) (guix-command-improve-argument argument improvers)) arguments))) @@ -592,7 +592,7 @@ commands.") "Return additional arguments for COMMANDS." (let ((rest-arg (guix-command-rest-argument commands))) (append (bui-assoc-value guix-command-additional-arguments - commands) + commands) (and rest-arg (list rest-arg))))) ;; Ideally, only `guix-command-all-arguments' function should exist with @@ -611,7 +611,7 @@ commands.") (defun guix-command-all-arguments (&optional commands) ;; Note: `guix-command-arguments' name cannot be used because function - ;; with this name is generated by `magit-define-popup'. + ;; with this name is generated by `transient-define-prefix'. "Return list of arguments for 'guix COMMANDS ...'." (let ((command (car commands))) (if (member command @@ -634,28 +634,25 @@ commands.") (guix-command--all-arguments-memoize (list command)))) (guix-command--all-arguments commands)))) -(defun guix-command-switch->popup-switch (switch) - "Return popup switch from command SWITCH argument." - (list (guix-command-argument-char switch) +(defun guix-command-switch->transient-switch (switch) + "Return transient switch from command SWITCH argument." + (list (format "-%c" (guix-command-argument-char switch)) + (guix-command-argument-name switch) (or (guix-command-argument-doc switch) - "Unknown") - (guix-command-argument-name switch))) + "Unknown"))) -(defun guix-command-option->popup-option (option) - "Return popup option from command OPTION argument." - (list (guix-command-argument-char option) +(defun guix-command-option->transient-option (option) + "Return transient option from command OPTION argument." + (list (format "-%c" (guix-command-argument-char option)) + (guix-command-argument-name option) (or (guix-command-argument-doc option) "Unknown") - (let ((name (guix-command-argument-name option))) - (if (string-match-p " \\'" name) ; ends with space - name - (concat name "="))) (or (guix-command-argument-fun option) 'read-from-minibuffer))) -(defun guix-command-action->popup-action (action) - "Return popup action from command ACTION argument." - (list (guix-command-argument-char action) +(defun guix-command-action->transient-suffix (action) + "Return transient suffix from command ACTION argument." + (list (format "-%c" (guix-command-argument-char action)) (or (guix-command-argument-doc action) (guix-command-argument-name action) "Unknown") @@ -683,8 +680,8 @@ commands.") "Return actions from ARGUMENTS." (cl-remove-if-not #'guix-command-argument-action? arguments)) - -;;; Post processing popup arguments + +;;; Post processing transient arguments (defvar guix-command-post-processors '(("environment" @@ -698,7 +695,7 @@ commands.") ("system" guix-command-post-process-rest-single)) "Alist of guix commands and functions for post-processing -a list of arguments returned from popup interface. +a list of arguments returned from transient interface. Each function is called on the returned arguments in turn.") (defvar guix-command-rest-arg-regexp @@ -760,13 +757,13 @@ Leave '--' string as a separate argument." :split? t)) (defun guix-command-post-process-package-args (args) - "Adjust popup ARGS for 'guix package' command." + "Adjust transient ARGS for 'guix package' command." (guix-command-post-process-matching-args args (rx string-start (or "--install " "--remove ") (+ any)) :split? t)) (defun guix-command-post-process-environment-packages (args) - "Adjust popup ARGS for specified packages of 'guix environment' + "Adjust transient ARGS for specified packages of 'guix environment' command." (guix-command-post-process-matching-args args (rx string-start "++packages " (group (+ any))) @@ -774,14 +771,14 @@ command." :split? t)) (defun guix-command-post-process-environment-ad-hoc (args) - "Adjust popup ARGS for '--ad-hoc' argument of 'guix environment' + "Adjust transient ARGS for '--ad-hoc' argument of 'guix environment' command." (guix-command-post-process-matching-args args (rx string-start "--ad-hoc " (+ any)) :split? t)) (defun guix-command-post-process-args (commands args) - "Adjust popup ARGS for guix COMMANDS." + "Adjust transient ARGS for guix COMMANDS." (let* ((command (car commands)) (processors (append (bui-assoc-value guix-command-post-processors commands) @@ -931,32 +928,31 @@ open the log file(s)." ;;; Generating popups, actions, etc. (defmacro guix-command-define-popup-action (name &optional commands) - "Define NAME function to generate (if needed) and run popup for COMMANDS." + "Define NAME function to generate (if needed) and run transient for COMMANDS." (declare (indent 1) (debug t)) - (let* ((popup-fun (guix-command-symbol `(,@commands "popup"))) + (let* ((prefix-fun (guix-command-symbol `(,@commands "prefix"))) (doc (format "Call `%s' (generate it if needed)." - popup-fun))) + prefix-fun))) `(defun ,name (&optional arg) ,doc (interactive "P") - (unless (fboundp ',popup-fun) - (guix-command-generate-popup ',popup-fun ',commands)) - (,popup-fun arg)))) + (unless (fboundp ',prefix-fun) + (guix-command-generate-prefix ',prefix-fun ',commands)) + (,prefix-fun)))) (defmacro guix-command-define-execute-action (name executor &optional commands) "Define NAME function to execute the current action for guix COMMANDS. EXECUTOR function is called with the current command line arguments." (declare (indent 1) (debug t)) - (let* ((arguments-fun (guix-command-symbol `(,@commands "arguments"))) - (doc (format "Call `%s' with the current popup arguments." + (let* ((doc (format "Call `%s' with the current transient arguments." executor))) `(defun ,name (&rest args) ,doc - (interactive (,arguments-fun)) + (interactive) (,executor (append ',commands (guix-command-post-process-args - ',commands args)))))) + ',commands (transient-args (transient-current-command)))))))) (defun guix-command-generate-popup-actions (actions &optional commands) "Generate 'popup' commands from ACTIONS arguments for guix COMMANDS." @@ -977,11 +973,11 @@ EXECUTOR function is called with the current command line arguments." commands (guix-command-argument-name action)) ,commands)))))) -(defun guix-command-generate-popup (name &optional commands) - "Define NAME popup with 'guix COMMANDS ...' interface." +(defun guix-command-generate-prefix (name &optional commands) + "Define NAME prefix with 'guix COMMANDS ...' interface." (let* ((command (car commands)) (man-page (concat "guix" (and command (concat "-" command)))) - (doc (format "Popup window for '%s' command." + (doc (format "Transient for '%s' command." (guix-concat-strings (cons "guix" commands) " "))) (args (guix-command-all-arguments commands)) @@ -998,18 +994,22 @@ EXECUTOR function is called with the current command line arguments." (guix-command-generate-popup-actions popup-actions commands) (guix-command-generate-execute-actions execute-actions commands)) (eval - `(magit-define-popup ,name + `(transient-define-prefix ,name () ,doc - 'guix-commands :man-page ,man-page - :switches ',(mapcar #'guix-command-switch->popup-switch switches) - :options ',(mapcar #'guix-command-option->popup-option options) - :actions ',(mapcar #'guix-command-action->popup-action actions) - :max-action-columns 4)))) + ,@(and switches + `(["Switches" + ,@(mapcar #'guix-command-switch->transient-switch switches)])) + ,@(and options + `(["Options" + ,@(mapcar #'guix-command-option->transient-option options)])) + ,@(and actions + `(["Actions" + ,@(mapcar #'guix-command-action->transient-suffix actions)])))))) -(declare-function guix-command-popup "guix-command" t) +(declare-function guix-command-prefix "guix-command" t) -;;;###autoload (autoload 'guix-command "guix-command" "Popup window for 'guix' shell commands." t) +;;;###autoload (autoload 'guix-command "guix-command" "Transient for 'guix' shell commands." t) (guix-command-define-popup-action guix-command) (declare-function guix-find-package-definition "guix-package" t) diff --git a/elisp/guix-help.el b/elisp/guix-help.el index da69b09..d4aa472 100644 --- a/elisp/guix-help.el +++ b/elisp/guix-help.el @@ -68,7 +68,7 @@ If ARG is non-nil (interactively with prefix), show Guix info manual." :group 'guix-help-faces) (defvar guix-help-specifications - '("Popup interface for the rest commands" + '("Transient interface for the rest commands" guix "Show packages and their definitions" guix-all-packages diff --git a/elisp/guix-popup.el b/elisp/guix-popup.el deleted file mode 100644 index 77728f6..0000000 --- a/elisp/guix-popup.el +++ /dev/null @@ -1,227 +0,0 @@ -;;; guix-popup.el --- Popup interface for Emacs-Guix commands - -;; Copyright © 2018–2019, 2021 Alex Kost <alezost@HIDDEN> - -;; This file is part of Emacs-Guix. - -;; Emacs-Guix is free software; you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. -;; -;; Emacs-Guix is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with Emacs-Guix. If not, see <http://www.gnu.org/licenses/>. - -;;; Commentary: - -;; This file provides popup interface (using `magit-popup' library) for -;; Emacs-Guix commands. - -;;; Code: - -(require 'magit-popup) -(require 'guix-profiles) - -(defgroup guix-popup nil - "Popup interface for Emacs-Guix commands." - :group 'guix) - -;;;###autoload (autoload 'guix-popup "guix-popup" nil t) -(magit-define-popup guix-popup - "Show popup buffer for Emacs-Guix commands." - 'guix-popup - :actions '("Sub-popups" - (?p "packages" guix-package-popup) - (?P "profiles" guix-profile-popup) - (?s "services" guix-service-popup) - (?y "system commands" guix-system-popup) - (?l "package licenses" guix-license-popup) - (?S "store" guix-store-popup) - (?m "major/minor modes" guix-mode-popup) - (?c "guix shell commands" guix-command) - "Miscellaneous commands" - (?H "calculate file hash" guix-hash) - (?E "set Emacs environment" guix-set-emacs-environment) - "Auxiliary commands" - (?a "about" guix-about) - (?h "help (\"refcard\")" guix-help) - (?i "info manual" guix-info) - (?v "version" guix-version) - (?b "switch to buffer" guix-switch-to-buffer) - (?B "report guix bug" guix-report-bug)) - :max-action-columns #'guix-popup-max-columns) - -(defun guix-popup-max-columns (heading) - "Return the number of `:max-action-columns' for HEADING. -This function is used by command `guix-popup'." - (pcase heading - ("Sub-popups" 1) - ("Miscellaneous commands" 1) - (_ 2))) - -;;;###autoload -(defalias 'guix #'guix-popup - "Popup interface for Emacs-Guix commands.") - -(defun guix-popup-variable-value (var-name) - "Return string formatted for popup buffer. -String is made of variable VAR-NAME and its value." - (concat (propertize (symbol-name var-name) - 'face font-lock-variable-name-face) - " " - (propertize (prin1-to-string (symbol-value var-name)) - 'face 'magit-popup-option-value))) - -(defun guix-popup-format-profile () - "Return profile, formatted for '\\[guix-popup]'." - (guix-popup-variable-value 'guix-current-profile)) - -(defvar guix-popup-profile-variable - '(?p "profile" - guix-set-current-profile - guix-popup-format-profile) - "Popup structure for variable `guix-current-profile'.") - - -;;; Sub-popups - -(magit-define-popup guix-package-popup - "Show popup buffer for package commands." - 'guix-package-popup - :variables (list guix-popup-profile-variable) - :actions '("Show packages" - (?a "all" guix-all-packages) - (?i "installed" guix-installed-packages) - (?o "obsolete" guix-obsolete-packages) - (?s "superseded" guix-superseded-packages) - (?h "hidden" guix-hidden-packages) - "Search for packages" - (?n "by name" guix-packages-by-name) - (?N "by regexp (in name only)" guix-packages-by-name-regexp) - (?r "by regexp (in name, synopsis, description)" - guix-packages-by-regexp) - (?L "by location" guix-packages-by-location) - (?c "by license" guix-packages-by-license) - (?d "depending on other package(s)" guix-dependent-packages) - (?f "packages from file" guix-package-from-file) - (?y "packages from system config file" - guix-packages-from-system-config-file) - "Package locations" - (?l "show package locations" guix-package-locations) - (?e "\"edit\" package (find package definition)" - guix-find-package-definition) - (?F "find location file" guix-find-package-location-file) - "Other commands" - (?g "package graph" guix-package-graph) - (?z "package size" guix-package-size) - (?t "package lint" guix-package-lint) - (?C "lint checkers" guix-lint-checkers) - (?T "total number of packages" guix-number-of-packages)) - :max-action-columns #'guix-package-popup-max-columns) - -(defun guix-package-popup-max-columns (heading) - "Return the number of `:max-action-columns' for HEADING. -This function is used by command `guix-package-popup'." - (pcase heading - ("Show packages" 2) - ("Other commands" 2) - (_ 1))) - -(magit-define-popup guix-profile-popup - "Show popup buffer for profiles and generations commands." - 'guix-profile-popup - :variables (list guix-popup-profile-variable) - :actions '("Show profiles" - (?a "all" guix-profiles) - (?s "system" guix-system-profile) - (?h "home" guix-home-profile) - (?c "current" guix-current-profile) - "Show generations (of the current profile)" - (?g "all" guix-generations) - (?t "by time" guix-generations-by-time) - (?l "last" guix-last-generations) - "Other commands" - (?M "apply manifest to the current profile" - guix-apply-manifest)) - :max-action-columns 1) - -(magit-define-popup guix-service-popup - "Show popup buffer for service commands." - 'guix-service-popup - :actions '("Show services" - (?a "all system services" guix-all-services) - (?h "all Home services" guix-all-home-services) - (?d "default" guix-default-services) - (?n "by name" guix-services-by-name) - (?r "by regexp" guix-services-by-regexp) - (?L "by location" guix-services-by-location) - (?y "services from system config file" - guix-services-from-system-config-file) - "Service locations" - (?l "show service locations" guix-service-locations) - (?e "\"edit\" service (find service definition)" - guix-find-service-definition) - (?F "find location file" guix-find-service-location-file)) - :max-action-columns 1) - -(magit-define-popup guix-system-popup - "Show popup buffer for system commands." - 'guix-system-popup - :actions '("From system profile" - (?p "packages" guix-installed-system-packages) - (?P "profile" guix-system-profile) - (?g "all generations" guix-system-generations) - (?t "generations by time" guix-system-generations-by-time) - (?l "last generations" guix-last-system-generations) - "From system configuration file" - (?y "system" guix-system-from-file) - (?k "packages" guix-packages-from-system-config-file) - (?s "services" guix-services-from-system-config-file)) - :max-action-columns 1) - -(magit-define-popup guix-license-popup - "Show popup buffer for license commands." - 'guix-license-popup - :actions '((?a "show all package licenses" guix-licenses) - (?u "browse license URL" guix-browse-license-url) - (?e "\"edit\" license (find license definition)" - guix-find-license-definition) - (?F "find license location file" - guix-find-license-location-file)) - :max-action-columns 1) - -(magit-define-popup guix-store-popup - "Show popup buffer for store commands." - 'guix-store-popup - :actions '("Show store items" - (?l "live items" guix-store-live-items) - (?d "dead items" guix-store-dead-items) - (?e "failures" guix-store-failures) - (?i "single item" guix-store-item) - (?D "derivers" guix-store-item-derivers) - (?R "requisites" guix-store-item-requisites) - (?f "referrers" guix-store-item-referrers) - (?F "references" guix-store-item-references)) - :max-action-columns 2) - -(magit-define-popup guix-mode-popup - "Show popup buffer for Emacs-Guix major/minor modes." - 'guix-mode-popup - :actions '("Modes" - (?p "guix-prettify-mode" guix-prettify-mode) - (?P "global-guix-prettify-mode" global-guix-prettify-mode) - (?b "guix-build-log-minor-mode" guix-build-log-minor-mode) - (?B "guix-build-log-mode" guix-build-log-mode) - (?d "guix-devel-mode" guix-devel-mode) - (?D "guix-derivation-mode" guix-derivation-mode) - (?e "guix-env-var-mode" guix-env-var-mode)) - :max-action-columns 1) - -(provide 'guix-popup) - -;;; guix-popup.el ends here diff --git a/elisp/guix-transient.el b/elisp/guix-transient.el new file mode 100644 index 0000000..36a4733 --- /dev/null +++ b/elisp/guix-transient.el @@ -0,0 +1,187 @@ +;;; guix-transient.el --- Transient interface for Emacs-Guix commands + +;; Copyright © 2018–2019, 2021 Alex Kost <alezost@HIDDEN> +;; Copyright © 2025 Nicolas Graves <ngraves@HIDDEN> + +;; This file is part of Emacs-Guix. + +;; Emacs-Guix is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. +;; +;; Emacs-Guix is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with Emacs-Guix. If not, see <http://www.gnu.org/licenses/>. + +;;; Commentary: + +;; This file provides transient interface (using `transient' library) for +;; Emacs-Guix commands. + +;;; Code: + +(require 'transient) +(require 'guix-profiles) + +(defgroup guix-transient nil + "Transient interface for Emacs-Guix commands." + :group 'guix) + +(defun guix-transient-format-profile () + "Return profile, formatted for `\\[guix-transient]'." + (interactive) + (concat (propertize "profile" + 'face 'transient-heading) + " " + (propertize (symbol-value 'guix-current-profile) + 'face 'transient-value))) + +(transient-define-infix guix-set-profile-infix () + :class 'transient-lisp-variable + :variable 'guix-current-profile + :reader 'guix-set-current-profile + :description "Set profile") + +;;;###autoload +(transient-define-prefix guix-transient () + "Show transient interface for Emacs-Guix commands." + [["Sub-menus" + ("p" "packages" guix-package-transient) + ("P" "profiles" guix-profile-transient) + ("s" "services" guix-service-transient) + ("y" "system commands" guix-system-transient) + ("l" "package licenses" guix-license-transient) + ("S" "store" guix-store-transient) + ("m" "major/minor modes" guix-mode-transient) + ("c" "guix shell commands" guix-command)] + ["Miscellaneous commands" + ("H" "calculate file hash" guix-hash) + ("E" "set Emacs environment" guix-set-emacs-environment)] + ["Auxiliary commands" + ("a" "about" guix-about) + ("h" "help (\"refcard\")" guix-help) + ("i" "info manual" guix-info) + ("v" "version" guix-version) + ("b" "switch to buffer" guix-switch-to-buffer) + ("B" "report guix bug" guix-report-bug)]]) + +;;;###autoload +(defalias 'guix #'guix-transient + "Transient interface for Emacs-Guix commands.") + +(transient-define-prefix guix-package-transient () + "Show transient interface for package commands." + ["Profile" + ("p" "Set profile" guix-set-profile-infix) + ("v" "Current profile" guix-transient-format-profile :transient nil :if (lambda () guix-current-profile))] + ["Show packages" + ("a" "all" guix-all-packages) + ("i" "installed" guix-installed-packages) + ("o" "obsolete" guix-obsolete-packages) + ("s" "superseded" guix-superseded-packages) + ("h" "hidden" guix-hidden-packages)] + ["Search for packages" + ("n" "by name" guix-packages-by-name) + ("N" "by regexp (in name only)" guix-packages-by-name-regexp) + ("r" "by regexp (in name, synopsis, description)" guix-packages-by-regexp) + ("L" "by location" guix-packages-by-location) + ("c" "by license" guix-packages-by-license) + ("d" "depending on other package(s)" guix-dependent-packages) + ("f" "packages from file" guix-package-from-file) + ("y" "packages from system config file" guix-packages-from-system-config-file)] + ["Package locations" + ("l" "show package locations" guix-package-locations) + ("e" "\"edit\" package (find package definition)" guix-find-package-definition) + ("F" "find location file" guix-find-package-location-file)] + ["Other commands" + ("g" "package graph" guix-package-graph) + ("z" "package size" guix-package-size) + ("t" "package lint" guix-package-lint) + ("C" "lint checkers" guix-lint-checkers) + ("T" "total number of packages" guix-number-of-packages)]) + +(transient-define-prefix guix-profile-transient () + "Show transient interface for profiles and generations commands." + ["Profile" + ("p" "Set profile" guix-set-profile-infix) + ("v" "Current profile" guix-transient-format-profile :transient nil :if (lambda () guix-current-profile))] + ["Show profiles" + ("a" "all" guix-profiles) + ("s" "system" guix-system-profile) + ("h" "home" guix-home-profile) + ("c" "current" guix-current-profile)] + ["Show generations (of the current profile)" + ("g" "all" guix-generations) + ("t" "by time" guix-generations-by-time) + ("l" "last" guix-last-generations)] + ["Other commands" + ("M" "apply manifest to the current profile" guix-apply-manifest)]) + +(transient-define-prefix guix-service-transient () + "Show transient interface for service commands." + [["Show services" + ("a" "all system services" guix-all-services) + ("h" "all Home services" guix-all-home-services) + ("d" "default" guix-default-services) + ("n" "by name" guix-services-by-name) + ("r" "by regexp" guix-services-by-regexp) + ("L" "by location" guix-services-by-location) + ("y" "services from system config file" guix-services-from-system-config-file)] + ["Service locations" + ("l" "show service locations" guix-service-locations) + ("e" "\"edit\" service (find service definition)" guix-find-service-definition) + ("F" "find location file" guix-find-service-location-file)]]) + +(transient-define-prefix guix-system-transient () + "Show transient interface for system commands." + [["From system profile" + ("p" "packages" guix-installed-system-packages) + ("P" "profile" guix-system-profile) + ("g" "all generations" guix-system-generations) + ("t" "generations by time" guix-system-generations-by-time) + ("l" "last generations" guix-last-system-generations)] + ["From system configuration file" + ("y" "system" guix-system-from-file) + ("k" "packages" guix-packages-from-system-config-file) + ("s" "services" guix-services-from-system-config-file)]]) + +(transient-define-prefix guix-license-transient () + "Show transient interface for license commands." + [["License commands" + ("a" "show all package licenses" guix-licenses) + ("u" "browse license URL" guix-browse-license-url) + ("e" "\"edit\" license (find license definition)" guix-find-license-definition) + ("F" "find license location file" guix-find-license-location-file)]]) + +(transient-define-prefix guix-store-transient () + "Show transient interface for store commands." + [["Show store items" + ("l" "live items" guix-store-live-items) + ("d" "dead items" guix-store-dead-items) + ("e" "failures" guix-store-failures) + ("i" "single item" guix-store-item)] + ["Show details" + ("D" "derivers" guix-store-item-derivers) + ("R" "requisites" guix-store-item-requisites) + ("f" "referrers" guix-store-item-referrers) + ("F" "references" guix-store-item-references)]]) + +(transient-define-prefix guix-mode-transient () + "Show transient interface for Emacs-Guix major/minor modes." + [["Modes" + ("p" "guix-prettify-mode" guix-prettify-mode) + ("P" "global-guix-prettify-mode" global-guix-prettify-mode) + ("b" "guix-build-log-minor-mode" guix-build-log-minor-mode) + ("B" "guix-build-log-mode" guix-build-log-mode) + ("d" "guix-devel-mode" guix-devel-mode) + ("D" "guix-derivation-mode" guix-derivation-mode) + ("e" "guix-env-var-mode" guix-env-var-mode)]]) + +(provide 'guix-transient) + +;;; guix-transient.el ends here diff --git a/elisp/guix.el b/elisp/guix.el index b4c170a..2686a24 100644 --- a/elisp/guix.el +++ b/elisp/guix.el @@ -6,7 +6,7 @@ ;; Version: 0.5.2 ;; URL: https://emacs-guix.gitlab.io/website/ ;; Keywords: tools -;; Package-Requires: ((emacs "24.3") (dash "2.11.0") (geiser "0.8") (bui "1.2.0") (magit-popup "2.1.0") (edit-indirect "0.1.4")) +;; Package-Requires: ((emacs "24.3") (dash "2.11.0") (geiser "0.8") (bui "1.2.0") (transient "0.8.4") (edit-indirect "0.1.4")) ;; This file is part of Emacs-Guix. diff --git a/elisp/local.mk b/elisp/local.mk index 3bc0a27..4efbae5 100644 --- a/elisp/local.mk +++ b/elisp/local.mk @@ -40,8 +40,8 @@ if EDITINDIRECT_DIR AM_ELCFLAGS += -L "$(editindirectlispdir)" endif -if POPUP_DIR - AM_ELCFLAGS += -L "$(popuplispdir)" +if TRANSIENT_DIR + AM_ELCFLAGS += -L "$(transientlispdir)" endif if EMACS_Q @@ -81,7 +81,7 @@ EL_FILES = \ %D%/guix-service.el \ %D%/guix-pcomplete.el \ %D%/guix-prettify.el \ - %D%/guix-popup.el \ + %D%/guix-transient.el \ %D%/guix-ui-messages.el \ %D%/guix-ui.el \ %D%/guix-ui-license.el \ -- 2.48.1
guix-patches@HIDDEN
:bug#76699
; Package guix-patches
.
Full text available.Received: (at 76699) by debbugs.gnu.org; 3 Mar 2025 02:09:46 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Mar 02 21:09:46 2025 Received: from localhost ([127.0.0.1]:40744 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tovFZ-0007c8-TH for submit <at> debbugs.gnu.org; Sun, 02 Mar 2025 21:09:46 -0500 Received: from 15.mo583.mail-out.ovh.net ([178.33.107.29]:48287) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <ngraves@HIDDEN>) id 1tovFU-0007b1-7T for 76699 <at> debbugs.gnu.org; Sun, 02 Mar 2025 21:09:42 -0500 Received: from director7.ghost.mail-out.ovh.net (unknown [10.109.140.229]) by mo583.mail-out.ovh.net (Postfix) with ESMTP id 4Z5j1b1yGGz1T6x for <76699 <at> debbugs.gnu.org>; Mon, 3 Mar 2025 02:09:39 +0000 (UTC) Received: from ghost-submission-5b5ff79f4f-rpnvq (unknown [10.110.178.62]) by director7.ghost.mail-out.ovh.net (Postfix) with ESMTPS id ED6151FDFF; Mon, 3 Mar 2025 02:09:38 +0000 (UTC) Received: from ngraves.fr ([37.59.142.106]) by ghost-submission-5b5ff79f4f-rpnvq with ESMTPSA id UsdfL2IPxWflTA8APzYwNQ (envelope-from <ngraves@HIDDEN>); Mon, 03 Mar 2025 02:09:38 +0000 Authentication-Results: garm.ovh; auth=pass (GARM-106R00644a9a709-2937-4aff-80aa-2eb9f2ba633c, 3FD0527DE2CE9D3C35B0E9483E243F320C79A24B) smtp.auth=ngraves@HIDDEN X-OVh-ClientIp: 90.92.117.144 From: Nicolas Graves <ngraves@HIDDEN> To: 76699 <at> debbugs.gnu.org Subject: [PATCH 3/5] Remove dash dependency, introduce llama library Date: Mon, 3 Mar 2025 03:09:18 +0100 Message-ID: <20250303020932.4194-3-ngraves@HIDDEN> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250303020932.4194-1-ngraves@HIDDEN> References: <20250303020932.4194-1-ngraves@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Ovh-Tracer-Id: 1108729936254001890 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: 49 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgdeljeekkecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfqggfjpdevjffgvefmvefgnecuuegrihhlohhuthemucehtddtnecuogfuuhhsphgvtghtffhomhgrihhnucdlgeelmdenucfjughrpefhvfevufffkffojghfgggtgfesthekredtredtjeenucfhrhhomheppfhitgholhgrshcuifhrrghvvghsuceonhhgrhgrvhgvshesnhhgrhgrvhgvshdrfhhrqeenucggtffrrghtthgvrhhnpeetjeeugedvjeduvefhveelffehjefhtdetheetheffkeegveefhfejleetleelueenucffohhmrghinhepghhithhhuhgsrdgtohhmpdhgihhtlhgrsgdrtghomhdpghhithhlrggsrdhiohenucfkphepuddvjedrtddrtddruddpledtrdelvddruddujedrudeggedpfeejrdehledrudegvddruddtieenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeduvdejrddtrddtrddupdhmrghilhhfrhhomhepnhhgrhgrvhgvshesnhhgrhgrvhgvshdrfhhrpdhnsggprhgtphhtthhopedupdhrtghpthhtohepjeeiieelleesuggvsggsuhhgshdrghhnuhdrohhrghdpoffvtefjohhsthepmhhoheekfegmpdhmohguvgepshhmthhpohhuth DKIM-Signature: a=rsa-sha256; bh=3M2ygZd44i7gqyL1nQmG9PLqA6XFLJW+lWS96Hyx4mw=; c=relaxed/relaxed; d=ngraves.fr; h=From; s=ovhmo4487190-selector1; t=1740967779; v=1; b=s0XSgFRB2eHN/w1JvBfny5Q0AKrI20fdhf5l1tshxmwTFW6yP8Elz/Xr3/5YL1ZqaHEqhBjx gyOnaNucEyQpUXsrnk/Z2blCiJLmhPj8GUy3uissimtPi9iKLQE4i3dutJrBMrXl4x2DHnI41fj +wx3uhGlwo09bjv9y2q9VEIvZw/M2L+SEyBrSkofO4UP80tO9vo6WHSU+FKowVPilyXlAIVq1+i 6HvChGWCSNKiMR0irnu34NHL1rEYfCxl2kaT5isMz0M2j50cV1EbRfkXIExrqjGBYSMUEpIDve4 DnH6OB+Lax/OnobsugTJKknUgPQW/f8GTlYB37QxKgYzg== X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 76699 Cc: Nicolas Graves <ngraves@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --- configure.ac | 16 ++++++++-------- doc/emacs-guix.texi | 8 ++++---- elisp/guix-help.el | 1 - elisp/guix-repl.el | 6 +++--- elisp/guix-ui-generation.el | 1 - elisp/guix-ui-package.el | 12 ++++++------ elisp/guix-ui-profile.el | 28 +++++++++++++++------------- elisp/guix-ui-store-item.el | 2 -- elisp/guix-utils.el | 1 - elisp/guix.el | 2 +- elisp/local.mk | 4 ++-- 11 files changed, 39 insertions(+), 42 deletions(-) diff --git a/configure.ac b/configure.ac index 3461bb3..31c7328 100644 --- a/configure.ac +++ b/configure.ac @@ -109,12 +109,12 @@ AC_ARG_WITH([geiser-lispdir], [geiserlispdir="no"]) AC_SUBST([geiserlispdir]) -AC_ARG_WITH([dash-lispdir], - [AS_HELP_STRING([--with-dash-lispdir], - [directory with dash.el file])], - [dashlispdir="$withval"], - [dashlispdir="no"]) -AC_SUBST([dashlispdir]) +AC_ARG_WITH([llama-lispdir], + [AS_HELP_STRING([--with-llama-lispdir], + [directory with llama.el file])], + [llamalispdir="$withval"], + [llamalispdir="no"]) +AC_SUBST([llamalispdir]) AC_ARG_WITH([bui-lispdir], [AS_HELP_STRING([--with-bui-lispdir], @@ -138,7 +138,7 @@ AC_ARG_WITH([transient-lispdir], AC_SUBST([transientlispdir]) AM_CONDITIONAL([GEISER_DIR], [test "x$geiserlispdir" != "xno"]) -AM_CONDITIONAL([DASH_DIR], [test "x$dashlispdir" != "xno"]) +AM_CONDITIONAL([LLAMA_DIR], [test "x$llamalispdir" != "xno"]) AM_CONDITIONAL([BUI_DIR], [test "x$builispdir" != "xno"]) AM_CONDITIONAL([EDITINDIRECT_DIR], [test "x$editindirectlispdir" != "xno"]) AM_CONDITIONAL([TRANSIENT_DIR], [test "x$transientlispdir" != "xno"]) @@ -148,7 +148,7 @@ dnl byte-compilation. Otherwise, "emacs" will be used, and it will dnl hopefully find these packages in its 'load-path'. AM_CONDITIONAL([EMACS_Q], [test "x$geiserlispdir" != "xno" -a \ - "x$dashlispdir" != "xno" -a \ + "x$llamalispdir" != "xno" -a \ "x$builispdir" != "xno" -a \ "x$editindirectlispdir" != "xno" -a \ "x$transientlispdir" != "xno"]) diff --git a/doc/emacs-guix.texi b/doc/emacs-guix.texi index 6bb3810..1953b09 100644 --- a/doc/emacs-guix.texi +++ b/doc/emacs-guix.texi @@ -176,8 +176,8 @@ from the Guix Guile code. So without Geiser, you can use the same features as without Guix. @item -@uref{https://github.com/magnars/dash.el, dash library}, version -2.11.0 or later. +@uref{https://github.com/tarsius/llama, llama library}, version +0.6.1 or later. @item @uref{https://gitlab.com/alezost-emacs/bui, BUI library}, version @@ -1091,8 +1091,8 @@ easy accessible key combination, for example, to @kbd{@key{super}-g}: (global-set-key (kbd "s-g") 'guix) @end example -@node Guix Keyboard-driven Menu -@section Guix Keyboard-driven Menu +@node Keyboard-driven Menu +@section Keyboard-driven Menu @findex guix-command There is one rather special transient suffix in @kbd{M-x@tie{}guix}. It diff --git a/elisp/guix-help.el b/elisp/guix-help.el index 53ccd3a..f8be213 100644 --- a/elisp/guix-help.el +++ b/elisp/guix-help.el @@ -23,7 +23,6 @@ ;;; Code: -(require 'dash) (require 'bui) (require 'guix nil t) (require 'guix-utils) diff --git a/elisp/guix-repl.el b/elisp/guix-repl.el index 846db60..0ebf603 100644 --- a/elisp/guix-repl.el +++ b/elisp/guix-repl.el @@ -48,7 +48,6 @@ ;;; Code: -(require 'dash) (require 'geiser-mode) (require 'geiser-guile) (require 'guix nil t) @@ -57,6 +56,7 @@ (require 'guix-external) (require 'guix-profiles) (require 'guix-utils) +(require 'llama) (defvar guix-load-path nil "Directory or a list of directories prepended to Guile's `%load-path'. @@ -209,8 +209,8 @@ After setting this variable, you need to kill (lcp (if guix-load-compiled-path (guix-list-maybe guix-load-compiled-path) lp))) - (append (--mapcat (list "-L" (guix-file-name it)) lp) - (--mapcat (list "-C" (guix-file-name it)) lcp)))) + (append (apply #'append (list "-L" (##guix-file-name %1)) lp) + (apply #'append (list "-C" (##guix-file-name %1)) lcp)))) "-L" ,guix-scheme-directory ,@(and guix-config-scheme-compiled-directory (list "-C" guix-config-scheme-compiled-directory)) diff --git a/elisp/guix-ui-generation.el b/elisp/guix-ui-generation.el index 7d10d90..ba28814 100644 --- a/elisp/guix-ui-generation.el +++ b/elisp/guix-ui-generation.el @@ -25,7 +25,6 @@ ;;; Code: (require 'cl-lib) -(require 'dash) (require 'bui) (require 'guix nil t) (require 'guix-ui) diff --git a/elisp/guix-ui-package.el b/elisp/guix-ui-package.el index f861820..293e597 100644 --- a/elisp/guix-ui-package.el +++ b/elisp/guix-ui-package.el @@ -25,7 +25,6 @@ ;;; Code: (require 'cl-lib) -(require 'dash) (require 'bui) (require 'guix nil t) (require 'guix-ui) @@ -39,6 +38,7 @@ (require 'guix-location) (require 'guix-package) (require 'guix-profiles) +(require 'llama) (guix-ui-define-entry-type package) (guix-ui-define-entry-type output) @@ -102,14 +102,14 @@ is found and `guix-package-list-show-single' is nil." (defun guix-package-entry-installed-outputs (entry) "Return a list of installed outputs for the package ENTRY." - (--map (bui-entry-non-void-value it 'output) - (bui-entry-non-void-value entry 'installed))) + (mapcar (##bui-entry-non-void-value %1 'output) + (bui-entry-non-void-value entry 'installed))) (defun guix-read-package-name-from-entries (entries) "Prompt for a package name and return it. Names are completed from package ENTRIES." (completing-read "Package: " - (--map (bui-entry-value it 'name) entries))) + (mapcar (##bui-entry-value %1 'name) entries))) (defun guix-read-package-entry-by-name (&optional entries) "Return an entry from package ENTRIES (current entries by default). @@ -1165,8 +1165,8 @@ Colorize it with an appropriate face if needed." (defun guix-package-list-get-installed-outputs (installed &optional _) "Return string with outputs from INSTALLED entries." (bui-get-string - (--map (bui-entry-non-void-value it 'output) - installed))) + (mapcar (##bui-entry-non-void-value %1 'output) + installed))) (defun guix-package-list-marking-check () "Signal an error if marking is disabled for the current buffer." diff --git a/elisp/guix-ui-profile.el b/elisp/guix-ui-profile.el index 2f17b38..0923ba5 100644 --- a/elisp/guix-ui-profile.el +++ b/elisp/guix-ui-profile.el @@ -26,13 +26,13 @@ ;;; Code: -(require 'dash) (require 'bui) (require 'guix nil t) (require 'guix-profiles) (require 'guix-read) (require 'guix-utils) (require 'guix-misc) +(require 'llama) (guix-define-groups profile) @@ -55,15 +55,15 @@ properly.") "Return a list of all profiles." (or guix-profiles (setq guix-profiles - (--filter - (and it (file-exists-p it)) + (seq-filter + (##and %1 (file-exists-p %1)) (delete-dups - (-cons* guix-default-user-profile - guix-default-pulled-profile - guix-system-profile - guix-home-profile - (--when-let (getenv "GUIX_PROFILE") - (guix-file-name it)) + (append (list guix-default-user-profile + guix-default-pulled-profile + guix-system-profile + guix-home-profile + (when-let ((profile (getenv "GUIX_PROFILE"))) + (guix-file-name profile))) (guix-eval-read "(user-profiles)"))))))) (defun guix-profile->entry (profile) @@ -107,8 +107,8 @@ are multiple entries, prompt for a profile name and return it." (or entries (setq entries (bui-current-entries))) (if (cdr entries) (completing-read "Profile: " - (--map (bui-entry-value it 'profile) - entries)) + (mapcar (##bui-entry-value %1 'profile) + entries)) (bui-entry-value (car entries) 'profile))) @@ -208,8 +208,10 @@ get the information." (lambda (entry) (let ((id (bui-entry-id entry))) (cons `(current . ,(equal id current-id)) - (--remove-first (eq (car it) 'current) - entry)))) + (seq-remove-at-position + (seq-filter (##eq (car %1) 'current) + entry) + 0)))) (bui-current-entries)))) (setf (bui-item-entries bui-item) new-entries)) diff --git a/elisp/guix-ui-store-item.el b/elisp/guix-ui-store-item.el index 13a2d78..91c1d96 100644 --- a/elisp/guix-ui-store-item.el +++ b/elisp/guix-ui-store-item.el @@ -1,7 +1,6 @@ ;;; guix-ui-store-item.el --- Interface to display store items -*- lexical-binding: t -*- ;; Copyright © 2018 Alex Kost <alezost@HIDDEN> -;; Copyright © 2025 Nicolas Graves <ngraves@HIDDEN> ;; This file is part of Emacs-Guix. @@ -27,7 +26,6 @@ (require 'cl-lib) (require 'ffap) -(require 'dash) (require 'bui) (require 'guix-package) (require 'guix-guile) diff --git a/elisp/guix-utils.el b/elisp/guix-utils.el index 5535eb9..1d0db3f 100644 --- a/elisp/guix-utils.el +++ b/elisp/guix-utils.el @@ -24,7 +24,6 @@ ;;; Code: (require 'cl-lib) -(require 'dash) (require 'bui-utils) (require 'guix nil t) diff --git a/elisp/guix.el b/elisp/guix.el index 2686a24..6e0ebc8 100644 --- a/elisp/guix.el +++ b/elisp/guix.el @@ -6,7 +6,7 @@ ;; Version: 0.5.2 ;; URL: https://emacs-guix.gitlab.io/website/ ;; Keywords: tools -;; Package-Requires: ((emacs "24.3") (dash "2.11.0") (geiser "0.8") (bui "1.2.0") (transient "0.8.4") (edit-indirect "0.1.4")) +;; Package-Requires: ((emacs "24.3") (llama "0.6.1") (geiser "0.8") (bui "1.2.0") (transient "0.8.4") (edit-indirect "0.1.4")) ;; This file is part of Emacs-Guix. diff --git a/elisp/local.mk b/elisp/local.mk index 4efbae5..b5b10c0 100644 --- a/elisp/local.mk +++ b/elisp/local.mk @@ -28,8 +28,8 @@ if GEISER_DIR AM_ELCFLAGS += -L "$(geiserlispdir)" endif -if DASH_DIR - AM_ELCFLAGS += -L "$(dashlispdir)" +if LLAMA_DIR + AM_ELCFLAGS += -L "$(llamalispdir)" endif if BUI_DIR -- 2.48.1
guix-patches@HIDDEN
:bug#76699
; Package guix-patches
.
Full text available.Received: (at 76699) by debbugs.gnu.org; 3 Mar 2025 02:09:43 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Mar 02 21:09:43 2025 Received: from localhost ([127.0.0.1]:40743 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tovFX-0007bk-KH for submit <at> debbugs.gnu.org; Sun, 02 Mar 2025 21:09:43 -0500 Received: from 16.mo561.mail-out.ovh.net ([188.165.56.217]:35453) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <ngraves@HIDDEN>) id 1tovFU-0007b0-8J for 76699 <at> debbugs.gnu.org; Sun, 02 Mar 2025 21:09:40 -0500 Received: from director5.ghost.mail-out.ovh.net (unknown [10.108.25.209]) by mo561.mail-out.ovh.net (Postfix) with ESMTP id 4Z5j1Z2M2xz1RNC for <76699 <at> debbugs.gnu.org>; Mon, 3 Mar 2025 02:09:38 +0000 (UTC) Received: from ghost-submission-5b5ff79f4f-5dcn8 (unknown [10.111.182.7]) by director5.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 9EC731FE5B; Mon, 3 Mar 2025 02:09:37 +0000 (UTC) Received: from ngraves.fr ([37.59.142.108]) by ghost-submission-5b5ff79f4f-5dcn8 with ESMTPSA id WNwVD2EPxWdiWAAA6Nx3uQ (envelope-from <ngraves@HIDDEN>); Mon, 03 Mar 2025 02:09:37 +0000 Authentication-Results: garm.ovh; auth=pass (GARM-108S00257c8b350-2e9f-44db-9e00-565ff73b0854, 3FD0527DE2CE9D3C35B0E9483E243F320C79A24B) smtp.auth=ngraves@HIDDEN X-OVh-ClientIp: 90.92.117.144 From: Nicolas Graves <ngraves@HIDDEN> To: 76699 <at> debbugs.gnu.org Subject: [PATCH 2/5] Improve most docstrings Date: Mon, 3 Mar 2025 03:09:17 +0100 Message-ID: <20250303020932.4194-2-ngraves@HIDDEN> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250303020932.4194-1-ngraves@HIDDEN> References: <20250303020932.4194-1-ngraves@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Ovh-Tracer-Id: 1108448459141866210 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: 0 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgdeljeekjecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfqggfjpdevjffgvefmvefgnecuuegrihhlohhuthemucehtddtnecunecujfgurhephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpefpihgtohhlrghsucfirhgrvhgvshcuoehnghhrrghvvghssehnghhrrghvvghsrdhfrheqnecuggftrfgrthhtvghrnhepvddvgeefiefhledugfdtkeefieekiefgtddtjeetfffhhefgkeduteehhfetudffnecuffhomhgrihhnpegvlhdrihhnpdhgnhhurdhorhhgpdhnohhtrggsuhhgrdhorhhgnecukfhppeduvdejrddtrddtrddupdeltddrledvrdduudejrddugeegpdefjedrheelrddugedvrddutdeknecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepuddvjedrtddrtddruddpmhgrihhlfhhrohhmpehnghhrrghvvghssehnghhrrghvvghsrdhfrhdpnhgspghrtghpthhtohepuddprhgtphhtthhopeejieeileelseguvggssghughhsrdhgnhhurdhorhhgpdfovfetjfhoshhtpehmohehiedumgdpmhhouggvpehsmhhtphhouhht DKIM-Signature: a=rsa-sha256; bh=45fsWkc7+n1aPvL/vXdURyyOwUBZUpeQl0KoPz+CsW8=; c=relaxed/relaxed; d=ngraves.fr; h=From; s=ovhmo4487190-selector1; t=1740967778; v=1; b=uaFcIchqxlhDmdk/LEXWmPZdiu4YWctIs5qAKIdVnc3peGJfSOovoKi0tsTeCVgfqakFEq7T h4OgueBMvYsEdyUQzwNHeq0v/lEluPa5N6d2ic4FVbaG0JaxKURQMGVucAYN6qjmCbpJgL7VZvW uXV4a93HaMsMtJw1liZwJutyYYsYlZob65ifmlsn/65ZNiiqnBtXdcIfRJZqYLm9GDvrq4ToYS2 Y8l3dpbO1bjfGB8uhWek+kdbYiP2YQk3Xzs7FVf3g3fDeIcWQXE9W1j3wTddYLkzBd8pe6f4FrD Q9TGH0d9XiQb/K/+MwXleE4P2QlxdsGXm7c+IWNYMQm9w== X-Debbugs-Envelope-To: 76699 Cc: Nicolas Graves <ngraves@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> This is to decrease the number of flymake warnings and better address serious warnings. --- elisp/guix-about.el | 2 +- elisp/guix-build-config.el.in | 7 ++- elisp/guix-build-log.el | 28 ++++----- elisp/guix-command.el | 58 +++++++++---------- elisp/guix-config.el | 2 +- elisp/guix-default-config.el | 2 +- elisp/guix-external.el | 12 ++-- elisp/guix-geiser.el | 9 +-- elisp/guix-graph.el | 2 +- elisp/guix-guile.el | 6 +- elisp/guix-help-vars.el | 37 ++++++------ elisp/guix-help.el | 12 ++-- elisp/guix-license.el | 3 +- elisp/guix-misc.el | 24 ++++---- elisp/guix-package.el | 2 +- elisp/guix-pcomplete.el | 15 ++--- elisp/guix-prettify.el | 4 +- elisp/guix-profiles.el | 32 +++++------ elisp/guix-read.el | 8 ++- elisp/guix-repl.el | 37 ++++++------ elisp/guix-ui-generation.el | 61 ++++++++++++-------- elisp/guix-ui-license.el | 18 +++--- elisp/guix-ui-lint-checker.el | 15 +++-- elisp/guix-ui-messages.el | 16 ++++-- elisp/guix-ui-package-location.el | 6 +- elisp/guix-ui-package.el | 92 ++++++++++++++++-------------- elisp/guix-ui-profile.el | 37 +++++++----- elisp/guix-ui-service-location.el | 6 +- elisp/guix-ui-service.el | 32 +++++++---- elisp/guix-ui-store-item.el | 46 +++++++++------ elisp/guix-ui-system-generation.el | 24 +++++--- elisp/guix-ui-system.el | 17 ++++-- elisp/guix-ui.el | 16 +++--- elisp/guix-utils.el | 91 ++++++++++++++--------------- 34 files changed, 430 insertions(+), 349 deletions(-) diff --git a/elisp/guix-about.el b/elisp/guix-about.el index e0de219..6e1168a 100644 --- a/elisp/guix-about.el +++ b/elisp/guix-about.el @@ -107,7 +107,7 @@ Return nil if the image cannot be found." (bui-newline))))))) (defun guix-about-insert-content () - "Insert Emacs-Guix 'about' info into the current buffer." + "Insert Emacs-Guix \\='about\\=' info into the current buffer." (guix-insert-logo) (apply #'fancy-splash-insert guix-about-specifications) (goto-char (point-min)) diff --git a/elisp/guix-build-config.el.in b/elisp/guix-build-config.el.in index a32059a..af21dc8 100644 --- a/elisp/guix-build-config.el.in +++ b/elisp/guix-build-config.el.in @@ -18,6 +18,8 @@ ;; You should have received a copy of the GNU General Public License ;; along with Emacs-Guix. If not, see <http://www.gnu.org/licenses/>. +;;; Commentary: + ;;; Code: (defconst guix-config-name "@PACKAGE_NAME@" @@ -65,8 +67,7 @@ "Directory with Guix compiled (*.go) files.") (defconst guix-config-guile-program "@GUILE@" - "Name of the 'guile' executable defined at configure time.") + "Name of the \\='guile\\=' executable defined at configure time.") (provide 'guix-build-config) - -;;; guix-build-config.el ends here +;;; guix-build-config.el.in ends here diff --git a/elisp/guix-build-log.el b/elisp/guix-build-log.el index 7d2bce5..ac4f428 100644 --- a/elisp/guix-build-log.el +++ b/elisp/guix-build-log.el @@ -93,12 +93,12 @@ (defface guix-build-log-phase-success '((t)) - "Face for the 'succeeded' word of a phase line." + "Face for the \"succeeded\" word of a phase line." :group 'guix-build-log-faces) (defface guix-build-log-phase-fail '((t :inherit error)) - "Face for the 'failed' word of a phase line." + "Face for the \"failed\" word of a phase line." :group 'guix-build-log-faces) (defface guix-build-log-phase-seconds @@ -116,7 +116,7 @@ (defvar guix-build-log-phase-start-regexp (concat "^starting phase " guix-build-log-phase-name-regexp) - "Regexp for the start line of a 'build' phase.") + "Regexp for the start line of a \\='build\\=' phase.") (defvar guix-build-log-imenu-generic-expression `((nil ,guix-build-log-phase-start-regexp 1)) @@ -125,8 +125,8 @@ (defun guix-build-log-title-regexp (&optional state) "Return regexp for the log title. STATE is a symbol denoting a state of the title. It should be -`start', `fail', `success' or `nil' (for a regexp matching any -state)." +\\='start\\=', \\='fail\\=', \\='success\\=' or \\='nil\\=' (for a +regexp matching any state)." (let* ((word-rx (rx (1+ (any word "-")))) (state-rx (cond ((eq state 'start) (concat word-rx "started")) ((eq state 'success) (concat word-rx "succeeded")) @@ -137,9 +137,10 @@ state)." t))) (defun guix-build-log-phase-end-regexp (&optional state) - "Return regexp for the end line of a 'build' phase. + "Return regexp for the end line of a \\='build\\=' phase. STATE is a symbol denoting how a build phase was ended. It should be -`fail', `success' or `nil' (for a regexp matching any state)." +\\='fail\\=', \\='success\\=' or \\='nil\\=' (for a regexp matching +any state)." (let ((state-rx (cond ((eq state 'success) "succeeded") ((eq state 'fail) "failed") (t (regexp-opt '("succeeded" "failed")))))) @@ -153,7 +154,7 @@ STATE is a symbol denoting how a build phase was ended. It should be ;; For efficiency, it is better to have a regexp for the general line ;; of the phase end, then to call the function all the time. (guix-build-log-phase-end-regexp) - "Regexp for the end line of a 'build' phase.") + "Regexp for the end line of a \\='build\\=' phase.") (defvar guix-build-log-font-lock-keywords `((,(guix-build-log-title-regexp 'start) @@ -192,9 +193,9 @@ STATE is a symbol denoting how a build phase was ended. It should be (define-key map (kbd "<backtab>") 'guix-build-log-phase-toggle-all) (define-key map [(shift tab)] 'guix-build-log-phase-toggle-all) map) - "Parent keymap for 'build-log' buffers. + "Parent keymap for \\='build-log\\=' buffers. For `guix-build-log-mode' this map is used as is. -For `guix-build-log-minor-mode' this map is prefixed with 'C-c'.") +For `guix-build-log-minor-mode' this map is prefixed with \`C-c'.") (defvar guix-build-log-mode-map (let ((map (make-sparse-keymap))) @@ -214,8 +215,9 @@ For `guix-build-log-minor-mode' this map is prefixed with 'C-c'.") (defun guix-build-log-phase-start (&optional with-header?) "Return the start point of the current build phase. -If WITH-HEADER? is non-nil, do not skip 'starting phase ...' header. -Return nil, if there is no phase start before the current point." +If WITH-HEADER? is non-nil, do not skip \\='starting phase ...\\=' +header. Return nil, if there is no phase start before the current +point." (save-excursion (end-of-line) (when (re-search-backward guix-build-log-phase-start-regexp nil t) @@ -343,7 +345,7 @@ When Guix Build Log minor mode is enabled, it highlights build log in the current buffer. This mode can be enabled programmatically using hooks, like this: - (add-hook 'shell-mode-hook 'guix-build-log-minor-mode) + (add-hook \\='shell-mode-hook \\='guix-build-log-minor-mode) \\{guix-build-log-minor-mode-map}" :init-value nil diff --git a/elisp/guix-command.el b/elisp/guix-command.el index affda4e..a205418 100644 --- a/elisp/guix-command.el +++ b/elisp/guix-command.el @@ -80,7 +80,7 @@ (defvar guix-command-complex-with-shared-arguments '("potluck" "system") "List of guix commands which have subcommands with shared options. -I.e., 'guix foo --help' is the same as 'guix foo bar --help'.") +I.e., \\='guix foo --help\\=' is the same as \\='guix foo bar --help\\='.") (defun guix-command-action-name (&optional commands &rest name-parts) "Return name of action function for guix COMMANDS." @@ -484,7 +484,7 @@ to be modified." argument)) (defun guix-command-improve-arguments (arguments commands) - "Return ARGUMENTS for 'guix COMMANDS ...' modified for transient interface." + "Return ARGUMENTS for \\='guix COMMANDS ...\\=' modified for transient interface." (let ((improvers (cons 'guix-command-improve-common-argument (bui-assoc-value guix-command-argument-improvers commands)))) @@ -493,7 +493,7 @@ to be modified." arguments))) (defun guix-command-parse-arguments (&optional commands) - "Return a list of parsed 'guix COMMANDS ...' arguments." + "Return a list of parsed \\='guix COMMANDS ...\\=' arguments." (with-temp-buffer (insert (guix-help-string commands)) (let (args) @@ -585,7 +585,7 @@ to be modified." :doc "build inputs of the specified packages" :fun 'guix-read-package-names-string))) "Alist of guix commands and additional arguments for them. -These are 'fake' arguments that are not presented in 'guix' shell +These are \\='fake\\=' arguments that are not presented in \\='guix\\=' shell commands.") (defun guix-command-additional-arguments (&optional commands) @@ -601,7 +601,7 @@ commands.") ;; commands. (defun guix-command--all-arguments (&optional commands) - "Return list of all arguments for 'guix COMMANDS ...'." + "Return list of all arguments for \\='guix COMMANDS ...\\='." (let ((parsed (guix-command-parse-arguments commands))) (append (guix-command-improve-arguments parsed commands) (guix-command-additional-arguments commands)))) @@ -612,7 +612,7 @@ commands.") (defun guix-command-all-arguments (&optional commands) ;; Note: `guix-command-arguments' name cannot be used because function ;; with this name is generated by `transient-define-prefix'. - "Return list of arguments for 'guix COMMANDS ...'." + "Return list of arguments for \\='guix COMMANDS ...\\='." (let ((command (car commands))) (if (member command guix-command-complex-with-shared-arguments) @@ -700,7 +700,7 @@ Each function is called on the returned arguments in turn.") (defvar guix-command-rest-arg-regexp (rx string-start "-- " (group (+ any))) - "Regexp to match a string with the 'rest' arguments.") + "Regexp to match a string with the \\='rest\\=' arguments.") (defun guix-command-replace-args (args predicate modifier) "Replace arguments matching PREDICATE from ARGS. @@ -740,39 +740,37 @@ arguments into multiple subarguments." :group 1)) (defun guix-command-post-process-rest-multiple (args) - "Modify ARGS by splitting '-- ARG ...' into multiple subarguments -and moving them to the end of ARGS list. -Remove '-- ' string." + "Modify ARGS and remove '-- ' string. +Do that by splitting \\='-- ARG ...\\=' into multiple subarguments +and moving them to the end of ARGS list." (guix-command-post-process-matching-args args guix-command-rest-arg-regexp :group 1 :split? t)) (defun guix-command-post-process-rest-multiple-leave (args) - "Modify ARGS by splitting '-- ARG ...' into multiple subarguments -and moving them to the end of ARGS list. -Leave '--' string as a separate argument." + "Modify ARGS and leave '--' string as a separate argument. +Do that by splitting \\='-- ARG ...\\=' into multiple subarguments +and moving them to the end of ARGS list." (guix-command-post-process-matching-args args guix-command-rest-arg-regexp :split? t)) (defun guix-command-post-process-package-args (args) - "Adjust transient ARGS for 'guix package' command." + "Adjust transient ARGS for \\='guix package\\=' command." (guix-command-post-process-matching-args args (rx string-start (or "--install " "--remove ") (+ any)) :split? t)) (defun guix-command-post-process-environment-packages (args) - "Adjust transient ARGS for specified packages of 'guix environment' -command." + "Adjust ARGS for specified packages of \\='guix environment\\=' command." (guix-command-post-process-matching-args args (rx string-start "++packages " (group (+ any))) :group 1 :split? t)) (defun guix-command-post-process-environment-ad-hoc (args) - "Adjust transient ARGS for '--ad-hoc' argument of 'guix environment' -command." + "Adjust ARGS for '--ad-hoc' argument of \\='guix environment\\=' command." (guix-command-post-process-matching-args args (rx string-start "--ad-hoc " (+ any)) :split? t)) @@ -799,7 +797,7 @@ command." :name "shell" :char ?s :doc "Run in shell") (guix-command-make-argument :name "copy" :char ?c :doc "Copy command line")) - "List of default 'execute' action arguments.") + "List of default \\='execute\\=' action arguments.") (defvar guix-command-additional-execute-arguments (let ((graph-arg (guix-command-make-argument @@ -813,10 +811,10 @@ command." :name "view" :char ?v :doc "View map")) (("system" "shepherd-graph") ,graph-arg) (("system" "extension-graph") ,graph-arg))) - "Alist of guix commands and additional 'execute' action arguments.") + "Alist of guix commands and additional \\='execute\\=' action arguments.") (defun guix-command-execute-arguments (commands) - "Return a list of 'execute' action arguments for COMMANDS." + "Return a list of \\='execute\\=' action arguments for COMMANDS." (mapcar (lambda (arg) (guix-command-modify-argument arg :action? t @@ -856,7 +854,7 @@ See also `guix-command-default-executors'.") (bui-assoc-value guix-command-default-executors name))) (defun guix-run-environment-command-in-repl (args) - "Run 'guix ARGS ...' environment command in Guix REPL." + "Run \\='guix ARGS ...\\=' environment command in Guix REPL." ;; As 'guix environment' usually tries to run another process, it may ;; be fun but not wise to run this command in Geiser REPL. (when (or (member "--dry-run" args) @@ -871,7 +869,7 @@ Do you really want to execute this command in Geiser REPL? " (guix-run-command-in-repl args))) (defun guix-run-pull-command-in-repl (args) - "Run 'guix ARGS ...' pull command in Guix REPL. + "Run \\='guix ARGS ...\\=' pull command in Guix REPL. Perform pull-specific actions after operation, see `guix-after-pull-hook' and `guix-update-after-pull'." (guix-eval-in-repl @@ -882,8 +880,8 @@ Perform pull-specific actions after operation, see 'pull))) (defun guix-run-view-build-log (args) - "Add --log-file to ARGS, run 'guix ARGS ...' build command, and -open the log file(s)." + "Add --log-file to ARGS, run \\='guix ARGS ...\\=' build command. +Then open the log file(s)." (let* ((args (if (member "--log-file" args) args (cl-list* (car args) "--log-file" (cdr args)))) @@ -895,7 +893,7 @@ open the log file(s)." (declare-function guix-make-view-graph "guix-graph" t) (defun guix-run-view-graph (args) - "Run 'guix ARGS ...' graph command, make the image and open it." + "Run \\='guix ARGS ...\\=' graph command, make the image and open it." (require 'guix-graph) (guix-make-view-graph (if (member "--backend=d3js" args) "d3js" "graphviz") @@ -909,7 +907,7 @@ open the log file(s)." 'guix-output-to-file args graph-file))))))) (defun guix-run-view-size-map (args) - "Run 'guix ARGS ...' size command, and open the map file." + "Run \\='guix ARGS ...\\=' size command, and open the map file." (let* ((wished-map-file (cl-some (lambda (arg) (and (string-match "--map-file=\\(.+\\)" arg) @@ -955,7 +953,7 @@ EXECUTOR function is called with the current command line arguments." ',commands (transient-args (transient-current-command)))))))) (defun guix-command-generate-popup-actions (actions &optional commands) - "Generate 'popup' commands from ACTIONS arguments for guix COMMANDS." + "Generate \\='popup\\=' commands from ACTIONS arguments for guix COMMANDS." (dolist (action actions) (let ((fun (guix-command-argument-fun action))) (unless (fboundp fun) @@ -964,7 +962,7 @@ EXECUTOR function is called with the current command line arguments." (list (guix-command-argument-name action))))))))) (defun guix-command-generate-execute-actions (actions &optional commands) - "Generate 'execute' commands from ACTIONS arguments for guix COMMANDS." + "Generate \\='execute\\=' commands from ACTIONS arguments for guix COMMANDS." (dolist (action actions) (let ((fun (guix-command-argument-fun action))) (unless (fboundp fun) @@ -974,7 +972,7 @@ EXECUTOR function is called with the current command line arguments." ,commands)))))) (defun guix-command-generate-prefix (name &optional commands) - "Define NAME prefix with 'guix COMMANDS ...' interface." + "Define NAME prefix with \\='guix COMMANDS ...\\=' interface." (let* ((command (car commands)) (man-page (concat "guix" (and command (concat "-" command)))) (doc (format "Transient for '%s' command." diff --git a/elisp/guix-config.el b/elisp/guix-config.el index 4506958..8cc1f6a 100644 --- a/elisp/guix-config.el +++ b/elisp/guix-config.el @@ -59,7 +59,7 @@ nil)) "Directory with Scheme files for Emacs-Guix package. It should be a directory where Guile modules are placed, i.e. a -directory with 'emacs-guix' sub-directory.") +directory with \\='emacs-guix\\=' sub-directory.") (defvar guix-image-directory (or guix-config-image-directory diff --git a/elisp/guix-default-config.el b/elisp/guix-default-config.el index 77ffc83..4ec7a1c 100644 --- a/elisp/guix-default-config.el +++ b/elisp/guix-default-config.el @@ -59,7 +59,7 @@ "Directory with Guix compiled (*.go) files.") (defconst guix-config-guile-program nil - "Name of the 'guile' executable defined at configure time.") + "Name of the \\='guile\\=' executable defined at configure time.") (provide 'guix-default-config) diff --git a/elisp/guix-external.el b/elisp/guix-external.el index c7e123b..d470c36 100644 --- a/elisp/guix-external.el +++ b/elisp/guix-external.el @@ -38,7 +38,7 @@ ;; Avoid auto-compilation as it is slow and error-prone: ;; <https://notabug.org/alezost/emacs-guix/issues/2>. "--no-auto-compile") - "Name of the 'guile' executable used for Guix REPL. + "Name of the \\='guile\\=' executable used for Guix REPL. May be either a string (the name of the executable) or a list of strings of the form: @@ -50,18 +50,18 @@ Where ARGS is a list of arguments to the guile program." (defcustom guix-dot-program (executable-find "dot") - "Name of the 'dot' executable." + "Name of the \\='dot\\=' executable." :type 'string :group 'guix-external) (defcustom guix-dot-default-arguments '("-Tpng") - "Default arguments for 'dot' program." + "Default arguments for \\='dot\\=' program." :type '(repeat string) :group 'guix-external) (defcustom guix-dot-file-name-function #'guix-png-file-name - "Function used to define a file name of a temporary 'dot' file. + "Function used to define a file name of a temporary \\='dot\\=' file. The function is called without arguments." :type '(choice (function-item guix-png-file-name) (function :tag "Other function")) @@ -82,11 +82,11 @@ If ARGS is nil, use `guix-dot-default-arguments'." (funcall guix-dot-file-name-function)) (defun guix-png-file-name () - "Return '.png' file name in the `guix-temporary-directory'." + "Return '.png' file name in the variable `guix-temporary-directory'." (guix-temporary-file-name "graph-" ".png")) (defun guix-html-file-name () - "Return '.html' file name in the `guix-temporary-directory'." + "Return '.html' file name in the variable `guix-temporary-directory'." (guix-temporary-file-name "graph-" ".html")) (provide 'guix-external) diff --git a/elisp/guix-geiser.el b/elisp/guix-geiser.el index 7b503e5..8d96035 100644 --- a/elisp/guix-geiser.el +++ b/elisp/guix-geiser.el @@ -53,7 +53,7 @@ Return a list of strings with result values of evaluation." Sorry, the evaluation is aborted because it has taken too much time. Try to increase the value of `guix-geiser-connection-timeout' variable if you have a slow machine, or please report if you -think this command takes unreasonably long time to run.")) +think this command takes unreasonably long time to run")) (if (geiser-eval--retort-error res) (error "Error in evaluating guile expression: %s" (geiser-eval--retort-output res)) @@ -76,9 +76,10 @@ If NO-DISPLAY is non-nil, do not switch to the REPL buffer." (defun guix-geiser-eval-in-repl-synchronously (str &optional repl no-history no-display) - "Evaluate STR in Geiser REPL synchronously, i.e. wait until the -REPL operation will be finished. -See `guix-geiser-eval-in-repl' for the meaning of arguments." + "Evaluate STR in Geiser REPL synchronously. +The evaluation is blocked until the REPL operation completes. +See `guix-geiser-eval-in-repl' for the meaning of arguments NO-HISTORY +and NO-DISPLAY." (let* ((repl (if repl (get-buffer repl) (guix-geiser-repl))) (running? nil) (filter (lambda (output) diff --git a/elisp/guix-graph.el b/elisp/guix-graph.el index c7c703a..ee910f4 100644 --- a/elisp/guix-graph.el +++ b/elisp/guix-graph.el @@ -52,7 +52,7 @@ See `guix-graph-backend->graph-type' for the meaning of GRAPH-TYPE." (browse-url (browse-url-file-url graph-file))))) (defun guix-make-view-graph (backend graph-maker) - "Make graph using GRAPH-MAKER procedure and view it. + "Make graph with BACKEND using GRAPH-MAKER procedure and view it. GRAPH-MAKER is called with GRAPH-TYPE and GRAPH-FILE arguments. It should return non-nil on success. See `guix-graph-backend->graph-type' for the meaning of GRAPH-TYPE." diff --git a/elisp/guix-guile.el b/elisp/guix-guile.el index d56701e..da3859b 100644 --- a/elisp/guix-guile.el +++ b/elisp/guix-guile.el @@ -105,7 +105,7 @@ PROC and ARGS should be strings." (string-match-p geiser-guile--debugger-prompt-regexp string))) (defun guix-guile-read () - "Read guile code from the current buffer and 'transform' it into elisp. + "Read guile code from the current buffer and \\='transform\\=' it into elisp. The contents of the current buffer may be modified." (goto-char (point-min)) (cond @@ -120,13 +120,13 @@ The contents of the current buffer may be modified." (read (current-buffer))))) (defun guix-guile-read-from-file (file-name) - "Read guile code from FILE-NAME and 'transform' it into elisp." + "Read guile code from FILE-NAME and \\='transform\\=' it into elisp." (with-temp-buffer (insert-file-contents file-name) (guix-guile-read))) (defun guix-guile-read-from-string (string) - "Read guile code from string and 'transform' it into elisp." + "Read guile code from STRING and \\='transform\\=' it into elisp." (with-temp-buffer (insert string) (guix-guile-read))) diff --git a/elisp/guix-help-vars.el b/elisp/guix-help-vars.el index 0dc0bc6..17f033f 100644 --- a/elisp/guix-help-vars.el +++ b/elisp/guix-help-vars.el @@ -69,8 +69,7 @@ guix subcommand, system action, importer, etc.") "Regexp used to find various lists (lint checkers, graph types).") (defvar guix-help-parse-regexp-group 1 - "Parenthesized expression of regexps used to find commands and -options.") + "Parenthesized expression of regexps to find commands and options.") ;;; Non-receivable lists @@ -85,7 +84,7 @@ options.") (defvar guix-help-refresh-subsets '("core" "non-core") - "List of supported 'refresh' subsets.") + "List of supported \\='refresh\\=' subsets.") (defvar guix-help-key-policies '("interactive" "always" "never") @@ -93,7 +92,7 @@ options.") (defvar guix-help-verify-options '("repair" "contents") - "List of supported 'verify' options") + "List of supported \\='verify\\=' options.") (defvar guix-help-elpa-archives '("gnu" "melpa" "melpa-stable") @@ -101,66 +100,66 @@ options.") (defvar guix-help-size-sort-keys '("closure" "self") - "List of supported sort keys for 'guix size' command.") + "List of supported sort keys for \\='guix size\\=' command.") (defvar guix-help-search-paths-types '("exact" "prefix" "suffix") - "List of supported search-paths types for 'guix package' command.") + "List of supported search-paths types for \\='guix package\\=' command.") (defvar guix-help-repl-types '("guile" "machine") - "List of supported types for 'guix repl' command.") + "List of supported types for \\='guix repl\\=' command.") (defvar guix-help-describe-formats '("human" "channels" "json" "recutils") - "List of supported formats for 'guix describe' command.") + "List of supported formats for \\='COMMAND describe\\=' command.") (defvar guix-help-on-error-strategies '("nothing-special" "backtrace" "debug") - "List of on-error strategies for 'guix system' command.") + "List of on-error strategies for \\='guix system\\=' command.") ;;; Default values of various options (defvar guix-default-hash-format "nix-base32" - "Default format for 'guix hash' command.") + "Default format for \\='guix hash\\=' command.") (defvar guix-default-key-policy "interactive" - "Default key download policy used by 'guix refresh' command.") + "Default key download policy used by \\='guix refresh\\=' command.") (defvar guix-default-elpa-archive "gnu" - "Default ELPA archive for 'guix import elpa' command.") + "Default ELPA archive for \\='guix import elpa\\=' command.") (defvar guix-default-size-sort-key "closure" - "Default sort key for 'guix size' command.") + "Default sort key for \\='guix size\\=' command.") (defvar guix-default-search-paths-type "exact" - "Default search-paths type for 'guix package' command.") + "Default search-paths type for \\='guix package\\=' command.") (defvar guix-default-repl-type "guile" - "Default type for 'guix repl' command.") + "Default type for \\='guix repl\\=' command.") (defvar guix-default-describe-format "human" - "Default format for 'guix describe' command.") + "Default format for \\='guix describe\\=' command.") (defvar guix-default-graph-backend "graphviz" - "Default backend for 'guix graph' command.") + "Default backend for \\='guix graph\\=' command.") (defvar guix-default-graph-node-type "package" - "Default node type for 'guix graph' command.") + "Default node type for \\='guix graph\\=' command.") (defvar guix-default-on-error-strategy "nothing-special" - "Default on-error strategy for 'guix system' command.") + "Default on-error strategy for \\='guix system\\=' command.") (provide 'guix-help-vars) diff --git a/elisp/guix-help.el b/elisp/guix-help.el index d4aa472..53ccd3a 100644 --- a/elisp/guix-help.el +++ b/elisp/guix-help.el @@ -48,7 +48,7 @@ If ARG is non-nil (interactively with prefix), show Guix info manual." :group 'guix-help) (defcustom guix-help-doc-column 40 - "Column at which 'doc' button is inserted." + "Column at which \\='doc\\=' button is inserted." :type 'integer :group 'guix-help) @@ -186,7 +186,7 @@ COMMAND-NAME is a symbol. COMMAND-BUTTON? is a boolean value; it defines whether COMMAND-NAME is buttonized or not. -INFO-BUTTON? is a boolean value; it defines whether 'info' button +INFO-BUTTON? is a boolean value; it defines whether \\='info\\=' button should be displayed or not.") (defvar guix-help-mode-map @@ -229,7 +229,7 @@ INFO-NODE is the name passed to `info' function." 'symbol symbol)) (defun guix-insert-command-button (command) - "Insert button to run 'M-x COMMAND'." + "Insert button to run \\[COMMAND]." (let ((command-string (symbol-name command))) (bui-insert-button command-string 'button @@ -255,8 +255,8 @@ INFO-NODE is the name passed to `info' function." (guix-goto-index-topic "Command Index" topic)) (defun guix-help-insert-doc-buttons (command &optional info-button?) - "Insert 'doc' button for COMMAND at `guix-help-doc-column'. -If INFO-BUTTON? is non-nil, insert 'info' button as well." + "Insert \\='doc\\=' button for COMMAND at `guix-help-doc-column'. +If INFO-BUTTON? is non-nil, insert \\='info\\=' button as well." (indent-to guix-help-doc-column 2) (guix-insert-doc-button "doc" command) (when info-button? @@ -309,7 +309,7 @@ See `guix-help-specifications' for the meaning of SPEC." (funcall content-function))) (defun guix-help-make-revert-function (content-function) - "Return a revert function for `revert-buffer-function'." + "Return a revert CONTENT-FUNCTION for `revert-buffer-function'." (lambda (_ignore-auto noconfirm) (when (or noconfirm (y-or-n-p (format "Revert %s buffer? " (buffer-name)))) diff --git a/elisp/guix-license.el b/elisp/guix-license.el index 50cbd2a..43ff1e1 100644 --- a/elisp/guix-license.el +++ b/elisp/guix-license.el @@ -29,7 +29,8 @@ (defun guix-license-file (&optional directory) "Return name of the file with license definitions. -DIRECTORY is a directory with Guix source (`guix-directory' by default)." +DIRECTORY is a directory with Guix source (variable`guix-directory' +by default)." (expand-file-name "guix/licenses.scm" (or directory (guix-directory)))) diff --git a/elisp/guix-misc.el b/elisp/guix-misc.el index f4a7aaa..4d88c5c 100644 --- a/elisp/guix-misc.el +++ b/elisp/guix-misc.el @@ -56,7 +56,7 @@ "If non-nil, do not perform the real actions, just simulate.") (defvar guix-temp-buffer-name " *Guix temp*" - "Name of a buffer used for displaying info before executing operation.") + "Name of a buffer used to display info before executing operation.") (defvar guix-operation-option-true-string "yes" "String displayed in the mode-line when operation option is t.") @@ -130,7 +130,8 @@ Ask a user with PROMPT for continuing an operation." (message ""))))) (defun guix-operation-prompt-1 (prompt keys) - "This function is internal for `guix-operation-prompt'." + "This function is internal for `guix-operation-prompt'. +See its documentation for meaning of PROMPT and KEYS." (guix-operation-set-mode-line) (let ((key (read-char-choice prompt (cons ?\C-g keys) t))) (cl-case key @@ -163,7 +164,7 @@ Ask a user with PROMPT for continuing an operation." ;;;###autoload (defun guix-apply-manifest (profile file &optional operation-buffer) "Apply manifest from FILE to PROFILE. -This function has the same meaning as 'guix package --manifest' command. +This function has the same meaning as \\='guix package --manifest\\=' command. See Info node `(guix) Invoking guix package' for details. Interactively, use the current profile and prompt for manifest @@ -189,12 +190,13 @@ FILE. With a prefix argument, also prompt for PROFILE." operation-buffer))) (defcustom guix-search-paths-buffer-name "*Guix Search Paths*" - "Name of a buffer for displaying 'search paths' environment variables." + "Name of a buffer to display \\='search paths\\=' environment variables." :type 'string :group 'guix) (defun guix-show-search-paths (profiles &optional type) - "Display 'search paths' environment variables for PROFILES." + "Display \\='search paths\\=' environment variables for PROFILES. +TYPE defaults to \\='exact\\='." (let* ((profiles (mapcar #'guix-package-profile profiles)) (type (or type "exact")) (type-symbol (intern type)) @@ -230,7 +232,7 @@ PROFILE can be a named profile (like '~/.guix-profile', store, like GUIX_ENVIRONMENT variable (see Info node `(guix) Invoking guix environment' for details). -If PROFILE is nil, use `guix-current-profile'." +If PROFILE is nil, use variable `guix-current-profile'." (interactive (list (guix-read-profile))) (let ((specs (guix-eval-read (guix-make-guile-expression @@ -283,18 +285,18 @@ The function is called with a single argument - a command line string." (eshell-send-input)) (defun guix-run-command-in-shell (args) - "Execute 'guix ARGS ...' command in a shell buffer." + "Execute \\='guix ARGS ...\\=' command in a shell buffer." (funcall guix-run-in-shell-function (guix-command-string args))) (defun guix-run-command-in-repl (args) - "Execute 'guix ARGS ...' command in Guix REPL." + "Execute \\='guix ARGS ...\\=' command in Guix REPL." (guix-eval-in-repl (apply #'guix-make-guile-expression 'guix-command args))) (defun guix-command-output (args) - "Return string with 'guix ARGS ...' output." + "Return string with \\='guix ARGS ...\\=' output." (cl-multiple-value-bind (output error) (guix-eval (apply #'guix-make-guile-expression 'guix-command-output args)) @@ -303,7 +305,7 @@ The function is called with a single argument - a command line string." (read output))) (defun guix-help-string (&optional commands) - "Return string with 'guix COMMANDS ... --help' output." + "Return string with \\='guix COMMANDS ... --help\\=' output." (guix-eval-read (apply #'guix-make-guile-expression 'help-string commands))) @@ -358,7 +360,7 @@ If VERBOSE is non-nil (with prefix argument), produce verbose output." ;;;###autoload (defun guix-report-bug (subject) "Report GNU Guix bug. -Prompt for bug subject and open a mail buffer." +Prompt for bug SUBJECT and open a mail buffer." (interactive "sBug Subject: ") (compose-mail guix-bug-address subject)) diff --git a/elisp/guix-package.el b/elisp/guix-package.el index 414e465..f4d11df 100644 --- a/elisp/guix-package.el +++ b/elisp/guix-package.el @@ -73,7 +73,7 @@ 'package-store-path package-id))) (defvar guix-after-source-download-hook nil - "Hook run after successful performing a 'source-download' operation.") + "Hook run after successful performing a \\='source-download\\=' operation.") (defun guix-package-source-build-derivation (package-id &optional prompt) "Build source derivation of a package PACKAGE-ID. diff --git a/elisp/guix-pcomplete.el b/elisp/guix-pcomplete.el index a393a0f..1ea65e1 100644 --- a/elisp/guix-pcomplete.el +++ b/elisp/guix-pcomplete.el @@ -38,7 +38,7 @@ (defun guix-pcomplete-search-in-help (regexp &optional group &rest args) - "Search for REGEXP in 'guix ARGS... --help' output. + "Search for REGEXP in \\='guix ARGS... --help\\=' output. Return a list of strings matching REGEXP. GROUP specifies a parenthesized expression used in REGEXP." (with-temp-buffer @@ -53,9 +53,10 @@ GROUP specifies a parenthesized expression used in REGEXP." "Define function NAME to receive guix options and commands. The defined function takes rest COMMANDS argument. This function -will search for REGEXP in 'guix COMMANDS... --help' output (or -'guix --help' if COMMANDS is nil) using -`guix-pcomplete-search-in-help' and will return its result. +will search for REGEXP in \\='guix COMMANDS... --help\\=' output (or +\\='guix --help\\=' if COMMANDS is nil) using +`guix-pcomplete-search-in-help' and will return its result. The +function is defined with DOCSTRING. If FILTER is specified, it should be a function. The result is passed to this FILTER as argument and the result value of this @@ -72,15 +73,15 @@ function call is returned." (guix-pcomplete-define-options-finder guix-pcomplete-commands "If COMMANDS is nil, return a list of available guix commands. If COMMANDS is non-nil (it should be a list of strings), return -available subcommands, actions, etc. for 'guix COMMANDS'." +available subcommands, actions, etc. for \\='guix COMMANDS\\='." guix-help-parse-command-regexp) (guix-pcomplete-define-options-finder guix-pcomplete-long-options - "Return a list of available long options for 'guix COMMANDS'." + "Return a list of available long options for \\='guix COMMANDS\\='." guix-help-parse-long-option-regexp) (guix-pcomplete-define-options-finder guix-pcomplete-short-options - "Return a string with available short options for 'guix COMMANDS'." + "Return a string with available short options for \\='guix COMMANDS\\='." guix-help-parse-short-option-regexp (lambda (list) (guix-concat-strings list ""))) diff --git a/elisp/guix-prettify.el b/elisp/guix-prettify.el index a253879..9268959 100644 --- a/elisp/guix-prettify.el +++ b/elisp/guix-prettify.el @@ -25,7 +25,7 @@ ;; replaced with '/gnu/store/…-foo-0.1' in the current buffer. There is ;; also `global-guix-prettify-mode' for global prettifying. -;; To install, add the following to your emacs init file: +;; To install, add the following to your Emacs init file: ;; ;; (add-to-list 'load-path "/path/to/dir-with-guix-prettify") ;; (autoload 'guix-prettify-mode "guix-prettify" nil t) @@ -166,7 +166,7 @@ file names (see `guix-prettify-regexp') are displayed as This mode can be enabled programmatically using hooks: - (add-hook 'shell-mode-hook 'guix-prettify-mode) + (add-hook \\='shell-mode-hook \\='guix-prettify-mode) It is possible to enable the mode in any buffer, however not any buffer's highlighting may survive after adding new elements to diff --git a/elisp/guix-profiles.el b/elisp/guix-profiles.el index a176815..7ac46a2 100644 --- a/elisp/guix-profiles.el +++ b/elisp/guix-profiles.el @@ -57,7 +57,7 @@ (expand-file-name "guix/current" (or (getenv "XDG_CONFIG_HOME") (expand-file-name "~/.config"))) - "Profile populated by 'guix pull' command.") + "Profile populated by \\='guix pull\\=' command.") (defvar guix-default-user-profile (or (file-symlink-p guix-user-profile) @@ -71,7 +71,7 @@ also contain profile generations.") (or (file-symlink-p guix-pulled-profile) (expand-file-name "current-guix" (guix-user-profiles-directory))) - "Default profile populated by 'guix pull' command. + "Default profile populated by \\='guix pull\\=' command. Unlike `guix-pulled-profile', directory with this profile should also contain profile generations.") @@ -96,7 +96,7 @@ It is used by various commands as the default working profile.") (rx-to-string `(or ,guix-pulled-profile ,guix-default-pulled-profile) t) - "Regexp matching 'guix pull'-ed profile.") + "Regexp matching \\='guix pull\\='-ed profile.") (defvar guix-generation-file-name-regexp (rx (group (one-or-more any)) @@ -105,7 +105,7 @@ It is used by various commands as the default working profile.") The first parenthesized group should match profile file name.") (defun guix-current-profile? (profile) - "Return non-nil, if PROFILE is `guix-current-profile'." + "Return non-nil, if PROFILE is the variable `guix-current-profile'." (string= (guix-profile profile) (guix-profile guix-current-profile))) @@ -118,7 +118,7 @@ The first parenthesized group should match profile file name.") (string-match-p guix-home-profile-regexp profile)) (defun guix-pulled-profile? (profile) - "Return non-nil, if PROFILE is populated by 'guix pull'." + "Return non-nil, if PROFILE is populated by \\='guix pull\\='." (string-match-p guix-pulled-profile-regexp profile)) (defun guix-assert-non-system-profile (profile) @@ -126,7 +126,7 @@ The first parenthesized group should match profile file name.") (when (guix-system-profile? profile) (user-error "\ Packages cannot be installed or removed to/from profile '%s'. -Use 'guix system reconfigure' shell command to modify a system profile." +Use 'guix system reconfigure' shell command to modify a system profile" profile))) (defun guix-generation-file (profile generation) @@ -155,15 +155,15 @@ and `guix-default-user-profile' instead of `guix-user-profile'." (defun guix-generation-profile (profile &optional generation) "Return file name of PROFILE or its GENERATION. -The returned file name is the one that have generations in the -same parent directory. + +The returned file name is the one that have generations in the same +parent directory. If PROFILE matches `guix-system-profile-regexp' or -`guix-home-profile-regexp', then it is considered to be a system -or home profile. Unlike usual profiles, for a system/home -profile, packages are placed in 'profile' sub-directory, so the -returned file name does not contain this potential trailing -'/profile'." +`guix-home-profile-regexp', then it is considered to be a system or +home profile. Unlike usual profiles, for a system/home profile, +packages are placed in \\='profile\\=' sub-directory, so the returned +file name does not contain this potential trailing \\='/profile\\='." (let* ((profile (guix-profile profile)) (profile (if (and (or (guix-system-profile? profile) (guix-home-profile? profile)) @@ -234,7 +234,7 @@ is not a guix profile)." (defun guix-read-profile (&optional default) "Prompt for profile and return it. Use DEFAULT as a start directory. If it is nil, use -`guix-current-profile'." +the variable `guix-current-profile'." (guix-read-file-name "Profile: " (file-name-directory (or default guix-current-profile)))) @@ -252,13 +252,13 @@ See `guix-read-profile' for the meaning of DEFAULT, and (guix-generation-profile (guix-read-profile default))) (defun guix-read-manifest-file-name (&optional prompt) - "Prompt for a manifest file name and return it." + "PROMPT for a manifest file name and return it." (guix-read-file-name (or prompt "File with manifest: "))) ;;;###autoload (defun guix-set-current-profile (file-name) - "Set `guix-current-profile' to FILE-NAME. + "Set the variable `guix-current-profile' to FILE-NAME. Interactively, prompt for FILE-NAME. With prefix, use `guix-user-profile'." (interactive diff --git a/elisp/guix-read.el b/elisp/guix-read.el index e903a43..e88fb35 100644 --- a/elisp/guix-read.el +++ b/elisp/guix-read.el @@ -129,7 +129,9 @@ initial-contents." (defun guix-read-package-name-at-point (&optional prompt initial-contents) "Read symbol at point and if it is a package name, return it. If it is not a package name or if current command has a prefix -argument, read the name from minibuffer." +argument, read the name from minibuffer. +See `guix-read-package-name-default' for the meaning of options PROMPT +and INITIAL-CONTENTS." (if current-prefix-arg (guix-read-package-name-default prompt initial-contents) (let* ((at-point (thing-at-point 'symbol)) @@ -142,7 +144,9 @@ argument, read the name from minibuffer." initial-contents))))) (defun guix-read-package-name (&optional prompt initial-contents) - "Read a package name using `guix-read-package-name-function'." + "Read a package name using `guix-read-package-name-function'. +See the value of `guix-read-package-name-function' for the meaning of +options PROMPT and INITIAL-CONTENTS." (funcall guix-read-package-name-function prompt initial-contents)) diff --git a/elisp/guix-repl.el b/elisp/guix-repl.el index bf1dc82..846db60 100644 --- a/elisp/guix-repl.el +++ b/elisp/guix-repl.el @@ -59,13 +59,12 @@ (require 'guix-utils) (defvar guix-load-path nil - "Directory or a list of directories prepended to Guile's -`%load-path' when Guix REPL is started. + "Directory or a list of directories prepended to Guile's `%load-path'. -These directories take precedence over any other -directory (including Guile modules of Emacs-Guix and Guix -itself). So this variable may be useful if you prefer to use -guix from a git checkout: +These directories are prepended when Guix REPL is started. They take +precedence over any other directory (including Guile modules of +Emacs-Guix and Guix itself). So this variable may be useful if you +prefer to use guix from a git checkout: (setq guix-load-path \"/path/to/guix-from-git\") @@ -73,10 +72,10 @@ These directories are also prepended to `%load-compiled-path' unless `guix-load-compiled-path' is specified.") (defvar guix-load-compiled-path nil - "List of directories prepended to Guile's `%load-compiled-path' -when Guix REPL is started. + "List of directories prepended to Guile's `%load-compiled-path'. -See `guix-load-path' for details.") +These directories are prepended when Guix REPL is started. See +`guix-load-path' for details.") ;;; REPL @@ -108,9 +107,9 @@ If you have a slow system, try to increase this time." 'guix-repl-use-server "0.2") (defcustom guix-repl-use-server t - "If non-nil, start guile with '--listen' argument. + "If non-nil, start guile with \\='--listen\\=' argument. This allows to receive information about packages using an -additional (so called 'internal') REPL while some packages are +additional (so called \\='internal\\=') REPL while some packages are being installed/removed in the main Guix REPL." :type 'boolean :group 'guix-repl) @@ -181,8 +180,8 @@ executed after the current operation succeeds. See `guix-eval-in-repl' for details.") (defvar guix-repl-max-returned-list-size 10 - "Maximal length of a list that is passed from the Guile side to -the Emacs side directly through Geiser. + "Maximal length of a list passed from Guile to Emacs side. +This list is passed directly through Geiser. This is a performance variable: passing big chunks of data through Geiser may be slow, so to improve the speed, the Guile @@ -191,7 +190,7 @@ file, and then this file is read directly by Emacs. So if a list is lesser than the value of this variable, it is passed through Geiser. If it is bigger, it is written to a -file (in `guix-temporary-directory'). +file (variable `guix-temporary-directory'). Set this variable to nil, if you want to pass a list of any size through Geiser (not recommended). @@ -336,7 +335,7 @@ this address (it should be defined by geiser-repl-query-on-kill-p))))) (defun guix-repl-output-filter (str) - "Filter function suitable for `comint-output-filter-functions'. + "Filter STR for `comint-output-filter-functions'. This is a replacement for `geiser-repl--output-filter'." (cond ((string-match-p geiser-guile--prompt-regexp str) @@ -431,7 +430,7 @@ automatically when needed. However, you can still set it if you really want; your value will not be overwritten.") (defun guix-directory () - "Set if needed and return `guix-directory'." + "Set if needed and return the variable `guix-directory'." (or guix-directory (let* ((guix.scm (guix-eval-read "(%search-load-path \"guix\")")) (dir (and guix.scm @@ -439,7 +438,7 @@ really want; your value will not be overwritten.") (setq guix-directory dir)))) (defun guix-read-directory () - "Return `guix-directory' or prompt for it. + "Return the variable `guix-directory' or prompt for it. This function is intended for using in `interactive' forms." (if current-prefix-arg (read-directory-name "Directory with Guix modules: " @@ -450,7 +449,7 @@ This function is intended for using in `interactive' forms." ;; compatibility (in the past "guix pull" populated ;; "~/.config/guix/latest"). (defun guix-latest-directory () - "Return 'guix pull'-ed directory or nil if it does not exist." + "Return \\='guix pull\\='-ed directory or nil if it does not exist." (let* ((config-dir (or (getenv "XDG_CONFIG_HOME") (expand-file-name "~/.config"))) (latest-dir (expand-file-name "guix/latest" config-dir))) @@ -511,7 +510,7 @@ If MODES is nil, use modes for Guix package management." (defun guix-operation-buffers (&optional modes) "Return a list of all buffers with major modes derived from MODES. -If MODES is nil, return list of all Guix 'list' and 'info' buffers." +If MODES is nil, return list of all Guix \\='list\\=' and \\='info\\=' buffers." (--filter (guix-operation-buffer? it modes) (buffer-list))) diff --git a/elisp/guix-ui-generation.el b/elisp/guix-ui-generation.el index 6cff2fc..7d10d90 100644 --- a/elisp/guix-ui-generation.el +++ b/elisp/guix-ui-generation.el @@ -1,4 +1,4 @@ -;;; guix-ui-generation.el --- Interface for displaying generations -*- lexical-binding: t -*- +;;; guix-ui-generation.el --- Interface to display generations -*- lexical-binding: t -*- ;; Copyright © 2014–2018 Alex Kost <alezost@HIDDEN> @@ -19,7 +19,7 @@ ;;; Commentary: -;; This file provides an interface for displaying profile generations in +;; This file provides an interface to display profile generations in ;; 'list' and 'info' buffers, and commands for working with them. ;;; Code: @@ -42,9 +42,9 @@ (defun guix-generation-get-entries (proc profile search-type search-values params) - "Return 'generation' or 'system-generation' entries. -PROC is the name of a Scheme procedure (either 'generation-sexps' -or 'system-generation-sexps')." + "Return \\='generation\\=' or \\='system-generation\\=' entries. +PROC is the name of a Scheme procedure (either \\='generation-sexps\\=' +or \\='system-generation-sexps\\=')." (apply #'guix-modify-objects (guix-eval-read (guix-make-guile-expression proc profile search-type search-values params)) @@ -63,10 +63,8 @@ or 'system-generation-sexps')." (defun guix-generation-get-display (profile search-type &rest search-values) "Search for generations and show results. -If PROFILE is nil, use `guix-current-profile'. - -See `guix-ui-get-entries' for the meaning of SEARCH-TYPE and -SEARCH-VALUES." +If PROFILE is nil, use the variable `guix-current-profile'. +SEARCH-TYPE and SEARCH-VALUES define how to get the information." (apply #'bui-list-get-display-entries 'guix-generation (or profile guix-current-profile) @@ -91,7 +89,9 @@ Each element from GENERATIONS is a generation number." (defun guix-switch-to-generation (profile generation &optional operation-buffer) - "Switch PROFILE to GENERATION." + "Switch PROFILE to GENERATION. + +Argument OPERATION-BUFFER is passed to `guix-eval-in-repl'." (when (or (not guix-operation-confirm) (y-or-n-p (format "Switch profile '%s' to generation %d? " profile generation))) @@ -101,8 +101,9 @@ Each element from GENERATIONS is a generation number." operation-buffer))) (defun guix-generation-current-package-profile (&optional generation) - "Return a directory where packages are installed for the -current profile's GENERATION." + "Return a directory where packages are installed. + +If GENERATION is provided, do that for the current profile's GENERATION." (guix-package-profile (guix-ui-current-profile) generation)) @@ -146,7 +147,9 @@ current profile's GENERATION." (defun guix-generation-info-get-entries (profile search-type &rest search-values) - "Return 'generation' entries for displaying them in 'info' buffer." + "Return PROFILE \\='generation\\=' entries to display them in `info' buffer. + +SEARCH-TYPE and SEARCH-VALUES define how to get the information." (guix-generation-get-entries 'generation-sexps profile search-type search-values @@ -182,7 +185,7 @@ current profile's GENERATION." (bui-newline))) (defun guix-generation-info-insert-previous (prev-number entry) - "Insert PREV-NUMBER and button to compare generations." + "Insert PREV-NUMBER and button in ENTRY to compare generations." (bui-format-insert prev-number) (bui-insert-indent) (when (> prev-number 0) @@ -201,7 +204,7 @@ current profile's GENERATION." 'number number)))) (defun guix-generation-info-insert-packages (number entry) - "Insert the NUMBER of packages and button to display packages." + "Insert the NUMBER of packages and button in ENTRY to display packages." (bui-format-insert number) (bui-insert-indent) (let ((number (bui-entry-non-void-value entry 'number))) @@ -216,7 +219,9 @@ current profile's GENERATION." 'number number))) (defun guix-generation-info-insert-current (val entry) - "Insert boolean value VAL showing whether this generation is current." + "Insert in ENTRY the boolean value VAL. + +This value shows whether this generation is current." (if val (bui-info-insert-value-format "Yes" 'guix-generation-info-current) (bui-info-insert-value-format "No" 'guix-generation-info-not-current) @@ -302,7 +307,9 @@ If nothing is marked, return a list with generation at point." (defun guix-generation-list-get-entries (profile search-type &rest search-values) - "Return 'generation' entries for displaying them in 'list' buffer." + "Return \\='generation\\=' entries to display them in \\='list\\=' buffer. + +SEARCH-TYPE and SEARCH-VALUES define how to get the information for PROFILE." (guix-generation-get-entries 'generation-sexps profile search-type search-values @@ -333,8 +340,10 @@ VAL is a boolean value." 'installed)) (defun guix-generation-list-show-search-paths (&optional type) - "Display 'search paths' environment variables for the marked generations. -If nothing is marked, use generation on the current line." + "Display \\='search paths\\=' environment variables for the marked generations. + +If nothing is marked, use generation on the current line. +Optionally get the search-path TYPE interactively." (interactive (list (guix-read-search-paths-type))) (guix-show-search-paths (guix-generation-list-marked-file-names) @@ -487,20 +496,22 @@ and its store file name." (string< (car a) (car b))))) (defun guix-generation-packages-buffer-name-default (profile generation) - "Return name of a buffer for displaying GENERATION's package outputs. + "Return name of a buffer to display GENERATION's package outputs. Use base name of PROFILE file name." (let ((profile-name (file-name-base (guix-file-name profile)))) (format "*Guix %s: generation %s*" profile-name generation))) (defun guix-generation-packages-buffer-name-long (profile generation) - "Return name of a buffer for displaying GENERATION's package outputs. + "Return name of a buffer to display GENERATION's package outputs. Use the full PROFILE file name." (format "*Guix generation %s (%s)*" generation profile)) (defun guix-generation-packages-buffer-name (profile generation) - "Return name of a buffer for displaying GENERATION's package outputs." + "Return name of a buffer to display GENERATION's package outputs. + +This is done for PROFILE." (funcall guix-generation-packages-buffer-name-function profile generation)) @@ -554,7 +565,7 @@ GENERATION is a generation number of the current profile." ;;;###autoload (defun guix-generations (&optional profile) "Display information about all generations. -If PROFILE is nil, use `guix-current-profile'. +If PROFILE is nil, use the variable `guix-current-profile'. Interactively with prefix, prompt for PROFILE." (interactive (list (guix-ui-read-generation-profile))) (let ((profile (guix-profile profile))) @@ -565,7 +576,7 @@ Interactively with prefix, prompt for PROFILE." ;;;###autoload (defun guix-last-generations (number &optional profile) "Display information about last NUMBER generations. -If PROFILE is nil, use `guix-current-profile'. +If PROFILE is nil, use the variable `guix-current-profile'. Interactively with prefix, prompt for PROFILE." (interactive (list (read-number "The number of last generations: ") @@ -579,7 +590,7 @@ Interactively with prefix, prompt for PROFILE." (defun guix-generations-by-time (from to &optional profile) "Display information about generations created between FROM and TO. FROM and TO should be time values. -If PROFILE is nil, use `guix-current-profile'. +If PROFILE is nil, use the variable `guix-current-profile'. Interactively with prefix, prompt for PROFILE." (interactive (list (guix-read-date "Find generations (from): ") diff --git a/elisp/guix-ui-license.el b/elisp/guix-ui-license.el index 9b50034..93cfcdb 100644 --- a/elisp/guix-ui-license.el +++ b/elisp/guix-ui-license.el @@ -1,4 +1,4 @@ -;;; guix-ui-license.el --- Interface for displaying licenses -*- lexical-binding: t -*- +;;; guix-ui-license.el --- Interface to display licenses -*- lexical-binding: t -*- ;; Copyright © 2016–2017 Alex Kost <alezost@HIDDEN> @@ -19,7 +19,7 @@ ;;; Commentary: -;; This file provides 'list'/'info' interface for displaying licenses of +;; This file provides 'list'/'info' interface to display licenses of ;; Guix packages. ;;; Code: @@ -38,14 +38,18 @@ :titles '((url . "URL"))) (defun guix-license-get-entries (search-type &rest args) - "Receive 'license' entries. -SEARCH-TYPE may be one of the following symbols: `all', `id', `name'." + "Receive \\='license\\=' entries. + +SEARCH-TYPE may be one of the following symbols: \\='all\\=',\\='id\\=', +\\='name\\='. ARGS are passed to `guix-make-guile-expression'." (guix-eval-read (apply #'guix-make-guile-expression 'license-sexps search-type args))) (defun guix-license-get-display (search-type &rest args) - "Search for licenses and show results." + "Search for licenses and show results. + +SEARCH-TYPE and ARGS are passed to `bui-list-get-display-entries'." (apply #'bui-list-get-display-entries 'guix-license search-type args)) @@ -87,7 +91,7 @@ SEARCH-TYPE may be one of the following symbols: `all', `id', `name'." (bui-newline)) (defun guix-license-insert-comment (entry) - "Insert 'comment' of a license ENTRY." + "Insert \\='comment\\=' of a license ENTRY." (let ((comment (bui-entry-value entry 'comment))) (if (and comment (string-match-p "^http" comment)) @@ -97,7 +101,7 @@ SEARCH-TYPE may be one of the following symbols: `all', `id', `name'." (bui-newline)) (defun guix-license-insert-file (entry) - "Insert button to open license definition." + "Insert button to open license definition of ENTRY." (let ((license (bui-entry-value entry 'name))) (bui-insert-button (guix-license-file) 'bui-file diff --git a/elisp/guix-ui-lint-checker.el b/elisp/guix-ui-lint-checker.el index 2878efb..293374c 100644 --- a/elisp/guix-ui-lint-checker.el +++ b/elisp/guix-ui-lint-checker.el @@ -1,4 +1,4 @@ -;;; guix-ui-lint-checker.el --- Interface for displaying package lint checkers -*- lexical-binding: t -*- +;;; guix-ui-lint-checker.el --- Interface to display package lint checkers -*- lexical-binding: t -*- ;; Copyright © 2019 Alex Kost <alezost@HIDDEN> @@ -39,20 +39,23 @@ :message-function 'guix-lint-checker-message) (defun guix-lint-checker-get-entries (search-type &rest args) - "Receive 'lint-checker' entries. -SEARCH-TYPE may be one of the following symbols: `all', `local', -`id', `name'." + "Receive \\='lint-checker\\=' entries. + +SEARCH-TYPE may be one of the following symbols: \\='all\\=', \\='local\\=', +\\='id\\=', \\='name\\='. ARGS are passed to `guix-make-guile-expression'." (guix-eval-read (apply #'guix-make-guile-expression 'lint-checker-sexps search-type args))) (defun guix-lint-checker-get-display (search-type &rest args) - "Search for lint checkers and show results." + "Search for lint checkers and show results. + +SEARCH-TYPE and ARGS are passed to `bui-list-get-display-entries'." (apply #'bui-list-get-display-entries 'guix-lint-checker search-type args)) (defun guix-lint-checker-message (entries search-type &rest args) - "Display a message after showing lint-checker ENTRIES." + "Display a message after showing lint-checker ENTRIES for SEARCH-TYPE." (when (null entries) (cond ((memq search-type '(all local)) diff --git a/elisp/guix-ui-messages.el b/elisp/guix-ui-messages.el index 159c658..e44d290 100644 --- a/elisp/guix-ui-messages.el +++ b/elisp/guix-ui-messages.el @@ -154,11 +154,11 @@ guix-message-generations-by-time)))) (defun guix-message-string-name (name) - "Return a quoted name string." + "Return a quoted NAME string." (concat "'" name "'")) (defun guix-message-string-entry-type (entry-type &optional plural) - "Return a string denoting an ENTRY-TYPE." + "Return a string denoting an ENTRY-TYPE, optionally using PLURAL." (cl-ecase entry-type (package (if plural "packages" "package")) @@ -181,8 +181,10 @@ (guix-message-string-entry-type entry-type 'plural))))) -(defun guix-message-packages-by-id (entries entry-type ids) - "Display a message for packages or outputs searched by IDS." +(defun guix-message-packages-by-id (entries _entry-type ids) + "Display a message for packages or outputs searched by IDS. + +ENTRIES are packages or outputs." (let ((count (length entries))) (if (= 0 count) (message (substitute-command-keys "\ @@ -199,7 +201,9 @@ Try \"\\[guix-packages-by-name-regexp]\" to find this package.") (message "")))) (defun guix-message-packages-by-name (entries entry-type names) - "Display a message for packages or outputs searched by NAMES." + "Display a message for ENTRIES searched by NAMES. + +ENTRIES are packages or outputs of ENTRY-TYPE." (let* ((count (length entries)) (str-beg (guix-message-string-entries count entry-type)) (str-end (if (cdr names) @@ -249,7 +253,7 @@ DEPEND-TYPE should a symbol `direct' or `all'." str-beg profile time-beg time-end))) (defun guix-message-outputs-by-diff (_ entries profiles) - "Display a message for outputs searched by PROFILES difference." + "Display a message for ENTRIES outputs searched by PROFILES difference." (let* ((count (length entries)) (str-beg (guix-message-string-entries count 'output)) (profile1 (car profiles)) diff --git a/elisp/guix-ui-package-location.el b/elisp/guix-ui-package-location.el index 568f972..ec82689 100644 --- a/elisp/guix-ui-package-location.el +++ b/elisp/guix-ui-package-location.el @@ -1,4 +1,4 @@ -;;; guix-ui-package-location.el --- Interface for displaying package locations -*- lexical-binding: t -*- +;;; guix-ui-package-location.el --- Interface to display package locations -*- lexical-binding: t -*- ;; Copyright © 2016–2018 Alex Kost <alezost@HIDDEN> @@ -19,7 +19,7 @@ ;;; Commentary: -;; This file provides a 'list' interface for displaying locations of Guix +;; This file provides a 'list' interface to display locations of Guix ;; packages. ;;; Code: @@ -33,7 +33,7 @@ (guix-define-groups package-location) (defun guix-package-location-get-entries () - "Receive 'package location' entries." + "Receive \\='package location\\=' entries." (guix-eval-read "(package-location-sexps)")) diff --git a/elisp/guix-ui-package.el b/elisp/guix-ui-package.el index 8dad304..f861820 100644 --- a/elisp/guix-ui-package.el +++ b/elisp/guix-ui-package.el @@ -1,4 +1,4 @@ -;;; guix-ui-package.el --- Interface for displaying packages -*- lexical-binding: t -*- +;;; guix-ui-package.el --- Interface to display packages -*- lexical-binding: t -*- ;; Copyright © 2014–2019, 2021 Alex Kost <alezost@HIDDEN> @@ -19,7 +19,7 @@ ;;; Commentary: -;; This file provides an interface for displaying packages and outputs +;; This file provides an interface to display packages and outputs ;; in 'list' and 'info' buffers, and commands for working with them. ;;; Code: @@ -44,23 +44,23 @@ (guix-ui-define-entry-type output) (defcustom guix-package-list-type 'output - "Define how to display packages in 'list' buffer. -Should be a symbol `package' or `output' (if `output', display each -output on a separate line; if `package', display each package on + "Define how to display packages in \\='list\\=' buffer. +Should be a symbol \\='package\\=' or \\='output\\=' (if \\='output\\=', display + each output on a separate line; if \\='package\\=', display each package on a separate line)." :type '(choice (const :tag "List of packages" package) (const :tag "List of outputs" output)) :group 'guix-package) (defcustom guix-package-use-name-at-point t - "If non-nil, \\[guix-packages-by-name] uses symbol at point as default + "If non-nil, \\[guix-packages-by-name] uses symbol at point as default. if it is a package name. If nil, then no default name is used." :type 'boolean :group 'guix-package) (defun guix-package-list-type () - "Return BUI list entry-type by `guix-package-list-type' variable." + "Return BUI list entry-type by variable `guix-package-list-type'." (guix-make-symbol guix-package-list-type)) ;; To avoid compilation warning: this variable is actually defined later @@ -70,7 +70,7 @@ If nil, then no default name is used." (defun guix-package-get-display (profile search-type &rest search-values) "Search for packages/outputs and show results. -If PROFILE is nil, use `guix-current-profile'. +If PROFILE is nil, use the variable `guix-current-profile'. See `guix-ui-get-entries' for the meaning of SEARCH-TYPE and SEARCH-VALUES. @@ -136,7 +136,7 @@ OUTPUTS, prompt for it." (car outputs))) (defun guix-read-package-entry-and-output (&optional entries) - "Return a list with package entry and output. + "Return a list with package ENTRIES and outputs. See `guix-read-package-entry-by-name' and `guix-read-package-output' for details." (let* ((entry (guix-read-package-entry-by-name entries)) @@ -183,9 +183,9 @@ PACKAGE-SPEC should have the following form: (ID [OUTPUT] ...)." (cl-defun guix-continue-package-operation-p (profile &key install upgrade remove) - "Return non-nil if a package operation should be continued. + "Return non-nil if a package operation should be continued in PROFILE. Ask a user if needed (see `guix-operation-confirm'). -INSTALL, UPGRADE, REMOVE are 'package action specifications'. +INSTALL, UPGRADE, REMOVE are \\='package action specifications\\='. See `guix-process-package-actions' for details." (or (null guix-operation-confirm) (let* ((entries (guix-ui-get-entries @@ -398,10 +398,10 @@ a newer version (probably it's time to update)." (((class color) (min-colors 8)) :foreground "blue")) "Face used for packages from the future. -'From the future' means there is a Guix package with this name +\\='From the future\\=' means there is a Guix package with this name but with an older version, i.e. the installed package is newer than available from Guix! This is rather unusual, it may happen, -for example, if you installed a package after 'guix pull' (see +for example, if you installed a package after \\='guix pull\\=' (see Info node `(guix) Invoking guix pull') and then you removed the pulled directory, so Guix searches for packages in its original directory with the old package recipes." @@ -509,7 +509,9 @@ formatted with this string, an action button is inserted.") (defun guix-package-info-get-entries (profile search-type &rest search-values) - "Return 'package' entries for displaying them in 'info' buffer." + "Return PROFILE \\='package\\=' entries to display them in `info' buffer. + +SEARCH-TYPE and SEARCH-VALUES define how to get the information." (guix-eval-read (guix-make-guile-expression 'package/output-sexps @@ -544,7 +546,7 @@ formatted with this string, an action button is inserted.") 'location location-file))))) (defun guix-package-info-insert-systems (systems entry) - "Insert supported package SYSTEMS at point." + "Insert supported package SYSTEMS for ENTRY at point." (if (require 'build-farm-build nil t) (bui-info-insert-value-format systems 'build-farm-system @@ -578,7 +580,7 @@ Face name is `guix-package-info-TYPE-inputs'." (guix-package-info-define-insert-inputs propagated) (defun guix-package-info-insert-name-buttons (values &optional button) - "Insert package name buttons at point. + "Insert package name BUTTON at point. Each element from VALUES should either be a specification string or (id spec) list." (bui-insert-non-nil values @@ -603,7 +605,8 @@ or (id spec) list." (concat "\n" bui-info-multiline-prefix))))) (defun guix-package-info-insert-name-button (value &optional button) - "Insert package name button at point." + "Insert package name BUTTON at point. +VALUE should either be a specification string or (id spec) list." (guix-package-info-insert-name-buttons (list value) button)) (defun guix-package-info-insert-outputs (outputs entry) @@ -634,7 +637,7 @@ or (id spec) list." (pull (guix-package-info-insert-pull-text name entry)))))) (defun guix-package-info-insert-unknown-text (name) - "Insert a message about unknown package at point." + "Insert a message about unknown package NAME at point." (insert "This package is ") (bui-format-insert "unknown" 'guix-package-info-unknown) (insert ", i.e. there are no packages with\n" @@ -658,7 +661,7 @@ is newer than the available package recipe for ") (insert ".")) (defun guix-package-info-insert-pull-text (name entry) - "Insert a message that NAME package was 'guix pull'-ed." + "Insert a message that NAME package ENTRY was \\='guix pull\\='-ed." (insert "This ") (bui-insert-button name 'guix-package-name) (insert " package was installed by 'guix pull' command") @@ -799,7 +802,7 @@ PACKAGE-ID is an ID of the package which store path to show." (bui-newline)))) (defun guix-package-info-insert-build-button (id full-name) - "Insert button to build a package defined by ID." + "Insert button to build package FULL-NAME defined by ID." (bui-insert-action-button "Build" (lambda (btn) @@ -911,7 +914,7 @@ SOURCE is a list of URLs." (bui-info-insert-value-indent source 'guix-package-source)))) (defun guix-package-info-redisplay-after-download () - "Redisplay an 'info' buffer after downloading the package source. + "Redisplay an `info' buffer after downloading the package source. This function is used to hide a \"Download\" button if needed." (when (buffer-live-p guix-package-info-download-buffer) (with-current-buffer guix-package-info-download-buffer @@ -1097,7 +1100,7 @@ See `guix-package-info-hidden' face for details." :group 'guix-package-list-faces) (defcustom guix-package-list-generation-marking-enabled nil - "If non-nil, allow putting marks in a list with 'generation packages'. + "If non-nil, allow putting marks in a list with \\='generation packages\\='. By default this is disabled, because it may be confusing. For example, a package is installed in some generation, so a user can @@ -1131,7 +1134,9 @@ likely)." (defun guix-package-list-get-entries (profile search-type &rest search-values) - "Return 'package' entries for displaying them in 'list' buffer." + "Return PROFILE \\='package\\=' entries to display them in \\='list\\=' buffer. + +SEARCH-TYPE and SEARCH-VALUES define how to get the information." (guix-eval-read (guix-make-guile-expression 'package/output-sexps @@ -1395,7 +1400,9 @@ Interactively, with prefix argument, prompt for NUMBER and ARGS." (defun guix-output-list-get-entries (profile search-type &rest search-values) - "Return 'output' entries for displaying them in 'list' buffer." + "Return PROFILE \\='output\\=' entries to display them in \\='list\\=' buffer. + +SEARCH-TYPE and SEARCH-VALUES define how to get the information." (guix-eval-read (guix-make-guile-expression 'package/output-sexps @@ -1516,7 +1523,7 @@ See `guix-package-lint' for details." NAME is a string with name specification. It may optionally contain a version number. Examples: \"guile\", \"guile@HIDDEN\". -If PROFILE is nil, use `guix-current-profile'. +If PROFILE is nil, use variable `guix-current-profile'. Interactively with prefix, prompt for PROFILE." (interactive (let (default-pkg) @@ -1536,7 +1543,7 @@ Interactively with prefix, prompt for PROFILE." PARAMS are package parameters that should be searched. If PARAMS are not specified, use `guix-package-search-params'. -If PROFILE is nil, use `guix-current-profile'. +If PROFILE is nil, use variable `guix-current-profile'. Interactively with prefix, prompt for PROFILE." (interactive (list (read-regexp "Regexp: " nil 'guix-package-search-history) @@ -1551,7 +1558,7 @@ Interactively with prefix, prompt for PROFILE." ;;;###autoload (defun guix-packages-by-name-regexp (regexp &optional profile) "Search for Guix packages matching REGEXP in a package name. -If PROFILE is nil, use `guix-current-profile'. +If PROFILE is nil, use variable `guix-current-profile'. Interactively with prefix, prompt for PROFILE." (interactive (list (read-string "Package name by regexp: " @@ -1567,7 +1574,7 @@ Interactively with prefix, prompt for PROFILE." (defun guix-packages-by-license (license &optional profile) "Display Guix packages with LICENSE. LICENSE is a license name string. -If PROFILE is nil, use `guix-current-profile'. +If PROFILE is nil, use variable `guix-current-profile'. Interactively with prefix, prompt for PROFILE." (interactive (list (guix-read-license-name) @@ -1577,7 +1584,7 @@ Interactively with prefix, prompt for PROFILE." ;;;###autoload (defun guix-packages-by-location (location &optional profile) "Display Guix packages placed in LOCATION file. -If PROFILE is nil, use `guix-current-profile'. +If PROFILE is nil, use variable `guix-current-profile'. Interactively with prefix, prompt for PROFILE." (interactive (list (guix-read-package-location-file) @@ -1587,7 +1594,7 @@ Interactively with prefix, prompt for PROFILE." ;;;###autoload (defun guix-package-from-file (file &optional profile) "Display Guix package that the code from FILE evaluates to. -If PROFILE is nil, use `guix-current-profile'. +If PROFILE is nil, use variable `guix-current-profile'. Interactively prompt for FILE (see also `guix-support-dired'). With prefix argument, prompt for PROFILE as well." (interactive @@ -1602,7 +1609,7 @@ With prefix argument, prompt for PROFILE as well." (defun guix-packages-from-system-config-file (file &optional profile) "Display Guix packages from the operating system configuration FILE. -Make sure FILE has a proper 'operating-system' declaration. You +Make sure FILE has a proper \\='operating-system\\=' declaration. You may check it, for example, by running the following shell command: guix system build --dry-run FILE @@ -1616,9 +1623,9 @@ Interactively, prompt for FILE (see also `guix-support-dired'). With prefix argument, prompt for PROFILE as well. Note: This command displays only those packages that are placed -in 'packages' field of the 'operating-system' declaration. An -installed system also contains packages installed by -services (like 'guix' or 'shepherd'). To see all the packages +in \\='packages\\=' field of the \\='operating-system\\=' declaration. +An installed system also contains packages installed by +services (like \\='guix\\=' or \\='shepherd\\='). To see all the packages installed in a system profile, use '\\[guix-installed-system-packages]' command." (interactive @@ -1631,7 +1638,7 @@ installed in a system profile, use ;;;###autoload (defun guix-installed-packages (&optional profile) "Display information about installed Guix packages. -If PROFILE is nil, use `guix-current-profile'. +If PROFILE is nil, use variable `guix-current-profile'. Interactively with prefix, prompt for PROFILE." (interactive (list (guix-ui-read-package-profile))) (guix-package-get-display profile 'installed)) @@ -1651,7 +1658,7 @@ Interactively with prefix, prompt for PROFILE." ;;;###autoload (defun guix-obsolete-packages (&optional profile) "Display information about obsolete (or unknown) Guix packages. -If PROFILE is nil, use `guix-current-profile'. +If PROFILE is nil, use variable `guix-current-profile'. Interactively with prefix, prompt for PROFILE." (interactive (list (guix-ui-read-package-profile))) (guix-package-get-display profile 'unknown)) @@ -1659,7 +1666,7 @@ Interactively with prefix, prompt for PROFILE." ;;;###autoload (defun guix-superseded-packages (&optional profile) "Display information about superseded Guix packages. -If PROFILE is nil, use `guix-current-profile'. +If PROFILE is nil, use variable `guix-current-profile'. Interactively with prefix, prompt for PROFILE." (interactive (list (guix-ui-read-package-profile))) (guix-package-get-display profile 'superseded)) @@ -1674,13 +1681,14 @@ Interactively with prefix, prompt for PROFILE." ;;;###autoload (defun guix-dependent-packages (packages &optional type profile) "Display Guix packages that depend on PACKAGES. -This is similar to 'guix refresh --list-dependent PACKAGES ...'. + +This is similar to \\='guix refresh --list-dependent PACKAGES ...\\='. See Info node `(guix) Invoking guix refresh' for details. -TYPE should be a symbol `all' or `direct'. Interactively, prompt +TYPE should be a symbol \\='all\\=' or \\='direct\\='. Interactively, prompt for it. -If PROFILE is nil, use `guix-current-profile'. +If PROFILE is nil, use variable `guix-current-profile'. Interactively with prefix, prompt for PROFILE." (interactive (list (guix-read-package-names) @@ -1691,14 +1699,14 @@ Interactively with prefix, prompt for PROFILE." ;;;###autoload (defun guix-hidden-packages (&optional profile) "Display hidden Guix packages. -If PROFILE is nil, use `guix-current-profile'." +If PROFILE is nil, use variable `guix-current-profile'." (interactive (list (guix-ui-read-package-profile))) (guix-package-get-display profile 'hidden)) ;;;###autoload (defun guix-all-packages (&optional profile) "Display all available Guix packages. -If PROFILE is nil, use `guix-current-profile'. +If PROFILE is nil, use variable `guix-current-profile'. Interactively with prefix, prompt for PROFILE." (interactive (list (guix-ui-read-package-profile))) (guix-package-get-display profile 'all)) diff --git a/elisp/guix-ui-profile.el b/elisp/guix-ui-profile.el index d05eb0f..2f17b38 100644 --- a/elisp/guix-ui-profile.el +++ b/elisp/guix-ui-profile.el @@ -1,4 +1,4 @@ -;;; guix-ui-profile.el --- Interface for displaying profiles -*- lexical-binding: t -*- +;;; guix-ui-profile.el --- Interface to display profiles -*- lexical-binding: t -*- ;; Copyright © 2016–2019 Alex Kost <alezost@HIDDEN> @@ -19,7 +19,7 @@ ;;; Commentary: -;; This file provides a 'list' interface for displaying Guix profiles +;; This file provides a 'list' interface to display Guix profiles ;; with `guix-profiles' command. ;; ;; `guix-profiles' variable controls what profiles are displayed. @@ -67,7 +67,7 @@ properly.") (guix-eval-read "(user-profiles)"))))))) (defun guix-profile->entry (profile) - "Return 'guix-profile' entry by PROFILE file-name." + "Return \\='guix-profile\\=' entry by PROFILE file-name." (let* ((profile (guix-profile profile)) (number-of-packages (guix-profile-number-of-packages profile))) @@ -81,7 +81,10 @@ properly.") (error "No packages in '%s'. Is it a real profile?" profile)))) (defun guix-profile-get-entries (&optional search-type &rest args) - "Return 'guix-profile' entries." + "Return \\='guix-profile\\=' entries. + +SEARCH-TYPE define how to get the information. If SEARCH-TYPE is not +\\='all\\=', use ARGS defines the candidate profiles." (let ((profiles (cond ((or (null search-type) (eq search-type 'all)) @@ -174,8 +177,10 @@ If nothing is marked, return a list with profile at point." (guix-generations (guix-profile-list-current-profile))) (defun guix-profile-list-show-search-paths (&optional type) - "Display 'search paths' environment variables for the marked profiles. -If nothing is marked, use profile on the current line." + "Display \\='search paths\\=' environment variables for the marked profiles. + +If nothing is marked, use profile on the current line. TYPE defines how to +get the information." (interactive (list (guix-read-search-paths-type))) (guix-show-search-paths (guix-profile-list-marked-profiles) type)) @@ -191,7 +196,7 @@ If nothing is marked, use profile on the current line." (if value "(current)" "")) (defun guix-profile-list-set-current () - "Set `guix-current-profile' to the profile on the current line." + "Set the variable `guix-current-profile' to the profile on the current line." (interactive) (guix-set-current-profile (guix-profile-list-current-profile)) ;; Now updating "Current" column is needed. It can be done simply by @@ -288,7 +293,7 @@ If nothing is marked, use profile on the current line." (bui-newline))) (defun guix-profile-info-insert-current (value entry) - "Insert boolean VALUE showing whether this profile is current." + "Insert boolean VALUE showing whether this profile ENTRY is current." (if value (bui-info-insert-value-format "Yes" 'guix-profile-info-current) (bui-info-insert-value-format "No" 'guix-profile-info-not-current) @@ -337,7 +342,9 @@ If nothing is marked, use profile on the current line." (guix-generations profile)) (defun guix-profile-info-show-search-paths (profile &optional type) - "Display 'search paths' environment variables for PROFILE." + "Display \\='search paths\\=' environment variables for PROFILE. + +TYPE defines how to get the information." (interactive (list (guix-read-profile-from-entries) (guix-read-search-paths-type))) @@ -351,7 +358,7 @@ If nothing is marked, use profile on the current line." (guix-apply-manifest profile file (current-buffer))) (defun guix-profile-info-set-current (profile) - "Set `guix-current-profile' to PROFILE." + "Set variable `guix-current-profile' to PROFILE." (interactive (list (guix-read-profile-from-entries))) (guix-set-current-profile profile) (bui-revert nil t)) @@ -361,7 +368,7 @@ If nothing is marked, use profile on the current line." (defun guix-profiles-show () "Display Guix profiles. -Unlike `guix-profiles', this command always recreates +Unlike the function `guix-profiles', this command always recreates `guix-profile-list-buffer-name' buffer." (interactive) (bui-list-get-display-entries 'guix-profile)) @@ -372,28 +379,28 @@ Unlike `guix-profiles', this command always recreates Switch to the `guix-profile-list-buffer-name' buffer if it already exists. -Modify `guix-profiles' variable to add more profiles." +Modify the variable `guix-profiles' to add more profiles." (interactive) (guix-switch-to-buffer-or-funcall guix-profile-list-buffer-name #'guix-profiles-show 'message)) ;;;###autoload (defun guix-system-profile () - "Display interface for `guix-system-profile'." + "Display interface for the variable `guix-system-profile'." (interactive) (bui-get-display-entries 'guix-profile 'info (list 'profile guix-system-profile))) ;;;###autoload (defun guix-home-profile () - "Display interface for `guix-home-profile'." + "Display interface for the variable `guix-home-profile'." (interactive) (bui-get-display-entries 'guix-profile 'info (list 'profile guix-home-profile))) ;;;###autoload (defun guix-current-profile () - "Display interface for `guix-current-profile'." + "Display interface for the variable `guix-current-profile'." (interactive) (bui-get-display-entries 'guix-profile 'info (list 'profile guix-current-profile))) diff --git a/elisp/guix-ui-service-location.el b/elisp/guix-ui-service-location.el index 14b0f58..23b244a 100644 --- a/elisp/guix-ui-service-location.el +++ b/elisp/guix-ui-service-location.el @@ -1,4 +1,4 @@ -;;; guix-ui-service-location.el --- Interface for displaying service locations -*- lexical-binding: t -*- +;;; guix-ui-service-location.el --- Interface to display service locations -*- lexical-binding: t -*- ;; Copyright © 2018 Alex Kost <alezost@HIDDEN> @@ -19,7 +19,7 @@ ;;; Commentary: -;; This file provides a 'list' interface for displaying locations of +;; This file provides a 'list' interface to display locations of ;; Guix System services. ;;; Code: @@ -33,7 +33,7 @@ (guix-define-groups service-location) (defun guix-service-location-get-entries () - "Receive 'service location' entries." + "Receive \\='service location\\=' entries." (guix-eval-read "(service-location-sexps)")) diff --git a/elisp/guix-ui-service.el b/elisp/guix-ui-service.el index a23fed9..a434178 100644 --- a/elisp/guix-ui-service.el +++ b/elisp/guix-ui-service.el @@ -1,4 +1,4 @@ -;;; guix-ui-service.el --- Interface for displaying services -*- lexical-binding: t -*- +;;; guix-ui-service.el --- Interface to display services -*- lexical-binding: t -*- ;; Copyright © 2017–2018 Alex Kost <alezost@HIDDEN> @@ -38,20 +38,26 @@ :message-function 'guix-service-message) (defun guix-service-get-entries (search-type search-values params) - "Receive 'service' entries. -SEARCH-TYPE may be one of the following symbols: `id', `all', -`name', `regexp', `location', `from-os-file', `from-expression'." + "Receive \\='service\\=' entries. +SEARCH-TYPE may be one of the following symbols: \\='id\\=', \\='all\\=', +\\='name\\=', \\='regexp\\=', \\='location\\=', \\='from-os-file\\=', +\\='from-expression\\='. SEARCH-TYPE and SEARCH-VALUES define how to +get the information. PARAMS is passed to `guix-make-guile-expression'." (guix-eval-read (guix-make-guile-expression 'service-sexps search-type search-values params))) (defun guix-service-get-display (search-type &rest search-values) - "Search for services and show results." + "Search for services and show results. + +SEARCH-TYPE and SEARCH-VALUES define how to get the information." (apply #'bui-list-get-display-entries 'guix-service search-type search-values)) (defun guix-service-message (entries search-type &rest search-values) - "Display a message after showing service ENTRIES." + "Display a message after showing service ENTRIES. + +SEARCH-TYPE and SEARCH-VALUES define how to get the information." (if (null entries) (message "Couldn't find services") (let ((count (length entries))) @@ -110,7 +116,7 @@ SEARCH-TYPE may be one of the following symbols: `id', `all', (defface guix-service-info-heading '((t :inherit bui-info-heading)) - "Face used for 'info' buffer heading (service name)." + "Face used for `info' buffer heading (service name)." :group 'guix-service-info-faces) (defface guix-service-info-description @@ -125,7 +131,7 @@ SEARCH-TYPE may be one of the following symbols: `id', `all', (defvar guix-service-info-required-params '(id) - "List of the required 'service' parameters. + "List of the required \\='service\\=' parameters. These parameters are received from the Scheme side along with the displayed parameters. @@ -143,7 +149,9 @@ identifying an entry.") 'add))) (defun guix-service-info-get-entries (search-type &rest search-values) - "Return 'service' entries for displaying them in 'info' buffer." + "Return \\='service\\=' entries to display them in `info' buffer. + +SEARCH-TYPE and SEARCH-VALUES define how to get the information." (guix-service-get-entries search-type search-values (cl-union guix-service-info-required-params @@ -194,7 +202,7 @@ identifying an entry.") (defvar guix-service-list-required-params '(id) - "List of the required 'service' parameters. + "List of the required \\='service\\=' parameters. These parameters are received from the Scheme side along with the displayed parameters. @@ -213,7 +221,9 @@ identifying an entry.") (bui-default-hint))) (defun guix-service-list-get-entries (search-type &rest search-values) - "Return 'service' entries for displaying them in 'list' buffer." + "Return \\='service\\=' entries to display them in \\='list\\=' buffer. + +SEARCH-TYPE and SEARCH-VALUES define how to get the information." (guix-service-get-entries search-type search-values (cl-union guix-service-list-required-params diff --git a/elisp/guix-ui-store-item.el b/elisp/guix-ui-store-item.el index 9abd261..13a2d78 100644 --- a/elisp/guix-ui-store-item.el +++ b/elisp/guix-ui-store-item.el @@ -1,6 +1,7 @@ -;;; guix-ui-store-item.el --- Interface for displaying store items -*- lexical-binding: t -*- +;;; guix-ui-store-item.el --- Interface to display store items -*- lexical-binding: t -*- ;; Copyright © 2018 Alex Kost <alezost@HIDDEN> +;; Copyright © 2025 Nicolas Graves <ngraves@HIDDEN> ;; This file is part of Emacs-Guix. @@ -93,21 +94,26 @@ of the file names are ignored." (defun guix-store-item-get-entries (search-type &optional search-values params) - "Receive 'store-item' entries. -SEARCH-TYPE may be one of the following symbols: `id', `live', -`dead', `referrers', `references', `derivers', `requisites', -`failures'." + "Receive \\='store-item\\=' entries. +SEARCH-TYPE may be one of the following symbols: \\='id\\=', \\='live\\=', +\\='dead\\=', \\='referrers\\=', \\='references\\=', \\='derivers\\=', +\\='requisites\\=',\\='failures\\='. SEARCH-TYPE and SEARCH-VALUES define how +to get the information. PARAMS are passed to `guix-make-guile-expression'." (guix-eval-read (guix-make-guile-expression 'store-item-sexps search-type search-values params))) (defun guix-store-item-get-display (search-type &rest search-values) - "Search for store items and show results." + "Search for store items and show results. + +SEARCH-TYPE and SEARCH-VALUES define how to get the information." (apply #'bui-list-get-display-entries 'guix-store-item search-type search-values)) (defun guix-store-item-message (entries search-type &rest search-values) - "Display a message after showing store item ENTRIES." + "Display a message after showing store item ENTRIES. + +SEARCH-TYPE and SEARCH-VALUES define how to get the information." (let ((count (length entries)) (val (car search-values))) (cl-flet ((msg (str &rest args) @@ -189,7 +195,7 @@ SEARCH-TYPE may be one of the following symbols: `id', `live', (defvar guix-store-item-info-required-params '(id) - "List of the required 'store-item' parameters. + "List of the required \\='store-item\\=' parameters. These parameters are received from the Scheme side along with the displayed parameters. @@ -197,7 +203,9 @@ Do not remove `id' from this info as it is required for identifying an entry.") (defun guix-store-item-info-get-entries (search-type &rest search-values) - "Return 'store-item' entries for displaying them in 'info' buffer." + "Return \\='store-item\\=' entries to display them in `info' buffer. + +SEARCH-TYPE and SEARCH-VALUES define how to get the information." (guix-store-item-get-entries search-type search-values (cl-union guix-store-item-info-required-params @@ -310,7 +318,7 @@ See `guix-store-item-info-insert-type-button' for the meaning of TYPE." (defvar guix-store-item-list-required-params '(id) - "List of the required 'store-item' parameters. + "List of the required \\='store-item\\=' parameters. These parameters are received from the Scheme side along with the displayed parameters. @@ -343,7 +351,9 @@ identifying an entry.") (bui-default-hint))) (defun guix-store-item-list-get-entries (search-type &rest search-values) - "Return 'store-item' entries for displaying them in 'list' buffer." + "Return \\='store-item\\=' entries to display them in \\='list\\=' buffer. + +SEARCH-TYPE and SEARCH-VALUES define how to get the information." (guix-store-item-get-entries search-type search-values (cl-union guix-store-item-list-required-params @@ -435,7 +445,7 @@ Interactively, prompt for a single file name." ;;;###autoload (defun guix-store-item-referrers (&rest file-names) "Display referrers of the FILE-NAMES store item. -This is analogous to 'guix gc --referrers FILE-NAMES' shell +This is analogous to \\='guix gc --referrers FILE-NAMES\\=' shell command. See Info node `(guix) Invoking guix gc'." (interactive (list (guix-store-file-name-read))) (apply #'guix-assert-files-exist file-names) @@ -444,7 +454,7 @@ command. See Info node `(guix) Invoking guix gc'." ;;;###autoload (defun guix-store-item-references (&rest file-names) "Display references of the FILE-NAMES store item. -This is analogous to 'guix gc --references FILE-NAMES' shell +This is analogous to \\='guix gc --references FILE-NAMES\\=' shell command. See Info node `(guix) Invoking guix gc'." (interactive (list (guix-store-file-name-read))) (apply #'guix-assert-files-exist file-names) @@ -453,7 +463,7 @@ command. See Info node `(guix) Invoking guix gc'." ;;;###autoload (defun guix-store-item-requisites (&rest file-names) "Display requisites of the FILE-NAMES store item. -This is analogous to 'guix gc --requisites FILE-NAMES' shell +This is analogous to \\='guix gc --requisites FILE-NAMES\\=' shell command. See Info node `(guix) Invoking guix gc'." (interactive (list (guix-store-file-name-read))) (apply #'guix-assert-files-exist file-names) @@ -462,7 +472,7 @@ command. See Info node `(guix) Invoking guix gc'." ;;;###autoload (defun guix-store-item-derivers (&rest file-names) "Display derivers of the FILE-NAMES store item. -This is analogous to 'guix gc --derivers FILE-NAMES' shell +This is analogous to \\='guix gc --derivers FILE-NAMES\\=' shell command. See Info node `(guix) Invoking guix gc'." (interactive (list (guix-store-file-name-read))) (apply #'guix-assert-files-exist file-names) @@ -471,7 +481,7 @@ command. See Info node `(guix) Invoking guix gc'." ;;;###autoload (defun guix-store-failures () "Display store items corresponding to cached build failures. -This is analogous to 'guix gc --list-failures' shell command. +This is analogous to \\='guix gc --list-failures\\=' shell command. See Info node `(guix) Invoking guix gc'." (interactive) (guix-store-item-get-display 'failures)) @@ -479,7 +489,7 @@ See Info node `(guix) Invoking guix gc'." ;;;###autoload (defun guix-store-live-items () "Display live store items. -This is analogous to 'guix gc --list-live' shell command. +This is analogous to \\='guix gc --list-live\\=' shell command. See Info node `(guix) Invoking guix gc'." (interactive) (guix-store-item-get-display 'live)) @@ -487,7 +497,7 @@ See Info node `(guix) Invoking guix gc'." ;;;###autoload (defun guix-store-dead-items () "Display dead store items. -This is analogous to 'guix gc --list-dead' shell command. +This is analogous to \\='guix gc --list-dead\\=' shell command. See Info node `(guix) Invoking guix gc'." (interactive) (guix-store-item-get-display 'dead)) diff --git a/elisp/guix-ui-system-generation.el b/elisp/guix-ui-system-generation.el index f5dba56..5524957 100644 --- a/elisp/guix-ui-system-generation.el +++ b/elisp/guix-ui-system-generation.el @@ -1,4 +1,4 @@ -;;; guix-ui-system-generation.el --- Interface for displaying system generations -*- lexical-binding: t -*- +;;; guix-ui-system-generation.el --- Interface to display system generations -*- lexical-binding: t -*- ;; Copyright © 2016–2018 Alex Kost <alezost@HIDDEN> @@ -19,7 +19,7 @@ ;;; Commentary: -;; This file provides an interface for displaying system generations +;; This file provides an interface to display system generations ;; in 'list' and 'info' buffers, and commands for working with them. ;;; Code: @@ -39,10 +39,10 @@ (rx-to-string `(and ,guix-store-directory "/" (+ alnum) "-shepherd.conf") t) - "Regexp matching 'shepherd.conf' file placed in the store.") + "Regexp matching \\='shepherd.conf\\=' file placed in the store.") (defun guix-system-generation-add-kernel-config (entry) - "Return ENTRY with 'kernel-config' parameter." + "Return ENTRY with \\='kernel-config\\=' parameter." (let* ((kernel (bui-entry-value entry 'kernel)) (dir (file-name-directory kernel)) ;; Nowadays kernel config has ".config" name, but before @@ -54,7 +54,7 @@ ,@entry))) (defun guix-system-generation-add-shepherd-config (entry) - "Return ENTRY with 'shepherd-config' parameter." + "Return ENTRY with \\='shepherd-config\\=' parameter." (let* ((file-name (bui-entry-value entry 'file-name)) (boot-file (expand-file-name "boot" file-name))) (with-temp-buffer @@ -68,7 +68,10 @@ (defun guix-system-generation-get-entries (profile search-type search-values params) - "Return 'system-generation' entries." + "Return PROFILE \\='system-generation\\=' entries. + +SEARCH-TYPE and SEARCH-VALUES define how to get the information. +PARAMS are passed to `guix-generation-get-entries' after processing." (let* ((add-kernel-config? (or (null params) (memq 'kernel-config params))) (add-shepherd-config? (or (null params) @@ -129,7 +132,10 @@ SEARCH-VALUES." (defun guix-system-generation-info-get-entries (profile search-type &rest search-values) - "Return 'system-generation' entries for displaying them in 'info' buffer." + "Return \\='system-generation\\=' entries to display them in `info' buffer. + +SEARCH-TYPE and SEARCH-VALUES define how to get the information for +profile PROFILE." (guix-system-generation-get-entries profile search-type search-values (cl-union guix-system-generation-info-required-params @@ -165,7 +171,9 @@ SEARCH-VALUES." (defun guix-system-generation-list-get-entries (profile search-type &rest search-values) - "Return 'system-generation' entries for displaying them in 'list' buffer." + "Return \\='system-generation\\=' entries to display them in \\='list\\=' buffer. + +SEARCH-TYPE and SEARCH-VALUES define how to get the information for PROFILE." (guix-system-generation-get-entries profile search-type search-values (cl-union guix-system-generation-list-required-params diff --git a/elisp/guix-ui-system.el b/elisp/guix-ui-system.el index 4cfc1e3..4e228e2 100644 --- a/elisp/guix-ui-system.el +++ b/elisp/guix-ui-system.el @@ -40,8 +40,11 @@ (number-of-services . "Services"))) (defun guix-system-get-entries (search-type search-values params) - "Receive 'system' entries. -SEARCH-TYPE may be one of the following symbols: `from-file'." + "Receive \\='system\\=' entries. + +SEARCH-TYPE may be one of the following symbols: \\='from-file\\='. +SEARCH-TYPE and SEARCH-VALUES define how to get the information. +PARAMS are passed to `guix-make-guile-expression'." (let ((sexps (guix-eval-read (guix-make-guile-expression 'system-sexps search-type search-values params)))) @@ -53,7 +56,9 @@ SEARCH-TYPE may be one of the following symbols: `from-file'." sexps))) (defun guix-system-get-display (search-type &rest search-values) - "Search for systems and show results." + "Search for systems and show results. + +SEARCH-TYPE and SEARCH-VALUES define how to get the information." (bui-get-display-entries 'guix-system 'info (cl-list* search-type search-values))) @@ -76,7 +81,9 @@ SEARCH-TYPE may be one of the following symbols: `from-file'." (initrd-modules format (format)))) (defun guix-system-info-get-entries (search-type &rest search-values) - "Return 'system' entries for displaying them in 'info' buffer." + "Return \\='system\\=' entries to display them in `info' buffer. + +SEARCH-TYPE and SEARCH-VALUES define how to get the information." (guix-system-get-entries search-type search-values (bui-info-displayed-params 'guix-system))) @@ -111,7 +118,7 @@ SEARCH-TYPE may be one of the following symbols: `from-file'." ;;;###autoload (defun guix-system-from-file (file) - "Display info on 'operating-system' declaration from FILE. + "Display info on \\='operating-system\\=' declaration from FILE. See `guix-packages-from-system-config-file' for more details on FILE. Interactively, prompt for FILE (see also `guix-support-dired')." (interactive (list (guix-read-os-file-name))) diff --git a/elisp/guix-ui.el b/elisp/guix-ui.el index bc4b6df..a4ff453 100644 --- a/elisp/guix-ui.el +++ b/elisp/guix-ui.el @@ -50,14 +50,14 @@ See `bui-hint' for details.") guix-ui-current profile search-type search-values) (defun guix-ui-read-package-profile () - "Return `guix-current-profile' or prompt for it. + "Return variable `guix-current-profile' or prompt for it. This function is intended for using in `interactive' forms." (if current-prefix-arg (guix-read-package-profile) guix-current-profile)) (defun guix-ui-read-generation-profile () - "Return `guix-current-profile' or prompt for it. + "Return variable `guix-current-profile' or prompt for it. This function is intended for using in `interactive' forms." (if current-prefix-arg (guix-read-generation-profile) @@ -83,7 +83,7 @@ with all available parameters." profile entry-type search-type search-values params))) (defun guix-ui-list-describe (&rest ids) - "Describe 'ui' entries with IDS (list of identifiers)." + "Describe \\='ui\\=' entries with IDS (list of identifiers)." (bui-get-display-entries (bui-current-entry-type) 'info (cl-list* (guix-ui-current-profile) 'id ids) @@ -116,7 +116,7 @@ The function is called with 2 arguments: BASE-NAME and PROFILE." (guix-compose-buffer-name base-name profile)) (defun guix-ui-buffer-name (base-name profile) - "Return Guix buffer name based on BASE-NAME and profile. + "Return Guix buffer name based on BASE-NAME and PROFILE. See `guix-ui-buffer-name-function' for details." (funcall guix-ui-buffer-name-function base-name profile)) @@ -141,7 +141,7 @@ This macro also defines: (defun ,message-fun (entries profile search-type &rest search-values) ,(format "\ -Display a message after showing '%s' entries. +Display a message after showing \\='%s\\=' entries. This is a wrapper for `guix-result-message'." entry-type-str) (guix-result-message profile entries ',entry-type @@ -154,7 +154,7 @@ This is a wrapper for `guix-result-message'." ,@args)))) (defmacro guix-ui-define-interface (entry-type buffer-type &rest args) - "Define BUFFER-TYPE interface for displaying ENTRY-TYPE entries. + "Define BUFFER-TYPE interface to display ENTRY-TYPE entries. Remaining arguments (ARGS) should have a form [KEYWORD VALUE] ... In the following description TYPE means ENTRY-TYPE-BUFFER-TYPE. @@ -200,7 +200,7 @@ Along with the mentioned definitions, this macro also defines: (defvar ,required-var ,required-val ,(format "\ -List of the required '%s' parameters. +List of the required \\='%s\\=' parameters. These parameters are received from the Scheme side along with the displayed parameters. @@ -210,7 +210,7 @@ identifying an entry." (defun ,buffer-name-fun (profile &rest _) ,(format "\ -Return a name of '%s' buffer for displaying '%s' entries. +Return a name of \\='%s\\=' buffer to display \\='%s\\=' entries. See `guix-ui-buffer-name' for details." buffer-type-str entry-type-str) (guix-ui-buffer-name ,buffer-name-val profile)) diff --git a/elisp/guix-utils.el b/elisp/guix-utils.el index 02570aa..5535eb9 100644 --- a/elisp/guix-utils.el +++ b/elisp/guix-utils.el @@ -67,17 +67,17 @@ This function is similar to `shell-quote-argument', but less strict." (rx (not (any alnum "-=,./\n"))) "\\\\\\&" argument)))) (defun guix-command-symbol (&optional args) - "Return symbol by concatenating 'guix-command' and ARGS (strings)." + "Return symbol by concatenating \\='guix-command\\=' and ARGS (strings)." (intern (guix-concat-strings (cons "guix-command" args) "-"))) (defun guix-command-string (&optional args) - "Return 'guix ARGS ...' string with quoted shell arguments." + "Return \\='guix ARGS ...\\=' string with quoted shell arguments." (let ((args (mapcar #'guix-shell-quote-argument args))) (guix-concat-strings (cons "guix" args) " "))) (defun guix-copy-command-as-kill (args &optional no-message?) - "Put 'guix ARGS ...' string into `kill-ring'. -See also `guix-copy-as-kill'." + "Put \\='guix ARGS ...\\=' string into `kill-ring'. +See also `bui-copy-as-kill' for NO-MESSAGE?." (bui-copy-as-kill (guix-command-string args) no-message?)) (defun guix-compose-buffer-name (base-name postfix) @@ -106,37 +106,36 @@ If BASE-NAME is wrapped by '*', then the result is: (concat "*" name-body ": " postfix "*") (concat base-name ": " postfix))))) -(defun guix-completing-read (prompt table &optional predicate - require-match initial-input - hist def inherit-input-method) - "Same as `completing-read' but return nil instead of an empty string." - (let ((res (completing-read prompt table predicate - require-match initial-input - hist def inherit-input-method))) +(defun guix-completing-read (prompt table &rest completing-read-rest) + "Same as `completing-read' but return nil instead of an empty string. + +Pass PROMPT, TABLE and the COMPLETING-READ-REST arguments to `completing-read'." + (let ((res (apply #'completing-read prompt table completing-read-rest))) (unless (string= "" res) res))) -(defun guix-completing-read-multiple (prompt table &optional predicate - require-match initial-input - hist def inherit-input-method) - "Same as `completing-read-multiple' but remove duplicates in result." +(defun guix-completing-read-multiple (prompt table &rest completing-read-rest) + "Same as `completing-read-multiple', but remove duplicates in result. + +Pass PROMPT, TABLE and the COMPLETING-READ-REST arguments to +`completing-read-multiple'." (cl-remove-duplicates - (completing-read-multiple prompt table predicate - require-match initial-input - hist def inherit-input-method) + (apply #'completing-read-multiple prompt table completing-read-rest) :test #'string=)) (declare-function org-read-date "org" t) (defun guix-read-date (prompt) - "Prompt for a date or time using `org-read-date'. -Return time value." + "PROMPT for a date or time using `org-read-date'. +Return a time value." (require 'org) (org-read-date nil t nil prompt)) (declare-function pcmpl-unix-user-names "pcmpl-unix") (defun guix-read-user-name (&optional prompt initial-input) - "Prompt for a user name using completions." + "Prompt for a user name using completions. + +Optionally takes PROMPT and INITIAL-INPUT arguments of `completing-read'." (require 'pcmpl-unix) (guix-completing-read (or prompt "User name: ") (pcmpl-unix-user-names) @@ -246,12 +245,12 @@ See `guix-modify' for details." objects)) (defun guix-make-symbol (&rest symbols) - "Return `guix-SYMBOLS-...' symbol." + "Return \\='guix-symbols-...\\=' SYMBOLS." (apply #'bui-make-symbol 'guix symbols)) (defmacro guix-define-groups (name &rest args) - "Define `guix-NAME' and `guix-NAME-faces' customization groups. -See `bui-define-groups' for details." + "Define `guix-name' and `guix-name-faces' customization groups from NAME. +See `bui-define-groups' for ARGS and details." (declare (indent 1)) `(bui-define-groups ,(bui-make-symbol 'guix name) :parent-group guix @@ -309,30 +308,29 @@ argument." "Expand FILE-NAME and remove trailing slash if needed." (directory-file-name (expand-file-name file-name))) -(defun guix-read-file-name (&optional prompt dir default-filename - mustmatch initial predicate) +(defun guix-read-file-name (&optional prompt &rest read-file-name-rest) "Read file name. This function is similar to `read-file-name' except it also -expands the file name." +expands the file name. Pass PROMPT and READ-FILE-NAME-REST arguments +to `read-file-name'." (expand-file-name - (read-file-name (or prompt "File: ") - dir default-filename - mustmatch initial predicate))) + (apply #'read-file-name (or prompt "File: ") read-file-name-rest))) (declare-function dired-get-filename "dired" t) -(defun guix-read-file-name-maybe (&optional prompt dir default-filename - mustmatch initial predicate) +(defun guix-read-file-name-maybe (&optional prompt &rest read-file-name-rest) "Read file name or get it from `dired-mode'. -See `guix-support-dired' for details. See also `guix-read-file-name'." +See `guix-support-dired' for details. See also `guix-read-file-name'. +This function is similar to `read-file-name' except it also +expands the file name. Pass PROMPT and READ-FILE-NAME-REST arguments +to `read-file-name'." (if (and guix-support-dired (derived-mode-p 'dired-mode)) (dired-get-filename) - (guix-read-file-name prompt dir default-filename - mustmatch initial predicate))) + (apply #'guix-read-file-name prompt read-file-name-rest))) (defun guix-read-os-file-name () - "Read file name with Guix System 'operating-system' declaration." + "Read file name with Guix System \\='operating-system\\=' declaration." (guix-read-file-name-maybe "System configuration file: ")) (defun guix-find-file (file) @@ -373,8 +371,7 @@ example: However, if COMPILED is non-nil, the directory with compiled (.go) files is returned, for example: - ROOT/lib/guile/2.2/site-ccache -" + ROOT/lib/guile/2.2/site-ccache" (let* ((dir (expand-file-name (if compiled "lib/guile" "share/guile/site") @@ -398,7 +395,7 @@ If nil, it will be set when it will be used the first time. This directory will be deleted on Emacs exit.") (defun guix-temporary-directory () - "Return `guix-temporary-directory' (set it if needed)." + "Return the variable `guix-temporary-directory' (set it if needed)." (or (and guix-temporary-directory (file-exists-p guix-temporary-directory) guix-temporary-directory) @@ -406,7 +403,7 @@ This directory will be deleted on Emacs exit.") (make-temp-file "emacs-guix-" 'dir)))) (defun guix-temporary-file-name (name &optional suffix) - "Return file NAME from `guix-temporary-directory'. + "Return file NAME from the variable `guix-temporary-directory'. If such file name already exists, or if SUFFIX string is specified, make the returned name unique." (let* ((file-name (expand-file-name name (guix-temporary-directory))) @@ -418,7 +415,7 @@ specified, make the returned name unique." file-name))) (defun guix-delete-temporary-directory () - "Delete `guix-temporary-directory' if it exists." + "Delete the variable `guix-temporary-directory' if it exists." (when (and guix-temporary-directory (file-exists-p guix-temporary-directory)) (condition-case nil @@ -458,7 +455,9 @@ If nil, do not perform refontifying.") "A string or list of strings specifying switches to be passed to diff.") (defun guix-diff (old new &optional switches no-async) - "Same as `diff', but use `guix-diff-switches' as default." + "Same as `diff', but use `guix-diff-switches' as default. + +OLD, NEW, SWITCHES and NO-ASYNC are passed to `diff'." (diff old new (or switches guix-diff-switches) no-async)) @@ -468,7 +467,8 @@ If nil, do not perform refontifying.") &optional require-match default) "Define NAME function to read from minibuffer. READ-FUN may be `completing-read', `completing-read-multiple' or -another function with the same arguments." +another function with the same arguments. COMPLETIONS, PROMPT, +REQUIRE-MATCH and DEFAULT are passed to this function." (declare (indent 1)) `(defun ,name (&optional prompt initial-contents) (,read-fun (or prompt ,prompt) @@ -558,7 +558,7 @@ keywords are available: (defmacro guix-memoized-defun (name arglist docstring &rest body) "Define a memoized function NAME. -See `defun' for the meaning of arguments." +See `defun' for the meaning of arguments ARGLIST, DOCSTRING and BODY." (declare (doc-string 3) (indent 2)) `(defalias ',name (guix-memoize (lambda ,arglist ,@body)) @@ -572,7 +572,8 @@ See `defun' for the meaning of arguments." docstring))) (defmacro guix-memoized-defalias (symbol definition &optional docstring) - "Set SYMBOL's function definition to memoized version of DEFINITION." + "Set SYMBOL's function definition to memoized version of DEFINITION. +Optionally provide DOCSTRING." (declare (doc-string 3) (indent 1)) `(defalias ',symbol (guix-memoize #',definition) -- 2.48.1
guix-patches@HIDDEN
:bug#76699
; Package guix-patches
.
Full text available.Received: (at submit) by debbugs.gnu.org; 3 Mar 2025 02:07:08 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Mar 02 21:07:08 2025 Received: from localhost ([127.0.0.1]:40702 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tovD0-0007OX-Su for submit <at> debbugs.gnu.org; Sun, 02 Mar 2025 21:07:08 -0500 Received: from lists.gnu.org ([2001:470:142::17]:41556) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <ngraves@HIDDEN>) id 1tovCv-0007N8-Rd for submit <at> debbugs.gnu.org; Sun, 02 Mar 2025 21:07:05 -0500 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 <ngraves@HIDDEN>) id 1tovCo-0001PV-AT for guix-patches@HIDDEN; Sun, 02 Mar 2025 21:06:54 -0500 Received: from 3.mo583.mail-out.ovh.net ([46.105.40.108]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <ngraves@HIDDEN>) id 1tovCk-00089P-JU for guix-patches@HIDDEN; Sun, 02 Mar 2025 21:06:54 -0500 Received: from director4.ghost.mail-out.ovh.net (unknown [10.109.148.200]) by mo583.mail-out.ovh.net (Postfix) with ESMTP id 4Z5hy65pQpz1RTK for <guix-patches@HIDDEN>; Mon, 3 Mar 2025 02:06:38 +0000 (UTC) Received: from ghost-submission-5b5ff79f4f-5dcn8 (unknown [10.108.54.148]) by director4.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 699571FE3F; Mon, 3 Mar 2025 02:06:38 +0000 (UTC) Received: from ngraves.fr ([37.59.142.109]) by ghost-submission-5b5ff79f4f-5dcn8 with ESMTPSA id krePAa4OxWeWVgAA6Nx3uQ (envelope-from <ngraves@HIDDEN>); Mon, 03 Mar 2025 02:06:38 +0000 Authentication-Results: garm.ovh; auth=pass (GARM-109S00344ba3a8c-e5bc-4fbb-b882-2590c6506c46, 3FD0527DE2CE9D3C35B0E9483E243F320C79A24B) smtp.auth=ngraves@HIDDEN X-OVh-ClientIp: 90.92.117.144 From: Nicolas Graves <ngraves@HIDDEN> To: guix-patches@HIDDEN Subject: [PATCH emacs-guix 0/4] Refresh package emacs-guix Date: Mon, 3 Mar 2025 03:01:21 +0100 Message-ID: <20250303020636.3461-1-ngraves@HIDDEN> X-Mailer: git-send-email 2.48.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Ovh-Tracer-Id: 1057782965305139938 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: 0 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgdeljeekjecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfqggfjpdevjffgvefmvefgnecuuegrihhlohhuthemucehtddtnecunecujfgurhephffvvefufffkofgggfestdekredtredttdenucfhrhhomheppfhitgholhgrshcuifhrrghvvghsuceonhhgrhgrvhgvshesnhhgrhgrvhgvshdrfhhrqeenucggtffrrghtthgvrhhnpeeluddthfdugeefgfeuudfgvefgudejvdeuuddtffdthffhgedtudfgvdefgeffueenucffohhmrghinhepshhrrdhhthdpshgtmhdrnhgvgihtpdgvlhdrihhnnecukfhppeduvdejrddtrddtrddupdeltddrledvrdduudejrddugeegpdefjedrheelrddugedvrddutdelnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepuddvjedrtddrtddruddpmhgrihhlfhhrohhmpehnghhrrghvvghssehnghhrrghvvghsrdhfrhdpnhgspghrtghpthhtohepuddprhgtphhtthhopehguhhigidqphgrthgthhgvshesghhnuhdrohhrghdpoffvtefjohhsthepmhhoheekfegmpdhmohguvgepshhmthhpohhuth DKIM-Signature: a=rsa-sha256; bh=4JrvJbu2sztRSY7PkBfnCEutvsQUYyeIlPVPYqBahjA=; c=relaxed/relaxed; d=ngraves.fr; h=From; s=ovhmo4487190-selector1; t=1740967598; v=1; b=IsfxHOgZpTljO2JfH0vkK8V/XOsG/nioUvDp/+9WmgVl9HXwUfVbtBcmSoZlF4F8a9PXbFHP klOa/X0LUu7MY/Ft2OLJ1GJrudMsd5as13b+J9xYT9ETApxJ4HPs/SIUza8bjPB6PGCPHWyzYDe ZWqGcMW3wUM5GkdHiRxwNKxsOFNDlMberbVdCNxhLd4ox+Ya3QTcHO6gXG9M2o7VVMtyj5Ncwrb Z6oFSLUGDCxZ8XMQtQn73MQK4nP4gXSk50e0YWfy0WZqnnUTJlqjRKxA1nd5paPQDiGe6NvoS61 swVEQKnnbG7hjuonEOIsQPtRVBrc366XWmzCAdnuvX0zQ== Received-SPF: pass client-ip=46.105.40.108; envelope-from=ngraves@HIDDEN; helo=3.mo583.mail-out.ovh.net 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, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: submit Cc: ludo@HIDDEN, Nicolas Graves <ngraves@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.0 (/) This is a series of refreshing commits for emacs-guix. This is done in an effort to port emacs-guix to guile-ares-rs/emacs-arei backend, currently in progress here : https://git.sr.ht/~ngraves/emacs-guix This is still a WIP, I'd still like to replace old references to guix-environment by references to guix shell at least. I'm not able to test all changes, since guix-command seems to be broken (before this patch series I mean). Thus, I invite users of emacs-guix to try that series and report any bug that could have been caused by it. Nicolas Graves (5): Switch to transient Improve most docstrings Remove dash dependency, introduce llama library Use a development channel instead of guix.scm Update NEWS .guix-channel | 3 + NEWS | 10 + README | 2 +- guix.scm => channel/emacs-guix-channel.scm | 69 +++---- channel/emacs-guix-channel.scm.next | 104 ++++++++++ configure.ac | 32 +-- doc/emacs-guix.texi | 59 +++--- doc/htmlxref.cnf | 6 +- elisp/guix-about.el | 2 +- elisp/guix-build-config.el.in | 7 +- elisp/guix-build-log.el | 28 +-- elisp/guix-command.el | 162 ++++++++------- elisp/guix-config.el | 2 +- elisp/guix-default-config.el | 2 +- elisp/guix-external.el | 12 +- elisp/guix-geiser.el | 9 +- elisp/guix-graph.el | 2 +- elisp/guix-guile.el | 6 +- elisp/guix-help-vars.el | 37 ++-- elisp/guix-help.el | 15 +- elisp/guix-license.el | 3 +- elisp/guix-misc.el | 24 ++- elisp/guix-package.el | 2 +- elisp/guix-pcomplete.el | 15 +- elisp/guix-popup.el | 227 --------------------- elisp/guix-prettify.el | 4 +- elisp/guix-profiles.el | 32 +-- elisp/guix-read.el | 8 +- elisp/guix-repl.el | 43 ++-- elisp/guix-transient.el | 187 +++++++++++++++++ elisp/guix-ui-generation.el | 62 +++--- elisp/guix-ui-license.el | 18 +- elisp/guix-ui-lint-checker.el | 15 +- elisp/guix-ui-messages.el | 16 +- elisp/guix-ui-package-location.el | 6 +- elisp/guix-ui-package.el | 104 +++++----- elisp/guix-ui-profile.el | 65 +++--- elisp/guix-ui-service-location.el | 6 +- elisp/guix-ui-service.el | 32 ++- elisp/guix-ui-store-item.el | 46 +++-- elisp/guix-ui-system-generation.el | 24 ++- elisp/guix-ui-system.el | 17 +- elisp/guix-ui.el | 16 +- elisp/guix-utils.el | 92 ++++----- elisp/guix.el | 2 +- elisp/local.mk | 10 +- 46 files changed, 895 insertions(+), 750 deletions(-) create mode 100644 .guix-channel rename guix.scm => channel/emacs-guix-channel.scm (50%) create mode 100644 channel/emacs-guix-channel.scm.next delete mode 100644 elisp/guix-popup.el create mode 100644 elisp/guix-transient.el -- 2.48.1
Nicolas Graves <ngraves@HIDDEN>
:guix-patches@HIDDEN
.
Full text available.guix-patches@HIDDEN
:bug#76699
; Package guix-patches
.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.