]> git.eshelyaron.com Git - dict.git/commitdiff
Add module descriptions to sweep-find-module annotation function
authorEshel Yaron <me@eshelyaron.com>
Sat, 27 Aug 2022 09:07:14 +0000 (12:07 +0300)
committerEshel Yaron <me@eshelyaron.com>
Sat, 27 Aug 2022 09:07:14 +0000 (12:07 +0300)
sweep.el
sweep.pl

index 76916377a405512ce8c20a894f1323ff8a560676..88f6c99e5a46eba9cfc0bb241e8e12bf70cd0064 100644 (file)
--- a/sweep.el
+++ b/sweep.el
@@ -95,14 +95,16 @@ module name, F is a functor name and N is its arity."
   (sweep-open-query "user" "sweep" "sweep_modules_collection" nil)
   (let ((sol (sweep-next-solution)))
     (sweep-close-query)
-    (when (eq '! (car sol))
+    (when (or (eq (car sol) '!)
+              (eq (car sol) t))
       (cdr sol))))
 
 (defun sweep-module-path (mod)
   (sweep-open-query "user" "sweep" "sweep_module_path" mod)
   (let ((sol (sweep-next-solution)))
     (sweep-close-query)
-    (when (eq '! (car sol))
+    (when (or (eq (car sol) '!)
+              (eq (car sol) t))
       (cdr sol))))
 
 (defun sweep-read-module-name ()
@@ -111,8 +113,13 @@ module name, F is a functor name and N is its arity."
          (completion-extra-properties
           (list :annotation-function
                 (lambda (key)
-                  (concat (make-string (- 32 (length key)) ? )
-                          (cdr (assoc-string key col)))))))
+                  (let* ((val (cdr (assoc-string key col)))
+                         (pat (car val))
+                         (des (cdr val)))
+                    (concat (make-string (- 32 (length key)) ? )
+                            (if des
+                                (concat pat (make-string (- 64 (length pat)) ? ) des)
+                              pat)))))))
     (completing-read "Module: " col)))
 
 (defun sweep-find-module (mod)
index 5e90a744a6914abe188669ba2ce7a1a764005cd5..57f20cfa7d13e966712dcb19d95c6e73d09eae73 100644 (file)
--- a/sweep.pl
+++ b/sweep.pl
@@ -170,9 +170,16 @@ sweep_module_path_(Module, Path) :-
 
 
 sweep_modules_collection([], Modules) :-
-    findall([M|P], ( module_property(M0, file(P0)), atom_string(M0, M), atom_string(P0, P) ), Modules0, Tail),
-    setof([M|P], M0^P0^N^('$autoload':library_index(N, M0, P0), string_concat(P0, ".pl", P), atom_string(M0, M) ), Tail),
-    list_to_set(Modules0, Modules).
+    findall([M|P], ( module_property(M, file(P0)), atom_string(P0, P) ), Modules0, Tail),
+    setof([M|P], P0^N^('$autoload':library_index(N, M, P0), string_concat(P0, ".pl", P) ), Tail),
+    list_to_set(Modules0, Modules1),
+    maplist(sweep_module_description, Modules1, Modules).
+
+sweep_module_description([M0|P], [M|[P|D]]) :-
+   pldoc_process:doc_comment(M0:module(D0), _, _, _),
+   atom_string(M0, M),
+   atom_string(D0, D).
+sweep_module_description([M0|P], [M|[P]]) :- atom_string(M0, M).
 
 sweep_predicate_location(MFN, [Path|Line]) :-
     term_string(M:F/N, MFN),