[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/geiser-gambit 186b74c 10/34: completion now working and ta
From: |
Philip Kaludercic |
Subject: |
[nongnu] elpa/geiser-gambit 186b74c 10/34: completion now working and taking account of user's defined functions |
Date: |
Sun, 1 Aug 2021 18:27:16 -0400 (EDT) |
branch: elpa/geiser-gambit
commit 186b74c5237a43387cf71d8b9069f9710f4a160f
Author: mathieu2em <math.per@hotmail.com>
Commit: mathieu2em <math.per@hotmail.com>
completion now working and taking account of user's defined functions
---
scheme/gambit/geiser/gambit.scm | 39 ++++++++++++++++++++++++++++++++-------
1 file changed, 32 insertions(+), 7 deletions(-)
diff --git a/scheme/gambit/geiser/gambit.scm b/scheme/gambit/geiser/gambit.scm
index d8cae00..b13d5e3 100644
--- a/scheme/gambit/geiser/gambit.scm
+++ b/scheme/gambit/geiser/gambit.scm
@@ -117,20 +117,45 @@
(list (##procedure-search method-name)))))
(define (geiser:module-completions prefix . rest)
+
(define (environment-symbols)
- (map car ##gambit-procedures))
- (##sort-list (filter (lambda (el)
- (##string-prefix? prefix el))
- (map symbol->string (environment-symbols)))
- string-ci<?))
+ (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 (##string-prefix? prefix sym)
+ (cons (symbol->string sym)
symbols-list)
+ symbols-list))
+ (vect sym))
+ (let ((sym2 (##vector-ref vect 2)))
+ (if (symbol? sym2)
+ (if (##string-prefix? prefix sym2)
+ (loop2 (cons (symbol->string sym2)
sym-list) sym2)
+ (loop2 sym-list sym2))
+ sym-list)))
+ symbols-list)))
+ symbols-list))))
+
+ (##sort-list (environment-symbols) string-ci<?))
+
+ ;; (##sort-list (filter (lambda (el)
+ ;; (##string-prefix? prefix el)) ;; eviter le map ->
symbol->string externe
+ ;; (map symbol->string (environment-symbols)))
+ ;; string-ci<?))
(define (geiser:completions prefix . rest)
rest)
;; string-prefix function
(define (##string-prefix? pref str)
- (let ((str-len (string-length str))
- (pref-len (string-length pref)))
+ (let* ((str (if (string? str) str (symbol->string str)))
+ (str-len (string-length str))
+ (pref (if (string? pref) pref (symbol->string pref)))
+ (pref-len (string-length pref)))
(and (string? pref)
(string? str)
(<= pref-len str-len)
- [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, 2021/08/01
- [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 <=
- [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
- [nongnu] elpa/geiser-gambit 3294c94 34/34: Use new implementation extension declarator, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-gambit 0ee4156 33/34: fix: auto-activate implementation, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-gambit 6bff2b9 08/34: gambit syntax coloration + adjustment of methods list, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-gambit 6f01c0d 06/34: parenthesis showing in autodoc fixed., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-gambit 95ef42e 03/34: WIP repl behaviour fix, Philip Kaludercic, 2021/08/01