[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/

In This Thread