[elpa] master 649726e: Improve jumping to matches in *El Occur* buffers
branch: master commit 649726ecf665f382e0a83fc5b76fcc325241a3ca Author: Michael Heerdegen Commit: Michael Heerdegen Improve jumping to matches in *El Occur* buffers --- packages/el-search/el-search.el | 123 ++-- 1 file changed, 79 insertions(+), 44 deletions(-) diff --git a/packages/el-search/el-search.el b/packages/el-search/el-search.el index 9d10aa4..6237afb 100644 --- a/packages/el-search/el-search.el +++ b/packages/el-search/el-search.el @@ -1777,6 +1777,9 @@ local binding of `window-scroll-functions'." (setq el-search--temp-buffer-flag nil) (el-search-kill-left-over-search-buffers +(defun el-search--pending-search-p () + (memq #'el-search-hl-post-command-fun post-command-hook)) + (defun el-search--reset-wrap-flag () (unless (or (eq this-command 'el-search-query-replace) (eq this-command 'el-search-pattern)) @@ -1947,7 +1950,7 @@ continued." (defun el-search-pattern--interactive () (list (if (or ;;Hack to make a pop-up buffer search from occur "stay active" - (memq #'el-search-hl-post-command-fun post-command-hook) + (el-search--pending-search-p) (and (eq this-command last-command) (or el-search--success el-search--wrap-flag))) (el-search--current-pattern) @@ -1983,8 +1986,10 @@ See `el-search-defined-patterns' for a list of defined patterns." (el-search--message-no-log "[Wrapped search]") (sit-for .7) (el-search-from-beginning 'restart))) - ((and (eq this-command last-command) - (eq pattern (el-search--current-pattern))) + ((or + (el-search--pending-search-p) + (and (eq this-command last-command) + (eq pattern (el-search--current-pattern (progn (el-search--skip-expression nil t) (el-search-continue-search 'from-here))) @@ -2150,26 +2155,74 @@ Prompt for a new pattern and revert the occur buffer." (interactive) (if (button-at (point)) (push-button) -(when-let ((data (get-text-property (point) 'match-data)) - (pattern (el-search-object-pattern el-search-occur-search-object))) - (pcase-let ((`(,buffer ,position ,file) data)) -(with-selected-window -(display-buffer (if file (find-file-noselect file) buffer) -'((display-buffer-pop-up-window))) - (when (and (buffer-narrowed-p) - (or (< position (point-min)) - (> position (point-max))) - (not (and (y-or-n-p "Widen buffer? ") - (progn (widen) t -(user-error "Can't jump to match")) - (goto-char position) - (el-search-setup-search - pattern - (let ((current-buffer (current-buffer))) - (lambda () (stream (list current-buffer - (lambda (search) (setf (alist-get 'is-single-buffer (el-search-object-properties search)) t)) - 'from-here) - (setq-local el-search-keep-hl 'once)) +(if-let ((params (get-char-property (point) 'el-search-match))) +(apply #'el-search--occur-button-action params) + ;; User clicked not directly on a match + (catch 'nothing-here +(let ((clicked-pos (point)) (done nil) some-match-pos) + (save-excursion +(pcase (el-search--bounds-of-defun) + ('nil + (throw 'nothing-here t)) + (`(,defun-beg . ,defun-end) + (unless (< defun-end (point)) (goto-char defun-beg +;; Try to find corresponding position in source buffer +(setq some-match-pos (point)) +(while (and (not done) (setq some-match-pos (funcall #'next-single-char-property-change + some-match-pos 'el-search-match))) + (setq done (or (memq some-match-pos (list (point-min) (point-max))) + (cl-some (lambda (ov) (overlay-get ov 'el-search-match)) + (overlays-at some-match-pos)) + (let ((delta-lines (count-lines clicked-pos some-match-pos))) +(when (save-excursion +(goto-char (max clicked-pos some-match-pos)) +(not (bolp))) + (cl-decf delta-lines)) +(when (< clicked-pos some-match-pos) + (cl-callf - delta-lines)) +(pcase-let ((`(,file-name-or-buffer ,pos) + (get-char-property some-match-pos 'el-search-match))) + (el-search--occur-button-action + file-name-or-buffer nil + (lambda () + (goto-char pos) + (beginning-of-line) + (forward-line delta-lines)) + '((display-buffer-pop-up-window)) + +(defun el-search--occur-button-action (filename-or-bu
[elpa] master a0c1b61 2/2: Merge commit '2545b5c764bf84701e352a45d7e849b23845b006'
branch: master commit a0c1b61bc95af89af3b3ec6de327a7780a15efa8 Merge: 649726e 2545b5c Author: Matthew Carter Commit: Matthew Carter Merge commit '2545b5c764bf84701e352a45d7e849b23845b006' --- packages/ahungry-theme/ahungry-theme.el | 7 ++- packages/ahungry-theme/color-theme-ahungry.el | 4 +++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/ahungry-theme/ahungry-theme.el b/packages/ahungry-theme/ahungry-theme.el index 13cbf07..ac7899e 100644 --- a/packages/ahungry-theme/ahungry-theme.el +++ b/packages/ahungry-theme/ahungry-theme.el @@ -5,7 +5,7 @@ ;; Author: Matthew Carter ;; Maintainer: Matthew Carter ;; URL: https://github.com/ahungry/color-theme-ahungry -;; Version: 1.6.0 +;; Version: 1.7.0 ;; Keywords: ahungry palette color theme emacs color-theme deftheme ;; Package-Requires: ((emacs "24")) @@ -36,6 +36,9 @@ ;;; News: + Changes since 1.6.0: +;; - Add man/woman faces. + Changes since 1.5.0: ;; - Bump up font size ;; - Make dark blues a little brighter. @@ -290,6 +293,8 @@ Default value: '(button ((t (:foreground "#0055ff" :bold t :underline t '(Man-overstrike ((t (:foreground "yellow" :bold t '(Man-underline ((t (:foreground "orange" :underline t + '(woman-bold ((t (:foreground "yellow" :bold t + '(woman-italic ((t (:foreground "orange" :underline t ) (custom-theme-set-variables 'ahungry diff --git a/packages/ahungry-theme/color-theme-ahungry.el b/packages/ahungry-theme/color-theme-ahungry.el index a4f6a37..c2c8326 100644 --- a/packages/ahungry-theme/color-theme-ahungry.el +++ b/packages/ahungry-theme/color-theme-ahungry.el @@ -5,7 +5,7 @@ ;; Author: Matthew Carter ;; Maintainer: Matthew Carter ;; URL: https://github.com/ahungry/color-theme-ahungry -;; Version: 1.5.0 +;; Version: 1.7.0 ;; Keywords: ahungry palette color theme emacs color-theme deftheme ;; Package-Requires: ((color-theme "6.6.1")) @@ -208,6 +208,8 @@ (button ((t (:foreground "#0055ff" :bold t :underline t (Man-overstrike ((t (:foreground "yellow" :bold t (Man-underline ((t (:foreground "orange" :underline t + (woman-bold ((t (:foreground "yellow" :bold t + (woman-italic ((t (:foreground "orange" :underline t ))) (provide 'color-theme-ahungry)
[elpa] master 2545b5c 1/2: Add man page faces
branch: master commit 2545b5c764bf84701e352a45d7e849b23845b006 Author: Matthew Carter Commit: Matthew Carter Add man page faces --- ahungry-theme.el | 7 ++- color-theme-ahungry.el | 4 +++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/ahungry-theme.el b/ahungry-theme.el index 13cbf07..ac7899e 100644 --- a/ahungry-theme.el +++ b/ahungry-theme.el @@ -5,7 +5,7 @@ ;; Author: Matthew Carter ;; Maintainer: Matthew Carter ;; URL: https://github.com/ahungry/color-theme-ahungry -;; Version: 1.6.0 +;; Version: 1.7.0 ;; Keywords: ahungry palette color theme emacs color-theme deftheme ;; Package-Requires: ((emacs "24")) @@ -36,6 +36,9 @@ ;;; News: + Changes since 1.6.0: +;; - Add man/woman faces. + Changes since 1.5.0: ;; - Bump up font size ;; - Make dark blues a little brighter. @@ -290,6 +293,8 @@ Default value: '(button ((t (:foreground "#0055ff" :bold t :underline t '(Man-overstrike ((t (:foreground "yellow" :bold t '(Man-underline ((t (:foreground "orange" :underline t + '(woman-bold ((t (:foreground "yellow" :bold t + '(woman-italic ((t (:foreground "orange" :underline t ) (custom-theme-set-variables 'ahungry diff --git a/color-theme-ahungry.el b/color-theme-ahungry.el index a4f6a37..c2c8326 100644 --- a/color-theme-ahungry.el +++ b/color-theme-ahungry.el @@ -5,7 +5,7 @@ ;; Author: Matthew Carter ;; Maintainer: Matthew Carter ;; URL: https://github.com/ahungry/color-theme-ahungry -;; Version: 1.5.0 +;; Version: 1.7.0 ;; Keywords: ahungry palette color theme emacs color-theme deftheme ;; Package-Requires: ((color-theme "6.6.1")) @@ -208,6 +208,8 @@ (button ((t (:foreground "#0055ff" :bold t :underline t (Man-overstrike ((t (:foreground "yellow" :bold t (Man-underline ((t (:foreground "orange" :underline t + (woman-bold ((t (:foreground "yellow" :bold t + (woman-italic ((t (:foreground "orange" :underline t ))) (provide 'color-theme-ahungry)