From debbugs-submit-bounces@debbugs.gnu.org Wed Feb 26 18:14:19 2025 Received: (at submit) by debbugs.gnu.org; 26 Feb 2025 23:14:19 +0000 Received: from localhost ([127.0.0.1]:56108 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tnQba-0001Yq-GQ for submit@debbugs.gnu.org; Wed, 26 Feb 2025 18:14:19 -0500 Received: from lists.gnu.org ([2001:470:142::17]:40028) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1tnQbX-0001YQ-9j for submit@debbugs.gnu.org; Wed, 26 Feb 2025 18:14:16 -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 ) id 1tnQbQ-0000Fv-0J for bug-gnu-emacs@gnu.org; Wed, 26 Feb 2025 18:14:08 -0500 Received: from mail-pl1-x62f.google.com ([2607:f8b0:4864:20::62f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tnQbM-0007RW-VO for bug-gnu-emacs@gnu.org; Wed, 26 Feb 2025 18:14:07 -0500 Received: by mail-pl1-x62f.google.com with SMTP id d9443c01a7336-22349dc31bcso4738925ad.3 for ; Wed, 26 Feb 2025 15:14:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740611642; x=1741216442; darn=gnu.org; h=mime-version:message-id:date:subject:to:from:from:to:cc:subject :date:message-id:reply-to; bh=2+oB2/zDF3gr50va/95dRAMibX/FQyu1+YzxMHmXpT8=; b=KCzn25SFDZxUmH2dqwM7WVUjnvcQGFoozPLKZZojnf1T8gqFVyYWrQVx9a0lddv4n1 QWX77TlXL0Q8gLAEKgYxo6MCxrsQsZFgMqxwdknczyd6WnZcpP3/ewO2sEMqx0JIy3Dm 3KO7Y/ixqj0BalawA58G5WeAeIRTaLrukkweuS7ju1VHiVA+j2LwGJdhUFAKPx5lRx0t EjLsny34jKPeOjB2aRaNOpmmP4NTClX78nnuDHtvEoQDY4Mo/Rr2+cdMbx417Tyxx78l tyU2ojBREzr16ODAYGIu6sNLKnoWIYLovd6/JPheIDFsyUKPzhI3mFxXtF6aonautZ/M WTTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740611642; x=1741216442; h=mime-version:message-id:date:subject:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=2+oB2/zDF3gr50va/95dRAMibX/FQyu1+YzxMHmXpT8=; b=vKJB2ovYBaospQkkZRxzVVJD1Nbb4IYX1dCXilKpb9qY1YAERUQqsLfcapClaK75FA qsIgrCJy7003RsJhr1bbuaUOWBOlSQ1Ccwr7wVkcaRXd9Ven68gH3prN0iHL91UKKtys T4qAH6WapXY5A6zvKUPf1kdGSkgMAJYuX/74eT55Cu1Ssw1HcfDC4SfeiBATzV/hHNkz 6gShN7q/atQNEpRY5c3FYHhT5JvYv7HI7SrUamFagEoiWIRqnoDcWz8j8hoalZg2LCPz QO1doVaU6XIwe7RWz/ctcSJVzbhXFt0V+Bi5t+bvp+FjvOChiP4uIgvYtUYE9uVtvA21 aaYg== X-Gm-Message-State: AOJu0YzFbJ4xAf2c+DwaE4gKUP423g4x8qLwL+/ptKv8RjsF8r/Lu+W3 dykhL6hVb40wyHuFFHhOc6H0/W5E/FCBFHqDGqUPxnnl7HF8qmqldcshtFFUiSA= X-Gm-Gg: ASbGnctUuhrfaJ4miJroxOUeLrb397uTX93ozzQ1KCFmj0w57tTa+gVHB5VUtCPlaSA aCOQjQ0JlIB700SHX+Q2JR9yBCRu0u1ofVIbRY2EmlDmjRuc+anrw/NdPcGKfuGAP7Nm5b89b9c l9Uw0YiZdV5OgMYXX0cLTGE33IDOmmYKQ36RPF9UIfg0u+4HVkl/opKnECfV+BHQOBjQNEMbsac zY8kKuT7iMNOVI4hh1ibC4XQR8YAt8Cen+xbiT88Ybg3ltT+88y4Nk7Re1lbEQ10V+e87roPGVS Ya3ge9yOPSbOlIx2Yj+FSTHAEkfneV5b0r3eEfwOT5sBVxSrCRHhByVP2TfseREj X-Google-Smtp-Source: AGHT+IHpDyCxWESlVJ+eaPGpcMHi4tLPBw/BATV6t07wmgttoI05pKfTBAtJ3Y0HxiN/TGr4WwHNgQ== X-Received: by 2002:a17:902:f64a:b0:223:22ae:8d0e with SMTP id d9443c01a7336-22322ae92eemr76612795ad.9.1740611641684; Wed, 26 Feb 2025 15:14:01 -0800 (PST) Received: from MacBook-Pro.local ([2804:7f0:9180:76fa:d47a:c6ec:bb20:9828]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7349fe47eb6sm126011b3a.42.2025.02.26.15.14.00 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Feb 2025 15:14:01 -0800 (PST) From: Rahul Martim Juliato X-Google-Original-From: Rahul Martim Juliato To: bug-gnu-emacs@gnu.org Subject: 30.1; multi-file-replace-regexp-as-diff won't end prompting with icomplete-show-matches-on-no-input X-Debbugs-Cc: Date: Wed, 26 Feb 2025 20:13:58 -0300 Message-ID: MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=2607:f8b0:4864:20::62f; envelope-from=rahuljuliato@gmail.com; helo=mail-pl1-x62f.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) Starting with `emacs -Q`, eval this: ```emacs-lisp (use-package icomplete :bind (:map icomplete-minibuffer-map ("C-n" . icomplete-forward-completions) ("C-p" . icomplete-backward-completions) ("C-v" . icomplete-vertical-toggle) ("RET" . icomplete-force-complete-and-exit)) :config (setq icomplete-show-matches-on-no-input t)) (icomplete-vertical-mode 1) ``` Now run `M-x multi-file-replace-regexp-as-diff RET`. Select one file. Select another file. Try to end the selection with RET. If `icomplete-show-matches-on-no-input` equals t, it seems impossible to finalize the selection since a list is still displayed in the minibuffer. In GNU Emacs 30.1 (build 2, aarch64-apple-darwin24.3.0, NS appkit-2575.40 Version 15.3.1 (Build 24D70)) of 2025-02-26 built on MacBook-Pro.local Windowing system distributor 'Apple', version 10.3.2575 System Description: macOS 15.3.1 Configured using: 'configure --disable-dependency-tracking --disable-silent-rules --enable-locallisppath=/opt/homebrew/share/emacs/site-lisp --infodir=/opt/homebrew/Cellar/emacs-plus@30/30.1/share/info/emacs --prefix=/opt/homebrew/Cellar/emacs-plus@30/30.1 --with-native-compilation=aot --with-xml2 --with-gnutls --without-compress-install --without-dbus --with-imagemagick --with-modules --with-rsvg --with-webp --without-pop --with-xwidgets --with-ns --disable-ns-self-contained 'CFLAGS=-O2 -DFD_SETSIZE=10000 -DDARWIN_UNLIMITED_SELECT -I/opt/homebrew/opt/sqlite/include -I/opt/homebrew/opt/gcc/include -I/opt/homebrew/opt/libgccjit/include' 'LDFLAGS=-L/opt/homebrew/opt/sqlite/lib -L/opt/homebrew/lib/gcc/14 -I/opt/homebrew/opt/gcc/include -I/opt/homebrew/opt/libgccjit/include'' Configured features: ACL GIF GLIB GMP GNUTLS IMAGEMAGICK JPEG LCMS2 LIBXML2 MODULES NATIVE_COMP NOTIFY KQUEUE NS PDUMPER PNG RSVG SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM XWIDGETS ZLIB Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: Group Minor modes in effect: emms-mode-line-mode: t emms-playing-time-display-mode: t emms-playing-time-mode: t diff-hl-margin-mode: t diff-hl-flydiff-mode: t global-diff-hl-mode: t treemacs-project-follow-mode: t treemacs-filewatch-mode: t treemacs-follow-mode: t treemacs-git-mode: t treemacs-fringe-indicator-mode: t olivetti-mode: t gnus-topic-mode: t gnus-undo-mode: t recentf-mode: t which-key-mode: t global-treesit-auto-mode: t vertico-mode: t global-evil-collection-unimpaired-mode: t evil-collection-unimpaired-mode: t global-evil-matchit-mode: t evil-matchit-mode: t global-evil-surround-mode: t evil-surround-mode: t evil-mode: t evil-local-mode: t pulsar-global-mode: t pulsar-mode: t global-undo-tree-mode: t async-bytecomp-package-mode: t persp-mode-project-bridge-mode: t persp-mode: t global-ligature-mode: t ligature-mode: t nerd-icons-completion-mode: t marginalia-mode: t corfu-popupinfo-mode: t global-corfu-mode: t corfu-mode: t override-global-mode: t xterm-mouse-mode: t winner-mode: t savehist-mode: t save-place-mode: t pixel-scroll-precision-mode: t global-auto-revert-mode: t delete-selection-mode: t global-eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t minibuffer-regexp-mode: t buffer-read-only: t column-number-mode: t line-number-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: /Users/rmj/.emacs.d/elpa/transient-20250222.1912/transient hides /opt/homebrew/Cellar/emacs-plus@30/30.1/share/emacs/30.1/lisp/transient /Users/rmj/.emacs.d/elpa/modus-themes-20250220.647/theme-loaddefs hides /opt/homebrew/Cellar/emacs-plus@30/30.1/share/emacs/30.1/lisp/theme-loaddefs Features: (evil-digraphs shadow emacsbug mailalias smtpmail treesit-er-expansions expand-region text-mode-expansions er-basic-expansions expand-region-core expand-region-custom nerd-icons-corfu ispell tempel-collection tempel help-fns radix-tree evil-collection-emms emms-idapi-browser emms-idapi emms-idapi-musicbrainz emms-mpris emms-librefm-stream emms-librefm-scrobbler emms-playlist-limit emms-i18n emms-history emms-score emms-stream-info emms-metaplaylist-mode emms-bookmarks emms-cue emms-mode-line-icon emms-browser emms-volume emms-volume-sndioctl emms-volume-mixerctl emms-volume-pulse emms-volume-amixer emms-playlist-sort emms-last-played emms-player-xine emms-player-mpd tq emms-lyrics emms-url emms-streams emms-show-all emms-tag-editor format-spec emms-tag-tracktag emms-mark emms-mode-line emms-cache emms-info-native emms-info-native-spc emms-info-native-mp3 emms-info-native-ogg emms-info-native-opus emms-info-native-flac emms-info-native-vorbis bindat emms-info-exiftool emms-info-tinytag emms-info-metaflac emms-info-opusinfo emms-info-ogginfo emms-info-mp3info emms-playlist-mode emms-player-vlc emms-player-mpv emms-playing-time emms-info emms-later-do emms-player-mplayer emms-player-simple emms-source-playlist emms-source-file locate emms-setup emms emms-compat evil-collection-wgrep wgrep evil-collection-diff-hl diff-hl-margin diff-hl-dired diff-hl-flydiff diff-hl evil-collection-log-view log-view evil-collection-vc-dir vc-dir ewoc evil-collection-log-edit log-edit pcvs-util add-log vc sort gnus-cite smiley mm-archive mail-extr textsec uni-scripts idna-mapping uni-confusable textsec-check gnus-async gnus-bcklg misearch multi-isearch treemacs-nerd-icons treemacs-evil treemacs-project-follow-mode treemacs treemacs-header-line treemacs-compatibility treemacs-mode treemacs-interface treemacs-persistence treemacs-filewatch-mode treemacs-follow-mode treemacs-rendering treemacs-annotations treemacs-async treemacs-workspaces treemacs-dom treemacs-visuals treemacs-fringe-indicator treemacs-faces treemacs-icons treemacs-scope treemacs-themes treemacs-core-utils pfuture inline hl-line ht treemacs-logging treemacs-customization treemacs-macros s dash qp utf-7 epa-file network-stream nsm gnus-ml disp-table olivetti face-remap gnus-topic nndraft nnmh nnmaildir evil-collection-vc-git vc-git evil-collection-diff-mode diff-mode track-changes vc-dispatcher nnnil gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig nntp gnus-cache gnus-sum shr pixel-fill kinsoku url-file svg dom gnus-group gnus-undo .gnus gnus-start gnus-dbus dbus xml gnus-cloud nnimap nnmail mail-source utf7 nnoo parse-time iso8601 gnus-spec gnus-int gnus-range message sendmail yank-media puny evil-collection-dired nerd-icons-dired dired dired-loaddefs rfc822 mml mml-sec evil-collection-epa epa derived epg rfc6068 epg-config mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader gnus-win evil-collection-gnus gnus nnheader gnus-util time-date mail-utils range mm-util mail-prsvr orderless cursor-sensor evil-collection-dashboard dashboard dashboard-widgets ffap private recentf tree-widget evil-collection-which-key which-key treesit-auto treesit evil-collection-vertico vertico evil-collection-unimpaired evil-collection-tabulated-list evil-collection-tab-bar evil-collection-so-long evil-collection-simple evil-collection-replace evil-collection-process-menu evil-collection-package-menu evil-collection-minibuffer evil-collection-kmacro evil-collection-info evil-collection-indent evil-collection-ibuffer evil-collection-help evil-collection-grep evil-collection-elisp-mode evil-collection-eldoc evil-collection-custom evil-collection-corfu evil-collection-compile evil-collection-comint evil-collection-buff-menu evil-matchit evil-matchit-evil-setup evil-matchit-sdk semantic/lex semantic/fw mode-local find-func evil-surround evil-collection annalist evil evil-integration evil-maps evil-commands reveal evil-jumps evil-command-window evil-types evil-search evil-ex evil-macros evil-repeat evil-states evil-core evil-common thingatpt rect evil-vars edmacro kmacro pulsar pulse color undo-tree diff queue async-bytecomp async persp-mode-project-bridge persp-mode exec-path-from-shell ligature lemacs-init nerd-icons-ibuffer nerd-icons-completion nerd-icons nerd-icons-faces nerd-icons-data nerd-icons-data-mdicon nerd-icons-data-flicon nerd-icons-data-codicon nerd-icons-data-devicon nerd-icons-data-sucicon nerd-icons-data-wicon nerd-icons-data-faicon nerd-icons-data-powerline nerd-icons-data-octicon nerd-icons-data-pomicon nerd-icons-data-ipsicon ibuffer-project project ibuf-ext ibuffer ibuffer-loaddefs comp comp-cstr cl-extra help-mode warnings comp-run comp-common rx flymake-eslint marginalia corfu-popupinfo corfu cape compat server pinentry modus-vivendi-tinted-theme modus-themes cus-edit pp wid-edit time bind-key xt-mouse winner savehist saveplace pixel-scroll cua-base autorevert filenotify desktop frameset so-long delsel grep compile text-property-search comint ansi-osc ansi-color ring cus-load 0x0-autoloads add-node-modules-path-autoloads apheleia-autoloads easy-mmode breadcrumb-autoloads cape-autoloads catppuccin-theme-autoloads colorful-mode-autoloads corfu-autoloads dashboard-autoloads diff-hl-autoloads dired-subtree-autoloads dired-hacks-utils-autoloads diredfl-autoloads docker-autoloads dockerfile-mode-autoloads doom-modeline-autoloads dotenv-mode-autoloads eat-autoloads eldoc-box-autoloads elfeed-tube-mpv-autoloads elfeed-tube-autoloads aio-autoloads elfeed-autoloads ellama-autoloads embark-consult-autoloads consult-autoloads embark-autoloads emms-autoloads erc-hl-nicks-autoloads eshell-syntax-highlighting-autoloads eshell-z-autoloads evil-collection-autoloads annalist-autoloads evil-matchit-autoloads evil-surround-autoloads exec-path-from-shell-autoloads expand-region-autoloads flymake-eslint-autoloads forge-autoloads closql-autoloads emacsql-autoloads geiser-guile-autoloads geiser-autoloads gh-md-autoloads ghub-autoloads git-timemachine-autoloads handlebars-mode-autoloads hl-todo-autoloads ibuffer-project-autoloads indent-guide-autoloads js-pkg-mode-autoloads khalel-autoloads kkp-autoloads ligature-autoloads llm-autoloads lsp-tailwindcss-autoloads lsp-mode-autoloads magit-stats-autoloads marginalia-autoloads markdown-mode-autoloads modus-themes-autoloads mpv-autoloads nerd-icons-completion-autoloads nerd-icons-corfu-autoloads nerd-icons-dired-autoloads nerd-icons-ibuffer-autoloads olivetti-autoloads orderless-autoloads org-modern-autoloads org-ros-autoloads package-lint-autoloads persp-mode-project-bridge-autoloads persp-mode-autoloads pinentry-autoloads plz-event-source-autoloads plz-media-type-autoloads plz-autoloads polymode-autoloads proced-narrow-autoloads pulsar-autoloads pyvenv-autoloads rainbow-delimiters-autoloads ready-player-autoloads sass-mode-autoloads haml-mode-autoloads scss-mode-autoloads shrink-path-autoloads f-autoloads sly-autoloads smartparens-autoloads spinner-autoloads sudo-edit-autoloads tablist-autoloads tempel-collection-autoloads tempel-autoloads transmission-autoloads transpose-frame-autoloads treemacs-evil-autoloads evil-autoloads goto-chg-autoloads treemacs-icons-dired-autoloads treemacs-magit-autoloads magit-autoloads pcase transient-autoloads magit-section-autoloads llama-autoloads treemacs-nerd-icons-autoloads treemacs-autoloads cfrs-autoloads posframe-autoloads ht-autoloads hydra-autoloads lv-autoloads pfuture-autoloads ace-window-autoloads avy-autoloads s-autoloads dash-autoloads nerd-icons-autoloads treepy-autoloads treesit-auto-autoloads typescript-mode-autoloads undo-tree-autoloads queue-autoloads vc-msg-autoloads popup-autoloads vdirel-autoloads helm-autoloads helm-core-autoloads async-autoloads org-vcard-autoloads verb-autoloads vertico-autoloads web-mode-autoloads wfnames-autoloads wgrep-autoloads info with-editor-autoloads xclip-autoloads xterm-color-autoloads yaml-autoloads yaml-mode-autoloads yeetube-autoloads package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs icons password-cache json subr-x map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib early-init rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/ns-win ns-win ucs-normalize mule-util term/common-win tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads xwidget-internal kqueue cocoa ns lcms2 multi-tty make-network-process native-compile emacs) Memory information: ((conses 16 898098 261400) (symbols 48 37684 79) (strings 32 255337 14301) (string-bytes 1 9766625) (vectors 16 72738) (vector-slots 8 1751959 295662) (floats 8 1662 2125) (intervals 56 5262 1648) (buffers 992 23)) From debbugs-submit-bounces@debbugs.gnu.org Thu Feb 27 02:32:24 2025 Received: (at 76603) by debbugs.gnu.org; 27 Feb 2025 07:32:25 +0000 Received: from localhost ([127.0.0.1]:57801 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tnYNc-00055s-Jx for submit@debbugs.gnu.org; Thu, 27 Feb 2025 02:32:24 -0500 Received: from relay9-d.mail.gandi.net ([2001:4b98:dc4:8::229]:40985) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1tnYNP-00054y-Mq for 76603@debbugs.gnu.org; Thu, 27 Feb 2025 02:32:12 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 53927442FA; Thu, 27 Feb 2025 07:32:01 +0000 (UTC) From: Juri Linkov To: Rahul Martim Juliato Subject: Re: bug#76603: 30.1; multi-file-replace-regexp-as-diff won't end prompting with icomplete-show-matches-on-no-input In-Reply-To: Organization: LINKOV.NET References: Date: Thu, 27 Feb 2025 09:30:45 +0200 Message-ID: <87y0xrzy1u.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain X-GND-State: clean X-GND-Score: -100 X-GND-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgdekieekjecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfitefpfffkpdcuggftfghnshhusghstghrihgsvgenuceurghilhhouhhtmecufedtudenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvvefujghofhffkfgfgggtsehttdertddtredtnecuhfhrohhmpefluhhrihcunfhinhhkohhvuceojhhurhhisehlihhnkhhovhdrnhgvtheqnecuggftrfgrthhtvghrnhepffegteefveelhfeljeefueehieduiedtfffhuddtkeeffffghfevheetgeeukeehnecukfhppeeluddruddvledruddthedruddujeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeeluddruddvledruddthedruddujedphhgvlhhopehmrghilhdrghgrnhguihdrnhgvthdpmhgrihhlfhhrohhmpehjuhhriheslhhinhhkohhvrdhnvghtpdhnsggprhgtphhtthhopedvpdhrtghpthhtohepjeeiiedtfeesuggvsggsuhhgshdrghhnuhdrohhrghdprhgtphhtthhopehrrghhuhhljhhulhhirghtohesghhmrghilhdrtghomh X-GND-Sasl: juri@linkov.net X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 76603 Cc: 76603@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) > (use-package icomplete > :bind (:map icomplete-minibuffer-map > ("C-n" . icomplete-forward-completions) > ("C-p" . icomplete-backward-completions) > ("C-v" . icomplete-vertical-toggle) > ("RET" . icomplete-force-complete-and-exit)) Initially "RET" was bound to 'exit-minibuffer', but you override it, so there is no more keys to exit the minibuffer. What do you think about rebinding 'exit-minibuffer' to 'M-j'? For such cases 'M-j' is bound to 'icomplete-fido-exit' in 'icomplete-fido-mode-map'. From debbugs-submit-bounces@debbugs.gnu.org Thu Feb 27 20:39:28 2025 Received: (at 76603) by debbugs.gnu.org; 28 Feb 2025 01:39:28 +0000 Received: from localhost ([127.0.0.1]:41109 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tnpLc-0006qf-Bi for submit@debbugs.gnu.org; Thu, 27 Feb 2025 20:39:28 -0500 Received: from mail-pl1-x62b.google.com ([2607:f8b0:4864:20::62b]:44397) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1tnpLZ-0006pq-J7 for 76603@debbugs.gnu.org; Thu, 27 Feb 2025 20:39:26 -0500 Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-22339936bbfso25571095ad.1 for <76603@debbugs.gnu.org>; Thu, 27 Feb 2025 17:39:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740706759; x=1741311559; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=rKiWEEU6ySEiZ6f/5ClkADKCNqeXcMp9NBHs/1PvFcc=; b=ccN8GhVUCIo6SGdI5qY3qjdiQ5A+hsdROYygHTvqQciVGvR+nq2eUeWnl9MwharCLw CkMfT0gp4Fg4rEiM7J/te0sI38tEX3Rh79JpBTJimHE80o3OgKMlf89PBgwG3p1pG0tG Ylk3ZoiQD2mdq8s3xaG2GcRt9TFhahLDfGdLeqhjWziJOELiHIkL4QUqzdLG/o90SGtn qBW66hyrjQCmHX99t4pNK/9rpq2DyS7dwdNcQ5LlJAjwvxvk88MpXl+ETOzW9+i95P4G kVEEYzaHuTBQEMNnvpC610sjCdXjj1Zlbmt25BtQKAviTKTDBn4ffAmd/e+g4tkmszvb BesA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740706759; x=1741311559; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=rKiWEEU6ySEiZ6f/5ClkADKCNqeXcMp9NBHs/1PvFcc=; b=WJ9a5AMxXSiuPY1VqwDAiATjdJZulUBCnAxnXRTjDisiQeumMoWXAKbHq5KAN10lDU aik4J1qQZssPbPqGiWMjx5nAPVSgOIiUhnGum/NCDjMFSvcZs9DZphDIoftcc0XCzEO6 1mwxRS3vIahza2sBJognwMYcc3bMTDlcM1KY1SCmQ70AS4jBOTvZ67zMvCzlSpJsG+Yu bpzACdlMJhNNZWC5XUEb4CCJ0+QS6PcNCOMlaQOlNjnOKpXK9jMy09fAh9TYdLXbcgOV kBxBXy7pBrfzp5H3NNHne9dm5ghbaGcNfJuIM6TXjDSDWl9Gvp8UgxJqMmqYTF8TOgQM B2lQ== X-Gm-Message-State: AOJu0Yw/q5RLaevmADkZS3kb0yWW2iXDEG782+iPuqNkgpNU594eCvLF Q8vWq0NOFYhEsh48/y4rhvr3n82rtNpmyCV7bfO0LerqskU/djQsKLsQgH6t X-Gm-Gg: ASbGncutL3O5MYgIXTmujMG/Tnn6MKy+i6eFm2Cry6LNnf95kjWs0XPxBh24BV4Jqng SmtFJqI/9GWUmjK9hKp4Vq3pSl7ghd0t4oCynMKq7PcA6Xgu53dMW8NzIjD1pKul25LCEsXWLiq V8F0M1MkNoqCy6cGUTH1udCkTSDX52vWLvkSx8ZZHU5zOeqbLkDQo+wRazE+Dv6DLP+pDqwY7Gq XZrhNoaG9iV2voiYGWRfcLD8Et8MxGBzOiAD5nKZuHO+baOySYeX5Ps32SYCuJntKBYjFU0UP0R Y3Xa9OHY8DFTMhVMaXMtWnnkEoRYcm44gSLC2SKOu/BTlnPX8d2BD2Z5hto= X-Google-Smtp-Source: AGHT+IFcy8V/a9mM03frbk1MoA1f6Wb1zC8D0ZvVPlPIxS6fs2IqUUqTejoPNXr/0w9baBJ+Hx06+Q== X-Received: by 2002:a17:903:3b83:b0:220:d532:834e with SMTP id d9443c01a7336-22368fa0693mr21337845ad.19.1740706758632; Thu, 27 Feb 2025 17:39:18 -0800 (PST) Received: from MacBook-Pro.local ([2804:7f0:9180:76fa:6522:b47a:eccd:e4c3]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2235050ceb0sm22369875ad.203.2025.02.27.17.39.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Feb 2025 17:39:18 -0800 (PST) From: Rahul Martim Juliato X-Google-Original-From: Rahul Martim Juliato To: Juri Linkov Subject: Re: bug#76603: 30.1; multi-file-replace-regexp-as-diff won't end prompting with icomplete-show-matches-on-no-input In-Reply-To: <87y0xrzy1u.fsf@mail.linkov.net> (Juri Linkov's message of "Thu, 27 Feb 2025 09:30:45 +0200") References: <87y0xrzy1u.fsf@mail.linkov.net> X-PGP-Key: https://www.rahuljuliato.com/rahul_pub_key.asc Date: Thu, 27 Feb 2025 22:39:11 -0300 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.7 (/) X-Debbugs-Envelope-To: 76603 Cc: 76603@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.3 (/) Juri Linkov writes: > Initially "RET" was bound to 'exit-minibuffer', but you override it, > so there is no more keys to exit the minibuffer. > > What do you think about rebinding 'exit-minibuffer' to 'M-j'? > For such cases 'M-j' is bound to 'icomplete-fido-exit' > in 'icomplete-fido-mode-map'. Hello there Juri! Neat! I was failing to get C-h k, RET on my previous attempt (idn why), but now it gives me (exit-minibuffer). So as you said: (use-package icomplete :bind (:map icomplete-minibuffer-map ("C-n" . icomplete-forward-completions) ("C-p" . icomplete-backward-completions) ("C-v" . icomplete-vertical-toggle) ("RET" . icomplete-force-complete-and-exit) ("C-j" . exit-minibuffer)) ;; <<<< THIS :config (setq icomplete-show-matches-on-no-input t)) (icomplete-vertical-mode 1) Adding this here solves the question and all work as expected :), thanks! If I may add another inquire. The command dired-do-find-regexp-and-replace, accepts marking files and directories before executing it. I initially thought I could do the same with dired-do-replace-regexp-as-diff but it only works marking files not directories. So my first question is: are there any plans (or there is already some way) to make dired-do-replace-regexp-as-diff also find all files in a marked directory? Secondly: Are there any plans to make multi-file-replace-regexp-as-diff to work with glob patterns? Thanks! -- Rahul Martim Juliato From debbugs-submit-bounces@debbugs.gnu.org Sun Mar 09 05:39:58 2025 Received: (at 76603) by debbugs.gnu.org; 9 Mar 2025 09:39:58 +0000 Received: from localhost ([127.0.0.1]:58338 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1trD8X-0004xv-Rx for submit@debbugs.gnu.org; Sun, 09 Mar 2025 05:39:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:49350) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1trD8V-0004xi-L8 for 76603@debbugs.gnu.org; Sun, 09 Mar 2025 05:39:56 -0400 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 ) id 1trD8P-0003d8-FJ; Sun, 09 Mar 2025 05:39:49 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=IM1CqPr3C9tU/krKIF+IvqWlOAv2jrgcCikztGRyZV4=; b=flaTdg1DTr15 XxOfINuTMgmF6CQyfA7yDCEFpup7pyIcnhFAFp1WNcyNL5lMU8AfWpkaMz2+AUtKuO5Gw1nhCLvR2 GPduNt4VWtIPJ047SgOFJ8Uw3/h8dpZkQjNnfxnRzCTqP0uqAACoWKcNyI1wEJWatSBD4DyGYTaDN tlQq3YHUACxKK7MW7N57+FY9DbeEKnqYevDW3V5ngPNG9NdcD66w8WuXJMrKneFEpEDYtDiPLseMI uRfK1hwuor056qzdHD11FBqAb4L33yWZKWQ31THTmVIPNdNse98yGnRVXYo1PJO0RoVw1uVbeK9lQ VG9EEn7m6Er+i3Y/0/Z2CA==; Date: Sun, 09 Mar 2025 11:39:46 +0200 Message-Id: <86ikoih7a5.fsf@gnu.org> From: Eli Zaretskii To: juri@linkov.net, Rahul Martim Juliato In-Reply-To: (message from Rahul Martim Juliato on Thu, 27 Feb 2025 22:39:11 -0300) Subject: Re: bug#76603: 30.1; multi-file-replace-regexp-as-diff won't end prompting with icomplete-show-matches-on-no-input References: <87y0xrzy1u.fsf@mail.linkov.net> X-Spam-Score: -1.6 (-) X-Debbugs-Envelope-To: 76603 Cc: 76603@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.6 (--) > Cc: 76603@debbugs.gnu.org > From: Rahul Martim Juliato > Date: Thu, 27 Feb 2025 22:39:11 -0300 > > Juri Linkov writes: > > > Initially "RET" was bound to 'exit-minibuffer', but you override it, > > so there is no more keys to exit the minibuffer. > > > > What do you think about rebinding 'exit-minibuffer' to 'M-j'? > > For such cases 'M-j' is bound to 'icomplete-fido-exit' > > in 'icomplete-fido-mode-map'. > > Hello there Juri! > > Neat! I was failing to get C-h k, RET on my previous attempt (idn why), > but now it gives me (exit-minibuffer). So as you said: > > (use-package icomplete > :bind (:map icomplete-minibuffer-map > ("C-n" . icomplete-forward-completions) > ("C-p" . icomplete-backward-completions) > ("C-v" . icomplete-vertical-toggle) > ("RET" . icomplete-force-complete-and-exit) > ("C-j" . exit-minibuffer)) ;; <<<< THIS > :config > (setq icomplete-show-matches-on-no-input t)) > > (icomplete-vertical-mode 1) > > Adding this here solves the question and all work as expected :), > thanks! > > > > If I may add another inquire. > > The command dired-do-find-regexp-and-replace, accepts marking files and > directories before executing it. I initially thought I could do the > same with dired-do-replace-regexp-as-diff but it only works marking > files not directories. > > So my first question is: are there any plans (or there is already some way) > to make dired-do-replace-regexp-as-diff also find all files in a marked > directory? > > Secondly: Are there any plans to make multi-file-replace-regexp-as-diff > to work with glob patterns? Ping! Do we need to do anything else here, or should this bug be closed now? From debbugs-submit-bounces@debbugs.gnu.org Sun Mar 09 10:47:19 2025 Received: (at 76603) by debbugs.gnu.org; 9 Mar 2025 14:47:19 +0000 Received: from localhost ([127.0.0.1]:33780 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1trHvy-000751-ND for submit@debbugs.gnu.org; Sun, 09 Mar 2025 10:47:18 -0400 Received: from mail-pl1-x62b.google.com ([2607:f8b0:4864:20::62b]:61806) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1trHvw-00074j-7Q for 76603@debbugs.gnu.org; Sun, 09 Mar 2025 10:47:16 -0400 Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-223959039f4so65856305ad.3 for <76603@debbugs.gnu.org>; Sun, 09 Mar 2025 07:47:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741531629; x=1742136429; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=cAFqRIwbm+Wn6VtzJKCgZWy9LnSIWJ73UTliQqDR+W8=; b=KrjzT6sydokPcHQgmxiZ1i5HVzt5fYMMjwSiofDTnfuHBwpzUrkEaslE3A7WLyYx23 1BgkhxgZvArqtKANYrrNQgP4ifa0P1nMO14DUTPuooqyM4hKZp0WufgwLfjSkqxcyvhb IzuWOgITzNC8kyBAMq5Eyun3FE0DN9wVayQ9emgO1w5uyLXMNX6LfUIjInO1gwyjOTTY S1vJRZ56EqTcLPnOrteX7lqWd1J0YbJ1lZo5cxC5krY7b6LWlNrVmgbX9AQo0f2wUgHw LcqbNZpG38rd5rg8z2RQsCXlw7nfsdoi2xu+Kl7iA0hMPcAbyZit0Ufy+kYZHi7Lxula Thew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741531629; x=1742136429; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=cAFqRIwbm+Wn6VtzJKCgZWy9LnSIWJ73UTliQqDR+W8=; b=PamK4UNwHKuVA2fmfuJynZOm25Xq9ClTPXmJTfmVzYWNhpuHXwP69qpZcXEjNOdpAV xzmuVf/Q0OJ8qnoyUBx7/E7eC2xkXzHmjpVIRe1KXJF+ND4PD93gLnD/Fp524FedmV8I SbJHKNA9f28MsZfwzhtFUauDKTcYGkELDm/WX5YUTZ/e0TbGFE6OZzVNAQXaOQXCsouS 0dj0SUxs1DOOZTMu4N0hC4QHEhbStchRqRbYzuC+rXyH/80fFVFEZB/nDGhsLiL74+ow appu71RzJI8hRat2P2kI1DglEhwlcIPDiYZ3+IwDtj6hOuVl97IxLftoVJJoXlyDPfPs /KLA== X-Forwarded-Encrypted: i=1; AJvYcCXcS4iQZlTt5Pq+V3CaCFgsVamDlV+9a9tgMTS3n4v3OBRMfj2iWBeKYdQXPWPBY/vVNusm6w==@debbugs.gnu.org X-Gm-Message-State: AOJu0YwmIABLobkwtQqIi2Mf2kqQPkqbM8T4zaV8qx00N4km/8yDUSnT /Hm7+PI/QDu4CcMfzLfPul1xbvC3pF+ignaIgNzoMfpnDf0kqvQixx5mkxfC X-Gm-Gg: ASbGncszPeyenfp+MebJkUEE9HmuL3jpeEHKPOFibUTxV4GyWDmJwRDI5fceFy9GR5x 5OPKiLCK1MQE7ziEz6dWfDPBe3vue4TRGccS8Qi0WL/Uuc9XHZbHA/DAgVSuTVRFXF7YaF5MHbZ RCgOw+BE2L9BRmQXilfNg8tCMSn5UgttrOsvf+nb2MYpGTEM4KYlsO3Jf/fVfdpRLEpF4vgcYdA FxnbsYg4ZCsGBy+NPK1YyDcgrnFUJXiV0SRDTPuVpIRHNHuFSfAf8syjeNFYSeIaECVcXp/d9jh u+B8tBwuy8Xu047UwzC+Wvhpj/bcJ0hzLfwmNLqaZIWQvv1fqxcOpp8LtO//UHqiqRV3a6PWUxj 0 X-Google-Smtp-Source: AGHT+IHKlKMwVCenYiSxrNis1MwT5nNil5Y47ZJdDmEAhVAgsKdAhjaPGYX7IjIaI4ZJN5iXYrmz7w== X-Received: by 2002:a17:902:f54e:b0:223:54aa:6d15 with SMTP id d9443c01a7336-2242888bfcemr185895695ad.12.1741531629426; Sun, 09 Mar 2025 07:47:09 -0700 (PDT) Received: from MacBook-Pro.local ([2804:7f0:9181:7585:9d92:4a8:c67f:709a]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22410aa5cbdsm60865715ad.237.2025.03.09.07.47.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 09 Mar 2025 07:47:08 -0700 (PDT) From: Rahul Martim Juliato X-Google-Original-From: Rahul Martim Juliato To: Eli Zaretskii Subject: Re: bug#76603: 30.1; multi-file-replace-regexp-as-diff won't end prompting with icomplete-show-matches-on-no-input In-Reply-To: <86ikoih7a5.fsf@gnu.org> References: <87y0xrzy1u.fsf@mail.linkov.net> <86ikoih7a5.fsf@gnu.org> X-PGP-Key: https://www.rahuljuliato.com/rahul_pub_key.asc Date: Sun, 09 Mar 2025 11:47:05 -0300 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 76603 Cc: Rahul Martim Juliato , 76603@debbugs.gnu.org, juri@linkov.net X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) >> If I may add another inquire. >> >> The command dired-do-find-regexp-and-replace, accepts marking files and >> directories before executing it. I initially thought I could do the >> same with dired-do-replace-regexp-as-diff but it only works marking >> files not directories. >> >> So my first question is: are there any plans (or there is already some way) >> to make dired-do-replace-regexp-as-diff also find all files in a marked >> directory? >> >> Secondly: Are there any plans to make multi-file-replace-regexp-as-diff >> to work with glob patterns? I'll make some more research on these items apart from this bug. > > Ping! Do we need to do anything else here, or should this bug be > closed now? Yep, it is fair to close this bug entry. Thanks! -- Rahul Martim Juliato From debbugs-submit-bounces@debbugs.gnu.org Mon Mar 10 14:37:02 2025 Received: (at 76603) by debbugs.gnu.org; 10 Mar 2025 18:37:03 +0000 Received: from localhost ([127.0.0.1]:39748 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1trhzq-0001vp-FF for submit@debbugs.gnu.org; Mon, 10 Mar 2025 14:37:02 -0400 Received: from relay8-d.mail.gandi.net ([217.70.183.201]:41953) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1trhzn-0001vA-Tk for 76603@debbugs.gnu.org; Mon, 10 Mar 2025 14:37:00 -0400 Received: by mail.gandi.net (Postfix) with ESMTPSA id 86FFC44435; Mon, 10 Mar 2025 18:36:49 +0000 (UTC) From: Juri Linkov To: Rahul Martim Juliato Subject: Re: bug#76603: 30.1; multi-file-replace-regexp-as-diff won't end prompting with icomplete-show-matches-on-no-input In-Reply-To: Organization: LINKOV.NET References: <87y0xrzy1u.fsf@mail.linkov.net> Date: Mon, 10 Mar 2025 20:23:17 +0200 Message-ID: <87ecz4sq22.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain X-GND-State: clean X-GND-Score: -100 X-GND-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgdduvddttdelucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuifetpfffkfdpucggtfgfnhhsuhgsshgtrhhisggvnecuuegrihhlohhuthemuceftddunecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpefhvfevufgjohhffffkfgggtgesthdtredttdertdenucfhrhhomheplfhurhhiucfnihhnkhhovhcuoehjuhhriheslhhinhhkohhvrdhnvghtqeenucggtffrrghtthgvrhhnpeffgeetfeevlefhleejfeeuheeiudeitdffhfdutdekfeffgffhveehteegueekheenucfkphepledurdduvdelrddutdehrdduudejnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepledurdduvdelrddutdehrdduudejpdhhvghlohepmhgrihhlrdhgrghnughirdhnvghtpdhmrghilhhfrhhomhepjhhurhhisehlihhnkhhovhdrnhgvthdpnhgspghrtghpthhtohepvddprhgtphhtthhopeejieeitdefseguvggssghughhsrdhgnhhurdhorhhgpdhrtghpthhtoheprhgrhhhulhhjuhhlihgrthhosehgmhgrihhlrdgtohhm X-GND-Sasl: juri@linkov.net X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 76603 Cc: 76603@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) > If I may add another inquire. Sorry, I missed this inquiry. > The command dired-do-find-regexp-and-replace, accepts marking files and > directories before executing it. I initially thought I could do the > same with dired-do-replace-regexp-as-diff but it only works marking > files not directories. dired-do-find-regexp-and-replace uses dired-do-find-regexp to get marked files. So I guess dired-do-replace-regexp-as-diff could use dired-do-find-regexp as well? > So my first question is: are there any plans (or there is already some way) > to make dired-do-replace-regexp-as-diff also find all files in a marked > directory? There are no plans. If you could try to use dired-do-find-regexp in dired-do-replace-regexp-as-diff this would be nice. > Secondly: Are there any plans to make multi-file-replace-regexp-as-diff > to work with glob patterns? Currently multi-file-replace-regexp-as-diff uses multi-isearch-read-files. I vaguely remember there exists such a function that reads a glob pattern, but can't find it right away. From debbugs-submit-bounces@debbugs.gnu.org Wed Mar 12 20:21:58 2025 Received: (at 76603) by debbugs.gnu.org; 13 Mar 2025 00:21:58 +0000 Received: from localhost ([127.0.0.1]:52385 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tsWKk-0006DK-4P for submit@debbugs.gnu.org; Wed, 12 Mar 2025 20:21:58 -0400 Received: from mail-pl1-x631.google.com ([2607:f8b0:4864:20::631]:50258) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1tsWKi-0006D4-2L for 76603@debbugs.gnu.org; Wed, 12 Mar 2025 20:21:56 -0400 Received: by mail-pl1-x631.google.com with SMTP id d9443c01a7336-225b5448519so7534765ad.0 for <76603@debbugs.gnu.org>; Wed, 12 Mar 2025 17:21:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741825310; x=1742430110; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=DKM5+GHOXpYMXyMTABjjiGWE4TZwCs7DNkAxw+WGHx4=; b=FqX2nkn4peXmsjCkVwubYXImsG0fQTFaX7YnwW0fCiQYZ7+/V2eWp+51yQpAoSr9N8 VhYZbwOJxTO3+UNo5GRGhukU/4Ok8BkL/QsV/k+Eo80MWgIGkpmBHsgA2Br+FDNB9ZcL c3C8jhZkD2bfC4LMj0A95umg/nnUikz5CRE5wWKY8mfmQopvugQQMPOhbDIBT0R+Z7P4 x6ncQz9yrtI09DvfJcsD0jw4/CiZr4bPmudBBctOeTAIqqTdKjsAoECSS8N8URlrlEfU f+/RGR7RKI3UQQou+iJErWWc58FaD4O6z9DOChJYw0du5SIhBhxZI2p/1r4QObiqwhEb aSQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741825310; x=1742430110; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=DKM5+GHOXpYMXyMTABjjiGWE4TZwCs7DNkAxw+WGHx4=; b=g9CoZNC+Bou/0z7zUWknOknsWYUv7HC3BieNEYbHMKdTSzQCi8/1sxx9DBKsn165Vz aNuR6ESp63L2++NMlGkHXYYLU6AHaFnmN5QsEN13qH1TQRoJQyl31eQAh2b/pNmD02i7 HfA/yRAT/wGRIeIc3AUzTtSUagDP0O2e75EoGPDe7Os94UpwM4EoPdtJLigzvk5ozWUJ gST7QZ5CsBk2cGZ/lflcSDJ3mf4oiFxTNC5ZFhcSlsIR8WQFVIbnpHk7+IDU59IpdEqj 2JqrInMgp+ijnpvvAHoPek92p5ZCbXAT27GiJH6NldM/ZpVe+9t8T7mPr83Oo766/572 3QVw== X-Forwarded-Encrypted: i=1; AJvYcCUS5LTntxr0EPWPVVRbC3DPKKhSaVCtJunnCxnSsJC6slkovm8wbFjIST0CxIuEVKn0/pPJtg==@debbugs.gnu.org X-Gm-Message-State: AOJu0YwUoyed51BVXXu5RCzHTeXAbGt4/KbbBujR/KBsWFMm7zLBofBX qmp9LJ8glzyV9nSFZUtylOS4FpN/n6Zs3KYdbgE1JdDCDjepCVvwF/s3sg5a X-Gm-Gg: ASbGncvjO5uZczc7rgYY7YvrJ/SmTs0pGx5BR9aEXXHVm09nqzGPM1YFGeZHeq+YqhQ cXmf1CZpKfOkjuyDgaEuVuGqC7963iQ5ohWKfn/1d10FwoQBp1EFM5pE521oxDL7cUEdZrUEPU6 W+4Qz7elHH6M//u9Og9NmLG8ex2SlwPK7RTbO7D5GA2ekBOS16OGEY7BV097QQG3EnuHtdk3d8U T+xTinNGCHO6u/mOlY9J0tTJHhsR6PRb9eFotosN5TYw7t/Cm68A8T4XFf5PHjutllRVRB9OMLB z20C3knK48b7xf0vmcMtfsPctjxhWk1dy8YrrSGhs0Cw X-Google-Smtp-Source: AGHT+IHLJQM7q/PpuGngV+vn3D7z7lZ5FuvKv2LaTR8q0HUp889dbnhiakDLUIeNRsBfkEA3cz6N/Q== X-Received: by 2002:a17:902:ce0a:b0:221:85:f384 with SMTP id d9443c01a7336-2242889b34emr359990065ad.16.1741825309442; Wed, 12 Mar 2025 17:21:49 -0700 (PDT) Received: from debian ([2804:7f0:9182:6701:a2b7:ac45:681b:f8e8]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-225c6bd4a8fsm1556075ad.234.2025.03.12.17.21.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Mar 2025 17:21:49 -0700 (PDT) From: Rahul Martim Juliato X-Google-Original-From: Rahul Martim Juliato To: Juri Linkov Subject: Re: bug#76603: 30.1; multi-file-replace-regexp-as-diff won't end prompting with icomplete-show-matches-on-no-input In-Reply-To: <87ecz4sq22.fsf@mail.linkov.net> (Juri Linkov's message of "Mon, 10 Mar 2025 20:23:17 +0200") References: <87y0xrzy1u.fsf@mail.linkov.net> <87ecz4sq22.fsf@mail.linkov.net> X-PGP-Key: https://www.rahuljuliato.com/rahul_pub_key.asc Date: Wed, 12 Mar 2025 21:21:46 -0300 Message-ID: <87ldt9kcf9.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.7 (/) X-Debbugs-Envelope-To: 76603 Cc: Rahul Martim Juliato , 76603@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.3 (/) Juri Linkov writes: >> If I may add another inquire. > > Sorry, I missed this inquiry. > >> The command dired-do-find-regexp-and-replace, accepts marking files and >> directories before executing it. I initially thought I could do the >> same with dired-do-replace-regexp-as-diff but it only works marking >> files not directories. Thanks for this info. > > dired-do-find-regexp-and-replace uses dired-do-find-regexp > to get marked files. So I guess dired-do-replace-regexp-as-diff > could use dired-do-find-regexp as well? > >> So my first question is: are there any plans (or there is already some way) >> to make dired-do-replace-regexp-as-diff also find all files in a marked >> directory? > > There are no plans. If you could try to use dired-do-find-regexp > in dired-do-replace-regexp-as-diff this would be nice. > Maybe I could send a patch? >> Secondly: Are there any plans to make multi-file-replace-regexp-as-diff >> to work with glob patterns? > > Currently multi-file-replace-regexp-as-diff uses multi-isearch-read-files. > > I vaguely remember there exists such a function that reads a glob pattern, > but can't find it right away. Neither did I :( -- Thanks for taking a look into it Juri! In the meanwhile I created two `wrapper` functions to expand `multi-file-replace-regexp-as-diff' and do why I meant to. Do you think two more functions with extended functionality are worth a patch? I do not intend to replace the original ones, but provide: 1.) `multi-file-replace-regexp-as-diff-with-glob': Use it with glob pattern matching in files, including inside subfolders. 2.) `dired-do-replace-regexp-as-diff-with-directories': Use it with marked files and or directories in dired The code I'm currently using/testing: ```emacs-lisp ;; `M-x multi-file-replace-regexp-as-diff-with-glob RET' ;; ;; A wrapper for `multi-file-replace-regexp-as-diff' that extends its functionality ;; to support glob patterns for file matching. It recursively searches all files ;; in the specified directory (including subdirectories) that match the given glob ;; pattern (e.g., `*.js`), and displays the replacements as diffs in the ;; `*replace-diff*` buffer. This allows for easy review and application of changes ;; across multiple files. (defun glob-to-regexp (glob) "Convert a GLOB pattern (e.g., '*.el') to a regexp that `directory-files-recursively` can use." (concat "^" (replace-regexp-in-string (rx (any "*?.")) (lambda (match) (pcase match ("*" ".*") ("?" ".") ("." "\\\\.") ; Properly escape the dot (_ match))) glob) "$")) (defun multi-file-replace-regexp-as-diff-with-glob (dir regexp to-string &optional delimited glob-pattern) "Wrapper for `multi-file-replace-regexp-as-diff` that accepts a directory and a glob pattern. DIR is the directory to search recursively. REGEXP is the regular expression to replace. TO-STRING is the replacement string. DELIMITED is an optional argument passed to `multi-file-replace-regexp-as-diff`. GLOB-PATTERN is the glob pattern to match files (e.g., \"*.el\")." (interactive (let ((dir (file-truename (read-directory-name "Directory: "))) (common (query-replace-read-args (concat "Replace" (if current-prefix-arg " word" "") " regexp as diff in files") t t)) (glob-pattern (read-string "Glob pattern (e.g., *.el): " "*"))) (list dir (nth 0 common) (nth 1 common) (nth 2 common) glob-pattern))) (let* ((glob-regexp (glob-to-regexp glob-pattern)) (files (directory-files-recursively dir glob-regexp))) (if files (multi-file-replace-regexp-as-diff files regexp to-string delimited) (message "No files found for glob-pattern: %s" glob-pattern)))) ;; `M-x dired RET' mark files and/or directories then ;; `M-x dired-do-replace-regexp-as-diff-with-directories RET' ;; ;; A version of `dired-do-replace-regexp-as-diff' that adds support for selected ;; directories in Dired. When directories are marked, it recursively includes all ;; files within them (and their subdirectories) in the replacement operation. ;; The replacements are displayed as diffs in the `*replace-diff*` buffer, allowing ;; for review and application of changes across multiple files and directories. (defun expand-directories (items) "Expand ITEMS to include all files within directories (recursively). Directories themselves are excluded from the final list." (cl-loop for item in items if (file-directory-p item) append (let ((files (directory-files-recursively item ".*" t))) (cl-remove-if #'file-directory-p files)) else if (file-regular-p item) ; Ensure only regular files are included collect item)) (defun dired-do-replace-regexp-as-diff-with-directories (from to &optional delimited) "Do `replace-regexp' of FROM with TO as diff, on all marked files and directories. If a marked item is a directory, all files within it (recursively) are included. Third arg DELIMITED (prefix arg) means replace only word-delimited matches. The replacements are displayed in the buffer *replace-diff* that you can later apply as a patch after reviewing the changes." (interactive (let ((common (query-replace-read-args "Replace regexp as diff in marked files and directories" t t t))) (list (nth 0 common) (nth 1 common) (nth 2 common)))) (dired-post-do-command) (let* ((marked-items (dired-get-marked-files)) ; Include directories in the list (files (expand-directories marked-items))) (if files (progn (multi-file-replace-regexp-as-diff files from to delimited)) (message "No files found in marked items.")))) ``` -- Rahul Martim Juliato From debbugs-submit-bounces@debbugs.gnu.org Thu Mar 13 14:07:19 2025 Received: (at 76603) by debbugs.gnu.org; 13 Mar 2025 18:07:19 +0000 Received: from localhost ([127.0.0.1]:58007 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tsmxi-00064k-K1 for submit@debbugs.gnu.org; Thu, 13 Mar 2025 14:07:18 -0400 Received: from relay6-d.mail.gandi.net ([2001:4b98:dc4:8::226]:42899) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1tsmxf-00064O-Pp for 76603@debbugs.gnu.org; Thu, 13 Mar 2025 14:07:16 -0400 Received: by mail.gandi.net (Postfix) with ESMTPSA id CBC03442B1; Thu, 13 Mar 2025 18:07:06 +0000 (UTC) From: Juri Linkov To: Rahul Martim Juliato Subject: Re: bug#76603: 30.1; multi-file-replace-regexp-as-diff won't end prompting with icomplete-show-matches-on-no-input In-Reply-To: <87ldt9kcf9.fsf@gmail.com> Organization: LINKOV.NET References: <87y0xrzy1u.fsf@mail.linkov.net> <87ecz4sq22.fsf@mail.linkov.net> <87ldt9kcf9.fsf@gmail.com> Date: Thu, 13 Mar 2025 19:50:58 +0200 Message-ID: <87o6y51fxh.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain X-GND-State: clean X-GND-Score: -100 X-GND-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgdduvdekiedvucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuifetpfffkfdpucggtfgfnhhsuhgsshgtrhhisggvnecuuegrihhlohhuthemuceftddunecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpefhvfevufgjohhffffkfgggtgesthdtredttdertdenucfhrhhomheplfhurhhiucfnihhnkhhovhcuoehjuhhriheslhhinhhkohhvrdhnvghtqeenucggtffrrghtthgvrhhnpeffgeetfeevlefhleejfeeuheeiudeitdffhfdutdekfeffgffhveehteegueekheenucfkphepledurdduvdelrddutdehrdduudejnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepledurdduvdelrddutdehrdduudejpdhhvghlohepmhgrihhlrdhgrghnughirdhnvghtpdhmrghilhhfrhhomhepjhhurhhisehlihhnkhhovhdrnhgvthdpnhgspghrtghpthhtohepvddprhgtphhtthhopeejieeitdefseguvggssghughhsrdhgnhhurdhorhhgpdhrtghpthhtoheprhgrhhhulhhjuhhlihgrthhosehgmhgrihhlrdgtohhm X-GND-Sasl: juri@linkov.net X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 76603 Cc: 76603@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) >> I vaguely remember there exists such a function that reads a glob pattern, >> but can't find it right away. > > Neither did I :( Now I remembered the name of this function: 'file-expand-wildcards'. Like is used in 'multi-isearch-read-matching-files'. > Do you think two more functions with extended > functionality are worth a patch? A patch would be nice later, when you will get a working version with using more core functions. > (defun glob-to-regexp (glob) > "Convert a GLOB pattern (e.g., '*.el') to a regexp that `directory-files-recursively` can use." > (concat "^" (replace-regexp-in-string > (rx (any "*?.")) > (lambda (match) > (pcase match > ("*" ".*") > ("?" ".") > ("." "\\\\.") ; Properly escape the dot > (_ match))) > glob) > "$")) There is already the core function 'wildcard-to-regexp' and its duplicate 'dired-glob-regexp'. > (defun expand-directories (items) > "Expand ITEMS to include all files within directories (recursively). > Directories themselves are excluded from the final list." > (cl-loop for item in items > if (file-directory-p item) > append (let ((files (directory-files-recursively item ".*" t))) > (cl-remove-if #'file-directory-p files)) > else if (file-regular-p item) ; Ensure only regular files are included > collect item)) I don't remember such a core function, so maybe the function above could be added.