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

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

[nongnu] elpa/geiser-chicken 1c969ee 058/102: Allows Chicken to limit th


From: Philip Kaludercic
Subject: [nongnu] elpa/geiser-chicken 1c969ee 058/102: Allows Chicken to limit the number of symbols provided to Geiser
Date: Sun, 1 Aug 2021 18:26:55 -0400 (EDT)

branch: elpa/geiser-chicken
commit 1c969ee2b04d0ab8b1c0cd73d3091aefd7b08df1
Author: dleslie <dleslie@marvin-linux>
Commit: dleslie <dleslie@marvin-linux>

    Allows Chicken to limit the number of symbols provided to Geiser
    
    - Also cleaned up the namespace a little.
---
 geiser/emacs.scm | 33 +++++++++++++++++++++------------
 1 file changed, 21 insertions(+), 12 deletions(-)

diff --git a/geiser/emacs.scm b/geiser/emacs.scm
index 6b7124f..d31d801 100644
--- a/geiser/emacs.scm
+++ b/geiser/emacs.scm
@@ -27,8 +27,9 @@
    geiser-module-location
    geiser-module-completions
    geiser-macroexpand
-   geiser-use-debug-log
-   geiser-load-paths)
+   geiser-chicken-use-debug-log
+   geiser-chicken-load-paths
+   geiser-chicken-symbol-match-limit)
 
   (import chicken scheme)
   (use
@@ -51,6 +52,9 @@
 ;; Symbol lists
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
+  (define geiser-chicken-symbol-match-limit
+    (make-parameter 20))
+  
   (define geiser-r4rs-symbols
     (make-parameter
      '(not boolean? eq? eqv? equal? pair? cons car cdr caar cadr cdar cddr
@@ -213,7 +217,7 @@
   ;; Utilities
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-  (define geiser-use-debug-log (make-parameter #f))
+  (define geiser-chicken-use-debug-log (make-parameter #f))
 
   (define find-module ##sys#find-module)
   (define current-module ##sys#current-module)
@@ -245,13 +249,18 @@
            (apropos-information-list "" #:macros? #t)))))
 
   (define (find-symbol-information prefix)
+    (define (filter/limit pred? limit lst)
+      (cond
+       ((<= limit 0) '())
+       ((or (null? lst) (not (list? lst))) '())
+       ((pred? (car lst)) (cons (car lst) (filter/limit pred? (- limit 1) (cdr 
lst))))
+       (else (filter/limit pred? limit (cdr lst)))))
     (define (find-symbol-information* prefix skipped)
-      (let ((found (filter
+      (let ((found (filter/limit
                    (lambda (info)
                      (string-has-prefix? (car info) prefix))
-                   (symbol-information-list))))
-       ;; (if (and (null? found) (< 1 (string-length prefix)))
-       ;;     (find-symbol-information* (substring/shared prefix 1) 
(string-append skipped (substring prefix 0 1))))
+                   (geiser-chicken-symbol-match-limit)
+                   (symbol-information-list))))        
        (cons found skipped)))
     (memoize
      `(find-symbol-information ,prefix)
@@ -260,7 +269,7 @@
   
   (define debug-log (make-parameter #f))
   (define (write-to-log form)
-    (when (geiser-use-debug-log)
+    (when (geiser-chicken-use-debug-log)
       (when (not (debug-log))
        (debug-log (file-open "geiser.log" (+ open/wronly open/append open/text 
open/creat)))
        (set-file-position! (debug-log) 0 seek/end))
@@ -508,7 +517,7 @@
             geiser-autodoc geiser-object-signature geiser-symbol-location
             geiser-symbol-documentation geiser-module-exports
             geiser-module-path geiser-module-location
-            geiser-module-completions geiser-use-debug-log)))
+            geiser-module-completions geiser-chicken-use-debug-log)))
     
     (define (form-has-any-geiser? form)
       (string-has-prefix? (->string (car form)) "geiser-"))
@@ -637,11 +646,11 @@
 ;; File and Buffer Operations
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-  (define geiser-load-paths (make-parameter '("" ".")))
+  (define geiser-chicken-load-paths (make-parameter '("" ".")))
 
   (define (geiser-find-file file . rest)
     (when file
-      (let ((paths (geiser-load-paths)))
+      (let ((paths (geiser-chicken-load-paths)))
        (define (try-find file paths)
          (cond
           ((null? paths) #f)
@@ -660,7 +669,7 @@
       (call-with-result #f
        (lambda ()
          (when (directory-exists? directory)
-           (geiser-load-paths (cons directory (geiser-load-paths))))))))
+           (geiser-chicken-load-paths (cons directory 
(geiser-chicken-load-paths))))))))
 
   (define (geiser-compile-file file . rest)
     (let* ((file (if (symbol? file) (symbol->string file) file))



reply via email to

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