From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Dmitry Gutov Newsgroups: gmane.emacs.bugs Subject: bug#63648: 29.0.90; project.el: with switch-use-entire-map, switch-project errors on non-project commands Date: Mon, 18 Sep 2023 16:56:58 +0300 Message-ID: <2e34e515-a921-a969-0915-bea94c745f8b@gutov.dev> References: <86bki9y68h.fsf@mail.linkov.net> <86cz2f7bvo.fsf@mail.linkov.net> <86353axu48.fsf@mail.linkov.net> <87o7jfi00b.fsf@catern.com> <86msyhwrrg.fsf@mail.linkov.net> <86y1hs4kkg.fsf@mail.linkov.net> <86h6of66o3.fsf@mail.linkov.net> <86wmxb2qvh.fsf@mail.linkov.net> <8634zyjt0k.fsf@mail.linkov.net> <8d1fb7ac-5c82-0ec2-8ae2-d09c131ec165@gutov.dev> <86edj6hyem.fsf@mail.linkov.net> <8634zitwoy.fsf@mail.linkov.net> <50d46d30-a796-b855-0d4c-690d6cb3d15b@gutov.dev> <86il88x9cy.fsf@mail.linkov.net> <4367c45c-95b3-6a29-4ba3-068a3c748452@gutov.dev> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="18861"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Cc: Spencer Baugh , 63648@debbugs.gnu.org, sbaugh@catern.com To: Juri Linkov Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon Sep 18 15:59:12 2023 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1qiEmN-0004eb-6f for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 18 Sep 2023 15:59:12 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qiElO-0007Uh-OD; Mon, 18 Sep 2023 09:58:10 -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 1qiEl8-00073f-CS for bug-gnu-emacs@gnu.org; Mon, 18 Sep 2023 09:57:56 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qiEl8-0001z7-2R for bug-gnu-emacs@gnu.org; Mon, 18 Sep 2023 09:57:54 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qiElF-0005ZH-VP for bug-gnu-emacs@gnu.org; Mon, 18 Sep 2023 09:58:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Dmitry Gutov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 18 Sep 2023 13:58:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 63648 X-GNU-PR-Package: emacs Original-Received: via spool by 63648-submit@debbugs.gnu.org id=B63648.169504544821337 (code B ref 63648); Mon, 18 Sep 2023 13:58:01 +0000 Original-Received: (at 63648) by debbugs.gnu.org; 18 Sep 2023 13:57:28 +0000 Original-Received: from localhost ([127.0.0.1]:53935 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qiEke-0005Y0-8T for submit@debbugs.gnu.org; Mon, 18 Sep 2023 09:57:27 -0400 Original-Received: from out2-smtp.messagingengine.com ([66.111.4.26]:48169) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qiEkY-0005XR-7M for 63648@debbugs.gnu.org; Mon, 18 Sep 2023 09:57:22 -0400 Original-Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.nyi.internal (Postfix) with ESMTP id 0447F5C010F; Mon, 18 Sep 2023 09:57:03 -0400 (EDT) Original-Received: from mailfrontend2 ([10.202.2.163]) by compute3.internal (MEProxy); Mon, 18 Sep 2023 09:57:03 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to; s=fm3; t= 1695045422; x=1695131822; bh=zavPwp45wBczpgGCp8j7Tzewh5XtrYvg+AD WOD6gU+g=; b=dBtEMG92eEZHdClDq56O1wyuGWM8yhcJPwIg0bkHWdtktK9DbU6 0G8ghq//8WpHhuIKM49N8CI+XfTkjgrrS8nFg2ucRAdIr4az0KcBv+Iif7m9DcMl ItvOip9+0bs6af1+zeSSDMUWwOaMJaliqCI4je6txL74dScmpwdtE0XRTzGQeY9d juMxxZLYKthL8SXchQMna4FB0djkNBs/jucroEL/5pd0HrqmseEKEFA5Qmy0gIX7 R08R7p3Du8g6O1cg8p6GEsrgHfCy97bRm6FzFqjLQJ+DtzmxH3So5kTNi91Mg2d5 j9bzO/kCP4K5THSFbKpoSCWwBOXBlLJMfWg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t= 1695045422; x=1695131822; bh=zavPwp45wBczpgGCp8j7Tzewh5XtrYvg+AD WOD6gU+g=; b=XjMqIssww6n+kH4Ps+tDhCAYPij0vpcWL9bZ4dcHZsn7K6AjQGL bshyyaFNajs7tPNXgoCiieef8ZOh3pJJupz13TAg/Ce/vkCan8PELeyB/Um9uL45 b02AfWKEwcBIBa2Rjoqa7QlW1JZismplkupXS8++zgKNHdufs3E8uEAZgMMFpyzP GuJjFxnxIEdn22NgAnRnFnJxxim/W2yMAOAKo/U3QqtFzk1YKSxZmqcLduPBzr9M W+2a/n7ORqQK3yNdVwMyET6wDgyKUd8edJVECXYxKmcNuHtlYIkqLjHhySFu4x97 01+wDaOw/HtVeMnQ4D1FBYJaW5K9b9/g91w== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedviedrudejkedgieelucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepkfffgggfuffhvfevfhgjtgfgsehtkeertddtfeejnecuhfhrohhmpeffmhhi thhrhicuifhuthhovhcuoegumhhithhrhiesghhuthhovhdruggvvheqnecuggftrfgrth htvghrnhephfeftdejleetffelhfffteefgfeggfejgfdtudeuvedttdetvdelffekvdeg udetnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepug hmihhtrhihsehguhhtohhvrdguvghv X-ME-Proxy: Feedback-ID: i0e71465a:Fastmail Original-Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 18 Sep 2023 09:57:00 -0400 (EDT) Content-Language: en-US In-Reply-To: <4367c45c-95b3-6a29-4ba3-068a3c748452@gutov.dev> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:270795 Archived-At: On 18/09/2023 14:00, Dmitry Gutov wrote: > On 18/09/2023 09:51, Juri Linkov wrote: >>>> 'C-x p p C-x v L' to see a vc log in another project, and >>>> 'C-x p p C-x v d' to open vc-dir, etc. >>> All right, so we also want to support non-project commands. And you >>> wanted >>> to use a common approach for both. >>> >>> What if we handle them differently, though? For "project" commands >>> (those >>> that internally call project-current) we can set one variable, and >>> for the >>> rest -- alter default-directory. Then restore the previous value in >>> post-command. >>> >>> The detection of "project commands" could work like this: >>> >>> - Is it in one of the special maps? E.g. in project-prefix-map. Or maybe >>>    it's in project-switch-commands. >>> - Does the function name start with 'project-'? >>> - Finally, for user-defined commands we could also introduce a property >>>    'project-command-p', although the distinction between using >>>    project-current-directory-override vs default-directory will not be >>>    important for every such command, so maybe being this thorough is >>> not too >>>   important. >> Sorry, I don't understand how 'C-x p p' could read the user's mind >> whether the user afterwards will type a key for a project command >> or a non-project command?  And depending on user's intention will >> either set project-current-directory-override or default-directory. > > Ah, I forgot that in the general case we don't read the sequence, find > the command and do the thing. We leave the event loop up to Emacs. > > What about pre-command-hook? this-command will already be set by then. And we should consider whether other-project-prefix should entirely subsume project-switch-project. Or they should remain separate commands. E.g. would people who customized project-switch-commands to a symbol be okay with not being able to use the other functionality of other-project-prefix? Or what about the variable project-switch-use-entire-map? I'm not sure about dropping it, at least without notifying about that in the UI somehow. Finally, the current patch drops the loop, so if the user types the wrong key, they will need to repeat the command and choose the project again. So perhaps the simplest incremental change is to add other-project-prefix which will work with "regular" commands and keep project-switch-project for project commands (whether it will support "project" commands as well, can be optional). The downside is that it will require a different key binding (or for the user to redefine the current one), so I'm open to discussing all the questions above.