From unknown Sat Jun 14 19:07:13 2025 X-Loop: help-debbugs@gnu.org Subject: bug#73293: [PATCH] Add buffer-local register commands to doc-view Resent-From: Visuwesh Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 16 Sep 2024 12:14:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 73293 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: 73293@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.172648879515078 (code B ref -1); Mon, 16 Sep 2024 12:14:02 +0000 Received: (at submit) by debbugs.gnu.org; 16 Sep 2024 12:13:15 +0000 Received: from localhost ([127.0.0.1]:51233 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sqAbS-0003v8-Gz for submit@debbugs.gnu.org; Mon, 16 Sep 2024 08:13:15 -0400 Received: from lists.gnu.org ([209.51.188.17]:51978) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sqAbQ-0003uy-Ba for submit@debbugs.gnu.org; Mon, 16 Sep 2024 08:13:13 -0400 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 1sqAZ7-0005Ss-2M for bug-gnu-emacs@gnu.org; Mon, 16 Sep 2024 08:10:49 -0400 Received: from mail-pf1-x443.google.com ([2607:f8b0:4864:20::443]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sqAZ4-0008Nf-7v for bug-gnu-emacs@gnu.org; Mon, 16 Sep 2024 08:10:48 -0400 Received: by mail-pf1-x443.google.com with SMTP id d2e1a72fcca58-7191901abd6so1983320b3a.3 for ; Mon, 16 Sep 2024 05:10:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1726488643; x=1727093443; darn=gnu.org; h=mime-version:user-agent:message-id:date:subject:to:from:from:to:cc :subject:date:message-id:reply-to; bh=VA/MKxLYdaBUMehU0kOsIsmIGwugjPou+polLGjPi5s=; b=IUM0nv1bB74CHb434lz75keFiLVzfh4JHwgk+h/+JZEHpYvxvnH++OXBqEec+GW5/v XrHEa963zhkuYFjh0BdSdr1ZykERIp6vFakUx9Qbev73XofNIGoEIlpzDu8JGuKMb6nz DZQEr3xcbH9mIhz5U1m59BXKJTrkY7JNZtZlXRMLTLyctz4VTqPhJd+0v8FQ6kJybNeM tE+nJza8s0DsQeH8UVD1ETR2XWJXGpFPq7waeXjD8e6IlLoqLgRrmKgx7Z5MrJpxPLqL IkAni86W8LHu5fS6nPkoY8F3tDOd8j/WZ93L+cstjsMLxPDz07R/we/MLyTM/N2u9PQp k+CA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1726488643; x=1727093443; h=mime-version:user-agent:message-id:date:subject:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=VA/MKxLYdaBUMehU0kOsIsmIGwugjPou+polLGjPi5s=; b=dhBsrnGJ7ObkxQ3QNeu7HuHB323Z682YDlQ7kA/qFAnp/+JG5RlqsqTwBTI1m7QGCk 0vOOrvv9wp7u9Qouu0vaAumN1/t6k7J3JlLkXthH2qAUOt8hzvdayRGSo4hSo1ljEajh x/b5jooidlvqQNVtqtyQN3enw+Q/W4VOEG7IpcXAmz+LlEeOZmkjkG+BTC7Dd+HQ5Ikg 4fEDWJI8qxnbnOogX30civrl7r4BXfgWH/YRhvd/BpLXC7+SADsxTVvaBEtCNM+cM+VX TMwUzlX5weqL9PRbhE4jLaB4F/+5k7A7HtT0Ix7rHnntgacLghnfifzARV82ayWLXwuR 6rgA== X-Gm-Message-State: AOJu0YzeiMzR20RejtEfQg/NxH2QwFzCi7Jf7qQrDvhHbwL6GcwYPEmA cAeqAt3THd776fHMgA/vP43vOAD/GSozpSSIG+XFvtf8HflbWq59mIKvAlnq X-Google-Smtp-Source: AGHT+IHmOixWpWgvK9pFCvsCfWcshXgt7A17KAHp4eH0vowL7lhfggZM15ohgSOH4eqTsUZWkHS/vg== X-Received: by 2002:a05:6a20:e18a:b0:1d1:21a8:ee8d with SMTP id adf61e73a8af0-1d121a8ef34mr12566692637.22.1726488643285; Mon, 16 Sep 2024 05:10:43 -0700 (PDT) Received: from localhost ([1.7.159.70]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-71944b7b5b2sm3580144b3a.139.2024.09.16.05.10.41 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 16 Sep 2024 05:10:42 -0700 (PDT) From: Visuwesh Date: Mon, 16 Sep 2024 17:40:18 +0530 Message-ID: <87y13rx0id.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Received-SPF: pass client-ip=2607:f8b0:4864:20::443; envelope-from=visuweshm@gmail.com; helo=mail-pf1-x443.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.3 (-) 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.3 (--) --=-=-= Content-Type: text/plain Attached patch adds buffer-local registers to doc-view-mode. I have opted to make the registers buffer-local since I personally use the same mnemonic to save pages to the register in multiple buffers. It is something like folding a page or placing a pen in between to quickly go to-and-fro between those pages. In GNU Emacs 31.0.50 (build 7, x86_64-pc-linux-gnu, X toolkit, cairo version 1.18.0, Xaw scroll bars) of 2024-09-09 built on astatine Repository revision: 7d7aa65f63db78c5732f1580213fc3767b767a4a Repository branch: master Windowing system distributor 'The X.Org Foundation', version 11.0.12101011 System Description: Debian GNU/Linux trixie/sid Configured using: 'configure --with-sound=alsa --with-x-toolkit=lucid --without-xaw3d --without-gconf --without-libsystemd --with-cairo' --=-=-= Content-Type: text/patch Content-Disposition: attachment; filename=0001-Add-buffer-local-register-commands-to-doc-view.patch >From 415f3ba0ad07f113858eaa45b60b9bd66b09c7da Mon Sep 17 00:00:00 2001 From: Visuwesh Date: Sun, 15 Sep 2024 13:56:21 +0530 Subject: [PATCH] Add buffer-local register commands to doc-view * lisp/doc-view.el (doc-view-register-alist): New defvar to keep track of buffer-local register-alist. (doc-view-page-to-register, doc-view-jump-to-register): Add new commands to set and jump to buffer-local registers. (register-val-insert, register-val-describe) (register-val-jump-to): Register defmethod to save and restore doc-view registers. (doc-view-mode-map): Bind the new commands. * doc/emacs/misc.texi (DocView Navigation): Document the new commands. * etc/NEWS: Announce the change. --- doc/emacs/misc.texi | 10 +++++++++ etc/NEWS | 6 +++++ lisp/doc-view.el | 54 ++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 69 insertions(+), 1 deletion(-) diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi index eb157c146e7..e19e554fb26 100644 --- a/doc/emacs/misc.texi +++ b/doc/emacs/misc.texi @@ -593,6 +593,16 @@ DocView Navigation displayed using the variables @code{doc-view-imenu-format} and @code{doc-view-imenu-flatten}. +@findex doc-view-page-to-register +@findex doc-view-jump-to-register +@kindex m @r{(DocView mode)} +@kindex ' @r{(DocView mode)} + You can save the current page to a register with @kbd{m} +(@code{doc-view-page-to-register}) (@pxref{Registers}). However, these +registers are not shared across buffers and stay local to the DocView +buffer. You can later jump to the register with @kbd{'} +(@code{doc-view-jump-to-register}). + @node DocView Searching @subsection DocView Searching diff --git a/etc/NEWS b/etc/NEWS index c6f8b0062e4..607665a71bb 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -262,6 +262,12 @@ When switching to the plain text contents with 'doc-view-open-text', DocView now creates a dedicated buffer to display it. 'C-c C-c' gets you back to real DocView buffer if it still exists. ++++ +*** New commands to save and restore pages in buffer local registers. +Docview can store current page to buffer local registers with the new +command 'doc-view-page-to-register' (bound to 'm'), and later can be +restored with 'doc-view-jump-to-register' (bound to '''). + ** Tramp +++ diff --git a/lisp/doc-view.el b/lisp/doc-view.el index 0d89d63e03e..395993e6263 100644 --- a/lisp/doc-view.el +++ b/lisp/doc-view.el @@ -556,7 +556,10 @@ doc-view-mode-map "C-c C-c" #'doc-view-toggle-display ;; Open a new buffer with doc's text contents "C-c C-t" #'doc-view-open-text - "r" #'revert-buffer) + "r" #'revert-buffer + ;; Registers + "m" #'doc-view-page-to-register + "'" #'doc-view-jump-to-register) (define-obsolete-function-alias 'doc-view-revert-buffer #'revert-buffer "27.1") (defvar revert-buffer-preserve-modes) @@ -2468,6 +2471,55 @@ doc-view-bookmark-jump (put 'doc-view-bookmark-jump 'bookmark-handler-type "DocView") +;;; Register integration + +(defvar-local doc-view-register-alist nil + "Register alist containing only doc-view registers for current buffer. +Each doc-view register entry is of the form (doc-view . ALIST) where +ALIST has the keys `buffer', `file', and `page'. `buffer' is the buffer +the `file' is visiting. `page' is the page number to be show.") + +(defun doc-view-page-to-register (register) + "Store the current page to the register REGISTER." + (interactive + (let ((register-alist doc-view-register-alist)) + (list (register-read-with-preview "Page to register: ")))) + (let ((register-alist doc-view-register-alist)) + (set-register register + `(doc-view + (buffer . ,(current-buffer)) + (file . ,(buffer-file-name)) + (page . ,(doc-view-current-page)))) + (setq doc-view-register-alist register-alist))) + +(defun doc-view-jump-to-register (register) + "Jump to the register REGISTER." + (interactive + (let ((register-alist doc-view-register-alist)) + (list (register-read-with-preview "Jump to register: ")))) + (let ((register-alist doc-view-register-alist)) + (jump-to-register register))) + +(cl-defmethod register-val-insert ((val (head doc-view))) + (prin1 val)) + +(cl-defmethod register-val-describe ((val (head doc-view)) _verbose) + (let* ((alist (cdr val)) + (name (or (file-name-nondirectory (alist-get 'file alist)) + (buffer-name (alist-get 'buffer alist))))) + (princ name) + (princ " p. ") + (princ (alist-get 'page alist)))) + +(cl-defmethod register-val-jump-to ((val (head doc-view)) _arg) + (let* ((alist (cdr val)) + (buffer (or (alist-get 'buffer alist) + (find-buffer-visiting (alist-get 'file alist))))) + (unless buffer + (user-error "Cannot find the doc-view buffer to jump to")) + (switch-to-buffer buffer) + (doc-view-goto-page (alist-get 'page alist)))) + ;; Obsolete. (defun doc-view-intersection (l1 l2) -- 2.45.2 --=-=-=-- From unknown Sat Jun 14 19:07:13 2025 X-Loop: help-debbugs@gnu.org Subject: bug#73293: [PATCH] Add buffer-local register commands to doc-view Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 21 Sep 2024 10:30:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 73293 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Visuwesh , Tassilo Horn Cc: 73293@debbugs.gnu.org Received: via spool by 73293-submit@debbugs.gnu.org id=B73293.172691457123490 (code B ref 73293); Sat, 21 Sep 2024 10:30:02 +0000 Received: (at 73293) by debbugs.gnu.org; 21 Sep 2024 10:29:31 +0000 Received: from localhost ([127.0.0.1]:37365 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1srxMo-00066m-K7 for submit@debbugs.gnu.org; Sat, 21 Sep 2024 06:29:31 -0400 Received: from eggs.gnu.org ([209.51.188.92]:49066) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1srxMl-00066X-Ek for 73293@debbugs.gnu.org; Sat, 21 Sep 2024 06:29:28 -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 1srxML-0005Ax-SL; Sat, 21 Sep 2024 06:29:02 -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=e7aq0tVrdj+jw/A91+AipknNURcZBpAY3RqoxeqXVlk=; b=gIggFVB25oUV Fwq/TKci7YhTWCgFpP1a6RclERKUjMwP+yIvKemZCiMkJsxrHwDlW4upJCTcYBuPnZA2uwzksdSsZ PXWxh72DtEJ6sOuVSyYSHYKRjxxqvHLwRgv9y3nwITxsPAwD9UrZ4LRlEuMfuvSuRTrKnXGGXVPLD Tq/uZGWOhg+RR2FONoQV0my+F30tJoZd2YHYDb+MyLSAT+t+cdIkGiFRYITFm9tWA/NXsuOF7MdJ3 GTUPaY23DnMDydHdc7f1aCujd5MtAo9je7dBHI+DHMLaoGWpfLhrGrr4xFpq3uGtBrkrMBH7fPedy hbtEa2Q9Y099V9H9SaCwiA==; Date: Sat, 21 Sep 2024 13:28:58 +0300 Message-Id: <865xqp47x1.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <87y13rx0id.fsf@gmail.com> (message from Visuwesh on Mon, 16 Sep 2024 17:40:18 +0530) References: <87y13rx0id.fsf@gmail.com> X-Spam-Score: -2.3 (--) 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: -3.3 (---) > From: Visuwesh > Date: Mon, 16 Sep 2024 17:40:18 +0530 > > Attached patch adds buffer-local registers to doc-view-mode. I have > opted to make the registers buffer-local since I personally use the same > mnemonic to save pages to the register in multiple buffers. It is > something like folding a page or placing a pen in between to quickly go > to-and-fro between those pages. Thanks. Tassilo, any comments or suggestions? > In GNU Emacs 31.0.50 (build 7, x86_64-pc-linux-gnu, X toolkit, cairo > version 1.18.0, Xaw scroll bars) of 2024-09-09 built on astatine > Repository revision: 7d7aa65f63db78c5732f1580213fc3767b767a4a > Repository branch: master > Windowing system distributor 'The X.Org Foundation', version 11.0.12101011 > System Description: Debian GNU/Linux trixie/sid > > Configured using: > 'configure --with-sound=alsa --with-x-toolkit=lucid --without-xaw3d > --without-gconf --without-libsystemd --with-cairo' > > > >From 415f3ba0ad07f113858eaa45b60b9bd66b09c7da Mon Sep 17 00:00:00 2001 > From: Visuwesh > Date: Sun, 15 Sep 2024 13:56:21 +0530 > Subject: [PATCH] Add buffer-local register commands to doc-view > > * lisp/doc-view.el (doc-view-register-alist): New defvar to keep > track of buffer-local register-alist. > (doc-view-page-to-register, doc-view-jump-to-register): Add new > commands to set and jump to buffer-local registers. > (register-val-insert, register-val-describe) > (register-val-jump-to): Register defmethod to save and restore > doc-view registers. > (doc-view-mode-map): Bind the new commands. > * doc/emacs/misc.texi (DocView Navigation): Document the new > commands. > * etc/NEWS: Announce the change. > --- > doc/emacs/misc.texi | 10 +++++++++ > etc/NEWS | 6 +++++ > lisp/doc-view.el | 54 ++++++++++++++++++++++++++++++++++++++++++++- > 3 files changed, 69 insertions(+), 1 deletion(-) > > diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi > index eb157c146e7..e19e554fb26 100644 > --- a/doc/emacs/misc.texi > +++ b/doc/emacs/misc.texi > @@ -593,6 +593,16 @@ DocView Navigation > displayed using the variables @code{doc-view-imenu-format} and > @code{doc-view-imenu-flatten}. > > +@findex doc-view-page-to-register > +@findex doc-view-jump-to-register > +@kindex m @r{(DocView mode)} > +@kindex ' @r{(DocView mode)} > + You can save the current page to a register with @kbd{m} > +(@code{doc-view-page-to-register}) (@pxref{Registers}). However, these > +registers are not shared across buffers and stay local to the DocView > +buffer. You can later jump to the register with @kbd{'} > +(@code{doc-view-jump-to-register}). > + > @node DocView Searching > @subsection DocView Searching > > diff --git a/etc/NEWS b/etc/NEWS > index c6f8b0062e4..607665a71bb 100644 > --- a/etc/NEWS > +++ b/etc/NEWS > @@ -262,6 +262,12 @@ When switching to the plain text contents with 'doc-view-open-text', > DocView now creates a dedicated buffer to display it. 'C-c C-c' gets you > back to real DocView buffer if it still exists. > > ++++ > +*** New commands to save and restore pages in buffer local registers. > +Docview can store current page to buffer local registers with the new > +command 'doc-view-page-to-register' (bound to 'm'), and later can be > +restored with 'doc-view-jump-to-register' (bound to '''). > + > ** Tramp > > +++ > diff --git a/lisp/doc-view.el b/lisp/doc-view.el > index 0d89d63e03e..395993e6263 100644 > --- a/lisp/doc-view.el > +++ b/lisp/doc-view.el > @@ -556,7 +556,10 @@ doc-view-mode-map > "C-c C-c" #'doc-view-toggle-display > ;; Open a new buffer with doc's text contents > "C-c C-t" #'doc-view-open-text > - "r" #'revert-buffer) > + "r" #'revert-buffer > + ;; Registers > + "m" #'doc-view-page-to-register > + "'" #'doc-view-jump-to-register) > > (define-obsolete-function-alias 'doc-view-revert-buffer #'revert-buffer "27.1") > (defvar revert-buffer-preserve-modes) > @@ -2468,6 +2471,55 @@ doc-view-bookmark-jump > > (put 'doc-view-bookmark-jump 'bookmark-handler-type "DocView") > > +;;; Register integration > + > +(defvar-local doc-view-register-alist nil > + "Register alist containing only doc-view registers for current buffer. > +Each doc-view register entry is of the form (doc-view . ALIST) where > +ALIST has the keys `buffer', `file', and `page'. `buffer' is the buffer > +the `file' is visiting. `page' is the page number to be show.") > + > +(defun doc-view-page-to-register (register) > + "Store the current page to the register REGISTER." > + (interactive > + (let ((register-alist doc-view-register-alist)) > + (list (register-read-with-preview "Page to register: ")))) > + (let ((register-alist doc-view-register-alist)) > + (set-register register > + `(doc-view > + (buffer . ,(current-buffer)) > + (file . ,(buffer-file-name)) > + (page . ,(doc-view-current-page)))) > + (setq doc-view-register-alist register-alist))) > + > +(defun doc-view-jump-to-register (register) > + "Jump to the register REGISTER." > + (interactive > + (let ((register-alist doc-view-register-alist)) > + (list (register-read-with-preview "Jump to register: ")))) > + (let ((register-alist doc-view-register-alist)) > + (jump-to-register register))) > + > +(cl-defmethod register-val-insert ((val (head doc-view))) > + (prin1 val)) > + > +(cl-defmethod register-val-describe ((val (head doc-view)) _verbose) > + (let* ((alist (cdr val)) > + (name (or (file-name-nondirectory (alist-get 'file alist)) > + (buffer-name (alist-get 'buffer alist))))) > + (princ name) > + (princ " p. ") > + (princ (alist-get 'page alist)))) > + > +(cl-defmethod register-val-jump-to ((val (head doc-view)) _arg) > + (let* ((alist (cdr val)) > + (buffer (or (alist-get 'buffer alist) > + (find-buffer-visiting (alist-get 'file alist))))) > + (unless buffer > + (user-error "Cannot find the doc-view buffer to jump to")) > + (switch-to-buffer buffer) > + (doc-view-goto-page (alist-get 'page alist)))) > + > ;; Obsolete. > > (defun doc-view-intersection (l1 l2) > -- > 2.45.2 > From unknown Sat Jun 14 19:07:13 2025 X-Loop: help-debbugs@gnu.org Subject: bug#73293: [PATCH] Add buffer-local register commands to doc-view Resent-From: Tassilo Horn Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 23 Sep 2024 16:13:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 73293 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Eli Zaretskii Cc: 73293@debbugs.gnu.org, Visuwesh Received: via spool by 73293-submit@debbugs.gnu.org id=B73293.172710797626155 (code B ref 73293); Mon, 23 Sep 2024 16:13:01 +0000 Received: (at 73293) by debbugs.gnu.org; 23 Sep 2024 16:12:56 +0000 Received: from localhost ([127.0.0.1]:44667 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sslgG-0006nm-AK for submit@debbugs.gnu.org; Mon, 23 Sep 2024 12:12:56 -0400 Received: from eggs.gnu.org ([209.51.188.92]:59674) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sslgD-0006nS-1w for 73293@debbugs.gnu.org; Mon, 23 Sep 2024 12:12:54 -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 1sslfj-0007sQ-7S; Mon, 23 Sep 2024 12:12:23 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To: From; bh=jSc/uGR5vZCX40GYQBchE2iwEdiZDDcmIE7xJTNGnNY=; b=p1rCE8qKX+w1Clrba63O jdvo3kuytj9Z/KqczGaZJ45aStug8YFMGNRLie+iObRKWr+a0r9pr0GSik2GDpgdfMLAU6Ej/pZtI v7Ck/a2hslI2U1NozLqd7dA/aSejuRR9WlIRxhsC7lPFIjLBbTAWNOsgqnvjuPx9iHJ1EzoBj1Jl8 eUICKSAsRk/fr7/F3UPn4pCiV5t1GlB3yQNeyFNwiY45t7oJd9uSQ2LT0IisQYw+7PmNOHVYwtKmd G4tdCK035PzY/thHVtBJby7y2stLbcZExjlAWPHfuDBdAsDlogyOpPLqBkLg/3eLwvHrcknpnfZVJ RxgJYpYKLF0rAg==; X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrudelledgleelucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhephffvvefujghffgffkfggtgesthdtredttdertden ucfhrhhomhepvfgrshhsihhlohcujfhorhhnuceothhsughhsehgnhhurdhorhhgqeenuc ggtffrrghtthgvrhhnpeeluddvgeefuddvjeekfeetleegtefgveehhfeuffeuffeghefg ueefgfdvffegtdenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfh hrohhmpehthhhorhhnodhmvghsmhhtphgruhhthhhpvghrshhonhgrlhhithihqdekieej feekjeekgedqieefhedvleekqdhtshguhheppehgnhhurdhorhhgsehfrghsthhmrghilh drfhhmpdhnsggprhgtphhtthhopeefpdhmohguvgepshhmthhpohhuthdprhgtphhtthho peejfedvleefseguvggssghughhsrdhgnhhurdhorhhgpdhrtghpthhtohepvhhishhufi gvshhhmhesghhmrghilhdrtghomhdprhgtphhtthhopegvlhhiiiesghhnuhdrohhrgh X-ME-Proxy: Feedback-ID: ib2b94485:Fastmail From: Tassilo Horn In-Reply-To: <865xqp47x1.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 21 Sep 2024 13:28:58 +0300") References: <87y13rx0id.fsf@gmail.com> <865xqp47x1.fsf@gnu.org> User-Agent: mu4e 1.12.6; emacs 31.0.50 Date: Mon, 23 Sep 2024 18:12:19 +0200 Message-ID: <87plou4ae4.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) 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: -3.3 (---) Eli Zaretskii writes: >> From: Visuwesh >> Date: Mon, 16 Sep 2024 17:40:18 +0530 >> >> Attached patch adds buffer-local registers to doc-view-mode. I have >> opted to make the registers buffer-local since I personally use the same >> mnemonic to save pages to the register in multiple buffers. It is >> something like folding a page or placing a pen in between to quickly go >> to-and-fro between those pages. > > Thanks. > > Tassilo, any comments or suggestions? No, looks good and useful from my point of view. Bye, Tassilo From unknown Sat Jun 14 19:07:13 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Visuwesh Subject: bug#73293: closed (Re: bug#73293: [PATCH] Add buffer-local register commands to doc-view) Message-ID: References: <86ed546szr.fsf@gnu.org> <87y13rx0id.fsf@gmail.com> X-Gnu-PR-Message: they-closed 73293 X-Gnu-PR-Package: emacs X-Gnu-PR-Keywords: patch Reply-To: 73293@debbugs.gnu.org Date: Sat, 28 Sep 2024 09:15:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1727514902-27199-1" This is a multi-part message in MIME format... ------------=_1727514902-27199-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #73293: [PATCH] Add buffer-local register commands to doc-view which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 73293@debbugs.gnu.org. --=20 73293: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D73293 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1727514902-27199-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 73293-done) by debbugs.gnu.org; 28 Sep 2024 09:14:09 +0000 Received: from localhost ([127.0.0.1]:51825 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1suTWj-000739-AF for submit@debbugs.gnu.org; Sat, 28 Sep 2024 05:14:09 -0400 Received: from eggs.gnu.org ([209.51.188.92]:33830) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1suTWh-00072t-ON for 73293-done@debbugs.gnu.org; Sat, 28 Sep 2024 05:14:08 -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 1suTW8-0004hH-87; Sat, 28 Sep 2024 05:13:32 -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=iYiW8JYZbTB9i4+6oDNfUISEynm1G8i7uvnWGBvupH0=; b=BwCsh5cKHg9H BvRpFAIGg404pw1TfZ9WbZsMU+XmOWeVEKnxvFE1GHJDZEheTyY1n75Z2/Osf3VyEenA9codiMNo3 5011vFwrEc0Yvurl68I3f7OptMZCUlXzHWB7GlPIiW3CtxUf+uKyPCGl1sD+Mor+/fJt8V1Z3Urbl KZ3xsxgcvMK8VigKCj5GYhleslcke9UZmyWOqojae/QaQ1UhrZ17JHqNGq7ldlQm0QiHmI35l9p82 gN9BMeBAXP8oGYFuOHYBBxD8jTiEMm8gHJSH2yiuW181iUSgDd022gTqfeFOw8tiziK8RMXhH5HcG xghSBa2d0x/yPZsivsPBXA==; Date: Sat, 28 Sep 2024 12:13:28 +0300 Message-Id: <86ed546szr.fsf@gnu.org> From: Eli Zaretskii To: Visuwesh In-Reply-To: <87y13rx0id.fsf@gmail.com> (message from Visuwesh on Mon, 16 Sep 2024 17:40:18 +0530) Subject: Re: bug#73293: [PATCH] Add buffer-local register commands to doc-view References: <87y13rx0id.fsf@gmail.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 73293-done Cc: 73293-done@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: -3.3 (---) > From: Tassilo Horn > Cc: Visuwesh , 73293@debbugs.gnu.org > Date: Mon, 23 Sep 2024 18:12:19 +0200 > > Eli Zaretskii writes: > > >> From: Visuwesh > >> Date: Mon, 16 Sep 2024 17:40:18 +0530 > >> > >> Attached patch adds buffer-local registers to doc-view-mode. I have > >> opted to make the registers buffer-local since I personally use the same > >> mnemonic to save pages to the register in multiple buffers. It is > >> something like folding a page or placing a pen in between to quickly go > >> to-and-fro between those pages. > > > > Thanks. > > > > Tassilo, any comments or suggestions? > > No, looks good and useful from my point of view. Thanks, installed on master, and closing the bug. ------------=_1727514902-27199-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 16 Sep 2024 12:13:15 +0000 Received: from localhost ([127.0.0.1]:51233 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sqAbS-0003v8-Gz for submit@debbugs.gnu.org; Mon, 16 Sep 2024 08:13:15 -0400 Received: from lists.gnu.org ([209.51.188.17]:51978) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sqAbQ-0003uy-Ba for submit@debbugs.gnu.org; Mon, 16 Sep 2024 08:13:13 -0400 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 1sqAZ7-0005Ss-2M for bug-gnu-emacs@gnu.org; Mon, 16 Sep 2024 08:10:49 -0400 Received: from mail-pf1-x443.google.com ([2607:f8b0:4864:20::443]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sqAZ4-0008Nf-7v for bug-gnu-emacs@gnu.org; Mon, 16 Sep 2024 08:10:48 -0400 Received: by mail-pf1-x443.google.com with SMTP id d2e1a72fcca58-7191901abd6so1983320b3a.3 for ; Mon, 16 Sep 2024 05:10:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1726488643; x=1727093443; darn=gnu.org; h=mime-version:user-agent:message-id:date:subject:to:from:from:to:cc :subject:date:message-id:reply-to; bh=VA/MKxLYdaBUMehU0kOsIsmIGwugjPou+polLGjPi5s=; b=IUM0nv1bB74CHb434lz75keFiLVzfh4JHwgk+h/+JZEHpYvxvnH++OXBqEec+GW5/v XrHEa963zhkuYFjh0BdSdr1ZykERIp6vFakUx9Qbev73XofNIGoEIlpzDu8JGuKMb6nz DZQEr3xcbH9mIhz5U1m59BXKJTrkY7JNZtZlXRMLTLyctz4VTqPhJd+0v8FQ6kJybNeM tE+nJza8s0DsQeH8UVD1ETR2XWJXGpFPq7waeXjD8e6IlLoqLgRrmKgx7Z5MrJpxPLqL IkAni86W8LHu5fS6nPkoY8F3tDOd8j/WZ93L+cstjsMLxPDz07R/we/MLyTM/N2u9PQp k+CA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1726488643; x=1727093443; h=mime-version:user-agent:message-id:date:subject:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=VA/MKxLYdaBUMehU0kOsIsmIGwugjPou+polLGjPi5s=; b=dhBsrnGJ7ObkxQ3QNeu7HuHB323Z682YDlQ7kA/qFAnp/+JG5RlqsqTwBTI1m7QGCk 0vOOrvv9wp7u9Qouu0vaAumN1/t6k7J3JlLkXthH2qAUOt8hzvdayRGSo4hSo1ljEajh x/b5jooidlvqQNVtqtyQN3enw+Q/W4VOEG7IpcXAmz+LlEeOZmkjkG+BTC7Dd+HQ5Ikg 4fEDWJI8qxnbnOogX30civrl7r4BXfgWH/YRhvd/BpLXC7+SADsxTVvaBEtCNM+cM+VX TMwUzlX5weqL9PRbhE4jLaB4F/+5k7A7HtT0Ix7rHnntgacLghnfifzARV82ayWLXwuR 6rgA== X-Gm-Message-State: AOJu0YzeiMzR20RejtEfQg/NxH2QwFzCi7Jf7qQrDvhHbwL6GcwYPEmA cAeqAt3THd776fHMgA/vP43vOAD/GSozpSSIG+XFvtf8HflbWq59mIKvAlnq X-Google-Smtp-Source: AGHT+IHmOixWpWgvK9pFCvsCfWcshXgt7A17KAHp4eH0vowL7lhfggZM15ohgSOH4eqTsUZWkHS/vg== X-Received: by 2002:a05:6a20:e18a:b0:1d1:21a8:ee8d with SMTP id adf61e73a8af0-1d121a8ef34mr12566692637.22.1726488643285; Mon, 16 Sep 2024 05:10:43 -0700 (PDT) Received: from localhost ([1.7.159.70]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-71944b7b5b2sm3580144b3a.139.2024.09.16.05.10.41 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 16 Sep 2024 05:10:42 -0700 (PDT) From: Visuwesh To: bug-gnu-emacs@gnu.org Subject: [PATCH] Add buffer-local register commands to doc-view Date: Mon, 16 Sep 2024 17:40:18 +0530 Message-ID: <87y13rx0id.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Received-SPF: pass client-ip=2607:f8b0:4864:20::443; envelope-from=visuweshm@gmail.com; helo=mail-pf1-x443.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.3 (-) 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: -2.3 (--) --=-=-= Content-Type: text/plain Attached patch adds buffer-local registers to doc-view-mode. I have opted to make the registers buffer-local since I personally use the same mnemonic to save pages to the register in multiple buffers. It is something like folding a page or placing a pen in between to quickly go to-and-fro between those pages. In GNU Emacs 31.0.50 (build 7, x86_64-pc-linux-gnu, X toolkit, cairo version 1.18.0, Xaw scroll bars) of 2024-09-09 built on astatine Repository revision: 7d7aa65f63db78c5732f1580213fc3767b767a4a Repository branch: master Windowing system distributor 'The X.Org Foundation', version 11.0.12101011 System Description: Debian GNU/Linux trixie/sid Configured using: 'configure --with-sound=alsa --with-x-toolkit=lucid --without-xaw3d --without-gconf --without-libsystemd --with-cairo' --=-=-= Content-Type: text/patch Content-Disposition: attachment; filename=0001-Add-buffer-local-register-commands-to-doc-view.patch >From 415f3ba0ad07f113858eaa45b60b9bd66b09c7da Mon Sep 17 00:00:00 2001 From: Visuwesh Date: Sun, 15 Sep 2024 13:56:21 +0530 Subject: [PATCH] Add buffer-local register commands to doc-view * lisp/doc-view.el (doc-view-register-alist): New defvar to keep track of buffer-local register-alist. (doc-view-page-to-register, doc-view-jump-to-register): Add new commands to set and jump to buffer-local registers. (register-val-insert, register-val-describe) (register-val-jump-to): Register defmethod to save and restore doc-view registers. (doc-view-mode-map): Bind the new commands. * doc/emacs/misc.texi (DocView Navigation): Document the new commands. * etc/NEWS: Announce the change. --- doc/emacs/misc.texi | 10 +++++++++ etc/NEWS | 6 +++++ lisp/doc-view.el | 54 ++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 69 insertions(+), 1 deletion(-) diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi index eb157c146e7..e19e554fb26 100644 --- a/doc/emacs/misc.texi +++ b/doc/emacs/misc.texi @@ -593,6 +593,16 @@ DocView Navigation displayed using the variables @code{doc-view-imenu-format} and @code{doc-view-imenu-flatten}. +@findex doc-view-page-to-register +@findex doc-view-jump-to-register +@kindex m @r{(DocView mode)} +@kindex ' @r{(DocView mode)} + You can save the current page to a register with @kbd{m} +(@code{doc-view-page-to-register}) (@pxref{Registers}). However, these +registers are not shared across buffers and stay local to the DocView +buffer. You can later jump to the register with @kbd{'} +(@code{doc-view-jump-to-register}). + @node DocView Searching @subsection DocView Searching diff --git a/etc/NEWS b/etc/NEWS index c6f8b0062e4..607665a71bb 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -262,6 +262,12 @@ When switching to the plain text contents with 'doc-view-open-text', DocView now creates a dedicated buffer to display it. 'C-c C-c' gets you back to real DocView buffer if it still exists. ++++ +*** New commands to save and restore pages in buffer local registers. +Docview can store current page to buffer local registers with the new +command 'doc-view-page-to-register' (bound to 'm'), and later can be +restored with 'doc-view-jump-to-register' (bound to '''). + ** Tramp +++ diff --git a/lisp/doc-view.el b/lisp/doc-view.el index 0d89d63e03e..395993e6263 100644 --- a/lisp/doc-view.el +++ b/lisp/doc-view.el @@ -556,7 +556,10 @@ doc-view-mode-map "C-c C-c" #'doc-view-toggle-display ;; Open a new buffer with doc's text contents "C-c C-t" #'doc-view-open-text - "r" #'revert-buffer) + "r" #'revert-buffer + ;; Registers + "m" #'doc-view-page-to-register + "'" #'doc-view-jump-to-register) (define-obsolete-function-alias 'doc-view-revert-buffer #'revert-buffer "27.1") (defvar revert-buffer-preserve-modes) @@ -2468,6 +2471,55 @@ doc-view-bookmark-jump (put 'doc-view-bookmark-jump 'bookmark-handler-type "DocView") +;;; Register integration + +(defvar-local doc-view-register-alist nil + "Register alist containing only doc-view registers for current buffer. +Each doc-view register entry is of the form (doc-view . ALIST) where +ALIST has the keys `buffer', `file', and `page'. `buffer' is the buffer +the `file' is visiting. `page' is the page number to be show.") + +(defun doc-view-page-to-register (register) + "Store the current page to the register REGISTER." + (interactive + (let ((register-alist doc-view-register-alist)) + (list (register-read-with-preview "Page to register: ")))) + (let ((register-alist doc-view-register-alist)) + (set-register register + `(doc-view + (buffer . ,(current-buffer)) + (file . ,(buffer-file-name)) + (page . ,(doc-view-current-page)))) + (setq doc-view-register-alist register-alist))) + +(defun doc-view-jump-to-register (register) + "Jump to the register REGISTER." + (interactive + (let ((register-alist doc-view-register-alist)) + (list (register-read-with-preview "Jump to register: ")))) + (let ((register-alist doc-view-register-alist)) + (jump-to-register register))) + +(cl-defmethod register-val-insert ((val (head doc-view))) + (prin1 val)) + +(cl-defmethod register-val-describe ((val (head doc-view)) _verbose) + (let* ((alist (cdr val)) + (name (or (file-name-nondirectory (alist-get 'file alist)) + (buffer-name (alist-get 'buffer alist))))) + (princ name) + (princ " p. ") + (princ (alist-get 'page alist)))) + +(cl-defmethod register-val-jump-to ((val (head doc-view)) _arg) + (let* ((alist (cdr val)) + (buffer (or (alist-get 'buffer alist) + (find-buffer-visiting (alist-get 'file alist))))) + (unless buffer + (user-error "Cannot find the doc-view buffer to jump to")) + (switch-to-buffer buffer) + (doc-view-goto-page (alist-get 'page alist)))) + ;; Obsolete. (defun doc-view-intersection (l1 l2) -- 2.45.2 --=-=-=-- ------------=_1727514902-27199-1--