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.bugs Subject: bug#69566: Context menu for project Date: Tue, 12 Mar 2024 19:18:11 +0200 Organization: LINKOV.NET Message-ID: <86y1anpedg.fsf@mail.linkov.net> References: <865xy0mxfr.fsf@mail.linkov.net> <5d0a1570-914b-4763-bb06-6027ee632e1e@gutov.dev> <865xxu2ew2.fsf@mail.linkov.net> <1473f7be-6004-48e1-96c2-74b76618a7c2@gutov.dev> 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="12656"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu) Cc: 69566@debbugs.gnu.org To: Dmitry Gutov Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Mar 12 18:36:53 2024 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 1rk63Y-0003Ai-AG for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 12 Mar 2024 18:36:52 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rk63J-0001t1-Lj; Tue, 12 Mar 2024 13:36:37 -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 1rk63D-0001rw-29 for bug-gnu-emacs@gnu.org; Tue, 12 Mar 2024 13:36:31 -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 1rk63A-0007WB-DY for bug-gnu-emacs@gnu.org; Tue, 12 Mar 2024 13:36:30 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rk63i-00020K-Uk for bug-gnu-emacs@gnu.org; Tue, 12 Mar 2024 13:37:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Juri Linkov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 12 Mar 2024 17:37:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 69566 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 69566-submit@debbugs.gnu.org id=B69566.17102649687590 (code B ref 69566); Tue, 12 Mar 2024 17:37:02 +0000 Original-Received: (at 69566) by debbugs.gnu.org; 12 Mar 2024 17:36:08 +0000 Original-Received: from localhost ([127.0.0.1]:43735 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rk62p-0001yM-Hg for submit@debbugs.gnu.org; Tue, 12 Mar 2024 13:36:07 -0400 Original-Received: from relay9-d.mail.gandi.net ([217.70.183.199]:35585) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rk62l-0001x3-Ov for 69566@debbugs.gnu.org; Tue, 12 Mar 2024 13:36:06 -0400 Original-Received: by mail.gandi.net (Postfix) with ESMTPSA id 4F4AAFF803; Tue, 12 Mar 2024 17:35:01 +0000 (UTC) In-Reply-To: <1473f7be-6004-48e1-96c2-74b76618a7c2@gutov.dev> (Dmitry Gutov's message of "Sun, 10 Mar 2024 19:52:55 +0200") X-GND-Sasl: juri@linkov.net 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:281531 Archived-At: --=-=-= Content-Type: text/plain >> But the problem is that by its name prefix 'project-' >> it belongs to project.el. Or maybe rename it to >> 'menu-bar-project-entry'? > > Yes, I guess something like that. Ok, here is with 'menu-bar-project-item': --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=menu-bar-project-item.patch diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el index 5b290899ff5..320fabb54cf 100644 --- a/lisp/menu-bar.el +++ b/lisp/menu-bar.el @@ -1838,6 +1838,9 @@ menu-bar-project-menu (bindings--define-key menu [project-open-file] '(menu-item "Open File..." project-find-file :help "Open an existing file that belongs to current project")) menu)) +(defvar menu-bar-project-item + `(menu-item "Project" ,menu-bar-project-menu)) + (defun menu-bar-read-mail () "Read mail using `read-mail-command'." (interactive) @@ -1925,7 +1928,7 @@ menu-bar-tools-menu :help "Start language server suitable for this buffer's major-mode")) (bindings--define-key menu [project] - `(menu-item "Project" ,menu-bar-project-menu)) + menu-bar-project-item) (bindings--define-key menu [ede] '(menu-item "Project Support (EDE)" diff --git a/lisp/mouse.el b/lisp/mouse.el index 26835437c08..cef88dede8a 100644 --- a/lisp/mouse.el +++ b/lisp/mouse.el @@ -393,6 +393,7 @@ context-menu-functions (function-item context-menu-local) (function-item context-menu-minor) (function-item context-menu-buffers) + (function-item context-menu-project) (function-item context-menu-vc) (function-item context-menu-ffap) (function-item hi-lock-context-menu) @@ -533,6 +534,12 @@ context-menu-buffers (mouse-buffer-menu-keymap)) menu) +(defun context-menu-project (menu _click) + "Populate MENU with project commands." + (define-key-after menu [separator-project] menu-bar-separator) + (define-key-after menu [project-menu] menu-bar-project-item) + menu) + (defun context-menu-vc (menu _click) "Populate MENU with Version Control commands." (define-key-after menu [separator-vc] menu-bar-separator) diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el index 9622b1b6768..e2559617c20 100644 --- a/lisp/progmodes/project.el +++ b/lisp/progmodes/project.el @@ -2140,12 +2143,10 @@ project-mode-line :group 'project :version "30.1") -(defvar project-menu-entry - `(menu-item "Project" ,(bound-and-true-p menu-bar-project-menu))) - (defvar project-mode-line-map (let ((map (make-sparse-keymap))) - (define-key map [mode-line down-mouse-1] project-menu-entry) + (define-key map [mode-line down-mouse-1] + (bound-and-true-p menu-bar-project-item)) map)) (defvar project-mode-line-face nil --=-=-=--