[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
03/24: emacs: Add and use 'guix-while-search'.
From: |
Alex Kost |
Subject: |
03/24: emacs: Add and use 'guix-while-search'. |
Date: |
Fri, 28 Aug 2015 20:06:31 +0000 |
alezost pushed a commit to branch wip-emacs-popup-ui
in repository guix.
commit 914825a6399c36b9c6db225f514b00de25302da6
Author: Alex Kost <address@hidden>
Date: Wed Aug 12 15:28:55 2015 +0300
emacs: Add and use 'guix-while-search'.
* emacs/guix-utils.el (guix-while-search): New macro.
* emacs/guix-pcomplete.el (guix-pcomplete-run-guix-and-search): Use it.
* emacs/guix-prettify.el (guix-prettify-decompose-buffer): Likewise.
---
emacs/guix-pcomplete.el | 3 +--
emacs/guix-prettify.el | 16 ++++++++--------
emacs/guix-utils.el | 8 ++++++++
3 files changed, 17 insertions(+), 10 deletions(-)
diff --git a/emacs/guix-pcomplete.el b/emacs/guix-pcomplete.el
index 9ec563c..0049c94 100644
--- a/emacs/guix-pcomplete.el
+++ b/emacs/guix-pcomplete.el
@@ -105,9 +105,8 @@ Return a list of strings matching REGEXP.
GROUP specifies a parenthesized expression used in REGEXP."
(with-temp-buffer
(apply #'guix-pcomplete-run-guix args)
- (goto-char (point-min))
(let (result)
- (while (re-search-forward regexp nil t)
+ (guix-while-search regexp
(push (match-string-no-properties group) result))
(nreverse result))))
diff --git a/emacs/guix-prettify.el b/emacs/guix-prettify.el
index c74a393..24dfbb3 100644
--- a/emacs/guix-prettify.el
+++ b/emacs/guix-prettify.el
@@ -1,6 +1,6 @@
;;; guix-prettify.el --- Prettify Guix store file names
-;; Copyright © 2014 Alex Kost <address@hidden>
+;; Copyright © 2014, 2015 Alex Kost <address@hidden>
;; This file is part of GNU Guix.
@@ -47,6 +47,8 @@
;;; Code:
+(require 'guix-utils)
+
(defgroup guix-prettify nil
"Prettify Guix store file names."
:prefix "guix-prettify-"
@@ -137,13 +139,11 @@ enabling/disabling `guix-prettify-mode'. If nil, do
nothing.")
(remove-text-properties (point-min)
(point-max)
'(composition nil))
- (save-excursion
- (goto-char (point-min))
- (while (re-search-forward guix-prettify-regexp nil t)
- (remove-text-properties
- (match-beginning guix-prettify-regexp-group)
- (match-end guix-prettify-regexp-group)
- '(composition nil))))))))
+ (guix-while-search guix-prettify-regexp
+ (remove-text-properties
+ (match-beginning guix-prettify-regexp-group)
+ (match-end guix-prettify-regexp-group)
+ '(composition nil)))))))
;;;###autoload
(define-minor-mode guix-prettify-mode
diff --git a/emacs/guix-utils.el b/emacs/guix-utils.el
index dc0c58a..8a0673a 100644
--- a/emacs/guix-utils.el
+++ b/emacs/guix-utils.el
@@ -160,6 +160,14 @@ accessed with KEYS."
(find-file file)
(message "File '%s' does not exist." file)))
+(defmacro guix-while-search (regexp &rest body)
+ "Evaluate BODY after each search for REGEXP in the current buffer."
+ (declare (indent 1) (debug t))
+ `(save-excursion
+ (goto-char (point-min))
+ (while (re-search-forward ,regexp nil t)
+ ,@body)))
+
;;; Diff
- branch wip-emacs-popup-ui created (now a7d4674), Alex Kost, 2015/08/28
- 01/24: emacs: Remove leftover internal variable., Alex Kost, 2015/08/28
- 02/24: emacs: Add 'guix-prettify' to 'guix' custom group., Alex Kost, 2015/08/28
- 06/24: emacs: Add utils to copy guix command., Alex Kost, 2015/08/28
- 03/24: emacs: Add and use 'guix-while-search'.,
Alex Kost <=
- 04/24: emacs: Add and use 'guix-concat-strings'., Alex Kost, 2015/08/28
- 05/24: emacs: Add utils to make symbol and string for guix command., Alex Kost, 2015/08/28
- 07/24: emacs: Add 'guix-any'., Alex Kost, 2015/08/28
- 08/24: emacs: Add 'guix-memoized-defalias' macro., Alex Kost, 2015/08/28
- 09/24: guix lint: Export checkers and <lint-checker> accessors., Alex Kost, 2015/08/28
- 10/24: emacs: Add 'guix-lint-checker-names'., Alex Kost, 2015/08/28
- 11/24: guix graph: Export node types and <node-type> accessors., Alex Kost, 2015/08/28
- 12/24: emacs: Add 'guix-graph-type-names'., Alex Kost, 2015/08/28
- 13/24: emacs: Add 'guix-package-names'., Alex Kost, 2015/08/28
- 17/24: ui: Add 'run-guix'., Alex Kost, 2015/08/28