From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Philip Kaludercic Newsgroups: gmane.emacs.devel Subject: Re: Changes to make in elpa-packages file for nongnu elpa Date: Mon, 07 Aug 2023 20:33:37 +0000 Message-ID: <87edke4mou.fsf@posteo.net> References: <87r0oftgye.fsf@posteo.net> <87350vt1wz.fsf@posteo.net> <871qgen1ln.fsf@posteo.net> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="21048"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel@gnu.org To: Thierry Volpiatto Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Aug 07 22:34:36 2023 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qT6vz-0005Fp-Jo for ged-emacs-devel@m.gmane-mx.org; Mon, 07 Aug 2023 22:34:35 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qT6vA-0007ya-50; Mon, 07 Aug 2023 16:33:44 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qT6v8-0007yR-Jd for emacs-devel@gnu.org; Mon, 07 Aug 2023 16:33:42 -0400 Original-Received: from mout02.posteo.de ([185.67.36.66]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qT6v5-0002ke-Uw for emacs-devel@gnu.org; Mon, 07 Aug 2023 16:33:42 -0400 Original-Received: from submission (posteo.de [185.67.36.169]) by mout02.posteo.de (Postfix) with ESMTPS id DE213240105 for ; Mon, 7 Aug 2023 22:33:37 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1691440417; bh=SC1gI7aCTBGtmg8E9EAApQCWi8INBrnvXrBVswTZS7s=; h=From:To:Cc:Subject:Autocrypt:Date:Message-ID:MIME-Version:From; b=FSvceq6akves9Zc/p0olhWAFo+JkXR15Crz4HgayLzJQgyrnKiQ6wk1QakQczCuJ6 d5S7vPFt0lzKFsAX5Rx1hWsBFP1/Khfs9ujwyQCgMAThIXcUk2KXjdNf9t66r/CFg8 DxuvUhfZ3Uq50XfB3u32GHmkI6WTgVoaXuY+G+1eHT1FUbari46ehQ9WD+8Vh7ED5f AbJXRvUTIVGxBerLQVjy38yI1jQrB+pYcKSzKOYoj2bLzg3fr0IvdM4Zs62nRWjSu/ NK0Yi+93Ou0E+4My9Dl++gQCYP+UnJ+fL46rU0YeTgg96RzY6CirxxvFgSfH1lcDGn AnVvDxDYktaNw== Original-Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4RKShK3Zp3z9rxD; Mon, 7 Aug 2023 22:33:37 +0200 (CEST) In-Reply-To: <871qgen1ln.fsf@posteo.net> (Thierry Volpiatto's message of "Mon, 07 Aug 2023 18:19:24 +0000") Autocrypt: addr=philipk@posteo.net; keydata= mDMEZBBQQhYJKwYBBAHaRw8BAQdAHJuofBrfqFh12uQu0Yi7mrl525F28eTmwUDflFNmdui0QlBo aWxpcCBLYWx1ZGVyY2ljIChnZW5lcmF0ZWQgYnkgYXV0b2NyeXB0LmVsKSA8cGhpbGlwa0Bwb3N0 ZW8ubmV0PoiWBBMWCAA+FiEEDg7HY17ghYlni8XN8xYDWXahwukFAmQQUEICGwMFCQHhM4AFCwkI BwIGFQoJCAsCBBYCAwECHgECF4AACgkQ8xYDWXahwulikAEA77hloUiSrXgFkUVJhlKBpLCHUjA0 mWZ9j9w5d08+jVwBAK6c4iGP7j+/PhbkxaEKa4V3MzIl7zJkcNNjHCXmvFcEuDgEZBBQQhIKKwYB BAGXVQEFAQEHQI5NLiLRjZy3OfSt1dhCmFyn+fN/QKELUYQetiaoe+MMAwEIB4h+BBgWCAAmFiEE Dg7HY17ghYlni8XN8xYDWXahwukFAmQQUEICGwwFCQHhM4AACgkQ8xYDWXahwukm+wEA8cml4JpK NeAu65rg+auKrPOP6TP/4YWRCTIvuYDm0joBALw98AMz7/qMHvSCeU/hw9PL6u6R2EScxtpKnWof z4oM Received-SPF: pass client-ip=185.67.36.66; envelope-from=philipk@posteo.net; helo=mout02.posteo.de X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:308423 Archived-At: --=-=-= Content-Type: text/plain Thierry Volpiatto writes: > Philip Kaludercic writes: > >> Thierry Volpiatto writes: >> >>> I see that Helm installation from nongnu elpa doesn't include >>> emacs-helm.sh script, would it be possible to modify this? >>> >>> diff --git a/elpa-packages b/elpa-packages >>> index 77d7a5409e..0923724b62 100644 >>> --- a/elpa-packages >>> +++ b/elpa-packages >>> @@ -312,11 +312,11 @@ >>> :ignored-files "COPYING") >>> >>> (helm :url "https://github.com/emacs-helm/helm" >>> - :ignored-files ("images" "Cask" "Makefile" "emacs-helm.sh" "helm-core.el" "helm.el" >>> + :ignored-files ("images" "Makefile" "helm-core.el" "helm.el" >>> "helm-lib.el" "helm-source.el" "helm-multi-match.el")) >>> >>> (helm-core :url "https://github.com/emacs-helm/helm" >>> - :ignored-files ("images" "Cask" "Makefile" "emacs-helm.sh" "helm-adaptive.el" >>> + :ignored-files ("images" "Makefile" "emacs-helm.sh" "helm-adaptive.el" >>> "helm-bookmark.el" "helm-buffers.el" "helm-color.el" "helm-comint.el" >>> "helm-command.el" "helm-config.el" "helm-dabbrev.el" "helm-easymenu.el" >>> "helm-elisp.el" "helm-elisp-package.el" "helm-epa.el" "helm-eshell.el" >> >> There shouldn't be any issue in applying this patch, but could you >> explain the propose of this script? > > It is used specially for reproducing bugs in a clean environment, see it > as emacs -Q for Emacs when reporting bugs. This script starts Emacs -Q > with only Helm loaded, this ensure the bug if one comes from Helm and > not another package. This is important especially nowaday people are > using "Emacs distribution" with the world list of packages installed. > Apart that the script is useful to quickly launch Emacs with helm, one > can use it from the Helm directory or symlinked to e.g. ~/bin. I see. In that case is there any reason you implement this as a shell script? (It might be interesting to provide something like this for package.el, to test packages in a generic way.) >> I see something involving straight.el, which is a >> package.el-incompatible package manager, at which point I am confused >> why this should be distributed along with a "package.el"-package. > > The script doesn't need straight, but it ensures the script is usable for > somebody using straight (to find package directory etc...). Ah OK my bad. >>> Also I asked here about a new dependency for Helm called wfnames and had >>> no answer (2 times), >> >> Sorry about that, you can always feel free to CC me if you have specific >> questions that might get lost on the mailing list. I suppose Stefan >> Monnier wouldn't object to be mentioned either. > > Ok thanks, I will next time now I know you and Stefan are in charge of > this. I am sort of an unofficial co-maintainer, without access to any server-side infrastructure, but other than that I'm glad to help within my possibilities. >>> so I ask again differently now: >>> >>> When a package is available in Melpa do we have to add it in nongnu as >>> well to satisfy dependencies for a package already in nongnu? >> >> Yes, if the dependency is missing someone only using GNU ELPA and NonGNU >> ELPA wouldn't be able to install the package due to a missing dependency >> and that is obviously not intended. > > Ok, it's what I thought, so yes it would be nice to install wfnames > package in Nongnu. > Here is the link: https://github.com/thierryvolpiatto/wfnames Sure, but could you first take a look at these comments, suggestions and questions I have made while skimming over the source? --=-=-= Content-Type: text/plain Content-Disposition: inline diff --git a/wfnames.el b/wfnames.el index e5a83b5..a61a18d 100644 --- a/wfnames.el +++ b/wfnames.el @@ -34,20 +34,20 @@ ;; Usage: ;; Once in the Wfnames buffer, edit your filenames and hit C-c C-c to -;; save your changes. You have completion on filenames and directories +;; save your changes. You have completion on filenames and directories ;; with TAB but if you are using Iedit package and it is in action use =M-TAB=. ;;; Code: -(require 'cl-lib) +(eval-when-compile (require 'cl-lib)) ;you are only using macros, so this should be OK ;; Internal. -(defvar wfnames-buffer "*Wfnames*") -(defvar wfnames--modified nil) +(defvar wfnames-buffer "*Wfnames*") ;perhaps `defconst' +(defvar-local wfnames--modified nil) (defgroup wfnames nil "A mode to edit filenames." - :group 'wfnames) + :group 'wfnames) ;watch out, this is a recursive group (defcustom wfnames-create-parent-directories t "Create parent directories when non nil." @@ -57,16 +57,21 @@ "Ask confirmation when overwriting." :type 'boolean) -(defvar wfnames-after-commit-hook nil) +(defcustom wfnames-after-commit-hook nil + "Hook to run after `wfnames-commit-buffer'." ;rephrase this + :type 'hook) (defcustom wfnames-after-commit-function #'kill-buffer "A function to call on `wfnames-buffer' when done." :type 'function) (defcustom wfnames-make-backup nil - "Backup files before overwriting when non nil." + "Non-nil means files are backed up before overwriting." :type 'boolean) +;; instead of defining new faces and colours, do you think it would be +;; possible to inherit from existing faces? + (defface wfnames-modified '((t :background "LightBlue" :foreground "black")) "Face used when filename is modified.") @@ -104,27 +109,27 @@ "Provide filename completion in wfnames buffer." (let ((beg (line-beginning-position)) (end (point))) + ;; Does it make sense to extend beyond END to allow completing + ;; file names mid-string? (list beg end #'completion-file-name-table :exit-function (lambda (str _status) (when (and (stringp str) (eq (char-after) ?/)) (delete-char -1)))))) -(define-derived-mode wfnames-mode - text-mode "wfnames" +(define-derived-mode wfnames-mode text-mode "wfnames" "Major mode to edit filenames. Special commands: \\{wfnames-mode-map}" (add-hook 'after-change-functions #'wfnames-after-change-hook nil t) - (make-local-variable 'wfnames--modified) - (set (make-local-variable 'completion-at-point-functions) #'wfnames-capf) - (set (make-local-variable 'revert-buffer-function) #'wfnames-revert-changes)) + (setq-local completion-at-point-functions #'wfnames-capf) + (setq-local revert-buffer-function #'wfnames-revert-changes)) (defun wfnames-abort () "Quit and kill wfnames buffer." (interactive) - (quit-window t)) + (quit-window t)) ;isn't this `kill-buffer-and-window' (defun wfnames-after-change-hook (beg end _len) "Put overlay on current line when modified. @@ -137,9 +142,10 @@ Args BEG and END delimit changes on line." (eol (line-end-position)) (old (get-text-property bol 'old-name)) (new (buffer-substring-no-properties bol eol)) - ov face) - (setq face (if (file-exists-p new) - 'wfnames-modified-exists 'wfnames-modified)) + (face (if (file-exists-p new) + 'wfnames-modified-exists + 'wfnames-modified)) + ov) (setq-local wfnames--modified (cons old (delete old wfnames--modified))) (cl-loop for o in (overlays-in bol eol) @@ -184,10 +190,10 @@ When APPEND is specified, append FILES to existing `wfnames-buffer'." "* " 'face 'wfnames-prefix)) "\n")) - (when append (delete-duplicate-lines (point-min) (point-max)))) + (when append (delete-duplicate-lines (point-min) (point-max)))) ;this requires Emacs 24.4 (unless append ;; Go to beginning of basename on first line. - (while (re-search-forward "/" (line-end-position) t)) + (re-search-forward "\\(?:/[^/]*\\)*/" (line-end-position) t) (wfnames-mode) (funcall display-fn wfnames-buffer)))) @@ -202,7 +208,7 @@ When APPEND is specified, append FILES to existing `wfnames-buffer'." "Backup FILE." (when wfnames-make-backup (with-current-buffer (find-file-noselect file) - (let ((backup-by-copying t)) + (let ((backup-by-copying t)) ;why is this bound? isn't this a user preference? (backup-buffer)) (kill-buffer)))) @@ -252,7 +258,7 @@ When APPEND is specified, append FILES to existing `wfnames-buffer'." (let ((basedir (file-name-directory (directory-file-name new)))) (unless (file-directory-p basedir) - (mkdir basedir 'parents)))) + (make-directory basedir 'parents)))) (if (and ow (wfnames-ask-for-overwrite new)) ;; Direct overwrite i.e. first loop. (progn @@ -300,21 +306,22 @@ With a numeric prefix ARG, revert the ARG next lines." (wfnames-revert-current-line-1) (when (eobp) (forward-line -1)) (goto-char (line-beginning-position)) - (while (re-search-forward "/" (line-end-position) t)))) + (re-search-forward "\\(?:/[^/]*\\)*/" (line-end-position) t))) (defun wfnames-revert-changes (_ignore-auto _no-confirm) "Revert wfnames buffer to its initial state. This is used as `revert-buffer-function' for `wfnames-mode'." (with-current-buffer wfnames-buffer - (cl-loop for o in (overlays-in (point-min) (point-max)) - when (overlay-get o 'hff-changed) - do (delete-overlay o)) + (dolist (o (overlays-in (point-min) (point-max))) + (when (overlay-get o 'hff-changed) + (delete-overlay o))) (goto-char (point-min)) (save-excursion (while (not (eobp)) (wfnames-revert-current-line-1))) - (while (re-search-forward "/" (line-end-position) t)))) + (re-search-forward "\\(?:/[^/]*\\)*/" (line-end-position) t))) + (provide 'wfnames) --=-=-= Content-Type: text/plain > Thanks. --=-=-=--