Changeset 18858

Show
Ignore:
Timestamp:
09/05/08 00:01:18 (4 months ago)
Author:
imakado
Message:

initial-patternは関数anythingの引数で指定。initとcleanupはsourceで指定。

Files:
1 modified

Legend:

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

    r18828 r18858  
    218218 
    219219(defun anything-c-moccur-initialize () 
    220   (setq anything-c-moccur-anything-invoking-flag t) 
    221   (setq anything-c-moccur-anything-current-buffer (current-buffer)) 
    222   (setq anything-c-moccur-saved-info nil)) 
     220  (setq anything-c-moccur-saved-info nil 
     221        anything-c-moccur-anything-invoking-flag t)) 
    223222 
    224223(defun anything-c-moccur-anything-try-execute-persistent-action () 
    225   (when anything-c-moccur-enable-auto-look-flag 
    226     (anything-execute-persistent-action))) 
     224  (when (and anything-c-moccur-enable-auto-look-flag 
     225             anything-c-moccur-anything-invoking-flag) 
     226    (unless (zerop (buffer-size (get-buffer (anything-buffer-get)))) 
     227      (anything-execute-persistent-action)))) 
    227228 
    228229(defmacro anything-c-moccur-with-anything-env (sources &rest body) 
     
    234235                                anything-c-moccur-anything-idle-delay) 
    235236                               (t anything-idle-delay)))) 
    236      (anything-c-moccur-initialize) 
    237237     (add-hook  'anything-c-moccur-anything-after-update-hook 'anything-c-moccur-anything-try-execute-persistent-action) 
    238238     (unwind-protect 
     
    241241       (remove-hook 'anything-c-moccur-anything-after-update-hook 'anything-c-moccur-anything-try-execute-persistent-action)))) 
    242242 
    243 (defun anything-c-moccur-anything-update-initial-pattern () 
    244   (let ((minibuffer-window (active-minibuffer-window))) 
    245     (when (and minibuffer-window 
    246                (stringp anything-c-moccur-anything-initial-pattern)) 
    247       (with-current-buffer (window-buffer minibuffer-window) 
    248         (insert anything-c-moccur-anything-initial-pattern) 
    249         (anything-check-minibuffer-input))))) 
    250  
    251 (defadvice anything (around anything-c-moccur-enable-initial-pattern activate) 
    252   (cond ((and (boundp 'anything-c-moccur-anything-invoking-flag) 
    253               anything-c-moccur-anything-invoking-flag 
    254               (not (string-equal "" anything-c-moccur-anything-initial-pattern))) 
    255          (add-hook  'minibuffer-setup-hook 'anything-c-moccur-anything-update-initial-pattern) 
    256          (unwind-protect 
    257              ad-do-it 
    258            (remove-hook 'minibuffer-setup-hook 'anything-c-moccur-anything-update-initial-pattern))) 
    259         (t 
    260          ad-do-it))) 
    261  
    262243(defun anything-c-moccur-clean-up () 
    263244  (setq anything-c-moccur-anything-invoking-flag nil) 
    264  
    265245  (when (overlayp anything-c-moccur-current-line-overlay) 
    266246    (delete-overlay anything-c-moccur-current-line-overlay))) 
    267  
    268 (defadvice anything-cleanup (after anything-c-moccur-clean-up activate protect) 
    269   (ignore-errors 
    270     (anything-c-moccur-clean-up))) 
    271247 
    272248;; (anything-next-line) 後のanything-update-hook 
     
    274250(defvar anything-c-moccur-anything-after-update-hook nil) 
    275251(defadvice anything-process-delayed-sources (after anything-c-moccur-anything-after-update-hook activate protect) 
    276    (when (and (boundp 'anything-c-moccur-anything-invoking-flag) 
    277               anything-c-moccur-anything-invoking-flag) 
    278      (ignore-errors 
    279        (run-hooks 'anything-c-moccur-anything-after-update-hook)))) 
     252  (when (and (boundp 'anything-c-moccur-anything-invoking-flag) 
     253             anything-c-moccur-anything-invoking-flag) 
     254    (ignore-errors 
     255      (run-hooks 'anything-c-moccur-anything-after-update-hook)))) 
    280256 
    281257(defadvice anything-select-action (before anything-c-moccur-saved-info activate) 
     
    364340 
    365341(defun anything-c-moccur-occur-by-moccur-get-candidates () 
    366   (anything-c-moccur-moccur-search anything-pattern t (list anything-c-moccur-anything-current-buffer)) 
     342  (anything-c-moccur-moccur-search anything-pattern t (list anything-current-buffer)) 
    367343  (anything-c-moccur-occur-by-moccur-scraper)) 
    368344 
    369345(defun anything-c-moccur-occur-by-moccur-persistent-action (candidate) 
    370   (pop-to-buffer anything-c-moccur-anything-current-buffer) 
    371346  (anything-c-moccur-widen-if-need) 
    372347  (goto-line (string-to-number candidate)) 
     
    389364    (action . (("Goto line" . anything-c-moccur-occur-by-moccur-goto-line))) 
    390365    (persistent-action . anything-c-moccur-occur-by-moccur-persistent-action) 
     366    (init . anything-c-moccur-initialize) 
     367    (cleanup . anything-c-moccur-clean-up) 
    391368    (match . (identity)) 
    392369    (requires-pattern . 3) 
     
    399376    (let* ((initial-pattern (if anything-c-moccur-enable-initial-pattern 
    400377                                (or (thing-at-point 'symbol) "") 
    401                               "")) 
    402            (anything-c-moccur-anything-initial-pattern initial-pattern)) 
     378                              ""))) 
    403379      (when anything-c-moccur-push-mark-flag 
    404380        (push-mark)) 
    405       (anything)))) 
     381      (anything nil initial-pattern)))) 
    406382 
    407383(defun anything-c-moccur-occur-by-moccur-only-function () 
    408384  (interactive) 
    409385  (anything-c-moccur-with-anything-env (list anything-c-source-occur-by-moccur) 
    410     (let ((anything-c-moccur-anything-initial-pattern "! ")) 
    411       (when anything-c-moccur-push-mark-flag 
    412         (push-mark)) 
    413       (anything)))) 
     386    (when anything-c-moccur-push-mark-flag 
     387      (push-mark)) 
     388    (anything nil "! "))) 
    414389 
    415390(defun anything-c-moccur-occur-by-moccur-only-comment () 
    416391  (interactive) 
    417392  (anything-c-moccur-with-anything-env (list anything-c-source-occur-by-moccur) 
    418     (let ((anything-c-moccur-anything-initial-pattern ";;; ")) 
    419       (when anything-c-moccur-push-mark-flag 
    420         (push-mark)) 
    421       (anything)))) 
     393    (when anything-c-moccur-push-mark-flag 
     394      (push-mark)) 
     395    (anything ";;; "))) 
    422396 
    423397;;; dmoccur 
     
    500474    (match . (identity)) 
    501475    (requires-pattern . 5) 
     476    (init . anything-c-moccur-initialize) 
     477    (cleanup . anything-c-moccur-clean-up)     
    502478    (delayed) 
    503479    (volatile))) 
     
    536512    (match . (identity)) 
    537513    (requires-pattern . 3) 
     514    (init . anything-c-moccur-initialize) 
     515    (cleanup . anything-c-moccur-clean-up)     
    538516    (delayed) 
    539517    (volatile))) 
     
    622600  (anything-c-moccur-match-only-internal "\" ")) 
    623601 
     602 
     603(dont-compile 
     604  (when (fboundp 'expectations) 
     605    (expectations 
     606      (desc "initialize test") 
     607      (expect t 
     608        (let (v) 
     609          (anything-test-candidates 
     610           '(((name . "TEST") 
     611            (candidates "foo") 
     612            (init . (lambda () 
     613                      (anything-c-moccur-initialize) 
     614                      (setq v anything-c-moccur-anything-invoking-flag))) 
     615            (cleanup . anything-c-moccur-clean-up)))) 
     616            v)) 
     617      (desc "cleanup test") 
     618      (expect nil 
     619        (let ((anything-c-moccur-anything-invoking-flag t)) 
     620          (anything-test-candidates 
     621           '(anything-c-source-occur-by-moccur)) 
     622          anything-c-moccur-anything-invoking-flag)) 
     623      (desc "anything-c-source-occur-by-moccur") 
     624      (expect '(("Occur by Moccur" ("    2 bbb"))) 
     625        (let ((buf (get-buffer-create "*test anything-c-moccur*"))) 
     626        (with-current-buffer buf 
     627          (insert "aaa\nbbb\nccc") 
     628          (prin1 
     629           (anything-test-candidates 
     630            '(anything-c-source-occur-by-moccur) "bbb") 
     631           (kill-buffer buf))))) 
     632        ))) 
     633 
     634 
    624635(provide 'anything-c-moccur) 
    625636