[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/geiser-gambit 46b1549 15/34: better autocompletion with cl
From: |
Philip Kaludercic |
Subject: |
[nongnu] elpa/geiser-gambit 46b1549 15/34: better autocompletion with cleaner procedure |
Date: |
Sun, 1 Aug 2021 18:27:17 -0400 (EDT) |
branch: elpa/geiser-gambit
commit 46b15497259c8d7dddc2c9f95b12cbe03165c648
Author: mathieu2em <math.per@hotmail.com>
Commit: mathieu2em <math.per@hotmail.com>
better autocompletion with cleaner procedure
---
scheme/gambit/geiser/gambit.scm | 40 ++++++++++++++++++----------------------
1 file changed, 18 insertions(+), 22 deletions(-)
diff --git a/scheme/gambit/geiser/gambit.scm b/scheme/gambit/geiser/gambit.scm
index 74682f5..c3cedc4 100644
--- a/scheme/gambit/geiser/gambit.scm
+++ b/scheme/gambit/geiser/gambit.scm
@@ -101,29 +101,25 @@
(define (geiser:module-completions prefix . rest)
+ (define (interesting? sym)
+ (and (string-prefix? prefix (symbol->string sym))
+ (procedure? (##global-var-ref (##make-global-var sym)))))
+
(define (environment-symbols)
- (let* ((sym-tab (##symbol-table))
- (sym-len (vector-length sym-tab)))
- (let loop ((i 1)
- (symbols-list '()))
- (if (< i sym-len)
- (let ((sym (vector-ref sym-tab i)))
- (loop (+ i 1)
- (if (symbol? sym)
- (let loop2 ((sym-list (if (and (string-prefix? prefix
sym)
- (procedure?
(##global-var-ref (##make-global-var sym))))
- (cons (symbol->string sym)
symbols-list)
- symbols-list))
- (vect sym))
- (let ((sym2 (##vector-ref vect 2)))
- (if (symbol? sym2)
- (if (and (string-prefix? prefix sym2)
- (procedure? (##global-var-ref
(##make-global-var sym))))
- (loop2 (cons (symbol->string sym2)
sym-list) sym2)
- (loop2 sym-list sym2))
- sym-list)))
- symbols-list)))
- symbols-list))))
+ (let ((symtab (##symbol-table)))
+ (let loop1 ((i (- (vector-length symtab) 1))
+ (result '()))
+ (if (> i 0)
+ (let loop2 ((sym (vector-ref symtab i))
+ (result result))
+ (if (symbol? sym)
+ (loop2 (##vector-ref sym 2)
+ (if (interesting? sym)
+ (cons (symbol->string sym) result)
+ result))
+ (loop1 (- i 1)
+ result)))
+ result))))
(sort-list (environment-symbols) string-ci<?))
- [nongnu] branch elpa/geiser-gambit created (now 3294c94), Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-gambit 6356d0b 05/34: Autodoc first part . a ##decompile solution as of gerbil is WIP, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-gambit 7935cb1 22/34: Use cl-lib instead of cl, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-gambit 46b1549 15/34: better autocompletion with cleaner procedure,
Philip Kaludercic <=
- [nongnu] elpa/geiser-gambit c559075 07/34: better autodoc , completion working , better procedure search , WIP, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-gambit a5f0fcf 16/34: fix the output redirection of gambit scheme interpreter, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-gambit 53cfca8 11/34: fix a problem with non-procedures symbols from ##symbol-table completion, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-gambit e9d3ca3 23/34: Fix typos, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-gambit 186b74c 10/34: completion now working and taking account of user's defined functions, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-gambit c0db9f3 19/34: Mark the beginning of code part of elisp libraries with Code: heading, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-gambit 59fbf61 24/34: Fix typos, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-gambit 978d354 29/34: preparing MELPA submission, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-gambit 52ff341 26/34: license and readme files, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-gambit 7867f0a 31/34: installation instructions, Philip Kaludercic, 2021/08/01