branch: elpa/geiser-kawa commit 6b2187d696b90f01e83cdeaaf81f68de5309c44a Author: spellcard199 <spellcard...@protonmail.com> Commit: spellcard199 <spellcard...@protonmail.com>
fix: completion with company-mode. geiser:completions used to return a list of symbols, which works fine with completion-at-point, but company-mode wants a list of strings, which is what geiser:completions returns now. --- src/main/java/kawageiser/GeiserCompleteSymbol.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/kawageiser/GeiserCompleteSymbol.java b/src/main/java/kawageiser/GeiserCompleteSymbol.java index 979c910..ce6b73d 100644 --- a/src/main/java/kawageiser/GeiserCompleteSymbol.java +++ b/src/main/java/kawageiser/GeiserCompleteSymbol.java @@ -6,6 +6,7 @@ package kawageiser; +import gnu.kawa.functions.Format; import gnu.lists.IString; import gnu.lists.LList; import gnu.mapping.Environment; @@ -20,13 +21,16 @@ public class GeiserCompleteSymbol { } public static LList getCompletions(IString prefix, Environment env) { - ArrayList<Symbol> resultArrList = new ArrayList<>(); + ArrayList<String> resultArrList = new ArrayList<>(); env.enumerateAllLocations().forEachRemaining( loc -> { Symbol sym = loc.getKeySymbol(); String symName = sym.getName(); if (symName.contains(prefix)) { - resultArrList.add(sym); + // Emacs' completion-at-point works fine with a list of symbols, + // but completion through company-mode works only if we display a list + // of strings, each delimited by double-quotes. + resultArrList.add(Format.formatToString(0, "~S", symName)); } } );