Changeset 28807 for lang/elisp

Show
Ignore:
Timestamp:
01/22/09 05:37:07 (4 years ago)
Author:
imakado
Message:

nicknameの補完コマンドを追加.@から始まる文字も対象に含めた

Files:
1 modified

Legend:

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

    r28793 r28807  
    3030;; M-x anything-c-erc 
    3131 
     32;; to complete Nick name 
     33;; M-x anything-c-erc-complete-nick 
    3234 
    3335(require 'anything) 
    3436(require 'erc) 
    3537 
     38 
     39;;; Advice 
     40 
     41(defvar anything-c-erc-nicks nil 
     42  "list of nicknames. each nickname can be started with \"@\"") 
     43(make-variable-buffer-local 'anything-c-erc-nicks) 
     44 
     45(defadvice erc-channel-receive-names (before anything-c-erc-nick-inc-@ activate) 
     46  (anything-c-erc-receive-names (ad-get-arg 0))) 
     47 
     48(defun anything-c-erc-receive-names (names) 
     49  (ignore-errors 
     50    (loop for s in (split-string names) 
     51          when (and (stringp s) 
     52                    (not (string-equal "" s))) 
     53          do (add-to-list 'anything-c-erc-nicks s)))) 
    3654 
    3755;;; Sources 
     
    4664    (persistent-action . switch-to-buffer))) 
    4765 
     66 
     67(defvar anything-c-source-erc-nicks 
     68  '((name . "Erc Nicknames") 
     69    (init . (lambda () 
     70              (let ((los (or anything-c-erc-nicks 
     71                             (pcomplete-erc-nicks)))) 
     72                (with-current-buffer (anything-candidate-buffer 'global) 
     73                  (insert (mapconcat 'identity los "\n")))))) 
     74    (candidates-in-buffer) 
     75    (action . (("Insert" . (lambda (name) 
     76                             (insert name erc-pcomplete-nick-postfix))))) 
     77    (persistent-action . switch-to-buffer))) 
     78 
    4879(defvar anything-c-erc-sources 
    49   '(anything-c-source-erc-iswitchb)) 
     80  '(anything-c-source-erc-iswitchb 
     81    anything-c-source-erc-nicks)) 
    5082 
    5183;;; Commands 
     
    5486  (anything anything-c-erc-sources)) 
    5587 
     88(defun anything-c-erc-complete-nick () 
     89  (interactive) 
     90  (anything '(anything-c-source-erc-nicks))) 
     91 
    5692(provide 'anything-c-erc) 
    5793;;; anything-c-erc.el ends here