From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Visuwesh Newsgroups: gmane.emacs.devel Subject: Re: [NonGNU ELPA] New packages: elquery, file-ring, metamorph Date: Mon, 28 Mar 2022 12:29:17 +0530 Message-ID: <878rsuh8ai.fsf@gmail.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="34512"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) Cc: emacs-devel@gnu.org To: Adam Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Mar 28 13:11:54 2022 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nYnHu-0008lg-89 for ged-emacs-devel@m.gmane-mx.org; Mon, 28 Mar 2022 13:11:54 +0200 Original-Received: from localhost ([::1]:34544 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nYnHt-0007XJ-9M for ged-emacs-devel@m.gmane-mx.org; Mon, 28 Mar 2022 07:11:53 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:58148) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nYjLY-000067-Ts for emacs-devel@gnu.org; Mon, 28 Mar 2022 02:59:24 -0400 Original-Received: from [2607:f8b0:4864:20::1041] (port=36484 helo=mail-pj1-x1041.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nYjLW-0002Ee-Im for emacs-devel@gnu.org; Mon, 28 Mar 2022 02:59:23 -0400 Original-Received: by mail-pj1-x1041.google.com with SMTP id p4-20020a17090ad30400b001c7ca87c05bso9082213pju.1 for ; Sun, 27 Mar 2022 23:59:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:references:mail-followup-to:date:in-reply-to :message-id:user-agent:mime-version:content-transfer-encoding; bh=DmptkDuRPxd5uRcC5SvDAhkqJcd69EPhey+dtbZPVeE=; b=mQUO2asNGu8AZ+T4hX0sxhXep6RJVgHRTxQMZnFETjHtht32cnB6E0ZxkzrGQwduET q1q0S592QuoN7sYvlomr2jQwdhd8BpRv4oZMADMI4px45nO6rmhwqcBKIyuXZcHXREWz iAiShfR9EF+O6jjYoWMkf0/AKq+8K77mkqVTqVWjpTCJuU9WqUscAzx/m4k5UaNXicAP +88dsZzDq1A5bNPECCMqCgexg7+4JJ4nmpwGblSzUWuPqLrX1naVYfCnBesaKNAsraQk jffMMxg/Zx0B3IkdZB/Oyi+buK2pz2Gqw1KzkshRKY0ZNK5YFohhk5g+Bl0AGo80Mf8n Ec3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:references:mail-followup-to :date:in-reply-to:message-id:user-agent:mime-version :content-transfer-encoding; bh=DmptkDuRPxd5uRcC5SvDAhkqJcd69EPhey+dtbZPVeE=; b=nQysNTsNi/uJEL3+d3wnKrHtR20gGc0gk9ZFfOFBZklSpl7YJ++8XSJ/swEwgx1sWL EGyNNocgajVd4C/ScDCGBR3Pyoy180ycVuXUt9uEsHlBLCZO3QtVDE3WESnueoqWWdl/ /YauyORf9gBLjfK7N4kOveuqAB3I4ZUx8Yy8H3qYXC6ZJc6eU0U1QaMU7Br+3qMuWo9S F+vgnb1ujJ3P/5w3pDmOWtf3c20SRS/s69PglcvgFjuh3x60XtgufHsZPxWRCQLJX89r oFZvDu4hRytNDYEBB9y701raGtUlpuADyYqg89efMLdGu6vMB87VYHdNdyuL6ehteaxC OLnQ== X-Gm-Message-State: AOAM530uh4462CaWnkn0aS7+VUFU32q9Qc6NpVTPdUlF3fr2YIvZmtJE Wun41ZqmM/eKKs5JKmYJp2I= X-Google-Smtp-Source: ABdhPJy963Z6CurWcqjdRAENfmeg3XKSjElt+fD12KmGimr7DJssA48mpg0VL/X2yQS8HWhY8D7YxQ== X-Received: by 2002:a17:902:ce0f:b0:156:5a4:926c with SMTP id k15-20020a170902ce0f00b0015605a4926cmr5315120plg.3.1648450760544; Sun, 27 Mar 2022 23:59:20 -0700 (PDT) Original-Received: from localhost ([118.185.152.162]) by smtp.gmail.com with ESMTPSA id oo17-20020a17090b1c9100b001bf0ccc59c2sm20156272pjb.16.2022.03.27.23.59.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 27 Mar 2022 23:59:20 -0700 (PDT) Mail-Followup-To: Adam , emacs-devel@gnu.org In-Reply-To: (Adam's message of "Sun, 27 Mar 2022 23:58:55 -0400") X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::1041 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::1041; envelope-from=visuweshm@gmail.com; helo=mail-pj1-x1041.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Mon, 28 Mar 2022 07:07:52 -0400 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:287522 Archived-At: [=E0=AE=9E=E0=AE=BE=E0=AE=AF=E0=AE=BF=E0=AE=B1=E0=AF=81 =E0=AE=AE=E0=AE=BE= =E0=AE=B0=E0=AF=8D=E0=AE=9A=E0=AF=8D 27, 2022] Adam wrote: > Hello! > > I have a few packages which might be a good fit for NonGNU ELPA > > elquery is an HTML parsing (using emacs' libxml), formatting, and > querying library, which is useful for scraping. It contains a > querySelector implementation, and lots of helper functions for > retrieving/setting data on parsed nodes. > > file-ring lets you switch between files which have the same basename > with a keypress, which I've found useful when writing c and angular > code (.c/.h and .component.ts/.component.html) > > metamorph is effectively a Turing-complete `replace-regexp`, which > I've found useful when I need to add some number to twenty constants > in a big header file. The README file for metamorph suggests that you are reimplementing query-replace-regexp's \,: In interactive calls, the replacement text can contain =E2=80=98\,=E2= =80=99 followed by a Lisp expression. Each replacement evaluates that expression to compute the replacement string. Inside of that expression, =E2=80=98\&=E2=80=99 is a string de= noting the whole match as a string, =E2=80=98\N=E2=80=99 for a partial match, =E2= =80=98\#&=E2=80=99 and =E2=80=98\#N=E2=80=99 for the whole or a partial match converted to a number with =E2=80=98string-to-number=E2=80=99, and =E2=80=98\#=E2=80=99 itself for= the number of replacements done so far (starting with zero). Or am I missing something? > > Feedback is welcome and appreciated - thanks in advance! > > Thanks, > -Adam > > - elquery: https://github.com/AdamNiederer/elquery > - file-ring: https://github.com/AdamNiederer/file-ring > - metamorph: https://github.com/AdamNiederer/metamorph