[ruby-list:41827] Re: RRSE 0.1
From:
rubikitch <rubikitch@...>
Date:
2006-02-13 14:34:46 UTC
List:
ruby-list #41827
From: rubikitch <rubikitch@ruby-lang.org>
Subject: [ruby-list:41826] Re: RRSE 0.1
Date: Mon, 13 Feb 2006 22:51:51 +0900
> ReFeの扱っているメソッド名のリストは
> /usr/local/share/refe/method_document_comp
> にそのまま載っています。
これは引数の情報までは書いていないのでダメですね…。
今気付いたのですが、rrse-get-specs関数が見付かりません。
> すでに生成されたデータを使えば初期化にかかる時間は短縮できると思います。
さっそくですがこれについてやってみました。
あらかじめ ~/.rrse-table, ~/.rrse-rev-table を作成しておきます。
diff -u rrse-0.1/rrse-refe-listdescs /home/rubikitch/compile/rrse-0.1/rrse-refe-listdescs
--- rrse-0.1/rrse-refe-listdescs 2006-02-13 14:23:25.000000000 +0900
+++ /home/rubikitch/compile/rrse-0.1/rrse-refe-listdescs 2006-02-13 23:17:30.000000000 +0900
@@ -57,10 +57,10 @@
db.method_document.complete(nil, nil, '*').each do |spec|
case spec
when /^man\..*$/
- when /^[A-Za-z0-9_:]+(#|\.)[^#.]+$/
+ when /^[A-Za-z0-9_:]+(#|\.)[^#\.]+$/
descs << Description.new(spec, db.method_document[spec])
else
- raise "invalid information"
+ $stderr.puts "invalid information: #{spec}"
end
end
diff -u rrse-0.1/rrse.el /home/rubikitch/compile/rrse-0.1/rrse.el
--- rrse-0.1/rrse.el 2006-02-13 14:23:25.000000000 +0900
+++ /home/rubikitch/compile/rrse-0.1/rrse.el 2006-02-13 23:27:22.000000000 +0900
@@ -46,6 +46,9 @@
(defvar rrse-idle-delay 0.5)
+(defvar rrse-table-file "~/.rrse-table")
+(defvar rrse-rev-table-file "~/.rrse-rev-table")
+
;;;; Utitility functions
(defun rrse-id-char-p (c)
"Return whether character C is in [a-zA-Z0-9_]"
@@ -106,28 +109,21 @@
(t (rrse-filter fun (cdr list)))))
;;;; Table Creation
-(defun rrse-make-table ()
+
+(defun rrse-make-table (file)
(with-temp-buffer
- (rrse-call-process t)
+ (insert-file-contents file)
+ (goto-char 1)
(let ((table (make-vector (count-lines (point-min) (point-max)) nil)))
(rrse-each-line (lambda (line)
(aset table (count-lines (point-min) (point))
(split-string line "[\t\n]"))))
table)))
-(defun rrse-make-rev-table ()
- (with-temp-buffer
- (rrse-call-process t "-r")
- (let ((table (make-vector (count-lines (point-min) (point-max)) nil)))
- (rrse-each-line (lambda (line)
- (aset table (count-lines (point-min) (point))
- (split-string line "[\t\n]"))))
- table)))
-
(defun rrse-prepare-table ()
(if (null rrse-forward-table)
- (setq rrse-forward-table (rrse-make-table)
- rrse-rev-table (rrse-make-rev-table))))
+ (setq rrse-forward-table (rrse-make-table rrse-table-file)
+ rrse-rev-table (rrse-make-table rrse-rev-table-file))))
;;;; Find suitable methods
--
rubikitch
http://www.rubyist.net/~rubikitch/