summaryrefslogtreecommitdiff
path: root/geiser/completion.scm
diff options
context:
space:
mode:
Diffstat (limited to 'geiser/completion.scm')
-rw-r--r--geiser/completion.scm9
1 files changed, 8 insertions, 1 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