[elpa] externals/org 99b65bb212 2/4: org-babel-map-inline-src-blocks: Avoid using `save-match-data'
branch: externals/org commit 99b65bb2127d739f30b144bbca0b0e409bae222d Author: Ihor Radchenko Commit: Ihor Radchenko org-babel-map-inline-src-blocks: Avoid using `save-match-data' * lisp/ob-core.el (org-babel-map-inline-src-blocks): Drop `save-match-data' as it may be costly. --- lisp/ob-core.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lisp/ob-core.el b/lisp/ob-core.el index 0aacc7d5ef..dd82aa790f 100644 --- a/lisp/ob-core.el +++ b/lisp/ob-core.el @@ -1309,9 +1309,9 @@ buffer." (setq ,to-be-removed (current-buffer)) (goto-char (point-min)) (while (re-search-forward "src_\\S-" nil t) - (let ((,datum (save-match-data (org-element-context + (let ((,datum (org-element-context))) (when (org-element-type-p ,datum 'inline-src-block) - (goto-char (match-beginning 0)) + (goto-char (org-element-begin ,datum)) (let ((,end (copy-marker (org-element-end ,datum ,@body (goto-char ,end)
[elpa] externals/org 9f12a1b9e4 4/4: org-babel-map-executables: Avoid using `save-match-data'
branch: externals/org commit 9f12a1b9e496d1fcf506a92d07aebc82632b7b78 Author: Ihor Radchenko Commit: Ihor Radchenko org-babel-map-executables: Avoid using `save-match-data' * lisp/ob-core.el (org-babel-map-executables): Drop `save-match-data' as it may be costly. --- lisp/ob-core.el | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lisp/ob-core.el b/lisp/ob-core.el index 44dcf60ae7..8ba8948229 100644 --- a/lisp/ob-core.el +++ b/lisp/ob-core.el @@ -1367,11 +1367,12 @@ buffer." (goto-char (point-min)) (while (re-search-forward "\\(call\\|src\\)_\\|^[ \t]*#\\+\\(BEGIN_SRC\\|CALL:\\)" nil t) - (let ((,datum (save-match-data (org-element-context + (let ((,datum (org-element-context))) (when (org-element-type-p ,datum '(babel-call inline-babel-call inline-src-block src-block)) - (goto-char (match-beginning 0)) + (goto-char (or (org-element-post-affiliated ,datum) + (org-element-begin ,datum))) (let ((,end (copy-marker (org-element-end ,datum ,@body (goto-char ,end)
[elpa] externals-release/org 21171d1366: * testing/lisp/test-org.el (test-org/insert-heading): Fix test
branch: externals-release/org commit 21171d13664d13fdbf051e6996eb6889c2a1f528 Author: Ihor Radchenko Commit: Ihor Radchenko * testing/lisp/test-org.el (test-org/insert-heading): Fix test The test itself is wrong - `org-insert-heading' was correctly obeying blank before the entry at point when inserting a new heading. --- testing/lisp/test-org.el | 6 ++ 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/testing/lisp/test-org.el b/testing/lisp/test-org.el index 0a3583fd7c..66c3bbdadd 100644 --- a/testing/lisp/test-org.el +++ b/testing/lisp/test-org.el @@ -1868,14 +1868,12 @@ CLOCK: [2022-09-17 sam. 11:00]--[2022-09-17 sam. 11:46] => 0:46" (buffer-string (should (equal -" -* 1 +"* 1 ** 1.1 ** 1.2 * * 2" -(org-test-with-temp-text " -* 1 +(org-test-with-temp-text "* 1 ** 1.1 ** 1.2 * 2"
[elpa] externals/org b22ebf8c78 1/4: Merge branch 'bugfix'
branch: externals/org commit b22ebf8c78fa938dba3a119050dacf7fad719ed8 Merge: 1dcde9889b 21171d1366 Author: Ihor Radchenko Commit: Ihor Radchenko Merge branch 'bugfix'
[elpa] externals/org 05064052ad 3/4: org-babel-map-call-lines: Avoid using `save-match-data'
branch: externals/org commit 05064052ad0dfec93536dfcc17b460a9b2570e34 Author: Ihor Radchenko Commit: Ihor Radchenko org-babel-map-call-lines: Avoid using `save-match-data' * lisp/ob-core.el (org-babel-map-call-lines): Drop `save-match-data' as it may be costly. --- lisp/ob-core.el | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lisp/ob-core.el b/lisp/ob-core.el index dd82aa790f..44dcf60ae7 100644 --- a/lisp/ob-core.el +++ b/lisp/ob-core.el @@ -1337,9 +1337,10 @@ buffer." (setq ,to-be-removed (current-buffer)) (goto-char (point-min)) (while (re-search-forward "call_\\S-\\|^[ \t]*#\\+CALL:" nil t) - (let ((,datum (save-match-data (org-element-context + (let ((,datum (org-element-context))) (when (org-element-type-p ,datum '(babel-call inline-babel-call)) - (goto-char (match-beginning 0)) + (goto-char (or (org-element-post-affiliated datum) + (org-element-begin datum))) (let ((,end (copy-marker (org-element-end ,datum ,@body (goto-char ,end)
[elpa] externals/org updated (1dcde9889b -> 9f12a1b9e4)
elpasync pushed a change to branch externals/org. from 1dcde9889b Merge branch 'bugfix' new 21171d1366 * testing/lisp/test-org.el (test-org/insert-heading): Fix test new b22ebf8c78 Merge branch 'bugfix' new 99b65bb212 org-babel-map-inline-src-blocks: Avoid using `save-match-data' new 05064052ad org-babel-map-call-lines: Avoid using `save-match-data' new 9f12a1b9e4 org-babel-map-executables: Avoid using `save-match-data' Summary of changes: lisp/ob-core.el | 14 -- 1 file changed, 8 insertions(+), 6 deletions(-)
[nongnu] elpa/with-editor 10ecb9e75c: Use emacsclient-program-name if that is bound
branch: elpa/with-editor commit 10ecb9e75c5944d4b4a08e063f00736aa6345bfb Author: Jonas Bernoulli Commit: Jonas Bernoulli Use emacsclient-program-name if that is bound This should make it possible to use `with-editor' on Android. For Remacs continue to hardcode "remacsclient" because it has not been updated since this variable was introduced and is unlikely to be updated any time soon. --- lisp/with-editor.el | 7 --- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lisp/with-editor.el b/lisp/with-editor.el index e0f78ddd9a..853e60860a 100644 --- a/lisp/with-editor.el +++ b/lisp/with-editor.el @@ -117,9 +117,10 @@ please see https://github.com/magit/magit/wiki/Emacsclient."; (let* ((version-lst (cl-subseq (split-string emacs-version "\\.") 0 depth)) (version-reg (concat "^" (mapconcat #'identity version-lst "\\." (or (locate-file - (if (equal (downcase invocation-name) "remacs") - "remacsclient" - "emacsclient") + (cond ((equal (downcase invocation-name) "remacs") +"remacsclient") + ((bound-and-true-p emacsclient-program-name)) + ("emacsclient")) path (cl-mapcan (lambda (v) (cl-mapcar (lambda (e) (concat v e)) exec-suffixes))
[elpa] externals/do-at-point 32a256c124: Add a highlight action
branch: externals/do-at-point commit 32a256c124c7eb68e2ec654aca7a2dae36c81a06 Author: Philip Kaludercic Commit: Philip Kaludercic Add a highlight action --- do-at-point.el | 9 - 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/do-at-point.el b/do-at-point.el index b34935f47d..909bdc139a 100644 --- a/do-at-point.el +++ b/do-at-point.el @@ -99,7 +99,14 @@ of this variable.") (shell-command-on-region beg end cmd nil t (?! "Shell command" ,(if (fboundp 'shell-command+) #'shell-command+ -(lambda (cmd) (shell-command cmd) +(lambda (cmd) (shell-command cmd + (?h "Highlight" ,(eval-when-compile +(require 'hi-lock) +(lambda (str) + (let ((hi-lock-auto-select-face t)) +(highlight-regexp + (regexp-quote str) + (hi-lock-read-face-name))) (email (?m "Compose message" ,(lambda (to) (compose-mail to (existing-filename
[elpa] externals/org f02b4c8b4d 2/2: org-refile-get-targets: Improve malformed target handling
branch: externals/org commit f02b4c8b4d1dd4305bddfeebddaf8c545b63482d Author: Ihor Radchenko Commit: Ihor Radchenko org-refile-get-targets: Improve malformed target handling * lisp/org-refile.el (org-refile-get-targets): Throw better errors when `org-refile-targets' value is malformed. Allow common mistake with not using a cons cell in the target description. --- lisp/org-refile.el | 45 +++-- 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/lisp/org-refile.el b/lisp/org-refile.el index f96182c00a..248b3f8ef3 100644 --- a/lisp/org-refile.el +++ b/lisp/org-refile.el @@ -273,8 +273,10 @@ converted to a headline before refiling." (entries (or org-refile-targets '((nil . (:level . 1) targets tgs files desc descre) (message "Getting targets...") +(cl-assert (listp entries) t "`org-refile-targets' must be a list of targets") (with-current-buffer (or default-buffer (current-buffer)) (dolist (entry entries) +(cl-assert (consp entry) t "Refile target must be a cons cell (FILES . SPECIFICATION)") (setq files (car entry) desc (cdr entry)) (cond ((null files) (setq files (list (current-buffer @@ -285,26 +287,33 @@ converted to a headline before refiling." ((and (symbolp files) (boundp files)) (setq files (symbol-value files (when (stringp files) (setq files (list files))) - (cond -((eq (car desc) :tag) - (setq descre (concat "^\\*+[ \t]+.*?:" (regexp-quote (cdr desc)) ":"))) -((eq (car desc) :todo) - (setq descre (concat "^\\*+[ \t]+" (regexp-quote (cdr desc)) "[ \t]"))) -((eq (car desc) :regexp) - (setq descre (cdr desc))) -((eq (car desc) :level) - (setq descre (concat "^\\*\\{" (number-to-string - (if org-odd-levels-only - (1- (* 2 (cdr desc))) - (cdr desc))) - "\\}[ \t]"))) -((eq (car desc) :maxlevel) - (setq descre (concat "^\\*\\{1," (number-to-string +;; Allow commonly used (FILE :maxlevel N) and similar values. +(when (and (listp (cdr desc)) (null (cddr desc))) + (setq desc (cons (car desc) (cadr desc +(condition-case err + (cond +((eq (car desc) :tag) + (setq descre (concat "^\\*+[ \t]+.*?:" (regexp-quote (cdr desc)) ":"))) +((eq (car desc) :todo) + (setq descre (concat "^\\*+[ \t]+" (regexp-quote (cdr desc)) "[ \t]"))) +((eq (car desc) :regexp) + (setq descre (cdr desc))) +((eq (car desc) :level) + (setq descre (concat "^\\*\\{" (number-to-string (if org-odd-levels-only - (1- (* 2 (cdr desc))) + (1- (* 2 (cdr desc))) (cdr desc))) - "\\}[ \t]"))) -(t (error "Bad refiling target description %s" desc))) + "\\}[ \t]"))) +((eq (car desc) :maxlevel) + (setq descre (concat "^\\*\\{1," (number-to-string + (if org-odd-levels-only + (1- (* 2 (cdr desc))) + (cdr desc))) + "\\}[ \t]"))) +(t (error "Bad refiling target description %s" desc))) + (error + (error "Error parsing refiling target description: %s" + (error-message-string err (dolist (f files) (with-current-buffer (if (bufferp f) f (org-get-agenda-file-buffer f)) (unless (derived-mode-p 'org-mode)
[elpa] externals/org updated (9f12a1b9e4 -> f02b4c8b4d)
elpasync pushed a change to branch externals/org. from 9f12a1b9e4 org-babel-map-executables: Avoid using `save-match-data' new 320c29c021 * lisp/ob-core.el (org-babel-remove-inline-result): Document DATUM argument new f02b4c8b4d org-refile-get-targets: Improve malformed target handling Summary of changes: lisp/ob-core.el| 2 +- lisp/org-refile.el | 45 +++-- 2 files changed, 28 insertions(+), 19 deletions(-)
[elpa] externals/org 320c29c021 1/2: * lisp/ob-core.el (org-babel-remove-inline-result): Document DATUM argument
branch: externals/org commit 320c29c021f479bc1a64f5693db4d50c7d025fc2 Author: Ihor Radchenko Commit: Ihor Radchenko * lisp/ob-core.el (org-babel-remove-inline-result): Document DATUM argument --- lisp/ob-core.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/ob-core.el b/lisp/ob-core.el index 8ba8948229..b6241c40d4 100644 --- a/lisp/ob-core.el +++ b/lisp/ob-core.el @@ -2716,7 +2716,7 @@ INFO may provide the values of these header arguments (in the (progn (forward-line) (org-babel-result-end (defun org-babel-remove-inline-result (&optional datum) - "Remove the result of the current inline-src-block or babel call. + "Remove the result of DATUM or the current inline-src-block or babel call. The result must be wrapped in a `results' macro to be removed. Leading white space is trimmed." (interactive)
[nongnu] elpa/camera 65dcda9d3f 1/3: Fix 'camera--update-frame'
branch: elpa/camera commit 65dcda9d3f9725a07e7778e443c8775718131b8f Author: Akib Azmain Turja Commit: Akib Azmain Turja Fix 'camera--update-frame' --- camera.el | 12 +++- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/camera.el b/camera.el index c897a3c7b4..7330a8c33e 100644 --- a/camera.el +++ b/camera.el @@ -92,15 +92,17 @@ Don't do anything if current buffer is not BUFFER." (size (camera--get-text-area-size)) (image (funcall camera-capture-frame-function size))) (erase-buffer) - (insert-image image "[frame]") + (when image +(insert-image image "[frame]")) (setq camera--current-frame image)) (when camera--update-frame-timer (cancel-timer camera--update-frame-timer)) (setq camera--update-frame-timer - (run-with-idle-timer (+ (time-to-seconds (current-idle-time)) - (/ (float camera-framerate))) - nil #'camera--update-frame - (current-buffer) + (run-with-idle-timer + (+ (time-to-seconds (or (current-idle-time) 0)) + (/ (float camera-framerate))) + nil #'camera--update-frame + (current-buffer) (defun camera--pre-command () "Cancel timer to update frame shown on buffer."
[nongnu] elpa/camera updated (99ced5db8d -> b8aa62a8cb)
elpasync pushed a change to branch elpa/camera. from 99ced5db8d Bump version to 0.2 new 65dcda9d3f Fix 'camera--update-frame' new 63c41548d7 Rewrite ffmpeg part to fix flickering new b8aa62a8cb Bump version to 0.3 Summary of changes: camera.el | 103 +- 1 file changed, 75 insertions(+), 28 deletions(-)
[nongnu] elpa/camera 63c41548d7 2/3: Rewrite ffmpeg part to fix flickering
branch: elpa/camera commit 63c41548d77f271b14b8333e4f91cfdf786f1ce8 Author: Akib Azmain Turja Commit: Akib Azmain Turja Rewrite ffmpeg part to fix flickering --- camera.el | 89 +++ 1 file changed, 67 insertions(+), 22 deletions(-) diff --git a/camera.el b/camera.el index 7330a8c33e..d5a20ffe50 100644 --- a/camera.el +++ b/camera.el @@ -158,32 +158,77 @@ Don't do anything if current buffer is not BUFFER." (display-buffer (current-buffer)) (camera--update-frame (current-buffer +(defvar camera--ffmpeg-process nil + "The ffmpeg process.") + +(defvar camera--ffmpeg-image-file nil + "The image file where the frames are being saved.") + +(defvar camera--ffmpeg-frame-size nil + "Size of frames being captured by the current ffmpeg process.") + +(defun camera--ffmpeg-cleanup () + "Cleanup before killing buffer." + (when camera--ffmpeg-process +(when (process-live-p camera--ffmpeg-process) + (kill-process camera--ffmpeg-process) + (while (process-live-p camera--ffmpeg-process) +(sit-for 0.05))) +(when (process-buffer camera--ffmpeg-process) + (kill-buffer (process-buffer camera--ffmpeg-process + (when (and camera--ffmpeg-image-file + (file-exists-p camera--ffmpeg-image-file)) +(delete-file camera--ffmpeg-image-file))) + (defun camera-capture-frame-ffmpeg (size) "Capture a frame from the camera with `ffmpeg'. Return an image of the frame. Try to make the size of the frame SIZE." - (let ((temp-file (make-temp-file "emacs-camera-ffmpeg-" nil ".jpeg"))) -(unwind-protect -;; TODO: Refractor. -(with-temp-buffer - - ;; `ffmpeg' complains when file exists. - (when (file-exists-p temp-file) -(delete-file temp-file)) - (let ((process (start-file-process - "camera-ffmpeg" (current-buffer) - "ffmpeg" "-f" "video4linux2" "-s" - (format "%ix%i" (car size) (cdr size)) - "-i" camera-ffmpeg-video-device "-frames" "1" - temp-file))) -(while (process-live-p process) - (sleep-for 0.05))) - (erase-buffer) - (set-buffer-multibyte nil) - (insert-file-contents-literally temp-file) - (create-image (buffer-string) 'jpeg t)) - (when (file-exists-p temp-file) -(delete-file temp-file) + (when (and camera--ffmpeg-process + (not (process-live-p camera--ffmpeg-process))) +(message "ffmpeg process exited with status %i, retrying..." + (process-exit-status camera--ffmpeg-process))) + (unless (and (equal camera--ffmpeg-frame-size size) + camera--ffmpeg-image-file + camera--ffmpeg-process + (process-live-p camera--ffmpeg-process)) +(when camera--ffmpeg-process + (when (process-live-p camera--ffmpeg-process) +(kill-process camera--ffmpeg-process) +(while (process-live-p camera--ffmpeg-process) + (sit-for 0.05))) + (when (process-buffer camera--ffmpeg-process) +(kill-buffer (process-buffer camera--ffmpeg-process +(when (and camera--ffmpeg-image-file + (file-exists-p camera--ffmpeg-image-file)) + (delete-file camera--ffmpeg-image-file)) +(setq-local camera--ffmpeg-image-file +(make-temp-file "emacs-camera-ffmpeg-" nil ".jpeg")) +(when (and camera--ffmpeg-image-file + (file-exists-p camera--ffmpeg-image-file)) + (delete-file camera--ffmpeg-image-file)) +(setq-local camera--ffmpeg-frame-size size) +(setq-local camera--ffmpeg-process +(start-file-process + "camera-ffmpeg" + (generate-new-buffer " *camera-ffmpeg*" t) + "ffmpeg" "-f" "video4linux2" "-s" + (format "%ix%i" (car camera--ffmpeg-frame-size) + (cdr camera--ffmpeg-frame-size)) + "-i" camera-ffmpeg-video-device + "-fpsmax" (number-to-string camera-framerate) + "-update" "true" camera--ffmpeg-image-file)) +(while (and (process-live-p camera--ffmpeg-process) +(not (file-exists-p camera--ffmpeg-image-file))) + (sleep-for 0.05)) +(add-hook 'kill-buffer-hook #'camera--ffmpeg-cleanup nil t)) + (when (file-exists-p camera--ffmpeg-image-file) +(let ((img-file camera--ffmpeg-image-file)) + (with-temp-buffer +(erase-buffer) +(set-buffer-multibyte nil) +(insert-file-contents-literally img-file) +(create-image (buffer-string) 'jpeg t) (provide 'camera) ;;; camera.el ends here
[nongnu] elpa/camera b8aa62a8cb 3/3: Bump version to 0.3
branch: elpa/camera commit b8aa62a8cb20006fe8545f88327cf15a1e9c03d7 Author: Akib Azmain Turja Commit: Akib Azmain Turja Bump version to 0.3 --- camera.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/camera.el b/camera.el index d5a20ffe50..39ccc66f2a 100644 --- a/camera.el +++ b/camera.el @@ -4,7 +4,7 @@ ;; Author: Akib Azmain Turja ;; Created: 2022-07-16 -;; Version: 0.2 +;; Version: 0.3 ;; Package-Requires: ((emacs "25.1")) ;; Keywords: comm ;; Homepage: https://codeberg.org/akib/emacs-camera
[nongnu] elpa/evil a09fdca0b3 3/4: Reselect minibuffer when quitting command-line win
branch: elpa/evil commit a09fdca0b35ef4289cf55d7b0ffadf4cf3a5c9fc Author: Axel Forsman Commit: Axel Forsman Reselect minibuffer when quitting command-line win Pressing C-f while editing an Ex command to open the command-line window and later quitting that window used to not reselect the Ex command line, but instead just continue the recursive edit in some previous window. This was specially confusing before commit 02004bce6884619e687654d333b75c90f8fc27d0, as the evil-ex-abort hack did not trigger, leaving you in a bad state with evil-ex-current-buffer set to t. This commit fixes that by setting the delete-window window parameter on the command-line window to a function that switches back to the minibuffer after deleting the window, which closes #1379. This commit also replaces the split-window call with a display-buffer invocation, to always spawn the window at the bottom of the frame, but also allow the user to override this behavior. --- evil-command-window.el | 210 + evil-tests.el | 74 - evil-vars.el | 10 +-- 3 files changed, 124 insertions(+), 170 deletions(-) diff --git a/evil-command-window.el b/evil-command-window.el index c364e41868..dd148822db 100644 --- a/evil-command-window.el +++ b/evil-command-window.el @@ -1,4 +1,4 @@ -;;; evil-command-window.el --- Evil command line window implementation -*- lexical-binding: t -*- +;;; evil-command-window.el --- Evil command-line window -*- lexical-binding: t -*- ;; Author: Emanuel Evans ;; Maintainer: Vegard Øye @@ -26,162 +26,170 @@ ;;; Commentary: -;; This provides an implementation of the vim command line window for -;; editing and repeating past ex commands and searches. +;; This provides an implementation of the Vim command-line window for +;; editing and repeating past Ex commands and searches. ;;; Code: (require 'evil-vars) (require 'evil-common) -(require 'evil-search) (require 'evil-ex) +(require 'evil-search) (defvar evil-search-module) (defvar evil-command-window-current-buffer nil - "The buffer from which the command line window was called.") + "The buffer from which the command-line window was called.") + +(defvar evil-command-window-execute-fn nil + "The command to execute when exiting the command-line window.") + +(defvar evil--command-window-prompt nil + "The key for the command that opened the command-line window (:, /, or ?).") (define-derived-mode evil-command-window-mode fundamental-mode "Evil-cmd" - "Major mode for the Evil command line window." - (auto-fill-mode 0) - (add-hook 'after-change-functions #'evil-command-window-draw-prefix nil t)) - -(defun evil-command-window (history cmd-key execute-fn) - "Open a command line window for HISTORY with CMD-KEY and EXECUTE-FN. -HISTORY should be a list of commands. CMD-KEY should be the string of -the key whose history is being shown (one of \":\", \"/\" or \"?\"). -EXECUTE-FN should be a function of one argument to execute on the -result that the user selects." - (when (eq major-mode 'evil-command-window-mode) -(user-error "Cannot recursively open command line window")) - (dolist (win (window-list)) -(when (equal (buffer-name (window-buffer win)) "*Command Line*") - (kill-buffer (window-buffer win)) - (delete-window win))) - (split-window nil -(unless (zerop evil-command-window-height) - evil-command-window-height) -'above) - (setq evil-command-window-current-buffer (current-buffer)) - (ignore-errors (kill-buffer "*Command Line*")) - (switch-to-buffer "*Command Line*") - (setq-local evil-command-window-execute-fn execute-fn) - (setq-local evil-command-window-cmd-key cmd-key) - (evil-command-window-mode) - (evil-command-window-insert-commands history)) + "Major mode for the Evil command-line window." + (add-hook 'after-change-functions #'evil--command-window-draw-prefix nil t) + (auto-fill-mode 0)) + +(defun evil-command-window (history prompt execute-fn) + "Open a command-line window for HISTORY with PROMPT and EXECUTE-FN. +HISTORY should be a list of commands. PROMPT should be the +command-line prompt (one of \":\", \"/\" or \"?\"). EXECUTE-FN should +be a unary function to execute on the result that the user selects." + (when (derived-mode-p 'evil-command-window-mode) +(user-error "Command-line window is already open")) + (let ((previous-buffer (current-buffer)) +(buffer (get-buffer-create "*Command Line*"))) +(with-current-buffer buffer + (erase-buffer) + (evil-command-window-mode) + (setq-local evil-command-window-current-buffer previous-buffer) + (setq-local evil-command-window-execute-fn execute-fn) + (setq-local evil--command-window-prompt prompt) + (evil--command-window-insert-commands history)) + +(let* ((action +`((display-buffer-reuse-wi
[nongnu] elpa/evil updated (a667d8857f -> 657af37c55)
elpasync pushed a change to branch elpa/evil. from a667d8857f Fix Vim URL in docs (#1825) new 2d8918e827 Do not silence unused evil-define-command argument new a8663a22b6 Add evil-command-line-map new a09fdca0b3 Reselect minibuffer when quitting command-line win new 657af37c55 Support command-line window for any minibuffer arg Summary of changes: evil-command-window.el | 228 + evil-commands.el | 78 - evil-common.el | 1 - evil-ex.el | 7 +- evil-integration.el| 10 +-- evil-macros.el | 27 +++--- evil-maps.el | 75 +++- evil-tests.el | 78 - evil-types.el | 2 +- evil-vars.el | 93 ++-- 10 files changed, 271 insertions(+), 328 deletions(-)
[nongnu] elpa/evil a8663a22b6 2/4: Add evil-command-line-map
branch: elpa/evil commit a8663a22b6f65513d9f1f610ed19941b14161490 Author: Axel Forsman Commit: Axel Forsman Add evil-command-line-map There was a lot of duplication between evil-ex-completion-map and evil-ex-search-keymap, which meant that any rebinds had to be done twice. This commit fixes that by introducing evil-command-line-map as a common ancestor of the two keymaps. Also renames evil-ex-map to evil-ex-shortcut-map to avoid confusion, as its purpose is more niche than evil-ex-completion-map which functions the same as any other keymap passed to read-from-minibuffer. --- evil-ex.el | 7 +++-- evil-maps.el | 72 +++- evil-vars.el | 83 3 files changed, 79 insertions(+), 83 deletions(-) diff --git a/evil-ex.el b/evil-ex.el index f91c1a1447..246aa0d760 100644 --- a/evil-ex.el +++ b/evil-ex.el @@ -32,7 +32,7 @@ ;; `evil-ex-define-cmd', which creates a binding from a string ;; to an interactive function. It is also possible to define key ;; sequences which execute a command immediately when entered: -;; such shortcuts go in `evil-ex-map'. +;; such shortcuts go in `evil-ex-shortcut-map'. ;; To provide buffer and filename completion, as well as interactive ;; feedback, Ex defines the concept of an argument handler, specified @@ -415,8 +415,7 @@ actions during Ex state." (defun evil-ex-teardown () "Deinitialize Ex minibuffer. Clean up everything set up by `evil-ex-setup'." - (let ((runner (evil-ex-argument-handler-runner - evil--ex-argument-handler))) + (let ((runner (evil-ex-argument-handler-runner evil--ex-argument-handler))) (when runner (funcall runner 'stop (put 'evil-ex-teardown 'permanent-local-hook t) @@ -431,7 +430,7 @@ hook. If BEG is non-nil (which is the case when called from `after-change-functions'), then an error description is shown in case of incomplete or unknown commands." (when (and beg (eq this-command #'self-insert-command)) -(let ((cmd (lookup-key evil-ex-map (minibuffer-contents-no-properties +(let ((cmd (lookup-key evil-ex-shortcut-map (minibuffer-contents-no-properties (when (commandp cmd) (setq evil--ex-expression `(call-interactively #',cmd)) (exit-minibuffer diff --git a/evil-maps.el b/evil-maps.el index fbf5af1695..b24cee615a 100644 --- a/evil-maps.el +++ b/evil-maps.el @@ -591,51 +591,43 @@ included in `evil-insert-state-bindings' by default." (evil-ex-define-cmd "tabn[ext]" 'tab-bar-switch-to-next-tab) (evil-ex-define-cmd "tabp[revious]" 'tab-bar-switch-to-prev-tab)) +;; Command-line editing +(define-key evil-command-line-map "\d" #'evil-ex-delete-backward-char) +(define-key evil-command-line-map "\t" #'completion-at-point) +(define-key evil-command-line-map [tab] #'completion-at-point) +(define-key evil-command-line-map "\C-a" #'completion-at-point) +(define-key evil-command-line-map "\C-b" #'move-beginning-of-line) +(define-key evil-command-line-map "\C-c" #'abort-recursive-edit) +(define-key evil-command-line-map "\C-d" #'completion-at-point) +(define-key evil-command-line-map "\C-g" #'abort-minibuffers) +(define-key evil-command-line-map "\C-k" 'evil-insert-digraph) +(define-key evil-command-line-map "\C-l" #'completion-at-point) +(define-key evil-command-line-map "\C-n" #'next-history-element) +(define-key evil-command-line-map "\C-p" #'previous-history-element) +(define-key evil-command-line-map "\C-r" 'evil-paste-from-register) +(define-key evil-command-line-map "\C-u" 'evil-delete-whole-line) +(define-key evil-command-line-map "\C-v" #'quoted-insert) +(when evil-want-C-w-delete + (define-key evil-command-line-map "\C-w" #'backward-kill-word)) +(define-key evil-command-line-map [escape] #'abort-recursive-edit) +(define-key evil-command-line-map [S-left] #'backward-word) +(define-key evil-command-line-map [S-right] #'forward-word) +(define-key evil-command-line-map [up] #'previous-complete-history-element) +(define-key evil-command-line-map [down] #'next-complete-history-element) +(define-key evil-command-line-map [prior] #'previous-history-element) +(define-key evil-command-line-map [next] #'next-history-element) +(define-key evil-command-line-map [return] #'exit-minibuffer) +(define-key evil-command-line-map (kbd "RET") #'exit-minibuffer) + ;; search command line -(define-key evil-ex-search-keymap "\d" #'evil-ex-delete-backward-char) -(define-key evil-ex-search-keymap "\C-b" 'move-beginning-of-line) -(define-key evil-ex-search-keymap "\C-c" 'abort-recursive-edit) -(define-key evil-ex-search-keymap "\C-g" 'abort-recursive-edit) -(define-key evil-ex-search-keymap "\C-k" 'evil-insert-digraph) +(set-keymap-parent evil-ex-search-keymap evil-command-line-map) (define-key evil-ex-search-keymap "\C-f" 'evil-ex-search-command-window) -(define-key evil-ex-search-keymap "\C-r" 'evil-paste-from-register) -(define-key evil-e
[nongnu] elpa/evil 657af37c55 4/4: Support command-line window for any minibuffer arg
branch: elpa/evil commit 657af37c5570caab487e9e73d7b95696437e664d Author: Axel Forsman Commit: Axel Forsman Support command-line window for any minibuffer arg Introspection of the current minibuffer argument history and prompt is possible, hence there is no need for the specialized evil-ex-command-window and evil-ex-search-command-window functions. --- evil-command-window.el | 50 +++--- evil-maps.el | 3 +-- 2 files changed, 24 insertions(+), 29 deletions(-) diff --git a/evil-command-window.el b/evil-command-window.el index dd148822db..ef22be0235 100644 --- a/evil-command-window.el +++ b/evil-command-window.el @@ -56,9 +56,16 @@ "Open a command-line window for HISTORY with PROMPT and EXECUTE-FN. HISTORY should be a list of commands. PROMPT should be the command-line prompt (one of \":\", \"/\" or \"?\"). EXECUTE-FN should -be a unary function to execute on the result that the user selects." +be a unary function to execute on the result that the user selects. + +If called interactively, edit this minibuffer argument." + (interactive + (list (cons (minibuffer-contents) (minibuffer-history-value)) + (or (minibuffer-prompt) (user-error "Minibuffer is inactive")) + #'evil--command-window-minibuffer-execute)) (when (derived-mode-p 'evil-command-window-mode) (user-error "Command-line window is already open")) + (when (evil-ex-p) (evil-ex-teardown)) (let ((previous-buffer (current-buffer)) (buffer (get-buffer-create "*Command Line*"))) (with-current-buffer buffer @@ -116,33 +123,28 @@ function to execute." (when window (select-window window))) (with-current-buffer original-buffer (funcall execute-fn result -(defun evil-command-window-ex (&optional current-command execute-fn) +(defun evil--command-window-minibuffer-execute (result) + "Terminate this minibuffer argument with RESULT." + (delete-minibuffer-contents) + (insert result) + (exit-minibuffer)) + +(defun evil-command-window-ex (&optional current-command) "Open a command-line window for editing and executing Ex commands. If CURRENT-COMMAND is present, it will be inserted under the cursor as -the current command to be edited. If EXECUTE-FN is given, it will be -used as the function to execute instead of -`evil-command-window-ex-execute', the default." +the current command to be edited." (interactive) (evil-command-window (cons (or current-command "") evil-ex-history) ":" - (or execute-fn #'evil-command-window-ex-execute))) + #'evil-command-window-ex-execute)) -(defun evil-ex-command-window () - "Start command window with Ex history and current minibuffer content." - (interactive) - (evil-ex-teardown) - (let ((execute-fn (apply-partially #'evil-ex-command-window-execute - (current-window-configuration -(evil-command-window-ex (minibuffer-contents) execute-fn))) +(define-obsolete-function-alias + 'evil-ex-command-window #'evil-command-window "1.15.0" + "Start command window with Ex history and current minibuffer content.") -(defun evil-ex-search-command-window () - "Start command window with search history and current minibuffer content." - (interactive) - (let ((execute-fn (apply-partially #'evil-ex-command-window-execute - (current-window-configuration -(evil-command-window (cons (minibuffer-contents) evil-ex-search-history) - (evil-search-prompt (eq evil-ex-search-direction 'forward)) - execute-fn))) +(define-obsolete-function-alias + 'evil-ex-search-command-window #'evil-command-window "1.15.0" + "Start command window with search history and current minibuffer content.") (defun evil-command-window-ex-execute (result) "Execute RESULT as an Ex command." @@ -151,12 +153,6 @@ used as the function to execute instead of (push result evil-ex-history)) (evil-ex-execute result))) -(defun evil-ex-command-window-execute (config result) - (set-window-configuration config) - (delete-minibuffer-contents) - (insert result) - (exit-minibuffer)) - (defun evil--command-window-search (forward) "Open a command-line window for searches." (evil-command-window diff --git a/evil-maps.el b/evil-maps.el index b24cee615a..f263a63ee4 100644 --- a/evil-maps.el +++ b/evil-maps.el @@ -599,6 +599,7 @@ included in `evil-insert-state-bindings' by default." (define-key evil-command-line-map "\C-b" #'move-beginning-of-line) (define-key evil-command-line-map "\C-c" #'abort-recursive-edit) (define-key evil-command-line-map "\C-d" #'completion-at-point) +(define-key evil-command-line-map "\C-f" 'evil-command-window) (define-key evil-command-line-map "\C-g" #'abort-minibuffers) (define-key evil-command-line-map "\C-k" 'evil-insert-digraph) (define-key evil-command-line-map "\C-l" #
[nongnu] elpa/git-commit updated (cb41d8a4bb -> 7d4092f00b)
elpasync pushed a change to branch elpa/git-commit. from cb41d8a4bb Revert "magit-stash-{apply,pop}: Fix case when there are staged changes" new 02144f9bc2 magit-confirm: Add prompt-suffix argument new 9699c70e1e magit-confirm-files: Add prompt-suffix and noabort arguments new 37a3e5b390 magit-confirm-files: Quote file name new 7d4092f00b Apply stash even if "git stash apply" cannot do it Summary of changes: docs/magit.org | 56 +++-- docs/magit.texi | 57 -- lisp/magit-base.el | 18 +++--- lisp/magit-stash.el | 72 - 4 files changed, 173 insertions(+), 30 deletions(-)
[nongnu] elpa/git-commit 02144f9bc2 1/4: magit-confirm: Add prompt-suffix argument
branch: elpa/git-commit commit 02144f9bc2a484bccb4a89953a0f4264fe2d3ae4 Author: Jonas Bernoulli Commit: Jonas Bernoulli magit-confirm: Add prompt-suffix argument --- lisp/magit-base.el | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lisp/magit-base.el b/lisp/magit-base.el index 32a3cf4f33..c039c36177 100644 --- a/lisp/magit-base.el +++ b/lisp/magit-base.el @@ -777,12 +777,14 @@ ACTION is a member of option `magit-slow-confirm'." discard reverse stage-all-changes unstage-all-changes))) (cl-defun magit-confirm ( action &optional prompt prompt-n noabort - (items nil sitems)) + (items nil sitems) prompt-suffix) (declare (indent defun)) (setq prompt-n (format (concat (or prompt-n prompt) "? ") (length items))) (setq prompt (format (concat (or prompt (magit-confirm-make-prompt action)) "? ") (car items))) + (when prompt-suffix +(setq prompt (concat prompt prompt-suffix))) (or (cond ((and (not (eq action t)) (or (eq magit-no-confirm t) (memq action magit-no-confirm)
[nongnu] elpa/evil 2d8918e827 1/4: Do not silence unused evil-define-command argument
branch: elpa/evil commit 2d8918e827b970623cf1ab5ef073412c33196d04 Author: Axel Forsman Commit: Axel Forsman Do not silence unused evil-define-command argument --- evil-commands.el| 78 ++--- evil-common.el | 1 - evil-integration.el | 10 +++ evil-macros.el | 27 +-- evil-tests.el | 4 +-- evil-types.el | 2 +- 6 files changed, 60 insertions(+), 62 deletions(-) diff --git a/evil-commands.el b/evil-commands.el index 7dfc1e0ae8..3d625a791e 100644 --- a/evil-commands.el +++ b/evil-commands.el @@ -654,7 +654,7 @@ to the beginning of buffer if the end is reached." (evil--next-mark nil)) (evil-first-non-blank)) -(evil-define-command evil-set-col-0-mark (beg end mark) +(evil-define-command evil-set-col-0-mark (_beg end mark) "Set MARK at column 0 of line of END. Default is cursor line." (interactive "") @@ -813,7 +813,7 @@ To go the other way, press \ [evil-jump-backward]." (evil--jump-forward count)) -(evil-define-motion evil-jump-backward-swap (count) +(evil-define-motion evil-jump-backward-swap (_count) "Go to the previous position in jump list. The current position is placed in the jump list." (let ((pnt (point))) @@ -1236,124 +1236,124 @@ the left edge." ;; in the buffer, and thus exact movement to object boundaries is ;; required.) -(evil-define-text-object evil-a-word (count &optional beg end type) +(evil-define-text-object evil-a-word (count &optional beg end _type) "Select a word." (evil-select-a-restricted-object 'evil-word beg end type count)) -(evil-define-text-object evil-inner-word (count &optional beg end type) +(evil-define-text-object evil-inner-word (count &optional beg end _type) "Select inner word." (evil-select-inner-restricted-object 'evil-word beg end type count)) -(evil-define-text-object evil-a-WORD (count &optional beg end type) +(evil-define-text-object evil-a-WORD (count &optional beg end _type) "Select a WORD." (evil-select-a-restricted-object 'evil-WORD beg end type count)) -(evil-define-text-object evil-inner-WORD (count &optional beg end type) +(evil-define-text-object evil-inner-WORD (count &optional beg end _type) "Select inner WORD." (evil-select-inner-restricted-object 'evil-WORD beg end type count)) -(evil-define-text-object evil-a-symbol (count &optional beg end type) +(evil-define-text-object evil-a-symbol (count &optional beg end _type) "Select a symbol." (evil-select-an-object 'evil-symbol beg end type count)) -(evil-define-text-object evil-inner-symbol (count &optional beg end type) +(evil-define-text-object evil-inner-symbol (count &optional beg end _type) "Select inner symbol." (evil-select-inner-object 'evil-symbol beg end type count)) -(evil-define-text-object evil-a-sentence (count &optional beg end type) +(evil-define-text-object evil-a-sentence (count &optional beg end _type) "Select a sentence." (evil-select-an-object 'evil-sentence beg end type count)) -(evil-define-text-object evil-inner-sentence (count &optional beg end type) +(evil-define-text-object evil-inner-sentence (count &optional beg end _type) "Select inner sentence." (evil-select-inner-object 'evil-sentence beg end type count)) -(evil-define-text-object evil-a-paragraph (count &optional beg end type) +(evil-define-text-object evil-a-paragraph (count &optional beg end _type) "Select a paragraph." :type line (evil-select-an-object 'evil-paragraph beg end type count t)) -(evil-define-text-object evil-inner-paragraph (count &optional beg end type) +(evil-define-text-object evil-inner-paragraph (count &optional beg end _type) "Select inner paragraph." :type line (evil-select-inner-object 'evil-paragraph beg end type count t)) -(evil-define-text-object evil-a-paren (count &optional beg end type) +(evil-define-text-object evil-a-paren (count &optional beg end _type) "Select a parenthesis." :extend-selection nil (evil-select-paren ?\( ?\) beg end type count t)) -(evil-define-text-object evil-inner-paren (count &optional beg end type) +(evil-define-text-object evil-inner-paren (count &optional beg end _type) "Select inner parenthesis." :extend-selection nil (evil-select-paren ?\( ?\) beg end type count)) -(evil-define-text-object evil-a-bracket (count &optional beg end type) +(evil-define-text-object evil-a-bracket (count &optional beg end _type) "Select a square bracket." :extend-selection nil (evil-select-paren ?\[ ?\] beg end type count t)) -(evil-define-text-object evil-inner-bracket (count &optional beg end type) +(evil-define-text-object evil-inner-bracket (count &optional beg end _type) "Select inner square bracket." :extend-selection nil (evil-select-paren ?\[ ?\] beg end type count)) -(evil-define-text-object evil-a-curly (count &optional beg end type) +(evil-define-text-object evil-a-curly (count &optional beg end _type) "Select
[nongnu] elpa/git-commit 37a3e5b390 3/4: magit-confirm-files: Quote file name
branch: elpa/git-commit commit 37a3e5b3906645689609ac888b1f3ba5c0811d8b Author: Jonas Bernoulli Commit: Jonas Bernoulli magit-confirm-files: Quote file name --- lisp/magit-base.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/magit-base.el b/lisp/magit-base.el index 546bd4ef63..8aad2fb3af 100644 --- a/lisp/magit-base.el +++ b/lisp/magit-base.el @@ -812,7 +812,7 @@ ACTION is a member of option `magit-slow-confirm'." (unless prompt (setq prompt (magit-confirm-make-prompt action))) (magit-confirm action - (concat prompt " %s") + (concat prompt " %S") (concat prompt " %d files") noabort files prompt-suffix)))
[nongnu] elpa/git-commit 9699c70e1e 2/4: magit-confirm-files: Add prompt-suffix and noabort arguments
branch: elpa/git-commit commit 9699c70e1e40d042391cf9ef93ca405ad6929228 Author: Jonas Bernoulli Commit: Jonas Bernoulli magit-confirm-files: Add prompt-suffix and noabort arguments --- lisp/magit-base.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lisp/magit-base.el b/lisp/magit-base.el index c039c36177..546bd4ef63 100644 --- a/lisp/magit-base.el +++ b/lisp/magit-base.el @@ -807,14 +807,14 @@ ACTION is a member of option `magit-slow-confirm'." items))) (if noabort nil (user-error "Abort" -(defun magit-confirm-files (action files &optional prompt) +(defun magit-confirm-files (action files &optional prompt prompt-suffix noabort) (when files (unless prompt (setq prompt (magit-confirm-make-prompt action))) (magit-confirm action (concat prompt " %s") (concat prompt " %d files") - nil files))) + noabort files prompt-suffix))) (defun magit-confirm-make-prompt (action) (let ((prompt (symbol-name action)))
[nongnu] elpa/git-commit 7d4092f00b 4/4: Apply stash even if "git stash apply" cannot do it
branch: elpa/git-commit commit 7d4092f00bab34d46c4e07d6d6c55658e413b3b6 Author: Jonas Bernoulli Commit: Jonas Bernoulli Apply stash even if "git stash apply" cannot do it --- docs/magit.org | 56 +++-- docs/magit.texi | 57 -- lisp/magit-base.el | 8 ++ lisp/magit-stash.el | 72 - 4 files changed, 167 insertions(+), 26 deletions(-) diff --git a/docs/magit.org b/docs/magit.org index c2aa7328cc..e16223ca2f 100644 --- a/docs/magit.org +++ b/docs/magit.org @@ -1525,6 +1525,13 @@ telling Magit to ask fewer questions. - Various: +- ~stash-apply-3way~ When a stash cannot be applied using + ~git stash apply~, then Magit uses ~git apply~ instead. + If doing so is safe, then it uses ~--3way~, when it is not + because doing so requires that some files are first staged, + then by default it prompts the user whether to use ~--3way~ + or ~--reject~. Add this symbol to always use ~--3way~. + - ~kill-process~ There seldom is a reason to kill a process. - Global settings: @@ -6396,16 +6403,51 @@ Also see [[man:git-stash]] - Key: z a (magit-stash-apply) :: - Apply a stash to the working tree. Try to preserve the stash index. - If that fails because there are staged changes, apply without - preserving the stash index. + Apply a stash to the working tree. + + First try ~git stash apply --index~, which tries to preserve + the index stored in the stash, if any. This may fail because + applying the stash could result in conflicts and those have to + be stored in the index, making it impossible to also store the + stash's index there as well. + + If the above failed, then try ~git stash apply~. This fails + (with or without ~--index~) if there are any uncommitted + changes to files that are also modified in the stash. + + If both of the above failed, then apply using ~git apply~. + If there are no conflicting files, use ~--3way~. If there are + conflicting files, then using ~--3way~ requires that those + files are staged first, which may be undesirable, so prompt + the user whether to use ~--3way~ or ~--reject~. + + Customize ~magit-no-confirm~ if you want to always use ~--3way~, + without being prompted. - Key: z p (magit-stash-pop) :: - Apply a stash to the working tree and remove it from stash list. - Try to preserve the stash index. If that fails because there are - staged changes, apply without preserving the stash index and forgo - removing the stash. + Apply a stash to the working tree. On complete success (if the + stash can be applied without any conflicts, and while preserving + the stash's index) then remove the stash from stash list. + + First try ~git stash pop --index~, which tries to preserve + the index stored in the stash, if any. This may fail because + applying the stash could result in conflicts and those have to + be stored in the index, making it impossible to also store the + stash's index there as well. + + If the above failed, then try ~git stash apply~. This fails + (with or without ~--index~) if there are any uncommitted + changes to files that are also modified in the stash. + + If both of the above failed, then apply using ~git apply~. + If there are no conflicting files, use ~--3way~. If there are + conflicting files, then using ~--3way~ requires that those + files are staged first, which may be undesirable, so prompt + the user whether to use ~--3way~ or ~--reject~. + + Customize ~magit-no-confirm~ if you want to always use ~--3way~, + without being prompted. - Key: z k (magit-stash-drop) :: diff --git a/docs/magit.texi b/docs/magit.texi index 543e615f9a..4fcf527fc5 100644 --- a/docs/magit.texi +++ b/docs/magit.texi @@ -2021,6 +2021,14 @@ set @code{magit-published-branches} to @code{nil}. Various: @itemize +@item +@code{stash-apply-3way} When a stash cannot be applied using +@code{git stash apply}, then Magit uses @code{git apply} instead. +If doing so is safe, then it uses @code{--3way}, when it is not +because doing so requires that some files are first staged, +then by default it prompts the user whether to use @code{--3way} +or @code{--reject}. Add this symbol to always use @code{--3way}. + @item @code{kill-process} There seldom is a reason to kill a process. @end itemize @@ -7889,17 +7897,52 @@ prefix arguments are equivalent to @code{--all}-. @item @kbd{z a} (@code{magit-stash-apply}) @kindex z a @findex magit-stash-apply -Apply a stash to the working tree. Try to preserve the stash index. -If that fails because there are staged changes, apply without -preserving the stash index. +Apply a stash to the working tree. + +First try @code{git stash apply --index}, which tries to preserve +the index stored in the stash, if any. This may fail because +applying the stash could result in conflicts and those have to +be stored in
[nongnu] elpa/magit updated (cb41d8a4bb -> 7d4092f00b)
elpasync pushed a change to branch elpa/magit. from cb41d8a4bb Revert "magit-stash-{apply,pop}: Fix case when there are staged changes" adds 02144f9bc2 magit-confirm: Add prompt-suffix argument adds 9699c70e1e magit-confirm-files: Add prompt-suffix and noabort arguments adds 37a3e5b390 magit-confirm-files: Quote file name adds 7d4092f00b Apply stash even if "git stash apply" cannot do it No new revisions were added by this update. Summary of changes: docs/magit.org | 56 +++-- docs/magit.texi | 57 -- lisp/magit-base.el | 18 +++--- lisp/magit-stash.el | 72 - 4 files changed, 173 insertions(+), 30 deletions(-)
[nongnu] elpa/magit-section updated (cb41d8a4bb -> 7d4092f00b)
elpasync pushed a change to branch elpa/magit-section. from cb41d8a4bb Revert "magit-stash-{apply,pop}: Fix case when there are staged changes" adds 02144f9bc2 magit-confirm: Add prompt-suffix argument adds 9699c70e1e magit-confirm-files: Add prompt-suffix and noabort arguments adds 37a3e5b390 magit-confirm-files: Quote file name adds 7d4092f00b Apply stash even if "git stash apply" cannot do it No new revisions were added by this update. Summary of changes: docs/magit.org | 56 +++-- docs/magit.texi | 57 -- lisp/magit-base.el | 18 +++--- lisp/magit-stash.el | 72 - 4 files changed, 173 insertions(+), 30 deletions(-)
[nongnu] elpa/cider 09a426ac67: Don't pass a nil callback when calling `cider/get-state` (#3439)
branch: elpa/cider commit 09a426ac673fd53fd814d18b277e1c50984b2a7e Author: vemv Commit: GitHub Don't pass a nil callback when calling `cider/get-state` (#3439) --- cider-repl.el | 6 +- nrepl-client.el | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/cider-repl.el b/cider-repl.el index 6728538645..bdbef1684d 100644 --- a/cider-repl.el +++ b/cider-repl.el @@ -990,7 +990,11 @@ nREPL ops, it may be convenient to prevent inserting a prompt.") "Invokes `cider/get-state' when it's possible to do so." (when-let ((conn (cider-current-repl 'cljs))) (when (nrepl-op-supported-p "cider/get-state" conn) - (nrepl-send-request '("op" "cider/get-state") nil conn + (nrepl-send-request '("op" "cider/get-state") + (lambda (_response) +;; No action is necessary: this request results in `cider-repl--state-handler` being called. +) + conn (defun cider--maybe-get-state-for-shadow-cljs (buffer &optional err) "Refresh the changed namespaces metadata given BUFFER and ERR (stderr string). diff --git a/nrepl-client.el b/nrepl-client.el index cd0f3ee373..1649da6f68 100644 --- a/nrepl-client.el +++ b/nrepl-client.el @@ -480,7 +480,7 @@ older requests with \"done\" status." (gethash id nrepl-completed-requests (if callback (funcall callback response) -(error "[nREPL] No response handler with id %s found" id) +(error "[nREPL] No response handler with id %s found for %s" id (buffer-name)) (defun nrepl-client-sentinel (process message) "Handle sentinel events from PROCESS.
[nongnu] main 673ca5b983: * elpa-packages (spacemacs-theme): `spacemacs-common.el` was removed
branch: main commit 673ca5b98342b36198e3b8e1c8e578411518f952 Author: Stefan Monnier Commit: Stefan Monnier * elpa-packages (spacemacs-theme): `spacemacs-common.el` was removed --- elpa-packages | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/elpa-packages b/elpa-packages index 6ea205760d..550765b7a0 100644 --- a/elpa-packages +++ b/elpa-packages @@ -662,7 +662,7 @@ "Cask" "Makefile")) (spacemacs-theme :url "https://github.com/nashamri/spacemacs-theme.git"; - :main-file "spacemacs-common.el" + ;; :main-file "spacemacs-common.el" :readme "README.md" :ignored-files ("LICENSE" "img"))
[elpa] externals/ement updated (2435d03c03 -> f2b5831c4c)
elpasync pushed a change to branch externals/ement. from 2435d03c03 Fix: (ement-room--format-m.file) Don't assume size is present new fbf40d66ed Add/Change: Use separate history lists for reading from minibuffer new f2b5831c4c Add/Change: History lists for user IDs in ement-connect Summary of changes: README.org| 1 + ement-room.el | 38 +- ement.el | 9 ++--- 3 files changed, 32 insertions(+), 16 deletions(-)
[elpa] externals/ement fbf40d66ed 1/2: Add/Change: Use separate history lists for reading from minibuffer
branch: externals/ement commit fbf40d66edc2a8f09a2793d9cbc89cf07e792c86 Author: Adam Porter Commit: Adam Porter Add/Change: Use separate history lists for reading from minibuffer --- README.org| 1 + ement-room.el | 38 +- 2 files changed, 26 insertions(+), 13 deletions(-) diff --git a/README.org b/README.org index 7aade4ed76..5e6a5f62b0 100644 --- a/README.org +++ b/README.org @@ -297,6 +297,7 @@ Ement.el doesn't support encrypted rooms natively, but it can be used transparen *Additions* + Face ~ement-room-quote~, applied to quoted parts of replies. ++ Commands that read a string from the minibuffer in ~ement-room~ buffers use separate history list variables. *Fixes* diff --git a/ement-room.el b/ement-room.el index 3c41405163..56db775a93 100644 --- a/ement-room.el +++ b/ement-room.el @@ -206,6 +206,13 @@ In that case, sender names are aligned to the margin edge.") (optional "?" (group (1+ anything "Regexp matching \"matrix.to\" URLs.") +(defvar ement-room-message-history nil + "History list of messages entered with `ement-room' commands. +Does not include filenames, emotes, etc.") + +(defvar ement-room-emote-history nil + "History list of emotes entered with `ement-room' commands.") + ;; Variables from other files. (defvar ement-sessions) (defvar ement-syncs) @@ -1221,8 +1228,9 @@ otherwise use current room." (ement-room-with-typing (let* ((file (read-file-name (format "Send file (%s): " (ement-room-display-name ement-room)) nil nil 'confirm)) - (body (ement-room-read-string (format "Message body (%s): " (ement-room-display-name ement-room)) -(file-name-nondirectory file) nil nil 'inherit-input-method))) + (body (ement-room-read-string + (format "Message body (%s): " (ement-room-display-name ement-room)) + (file-name-nondirectory file) 'file-name-history nil 'inherit-input-method))) (list file body ement-room ement-session) ;; NOTE: The typing notification won't be quite right, because it'll be canceled while waiting ;; for the file to upload. It would be awkward to handle that, so this will do for now. @@ -1261,8 +1269,9 @@ otherwise use current room." (ement-room-with-typing (let* ((file (read-file-name (format "Send image file (%s): " (ement-room-display-name ement-room)) nil nil 'confirm)) - (body (ement-room-read-string (format "Message body (%s): " (ement-room-display-name ement-room)) -(file-name-nondirectory file) nil nil 'inherit-input-method))) + (body (ement-room-read-string + (format "Message body (%s): " (ement-room-display-name ement-room)) + (file-name-nondirectory file) 'file-name-history nil 'inherit-input-method))) (list file body ement-room ement-session) (ement-room-send-file file body room session :msgtype "m.image")) @@ -1558,8 +1567,8 @@ the content (e.g. see `ement-room-send-org-filter')." (ement-with-room-and-session (let* ((prompt (format "Send message (%s): " (ement-room-display-name ement-room))) (body (ement-room-with-typing -(ement-room-read-string prompt nil nil nil -'inherit-input-method +(ement-room-read-string prompt nil 'ement-room-message-history +nil 'inherit-input-method (list ement-room ement-session :body body (ement-send-message room session :body body :formatted-body formatted-body :replying-to-event replying-to-event :filter ement-room-send-message-filter @@ -1590,8 +1599,8 @@ the content (e.g. see `ement-room-send-org-filter')." (ement-with-room-and-session (let* ((prompt (format "Send emote (%s): " (ement-room-display-name ement-room))) (body (ement-room-with-typing -(ement-room-read-string prompt nil nil nil -'inherit-input-method +(ement-room-read-string prompt nil 'ement-room-emote-history +nil 'inherit-input-method (list ement-room ement-session :body body (cl-assert (not (string-empty-p body))) (pcase-let* (((cl-struct ement-room (id room-id) (local (map buffer))) room) @@ -1664,8 +1673,8 @@ The message must be one sent by the local user." (ement-room-with-typing (let* ((prompt (format "Edit message (%s): " (ement-room-display-name ement-room))) -(body (ement-room-read-string prompt body nil nil -
[elpa] externals/ement f2b5831c4c 2/2: Add/Change: History lists for user IDs in ement-connect
branch: externals/ement commit f2b5831c4c6ab77a7078b0327194a856900314ae Author: Adam Porter Commit: Adam Porter Add/Change: History lists for user IDs in ement-connect Fixes #122. --- README.org | 2 +- ement.el | 9 ++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/README.org b/README.org index 5e6a5f62b0..bc4d651230 100644 --- a/README.org +++ b/README.org @@ -297,7 +297,7 @@ Ement.el doesn't support encrypted rooms natively, but it can be used transparen *Additions* + Face ~ement-room-quote~, applied to quoted parts of replies. -+ Commands that read a string from the minibuffer in ~ement-room~ buffers use separate history list variables. ++ Commands that read a string from the minibuffer in ~ement-room~ buffers and ~ement-connect~ user ID prompts use separate history list variables. *Fixes* diff --git a/ement.el b/ement.el index 4ac4af4492..e4349cb386 100644 --- a/ement.el +++ b/ement.el @@ -106,6 +106,9 @@ by users; ones who do so should know what they're doing.") (defvar ement-read-receipt-idle-timer nil "Idle timer used to update read receipts.") +(defvar ement-connect-user-id-history nil + "History list of user IDs entered into `ement-connect'.") + ;; From other files. (defvar ement-room-avatar-max-width) (defvar ement-room-avatar-max-height) @@ -210,7 +213,7 @@ the port, e.g. \"http://localhost:8080\""; (interactive (if current-prefix-arg ;; Force new session. - (list :user-id (read-string "User ID: ")) + (list :user-id (read-string "User ID: " nil 'ement-connect-user-id-history)) ;; Use known session. (unless ement-sessions ;; Read sessions from disk. @@ -219,7 +222,7 @@ the port, e.g. (error (display-warning 'ement (format "Unable to read session data from disk (%s). Prompting to log in again." (error-message-string err)) (cl-case (length ement-sessions) - (0 (list :user-id (read-string "User ID: "))) + (0 (list :user-id (read-string "User ID: " nil 'ement-connect-user-id-history))) (1 (list :session (cdar ement-sessions))) (otherwise (list :session (ement-complete-session)) (let (sso-server-process) @@ -332,7 +335,7 @@ Ement: SSO login accepted; session token received. Connecting to Matrix server. ;; Start password login flow. Prompt for user ID and password ;; if not given (i.e. if not called interactively.) (unless user-id - (setf user-id (read-string "User ID: "))) + (setf user-id (read-string "User ID: " nil 'ement-connect-user-id-history))) (setf session (new-session)) (when (ement-api session "login" :then #'flows-callback) (message "Ement: Checking server's login flows..."))
[nongnu] elpa/d-mode 0c8c9e3a5e 2/2: Merge pull request #117 from dylangleason/dylangleason/emacs-29-fix-cc-engine-forward-decl-or-cast-1-signature
branch: elpa/d-mode commit 0c8c9e3a5ebb7bfd55bea138a8ad4390abf6b383 Merge: 024aca97d0 9443ceae65 Author: Vladimir Panteleev Commit: GitHub Merge pull request #117 from dylangleason/dylangleason/emacs-29-fix-cc-engine-forward-decl-or-cast-1-signature fix: add `d-forward-decl-or-cast-1` function optional param --- d-mode.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/d-mode.el b/d-mode.el index e7ae9b17f7..8969d99623 100644 --- a/d-mode.el +++ b/d-mode.el @@ -531,7 +531,7 @@ Evaluate OLD-FORM if the Emacs version is older than MIN-VERSION, ; -(defun d-forward-decl-or-cast-1 (preceding-token-end context last-cast-end) +(defun d-forward-decl-or-cast-1 (preceding-token-end context last-cast-end &optional inside-macro) "D version of `c-forward-decl-or-cast-1'." ;; checkdoc-params: (preceding-token-end context last-cast-end) ;; (message "(d-forward-decl-or-cast-1 %S %S %S) @ %S" preceding-token-end context last-cast-end (point))
[nongnu] elpa/d-mode 9443ceae65 1/2: fix: add `d-forward-decl-or-cast-1` function optional param
branch: elpa/d-mode commit 9443ceae65ba59e5fda2b8c6b3a1607edd75f41e Author: Dylan Gleason Commit: Dylan Gleason fix: add `d-forward-decl-or-cast-1` function optional param Fix broken (as of Emacs 29) call to `d-forward-decl-or-cast-1` advice function due to apparent change in `c-forward-decl-or-cast-1` function definition specifying an optional `inside-macro` param. See 'cc-engine.el'. More work may be needed to support the optional parameter but for now just get font locking working again. --- d-mode.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/d-mode.el b/d-mode.el index e7ae9b17f7..8969d99623 100644 --- a/d-mode.el +++ b/d-mode.el @@ -531,7 +531,7 @@ Evaluate OLD-FORM if the Emacs version is older than MIN-VERSION, ; -(defun d-forward-decl-or-cast-1 (preceding-token-end context last-cast-end) +(defun d-forward-decl-or-cast-1 (preceding-token-end context last-cast-end &optional inside-macro) "D version of `c-forward-decl-or-cast-1'." ;; checkdoc-params: (preceding-token-end context last-cast-end) ;; (message "(d-forward-decl-or-cast-1 %S %S %S) @ %S" preceding-token-end context last-cast-end (point))
[nongnu] branch scratch/mastodon created (now 5640de5f2e)
monnier pushed a change to branch scratch/mastodon. at 5640de5f2e Misc minor cosmetic changes This branch includes the following new commits: new b3563c416b Authentication via OAuth2 new e91facdb64 Add optional headers to POST method new 54263c5384 Restructure under lisp directory new 1457f9f5cd Add follow scope new 96f4b3627b Refactor authorization new d5e3ff37a9 Fix void-function error new b3faec5e80 Add WIP triage function on toot send new cce134294d Update DOCSTRINGs new 787e432ca3 Move entry functions to mastodon.el new e3ef670c2c Create README.md new 2f7193a320 Ignore compiled and packaging files new 50f0729dba Fix #1 by adding scope to auth token request new 0ea0ae09ff Change Mastodon link to the repo new c19745033c Add spacemacs badge new bf6f3632e8 Move badge beneath summary new 5cf1dd9c2f Fix #8 flycheck issues new dc66e44c0f Close #7 with repo URL new 76476584ab Add versioning new 3b318408c2 Make headers more conventional new 2d79c9c5cf Add tests for mastodon-toot.el functions new d21fdb8b65 Close #13 - Add roadmap section to README new 9831a8fdae Add mastodon-auth--registration-success test new f091a811d0 Add mastodon-auth--register-client-app test new 88e7f432c0 Add mastodon--register-and-return-client-app test new 82cf1d7faa Remove progn and return register-client-app funcall new 24e038facf Add store-client-id-and-secret test new 59390fba8c Add mastodon--client-app tests new 40a54819cf Abstract success lambda to its own function and test new 5252359383 Add mastodon--get-access-token test new e20f074de9 Add tests for `mastodon--access-token' new 2433e72f27 Use `read-passwd' new b719e9054f Fix return value bug new 993dfce9bd Refactor mastodon--register-and-return-client-app new 0c80780a32 Add `mastodon-auth--client' function new b503c07c84 Fixes #19 Change README.md to README.org new 523bf47c32 Add GET function new f42d5e2666 Use synchronous calls for simpler JSON parsing new cb8502f9ee Retrieve home timeline with `mastodon' function new 626c6f8607 Update README.org new da84326539 Do some cleanup new 48fcd12d9d Add major mode new 5db9b77f53 Fix mastodon function new 02000bab44 Update README with keybindings new f731da950c Update version to 0.2.1 new cb985db2f3 Fixes #29 - Provide context menu for discover mode new d1aa39c22b Provide context menu from `with-eval-after-load' block new fe32d70577 Add `j' and `k' bindings to move to previous/next toot new fc90522bf2 Update README.org new 43c1e81cd4 Add function to update current timeline new 90e1ba9bfc Update DOCSTRINGs new 8d9e401fbf Update to v0.2.2 new 355daed5ab Rewrite timeline display internals and fix #36 new 77f514a48d Fix #38 by using pre-existing faces new e58de9ad62 Reimplement update post-rewrite new f75f4b4ac0 Do not use fringe face new e09f5861e2 Update to v0.3.0 new 9c2d623099 Fix #43 with LICENSE file new b10430e7d4 Add boost feature to timelines new 35a896aaf7 Rename mastodon-toot--property and move to tl feature new 27d152d85d Show boosted state with (B) marker in byline new bf556946eb Update README.org new 1e5ef7931b Update README.org new d619ea51ef Display favourited status in byline new 3b781f850c Favourite toots from timelines new 6375aa4646 Add keybinding and update README new b2f927617e Add and use mastodon-tl--field function new 9d9da60576 Add reply functionality new 1c403fb2e1 Add reply keybinding and update README new f8f4aff331 Add thread functionality to timelines new 31c141d371 Add keybinding for `mastodon-tl--thread' and update README new 8d116aeb7e Fix load issue new 9a741181ce Update to v0.4.0 new ebf22afa9a Update roadmap new 232c621682 Better feedback on boost/favourite new 20f5b32b17 Fix #25 with const variable new 7f9fae9eca Render html with shr instead of html2text new 9a705f3884 Update to v0.4.1 new df6320f517 Close #11 with new callbacks new fa9b989e53 Cleanup mastodon-toot feature new 013c83f4f1 Update README.org new e26e85c6c3 Update README.org new a2ac4793be Fix 32 decode utf-8 for content, name and handle new b7d9589a33 fix 32 added instructions in readme to enable emojies new 5339f928c9 Update README.org new c68d4554fe Bump to v0.4.2 new e9dd14192f Add mastodon-client feature new 949912d793 Use Cask to run tests in TravisCI new 950a71a7e8 Rewrite mastodon-auth new 993fbec64e Clean up tests and
[elpa] externals/embark dfd1b6f4cc: New Related Packages section of the manual
branch: externals/embark commit dfd1b6f4cc5858c34d92fd9a447c888cca29f002 Author: Omar Antolín Commit: Omar Antolín New Related Packages section of the manual --- README.org | 21 - embark.texi | 58 +++--- 2 files changed, 63 insertions(+), 16 deletions(-) diff --git a/README.org b/README.org index 27e77a561e..5752b43a6f 100644 --- a/README.org +++ b/README.org @@ -275,7 +275,6 @@ The selection functionality is supported in every buffer: together, you can select each one, insert them all somewhere and finally delete all of them (from their original locations). - *** =embark-live= a live-updating variant of =embark-collect= Finally, there is also an =embark-live= variant of the =embark-collect= @@ -1105,6 +1104,26 @@ Embark and Consult. Some examples are: the location if it matches a unique imenu entry, otherwise it will leave the minibuffer open so you can navigate among the matches. +* Related Packages + +There are several packages that offer functionality similar +to Embark's. + +- Acting on minibuffer completion candidates :: The popular Ivy and + Helm packages have support for acting on the completion candidates + of commands written using their APIs, and there is an extensive + ecosystem of packages meant for Helm and for Ivy (the Ivy ones + usually have "counsel" in the name) providing commands and + appropriate actions. +- Acting on things at point :: The built-in =context-menu-mode= provides + a mouse-driven context-sensitive configurable menu. The =do-at-point= + package by Phil Kaluderic (available on GNU ELPA), on the other hand + is keyboard-driven. +- Collecting completion candidates into a buffer :: The Ivy package + has the command =ivy-occur= which is similar to =embark-collect=. As + with Ivy actions, =ivy-occur= only works for commands written using + the Ivy API. + * Resources If you want to learn more about how others have used Embark here are diff --git a/embark.texi b/embark.texi index 7c2891b526..a6d69e0ed8 100644 --- a/embark.texi +++ b/embark.texi @@ -30,6 +30,7 @@ * Advanced configuration:: * How does Embark call the actions?:: * Embark, Marginalia and Consult: Embark Marginalia and Consult. +* Related Packages:: * Resources:: * Contributions:: * Acknowledgments:: @@ -279,10 +280,11 @@ candidates, for you to peruse and run actions on at your leisure. The candidates are displayed as a list showing additional annotations. The Embark Collect buffer is somewhat ``dired-like'': you can select -and deselect candidates through the @samp{embark-select} action (bound to -@samp{SPC}). In an Embark Collect buffer @samp{embark-act} is bound to @samp{a} and -@samp{embark-act-all} is bound to @samp{A}; @samp{embark-act-all} will act on all -currently marked candidates if there any, and will act on all +and deselect candidates through @samp{embark-select} (available as an +action in @samp{embark-act}, bound to @samp{SPC}; but you could also give it a +global key binding). In an Embark Collect buffer @samp{embark-act} is bound +to @samp{a} and @samp{embark-act-all} is bound to @samp{A}; @samp{embark-act-all} will act on +all currently marked candidates if there any, and will act on all candidates if none are marked. In particular, this means that @samp{a SPC} will toggle whether the candidate at point is selected, and @samp{A SPC} will select all candidates if none are selected, or deselect all @@ -341,14 +343,16 @@ or in a dired buffer they work on all marked files (or all files if none are marked). Embark also has a notion of @emph{selection}, where you can accumulate an ad hoc list of targets for these commands to work on. -The selection is controlled by using the @samp{embark-select} action (which -must be run as an action through @samp{embark-act}), bound to @samp{SPC} in -@samp{embark-general-map} so that it is always available. Calling this action -on a target toggles its membership in the current buffer's Embark -selection; that is, it adds it to selection if not selected and -removes it from the selection if it was selected. Whenever the -selection for a buffer is non-empty, the commands @samp{embark-act-all}, -@samp{embark-export} and @samp{embark-collect} will act on the selection. +The selection is controlled by using the @samp{embark-select} action, bound +to @samp{SPC} in @samp{embark-general-map} so that it is always available (you can +also give @samp{embark-select} a global key binding if you wish; when called +directly, not as an action for @samp{embark-act}, it will select the first +target at point). Calling this action on a target toggles its +membership in the current buffer's Embark selection; that is, it adds +it to selection if not selected and removes it from the selection if +it was selected. Whenever the selection for a buffer is non-empty, the +commands @samp{embark-act-all}, @samp{embark-export} and @samp{embark-collect} w
[elpa] externals/embark-consult updated (4215d79df5 -> dfd1b6f4cc)
elpasync pushed a change to branch externals/embark-consult. from 4215d79df5 embark-eval-replace: with prefix, don't quote strings adds dfd1b6f4cc New Related Packages section of the manual No new revisions were added by this update. Summary of changes: README.org | 21 - embark.texi | 58 +++--- 2 files changed, 63 insertions(+), 16 deletions(-)