emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/geiser-guile 1c50bcb 072/284: Improvements to module name


From: Philip Kaludercic
Subject: [nongnu] elpa/geiser-guile 1c50bcb 072/284: Improvements to module name support (using prefixes) and Guile support.
Date: Sun, 1 Aug 2021 18:29:18 -0400 (EDT)

branch: elpa/geiser-guile
commit 1c50bcb1e89ecad683148a4e67fecfc1d82a93ce
Author: Jose Antonio Ortega Ruiz <jao@gnu.org>
Commit: Jose Antonio Ortega Ruiz <jao@gnu.org>

    Improvements to module name support (using prefixes) and Guile support.
---
 geiser/completion.scm |  9 ++++++++-
 geiser/emacs.scm      |  2 +-
 geiser/modules.scm    | 13 ++++++-------
 3 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/geiser/completion.scm b/geiser/completion.scm
index 4906368..f4342bb 100644
--- a/geiser/completion.scm
+++ b/geiser/completion.scm
@@ -25,8 +25,9 @@
 ;;; Code:
 
 (define-module (geiser completion)
-  #:export (completions)
+  #:export (completions module-completions)
   #:use-module (geiser utils)
+  #:use-module (geiser modules)
   #:use-module (ice-9 session)
   #:use-module (ice-9 regex))
 
@@ -53,4 +54,10 @@
            (loop (cons 'let (body form)) (cons (cadr form) bindings)))
           (else (loop (cdr form) bindings)))))
 
+(define (module-completions prefix)
+  (let* ((prefix (string-append "^" (regexp-quote prefix)))
+         (matcher (lambda (s) (string-match prefix s)))
+         (names (filter matcher (all-modules))))
+    (sort! names string<?)))
+
 ;;; completions.scm ends here
diff --git a/geiser/emacs.scm b/geiser/emacs.scm
index 13bd8db..106b8b1 100644
--- a/geiser/emacs.scm
+++ b/geiser/emacs.scm
@@ -32,10 +32,10 @@
                ge:load-file
                ge:autodoc
                ge:completions
+               ge:module-completions
                ge:symbol-location
                ge:generic-methods
                ge:symbol-documentation
-               ge:all-modules
                ge:module-children
                ge:module-location
                ge:callers
diff --git a/geiser/modules.scm b/geiser/modules.scm
index fdc3f3f..834e51c 100644
--- a/geiser/modules.scm
+++ b/geiser/modules.scm
@@ -57,13 +57,12 @@
 
 (define (all-modules)
   (let ((roots ((@@ (ice-9 session) root-modules))))
-    (sort! (map (lambda (m)
-                  (format "~A" (module-name m)))
-                (fold (lambda (m all)
-                        (append (all-child-modules m) all))
-                      roots
-                      roots))
-           string<?)))
+    (map (lambda (m)
+           (format "~A" (module-name m)))
+         (fold (lambda (m all)
+                 (append (all-child-modules m) all))
+               roots
+               roots))))
 
 (define (module-children mod-name)
   (let* ((elts (hash-fold classify-module-object



reply via email to

[Prev in Thread] Current Thread [Next in Thread]