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

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

[nongnu] elpa/geiser-chicken 0bcd595 050/102: Fuzzy matching for Chicken


From: Philip Kaludercic
Subject: [nongnu] elpa/geiser-chicken 0bcd595 050/102: Fuzzy matching for Chicken AutoDoc and Completions
Date: Sun, 1 Aug 2021 18:26:53 -0400 (EDT)

branch: elpa/geiser-chicken
commit 0bcd595e719133f87cf57576f794ade1bd9cb6a7
Author: Dan Leslie <dan@ironoxide.ca>
Commit: Dan Leslie <dan@ironoxide.ca>

    Fuzzy matching for Chicken AutoDoc and Completions
    
    Because Chicken allows symbols to be imported with prefixes, and because
    'apropos' does not provide any utility to match with the loaded
    prefixes, it is difficult to acquire information about prefixed symbols.
    
    This solution hacks around the issue by providing naive
    fuzzy-matching. If no match for a symbol can be found then the first
    character is dropped and matching is attempted again; the process is
    repeated until matches are found or the entire symbol is consumed.
    
    Also removes the (now redundant and slow) geiser-chicken-prefix-delimiters.
---
 elisp/geiser-chicken.el | 23 ++++-------------------
 1 file changed, 4 insertions(+), 19 deletions(-)

diff --git a/elisp/geiser-chicken.el b/elisp/geiser-chicken.el
index 9775769..d0eb1d1 100644
--- a/elisp/geiser-chicken.el
+++ b/elisp/geiser-chicken.el
@@ -65,12 +65,6 @@
   "Customization for Geiser's Chicken flavour."
   :group 'geiser)
 
-(geiser-custom--defcustom geiser-chicken-prefix-delimiters
-    '("^:" "^#")
-    "Regex to match symbol prefix delimiters. Consider that it will be placed 
inside []."
-  :type '(repeat string)
-  :group 'geiser-chicken)
-
 (geiser-custom--defcustom geiser-chicken-binary
   (cond ((eq system-type 'windows-nt) '("csi.exe" "-:c"))
         ((eq system-type 'darwin) "csi")
@@ -189,19 +183,10 @@ This function uses `geiser-chicken-init-file' if it 
exists."
 (defun geiser-chicken--exit-command () ",q")
 
 (defun geiser-chicken--symbol-begin (module)
-  (apply
-   'max
-   (cons
-    (if module
-       (max (save-excursion (beginning-of-line) (point))
-            (save-excursion (skip-syntax-backward "^(>") (1- (point))))
-      (save-excursion (skip-syntax-backward "^'-()>") (point)))
-    (let ((distance-to-beginning-of-line (- (point) 
(line-beginning-position))))
-      (mapcar
-       (lambda (match-string)
-        (save-excursion
-          (skip-chars-backward match-string distance-to-beginning-of-line) 
(point)))
-       geiser-chicken-prefix-delimiters)))))
+  (if module
+      (max (save-excursion (beginning-of-line) (point))
+          (save-excursion (skip-syntax-backward "^(>") (1- (point))))
+    (save-excursion (skip-syntax-backward "^'-()>") (point))))
 
 
 ;;; Error display



reply via email to

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