From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Juri Linkov Newsgroups: gmane.emacs.devel Subject: Re: Simple isearch concerns Date: Wed, 05 May 2021 23:52:36 +0300 Organization: LINKOV.NET Message-ID: <875yzwq4x7.fsf@mail.linkov.net> References: <20210403001539.x4rb55dvh46rmhb3.ref@Ergus> <2599ffef-4f70-025c-5f9c-61b9ac94faf8@inventati.org> <87eefrbo9k.fsf@posteo.net> <7473b27b2b479f5686af@heytings.org> <87tuon9vf1.fsf@posteo.net> <20210403174508.xwr5uc36dzityitn@Ergus> <87wnsurdr7.fsf@gmail.com> <87fszij6to.fsf@mail.linkov.net> <87v98asulc.fsf@gmail.com> <87pmyimiwd.fsf@mail.linkov.net> <87bla11u5q.fsf@gmail.com> <87lf937hgk.fsf@mail.linkov.net> <87y2d1ksga.fsf@mail.linkov.net> <87r1it7zfw.fsf@gmail.com> <87v98466it.fsf@mail.linkov.net> <87bl9wcksv.fsf@gmail.com> <87tunnzqci.fsf@mail.linkov.net> <87bl9tmzun.fsf@gmail.com> <87y2cwhiti.fsf@mail.linkov.net> <87h7jk75b7.fsf@gmail.com> <87k0ofyd4p.fsf@mail.linkov.net> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="20226"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (x86_64-pc-linux-gnu) Cc: Philip Kaludercic , emacs-devel@gnu.org, Manuel Uberti , Gregory Heytings , Ergus To: Augusto Stoffel Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed May 05 23:01:22 2021 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 1leOe1-000598-Qv for ged-emacs-devel@m.gmane-mx.org; Wed, 05 May 2021 23:01:21 +0200 Original-Received: from localhost ([::1]:56856 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1leOe0-000254-Lf for ged-emacs-devel@m.gmane-mx.org; Wed, 05 May 2021 17:01:20 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:36496) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1leOc5-0001Cr-Vs for emacs-devel@gnu.org; Wed, 05 May 2021 16:59:23 -0400 Original-Received: from relay11.mail.gandi.net ([217.70.178.231]:50205) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1leOc3-0005Yd-Aj for emacs-devel@gnu.org; Wed, 05 May 2021 16:59:21 -0400 Original-Received: from mail.gandi.net (m91-129-102-166.cust.tele2.ee [91.129.102.166]) (Authenticated sender: juri@linkov.net) by relay11.mail.gandi.net (Postfix) with ESMTPSA id 303F3100007; Wed, 5 May 2021 20:59:13 +0000 (UTC) In-Reply-To: <87k0ofyd4p.fsf@mail.linkov.net> (Juri Linkov's message of "Mon, 03 May 2021 19:51:18 +0300") Received-SPF: pass client-ip=217.70.178.231; envelope-from=juri@linkov.net; helo=relay11.mail.gandi.net X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-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.23 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:268933 Archived-At: >> May I suggest that you merge just the `isearch-buffer-local' change at >> this point, and then wait for my patch doing the minibuffer part? > > Testing shows that the `isearch-buffer-local' change works fine, > with only one deficiency: as (info "(elisp) Searching Keymaps") says > get-char-property takes precedence over emulation-mode-map-alists. Actually, there are more problems: buffer-local design doesn't work for multi-buffer isearch. The current design is not without flaws either: when multi-buffer isearch visits another buffer, it removes the isearch menu, because isearch-mode is already buffer-local. And isearch-mode can't be globalized, because both minor-mode-alist and minor-mode-map-alist already contain isearch keys that should not be active globally in other buffers. While rewriting isearch for a new design (with a new option for backward-compatibility), three basic aspects should be taken into consideration - mode, keymap, hooks: 1. mode - currently buffer-local and can't be globalized, so multi-buffer isearch should be fixed anyway to enable isearch-mode when visiting a new buffer and disable afterwards. 2. keymap - the current global overriding-terminal-local-map can be replaced by the global emulation-mode-map-alists that depends on the buffer-local value of isearch-mode. After fixing multi-buffer isearch to enable isearch-mode in visited buffers, keymap in emulation-mode-map-alists will enable isearch keys in the next buffer. Also a new feature should be designed to give precedence to some modes in emulation-mode-map-alists over get-char-property. 3. hooks - currently global hooks when turned into buffer-local should be enabled/disabled when multi-buffer isearch visits the next buffer. 4. additionally to support multiple isearch sessions in different buffers at the same time, isearch state variables could be buffer-local.