Changeset 19141 for lang/elisp

Show
Ignore:
Timestamp:
09/10/08 23:14:13 (2 months ago)
Author:
imakado
Message:

anything-c-moccur-isearch-forward anything-c-moccur-isearch-backward anything-c-moccur-resume の三つのコマンドを追加。\_>等の記号のみの入力の際に動作しないように。

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/elisp/anything-c-moccur/trunk/anything-c-moccur.el

    r18986 r19141  
    33 
    44;; Author: Kenji.Imakado <ken.imakaado -at- gmail.com> 
    5 ;; Version: 0.2 
    65;; Keywords: occur 
    76;; Prefix: anything-c-moccur- 
     
    3332;;           '(lambda () 
    3433;;              (local-set-key (kbd "O") 'anything-c-moccur-dired-do-moccur-by-moccur))) 
     34;; (global-set-key (kbd "C-M-s") 'anything-c-moccur-isearch-forward) 
     35;; (global-set-key (kbd "C-M-r") 'anything-c-moccur-isearch-backward) 
     36 
     37;;; Todo: 
     38;; resume 
    3539 
    3640;;;code: 
     
    98102 
    99103;;; variables 
     104(defvar anything-c-moccur-version 0.3) 
    100105(defvar anything-c-moccur-anything-invoking-flag nil) 
    101106(defvar anything-c-moccur-anything-initial-pattern "") 
     
    230235      (anything-execute-persistent-action)))) 
    231236 
     237(defvar anything-c-moccur-last-buffer nil) 
    232238(defmacro anything-c-moccur-with-anything-env (sources &rest body) 
    233239  (declare (indent 1)) 
     
    242248         (progn 
    243249           ,@body) 
    244        (remove-hook 'anything-c-moccur-anything-after-update-hook 'anything-c-moccur-anything-try-execute-persistent-action)))) 
     250       (remove-hook 'anything-c-moccur-anything-after-update-hook 'anything-c-moccur-anything-try-execute-persistent-action) 
     251       (setq anything-c-moccur-last-buffer anything-current-buffer)))) 
     252 
    245253 
    246254(defun anything-c-moccur-clean-up () 
     
    316324    ad-do-it))) 
    317325 
     326(defun anything-c-moccur-bad-regexp-p (re) 
     327  (or (string-match (rx bol (+ space) eol) re) 
     328      (string-equal "" re) 
     329      (string-match (rx bol (* (any "<" ">" "\\" "_" "`")) eol) re))) 
     330 
    318331(defun anything-c-moccur-moccur-search (regexp arg buffers) 
    319332  (ignore-errors 
     
    324337          (ad-activate 'moccur-search) 
    325338          ;; 空白のみで呼ばれると固まることがあったので追加 
    326           (when (or (string-match (rx bol (+ space) eol) anything-pattern) 
    327                     (string-equal "" anything-pattern)) 
     339          (when (anything-c-moccur-bad-regexp-p anything-pattern) 
    328340            (error "")) 
    329341 
     
    374386    (volatile))) 
    375387 
    376 (defun anything-c-moccur-occur-by-moccur () 
    377   (interactive) 
    378   (anything-c-moccur-with-anything-env (list anything-c-source-occur-by-moccur) 
    379     (let* ((initial-pattern (if anything-c-moccur-enable-initial-pattern 
    380                                 (or (thing-at-point 'symbol) "") 
    381                               ""))) 
    382       (when anything-c-moccur-push-mark-flag 
    383         (push-mark)) 
    384       (anything nil initial-pattern)))) 
     388(defun anything-c-moccur-occur-by-moccur (&optional prefix) 
     389  (interactive "P") 
     390  (if prefix 
     391      (anything-c-moccur-resume) 
     392    (anything-c-moccur-with-anything-env (list anything-c-source-occur-by-moccur) 
     393      (let* ((initial-pattern (if anything-c-moccur-enable-initial-pattern 
     394                                  (or (thing-at-point 'symbol) "") 
     395                                ""))) 
     396        (when anything-c-moccur-push-mark-flag 
     397          (push-mark)) 
     398        (anything nil initial-pattern))))) 
    385399 
    386400(defun anything-c-moccur-occur-by-moccur-only-function () 
     
    396410    (when anything-c-moccur-push-mark-flag 
    397411      (push-mark)) 
    398     (anything ";;; "))) 
     412    (anything nil ";;; "))) 
    399413 
    400414(defun anything-c-moccur-query-replace-regexp () 
     
    538552    (anything-c-moccur-with-anything-env (list anything-c-source-dired-do-moccur) 
    539553      (anything)))) 
     554 
     555;;; Commands 
     556 
     557(defun anything-c-moccur-last-sources-is-moccur-p () 
     558  (and (equal anything-c-moccur-last-buffer (current-buffer)) 
     559       (every (lambda (source) 
     560                (let ((source (if (listp source) source (symbol-value source)))) 
     561                  (string-match "moccur" (assoc-default 'name source)))) 
     562              anything-last-sources))) 
     563 
     564(defun anything-c-moccur-resume () 
     565  (interactive) 
     566  (if (anything-c-moccur-last-sources-is-moccur-p) 
     567      (anything-c-moccur-with-anything-env anything-last-sources 
     568        (anything-c-moccur-initialize) 
     569        (anything-resume)) 
     570    (message "last source is not anything-c-moccur source"))) 
     571 
     572(defun anything-c-moccur-isearch-forward () 
     573  (interactive) 
     574  (let ((anything-c-moccur-widen-when-goto-line-flag nil)) 
     575    (save-restriction 
     576      (narrow-to-region (point-at-bol) (point-max)) 
     577      (anything-c-moccur-occur-by-moccur)))) 
     578 
     579(defun anything-c-moccur-isearch-backward () 
     580  (interactive) 
     581  (let* ((anything-c-moccur-widen-when-goto-line-flag nil) 
     582         (copied-source (copy-alist anything-c-source-occur-by-moccur)) ;anything-c-source-occur-by-moccur is list. not symbol 
     583         (anything-c-source-occur-by-moccur (cons '(candidate-transformer . (lambda (-candidates) 
     584                                                                              (reverse -candidates))) 
     585                                                  copied-source))) 
     586    (save-restriction 
     587      (narrow-to-region (point-min) (point-at-eol)) 
     588      (anything-c-moccur-occur-by-moccur)))) 
    540589 
    541590;;; Commands for `anything-c-moccur-anything-map' 
     
    650699            '(anything-c-source-occur-by-moccur) "bbb") 
    651700           (kill-buffer buf))))) 
     701      (desc "anything-c-moccur-bad-regexp-p") 
     702      (expect t 
     703        (when (anything-c-moccur-bad-regexp-p "\\_>") t)) 
     704         
    652705        ))) 
    653706