Changeset 18859

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

branches/new-anythingからtrunkへmerge

Files:
1 modified

Legend:

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

    r18824 r18859  
    33 
    44;; Author: Kenji.Imakado <ken.imakaado -at- gmail.com> 
    5 ;; Version: 0.1 
     5;; Version: 0.2 
    66;; Keywords: occur 
    77;; Prefix: anything-c-moccur- 
     
    217217  (anything-c-moccur-anything-try-execute-persistent-action)) 
    218218 
    219 ;;; Advise and Hack 
    220 (defun anything-c-moccur-anything-execute-persistent-action () 
    221   "If a candidate was selected then perform the associated action without quitting anything." 
    222   (interactive) 
    223   (save-selected-window 
    224     (select-window (get-buffer-window anything-buffer)) 
    225     (select-window (setq minibuffer-scroll-window 
    226                          (if (one-window-p t) (split-window) (next-window (selected-window) 1)))) 
    227     (let* ((anything-window (get-buffer-window anything-buffer)) 
    228            ;;(same-window-regexps '(".")) 
    229            (selection (if anything-saved-sources 
    230                           ;; the action list is shown 
    231                           anything-saved-selection 
    232                         (anything-get-selection))) 
    233            (default-action (anything-get-action)) 
    234            (action (assoc-default 'persistent-action (anything-get-current-source)))) 
    235       (setq action (or action default-action)) 
    236       (if (and (listp action) 
    237                (not (functionp action))) ; lambda 
    238           ;; select the default action 
    239           (setq action (cdar action))) 
    240       (set-window-dedicated-p anything-window t) 
    241       (unwind-protect 
    242           (and action selection (funcall action selection)) 
    243         (set-window-dedicated-p anything-window nil))))) 
    244  
    245219(defun anything-c-moccur-initialize () 
    246   (setq anything-c-moccur-anything-invoking-flag t) 
    247   (setq anything-c-moccur-anything-current-buffer (current-buffer)) 
    248   (setq anything-c-moccur-saved-info nil)) 
     220  (setq anything-c-moccur-saved-info nil 
     221        anything-c-moccur-anything-invoking-flag t)) 
    249222 
    250223(defun anything-c-moccur-anything-try-execute-persistent-action () 
    251   (when (and (ignore-errors (anything-get-current-source)) 
    252              anything-c-moccur-enable-auto-look-flag) 
    253     (anything-c-moccur-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)))) 
    254228 
    255229(defmacro anything-c-moccur-with-anything-env (sources &rest body) 
     
    261235                                anything-c-moccur-anything-idle-delay) 
    262236                               (t anything-idle-delay)))) 
    263      (anything-c-moccur-initialize) 
    264237     (add-hook  'anything-c-moccur-anything-after-update-hook 'anything-c-moccur-anything-try-execute-persistent-action) 
    265238     (unwind-protect 
     
    268241       (remove-hook 'anything-c-moccur-anything-after-update-hook 'anything-c-moccur-anything-try-execute-persistent-action)))) 
    269242 
    270 (defun anything-c-moccur-anything-update-initial-pattern () 
    271   (let ((minibuffer-window (active-minibuffer-window))) 
    272     (when (and minibuffer-window 
    273                (stringp anything-c-moccur-anything-initial-pattern)) 
    274       (with-current-buffer (window-buffer minibuffer-window) 
    275         (insert anything-c-moccur-anything-initial-pattern) 
    276         (anything-check-minibuffer-input))))) 
    277  
    278 (defadvice anything (around anything-c-moccur-enable-initial-pattern activate) 
    279   (cond ((and (boundp 'anything-c-moccur-anything-invoking-flag) 
    280               anything-c-moccur-anything-invoking-flag 
    281               (not (string-equal "" anything-c-moccur-anything-initial-pattern))) 
    282          (add-hook  'minibuffer-setup-hook 'anything-c-moccur-anything-update-initial-pattern) 
    283          (unwind-protect 
    284              ad-do-it 
    285            (remove-hook 'minibuffer-setup-hook 'anything-c-moccur-anything-update-initial-pattern))) 
    286         (t 
    287          ad-do-it))) 
    288  
    289243(defun anything-c-moccur-clean-up () 
    290244  (setq anything-c-moccur-anything-invoking-flag nil) 
    291  
    292245  (when (overlayp anything-c-moccur-current-line-overlay) 
    293246    (delete-overlay anything-c-moccur-current-line-overlay))) 
    294  
    295 (defadvice anything-cleanup (after anything-c-moccur-clean-up activate protect) 
    296   (ignore-errors 
    297     (anything-c-moccur-clean-up))) 
    298247 
    299248;; (anything-next-line) 後のanything-update-hook 
     
    301250(defvar anything-c-moccur-anything-after-update-hook nil) 
    302251(defadvice anything-process-delayed-sources (after anything-c-moccur-anything-after-update-hook activate protect) 
    303    (when (and (boundp 'anything-c-moccur-anything-invoking-flag) 
    304               anything-c-moccur-anything-invoking-flag) 
    305      (ignore-errors 
    306        (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)))) 
    307256 
    308257(defadvice anything-select-action (before anything-c-moccur-saved-info activate) 
     
    391340 
    392341(defun anything-c-moccur-occur-by-moccur-get-candidates () 
    393   (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)) 
    394343  (anything-c-moccur-occur-by-moccur-scraper)) 
    395344 
    396345(defun anything-c-moccur-occur-by-moccur-persistent-action (candidate) 
    397   (pop-to-buffer anything-c-moccur-anything-current-buffer) 
    398346  (anything-c-moccur-widen-if-need) 
    399347  (goto-line (string-to-number candidate)) 
     
    416364    (action . (("Goto line" . anything-c-moccur-occur-by-moccur-goto-line))) 
    417365    (persistent-action . anything-c-moccur-occur-by-moccur-persistent-action) 
     366    (init . anything-c-moccur-initialize) 
     367    (cleanup . anything-c-moccur-clean-up) 
    418368    (match . (identity)) 
    419369    (requires-pattern . 3) 
     
    426376    (let* ((initial-pattern (if anything-c-moccur-enable-initial-pattern 
    427377                                (or (thing-at-point 'symbol) "") 
    428                               "")) 
    429            (anything-c-moccur-anything-initial-pattern initial-pattern)) 
     378                              ""))) 
    430379      (when anything-c-moccur-push-mark-flag 
    431380        (push-mark)) 
    432       (anything)))) 
     381      (anything nil initial-pattern)))) 
    433382 
    434383(defun anything-c-moccur-occur-by-moccur-only-function () 
    435384  (interactive) 
    436385  (anything-c-moccur-with-anything-env (list anything-c-source-occur-by-moccur) 
    437     (let ((anything-c-moccur-anything-initial-pattern "! ")) 
    438       (when anything-c-moccur-push-mark-flag 
    439         (push-mark)) 
    440       (anything)))) 
     386    (when anything-c-moccur-push-mark-flag 
     387      (push-mark)) 
     388    (anything nil "! "))) 
    441389 
    442390(defun anything-c-moccur-occur-by-moccur-only-comment () 
    443391  (interactive) 
    444392  (anything-c-moccur-with-anything-env (list anything-c-source-occur-by-moccur) 
    445     (let ((anything-c-moccur-anything-initial-pattern ";;; ")) 
    446       (when anything-c-moccur-push-mark-flag 
    447         (push-mark)) 
    448       (anything)))) 
     393    (when anything-c-moccur-push-mark-flag 
     394      (push-mark)) 
     395    (anything ";;; "))) 
    449396 
    450397;;; dmoccur 
     
    483430  (anything-c-moccur-next-line-if-info-line) 
    484431 
    485   (let ((real-candidate (if anything-saved-sources 
    486                             ;; the action list is shown 
    487                             anything-saved-selection 
    488                           (anything-get-selection)))) 
     432  (let ((real-candidate (anything-get-selection))) 
    489433   
    490434    (multiple-value-bind (buffer file-path) 
     
    494438                 (stringp file-path) 
    495439                 (file-readable-p file-path)) 
    496         (find-file-other-window file-path) 
     440         
     441        (find-file file-path) 
    497442       
    498443        (anything-c-moccur-widen-if-need) 
     
    529474    (match . (identity)) 
    530475    (requires-pattern . 5) 
     476    (init . anything-c-moccur-initialize) 
     477    (cleanup . anything-c-moccur-clean-up)     
    531478    (delayed) 
    532479    (volatile))) 
     
    565512    (match . (identity)) 
    566513    (requires-pattern . 3) 
     514    (init . anything-c-moccur-initialize) 
     515    (cleanup . anything-c-moccur-clean-up)     
    567516    (delayed) 
    568517    (volatile))) 
     
    651600  (anything-c-moccur-match-only-internal "\" ")) 
    652601 
     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 
    653635(provide 'anything-c-moccur) 
    654636