[nongnu] elpa/xah-fly-keys 437da97c5e: xah-show-in-desktop, when on windows, now just open file explorer, but not highlight the file. because highlight the file has problems. it flash the taskbar but
branch: elpa/xah-fly-keys commit 437da97c5eea9bf9f81c2280a26a8818e99a0efa Author: Xah Lee Commit: Xah Lee xah-show-in-desktop, when on windows, now just open file explorer, but not highlight the file. because highlight the file has problems. it flash the taskbar but doesn't bring the folder to front. and when the same folder with same file is called, it always open a new window. --- xah-fly-keys.el | 22 -- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/xah-fly-keys.el b/xah-fly-keys.el index 3b43ca26c4..f1ee61ccdd 100644 --- a/xah-fly-keys.el +++ b/xah-fly-keys.el @@ -3,11 +3,12 @@ ;; Copyright © 2013-2022 by Xah Lee ;; Author: Xah Lee ( http://xahlee.info/ ) -;; Version: 17.5.20220416101054 +;; Maintainer: Xah Lee +;; Version: 17.6.20220426002628 ;; Created: 10 Sep 2013 ;; Package-Requires: ((emacs "24.1")) ;; Keywords: convenience, emulations, vim, ergoemacs -;; License: GPL v3. Tell your friends to buy a copy. +;; License: GPL v3. ;; Homepage: http://xahlee.info/emacs/misc/ergoemacs_vi_mode.html ;; This file is not part of GNU Emacs. @@ -2642,7 +2643,7 @@ Version: 2015-04-09" This command can be called when in a file buffer or in `dired'. URL `http://xahlee.info/emacs/emacs/emacs_dired_open_file_in_ext_apps.html' -Version: 2020-11-20 2021-01-31 2021-11-12 2021-11-22" +Version: 2020-11-20 2022-04-20" (interactive) (let (($path (if (eq major-mode 'dired-mode) (if (eq nil (dired-get-marked-files)) @@ -2651,12 +2652,13 @@ Version: 2020-11-20 2021-01-31 2021-11-12 2021-11-22" (if (buffer-file-name) (buffer-file-name) default-directory (cond ((string-equal system-type "windows-nt") - ;; (shell-command (format "PowerShell -Command invoke-item '%s'" (expand-file-name default-directory ))) - (let (($cmd (format "Explorer /select,%s" - (replace-regexp-in-string "/" "\\" $path t t) - ;; (shell-quote-argument (replace-regexp-in-string "/" "\\" $path t t )) - ))) -(shell-command $cmd))) + (shell-command (format "PowerShell -Command invoke-item '%s'" (expand-file-name default-directory ))) + ;; (let (($cmd (format "Explorer /select,%s" + ;; (replace-regexp-in-string "/" "\\" $path t t) + ;; ;; (shell-quote-argument (replace-regexp-in-string "/" "\\" $path t t )) + ;; ))) + ;; (shell-command $cmd)) + ) ((string-equal system-type "darwin") (shell-command (concat "open -R " (shell-quote-argument $path @@ -4384,7 +4386,7 @@ minor modes loaded later may override bindings in this map.") misc -;; the following have keys in gnu emacs, but i decided not to give them a key, because either they are rarely used (say, 95% of emacs users usel them less than once a month ), or there is a more efficient command/workflow with key in xah-fly-keys +;; the following have keys in gnu emacs, but i decided not to give them a key, because either they are rarely used (say, 95% of emacs users use them less than once a month ), or there is a more efficient command/workflow with key in xah-fly-keys ;; C-x r w → window-configuration-to-register ;; C-x r f → frameset-to-register
[nongnu] elpa/git-commit fa8552d1d9: magit-visit-ref: Fix inverted condition
branch: elpa/git-commit commit fa8552d1d94a24f843ae3985d04657bcef45425d Author: Jell Commit: Jonas Bernoulli magit-visit-ref: Fix inverted condition Recent [1: 38cb9372dc] got the condition wrong. 1: 2022-03-25 38cb9372dc51df4767b30181db93f51f7ac856ab Add section-specific context-menus --- lisp/magit-refs.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/magit-refs.el b/lisp/magit-refs.el index 0452e66822..07b03d71f0 100644 --- a/lisp/magit-refs.el +++ b/lisp/magit-refs.el @@ -431,7 +431,7 @@ menu this command always behaves like `magit-show-commit'." (interactive) (if (and (derived-mode-p 'magit-refs-mode) (magit-section-match '(branch tag)) - (magit-menu-position)) + (not (magit-menu-position))) (let ((ref (oref (magit-current-section) value))) (cond (current-prefix-arg (cond ((memq 'focus-on-ref magit-visit-ref-behavior)
[elpa] externals/org 4280762e4c: org-refile: Restore previous behaviour of not revealing the refiled headline
branch: externals/org commit 4280762e4ca13c65e9189d13fab40543759eb68a Author: Ihor Radchenko Commit: Ihor Radchenko org-refile: Restore previous behaviour of not revealing the refiled headline * lisp/org-refile.el (org-refile): Do not reveal the refiled headline. This reverts the new behaviour accidentally introduced by org-fold patchset. See https://orgmode.org/list/87r15l5kce@gnu.org --- lisp/org-refile.el | 1 - 1 file changed, 1 deletion(-) diff --git a/lisp/org-refile.el b/lisp/org-refile.el index e87c3e9a99..6f2b019ad6 100644 --- a/lisp/org-refile.el +++ b/lisp/org-refile.el @@ -547,7 +547,6 @@ prefix argument (`C-u C-u C-u C-c C-w')." (goto-char (point-min)) (or (outline-next-heading) (goto-char (point-max) (unless (bolp) (newline)) - (org-fold-reveal) (org-paste-subtree level nil nil t) ;; Record information, according to `org-log-refile'. ;; Do not prompt for a note when refiling multiple
[nongnu] elpa/magit updated (3cb7f5ba43 -> fa8552d1d9)
elpasync pushed a change to branch elpa/magit. from 3cb7f5ba43 Support revisions that match commit message adds fa8552d1d9 magit-visit-ref: Fix inverted condition No new revisions were added by this update. Summary of changes: lisp/magit-refs.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
[nongnu] elpa/magit-section updated (3cb7f5ba43 -> fa8552d1d9)
elpasync pushed a change to branch elpa/magit-section. from 3cb7f5ba43 Support revisions that match commit message adds fa8552d1d9 magit-visit-ref: Fix inverted condition No new revisions were added by this update. Summary of changes: lisp/magit-refs.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
[elpa] externals/tmr 12ac2b080f 2/5: Rename tmr--notify-send to tmr--notify
branch: externals/tmr commit 12ac2b080f2eb884e8a5bf11ccdf9d8156fd1894 Author: Christian Tietze Commit: Protesilaos Stavrou Rename tmr--notify-send to tmr--notify tmr--notify itself will not send, but delegate sending to another function. So the "send" verb should be freed. Signed-off-by: Christian Tietze --- tmr.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tmr.el b/tmr.el index 010d12b580..475665dc49 100644 --- a/tmr.el +++ b/tmr.el @@ -169,8 +169,8 @@ Read: (info \"(elisp) Desktop Notifications\") for details." :urgency tmr-notification-urgency :sound-file tmr-sound-file)) -(defun tmr--notify-send (start &optional description) "Send system notification for timer with START time. +(defun tmr--notify (start &optional description) Optionally include DESCRIPTION." (let ((end (format-time-string "%T")) (desc-plain "") @@ -281,7 +281,7 @@ To cancel the timer, use the `tmr-cancel' command." object-desc (run-with-timer unit nil -'tmr--notify-send start description)) +'tmr--notify start description)) tmr--timers) (tmr--log-in-buffer object-desc)))
[elpa] externals/tmr 06cba12d4a 5/5: Add "Acknowledgements" section in the manual
branch: externals/tmr commit 06cba12d4a229dde704434a7e1840ac948cbc5f2 Author: Protesilaos Stavrou Commit: Protesilaos Stavrou Add "Acknowledgements" section in the manual In reference to commits e4fb57f, 12ac2b0, 2ecee44. Christian's patches probably don't pass the ~15 line threshold, though Christian will assign copyright to the FSF: I will wait for that to be done before tagging a new release. --- README.org | 12 1 file changed, 12 insertions(+) diff --git a/README.org b/README.org index d13c7e0874..8b805dc4d7 100644 --- a/README.org +++ b/README.org @@ -179,6 +179,18 @@ Everything is in place to set up the package. ;; `tmr-notification-urgency' `tmr-descriptions-list'. #+end_src +* Acknowledgements +:PROPERTIES: +:CUSTOM_ID: h:047ecc52-ca02-4424-a037-c5b6a02383de +:END: +#+cindex: Contributors + +TMR is meant to be a collective effort. Every bit of help matters. + ++ Author/maintainer :: Protesilaos Stavrou. + ++ Contributions to the code or manual :: Christian Tietze. + * GNU Free Documentation License :PROPERTIES: :CUSTOM_ID: h:b8b7def2-5ab0-4623-b3ef-2a1bd17bb42a
[elpa] externals/tmr e4fb57fc5b 3/5: Extract tmr--notify-send-notification
branch: externals/tmr commit e4fb57fc5b91d5e80fb9bdc21489cac3d7e73b03 Author: Christian Tietze Commit: Protesilaos Stavrou Extract tmr--notify-send-notification Signed-off-by: Christian Tietze --- tmr.el | 18 +- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/tmr.el b/tmr.el index 475665dc49..cd2b8dd306 100644 --- a/tmr.el +++ b/tmr.el @@ -169,8 +169,12 @@ Read: (info \"(elisp) Desktop Notifications\") for details." :urgency tmr-notification-urgency :sound-file tmr-sound-file)) - "Send system notification for timer with START time. +(defun tmr--notify-send-notification (title message) + "Send notification with TITLE and MESSAGE using `tmr-notify-function'." + (funcall tmr-notify-function title message)) + (defun tmr--notify (start &optional description) + "Send notification for timer with START time. Optionally include DESCRIPTION." (let ((end (format-time-string "%T")) (desc-plain "") @@ -178,14 +182,10 @@ Optionally include DESCRIPTION." (when description (setq desc-plain (concat "\n" description) desc-propertized (concat " [" (propertize description 'face 'bold) "]"))) -;; Read: (info "(elisp) Desktop Notifications") -(notifications-notify - :title "TMR Must Recur" - :body (format "Time is up!\nStarted: %s\nEnded: %s%s" - start end desc-plain) - :app-name "GNU Emacs" - :urgency tmr-notification-urgency - :sound-file tmr-sound-file) +(tmr--notify-send-notification + "TMR Must Recur" + (format "Time is up!\nStarted: %s\nEnded: %s%s" + start end desc-plain)) (message "TMR %s %s ; %s %s%s" (propertize "Start:" 'face 'success) start
[elpa] externals/tmr 2ecee44804 1/5: Define tmr-notify-function and tmr-notifications-notify implementation
branch: externals/tmr commit 2ecee44804cfc4fd1347fcca0679504e7f6d08c0 Author: Christian Tietze Commit: Protesilaos Stavrou Define tmr-notify-function and tmr-notifications-notify implementation Signed-off-by: Christian Tietze --- tmr.el | 17 + 1 file changed, 17 insertions(+) diff --git a/tmr.el b/tmr.el index f1683a571f..010d12b580 100644 --- a/tmr.el +++ b/tmr.el @@ -97,6 +97,12 @@ such notifications." :type '(repeat string) :group 'tmr) +(defcustom tmr-notify-function #'tmr-notifications-notify + "Function called to send notification. +It should take two string arguments: the title and the message." + :type 'function + :group 'tmr) + (defun tmr--unit (time) "Determine common time unit for TIME." (cond @@ -152,6 +158,17 @@ such notifications." win)) (user-error "No *tmr-messages* buffer; have you used `tmr'?"))) +(defun tmr-notifications-notify (title message) + "Dispatch notification titled TITLE with MESSAGE via D-Bus. + +Read: (info \"(elisp) Desktop Notifications\") for details." + (notifications-notify + :title title + :body message + :app-name "GNU Emacs" + :urgency tmr-notification-urgency + :sound-file tmr-sound-file)) + (defun tmr--notify-send (start &optional description) "Send system notification for timer with START time. Optionally include DESCRIPTION."
[elpa] externals/tmr 84f0e35e1b 4/5: Log when a timer is completed
branch: externals/tmr commit 84f0e35e1bf5c5156f702690314716d98703a38c Author: Protesilaos Stavrou Commit: Protesilaos Stavrou Log when a timer is completed --- tmr.el | 1 + 1 file changed, 1 insertion(+) diff --git a/tmr.el b/tmr.el index cd2b8dd306..5720f33c63 100644 --- a/tmr.el +++ b/tmr.el @@ -191,6 +191,7 @@ Optionally include DESCRIPTION." (propertize "Start:" 'face 'success) start (propertize "End:" 'face 'error) end desc-propertized) +(tmr--log-in-buffer (format "Completed at %s what started at %s" end start)) (unless (plist-get (notifications-get-capabilities) :sound) (tmr--play-sound
[elpa] externals/tmr updated (bf13ea9731 -> 06cba12d4a)
elpasync pushed a change to branch externals/tmr. from bf13ea9731 Update one-line description and add keywords new 2ecee44804 Define tmr-notify-function and tmr-notifications-notify implementation new 12ac2b080f Rename tmr--notify-send to tmr--notify new e4fb57fc5b Extract tmr--notify-send-notification new 84f0e35e1b Log when a timer is completed new 06cba12d4a Add "Acknowledgements" section in the manual Summary of changes: README.org | 12 tmr.el | 40 +--- 2 files changed, 41 insertions(+), 11 deletions(-)
[nongnu] elpa/pdf-tools 48cf7b89ae 2/2: Add to PKG_CONFIG_PATH, instead of replacing it.
branch: elpa/pdf-tools commit 48cf7b89ae752eb57f28d09fc14386e733cbb2f7 Author: Vedang Manerikar Commit: Vedang Manerikar Add to PKG_CONFIG_PATH, instead of replacing it. This is a better solution as it takes into account paths that have already been set up by users. Potentially fixes: #70 --- README.org | 4 ++-- server/autobuild | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.org b/README.org index 594e97569e..d6bb969671 100644 --- a/README.org +++ b/README.org @@ -92,9 +92,9 @@ Although macOS is not officially supported, it has been reported that ~pdf-tools $ brew install poppler automake #+END_SRC -You will also have to help ~pkg-config~ find some libraries by setting ~PKG_CONFIG_PATH~, e.g. +You will also have to help ~pkg-config~ find some libraries by setting ~PKG_CONFIG_PATH~. ~brew~ will show you which paths need to be added to ~PKG_CONFIG_PATH~ during the installation process. Make sure you export the paths to the env variable, eg: #+BEGIN_SRC sh - $ export PKG_CONFIG_PATH=/usr/local/Cellar/zlib/1.2.8/lib/pkgconfig:/usr/local/lib/pkgconfig:/opt/X11/lib/pkgconfig + $ export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:$(brew --prefix libffi)/lib/pkgconfig/:/usr/local/Cellar/zlib/1.2.8/lib/pkgconfig:/usr/local/lib/pkgconfig:/opt/X11/lib/pkgconfig" #+END_SRC or likewise within Emacs using ~setenv~. diff --git a/server/autobuild b/server/autobuild index c738f59d7a..f0b18f34ff 100755 --- a/server/autobuild +++ b/server/autobuild @@ -366,9 +366,9 @@ os_macos() { PKGARGS=install PACKAGES="pkg-config poppler automake" PKG_INSTALL_AS_ROOT= -# homebrew install libffi as keg-only, meaning we need to set +# brew installs libffi as keg-only, meaning we need to set # PKG_CONFIG_PATH manually so configure can find it -export PKG_CONFIG_PATH="$(brew --prefix libffi)/lib/pkgconfig/" +export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:$(brew --prefix libffi)/lib/pkgconfig/" elif which port >/dev/null 2>&1; then PKGCMD=port PKGARGS=install
[nongnu] elpa/pdf-tools ffba5f7208 1/2: Guard against dead buffers in pdf-tools-install-noverify
branch: elpa/pdf-tools commit ffba5f7208a2cf36df80fac9a17731f514f40060 Author: Daniel Nicolai Commit: Vedang Manerikar Guard against dead buffers in pdf-tools-install-noverify I am not sure how to 'consistently' reproduce the issue that this commit fixes. But I was experiencing the issue as reported at https://github.com/syl20bnr/spacemacs/issues/15106, where for some reason `pdf-view-mode` did not open in evil `evilified-state`. After (a long time of) hunting down the cause, I found that `pdf-tools` (silently) errors when the `buffer-list` contains killed buffers. The error occurs because `pdf-tools-install-noverify` calls `with-current-buffer` with the killed buffer. This commit simply adds the `buffer-live-p` check before the `with-current-buffer` form gets called. Closes: #93 Potentially Fixes: syl20bnr/spacemacs#15106 Author: @dalanicolai --- lisp/pdf-tools.el | 14 +- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/lisp/pdf-tools.el b/lisp/pdf-tools.el index 6f64d1ef01..9d15269286 100644 --- a/lisp/pdf-tools.el +++ b/lisp/pdf-tools.el @@ -433,11 +433,15 @@ See `pdf-view-mode' and `pdf-tools-enabled-modes'." (pdf-virtual-global-minor-mode 1)) (add-hook 'pdf-view-mode-hook #'pdf-tools-enable-minor-modes) (dolist (buf (buffer-list)) -(with-current-buffer buf - (when (and (not (derived-mode-p 'pdf-view-mode)) - (pdf-tools-pdf-buffer-p) - (buffer-file-name)) -(pdf-view-mode) +;; This when check should not be necessary, but somehow dead +;; buffers are showing up here. See +;; https://github.com/vedang/pdf-tools/pull/93 +(when (buffer-live-p buf) + (with-current-buffer buf +(when (and (not (derived-mode-p 'pdf-view-mode)) + (pdf-tools-pdf-buffer-p) + (buffer-file-name)) + (pdf-view-mode)) (defun pdf-tools-uninstall () "Uninstall PDF-Tools in all current and future PDF buffers."
[nongnu] elpa/helm 45ab83ee6e: Fix emacs-29 incompatible change with current-time
branch: elpa/helm commit 45ab83ee6ed4b1abb6542d963495745a3069045a Author: Thierry Volpiatto Commit: Thierry Volpiatto Fix emacs-29 incompatible change with current-time --- helm-core.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/helm-core.el b/helm-core.el index 96202a52b1..ec635732d2 100644 --- a/helm-core.el +++ b/helm-core.el @@ -1928,7 +1928,7 @@ Use optional arguments ARGS like in `format'." (buffer-disable-undo) (let ((inhibit-read-only t)) (goto-char (point-max)) -(insert (let ((tm (current-time))) +(insert (let ((tm (time-convert nil 'list))) (format (concat (if (string-match "Start session" format-string) "* " "** ") "%s.%06d (%s)\n %s\n")
[nongnu] elpa/pdf-tools updated (b867ea782b -> 48cf7b89ae)
elpasync pushed a change to branch elpa/pdf-tools. from b867ea782b Install automake on Mingw systems new ffba5f7208 Guard against dead buffers in pdf-tools-install-noverify new 48cf7b89ae Add to PKG_CONFIG_PATH, instead of replacing it. Summary of changes: README.org| 4 ++-- lisp/pdf-tools.el | 14 +- server/autobuild | 4 ++-- 3 files changed, 13 insertions(+), 9 deletions(-)
[nongnu] elpa/helm-core updated (2569c427f7 -> 45ab83ee6e)
elpasync pushed a change to branch elpa/helm-core. from 2569c427f7 Fix org table in doc adds 45ab83ee6e Fix emacs-29 incompatible change with current-time No new revisions were added by this update. Summary of changes: helm-core.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
[nongnu] elpa/pdf-tools 7a8d5c24f7: Add support for openSUSE except Micro
branch: elpa/pdf-tools commit 7a8d5c24f7ac0632afdfc9924bdf17bcf52065a4 Author: Pi-Cla Commit: Vedang Manerikar Add support for openSUSE except Micro I am not qualified to add support for the Micros versions of openSUSE, but this supports the most commonly used versions. --- server/autobuild | 28 1 file changed, 28 insertions(+) diff --git a/server/autobuild b/server/autobuild index f0b18f34ff..24db24a542 100755 --- a/server/autobuild +++ b/server/autobuild @@ -443,6 +443,32 @@ os_void() { return 0 } +# openSUSE (TODO: add support for micro versions) +os_opensuse() { +if [ -f "/etc/os-release" ]; then +. /etc/os-release +if [ "$ID" != "opensuse-leap" ] && [ "$ID" != "opensuse-tumbleweed" ]; then + return 1 +fi +else + return 1 +fi +PACKAGES="make + automake + autoconf + gcc + gcc-c++ + libpng16-devel + libpng16-compat-devel + zlib-devel + libpoppler-devel + libpoppler-glib-devel + glib2-devel" +PKGCMD=zypper +PKGARGS="install" +return 0 +} + # By Parameter --os os_argument() { [ -z "$OS" ] && return 1 @@ -458,6 +484,7 @@ os_argument() { msys2) os_msys2 "$@";; nixos) os_nixos "$@";; void)os_void"$@";; +opensuse) os_opensuse "$@";; *) echo "Invalid --os argument: $OS" exit 1 esac || { @@ -484,6 +511,7 @@ os_gentoo "$@" || \ os_msys2"$@" || \ os_nixos"$@" || \ os_void "$@" || \ +os_opensuse "$@" || \ { OS_IS_HANDLED= if [ -z "$DRY_RUN" ]; then
[elpa] externals/dtache b762fe472f: Announce development migration
branch: externals/dtache commit b762fe472f1a47d0f1808620d4468aee645654ee Author: Niklas Eklund Commit: Niklas Eklund Announce development migration --- README.org | 4 1 file changed, 4 insertions(+) diff --git a/README.org b/README.org index ee80be794e..01fc095f34 100644 --- a/README.org +++ b/README.org @@ -7,6 +7,10 @@ #+html: https://melpa.org/#/dtache";>https://melpa.org/packages/dtache-badge.svg"/> #+html: https://stable.melpa.org/#/dtache";>https://stable.melpa.org/packages/dtache-badge.svg"/> +* Announcement + +The development of the project has been migrated to =sourcehut=, it can now be found at [[https://git.sr.ht/~niklaseklund/dtache][https://git.sr.ht/~niklaseklund/dtache]]. + * Introduction :properties: :description: Why Dtache?
[elpa] externals/hyperbole updated (c7b5f2473f -> dc6c8dcfcd)
elpasync pushed a change to branch externals/hyperbole. from c7b5f2473f Add hui:delimited-selectable-thing tests (#190) new cff90c4a9a hyperbole-web-search: Handle functions as 'hyperbole-web-search-alist' values new 8bd09a3e7b Merge branch 'master' of hyperbole new 70cabbdea2 hkey-set-key: Turn into a command with interactive calling support new dc6c8dcfcd hyperbole-set-key: Change to bind cmds or Hypb minibuffer menu items in any keymap Summary of changes: ChangeLog| 15 +++ HY-NEWS | 4 ++-- hib-kbd.el | 17 ++--- hsettings.el | 27 +++ hui-mini.el | 48 +++- hyperbole.el | 15 +-- 6 files changed, 86 insertions(+), 40 deletions(-)
[elpa] externals/hyperbole cff90c4a9a 1/4: hyperbole-web-search: Handle functions as 'hyperbole-web-search-alist' values
branch: externals/hyperbole commit cff90c4a9a7a7dc00a1b6e1e92893fc7e5e42270 Author: Bob Weiner Commit: Bob Weiner hyperbole-web-search: Handle functions as 'hyperbole-web-search-alist' values --- ChangeLog| 3 +++ hsettings.el | 27 +++ 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index 431d1d5753..b83aa65ddd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2022-04-24 Bob Weiner +* hsettings.el (hyperbole-web-search): Handle functions as + 'hyperbole-web-search-alist' values. + * FAST-DEMO (Introduction, Hyperbole Explicit and Global Buttons): Add. * Makefile (help): Update Hyperbole maintainer Makefile doc diff --git a/hsettings.el b/hsettings.el index afcbfc1b5d..0b09279919 100644 --- a/hsettings.el +++ b/hsettings.el @@ -3,7 +3,7 @@ ;; Author: Bob Weiner ;; ;; Orig-Date:15-Apr-91 at 00:48:49 -;; Last-Mod: 17-Apr-22 at 11:18:39 by Bob Weiner +;; Last-Mod: 24-Apr-22 at 13:14:18 by Bob Weiner ;; ;; Copyright (C) 1991-2021 Free Software Foundation, Inc. ;; See the "HY-COPY" file for license information. @@ -141,7 +141,8 @@ lines" (defun hyperbole-default-web-search-term () "Return a default search term if region is active and not too large." (and (region-active-p) - (<= (count-lines (region-beginning) (region-end)) hyperbole-default-web-search-term-max-lines) + (<= (count-lines (region-beginning) (region-end)) + hyperbole-default-web-search-term-max-lines) (buffer-substring-no-properties (region-beginning) (region-end (defun hyperbole-read-web-search-arguments (&optional service-name search-term) @@ -164,15 +165,16 @@ package to display search results." (interactive) (cl-multiple-value-bind (service-name search-term) (hyperbole-read-web-search-arguments service-name search-term) -(let ((search-pat (cdr (assoc service-name hyperbole-web-search-alist +(let ((browse-url-browser-function hyperbole-web-search-browser-function) + (search-pat (cdr (assoc service-name hyperbole-web-search-alist (lambda (service1 service2) (equal (downcase service1) (downcase service2))) - (if search-pat - (let ((browse-url-browser-function -hyperbole-web-search-browser-function)) - (browse-url -(format search-pat (browse-url-url-encode-chars search-term "[*\"()',=;?% ]" - (user-error "(Hyperbole): Invalid web search service `%s'" service-name) + (setq search-term (browse-url-url-encode-chars search-term "[*\"()',=;?% ]")) + (cond ((stringp search-pat) +(browse-url (format search-pat search-term))) + ((functionp search-pat) +(funcall search-pat search-term)) + (t (user-error "(Hyperbole): Invalid web search service `%s'" service-name)) ;; This must be defined before the defcustom `inhbit-hyperbole-messaging'. ;;;###autoload @@ -242,12 +244,13 @@ Hyperbole, and then restart Emacs." ("Twitter" . "https://twitter.com/search?q=%s";) ("Wikipedia" . "https://en.wikipedia.org/wiki/%s";) ("Youtube" . "https://www.youtube.com/results?search_query=%s";)) - "*Alist of (web-service-name . url-with-%s-parameter-or-cmd) elements. + "*Alist of (web-service-name . emacs-cmd-or-url-with-%s-parameter) elements. The first capitalized character of each web-service-name must be unique. This custom option is used in the Hyperbole Find/Web menu where the %s in the url-with-%s-parameter is replaced with an interactively -obtained search string; if second argument is a command instead, then -it is called interactively to prompt for the search string." +obtained search term; if second argument is a command instead, then +it is called interactively to prompt for the search term with which it +then runs the search." :initialize #'custom-initialize-default :set (lambda (option value) (set option value)
[nongnu] elpa/cider 7506cc4613: [Fix #3183] Fix time subtraction bug in nrepl-client (#3184)
branch: elpa/cider commit 7506cc4613a5b71e5246fd83de347185b5d49c42 Author: Paul Eggert Commit: GitHub [Fix #3183] Fix time subtraction bug in nrepl-client (#3184) Port to future Emacs, and fix bug on current and older Emacs when the clock modulo 2**16 wraps around. --- nrepl-client.el | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/nrepl-client.el b/nrepl-client.el index 7eb1642ab5..92df9e9562 100644 --- a/nrepl-client.el +++ b/nrepl-client.el @@ -902,8 +902,9 @@ If TOOLING, use the tooling session rather than the standard session." (setq time0 (current-time))) ;; break out in case we don't receive a response for a while (when (and nrepl-sync-request-timeout - (> (cadr (time-subtract (current-time) time0)) - nrepl-sync-request-timeout)) + (time-less-p +nrepl-sync-request-timeout +(time-subtract nil time0))) (error "Sync nREPL request timed out %s" request))) ;; Clean up the response, otherwise we might repeatedly ask for input. (nrepl-dict-put response "status" (remove "need-input" status))
[elpa] externals/hyperbole dc6c8dcfcd 4/4: hyperbole-set-key: Change to bind cmds or Hypb minibuffer menu items in any keymap
branch: externals/hyperbole commit dc6c8dcfcd0cbc58e6c8811a50e7b4b6e21f935c Author: Bob Weiner Commit: Bob Weiner hyperbole-set-key: Change to bind cmds or Hypb minibuffer menu items in any keymap --- ChangeLog | 7 +++ HY-NEWS | 4 ++-- hib-kbd.el | 17 ++--- hui-mini.el | 48 +++- 4 files changed, 50 insertions(+), 26 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4d49f1cddd..e89d730950 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,12 @@ 2022-04-24 Bob Weiner +* hib-kbd.el (kbd-key:act): Fix to handle non-special key series that +contains more than one command, e.g "C-uC-n C-uC-n". + +* hui-mini.el (hyperbole-set-key): Generalize to bind commands or +Hyperbole minibuffer menu key strings in any keymap, with +(global-key-map) as a default. + * hyperbole.el (hkey-set-key): Turn into a command with interactive calling support. diff --git a/HY-NEWS b/HY-NEWS index 2be208b400..0a8b09cc81 100644 --- a/HY-NEWS +++ b/HY-NEWS @@ -87,8 +87,8 @@ ** TEST CASES *** Hyperbole Automated Testing: Extensive quality improvements throughout - Hyperbole thanks in part to over 200 test cases now included in the - test/ subdirectory. Simply run 'make test' or 'make test-all' from the + Hyperbole thanks in part to over 230 test cases now included in the + test/ subdirectory. Simply run 'make test-all' or 'make test' from the command-line when in the Hyperbole source directory and you should see all tests pass. If any fail, you can press the Action Key to see the source of the failure. Full testing is supported under POSIX systems diff --git a/hib-kbd.el b/hib-kbd.el index dca56b3862..5da56e163e 100644 --- a/hib-kbd.el +++ b/hib-kbd.el @@ -3,7 +3,7 @@ ;; Author: Bob Weiner ;; ;; Orig-Date:22-Nov-91 at 01:37:57 -;; Last-Mod: 17-Apr-22 at 12:53:49 by Bob Weiner +;; Last-Mod: 24-Apr-22 at 17:34:04 by Bob Weiner ;; ;; Copyright (C) 1991-2021 Free Software Foundation, Inc. ;; See the "HY-COPY" file for license information. @@ -85,7 +85,7 @@ Return t if the sequence appears to be valid, else nil." Key sequences should be in human readable form, e.g. {C-x C-b}, or what `key-description' returns. Forms such as {\C-b}, {\^b}, and {^M} will not be recognized. -Any key sequence must be a string of one of the following: +Any key sequence within the series must be a string of one of the following: a Hyperbole minibuffer menu item key sequence, a HyControl key sequence, a M-x extended command, @@ -148,14 +148,17 @@ Return t if KEY-SERIES appears valid, else nil." (setq current-prefix-arg nil) ;; Execution of the key-series may set it. (let ((binding (kbd-key:binding key-series))) (cond ((null binding) - (when (kbd-key:special-sequence-p key-series) -(kbd-key:execute-special-series key-series) -t)) + (if (kbd-key:special-sequence-p key-series) + (kbd-key:execute-special-series key-series) +(kbd-key:key-series-to-events key-series)) + t) ((memq binding '(action-key action-mouse-key hkey-either)) (beep) (message "(kbd-key:act): This key does what the Action Key does.") t) - (t (call-interactively binding) t + ((not (integerp binding)) + (call-interactively binding) + t (defun kbd-key:execute (key-series) "Execute a possibly non-normalized KEY-SERIES with or without curly brace delimiters. @@ -232,7 +235,7 @@ With optional prefix arg FULL, display full documentation for command." Key sequences should be in human readable form, e.g. {C-x C-b}, or what `key-description' returns. Forms such as {\C-b}, {\^b}, and {^M} will not be recognized. -Any key sequence must be a string of one of the following: +Any key sequence within the series must be a string of one of the following: a Hyperbole minibuffer menu item key sequence, a HyControl key sequence, a M-x extended command, diff --git a/hui-mini.el b/hui-mini.el index e3dec86834..b791a2201e 100644 --- a/hui-mini.el +++ b/hui-mini.el @@ -3,7 +3,7 @@ ;; Author: Bob Weiner ;; ;; Orig-Date:15-Oct-91 at 20:13:17 -;; Last-Mod: 17-Apr-22 at 11:24:59 by Bob Weiner +;; Last-Mod: 24-Apr-22 at 16:33:12 by Bob Weiner ;; ;; Copyright (C) 1991-2022 Free Software Foundation, Inc. ;; See the "HY-COPY" file for license information. @@ -91,34 +91,48 @@ With a prefix arg, display the older, more extensive DEMO file." (hypb:display-file-with-logo (if arg "DEMO" "FAST-DEMO"))) ;;;###autoload -(defun hyperbole-set-key (global-key menu-keys) - "Bind GLOBAL-KEY to Hyperbole minibuffer MENU-KEYS. -GLOBAL-KEY is a key sequence; noninteractively, it is a string or vector +(defun hyperbole-set-key (keymap key binding) + "In KEYMAP, bind KEY to Hyperbole minibuffer BINDING. +If KEYMAP is nil, use the va
[elpa] externals/hyperbole 70cabbdea2 3/4: hkey-set-key: Turn into a command with interactive calling support
branch: externals/hyperbole commit 70cabbdea2e1280a5e096191c25ee9108b51c097 Author: Bob Weiner Commit: Bob Weiner hkey-set-key: Turn into a command with interactive calling support --- ChangeLog| 5 + hyperbole.el | 15 +-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 693819ad56..4d49f1cddd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2022-04-24 Bob Weiner + +* hyperbole.el (hkey-set-key): Turn into a command with interactive +calling support. + 2022-04-24 Mats Lidell * test/hui-tests.el (hui--delimited-selectable-thing--in-cell-return-ref) diff --git a/hyperbole.el b/hyperbole.el index 2c0e27e43e..10e8952790 100644 --- a/hyperbole.el +++ b/hyperbole.el @@ -5,7 +5,7 @@ ;; Author: Bob Weiner ;; Maintainer: Bob Weiner , Mats Lidell ;; Created: 06-Oct-92 at 11:52:51 -;; Last-Mod: 17-Apr-22 at 17:35:31 by Bob Weiner +;; Last-Mod: 24-Apr-22 at 13:36:22 by Bob Weiner ;; Released: 03-May-21 ;; Version: 8.0.0pre ;; Keywords: comm, convenience, files, frames, hypermedia, languages, mail, matching, mouse, multimedia, outlines, tools, wp @@ -211,7 +211,18 @@ Third argument NO-ADD is ignored." (defun hkey-set-key (key command) "Define a Hyperbole global minor mode KEY bound to COMMAND." - (define-key hyperbole-mode-map key command)) + (interactive + (let* ((menu-prompting nil) + (key (read-key-sequence "Set Hyperbole key: " nil t))) + (list key + (read-command (format "Set key %s to command: " + (key-description key)) + (or (vectorp key) (stringp key) + (signal 'wrong-type-argument (list 'arrayp key))) + (prog1 (define-key hyperbole-mode-map key command) +(when (called-interactively-p 'interactive) + (message "{%s} set to invoke `%s' when Hyperbole is active" + (key-description key) command (defvar hmouse-middle-flag) (defvar hmouse-bindings-flag)
[elpa] externals/hyperbole 8bd09a3e7b 2/4: Merge branch 'master' of hyperbole
branch: externals/hyperbole commit 8bd09a3e7bc297deb5d2c4d00fa1ba7561a46bdb Merge: cff90c4a9a c7b5f2473f Author: Bob Weiner Commit: Bob Weiner Merge branch 'master' of hyperbole --- ChangeLog | 10 +++ test/hui-tests.el | 81 ++- 2 files changed, 90 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index b83aa65ddd..693819ad56 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2022-04-24 Mats Lidell + +* test/hui-tests.el (hui--delimited-selectable-thing--in-cell-return-ref) +(hui--delimited-selectable-thing--in-ibut-return-ibut-text) +(hui--delimited-selectable-thing--ibut-label-return-ibut-text) +(hui--delimited-selectable-thing--in-ebut-return-ebut-text) +(hui--delimited-selectable-thing--start-of-paired-delimiter) +(hui--delimited-selectable-thing--in-kcell-link-return-link): Add +tests for hui:delimited-selectable-thing. + 2022-04-24 Bob Weiner * hsettings.el (hyperbole-web-search): Handle functions as diff --git a/test/hui-tests.el b/test/hui-tests.el index f3ad751fdd..00335816b5 100644 --- a/test/hui-tests.el +++ b/test/hui-tests.el @@ -3,7 +3,7 @@ ;; Author: Mats Lidell ;; ;; Orig-Date:30-Jan-21 at 12:00:00 -;; Last-Mod: 20-Feb-22 at 22:22:23 by Bob Weiner +;; Last-Mod: 24-Apr-22 at 19:00:26 by Mats Lidell ;; ;; Copyright (C) 2021-2022 Free Software Foundation, Inc. ;; See the "HY-COPY" file for license information. @@ -239,6 +239,85 @@ Ensure modifying the button but keeping the label does not create a double label (hy-test-helpers-verify-hattr-at-p :actype 'actypes::link-to-Info-node :args (list info-node) :loc test-file :lbl-key "global"))) (delete-file test-file +(ert-deftest hui--delimited-selectable-thing--in-cell-return-ref () + "In kotl cell return klink ref." + (let ((kotl-file (make-temp-file "hypb" nil ".kotl"))) +(unwind-protect +(progn + (find-file kotl-file) + (setq klink (klink:parse (hui:delimited-selectable-thing))) + (should (string-match kotl-file (car klink))) + (should (string= (cadr klink) "1=01"))) + (delete-file kotl-file + +(ert-deftest hui--delimited-selectable-thing--in-ibut-return-ibut-text () + "In ibut return ibut text." + (let ((file (make-temp-file "hypb" nil ".txt"))) +(unwind-protect +(progn + (find-file file) + (insert file) + (goto-char 2) + (should (equal (hui:delimited-selectable-thing) file))) + (delete-file file + +(ert-deftest hui--delimited-selectable-thing--ibut-label-return-ibut-text () + "In ibut label return ibut text without label." + (let ((file (make-temp-file "hypb" nil ".txt"))) +(unwind-protect +(progn + (find-file file) + (insert "<[lnk]>: " file "\n") + (beginning-of-buffer) + (should (equal (hui:delimited-selectable-thing) file))) + (delete-file file + +(ert-deftest hui--delimited-selectable-thing--in-ebut-return-ebut-text () + "In ebut return ebut text." + (let ((file (make-temp-file "hypb" nil ".txt"))) +(unwind-protect +(progn + (find-file file) + (ebut:program "label" 'exec-shell-cmd "echo abc") + (beginning-of-buffer) + (should (equal (hui:delimited-selectable-thing) "<(label)>"))) + (delete-file file + +(ert-deftest hui--delimited-selectable-thing--start-of-paired-delimiter () + "At start of paired delimiter return text with delimiters." + (let ((file (make-temp-file "hypb" nil ".txt"))) +(unwind-protect +(progn + (find-file file) + (insert "(xyz)\n") + (beginning-of-buffer) + (emacs-lisp-mode) + (should (equal (hui:delimited-selectable-thing) "(xyz)"))) + (delete-file file + +(ert-deftest hui--delimited-selectable-thing--in-kcell-link-return-link () + "In kcell link return link." + (let ((kotl-file (make-temp-file "hypb" nil ".kotl")) +klink) +(unwind-protect +(progn + (find-file kotl-file) + (klink:create "1") + (kotl-mode:beginning-of-cell) + + ;; Outside of link + (setq klink (klink:parse (hui:delimited-selectable-thing))) + (should (string= (cadr klink) "1=01")) + (should (string-match kotl-file (car klink))) + + ;; Within link + (forward-char 1) + (should (looking-at-p "@ 1")) + (setq klink (klink:parse (hui:delimited-selectable-thing))) + (should (string= (cadr klink) "1")) + (should (string-match kotl-file (car klink + (delete-file kotl-file + ;; This file can't be byte-compiled without `with-simulated-input' which ;; is not part of the actual dependencies, so: ;; Local Variables:
[nongnu] elpa/magit-section updated (fa8552d1d9 -> 713bebef9e)
elpasync pushed a change to branch elpa/magit-section. from fa8552d1d9 magit-visit-ref: Fix inverted condition adds 713bebef9e magit--rev-dereference: Handle nil REV No new revisions were added by this update. Summary of changes: lisp/magit-git.el | 8 1 file changed, 4 insertions(+), 4 deletions(-)
[nongnu] elpa/magit updated (fa8552d1d9 -> 713bebef9e)
elpasync pushed a change to branch elpa/magit. from fa8552d1d9 magit-visit-ref: Fix inverted condition adds 713bebef9e magit--rev-dereference: Handle nil REV No new revisions were added by this update. Summary of changes: lisp/magit-git.el | 8 1 file changed, 4 insertions(+), 4 deletions(-)
[nongnu] elpa/git-commit 713bebef9e: magit--rev-dereference: Handle nil REV
branch: elpa/git-commit commit 713bebef9e7ff2a730282a934463d332147b6816 Author: Jonas Bernoulli Commit: Jonas Bernoulli magit--rev-dereference: Handle nil REV REV can also be nil, which we didn't take into account when adding this function in [1: 3cb7f5ba43]. Closes #4667. 1: 2022-04-25 3cb7f5ba430906bded9e5d9951f5260ab25644d0 Support revisions that match commit message --- lisp/magit-git.el | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lisp/magit-git.el b/lisp/magit-git.el index 65fa1b4ced..0604bbda5d 100644 --- a/lisp/magit-git.el +++ b/lisp/magit-git.el @@ -1287,10 +1287,10 @@ string \"true\", otherwise return nil." (defun magit--rev-dereference (rev) "Return a rev that forces Git to interpret REV as a commit. -If REV has the form \":/TEXT\", instead return it as-is" - (if (string-match-p "^:/" rev) - rev -(concat rev "^{commit}"))) +If REV is nil or has the form \":/TEXT\", return REV itself." + (cond ((not rev) nil) +((string-match-p "^:/" rev) rev) +(t (concat rev "^{commit}" (defun magit-rev-equal (a b) "Return t if there are no differences between the commits A and B."
[nongnu] elpa/visual-fill-column cdfe574a51: Update copyright statement to 2022.
branch: elpa/visual-fill-column commit cdfe574a51c4fc3519536fa3b169b01d5482d5df Author: Joost Kremers Commit: Joost Kremers Update copyright statement to 2022. --- visual-fill-column.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/visual-fill-column.el b/visual-fill-column.el index f5f22f99fb..44b9d9f276 100644 --- a/visual-fill-column.el +++ b/visual-fill-column.el @@ -1,6 +1,6 @@ ;;; visual-fill-column.el --- fill-column for visual-line-mode -*- lexical-binding: t -*- -;; Copyright (C) 2015-2020 Joost Kremers +;; Copyright (C) 2015-2022 Joost Kremers ;; Copyright (C) 2016 Martin Rudalics ;; All rights reserved.
[nongnu] elpa/pdf-tools 3ae9ba9ab9: Add pkgconf to opensuse build
branch: elpa/pdf-tools commit 3ae9ba9ab9aaa03d1193667cb025a786bef9fe9a Author: Pi-Cla Commit: Vedang Manerikar Add pkgconf to opensuse build Nearly forgot to add pkgconf. --- server/autobuild | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server/autobuild b/server/autobuild index 24db24a542..8b9c48230e 100755 --- a/server/autobuild +++ b/server/autobuild @@ -463,7 +463,8 @@ os_opensuse() { zlib-devel libpoppler-devel libpoppler-glib-devel - glib2-devel" + glib2-devel + pkgconf" PKGCMD=zypper PKGARGS="install" return 0
[nongnu] elpa/cider 201811ecd9 1/9: Save eval results into custom register
branch: elpa/cider commit 201811ecd905d97e08d33e7d845336844410aa2a Author: yuhan0 Commit: Bozhidar Batsov Save eval results into custom register --- cider-eval.el | 25 + 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/cider-eval.el b/cider-eval.el index e0f2e9a791..7c86321625 100644 --- a/cider-eval.el +++ b/cider-eval.el @@ -167,6 +167,15 @@ If t, save the file without confirmation." :group 'cider :package-version '(cider . "0.16.0")) +(defcustom cider-eval-register ?e + "The text register assigned to the most recent evaluation result. +When non-nil, the return value of all CIDER eval commands are +automatically written into this register." + :type '(choice character + (const nil)) + :group 'cider + :package-version '(cider . "1.4.0")) + ;;; Utilities @@ -651,7 +660,9 @@ The handler simply inserts the result value in BUFFER." (nrepl-make-response-handler (or buffer eval-buffer) (lambda (_buffer value) (with-current-buffer buffer - (insert value))) + (insert value)) + (when cider-eval-register + (set-register cider-eval-register value)) ) (lambda (_buffer out) (cider-repl-emit-interactive-stdout out)) (lambda (_buffer err) @@ -723,7 +734,9 @@ when `cider-auto-inspect-after-eval' is non-nil." (cider--make-fringe-overlays-for-region beg end) (setq fringed t)) (cider--make-fringe-overlay end)) - (cider--display-interactive-eval-result value end)) + (cider--display-interactive-eval-result value end) + (when cider-eval-register + (set-register cider-eval-register value))) (lambda (_buffer out) (cider-emit-interactive-eval-output out)) (lambda (_buffer err) @@ -768,7 +781,9 @@ Optional argument DONE-HANDLER lambda will be run once load is complete." (insert (if (derived-mode-p 'cider-clojure-interaction-mode) (format "\n%s\n" value) - value + value))) + (when cider-eval-register + (set-register cider-eval-register value))) (lambda (_buffer out) (cider-emit-interactive-eval-output out)) (lambda (_buffer err) @@ -785,7 +800,9 @@ comment prefix to use." (save-excursion (goto-char (marker-position location)) (insert (concat comment-prefix - value "\n") + value "\n" + (when cider-eval-register + (set-register cider-eval-register value))) (lambda (_buffer out) (cider-emit-interactive-eval-output out)) (lambda (_buffer err)
[nongnu] elpa/cider updated (7506cc4613 -> 2d3b18377a)
elpasync pushed a change to branch elpa/cider. from 7506cc4613 [Fix #3183] Fix time subtraction bug in nrepl-client (#3184) new 201811ecd9 Save eval results into custom register new 3e238465a0 Add command for saving last eval to kill ring new 5b4dbcb3a1 Add keybinding new 1d7916bfb5 Fix typo in pr-request-map new 33271f1342 Handle streaming of results in eval handlers new 1580f11941 Remove eval-register from printing handlers new a9679d33f1 Update changelog new 993a84041c Add docs for eval registers new 2d3b18377a [Docs] Document the connection hooks Summary of changes: CHANGELOG.md | 3 + cider-client.el | 4 +- cider-eval.el | 106 +++--- doc/modules/ROOT/pages/config/basic_config.adoc | 21 + doc/modules/ROOT/pages/usage/code_evaluation.adoc | 32 +++ 5 files changed, 133 insertions(+), 33 deletions(-)
[nongnu] elpa/cider 993a84041c 8/9: Add docs for eval registers
branch: elpa/cider commit 993a84041c03df8faff8426162073df9c7112e90 Author: yuhan0 Commit: Bozhidar Batsov Add docs for eval registers --- doc/modules/ROOT/pages/usage/code_evaluation.adoc | 32 +++ 1 file changed, 32 insertions(+) diff --git a/doc/modules/ROOT/pages/usage/code_evaluation.adoc b/doc/modules/ROOT/pages/usage/code_evaluation.adoc index 8bb5532964..07bebc83d9 100644 --- a/doc/modules/ROOT/pages/usage/code_evaluation.adoc +++ b/doc/modules/ROOT/pages/usage/code_evaluation.adoc @@ -275,6 +275,34 @@ Additionally, there's the variable `cider-redirect-server-output-to-repl` that c NOTE: The redirection functionality is implemented in `cider-nrepl` as nREPL middleware. If you're using CIDER without `cider-nrepl` no output redirection is going to take place. + + +=== Storing eval results + +By default CIDER stores the return value of the most recent evaluation command +in the text register `e`. You can access these contents via `insert-register` +(kbd:[C-x r i]). + +This is often useful for closer inspection or textual manipulation of a +transiently displayed eval result, without having to re-evaluate the form with a +specialized command like `cider-insert-last-sexp-in-repl`. + +You can customize which register is used with the variable `cider-eval-register`, or set +it to `nil` to disable the feature. + +[source,lisp] + +(setq cider-eval-register nil) + + +TIP: The built-in xref:debugging/inspector.adoc[inspector] can be used to view +and navigate through complex nested results. + +You can also use the command `cider-kill-last-result`(kbd:[C-c C-v k]) after any +eval command to store its result in the kill ring. This works even when the +`cider-eval-register` feature is disabled. + + == Keybindings You might have noticed that CIDER typically has 2-3 different keybindings for @@ -383,6 +411,10 @@ kbd:[C-u C-c C-c] | `cider-load-all-files` | kbd:[C-c C-M-l] | Load (eval) all Clojure files below a directory. + +| `cider-kill-last-result` +| kbd:[C-c C-v k] +| Save the last evaluated result into the kill ring. |=== TIP: You'll find all evaluation commands and their keybindings in the `CIDER Eval` menu.
[nongnu] elpa/cider 3e238465a0 2/9: Add command for saving last eval to kill ring
branch: elpa/cider commit 3e238465a0bb85082bec8db57d7c4d95cc9b0a77 Author: yuhan0 Commit: Bozhidar Batsov Add command for saving last eval to kill ring --- cider-eval.el | 6 ++ 1 file changed, 6 insertions(+) diff --git a/cider-eval.el b/cider-eval.el index 7c86321625..fdc58fbc2f 100644 --- a/cider-eval.el +++ b/cider-eval.el @@ -1310,6 +1310,12 @@ passing arguments." (form (format "(%s)" fn-name))) (cider-read-and-eval (cons form (length form) +(defun cider-kill-last-result () + "Save the last evaluated result into the kill ring." + (interactive) + (kill-new + (nrepl-dict-get (cider-nrepl-sync-request:eval "*1") "value"))) + ;; Eval keymaps (defvar cider-eval-pprint-commands-map (let ((map (define-prefix-command 'cider-eval-pprint-commands-map)))
[nongnu] elpa/cider 1580f11941 6/9: Remove eval-register from printing handlers
branch: elpa/cider commit 1580f119412c5c113d6394a6c7b3a27c6a0a8789 Author: yuhan0 Commit: Bozhidar Batsov Remove eval-register from printing handlers Results are already output to a buffer where they can be easily copied. Avoids storing huge results in memory and triggering the GC --- cider-eval.el | 33 - 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/cider-eval.el b/cider-eval.el index fe0cba1c67..e47f1824e2 100644 --- a/cider-eval.el +++ b/cider-eval.el @@ -788,23 +788,20 @@ Optional argument DONE-HANDLER lambda will be run once load is complete." (defun cider-eval-print-handler (&optional buffer) "Make a handler for evaluating and printing result in BUFFER." - (let ((res "")) -(nrepl-make-response-handler (or buffer (current-buffer)) - (lambda (buffer value) - (with-current-buffer buffer - (insert - (if (derived-mode-p 'cider-clojure-interaction-mode) - (format "\n%s\n" value) -value))) - (when cider-eval-register - (setq res (concat res value - (lambda (_buffer out) - (cider-emit-interactive-eval-output out)) - (lambda (_buffer err) - (cider-emit-interactive-eval-err-output err)) - (lambda (_buffer) - (when cider-eval-register - (set-register cider-eval-register res)) + ;; NOTE: cider-eval-register behavior is not implemented here for performance reasons. + ;; See https://github.com/clojure-emacs/cider/pull/3162 + (nrepl-make-response-handler (or buffer (current-buffer)) + (lambda (buffer value) + (with-current-buffer buffer + (insert +(if (derived-mode-p 'cider-clojure-interaction-mode) +(format "\n%s\n" value) + value + (lambda (_buffer out) + (cider-emit-interactive-eval-output out)) + (lambda (_buffer err) + (cider-emit-interactive-eval-err-output err)) + ())) (defun cider-eval-print-with-comment-handler (buffer location comment-prefix) "Make a handler for evaluating and printing commented results in BUFFER. @@ -871,6 +868,8 @@ COMMENT-POSTFIX is the text to output after the last line." (defun cider-popup-eval-handler (&optional buffer) "Make a handler for printing evaluation results in popup BUFFER. This is used by pretty-printing commands." + ;; NOTE: cider-eval-register behavior is not implemented here for performance reasons. + ;; See https://github.com/clojure-emacs/cider/pull/3162 (nrepl-make-response-handler (or buffer (current-buffer)) (lambda (buffer value)
[nongnu] elpa/cider a9679d33f1 7/9: Update changelog
branch: elpa/cider commit a9679d33f18c03b99583d44dfe5fdd0f5737548b Author: yuhan0 Commit: Bozhidar Batsov Update changelog --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d7b03af71..1b0f518497 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,9 @@ ## New features * Add new interactive command `cider-inspire-me`. It does what you'd expect. +* [#3162](https://github.com/clojure-emacs/cider/pull/3162): Save eval results into kill ring and registers. + * Add new customization variable `cider-eval-register` to automatically store the last interactive eval result into the specified register. + * Add interactive command `cider-kill-last-result` to manually save the last eval result into kill ring. ### Changes
[nongnu] elpa/cider 1d7916bfb5 4/9: Fix typo in pr-request-map
branch: elpa/cider commit 1d7916bfb5128f0a24565f2616d24ff82b7685f5 Author: yuhan0 Commit: Bozhidar Batsov Fix typo in pr-request-map It currently treats the 4-element list as a 2-element pair and ignores the intended setting of stream?, but this does not affect functionality since its default value is nil. --- cider-client.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cider-client.el b/cider-client.el index a523d998e5..00c906077a 100644 --- a/cider-client.el +++ b/cider-client.el @@ -397,8 +397,8 @@ is included in the request if non-nil." (seq-mapcat #'identity) (apply #'nrepl-dict (map-merge 'list - `(("nrepl.middleware.print/print" "cider.nrepl.pprint/pr" - "nrepl.middleware.print/stream?" nil)) + `(("nrepl.middleware.print/print" "cider.nrepl.pprint/pr") + ("nrepl.middleware.print/stream?" nil)) (unless (nrepl-dict-empty-p print-options) `(("nrepl.middleware.print/options" ,print-options))) (when cider-print-quota
[nongnu] elpa/cider 2d3b18377a 9/9: [Docs] Document the connection hooks
branch: elpa/cider commit 2d3b18377a9927fd0e70d77263576bc7e11a5904 Author: Bozhidar Batsov Commit: Bozhidar Batsov [Docs] Document the connection hooks --- doc/modules/ROOT/pages/config/basic_config.adoc | 21 + 1 file changed, 21 insertions(+) diff --git a/doc/modules/ROOT/pages/config/basic_config.adoc b/doc/modules/ROOT/pages/config/basic_config.adoc index d3f8c2de21..cedb71795f 100644 --- a/doc/modules/ROOT/pages/config/basic_config.adoc +++ b/doc/modules/ROOT/pages/config/basic_config.adoc @@ -265,3 +265,24 @@ wrapping instead of line truncating. IMPORTANT: This variable should be set *before* loading CIDER (which means before `require`-ing it or autoloading it). + +== nREPL Connection Hooks + +CIDER provides the hooks `cider-connected-hook` and `cider-disconnected-hook` +that get triggered when an nREPL connection is established or closed respectively. + +Here's how CIDER uses the first hook internally to display its famous inspirational +messages on connect: + +[source,lisp] + +(defun cider--maybe-inspire-on-connect () + "Display an inspiration connection message." + (when cider-connection-message-fn +(message "Connected! %s" (funcall cider-connection-message-fn + +(add-hook 'cider-connected-hook #'cider--maybe-inspire-on-connect) + + +NOTE: There are also lower-level `nrepl-connected-hook` and `nrepl-disconnected-hook` that CIDER uses internally. Most of the time end-users would be better off using +the CIDER-level hooks instead.
[nongnu] elpa/cider 5b4dbcb3a1 3/9: Add keybinding
branch: elpa/cider commit 5b4dbcb3a1a91719e314fbd585e9984620a07c0c Author: yuhan0 Commit: Bozhidar Batsov Add keybinding --- cider-eval.el | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cider-eval.el b/cider-eval.el index fdc58fbc2f..76791d48bf 100644 --- a/cider-eval.el +++ b/cider-eval.el @@ -1349,6 +1349,7 @@ passing arguments." (define-key map (kbd "z") #'cider-eval-defun-up-to-point) (define-key map (kbd "c") #'cider-eval-last-sexp-in-context) (define-key map (kbd "b") #'cider-eval-sexp-at-point-in-context) +(define-key map (kbd "k") #'cider-kill-last-result) (define-key map (kbd "f") 'cider-eval-pprint-commands-map) ;; duplicates with C- for convenience @@ -1364,6 +1365,7 @@ passing arguments." (define-key map (kbd "C-z") #'cider-eval-defun-up-to-point) (define-key map (kbd "C-c") #'cider-eval-last-sexp-in-context) (define-key map (kbd "C-b") #'cider-eval-sexp-at-point-in-context) +(define-key map (kbd "C-k") #'cider-kill-last-result) (define-key map (kbd "C-f") 'cider-eval-pprint-commands-map) map))
[nongnu] elpa/cider 33271f1342 5/9: Handle streaming of results in eval handlers
branch: elpa/cider commit 33271f1342747017edb1c9f7bc940e0c0254df07 Author: yuhan0 Commit: Bozhidar Batsov Handle streaming of results in eval handlers --- cider-eval.el | 116 ++ 1 file changed, 68 insertions(+), 48 deletions(-) diff --git a/cider-eval.el b/cider-eval.el index 76791d48bf..fe0cba1c67 100644 --- a/cider-eval.el +++ b/cider-eval.el @@ -656,18 +656,21 @@ evaluation command. Honor `cider-auto-jump-to-error'." (defun cider-insert-eval-handler (&optional buffer) "Make an nREPL evaluation handler for the BUFFER. The handler simply inserts the result value in BUFFER." - (let ((eval-buffer (current-buffer))) + (let ((eval-buffer (current-buffer)) +(res "")) (nrepl-make-response-handler (or buffer eval-buffer) (lambda (_buffer value) (with-current-buffer buffer (insert value)) (when cider-eval-register - (set-register cider-eval-register value)) ) + (setq res (concat res value (lambda (_buffer out) (cider-repl-emit-interactive-stdout out)) (lambda (_buffer err) (cider-handle-compilation-errors err eval-buffer)) - '( + (lambda (_buffer) + (when cider-eval-register + (set-register cider-eval-register res)) (defun cider--emit-interactive-eval-output (output repl-emit-function) "Emit output resulting from interactive code evaluation. @@ -726,17 +729,12 @@ when `cider-auto-inspect-after-eval' is non-nil." (end (or (car-safe (cdr-safe place)) place)) (beg (when beg (copy-marker beg))) (end (when end (copy-marker end))) - (fringed nil)) + (fringed nil) + (res "")) (nrepl-make-response-handler (or buffer eval-buffer) (lambda (_buffer value) - (if beg - (unless fringed - (cider--make-fringe-overlays-for-region beg end) - (setq fringed t)) - (cider--make-fringe-overlay end)) - (cider--display-interactive-eval-result value end) - (when cider-eval-register - (set-register cider-eval-register value))) + (setq res (concat res value)) + (cider--display-interactive-eval-result res end)) (lambda (_buffer out) (cider-emit-interactive-eval-output out)) (lambda (_buffer err) @@ -746,20 +744,31 @@ when `cider-auto-inspect-after-eval' is non-nil." (cider--display-interactive-eval-result err end 'cider-error-overlay-face))) (cider-handle-compilation-errors err eval-buffer)) - (when (and cider-auto-inspect-after-eval -(boundp 'cider-inspector-buffer) -(windowp (get-buffer-window cider-inspector-buffer 'visible))) - (lambda (buffer) + (lambda (buffer) + (if beg + (unless fringed + (cider--make-fringe-overlays-for-region beg end) + (setq fringed t)) + (cider--make-fringe-overlay end)) + (when (and cider-auto-inspect-after-eval + (boundp 'cider-inspector-buffer) + (windowp (get-buffer-window cider-inspector-buffer 'visible))) (cider-inspect-last-result) - (select-window (get-buffer-window buffer))) + (select-window (get-buffer-window buffer))) + (when cider-eval-register + (set-register cider-eval-register res)) + (defun cider-load-file-handler (&optional buffer done-handler) "Make a load file handler for BUFFER. Optional argument DONE-HANDLER lambda will be
[nongnu] elpa/cider cfea755de6: Remove a redundant eval
branch: elpa/cider commit cfea755de682bb91dd59ef7e789d4d2bb170efe1 Author: Bozhidar Batsov Commit: Bozhidar Batsov Remove a redundant eval --- cider-util.el | 6 ++ 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/cider-util.el b/cider-util.el index ece55fc3da..7a0e08f3ac 100644 --- a/cider-util.el +++ b/cider-util.el @@ -698,10 +698,8 @@ through a stack of help buffers. Variables `help-back-label' and (defun cider-random-words-of-inspiration () "Select a random entry from `cider-words-of-inspiration'." - ;; FIXME: Consider removing this eval. - (eval (nth (random (length cider-words-of-inspiration)) - cider-words-of-inspiration) -t)) + (nth (random (length cider-words-of-inspiration)) + cider-words-of-inspiration)) (defun cider-inspire-me () "Display a random inspiration message."