rast.el を書いてみた [2005-10-23-5] ので,ついでに
namazu-howm-grep をもとに rast-howm-grep を書いてみた
(howm の隠し機能で rast を使えるけど,検索だけ出来ればいいので).
rast-search には namazu の "-all" のようにファイル名を返すオプションが
ないので,rast-command は howm の ext/howm-rast-search.rb を使う.
(defun rast-howm-grep (&optional page-num rast-dir key)
"rast + howm"
(interactive
(list
0
(if (or (and (not rast-always-query-index-directory) current-prefix-arg)
(and rast-always-query-index-directory (not current-prefix-arg)))
(completing-read "Rast index directory: "
rast-dir-alist nil t nil 'rast-index-history)
nil)
(read-from-minibuffer
"Enter Keyword: " nil
rast-minibuffer-field-map nil 'rast-keyword-history)))
(let* ((rast-filename-list nil)
(dir
(progn
(or
rast-default-dir
(setq rast-default-dir (rast-get-default-index-dir)))
(expand-file-name rast-default-dir)))
(arg-list (list key)))
(if (and dir (not (string= dir "")) (string-match "[^ \t]" dir))
(setq arg-list
(append
(rast-split-dir (rast-expand-dir-alias dir)) arg-list)))
(message "Rast running ...")
(let ((default-process-coding-system
(cons rast-cs-read rast-cs-write))
(process-input-coding-system rast-cs-read)
(process-output-coding-system rast-cs-write)
(coding-system-for-read rast-cs-read)
(coding-system-for-write rast-cs-write)
(rast-command "howm-rast-search.rb"))
(with-temp-buffer
(apply (function call-process)
rast-command nil t nil arg-list)
(goto-char (point-min))
(setq rast-filename-list
(split-string
(buffer-substring-no-properties
(point-min) (point-max)) "\n"))))
(message "Rast running ... done!")
(setq rast-filename-list
(mapcar
'(lambda (file)
(if (string-match "^/\\([a-zA-Z]\\)|/\\(.+\\)$" file)
(concat (match-string 1 file)
":/" (match-string 2 file))
file))
rast-filename-list))
(if (> (length rast-filename-list) rast-search-num)
(setq rast-filename-list
(reverse
(nthcdr
(- (length rast-filename-list) rast-search-num)
(reverse rast-filename-list)))))
(let ((moccur-split-word t)
(regexp key)
(ti0 (current-time)))
(while (string-match " " regexp nil)
(setq regexp (replace-match "\\\\|" nil nil regexp)))
(let ((howm-view-grep-option "-Hn"))
(howm-view-search regexp rast-filename-list))
(howm-list-normalize regexp)
)))
Referrer (Inside):
[2006-02-05-3] rast-howm-grep
[2005-11-03-3] howm の rast インデックス更新
comments powered by Disqus
[2006-02-05-3] rast-howm-grep
[2005-11-03-3] howm の rast インデックス更新